2012-02-28  Nikolas Zimmermann  <nzimmermann@rim.com>

        Integrate SVGUseElement within the new shadow root concept
        https://bugs.webkit.org/show_bug.cgi?id=78902

        Reviewed by Zoltan Herczeg.

        Replace SVG shadow tree implementation with the new, modern #shadow-root implementation.

        Current situation in trunk:
        SVGUseElement doesn't create/hold the shadow tree, unlike its expected in
        the modern #shadow-root concept, but its renderer RenderSVGShadowTreeRootContainer.
        That creates a cycle, as the actual DOM tree is stored as RefPtr<SVGGElement> inside
        a renderer - that's weak conceptually, and has lead to sublte security bugs in the past.

        Whenever a target element of a <use> element changed, invalidateShadowTree() is called
        which calls setNeedsStyleRecalc(), and sets m_needsShadodwTreeRecreation to true.
        Once style recalculation happens, the RenderSVGShadowTreeRootContainer then eventually
        built the shadow tree, by cloning the target node, building the SVGElementInstance tree
        etc, -- all within the render tree.

        To easy reviewing, here's a dump of the current render tree for a simple <use> example:
        <defs><rect id="rect"/></defs><use xlink:href="#rect"/>

        Dump of render tree:
        RenderSVGHiddenContainer {defs}        // <defs> (SVGDefsElement)
            RenderSVGRect {rect}               // <rect> (SVGRectElement)
        RenderSVGShadowTreeRootContainer {use} // <use> (SVGUseElement)
            RenderSVGContainer {g}             // <g> (SVGShadowTreeRootElement)
                RenderSVGRect {rect}           // <rect> (SVGRectElement, clone of <rect> in <defs>)

        The SVGShadowTreeRootElement is created & stored by RenderSVGShadowTreeRootContainer,
        the renderer of the <use> element. The RenderSVGTransformableContainer renderer created
        for the SVGShadowTreeRootElement stores the x/y translation induced by the <use> attributes.

        There are lots of places all over WebCore that assume the existance of a <g> renderer
        as first child of the <use> element, representing the "SVG shadow tree root".

        Summary of this patch:
        Let SVGUseElement create&maintain a #shadow-root, and append the cloned target elements
        into this shadow root. We no longer have to take care of attachment/detachment, style
        recalculation, etc. - that's handled transparenly by ShadowRoot(List) now.

        This makes SVGShadowTreeElements & RenderSVGShadowTreeRootContainer obsolete. Switch
        SVGUseElement to create a RenderSVGTransformableContainer as its renderer, and make
        it respect the translation induced by the x/y attributes, given for a <use> element.

        Remove all occourences of SVGShadowRoot, remove all special cases it induced.

        It's all covered by existing tests, took a while to make them all pass again.

        * CMakeLists.txt: Remove SVGShadowTreeElements/RenderSVGShadowTreeRootContainer from build.
        * GNUmakefile.list.am: Ditto.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::collectMatchingRulesForList): Enable fast path for selector checking, now that special shadow tree rules are gone.
        * css/SelectorChecker.cpp:
        (WebCore::linkAttribute): No need to guard this code with ENABLE(SVG).
        (WebCore::SelectorChecker::checkSelector): Remove obsolete SVG shadow root special case.
        * dom/EventDispatcher.cpp:
        (WebCore::eventTargetRespectingSVGTargetRules): Remove loop, simplify & cleanup this code.
        (WebCore::EventDispatcher::adjustToShadowBoundaries): s/isShadowRootOrSVGShadowRoot/isShadowRoot/.
        (WebCore::EventDispatcher::adjustRelatedTarget): Ditto.
        (WebCore::EventDispatcher::ensureEventAncestors): Simplify logic for SVG, fixed a FIXME.
        * dom/Node.cpp: Remove obsolete svgShadowHost().
        (WebCore::Node::shadowTreeRootNode): Remove obsolete isSVGShadowRoot() checks.
        (WebCore::Node::nonBoundaryShadowTreeRootNode): Ditto.
        (WebCore::Node::isInShadowTree): Make it const.
        * dom/Node.h: Remove isSVGShadowRoot/svgShadowHost.
        (WebCore::Node::isShadowRoot): s/IsShadowRootOrSVGShadowRootFlag/isShadowRoot/.
        (WebCore::Node::parentNode): Augment comments.
        (WebCore::Node::parentNodeGuaranteedHostFree): Ditto.
        * dom/Range.cpp:
        (WebCore::Range::checkNodeBA): Remove obsolete SVG shadow root special case.
        * dom/ScriptElement.cpp:
        (WebCore::ScriptElement::prepareScript): Ditto.
        * rendering/RenderObject.h: Remove isSVGShadowTreeRootContainer.
        (WebCore::RenderObject::isSVGTransformableContainer): Added.
        * rendering/svg/RenderSVGAllInOne.cpp: Remove SVGShadowTreeElements/RenderSVGShadowTreeRootContainer from build.
        * rendering/svg/RenderSVGModelObject.cpp:
        (WebCore::isGraphicsElement): To check for <use>, a tag name comparision is needed now, as it no longer has a special renderer.
        * rendering/svg/RenderSVGResourceClipper.cpp:
        (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage): Ditto.
        (WebCore::RenderSVGResourceClipper::calculateClipContentRepaintRect): Ditto.
        (WebCore::RenderSVGResourceClipper::hitTestClipContent): Ditto.
        * rendering/svg/RenderSVGResourceContainer.cpp: Remove RenderSVGShadowTreeRootContainer.h include.
        * rendering/svg/RenderSVGShadowTreeRootContainer.cpp: Removed.
        * rendering/svg/RenderSVGShadowTreeRootContainer.h: Removed.
        * rendering/svg/RenderSVGTransformableContainer.cpp: Keep track of last used additional x/y translation.
        (WebCore::RenderSVGTransformableContainer::calculateLocalTransform): Handle x/y translation for <use> contains here, instead of storing it in the SVGShadowTreeRootElement.
        * rendering/svg/RenderSVGTransformableContainer.h: Store last used x/y translation.
        (WebCore::RenderSVGTransformableContainer::isSVGTransformableContainer): Return true.
        (WebCore::toRenderSVGTransformableContainer): Add conversion helpers.
        * rendering/svg/RenderSVGViewportContainer.cpp: Ditto.
        (WebCore::RenderSVGViewportContainer::calcViewport): Handle width/height attributes inheritance from the <use> element, if we're a <svg> or <symbol> replacement in the shadow tree.
        * rendering/svg/RenderSVGViewportContainer.h: Remove isSVGContainer() override which is not needed here (already present in RenderSVGContainer).
        * rendering/svg/SVGShadowTreeElements.cpp: Removed.
        * rendering/svg/SVGShadowTreeElements.h: Removed.
        * svg/SVGAElement.cpp:
        (WebCore::SVGAElement::createRenderer): Check if parentNode is really a SVGElement, before casting.
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::isOutermostSVGSVGElement): Early exit if tag name isn't <svg>, or if we're in a shadow tree (can't be an outermost <svg> element then).
        (WebCore::hasLoadListener): Deploy parentOrHostElement() usage to remove any special cases, related to shadow boundaries.
        (WebCore::SVGElement::sendSVGLoadEventIfPossible): Ditto.
        (WebCore::SVGElement::customStyleForRenderer): Ditto.
        * svg/SVGElementInstance.cpp:
        (WebCore::SVGElementInstance::invalidateAllInstancesOfElement): Call updateStyleIfNeeded() instead of updateLayoutIgnorePendingStylesheets().
        * svg/SVGGElement.cpp:
        (WebCore::SVGGElement::rendererIsNeeded): s/parentNode/parentOrHostElement/ - we need to cross shadow boundaries now.
        * svg/SVGGElement.h: Remove obsolete isShadowTreeContainerElement().
        * svg/SVGLocatable.cpp:
        (WebCore::SVGLocatable::nearestViewportElement): s/parentNode/parentOrHostElement/ - we need to cross shadow boundaries now.
        (WebCore::SVGLocatable::farthestViewportElement): Ditto.
        (WebCore::SVGLocatable::computeCTM): Ditto.
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::title): Ditto. (+ simplify code a lot, no need to walk the shadow tree to find its root anymore, use isInShadowTree() helper.)
        (WebCore::SVGStyledElement::rendererIsNeeded): Ditto.
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::SVGUseElement): Remove no longer needed m_updatesBlocked.
        (WebCore::SVGUseElement::create): Always call ensureShadowRoot(), to create a #shadow-root, upon creating a SVGUseElement.
        (WebCore::SVGUseElement::insertedIntoDocument): Align with SVGFEImageElement/SVGTRefElement - call buildPendingResource() from insertedIntoDocument(), finally! (no renderer needed anymore to update the SVG shadow subtree).
        (WebCore::SVGUseElement::removedFromDocument): Align with SVGFEImageElement/SVGTRefElement - immediately release the SVGElementInstance & shadow tree, once we're removed from the document.
        (WebCore::SVGUseElement::svgAttributeChanged): Simplify code a lot, no longer need to deal with x/y/width/height attributes, the renderes in the shadow tree grab these values from their corresponding <use> elements automatically now.
        (WebCore::SVGUseElement::willRecalcStyle):
            New main part of the logic. invalidateShadowTree() calls setNeedsStyleRecalc, and sets m_needsShadowTreeRecreation=true. If we encounter this case, force rebuilding the SVG shadow tree
            and the SVGElementInstance tree, immediately, before executing the actual style recalc. This allows us to lazily rebuild the SVG shadow tree for the <use> element. Consider:
            <defs><rect id="rect"></defs> <use xlink:href="#rect"/>. Now from a script we change the rect x/y/width/height attributes:
            rect.setAttribute("x", "10"); rect.setAttribute("y", "10")... each call will lead to a SVGUseElement::invalidateShadowTree() call by SVGElementInstance::invalidateAllInstancesOfElement, invoked after the <rect> element got parsed.
            This won't update the shadow tree four times, but only once upon the next style recalculation - otherwise performance is a nightmare.
            This will serve as future starting point, to explore partial SVG subtree re-clones, which should easily be doable now.
        (WebCore::dumpInstanceTree): Add a 'static' to allow DUMP_INSTANCE_TREE to be used in clang builds.
        (WebCore::SVGUseElement::clearResourceReferences): Added helper to release instance & shadow tree.
        (WebCore::SVGUseElement::buildPendingResource): Modeled exactly like SVGFEImageElement/SVGTRefElement. It's possible to share more code between these in future.
        (WebCore::SVGUseElement::buildShadowAndInstanceTree): Cleanup code, adapt to new shadow-root concept.
        (WebCore::SVGUseElement::createRenderer): Create a RenderSVGTransformableContainer, no longer a <use> specific renderer.
        (WebCore::removeDisallowedElementsFromSubtree): Use new replacedChild/appendChild variants, that don't require a ExceptionCode to be passed in.
        (WebCore::SVGUseElement::buildShadowTree): Ditto.
        (WebCore::SVGUseElement::expandUseElementsInShadowTree): Ditto.
        (WebCore::SVGUseElement::expandSymbolElementsInShadowTree): Ditto.
        (WebCore::SVGUseElement::invalidateShadowTree): Only trigger style recalculations if needed.
        * svg/SVGUseElement.h: Remove lots of now unnecessary overrides: attach/detach/didRecalcStyle/updateContainerOffset/updateContainerSizes/etc..
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::insertedIntoDocument): No need to walk the shadow tree to find its root anymore, use isInShadowTree() helper.

2012-02-23  Philip Rogers  <pdr@google.com>

        Recompute font metrics on scale changes
        https://bugs.webkit.org/show_bug.cgi?id=75091

        Reviewed by Nikolas Zimmermann.

        SVG text metrics depend on the transform from renderer to the svg root
        which requires that we propagate transform changes down to text.
        This change adds a boolean for tracking transform changes to
        SVGViewportContainers and SVGTransformableContainers, and updates
        RenderSVGText::layout() to recalculate text metrics if the transform
        of an ancestor has changed.

        Tests: platform/mac/svg/text/text-rescale.html
               platform/mac/svg/text/text-viewbox-rescale.html
               svg/text/text-rescale.html
               svg/text/text-viewbox-rescale.html

        * rendering/RenderObject.h:
        (WebCore::RenderObject::isSVGTransformableContainer):
        (WebCore::RenderObject::isSVGViewportContainer):
        * rendering/svg/RenderSVGContainer.h:
        (WebCore::RenderSVGContainer::didTransformToRootUpdate):
        * rendering/svg/RenderSVGInlineText.cpp:
        (WebCore::RenderSVGInlineText::computeNewScaledFontForStyle):
        * rendering/svg/RenderSVGText.cpp:
        (WebCore::RenderSVGText::RenderSVGText):
        (WebCore::RenderSVGText::layout):
        * rendering/svg/RenderSVGText.h:
        (WebCore::RenderSVGText::setNeedsTextMetricsUpdate):
        (RenderSVGText):
        * rendering/svg/RenderSVGTransformableContainer.cpp:
        (WebCore::RenderSVGTransformableContainer::RenderSVGTransformableContainer):
        (WebCore::RenderSVGTransformableContainer::calculateLocalTransform):
        * rendering/svg/RenderSVGTransformableContainer.h:
        (WebCore::RenderSVGTransformableContainer::isSVGTransformableContainer):
        (WebCore::RenderSVGTransformableContainer::didTransformToRootUpdate):
        (RenderSVGTransformableContainer):
        * rendering/svg/RenderSVGViewportContainer.cpp:
        (WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer):
        (WebCore::RenderSVGViewportContainer::calcViewport):
        * rendering/svg/RenderSVGViewportContainer.h:
        (WebCore::RenderSVGViewportContainer::didTransformToRootUpdate):
        (RenderSVGViewportContainer):
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::transformToRootChanged):
        (WebCore):
        (WebCore::SVGRenderSupport::layoutChildren):
        * rendering/svg/SVGRenderSupport.h:
        (SVGRenderSupport):

2012-03-01  Stephen Chenney  <schenney@chromium.org>

        Crash in WebCore::SVGDocumentExtensions::removeAnimationElementFromTarget
        https://bugs.webkit.org/show_bug.cgi?id=79831

        Reviewed by Eric Seidel.

        Out-of-order operations in the SVGSMILElement::removedFromDocument
        method caused its target to be removed and then re-added due to a
        later call. This led to the target being set on the animation while
        the target element itself was unaware. At deletion time, this caused a
        crash (or assert in debug builds). Thanks to Abhishek Arya for help
        with the layout test.

        Test: svg/animations/smil-element-target-crash-main.html

        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::removedFromDocument):

2012-02-24  Abhishek Arya  <inferno@chromium.org>

        Overhanging floats not removed from new flex box.
        https://bugs.webkit.org/show_bug.cgi?id=79522

        Reviewed by Ojan Vafai.

        Similar to r69476.

        Test: fast/flexbox/overhanging-floats-not-removed-crash.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):

2012-02-21  Abhishek Arya  <inferno@chromium.org>

        Crash in RenderTableSection::nodeAtPoint.
        https://bugs.webkit.org/show_bug.cgi?id=78922

        Reviewed by Julien Chaffraix.

        Test: fast/table/table-section-node-at-point-crash.html

        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::nodeAtPoint): recalc cells if the
        m_needsCellRecalc is set. Otherwise, we will end up accessing
        removed table cells.

2012-02-22  Abhishek Arya  <inferno@chromium.org>

        Cloning and linebox issues in multi-column layout.
        https://bugs.webkit.org/show_bug.cgi?id=78273

        Reviewed by Eric Seidel.

        Tests: fast/multicol/span/clone-flexbox.html
               fast/multicol/span/clone-summary.html
               fast/multicol/span/textbox-not-removed-crash.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::clone): Fix cloning algorithm to take
        care of cloning descendant classes of RenderBlock.
        (WebCore::RenderBlock::splitBlocks): When we move our inline children
        to cloneBlock, we need to clear our entire line box tree. Any descendant
        child in the hierarchy could be a part of our line box tree and will
        never get cleared since the child has moved to new parent cloneBlock.

2012-02-28  Abhishek Arya  <inferno@chromium.org>

        Incorrect before child parent calculation when adding new children
        to anonymous column blocks.
        https://bugs.webkit.org/show_bug.cgi?id=79755

        Reviewed by David Hyatt.

        before child can be wrapped in anonymous containers, so need to
        take care of that in before child parent calculation.

        Test: fast/multicol/span/before-child-anonymous-column-block.html

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

2012-02-21  Adam Klein  <adamk@chromium.org>

        ContainerNode::childrenChanged must be called immediately after removing children
        https://bugs.webkit.org/show_bug.cgi?id=79162

        Reviewed by Ryosuke Niwa.

        In r108152, a call to childrenChanged() was erroneously moved
        below the call to child->removedFromDocument(). This breaks, at the
        least, the behavior of the <title> element. This patch corrects the
        mistake and adds a test.

        Test: fast/dom/title-directionality-removeChild.html

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::removeChild):

2012-02-17  Adam Klein  <adamk@chromium.org>

        Avoid inconsistency in Node::inDocument due to DOMSubtreeModified dispatch
        https://bugs.webkit.org/show_bug.cgi?id=76087

        Reviewed by Ryosuke Niwa.

        Move post-removal notifications after call to Node::removeFromDocument
        to avoid inconsistent state of Node::inDocument() and thus avoid
        inconsistent state in DocumentOrderedMap.

        Tests: fast/dom/getElementById-consistency.html
               fast/dom/getElementById-consistency2.html

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::removeChild):
        * svg/SVGTRefElement.cpp:
        (WebCore::SVGTRefElement::updateReferencedText): Fixed to work with new timing of DOMSubtreeModified dispatch.

2012-03-25  Abhishek Arya  <inferno@chromium.org>

        Crash in ContainerNode::resumePostAttachCallbacks.
        https://bugs.webkit.org/show_bug.cgi?id=82159

        Reviewed by Hajime Morita.

        Test: plugins/object-onfocus-mutation-crash.html

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::resumePostAttachCallbacks): dispatching post attach
        callbacks when our attach depth is 1 can fire mutation events such as onfocus
        which can blow away |this|. Need to protect it with a RefPtr.
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::attach): add calls to suspend attach callbacks
        until the function completes.

2012-03-09  Tom Sepez  <tsepez@chromium.org>

        Hold cached images with a CachedResourceHandle rather than a raw pointer for CSSCrossfadeValue
        https://bugs.webkit.org/show_bug.cgi?id=80186

        Reviewed by Simon Fraser.

        Test: http/tests/css/cross-fade-reload.html

        * css/CSSCrossfadeValue.h:
        (CSSCrossfadeValue):

2012-05-31  Hajime Morrita  <morrita@chromium.org>

        REGRESSION(r117572): editing/spelling/spellcheck-async-remove-frame.html crashes on Mac
        https://bugs.webkit.org/show_bug.cgi?id=86859

        Reviewed by Ryosuke Niwa.

        The test tries to reach an invalid SpellChecker object. Such an access should be guarded
        beforehand.

        Asynchronous spellchecking can return results after originated
        frame is gone, which triggered an invalid access to the dead spellchecker
        object. This chagne prevents it by marking request objects from
        the spellchecker as invalid:

        - Originally TextCheckerClient API was passed a SpellCheker object.
          This change abstracted it behind TextCheckingRequest interface,
          didSucceed() and didCancel() method specifically.
        - TextCheckingRequest was turned from a plain old object into
          a refcounted abstract class, which is now subclassed by SpellCheckRequest.
        - SpellChecker now marks pending SpellCheckRequest objects as invalid
          on its destructor.

        Test: editing/spelling/spellcheck-async-remove-frame.html

        * WebCore.exp.in:
        * editing/SpellChecker.cpp:
        (WebCore::SpellCheckRequest::SpellCheckRequest):
        (WebCore::SpellCheckRequest::create):
        (WebCore::SpellCheckRequest::didSucceed):
        (WebCore):
        (WebCore::SpellCheckRequest::didCancel):
        (WebCore::SpellCheckRequest::wasRequestedBy):
        (WebCore::SpellCheckRequest::requesterDestroyed):
        (WebCore::SpellChecker::~SpellChecker):
        (WebCore::SpellChecker::requestCheckingFor):
        (WebCore::SpellChecker::invokeRequest):
        (WebCore::SpellChecker::didCheckSucceed):
        (WebCore::SpellChecker::didCheckCancel):
        * editing/SpellChecker.h:
        (WebCore):
        (SpellCheckRequest):
        (WebCore::SpellCheckRequest::isStarted):
        (SpellChecker):
        * loader/EmptyClients.h:
        (WebCore::EmptyTextCheckerClient::requestCheckingOfString):
        * platform/text/TextCheckerClient.h:
        (TextCheckerClient):
        * platform/text/TextChecking.h:
        (GrammarDetail):
        (TextCheckingResult):
        (TextCheckingRequest):
        (WebCore::TextCheckingRequest::~TextCheckingRequest):

2012-04-18  Hironori Bono  <hbono@chromium.org>

        Split SpellChecker::didCheck() to SpellChecker::didCheckSucceeded() and SpellChecker::didCheckCanceled()
        https://bugs.webkit.org/show_bug.cgi?id=83748

        Reviewed by Ryosuke Niwa.

        The current SpellChecker::didCheck() does not delete existing markers. It causes
        a problem that it leaves misspelled markers when a spellchecker client finishes
        checking text successfully. This change splits this function to didCheckSucceeded()
        and  didCheckCanceled() so the SpellChecker class can delete existing markers
        when its client finishes checking text successfully. (We do not have to erase
        existing markers when the client needs to cancel a text-check request.)

        Test: platform/chromium/editing/spelling/delete-misspelled-word.html

        * WebCore.exp.in: Replaced SpellChecker::didCheck with SpellChecker::didCheckSucceeded.
        * editing/SpellChecker.cpp:
        (WebCore::SpellChecker::didCheckSucceeded): Added.
        (WebCore):
        (WebCore::SpellChecker::didCheckCanceled): Added.
        * editing/SpellChecker.h:
        (SpellChecker): Added didCheckSucceeded and didCheckCanceled. Also changed didCheck to a private function.

2012-04-03  Hironori Bono  <hbono@chromium.org>

        Prevent spellchecking text pasted to an element having spellchecking disabled
        https://bugs.webkit.org/show_bug.cgi?id=81323

        Reviewed by Hajime Morita.

        This change prevent calling SpellChecker::requestCheckingFor when pasting text
        to an element whose spellcheck attribute is false or a password input.

        Test: editing/spelling/spellcheck-paste-disabled.html

        * editing/Editor.cpp:
        (WebCore::Editor::replaceSelectionWithFragment): Disabled spellchecking on password inputs.
        * editing/SpellChecker.cpp:
        (WebCore::SpellChecker::isCheckable): Return false when spellchecking is disabled.

2012-02-24  Shinya Kawanaka  <shinyak@chromium.org>

        SpellCheckRequest needs to know the context where the spellcheck happened.
        https://bugs.webkit.org/show_bug.cgi?id=79320

        Reviewed by Hajime Morita.

        WebKit clients should be able to get the context how the spellcheck happended.
        For example, WebKit clients may want to change the behavior by a spellcheck request is
        invoked in typing or in pasting.

        This patch added an enum in SpellCheckRequest so that WebKit clients can understand the context.

        * editing/Editor.cpp:
        (WebCore::Editor::replaceSelectionWithFragment):
        (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
        * editing/SpellChecker.cpp:
        (WebCore::SpellCheckRequest::SpellCheckRequest):
        (WebCore::SpellCheckRequest::create):
        (WebCore::SpellChecker::invokeRequest):
        * editing/SpellChecker.h:
        (SpellCheckRequest):
        (WebCore::SpellCheckRequest::textCheckingRequest):
        (WebCore::SpellCheckRequest::processType):
        * loader/EmptyClients.h:
        (WebCore::EmptyTextCheckerClient::requestCheckingOfString):
        * platform/text/TextCheckerClient.h:
        (WebCore):
        (TextCheckerClient):
        * platform/text/TextChecking.h:
        (TextCheckingRequest):
        (WebCore::TextCheckingRequest::TextCheckingRequest):
        (WebCore::TextCheckingRequest::setSequence):
        (WebCore::TextCheckingRequest::sequence):
        (WebCore::TextCheckingRequest::text):
        (WebCore::TextCheckingRequest::mask):
        (WebCore::TextCheckingRequest::processType):
        (WebCore):

2012-05-18  MORITA Hajime <morrita@google.com>

        Unreviewed attempt to fix build breakage on r117572

        * editing/Editor.cpp:
        (WebCore::Editor::willDetachPage):

2012-05-18  MORITA Hajime  <morrita@google.com>

        https://bugs.webkit.org/show_bug.cgi?id=85515
        Stale frame in WebCore::SpellChecker::didCheckSucceeded

        Reviewed by Ryosuke Niwa.

        Added EditorClient::frameWillDetachPage() notification to give a
        change to invalidate pending spellcheck requests on the client.

        Test: editing/spelling/spellcheck-async-remove-frame.html

        * editing/Editor.cpp:
        (WebCore::Editor::Editor):
        * editing/Editor.h:
        (Editor):
        * loader/EmptyClients.h:
        (WebCore::EmptyEditorClient::frameWillDetachPage):
        * page/EditorClient.h:
        (EditorClient):

2012-05-02  Philippe Normand  <pnormand@igalia.com>

        [GTK] media/track/track-cue-rendering-snap-to-lines-not-set.html fails
        https://bugs.webkit.org/show_bug.cgi?id=84378

        Reviewed by Eric Carlson.

        Fix positioning of the controls panel back to relative, as it is
        in the parent CSS. Also remove some duplicate CSS attributes.

        * css/mediaControlsGtk.css:
        (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):

2012-04-26  Dominik Röttsches  <dominik.rottsches@linux.intel.com>

        [cairo] CairoGraphicsContext fillRect (with Color) overrides composite operator
        https://bugs.webkit.org/show_bug.cgi?id=84848

        Reviewed by Martin Robinson.

        FillRectWithColor used to be called fillRectSourceOver before r89314
        where this operator still made sense. The way this function is used
        these days doesn't expect the composite operator to be overridden anymore.

        No new tests, covered by existing tests, e.g.
        svg/filters/feDropShadow.svg

        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::fillRectWithColor):

2012-05-04  Dan Winship  <danw@gnome.org>

        [GTK] ASSERTION FAILED: shouldLoadAsEmptyDocument(r.url()) ||
        !defersLoading() in MainResourceLoader.cpp:382

        Remove a soup_session_pause_message() call that got left behind,
        update the defersLoading stuff to handle this case.

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

        Reviewed by Martin Robinson.

        No new tests. Now passes loader/load-defer-resume-crash.html under
        debug build.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::sendRequestCallback):
        (WebCore::ResourceHandle::platformSetDefersLoading):

2012-05-04  Christophe Dumez  <christophe.dumez@intel.com>

        [soup] URL of the ResourceResponse passed to willSendRequest is incorrect
        https://bugs.webkit.org/show_bug.cgi?id=85072

        Reviewed by Gustavo Noronha Silva.

        Store the response message by catching the "got-headers" signal so
        that it can be passed later to willSendRequest() in case of
        redirection. This is required because the SoupMessage headers and URL
        have already been updated once restartedCallback() is called.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore):
        (WebCore::gotHeadersCallback):
        (WebCore::restartedCallback):
        (WebCore::sendRequestCallback):
        (WebCore::startHTTPRequest):

2012-05-14  Sriram Neelakandan  <sriram.neelakandan@gmail.com>

        [Gtk][DOM Bindings] Feature-protected interface usage in set/get property must be under condition guards
        https://bugs.webkit.org/show_bug.cgi?id=86060

        Reviewed by Martin Robinson.

        Property set/get functions generated was referencing WebCore::interface without any condition guard.
        This issue was triggered usually when an interface gets disabled; For instance; --disable-video, disables WebCore::HTMLMediaElement.
        Also updated the GObject binding reference tests

        No new tests - covered by existing bindings tests

        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateProperties):
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
        (webkit_dom_test_active_dom_object_get_property):
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
        (webkit_dom_test_event_constructor_get_property):
        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
        (webkit_dom_test_exception_get_property):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        (webkit_dom_test_interface_set_property):
        (webkit_dom_test_interface_get_property):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (webkit_dom_test_obj_set_property):
        (webkit_dom_test_obj_get_property):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        (webkit_dom_test_serialized_script_value_interface_get_property):

2012-05-30  Daniel Drake  <dsd@laptop.org>

        Check for GTK2/GTK3 symbol mismatch earlier
        https://bugs.webkit.org/show_bug.cgi?id=87687

        Reviewed by Martin Robinson.

        No new tests. Regressions in core behavior are covered by existing
        plugin tests and the fix deals with particular aspects of the system
        environment that are difficult to test.

        Detect plugins that would mix GTK+ symbols earlier, so that the
        WebKit can skip them and choose a more appropriate plugin module.

        * plugins/gtk/PluginPackageGtk.cpp: Move this code from PluginViewGtk.
        (WebCore::moduleMixesGtkSymbols):
        (WebCore::PluginPackage::load):
        * plugins/gtk/PluginViewGtk.cpp: Move this code to PluginPackageGtk.
        (WebCore::PluginView::platformStart):

2012-03-09  Abhishek Arya  <inferno@chromium.org>

        Crash when splitting an anonymous block in multi-column layout.
        https://bugs.webkit.org/show_bug.cgi?id=80432

        Reviewed by David Hyatt.

        Calculating currChild->nextSibling() is risky after destroying :after content
        because it can blow away currChild if it is a left over empty anonymous block.
        We need to calculate next sibling upfront, using the same trick, we do in
        RenderBlock::addChildIgnoringAnonymousColumnBlock to reset beforeChild (check
        out the line before splitFlow call).

        Test: fast/multicol/anonymous-block-split-crash.html

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

2012-03-24  Jeffrey Pfau  <jpfau@apple.com>

        XML error document creation should not fire mutation events
        https://bugs.webkit.org/show_bug.cgi?id=80765

        Reviewed by Adam Barth.

        Broke two tests that expected the old behavior, which have now been updated.

        * xml/XMLErrors.cpp:
        (WebCore::createXHTMLParserErrorHeader):
        (WebCore::XMLErrors::insertErrorMessageBlock):

2012-04-30  Abhishek Arya  <inferno@chromium.org>

        Remove positioned float code.
        https://bugs.webkit.org/show_bug.cgi?id=84795

        Reviewed by Dan Bernstein.

        Backout r92004 and some pieces from r91702.

        Test: fast/block/float/positioned-float-crash.html

        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator EFloat):
        * css/CSSValueKeywords.in:
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::RenderBlock):
        (WebCore::RenderBlock::layoutBlock):
        (WebCore::RenderBlock::addOverflowFromFloats):
        (WebCore::RenderBlock::layoutBlockChild):
        (WebCore::RenderBlock::simplifiedLayout):
        (WebCore::RenderBlock::layoutPositionedObjects):
        (WebCore::RenderBlock::insertFloatingObject):
        (WebCore::RenderBlock::positionNewFloats):
        (WebCore::RenderBlock::clearFloats):
        (WebCore::RenderBlock::FloatingObjects::clear):
        (WebCore::RenderBlock::FloatingObjects::increaseObjectsCount):
        (WebCore::RenderBlock::FloatingObjects::decreaseObjectsCount):
        * rendering/RenderBlock.h:
        (RenderBlock):
        (WebCore::RenderBlock::forceLayoutInlineChildren):
        (FloatingObject):
        (WebCore::RenderBlock::FloatingObject::FloatingObject):
        (WebCore::RenderBlock::hasOverhangingFloats):
        (WebCore::RenderBlock::FloatingObjects::FloatingObjects):
        (FloatingObjects):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::updateBoxModelInfoFromStyle):
        * rendering/RenderDeprecatedFlexibleBox.cpp:
        (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
        * rendering/RenderDeprecatedFlexibleBox.h:
        (RenderDeprecatedFlexibleBox):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock):
        * rendering/RenderFlexibleBox.h:
        (RenderFlexibleBox):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateScrollbarsAfterLayout):
        * rendering/style/RenderStyleConstants.h:

2012-05-07  Abhishek Arya  <inferno@chromium.org>

        Crash in RenderBlock::updateFirstLetterStyle.
        https://bugs.webkit.org/show_bug.cgi?id=85759

        Reviewed by Julien Chaffraix.

        Test: fast/css-generated-content/first-letter-next-sibling-crash.html

        RenderBlock::removeChild can bring up the children from last single anonymous block,
        causing |nextSibling| in RenderBlock::updateFirstLetterStyle to go stale. We prevent
        this by removing the child safely using removeChildNode before destroying it.

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

2012-05-04  Abhishek Arya  <inferno@chromium.org>

        ASSERT(beforeChildAnonymousContainer->isTable()); fails in RenderBlock::addChildIgnoringAnonymousColumnBlocks.
        https://bugs.webkit.org/show_bug.cgi?id=84606

        Reviewed by Julien Chaffraix.

        RenderBlock::removeChild forgot to set display on the anonymous block, causing it
        to display as INLINE. To prevent this kind of failure in future, we replace
        createAnonymousStyle with createAnonymousStyleWithDisplay to make everyone explictly
        pass display as the argument.

        Test: fast/block/block-add-child-crash.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::removeChild): 
        (WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
        (WebCore::RenderBlock::createAnonymousColumnsWithParentRenderer):
        (WebCore::RenderBlock::createAnonymousColumnSpanWithParentRenderer):
        * rendering/RenderInline.cpp:
        (WebCore::updateStyleOfAnonymousBlockContinuations):
        (WebCore::RenderInline::addChildIgnoringContinuation):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::propagateStyleToAnonymousChildren):
        * rendering/RenderRuby.cpp:
        (WebCore::createAnonymousRubyInlineBlock):
        * rendering/RenderRubyRun.cpp:
        (WebCore::RenderRubyRun::createRubyBase):
        (WebCore::RenderRubyRun::staticCreateRubyRun):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::createAnonymousWithParentRenderer):
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::createAnonymousWithParentRenderer):
        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::createAnonymousWithParentRenderer):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::createAnonymousWithParentRenderer):
        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore::RenderMathMLBlock::createAlmostAnonymousBlock):
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::createAnonymousWithParentRenderer):
        * rendering/mathml/RenderMathMLSubSup.cpp:
        (WebCore::RenderMathMLSubSup::addChild):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::createAnonymousStyleWithDisplay):
        * rendering/style/RenderStyle.h:

2012-05-16  Abhishek Arya  <inferno@chromium.org>

        Missing RenderApplet cast check in HTMLAppletElement::renderWidgetForJSBindings.
        https://bugs.webkit.org/show_bug.cgi?id=86627

        Reviewed by Andreas Kling.

        Test: java/inline-applet-crash.html

        * html/HTMLAppletElement.cpp:
        (WebCore::HTMLAppletElement::renderWidgetForJSBindings):

2012-05-10  Abhishek Arya  <inferno@chromium.org>

        Crash in ApplyStyleCommand::joinChildTextNodes.
        https://bugs.webkit.org/show_bug.cgi?id=85939

        Reviewed by Ryosuke Niwa.

        Test: editing/style/apply-style-join-child-text-nodes-crash.html

        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): add conditions
        to bail out if our start and end position nodes are removed due to 
        mutation events in joinChildTextNodes.
        (WebCore::ApplyStyleCommand::applyInlineStyle): this executes after
        applyRelativeFontStyleChange in ApplyStyleCommand::doApply. So, need
        to bail out if our start and end position nodes are removed due to
        mutation events.
        (WebCore::ApplyStyleCommand::joinChildTextNodes): hold all the children
        in a ref vector to prevent them from getting destroyed due to mutation events.

2012-05-09  Abhishek Arya  <inferno@chromium.org>

        Crash in ReplaceSelectionCommand::performTrivialReplace
        https://bugs.webkit.org/show_bug.cgi?id=85943

        Reviewed by Ryosuke Niwa.

        RefPtr nodeAfterInsertionPos to guard against mutation events.

        Test: editing/inserting/insert-html-crash.html

        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::performTrivialReplace):

2012-05-10  Abhishek Arya  <inferno@chromium.org>

        Crash due to floats not removed from first-letter element.
        https://bugs.webkit.org/show_bug.cgi?id=86019

        Reviewed by Julien Chaffraix.

        Move clearing logic of a floating/positioned object from removeChild
        to removeChildNode. There are lot of places which use removeChildNode
        directly and hence the object is not removed from the floating or
        positioned objects list.

        Test: fast/block/float/float-not-removed-from-first-letter.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::removeChild):
        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::removeChildNode):

2012-05-12  Abhishek Arya  <inferno@chromium.org>

        Crash in HTMLSelectElement::setOption
        https://bugs.webkit.org/show_bug.cgi?id=85420

        Reviewed by Eric Seidel
        
        RefPtr before option in HTMLSelectElement::setOption since it
        can get destroyed due to mutation events.

        Test: fast/dom/HTMLSelectElement/option-add-crash.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::setOption):

2012-05-15  Abhishek Arya  <inferno@chromium.org>

        Crash in Document::nodeChildrenWillBeRemoved.
        https://bugs.webkit.org/show_bug.cgi?id=85247

        Reviewed by Hajime Morita.

        Reverse ordering of commands to ref ptr the children set
        first before calling nodeChildrenWillBeRemoved, since it
        can fire mutation events.

        Test: fast/dom/HTMLObjectElement/beforeload-set-text-crash.xhtml

        * dom/ContainerNode.cpp:
        (WebCore::willRemoveChildren):

2012-05-10  Abhishek Arya  <inferno@chromium.org>

        Crash in swapInNodePreservingAttributesAndChildren.
        https://bugs.webkit.org/show_bug.cgi?id=85197
 
        Reviewed by Ryosuke Niwa.
 
        Keep the children in a ref vector before adding them to newNode.
        They can get destroyed due to mutation events.

        No new tests because we don't have a reduction.

        * editing/ReplaceNodeWithSpanCommand.cpp:
        (WebCore::swapInNodePreservingAttributesAndChildren):

2012-05-07  Ken Buchanan  <kenrb@chromium.org>

        Crash due to positioned object list not being cleared during block flow split
        https://bugs.webkit.org/show_bug.cgi?id=85074

        Reviewed by Abhishek Arya.

        When an element is being split due to a column span element being
        inserted, any of its ancestors that are underneath the column
        containing block also get split. If an ancestor has an object in
        its positioned object list from a previous layout, then the list
        will have to be cleared because the positioned object could have moved
        to be under the continuation. This patch causes the list to be
        cleared.

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

2012-05-01  James Simonsen  <simonjam@chromium.org>

        Ensure HTMLElementStack fails gracefully if it has a non-Element.
        https://bugs.webkit.org/show_bug.cgi?id=85167

        Reviewed by Adam Barth.

        Test: Added to html5lib/resources/webkit02.dat

        * html/parser/HTMLElementStack.cpp:
        (WebCore::HTMLElementStack::oneBelowTop):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processEndTag):

2012-02-20  Adam Barth  <abarth@webkit.org>

        Invalid cast in WebCore::toElement / WebCore::HTMLElementStack::ElementRecord::element
        https://bugs.webkit.org/show_bug.cgi?id=78975

        Reviewed by Eric Seidel.

        We're supposed to set the action attribute on the form element we just
        created.  Previously, we assumed the newly created form element would
        be on the top of the stack of open elements, but if we're in the table
        body insertion mode, the form element gets treated as self closing and
        is therefore popped off the stack of open elements.

        Fortunately, we already cache a pointer to the most recently inserted
        form element on the HTMLConstructionSite, so we can just grab the
        element from there.

        Test: html5lib/runner.html

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
        (WebCore):

2012-04-30  Justin Schuh  <jschuh@chromium.org>

        loadOrRedirectSubframe should return the owner element's frame
        https://bugs.webkit.org/show_bug.cgi?id=84780

        Reviewed by Nate Chapin.

        Test: fast/loader/javascript-url-iframe-remove-on-navigate.html

        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::loadOrRedirectSubframe):

2012-04-26  Jeffrey Pfau  <jpfau@apple.com>

        Invalid cast in WebCore::HTMLCollection::isAcceptableElement
        https://bugs.webkit.org/show_bug.cgi?id=84626

        Reviewed by Darin Adler.

        Check if the object is an HTMLElement before casting.

        Test: fast/dom/htmlcollection-non-html.html

        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::isAcceptableElement):

2012-04-25  Nate Chapin  <japhet@chromium.org>

        Crash in CachedRawResource::didAddClient() due to missing protector.
        https://bugs.webkit.org/show_bug.cgi?id=83632

        Reviewed by Eric Seidel.

        Test: http/tests/xmlhttprequest/access-control-repeated-failed-preflight-crash.html

        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::didAddClient):

2012-03-09  Nate Chapin  <japhet@chromium.org>

        CachedRawResource breaks when trying to load
        a resource with an empty response body from cache.

        Reviewed by Alexey Proskuryakov.

        Test: http/tests/cache/zero-length-xhr.html

        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::didAddClient): Don't exit early
            if m_data is empty, we may still need to notifyFinished().

2012-02-22  Nate Chapin  <japhet@chromium.org>

        Prevent CachedRawResource from sending the same data
        chunk multiple times.
        https://bugs.webkit.org/show_bug.cgi?id=78810

        Reviewed by Adam Barth.

        If a CachedRawResource receives data while a CachedRawResourceCallback
        timer is active, the incremental data will be sent to the client, followed
        but all data received so far, resulting in invalid data. Resolving this adds
        complexity to CachedRawResource and requires making a few more CachedResource
        functions virtual, so push the callback logic into CachedResource where it can
        be implemented more cleanly.

        Test: inspector/debugger/script-formatter-console.html
            should no longer be flaky.

        * loader/cache/CachedRawResource.cpp: CachedRawResourceCallback renamed and moved to CachedResource.
        (WebCore::CachedRawResource::didAddClient): More or less the same as sendCallbacks() was.
        * loader/cache/CachedRawResource.h:
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::addClient): Check the return value of addClientToSet() to determine whether
            or not to call didAddClient.
        (WebCore::CachedResource::didAddClient): May be called during addClient(), or may be called on a timer.
            If called on a timer, move the client between sets.
        (WebCore::CachedResource::addClientToSet): Determine whether didAddClient() can be called synchronously and
            return true if it can.
        (WebCore::CachedResource::removeClient): Ensure we cancel pending callbacks if necessary.
        (WebCore::CachedResource::CachedResourceCallback::CachedResourceCallback): Renamed and moved from CachedRawResource.
        * loader/cache/CachedResource.h:
        (WebCore::CachedResource::hasClients): Check m_clientsAwaitingCallback as well as m_clients.
        (WebCore::CachedResource::CachedResourceCallback::schedule):
        (WebCore::CachedResource::hasClient): Helper for calling contains() on both m_clientsAwaitingCallback and m_clients.

2012-04-05  Adam Klein  <adamk@chromium.org>

        Crash in MutationObservers due to an invalid HashSet iterator
        https://bugs.webkit.org/show_bug.cgi?id=83304

        Reviewed by Ojan Vafai.

        If the observed node has been GCed when we clear transient observers
        from it, the HashSet iterator in WebKitMutationObserver::deliver would
        be invalidated. This patch fixes that behavior by copying the relevant
        registrations into a seperate vector first and operating on the copy.

        This patch also fixes a bug: transient observers should be cleared
        after every microtask, not just when delivering.

        Tests: fast/mutation/clear-transient-without-delivery.html
               fast/mutation/transient-gc-crash.html

        * dom/MutationObserverRegistration.cpp:
        (WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
        Notify the observer that it has a transient registration so it can be properly cleared.
        * dom/MutationObserverRegistration.h:
        (WebCore::MutationObserverRegistration::hasTransientRegistrations):
        Add an accessor for use when deliver() creates its vector of registrations.
        * dom/WebKitMutationObserver.cpp:
        (WebCore::WebKitMutationObserver::setHasTransientRegistration): Add this to the active observer set
        to allow transient registrations to be cleared appropriately.
        (WebCore::WebKitMutationObserver::deliver): Avoid modifying m_registrations while iterating over it.
        Clear registrations before checking for a lack of records to deliver.
        * dom/WebKitMutationObserver.h:

2012-02-27  Adam Klein  <adamk@chromium.org>

        [MutationObservers] Clear pending mutation records on disconnect()
        https://bugs.webkit.org/show_bug.cgi?id=78639

        Reviewed by Ojan Vafai.

        Test: fast/mutation/disconnect-cancel-pending.html

        * dom/WebKitMutationObserver.cpp:
        (WebCore::WebKitMutationObserver::disconnect): Clear pending records.
        (WebCore::WebKitMutationObserver::deliver): Avoid calling the callback if no records are pending delivery.

2012-04-04  Dmitry Lomov  <dslomov@google.com>

        WorkerEventQueue::close might access deleted WorkerEventQueue::EventDispatcherTask.
        https://bugs.webkit.org/show_bug.cgi?id=83202

        On closing the event queue, WorkerEventQueue cancels all the tasks associated with events.
        The tasks in their turn delete themselves from the map whenever task gets executed.
        However if shutdown occurs when task is in queue but before task gets executed, the task will be deleted without execution.
        This patch makes sure that no deleted tasks stay in WorkerEventQueue, by task removing itself in destructor.

        Reviewed by David Levin.

        Covered by existing tests.

        * workers/WorkerEventQueue.cpp:
        (WebCore::WorkerEventQueue::EventDispatcherTask::~EventDispatcherTask):
        (WorkerEventQueue::EventDispatcherTask):
        (WebCore::WorkerEventQueue::EventDispatcherTask::performTask):

2012-04-04  Simon Fraser  <simon.fraser@apple.com>

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

        Reviewed by James Robinson.
        
        Fix an issue when removing elements with reflections from the document.

        Test: compositing/reflections/remove-reflection.html

        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::willBeDestroyed):

2012-04-02  Simon Fraser  <simon.fraser@apple.com>

        Fix issue with reflections and composited layers
        https://bugs.webkit.org/show_bug.cgi?id=82636

        Reviewed by Alexey Proskuryakov
        
        When tearing down GraphicsLayers which referene eachother via m_replicatedLayer/m_replicaLayer,
        we need to clean up the replica layer pointers.

        No new tests; tested by existing compositing and repaint tests.

        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::~GraphicsLayer):
        (WebCore::GraphicsLayer::setReplicatedByLayer):

2012-02-08  Kentaro Hara  <haraken@chromium.org>

        Replace [CheckNodeSecurity] with [CheckAccessToNode]
        https://bugs.webkit.org/show_bug.cgi?id=77971

        Reviewed by Adam Barth.

        [CheckNodeSecurity] is not implemented by code generators.
        This patch replaces [CheckNodeSecurity] with [CheckAccessToNode].

        Test: http/tests/security/cross-frame-access-frameelement.html

        * page/DOMWindow.idl:

2012-05-09  Ken Buchanan  <kenrb@chromium.org>

        Crash from removal of a line break object
        https://bugs.webkit.org/show_bug.cgi?id=85997

        Reviewed by David Hyatt.

        Regression from r115343. That replaced a call to setNeedsLayout()
        with a separate call that used a different bit during linebox
        invalidation after renderer child removal. There are special cases
        where layout isn't marked on parent nodes just from the removal, so
        line dirtying needs to explicitly mark ancestors for layout.

        * rendering/RenderObject.h:
        (WebCore::RenderObject::setAncestorLineBoxDirty):

2012-04-26  Ken Buchanan  <kenrb@chromium.org>

        Crash from removal of line break object after layout
        https://bugs.webkit.org/show_bug.cgi?id=75461

        Reviewed by David Hyatt.

        There is a condition where objects can get removed from underneath
        inlines while they represent a line break object in a RootInlineBox
        of an ancestor block. If an intermediary inline has already been
        marked as needing layout, then the line box will not get dirtied
        because dirtyLineFromChangedChild thinks it already has been.

        This patch introduces a new set in RenderObject to indicate whether
        an ancestral line box corresponding to the current line has been
        marked dirty or not. dirtyLinesFromChangedChild() can use this set 
        rather than m_selfNeedsLayout, so it will not be confused if a
        container was dirtied for some other reason that did not affect the
        line box.

        * rendering/RenderLineBoxList.cpp:
        (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild): Use the new
        set rather than m_selfNeedsLayout in the container to determine
        whether to continue propagating upward.
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::s_ancestorLineboxDirtySet): Instantiate the
        static member.
        (WebCore::RenderObject::willBeDestroyed): Clears the object from the
        linebox set when it is being destroyed.
        * rendering/RenderObject.h:
        (WebCore::RenderObject::s_ancestorLineboxDirtySet): Added static
        member set.
        (WebCore::RenderObject::setNeedsLayout): Clears the
        object from the linebox set when layout bits are getting cleared.
        (WebCore::RenderObject::ancestorLineBoxDirty): Added.
        (WebCore::RenderObject::setAncestorLineBoxDirty): Added.

2012-03-01  Abhishek Arya  <inferno@chromium.org>

        Prevent layout root to remain set on renderers getting destroyed.
        https://bugs.webkit.org/show_bug.cgi?id=79953

        Reviewed by Eric Seidel.

        Implement Julien Chaffraix's idea.

        * page/FrameView.h:
        (WebCore::FrameView::clearLayoutRoot): helper to clear layout root.
        * rendering/RenderObject.cpp:
        (WebCore::clearLayoutRootIfNeeded): if we know we are going
        away and we are the view's layout root, then we need to reset the layout
        root to prevent being used.
        (WebCore):
        (WebCore::RenderObject::willBeDestroyed): call clearLayoutRootIfNeeded at end.

2012-04-04  Jeffrey Pfau  <jpfau@apple.com>

        Move pending sheet removal from ~HTMLLinkElement to removal from document.
        https://bugs.webkit.org/show_bug.cgi?id=69184

        Reviewed by Adam Barth.

        Test: fast/html/pending-stylesheet-crash.html

        * html/HTMLLinkElement.cpp:
        (WebCore::HTMLLinkElement::~HTMLLinkElement):
        (WebCore::HTMLLinkElement::removedFromDocument):

2012-04-04  Sergio Villar Senin  <svillar@igalia.com>

        [GTK] ASSERT in SocketStreamHandleSoup.cpp
        https://bugs.webkit.org/show_bug.cgi?id=83123

        Reviewed by Martin Robinson.

        Do not try to reuse a GOwnPtr as calling outPtr() causes an
        assertion if the pointer is already valid. Also do not try to
        close the IOStream if it was not created.

        This patch fixes
        http/tests/websocket/tests/hybi/workers/worker-reload.html but I
        am leaving it skipped until webkit.org/b/83124 is fixed.

        * platform/network/soup/SocketStreamHandleSoup.cpp:
        (WebCore::connectedCallback):

2012-04-03  Yuta Kitamura  <yutak@chromium.org>

        Crash in WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadCreateWebSocketChannel
        https://bugs.webkit.org/show_bug.cgi?id=82873

        Reviewed by David Levin.

        WorkerThreadableWebSocketChannel::Bridge should properly handle the cases where inter-thread
        callback is not called due to the termination of the worker run loop. Specifically, the bridge
        should not send its "this" pointer to the main thread, because the bridge object may be freed
        in the worker thread before the main thread starts to process.

        Test: http/tests/websocket/tests/hybi/workers/worker-reload.html

        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
        (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
        (WebCore::ThreadableWebSocketChannelClientWrapper::peer):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didCreateWebSocketChannel):
        Renamed from setUseHixie76Protocol, as this funtion now also sets m_peer.
        Sets m_syncMethodDone to true, because this function is called in the end of
        synchronous wait of Bridge::initialize().
        (WebCore::ThreadableWebSocketChannelClientWrapper::clearPeer):
        (WebCore::ThreadableWebSocketChannelClientWrapper::useHixie76Protocol):
        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
        Add WorkerThreadableWebSocketChannel::Peer which is initialized after the creation of
        WebSocketChannel in the main thread.
        (ThreadableWebSocketChannelClientWrapper):
        * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
        (WebCore::WorkerThreadableWebSocketChannel::WorkerThreadableWebSocketChannel):
        Don't do synchronous wait in the constructor, as a member function may be called
        during the wait before the constructor finishes. The meat of the constructor has
        moved to initialize() function.
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::Bridge):
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::~Bridge):
        (WorkerContextDidInitializeTask):
        (WebCore::WorkerContextDidInitializeTask::create):
        (WebCore::WorkerContextDidInitializeTask::~WorkerContextDidInitializeTask):
        (WebCore::WorkerContextDidInitializeTask::WorkerContextDidInitializeTask):
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):
        Don't pass "this" object to the main thread. Receive the pointer to the peer object
        via ThreadableWebSocketChannelClientWrapper which is ThreadSafeRefCounted<>.
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
        m_peer may be NULL, and we should not do anything in that case.
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount):
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadClose):
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::close):
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::fail):
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::suspend):
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::resume):
        * Modules/websockets/WorkerThreadableWebSocketChannel.h:
        (WorkerThreadableWebSocketChannel):
        (WebCore::WorkerThreadableWebSocketChannel::refThreadableWebSocketChannel):
        (WebCore::WorkerThreadableWebSocketChannel::derefThreadableWebSocketChannel):
        (Bridge):
        * workers/DefaultSharedWorkerRepository.cpp:
        (SharedWorkerProxy):
        (WebCore::SharedWorkerProxy::postTaskForModeToWorkerContext):
        * workers/WorkerLoaderProxy.h:
        (WorkerLoaderProxy::postTaskForModeToWorkerContext):
        Return bool to indicate whether postTask was successful or not. This is necessary
        to avoid memory leaks of Peer object in Bridge::initialize() function.
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerContext):
        * workers/WorkerMessagingProxy.h:
        (WorkerMessagingProxy):

2012-04-09  Abhishek Arya  <inferno@chromium.org>

        Incorrect placement of new child to table when before child parent is not |this|.
        https://bugs.webkit.org/show_bug.cgi?id=82630

        Reviewed by Julien Chaffraix.

        Tests: fast/table/table-row-split2.html
               fast/table/table-section-split2.html
               fast/table/table-split.html
               fast/table/table-split2.html
        and tested by layouttests in commits r97180, r108127, and a few others.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::addChildToAnonymousColumnBlocks): function rename, block->box.
        (WebCore::RenderBlock::makeChildrenAnonymousColumnBlocks): ditto.
        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): ditto.
        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::moveChildTo): move these functions from RenderBlock, needs to be
        used in RenderBox::splitAnonymousBoxesAroundChild.
        (WebCore):
        (WebCore::RenderBox::moveChildrenTo): ditto.
        (WebCore::markBoxForRelayoutAfterSplit): helper to mark a block or table part for complete relayout
        after anonymous boxes are split around child.
        (WebCore::RenderBox::splitAnonymousBoxesAroundChild): moved from RenderBlock to be able
        to work with table parts.
        * rendering/RenderBox.h:
        (RenderBox):
        (WebCore::RenderBox::moveChildTo):
        (WebCore::RenderBox::moveAllChildrenTo):
        (WebCore::RenderBox::moveChildrenTo):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::addChild): no longer need the hack added in r95461.
        * rendering/RenderRubyBase.cpp:
        (WebCore::RenderRubyBase::moveChildren): function rename, block->box.
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::addChild): Use splitAnonymousBoxesAroundChild function when |beforeChild| != |this|.
        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::addChild): ditto. 
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::addChild): ditto.

2012-04-06  Abhishek Arya  <inferno@chromium.org>

        Virtualize createAnonymousBoxWithSameTypeAs.
        https://bugs.webkit.org/show_bug.cgi?id=83229

        Reviewed by Julien Chaffraix.

        This helps to use the same function to create anonymous
        table parts and in the future extend to more classes
        derived from RenderBox.

        The current switch case situation was going to be messy as
        we will need to mix cases that were very dependent on the
        class, so it made sense to add a virtual function.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::splitAnonymousBlocksAroundChild):
        (WebCore::RenderBlock::createAnonymousBoxWithSameTypeAs):
        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/RenderBox.h:
        (WebCore::RenderBox::createAnonymousBoxWithSameTypeAs):
        (RenderBox):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::splitFlow):
        * rendering/RenderTable.h:
        (WebCore::RenderTable::createAnonymousBoxWithSameTypeAs):
        * rendering/RenderTableCell.h:
        (WebCore::RenderTableCell::createAnonymousBoxWithSameTypeAs):
        * rendering/RenderTableRow.h:
        (WebCore::RenderTableRow::createAnonymousBoxWithSameTypeAs):
        * rendering/RenderTableSection.h:
        (WebCore::RenderTableSection::createAnonymousBoxWithSameTypeAs):

2012-04-04  Abhishek Arya  <inferno@chromium.org>

        Add helpers to create anonymous table parts.
        https://bugs.webkit.org/show_bug.cgi?id=83116

        Reviewed by Julien Chaffraix.

        The patch introduces helpers to create anonymous table parts by
        introducing a new static function createAnonymousWithParentRenderer.
        The function builds a new anonymous wrapper of the same type as the class,
        inheriting style properties from parent and sets a display based on
        argument/default values. Also we streamline the RenderBlock functions
        to match this naming convention.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::createAnonymousBlockWithSameTypeAs):
        (WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):
        (WebCore):
        (WebCore::RenderBlock::createAnonymousColumnsWithParentRendererAndDisplay):
        (WebCore::RenderBlock::createAnonymousColumnSpanWithParentRendererAndDisplay):
        * rendering/RenderBlock.h:
        (RenderBlock):
        (WebCore::RenderBlock::createAnonymousBlock):
        (WebCore::RenderBlock::createAnonymousColumnsBlock):
        (WebCore::RenderBlock::createAnonymousColumnSpanBlock):
        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::addChild):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::addChild):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::addChild):
        (WebCore::RenderTable::createAnonymousWithParentRendererAndDisplay):
        (WebCore):
        * rendering/RenderTable.h:
        (RenderTable):
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::createAnonymousWithParentRendererAndDisplay):
        (WebCore):
        * rendering/RenderTableCell.h:
        (RenderTableCell):
        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::addChild):
        (WebCore::RenderTableRow::createAnonymousWithParentRendererAndDisplay):
        (WebCore):
        * rendering/RenderTableRow.h:
        (RenderTableRow):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::addChild):
        (WebCore::RenderTableSection::createAnonymousWithParentRendererAndDisplay):
        (WebCore):
        * rendering/RenderTableSection.h:
        (RenderTableSection):

2012-02-22  Abhishek Arya  <inferno@chromium.org>

        Crash in RenderBlock::addChildIgnoringAnonymousColumnBlocks.
        https://bugs.webkit.org/show_bug.cgi?id=79043

        Reviewed by Julien Chaffraix.

        Tests: fast/runin/runin-div-before-child.html
               fast/runin/runin-table-before-child.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): handle
        the case of run-in elements and strengthen code to handle cases where
        beforeChild is incorrectly set.
        * rendering/RenderObject.h: remove anonymousContainer function since
        the new logic in RenderBlock does not need it.

2012-04-11  Erik Arvidsson  <arv@chromium.org>

        StyleElement ownerNode is not cleared correctly
        https://bugs.webkit.org/show_bug.cgi?id=83696

        Reviewed by Antti Koivisto.

        When the css text changes in such a way that we remove the sheet of a style element or a link[rel=stylesheet]
        element we need to ensure that the ownerNode of the sheet is cleared. If we don't do this and there is a
        wrapper for the sheet the sheet is kept alive but the ownerNode of the sheet may point to a deleted node.

        Tests: fast/dom/StyleSheet/detached-sheet-owner-node-link.html
               fast/dom/StyleSheet/detached-sheet-owner-node.html

        * dom/StyleElement.cpp:
        (WebCore::StyleElement::removedFromDocument):
        (WebCore::StyleElement::clearSheet):
        (WebCore):
        (WebCore::StyleElement::createSheet):
        * dom/StyleElement.h:
        (StyleElement):
        * html/HTMLLinkElement.cpp:
        (WebCore::HTMLLinkElement::process):
        (WebCore::HTMLLinkElement::clearSheet):
        (WebCore):
        * html/HTMLLinkElement.h:
        (HTMLLinkElement):

2012-04-03  Abhishek Arya  <inferno@chromium.org>

        Crash in SelectorChecker::checkOneSelector.
        https://bugs.webkit.org/show_bug.cgi?id=83040

        Reviewed by Antti Koivisto.

        Test: fast/css/css-set-selector-text-crash.html

        Removing the early bail when we detect that our selector text
        hasn't changed, and we don't notify the styleSelectorChanged.
        In fact, when we adopt the new selector list, the old one will
        get destroyed and the styleSelectorChanged call needs to be made.

        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::setSelectorText):

2012-04-09  Abhishek Arya  <inferno@chromium.org>

        Crash due to floats not cleared before starting SVG <text> layout.
        https://bugs.webkit.org/show_bug.cgi?id=83021

        Reviewed by Dirk Schulze.

        Manual Test - ManualTests/svg-text-float-not-removed-crash.html.
        Can't reproduce the failure in DRT.

        forceLayoutInlineChildren is used in SVG <text> layout and overrides
        RenderBlock::layoutBlock. However, it missed the 'clearFloats' step,
        which will cause a crash when trying to access removed renderers.

        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::forceLayoutInlineChildren):

2012-04-02  Abhishek Arya  <inferno@chromium.org>

        <select> shouldn't intrude as a run-in.
        https://bugs.webkit.org/show_bug.cgi?id=82829

        Reviewed by Tony Chang.

        Matches Opera's behavior which also does not allow <select>
        to intrude as a run-in into the neighbouring block.
        IE and Firefox doesn't support run-ins, so can't compare behavior
        with them.

        Test: fast/runin/select-runin.html

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

2012-04-10  Abhishek Arya  <inferno@chromium.org>

        Crash due to intruding float not removed from next siblings.
        https://bugs.webkit.org/show_bug.cgi?id=83301

        Reviewed by Eric Seidel.

        Test: fast/block/float/intruding-float-not-removed-from-next-sibling-crash.html

        markSiblingsWithFloatsForLayout currently only handled overhanging floats and made
        checks for those by checking if logicalBottomForFloat > our logicalHeight. We need
        to take care of intruding floats as well, since these can intrude into the neighbouring
        blocks too. So, generalized the function to check all our next siblings if they contains
        that float (one getting removed) and if yes, mark it and all its descendants for layout.
        This fixes the crash.

        For performance, we change the looping condition to iterate over the next sibling
        blocks first and finding which ones can contain floats and then check it against
        our floating object list. Currently, it is the other way around and is less
        performant due to repeated calls to isRenderBlock(), isFloatingOrPositioned()
        and avoidFloats().

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

2012-04-09  Abhishek Arya  <inferno@chromium.org>

        ASSERTION FAILED: !attached() in Node::attach.
        https://bugs.webkit.org/show_bug.cgi?id=80726

        Reviewed by Adam Barth.

        While parsing XML document, prevent attaching the leaf text node
        back to document, if its parent is not attached.

        Test: fast/dom/text-node-attach-crash.xhtml

        * xml/parser/XMLDocumentParser.cpp:
        (WebCore::XMLDocumentParser::exitText):

2012-03-26  Adam Barth  <abarth@webkit.org>

        FrameLoader::shouldAllowNavigation uses Frame for context rather than Document
        https://bugs.webkit.org/show_bug.cgi?id=81020

        Reviewed by Eric Seidel.

        The vast majority of security checks in the browser should use a
        ScriptExecutionContext (aka a Document) to designate "who" is
        attempting to perform a given action.  Unfortunately,
        shouldAllowNavigation was using a Frame to designate "who" is
        attempting the navigation.

        In cases when the executing script is "inactive" (i.e., belongs to a
        document that is not currently displayed in a Frame), using the Frame
        can cause us to grant the script the privileges of the document that's
        currently displayed in the Frame rather than the one that contains the
        script.

        This patch moves shouldAllowNavigation from FrameLoader to Document
        (and renames it to canNavigate), effectively change the context object
        from a Frame to a Document.

        Test: http/tests/security/frameNavigation/inactive-function-in-popup-navigate-child.html

        * bindings/generic/BindingSecurity.h:
        (BindingSecurity):
        (WebCore):
        * bindings/v8/V8Utilities.cpp:
        (WebCore):
        * bindings/v8/V8Utilities.h:
        (WebCore):
            - Deletes unused code.
        * dom/Document.cpp:
        (WebCore::canAccessAncestor):
        (WebCore):
        (WebCore::Document::canNavigate):
            - canNavigate is copied from FrameLoader::shouldAllowNavigation.
              I've added a null-check bailout if the document is inactive.
        * dom/Document.h:
        (Document):
        * loader/FormState.cpp:
        (WebCore::FormState::FormState):
        (WebCore::FormState::create):
        * loader/FormState.h:
        (WebCore):
        (FormState):
        (WebCore::FormState::sourceDocument):
        * loader/FormSubmission.cpp:
        (WebCore::FormSubmission::create):
            - Changes the context object from Frame to Document.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::submitForm):
        (WebCore::FrameLoader::loadFrameRequest):
        (WebCore):
        (WebCore::FrameLoader::findFrameForNavigation):
            - FrameLoader::findFrameForNavigation still incorrectly uses Frame
              as the context object, but that's a bug for another patch.
        (WebCore::createWindow):
        * loader/FrameLoader.h:
        (FrameLoader):
        * loader/NavigationScheduler.cpp:
        (WebCore::ScheduledFormSubmission::fire):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::close):
        (WebCore::DOMWindow::setLocation):
        (WebCore::DOMWindow::open):
        * page/History.cpp:
        (WebCore::History::go):

2012-03-13  Stephen Chenney  <schenney@chromium.org>

        Crash in WebCore::GraphicsContext::paintingDisabled
        https://bugs.webkit.org/show_bug.cgi?id=80669

        Reviewed by Nikolas Zimmermann.

        The SVGImageBufferTools::clipToImageBuffer method deletes the clip
        image when it thinks it is not needed. However, there are cases when
        it is in fact still needed, particularly when the clip buffer is
        coming from higher up in the stack where it may be needed again.

        So this patch adds a flag to only allow deletion of the image buffer
        if it was created at the most recent call site.

        Tests: svg/custom/circular-clip-path-references-crash-expected.svg
               svg/custom/circular-clip-path-references-crash.svg

        * rendering/svg/RenderSVGResourceClipper.cpp:
        (WebCore::RenderSVGResourceClipper::applyClippingToContext):
        * rendering/svg/RenderSVGResourceGradient.cpp:
        (WebCore::clipToTextMask):
        * rendering/svg/RenderSVGResourceMasker.cpp:
        (WebCore::RenderSVGResourceMasker::applyResource):
        * rendering/svg/SVGImageBufferTools.cpp:
        (WebCore::SVGImageBufferTools::clipToImageBuffer):
        * rendering/svg/SVGImageBufferTools.h:
        (SVGImageBufferTools):

2012-03-09  Ken Buchanan  <kenrb@chromium.org>

        Crash due to inserting letter into div with first-letter
        https://bugs.webkit.org/show_bug.cgi?id=78534

        Reviewed by David Hyatt.

        This fixes an issue in RenderTextFragment with setTextInternal
        getting called with different intents. While most calls to it
        are intended to change the underlying DOM node string, it can
        also be called as a result of styleDidChange just for transforms
        on the substring text fragment. This adds a mechanism for internal
        callers to specify if the internal text is being updated without
        a DOM node text change.

        * rendering/RenderTextFragment.cpp:
        (WebCore::RenderTextFragment::styleDidChange)
        (WebCore::RenderTextFragment::setTextInternal)
        * rendering/RenderTextFragment.h:
        (WebCore::RenderTextFragment)

2012-03-13  Philip Rogers  <pdr@google.com>

        Fix the use of stale text fragments
        https://bugs.webkit.org/show_bug.cgi?id=80729

        Reviewed by Nikolas Zimmermann.

        Previously, we were allowing SVGTextFragments to get out of sync with the
        actual text in RenderSVGInlineTextBox. This patch reuses the dirty line
        box code in RenderText::setTextWithOffset to force
        clearTextFragments() when setTextWithOffset is called, preventing the use
        of stale SVGTextFragments.

        Test: svg/custom/delete-text-crash.html

        * rendering/InlineBox.h:
        (InlineBox):
        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::dirtyLineBoxes):
        (WebCore):
        * rendering/svg/SVGInlineTextBox.h:
        (SVGInlineTextBox):

2012-03-27  Adam Klein  <adamk@chromium.org>

        Hold a reference to refChild in insertBefore before calling collectChildrenAndRemoveFromOldParent
        https://bugs.webkit.org/show_bug.cgi?id=82377

        Reviewed by Ryosuke Niwa.

        This fixes a regression from r111925.

        Test: fast/dom/insertBefore-refChild-crash.html

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::insertBefore): Move the 'next' RefPtr above the call to
        collectChildrenAndRemoveFromOldParent and rename refChildPreviousSibling
        to 'prev' (matching appendChild and replaceChild).

2012-04-26  Zan Dobersek  <zandobersek@gmail.com>

        [Gtk] WebKitGTK+ 1.8.1 fails to build when disabling HTML Video feature
        https://bugs.webkit.org/show_bug.cgi?id=84838

        Reviewed by Martin Robinson.

        Wrap WebCore objects and functions in GObject property setters and getters
        with conditional guards (if present) to avoid compilation errors.

        No new tests - changes covered by existing bindings tests.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateProperty):
        (GenerateProperties):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: Rebaseline.
        (webkit_dom_test_interface_set_property):
        (webkit_dom_test_interface_get_property):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp: Ditto.
        (webkit_dom_test_serialized_script_value_interface_get_property):

2012-04-22  Martin Robinson  <mrobinson@igalia.com>

        REGRESSION(113604): [Soup] Some pages that use synchronous XMLHttpRequests freeze the browser
        https://bugs.webkit.org/show_bug.cgi?id=84560

        Reviewed by Xan Lopez.

        When kicking off a synchronous XMLHttpRequest, add one to the connection
        limit. This ensures that when a page starts a synchronous request, while
        already at the connection limit the request will not deadlock.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader): Accept a new SoupSession
        argument so that we can get the correct SoupSession for the networking context. Bump
        the connection limit.
        (WebCore::WebCoreSynchronousLoader::~WebCoreSynchronousLoader): Decrement the connection limit.
        (WebCore::WebCoreSynchronousLoader::adjustMaxConnections): Added this helper.
        (WebCoreSynchronousLoader): Added a new SoupSession member.
        (WebCore::sessionFromContext): Added this helper.
        (WebCore::ResourceHandleInternal::soupSession): Use the new sessionFromContext helper.
        (WebCore::ResourceHandle::loadResourceSynchronously): Pass the SoupSession from the NetworkingContext
        to the synchronous loader.

2012-04-18  MORITA Hajime  <morrita@google.com>

        ShadowTree uses weak iteration patterns
        https://bugs.webkit.org/show_bug.cgi?id=80572

        Reviewed by Dimitri Glazkov.

        Patch by Adam Barth.

        This patch moves various ShadowTree to using a better iteration pattern
        in which we collect all the ShadowRoots we're planning to iterate into
        a vector and then iterate over them.

        * dom/ShadowTree.cpp:
        (ShadowRootVector):
        (WebCore::ShadowRootVector::ShadowRootVector):
        (WebCore):
        (WebCore::ShadowTree::removeAllShadowRoots):
        (WebCore::ShadowTree::insertedIntoDocument):
        (WebCore::ShadowTree::removedFromDocument):
        (WebCore::ShadowTree::insertedIntoTree):
        (WebCore::ShadowTree::removedFromTree):
        (WebCore::ShadowTree::willRemove):

2012-04-18  Stephen Chenney  <schenney@chromium.org>

        SVG layout leaves objects still needing layout
        https://bugs.webkit.org/show_bug.cgi?id=81006

        Reviewed by Nikolas Zimmermann.

        Change the layout of SVG objects such that resources that trigger
        layout of other objects are handled in a distinct pass, and then
        objects still requiring layout are laid out again.

        Test: svg/custom/delete-text-innerText-crash.html

        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::layout):
        * rendering/svg/RenderSVGResourceMarker.cpp:
        (WebCore::RenderSVGResourceMarker::layout):
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::layout):
        (WebCore::RenderSVGRoot::addResourceForClientInvalidation):
        (WebCore):
        * rendering/svg/RenderSVGRoot.h:
        (RenderSVGRoot):

2012-04-18  Abhishek Arya  <inferno@chromium.org>

        Crash due to accessing removed parent lineboxes when clearing selection.
        https://bugs.webkit.org/show_bug.cgi?id=81359

        Reviewed by Eric Seidel.

        Similar to r110323, adds the canUpdateSelectionOnRootLineBoxes
        check to more places.

        Test: editing/selection/clear-selection-crash.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::canUpdateSelectionOnRootLineBoxes):
        * rendering/RenderSelectionInfo.h:
        (WebCore::RenderSelectionInfo::RenderSelectionInfo):
        (WebCore::RenderBlockSelectionInfo::RenderBlockSelectionInfo):

2012-04-18  Abhishek Arya  <inferno@chromium.org>

        Crash due to accessing removed parent lineboxes when clearing selection.
        https://bugs.webkit.org/show_bug.cgi?id=79264

        Reviewed by Dave Hyatt.

        Test: editing/selection/first-letter-selection-crash.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::setSelectionState):
        1. No need of checking if we are being set to same selection state.
        Now tested by setSelectionStateIfNeeded. Rename 's' with 'state' and
        'cb' with 'containingBlock'.
        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::setSelectionState):
        1. Add check to canUpdateSelectionOnRootLineBoxes to make sure our
        root line boxes are still valid before setting them.
        2. No need of calling setSelectionState on containing block since our base
        class call to RenderBox::setSelectionState covers it. Added a comment to indicate that.
        3. Use m_inlineBoxWrapper variable directly to simplify the ifs.
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::canUpdateSelectionOnRootLineBoxes):
        (WebCore): helper function to tell if we can update selection information
        on our root line boxes. This returns false if our containing block is pending layout.
        * rendering/RenderObject.h:
        (RenderObject):
        (WebCore::RenderObject::setSelectionStateIfNeeded):
        (WebCore): helper to set selection state only if it is different from our
        current selection state.
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::setSelectionState):
        1. Rename 's' to 'state', 'line' to 'root' and use m_inlineBoxWrapper directly
        to simplify ifs.
        2. Add check to canUpdateSelectionOnRootLineBoxes to make sure our
        root line boxes are still valid before setting them.
        * rendering/RenderText.cpp:
        (WebCore::RenderText::setSelectionState):
        1. Add check to canUpdateSelectionOnRootLineBoxes to make sure our
        root line boxes are still valid before setting them.
        2. Rename 'cb' to 'containingBlock', 'line' to 'root', move InlineTextBox
        declaration to local.
        * rendering/RenderView.cpp:
        (WebCore::RenderView::setSelection): Replace all calls to setSelectionState
        with setSelectionStateIfNeeded.
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::setSelectionState):
        1. No need of checking if we are being set to same selection state.
        Now tested by setSelectionStateIfNeeded.

2012-04-18  Ken Buchanan  <kenrb@chromium.org>

        Crash due to floating object lists not properly being cleared
        https://bugs.webkit.org/show_bug.cgi?id=74056

        Reviewed by David Hyatt.

        Add a check to clearFloats() that determines when intruding floats
        are being cleared and not re-added. In this condition, ensure
        children with floats are also getting layout because they might
        need to have the same intruding floats cleared from their floating
        object lists also.

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

2012-04-18  Abhishek Arya  <inferno@chromium.org>

        Crash in GenericEventQueue::~GenericEventQueue.
        https://bugs.webkit.org/show_bug.cgi?id=81976

        Reviewed by Eric Carlson.

        * dom/GenericEventQueue.cpp:
        (WebCore::GenericEventQueue::create):
        (WebCore):
        (WebCore::GenericEventQueue::GenericEventQueue):
        (WebCore::GenericEventQueue::enqueueEvent):
        (WebCore::GenericEventQueue::timerFired):
        * dom/GenericEventQueue.h:
        (GenericEventQueue):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        (WebCore::HTMLMediaElement::scheduleEvent):
        (WebCore::HTMLMediaElement::updateActiveTextTrackCues):
        (WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks):
        (WebCore::HTMLMediaElement::hasPendingActivity):
        * html/HTMLMediaElement.h:
        (HTMLMediaElement):

2012-04-18  Jer Noble  <jer.noble@apple.com>

        Heap-use-after-free in WebCore::InlineFlowBox::deleteLine due to fullscreen issues.
        https://bugs.webkit.org/show_bug.cgi?id=82055

        Reviewed by David Hyatt.

        No new tests; fixes fuzz test crasher which is not reproducible in DRT or WKTR.

        When a RenderFullScreen object is inserted between a child and parent renderer, make sure the
        parent renderer deletes its line boxes by calling setNeedsLayoutAndPrefWidthsRecalc().  This
        forces its InlineBox renderers to be removed from the line boxes and their parents in the correct
        order, fixing a double-delete crash.

        The same is true when unwrapping the RenderFullScreen object, and when creating and inserting
        the full screen placeholder.

        * rendering/RenderFullScreen.cpp:
        (RenderFullScreen::wrapRenderer):
        (RenderFullScreen::unwrapRenderer):
        (RenderFullScreen::createPlaceholder):

2012-04-18  Ken Buchanan  <kenrb@chromium.org>

        Assert failure from capitalized RenderTextFragment
        https://bugs.webkit.org/show_bug.cgi?id=82096

        Reviewed by Ryosuke Niwa.

        The cause of this bug was the call to RenderTextFragment::setTextInternal
        resulting from a style change from RenderObject::addChild. The idea here
        is to better separate the code path for transforming existing text from
        the code path for replacing the underlying text of a node. For
        RenderTextFragment this has to be clear because only in the latter case
        does the first-letter get reset.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::addChild): Added call to transformText
        * rendering/RenderText.cpp:
        (WebCore::RenderText::styleDidChange): Added call to transformText
        (WebCore::RenderText::transformText): Added
        * rendering/RenderText.h:
        (WebCore::RenderText::setText): Changed to virtual so RenderTextFragment can override
        (WebCore::RenderText::transformText): Added
        * rendering/RenderTextFragment.cpp:
        (WebCore::RenderTextFragment::styleDidChange): Removed references to
        m_allowFragmentReset which was the previous approach to separating the
        code paths
        (WebCore::RenderTextFragment::setTextInternal): Deleted
        (WebCore::RenderTextFragment::setText): Added with most of logic that was
        previously in setTextInternal
        (WebCore::RenderTextFragment::transformText): Added
        * rendering/RenderTextFragment.h:
        (WebCore::RenderTextFragment::setText): Added
        (WebCore::RenderTextFragment::transformText): Added
        (WebCore::RenderTextFragment::setTextInternal): Deleted

2012-04-18  Adam Barth  <abarth@webkit.org>

        FrameLoader::shouldAllowNavigation uses Frame for context rather than Document
        https://bugs.webkit.org/show_bug.cgi?id=81020

        Reviewed by Eric Seidel.

        The vast majority of security checks in the browser should use a
        ScriptExecutionContext (aka a Document) to designate "who" is
        attempting to perform a given action.  Unfortunately,
        shouldAllowNavigation was using a Frame to designate "who" is
        attempting the navigation.

        In cases when the executing script is "inactive" (i.e., belongs to a
        document that is not currently displayed in a Frame), using the Frame
        can cause us to grant the script the privileges of the document that's
        currently displayed in the Frame rather than the one that contains the
        script.

        This patch moves shouldAllowNavigation from FrameLoader to Document
        (and renames it to canNavigate), effectively change the context object
        from a Frame to a Document.

        Test: http/tests/security/frameNavigation/inactive-function-in-popup-navigate-child.html

        * bindings/generic/BindingSecurity.h:
        (BindingSecurity):
        (WebCore):
        * bindings/v8/V8Utilities.cpp:
        (WebCore):
        * bindings/v8/V8Utilities.h:
        (WebCore):
            - Deletes unused code.
        * dom/Document.cpp:
        (WebCore::canAccessAncestor):
        (WebCore):
        (WebCore::Document::canNavigate):
            - canNavigate is copied from FrameLoader::shouldAllowNavigation.
              I've added a null-check bailout if the document is inactive.
        * dom/Document.h:
        (Document):
        * loader/FormState.cpp:
        (WebCore::FormState::FormState):
        (WebCore::FormState::create):
        * loader/FormState.h:
        (WebCore):
        (FormState):
        (WebCore::FormState::sourceDocument):
        * loader/FormSubmission.cpp:
        (WebCore::FormSubmission::create):
            - Changes the context object from Frame to Document.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::submitForm):
        (WebCore::FrameLoader::loadFrameRequest):
        (WebCore):
        (WebCore::FrameLoader::findFrameForNavigation):
            - FrameLoader::findFrameForNavigation still incorrectly uses Frame
              as the context object, but that's a bug for another patch.
        (WebCore::createWindow):
        * loader/FrameLoader.h:
        (FrameLoader):
        * loader/NavigationScheduler.cpp:
        (WebCore::ScheduledFormSubmission::fire):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::close):
        (WebCore::DOMWindow::setLocation):
        (WebCore::DOMWindow::open):
        * page/History.cpp:
        (WebCore::History::go):

2012-04-18  Stephen Chenney  <schenney@chromium.org>

        Failure to invalidate text position attributes when DOM changes
        https://bugs.webkit.org/show_bug.cgi?id=81464

        Reviewed by Nikolas Zimmermann.

        The text positioning elements data structure in RenderSVGText must be
        updated when either the children of the corresponding element are
        modified, or the length of the text inside the elements changes.
        Previously, the call to clear the text positioning elements (to force
        recomputation) was guarded by a flag. If code tried to invalidate when
        the flag was not set, then something set the flag, the elements would
        be invalid at use time.

        This patch modifies the method that invalidates the positining
        attributes so that the action always happens. It also renames the
        method to more accurately reflect its function.

        Test: svg/custom/delete-modified-text-in-defs-crash.svg

        * rendering/svg/RenderSVGInlineText.cpp:
        (WebCore::RenderSVGInlineText::setTextInternal): Rename textDOMChanged to invalidateTextPositioningElements
        * rendering/svg/RenderSVGText.cpp:
        (WebCore::RenderSVGText::invalidateTextPositioningElements): Rename
        textDOMChanged to invalidateTextPositioningElements and remove the check against the needsPosition... flag.
        * rendering/svg/RenderSVGText.h:
        (RenderSVGText): Rename textDOMChanged to invalidateTextPositioningElements
        * svg/SVGAElement.cpp:
        (WebCore::SVGAElement::childrenChanged): Rename textDOMChanged to invalidateTextPositioningElements
        * svg/SVGTextContentElement.cpp:
        (WebCore::SVGTextContentElement::childrenChanged): Rename textDOMChanged to invalidateTextPositioningElements

2012-04-18  Abhishek Arya  <inferno@chromium.org>

        Crash in ApplyStyleCommand::applyInlineStyleToNodeRange.
        https://bugs.webkit.org/show_bug.cgi?id=81959

        Reviewed by Ryosuke Niwa.

        Test: editing/execCommand/apply-style-command-crash.html

        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange): RefPtr the weak
        node iterator |node|.
        * editing/ApplyStyleCommand.h:
        (ApplyStyleCommand): convert |startNode| and |pastEndNode| into PassRefPtr.

2012-04-18  Abhishek Arya  <inferno@chromium.org>

        Crash in RenderBlock::splitBlocks.
        https://bugs.webkit.org/show_bug.cgi?id=81926

        Reviewed by Julien Chaffraix.

        We are updating the :after content before calling splitFlow. The :after content
        gets blown away since it will go to the continuation. beforeChild was earlier
        set to the first child. Being the last anonymous block, its children gets pulled
        up in collapseAnonymousBoxChild and it gets destroyed. So, we need to update
        beforeChild value. 

        Test: fast/multicol/span/update-after-content-before-child-crash.html

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

2012-04-18  Eric Carlson  <eric.carlson@apple.com>

        Deal with DOM modifications when evaluating source elements.
        https://bugs.webkit.org/show_bug.cgi?id=81163

        Reviewed by Alexey Proskuryakov.

        Test: media/video-beforeload-remove-source.html

        * dom/ContainerNode.cpp: Make NodeVector and collectNodes public, renamed as getChildNodes.
        (WebCore::ContainerNode::takeAllChildrenFrom): collectNodes -> getChildNodes.
        (WebCore::ContainerNode::willRemove): collectNodes -> getChildNodes.
        (WebCore::ContainerNode::willRemoveChildren): collectNodes -> getChildNodes.
        (WebCore::ContainerNode::insertedIntoDocument): collectNodes -> getChildNodes.
        (WebCore::ContainerNode::removedFromDocument): collectNodes -> getChildNodes.
        * dom/ContainerNode.h:
        (WebCore::getChildNodes):

        * editing/ReplaceSelectionCommand.cpp: Remove unused NodeVector declaration.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement): m_nextChildNodeToConsider and m_currentSourceNode
            are now RefPtrs.
        (WebCore::HTMLMediaElement::loadTimerFired): Protect HTMLMediaElement from being deleted during
            a DOM modification during an event callback.
        (WebCore::HTMLMediaElement::load): Ditto.
        (WebCore::HTMLMediaElement::selectMediaResource): Set m_nextChildNodeToConsider to the first
            child node, it will be the first node considered.
        (WebCore::HTMLMediaElement::havePotentialSourceChild): m_nextChildNodeToConsider and m_currentSourceNode
            are now RefPtrs.
        (WebCore::HTMLMediaElement::selectNextSourceChild): Collect all child nodes in a vector before
            looking for <source> nodes because 'beforeload' event handlers can mutate the DOM. Don't
            use a <source> that is no longer a child node after 'beforeload'. Use 0 to represent the end
            of the child node list because m_nextChildNodeToConsider is now a RefPtr so using the previous 
            sentinel, "this", would cause a retain cycle.
        (WebCore::HTMLMediaElement::sourceWasAdded):  m_nextChildNodeToConsider and m_currentSourceNode
            are now RefPtrs.
        (WebCore::HTMLMediaElement::sourceWillBeRemoved): Ditto.
        (WebCore::HTMLMediaElement::getPluginProxyParams): Protect HTMLMediaElement from being deleted during
            a DOM modification during an event callback.
        * html/HTMLMediaElement.h:

2012-04-18  Adam Barth  <abarth@webkit.org>

        ContainerNode::willRemove uses a weak iteration pattern
        https://bugs.webkit.org/show_bug.cgi?id=80530

        Reviewed by Ryosuke Niwa.

        This patch moves ContainerNode::willRemove to using a better iteration
        pattern in which we collect all the nodes we're planning to iterate
        into a vector and then iterate over them.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::willRemove):

2012-04-18  Adam Barth  <abarth@webkit.org>

        ContainerNode::insertedIntoTree and removedFromTree use weak iteration patterns
        https://bugs.webkit.org/show_bug.cgi?id=80570

        Reviewed by Ryosuke Niwa.

        These functions use weak iteration patterns, but as far as I can tell,
        we never execute script below these functions.  This patch adds ASSERTs
        to help us avoid adding events in the future.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::insertedIntoTree):
        (WebCore::ContainerNode::removedFromTree):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::loadInternal):
            - There's a somewhat complex call chain from insertedIntoTree into
              HTMLMediaElement, and somewhat complex control flow below
              loadInternal that eventually leads to the BeforeLoad event being
              fired.  In studying this code, I don't see a way for the
              BeforeLoad event to be fired during insertedIntoTree, but I've
              added this assert here to make sure we don't call loadInternal
              when we're not supposed to dispatch events.  This ASSERT should
              help us catch these BeforeLoad errors more quickly.

2012-04-18  Abhishek Arya  <inferno@chromium.org>

        Incorrect beforeChild parent calculation in RenderRubyBase::moveChildren.
        https://bugs.webkit.org/show_bug.cgi?id=80297

        Reviewed by Julien Chaffraix.

        beforeChild might share the same anonymous block parent with other previous
        siblings. Before moving the children across ruby bases, we need to make sure
        to split the tree across the beforeChild correctly.

        Test: fast/ruby/ruby-text-before-child-split.html

        * rendering/RenderRubyBase.cpp:
        (WebCore::RenderRubyBase::moveChildren):

2012-04-18  Philip Rogers  <pdr@google.com>

        Skip building resources if SVGTRef is not in a document
        https://bugs.webkit.org/show_bug.cgi?id=81473

        Reviewed by Nikolas Zimmermann.

        We can skip the building of pending resources in SVGTRef if we're not
        yet in a document. This mirrors the nearly identical logic in
        SVGUseElement::buildPendingResource() and
        SVGFEImageElement::buildPendingResource().

        Test: http/tests/svg/tref-adoptNode-crash.html

        * svg/SVGTRefElement.cpp:
        (WebCore::SVGTRefElement::buildPendingResource):

2012-03-28  Sergio Villar Senin  <svillar@igalia.com>

        [Soup] DNS prefetching spams resolver, shoots self in the foot
        https://bugs.webkit.org/show_bug.cgi?id=41630

        Reviewed by Martin Robinson.

        Added generic DNSResolveQueue class to throttle DNS
        prefetches. It's an abstract refactoring of CFNET's
        DNSResolveQueue. Platform specific methods implemented for soup
        and CFNET backends.

        No new tests required as we're just refactoring existing code to
        be used by two different ports.

        * CMakeLists.txt: added new file.
        * GNUmakefile.list.am: ditto.
        * WebCore.vcproj/WebCore.vcproj: ditto.
        * WebCore.xcodeproj/project.pbxproj: ditto.
        * platform/network/DNSResolveQueue.cpp: Added.
        (WebCore):
        (WebCore::DNSResolveQueue::add): adds a new host to be prefetched.
        (WebCore::DNSResolveQueue::fired): by using a delay we coalesce
        several prefetch requests and try to resolve them all here.
        * platform/network/DNSResolveQueue.h: Added.
        (WebCore):
        (DNSResolveQueue): class that implements DNS prefetch
        throttling using a template pattern.
        (WebCore::DNSResolveQueue::shared):
        (WebCore::DNSResolveQueue::decrementRequestCount):
        * platform/network/cf/DNSCFNet.cpp:
        (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
        (WebCore::DNSResolveQueue::platformResolve):
        * platform/network/soup/DNSSoup.cpp:
        (WebCore):
        (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
        (WebCore::resolvedCallback):
        (WebCore::DNSResolveQueue::platformResolve):
        (WebCore::prefetchDNS):

2012-03-14  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>

        Build error: DNSSoup.cpp:30: fatal error: CString.h: No such file or
        directory
        https://bugs.webkit.org/show_bug.cgi?id=81093

        Reviewed by Philippe Normand.

        Fix build error introduced by r110669.

        * platform/network/soup/DNSSoup.cpp:

2012-03-13  Sergio Villar Senin  <svillar@igalia.com>

        [GTK] Use the same DNS prefetching path than the other ports.
        https://bugs.webkit.org/show_bug.cgi?id=80997

        Reviewed by Martin Robinson.

        This patch basically reverts r56128. There is no need to add an
        special code path for GTK+ DNS pre-fetching because the main
        reason to do that (some potential changes in libsoup) is not
        going to happen. It also reduces the amount of DNS queries by
        adding a NULL hostname check.

        No need for new tests as this just moves code around.

        * GNUmakefile.list.am:
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::parseAttribute):
        * html/HTMLLinkElement.cpp:
        * loader/LinkLoader.cpp:
        (WebCore::LinkLoader::loadLink):
        * page/Chrome.cpp:
        (WebCore::Chrome::mouseDidMoveOverElement):
        * platform/network/DNS.h:
        (WebCore):
        * platform/network/ResourceHandle.cpp:
        * platform/network/ResourceHandle.h:
        (ResourceHandle):
        * platform/network/chromium/DNSChromium.cpp:
        * platform/network/soup/DNSSoup.cpp: restored.
        (WebCore):
        (WebCore::prefetchDNS):
        * platform/network/soup/ResourceHandleSoup.cpp:

2012-04-09  Martin Robinson  <mrobinson@igalia.com>

        [soup] Crash while loading http://www.jusco.cn
        https://bugs.webkit.org/show_bug.cgi?id=68238

        Reviewed by Philippe Normand.

        Test: http/tests/xmlhttprequest/xmlhttprequest-sync-no-timers.html

        When running synchronous XMLHttpRequests, push a new inner thread default
        context, so that other sources from timers and network activity do not run.
        This will make synchronous requests truly synchronous with the rest of
        WebCore.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCoreSynchronousLoader): Clean up the method definitions a bit by writing them inline.
        (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader): Push a new thread default
        context to prevent other sources from running.
        (WebCore::WebCoreSynchronousLoader::~WebCoreSynchronousLoader): Pop the inner thread default context.
        (WebCore::closeCallback): If the client is synchronous call didFinishLoading now.
        (WebCore::readCallback): Only call didFinishLoading if the client isn't synchronous.
        (WebCore::ResourceHandle::defaultSession): Activate use-thread-context so that the soup session
        respects the inner thread context.

2012-04-09  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Toggle buttons do not size appropriately in some themes
        https://bugs.webkit.org/show_bug.cgi?id=82833

        Reviewed by Gustavo Noronha Silva.

        Test: platform/gtk/fast/forms/large-toggle-elements.html

        Instead of drawing a toggle button across the entire rectangle of
        the WebCore control, draw a default-sized one cenetered in the rectangle.

        * platform/gtk/RenderThemeGtk3.cpp:
        (WebCore::paintToggle): Draw default-sized toggles.

2012-04-05  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Scrolling some iframes that are partially out of the viewport leads to repaint errors
        https://bugs.webkit.org/show_bug.cgi?id=83309

        Reviewed by Gustavo Noronha Silva.

        Test: platform/gtk/fast/frames/scrolling-iframe-out-of-viewport.html

        The X11 backing store was not properly trimming the scroll region when it
        was only a portion of the screen. This was hidden by subsequent repaints.

        * platform/gtk/GtkWidgetBackingStoreX11.cpp:
        (WebCore::WidgetBackingStore::scroll): Fix the calculation of the scrolling region.

2012-04-18  Abhishek Arya  <inferno@chromium.org>

        Crash due to layer tree information not updated when moving run-in children.
        https://bugs.webkit.org/show_bug.cgi?id=81265

        Reviewed by Julien Chaffraix.

        We need to do a full removal as the run-in child is getting inserted into
        the neighbouring block and |blockRunIn| is going to be destroyed later
        in the function.

        Test: fast/runin/run-in-layer-not-removed-crash.html

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

2012-04-18  Abhishek Arya  <inferno@chromium.org>

        Crash in Text::splitText due to mutation events.
        https://bugs.webkit.org/show_bug.cgi?id=80828

        Reviewed by Ryosuke Niwa.

        Test: fast/text/split-text-crash.xhtml

        * dom/Range.cpp:
        (WebCore::Range::insertNode): replace m_start.container() calls with ref protected node.

2012-04-18  Tim Horton  <timothy_horton@apple.com>

        Crash in SVGTextLayoutAttributesBuilder::fillCharacterDataMap
        https://bugs.webkit.org/show_bug.cgi?id=78949
        <rdar://problem/10889440>

        Reviewed by Nikolas Zimmermann.

        Invalidate the text positioning cache when the children of an SVGAElement change,
        so that we regenerate the list the next time it's needed instead of using stale values.

        Test: svg/text/text-positioning-remove-child-crash.svg

        * rendering/svg/SVGAElement.cpp:
        (WebCore::SVGAElement::childrenChanged):

2012-04-16  Adam Barth  <abarth@webkit.org>

        ContainerNode::insertedIntoDocument and removedFromDocument use weak iteration patterns
        https://bugs.webkit.org/show_bug.cgi?id=80569

        Reviewed by Ryosuke Niwa.

        This patch moves ContainerNode::insertedIntoDocument and
        removedFromDocument to using a better iteration pattern in which we
        collect all the nodes we're planning to iterate into a vector and then
        iterate over them.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::insertedIntoDocument):
        (WebCore::ContainerNode::removedFromDocument):

2012-04-03  Dominik Röttsches  <dominik.rottsches@linux.intel.com>

        Soup HTTP backend does not send Content-Length in certain cases
        https://bugs.webkit.org/show_bug.cgi?id=82036

        Reviewed by Gustavo Noronha Silva.

        Telling soup explicitly when to send content-length header
        in POST & PUT cases in order to align with e.g. Chromium and FF.

        No new tests, already covered by *methods*.html in
        http/tests/xmlhttprequest/.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::startHTTPRequest): Special handling for POST & PUT.

2012-03-26  Zan Dobersek  <zandobersek@gmail.com>

        [GObject bindings] Supplemental interfaces are not disabled with the "Conditional" attribute
        https://bugs.webkit.org/show_bug.cgi?id=80030

        Reviewed by Martin Robinson.

        Changes in CodeGeneratorGObject.pm:
        - group implementation of private helpers and guard them inside
        an ifdef if a root conditional attribute is present.
        - always define the type of a GObject binding, even if the root
        conditional feature is not enabled
        - the methods are generated as well, but are simply stubs if the
        feature is not enabled, throwing a warning upon interaction.
        - if the method itself is guarded by a conditional attribute,
        the stub implementation gains one more level of depth, throwing
        a warning if the method's conditional feature is not enabled
        but the root conditional feature is.
        - small style fixes in random places.

        Also changed are GObject baselines for binding tests.

        No new tests - no new testable functionality.

        * bindings/gobject/GNUmakefile.am:
        * bindings/scripts/CodeGeneratorGObject.pm:
        (HumanReadableConditional):
        (GenerateConditionalWarn):
        (GenerateProperty):
        (GenerateProperties):
        (GenerateFunction):
        (GenerateFunctions):
        (GenerateCFile):
        (GenerateEventTargetIface):
        (Generate):
        (WriteData):
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::wrapFloat64Array):
        (webkit_dom_float64array_finalize):
        (webkit_dom_float64array_foo):
        * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::wrapTestActiveDOMObject):
        (webkit_dom_test_active_dom_object_finalize):
        (webkit_dom_test_active_dom_object_exciting_function):
        (webkit_dom_test_active_dom_object_post_message):
        (webkit_dom_test_active_dom_object_get_exciting_attr):
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestCallback):
        (webkit_dom_test_callback_finalize):
        (webkit_dom_test_callback_callback_with_no_param):
        (webkit_dom_test_callback_callback_with_class1param):
        (webkit_dom_test_callback_callback_with_class2param):
        (webkit_dom_test_callback_callback_with_non_bool_return_type):
        (webkit_dom_test_callback_callback_with_string_list):
        * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::wrapTestCustomNamedGetter):
        (webkit_dom_test_custom_named_getter_finalize):
        (webkit_dom_test_custom_named_getter_another_function):
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::wrapTestEventConstructor):
        (webkit_dom_test_event_constructor_finalize):
        (webkit_dom_test_event_constructor_get_attr1):
        (webkit_dom_test_event_constructor_get_attr2):
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
        (WebKit):
        (WebKit::core):
        (WebKit::wrapTestEventTarget):
        (webkit_dom_test_event_target_finalize):
        (webkit_dom_test_event_target_item):
        (webkit_dom_test_event_target_dispatch_event):
        * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestInterface):
        (webkit_dom_test_interface_finalize):
        (webkit_dom_test_interface_supplemental_method1):
        (webkit_dom_test_interface_supplemental_method2):
        (webkit_dom_test_interface_supplemental_method4):
        (webkit_dom_test_interface_get_supplemental_str1):
        (webkit_dom_test_interface_get_supplemental_str2):
        (webkit_dom_test_interface_set_supplemental_str2):
        (webkit_dom_test_interface_get_supplemental_node):
        (webkit_dom_test_interface_set_supplemental_node):
        * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::wrapTestMediaQueryListListener):
        (webkit_dom_test_media_query_list_listener_finalize):
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::wrapTestNamedConstructor):
        (webkit_dom_test_named_constructor_finalize):
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestObj):
        (webkit_dom_test_obj_finalize):
        (webkit_dom_test_obj_set_property):
        (webkit_dom_test_obj_get_property):
        (webkit_dom_test_obj_constructed):
        (webkit_dom_test_obj_class_init):
        (webkit_dom_test_obj_init):
        (webkit_dom_test_obj_void_method):
        (webkit_dom_test_obj_void_method_with_args):
        (webkit_dom_test_obj_int_method):
        (webkit_dom_test_obj_int_method_with_args):
        (webkit_dom_test_obj_obj_method):
        (webkit_dom_test_obj_obj_method_with_args):
        (webkit_dom_test_obj_method_with_sequence_arg):
        (webkit_dom_test_obj_method_that_requires_all_args_and_throws):
        (webkit_dom_test_obj_serialized_value):
        (webkit_dom_test_obj_idb_key):
        (webkit_dom_test_obj_options_object):
        (webkit_dom_test_obj_method_with_exception):
        (webkit_dom_test_obj_with_script_state_void):
        (webkit_dom_test_obj_with_script_state_obj):
        (webkit_dom_test_obj_with_script_state_void_exception):
        (webkit_dom_test_obj_with_script_state_obj_exception):
        (webkit_dom_test_obj_with_script_execution_context):
        (webkit_dom_test_obj_with_script_execution_context_and_script_state):
        (webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
        (webkit_dom_test_obj_with_script_execution_context_and_script_state_with_spaces):
        (webkit_dom_test_obj_method_with_optional_arg):
        (webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg):
        (webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args):
        (webkit_dom_test_obj_method_with_optional_string):
        (webkit_dom_test_obj_method_with_optional_string_is_undefined):
        (webkit_dom_test_obj_method_with_optional_string_is_null_string):
        (webkit_dom_test_obj_conditional_method1):
        (webkit_dom_test_obj_conditional_method2):
        (webkit_dom_test_obj_conditional_method3):
        (webkit_dom_test_obj_class_method):
        (webkit_dom_test_obj_class_method_with_optional):
        (webkit_dom_test_obj_overloaded_method1):
        (webkit_dom_test_obj_convert1):
        (webkit_dom_test_obj_convert2):
        (webkit_dom_test_obj_convert3):
        (webkit_dom_test_obj_convert4):
        (webkit_dom_test_obj_convert5):
        (webkit_dom_test_obj_mutable_point_function):
        (webkit_dom_test_obj_immutable_point_function):
        (webkit_dom_test_obj_orange):
        (webkit_dom_test_obj_strict_function):
        (webkit_dom_test_obj_get_read_only_int_attr):
        (webkit_dom_test_obj_get_read_only_string_attr):
        (webkit_dom_test_obj_get_read_only_test_obj_attr):
        (webkit_dom_test_obj_get_short_attr):
        (webkit_dom_test_obj_set_short_attr):
        (webkit_dom_test_obj_get_unsigned_short_attr):
        (webkit_dom_test_obj_set_unsigned_short_attr):
        (webkit_dom_test_obj_get_int_attr):
        (webkit_dom_test_obj_set_int_attr):
        (webkit_dom_test_obj_get_long_long_attr):
        (webkit_dom_test_obj_set_long_long_attr):
        (webkit_dom_test_obj_get_unsigned_long_long_attr):
        (webkit_dom_test_obj_set_unsigned_long_long_attr):
        (webkit_dom_test_obj_get_string_attr):
        (webkit_dom_test_obj_set_string_attr):
        (webkit_dom_test_obj_get_test_obj_attr):
        (webkit_dom_test_obj_set_test_obj_attr):
        (webkit_dom_test_obj_get_xml_obj_attr):
        (webkit_dom_test_obj_set_xml_obj_attr):
        (webkit_dom_test_obj_get_create):
        (webkit_dom_test_obj_set_create):
        (webkit_dom_test_obj_get_reflected_string_attr):
        (webkit_dom_test_obj_set_reflected_string_attr):
        (webkit_dom_test_obj_get_reflected_integral_attr):
        (webkit_dom_test_obj_set_reflected_integral_attr):
        (webkit_dom_test_obj_get_reflected_unsigned_integral_attr):
        (webkit_dom_test_obj_set_reflected_unsigned_integral_attr):
        (webkit_dom_test_obj_get_reflected_boolean_attr):
        (webkit_dom_test_obj_set_reflected_boolean_attr):
        (webkit_dom_test_obj_get_reflected_url_attr):
        (webkit_dom_test_obj_set_reflected_url_attr):
        (webkit_dom_test_obj_get_reflected_custom_integral_attr):
        (webkit_dom_test_obj_set_reflected_custom_integral_attr):
        (webkit_dom_test_obj_get_reflected_custom_boolean_attr):
        (webkit_dom_test_obj_set_reflected_custom_boolean_attr):
        (webkit_dom_test_obj_get_reflected_custom_url_attr):
        (webkit_dom_test_obj_set_reflected_custom_url_attr):
        (webkit_dom_test_obj_get_attr_with_getter_exception):
        (webkit_dom_test_obj_set_attr_with_getter_exception):
        (webkit_dom_test_obj_get_attr_with_setter_exception):
        (webkit_dom_test_obj_set_attr_with_setter_exception):
        (webkit_dom_test_obj_get_string_attr_with_getter_exception):
        (webkit_dom_test_obj_set_string_attr_with_getter_exception):
        (webkit_dom_test_obj_get_string_attr_with_setter_exception):
        (webkit_dom_test_obj_set_string_attr_with_setter_exception):
        (webkit_dom_test_obj_get_with_script_state_attribute):
        (webkit_dom_test_obj_set_with_script_state_attribute):
        (webkit_dom_test_obj_get_with_script_execution_context_attribute):
        (webkit_dom_test_obj_set_with_script_execution_context_attribute):
        (webkit_dom_test_obj_get_with_script_state_attribute_raises):
        (webkit_dom_test_obj_set_with_script_state_attribute_raises):
        (webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
        (webkit_dom_test_obj_set_with_script_execution_context_attribute_raises):
        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute):
        (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute):
        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
        (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises):
        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_with_spaces_attribute):
        (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_with_spaces_attribute):
        (webkit_dom_test_obj_get_conditional_attr1):
        (webkit_dom_test_obj_set_conditional_attr1):
        (webkit_dom_test_obj_get_conditional_attr2):
        (webkit_dom_test_obj_set_conditional_attr2):
        (webkit_dom_test_obj_get_conditional_attr3):
        (webkit_dom_test_obj_set_conditional_attr3):
        (webkit_dom_test_obj_get_content_document):
        (webkit_dom_test_obj_get_mutable_point):
        (webkit_dom_test_obj_set_mutable_point):
        (webkit_dom_test_obj_get_immutable_point):
        (webkit_dom_test_obj_set_immutable_point):
        (webkit_dom_test_obj_get_strict_float):
        (webkit_dom_test_obj_set_strict_float):
        (webkit_dom_test_obj_get_description):
        (webkit_dom_test_obj_get_id):
        (webkit_dom_test_obj_set_id):
        (webkit_dom_test_obj_get_hash):
        * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestSerializedScriptValueInterface):
        (webkit_dom_test_serialized_script_value_interface_finalize):
        (webkit_dom_test_serialized_script_value_interface_accept_transfer_list):
        (webkit_dom_test_serialized_script_value_interface_multi_transfer_list):
        (webkit_dom_test_serialized_script_value_interface_get_value):
        (webkit_dom_test_serialized_script_value_interface_set_value):
        (webkit_dom_test_serialized_script_value_interface_get_readonly_value):
        (webkit_dom_test_serialized_script_value_interface_get_cached_value):
        (webkit_dom_test_serialized_script_value_interface_set_cached_value):
        (webkit_dom_test_serialized_script_value_interface_get_cached_readonly_value):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:

2012-03-26  Zan Dobersek  <zandobersek@gmail.com>

        [GObject bindings] Supplemental interfaces are not disabled with the "Conditional" attribute
        https://bugs.webkit.org/show_bug.cgi?id=80030

        Reviewed by Martin Robinson.

        Changes in CodeGeneratorGObject.pm:
        - group implementation of private helpers and guard them inside
        an ifdef if a root conditional attribute is present.
        - always define the type of a GObject binding, even if the root
        conditional feature is not enabled
        - the methods are generated as well, but are simply stubs if the
        feature is not enabled, throwing a warning upon interaction.
        - if the method itself is guarded by a conditional attribute,
        the stub implementation gains one more level of depth, throwing
        a warning if the method's conditional feature is not enabled
        but the root conditional feature is.
        - small style fixes in random places.

        Also changed are GObject baselines for binding tests.

        No new tests - no new testable functionality.

        * bindings/gobject/GNUmakefile.am:
        * bindings/scripts/CodeGeneratorGObject.pm:
        (HumanReadableConditional):
        (GenerateConditionalWarn):
        (GenerateProperty):
        (GenerateProperties):
        (GenerateFunction):
        (GenerateFunctions):
        (GenerateCFile):
        (GenerateEventTargetIface):
        (Generate):
        (WriteData):
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::wrapFloat64Array):
        (webkit_dom_float64array_finalize):
        (webkit_dom_float64array_foo):
        * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::wrapTestActiveDOMObject):
        (webkit_dom_test_active_dom_object_finalize):
        (webkit_dom_test_active_dom_object_exciting_function):
        (webkit_dom_test_active_dom_object_post_message):
        (webkit_dom_test_active_dom_object_get_exciting_attr):
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestCallback):
        (webkit_dom_test_callback_finalize):
        (webkit_dom_test_callback_callback_with_no_param):
        (webkit_dom_test_callback_callback_with_class1param):
        (webkit_dom_test_callback_callback_with_class2param):
        (webkit_dom_test_callback_callback_with_non_bool_return_type):
        (webkit_dom_test_callback_callback_with_string_list):
        * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::wrapTestCustomNamedGetter):
        (webkit_dom_test_custom_named_getter_finalize):
        (webkit_dom_test_custom_named_getter_another_function):
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::wrapTestEventConstructor):
        (webkit_dom_test_event_constructor_finalize):
        (webkit_dom_test_event_constructor_get_attr1):
        (webkit_dom_test_event_constructor_get_attr2):
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
        (WebKit):
        (WebKit::core):
        (WebKit::wrapTestEventTarget):
        (webkit_dom_test_event_target_finalize):
        (webkit_dom_test_event_target_item):
        (webkit_dom_test_event_target_dispatch_event):
        * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestInterface):
        (webkit_dom_test_interface_finalize):
        (webkit_dom_test_interface_supplemental_method1):
        (webkit_dom_test_interface_supplemental_method2):
        (webkit_dom_test_interface_supplemental_method4):
        (webkit_dom_test_interface_get_supplemental_str1):
        (webkit_dom_test_interface_get_supplemental_str2):
        (webkit_dom_test_interface_set_supplemental_str2):
        (webkit_dom_test_interface_get_supplemental_node):
        (webkit_dom_test_interface_set_supplemental_node):
        * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::wrapTestMediaQueryListListener):
        (webkit_dom_test_media_query_list_listener_finalize):
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::wrapTestNamedConstructor):
        (webkit_dom_test_named_constructor_finalize):
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestObj):
        (webkit_dom_test_obj_finalize):
        (webkit_dom_test_obj_set_property):
        (webkit_dom_test_obj_get_property):
        (webkit_dom_test_obj_constructed):
        (webkit_dom_test_obj_class_init):
        (webkit_dom_test_obj_init):
        (webkit_dom_test_obj_void_method):
        (webkit_dom_test_obj_void_method_with_args):
        (webkit_dom_test_obj_int_method):
        (webkit_dom_test_obj_int_method_with_args):
        (webkit_dom_test_obj_obj_method):
        (webkit_dom_test_obj_obj_method_with_args):
        (webkit_dom_test_obj_method_with_sequence_arg):
        (webkit_dom_test_obj_method_that_requires_all_args_and_throws):
        (webkit_dom_test_obj_serialized_value):
        (webkit_dom_test_obj_idb_key):
        (webkit_dom_test_obj_options_object):
        (webkit_dom_test_obj_method_with_exception):
        (webkit_dom_test_obj_with_script_state_void):
        (webkit_dom_test_obj_with_script_state_obj):
        (webkit_dom_test_obj_with_script_state_void_exception):
        (webkit_dom_test_obj_with_script_state_obj_exception):
        (webkit_dom_test_obj_with_script_execution_context):
        (webkit_dom_test_obj_with_script_execution_context_and_script_state):
        (webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
        (webkit_dom_test_obj_with_script_execution_context_and_script_state_with_spaces):
        (webkit_dom_test_obj_method_with_optional_arg):
        (webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg):
        (webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args):
        (webkit_dom_test_obj_method_with_optional_string):
        (webkit_dom_test_obj_method_with_optional_string_is_undefined):
        (webkit_dom_test_obj_method_with_optional_string_is_null_string):
        (webkit_dom_test_obj_conditional_method1):
        (webkit_dom_test_obj_conditional_method2):
        (webkit_dom_test_obj_conditional_method3):
        (webkit_dom_test_obj_class_method):
        (webkit_dom_test_obj_class_method_with_optional):
        (webkit_dom_test_obj_overloaded_method1):
        (webkit_dom_test_obj_convert1):
        (webkit_dom_test_obj_convert2):
        (webkit_dom_test_obj_convert3):
        (webkit_dom_test_obj_convert4):
        (webkit_dom_test_obj_convert5):
        (webkit_dom_test_obj_mutable_point_function):
        (webkit_dom_test_obj_immutable_point_function):
        (webkit_dom_test_obj_orange):
        (webkit_dom_test_obj_strict_function):
        (webkit_dom_test_obj_get_read_only_int_attr):
        (webkit_dom_test_obj_get_read_only_string_attr):
        (webkit_dom_test_obj_get_read_only_test_obj_attr):
        (webkit_dom_test_obj_get_short_attr):
        (webkit_dom_test_obj_set_short_attr):
        (webkit_dom_test_obj_get_unsigned_short_attr):
        (webkit_dom_test_obj_set_unsigned_short_attr):
        (webkit_dom_test_obj_get_int_attr):
        (webkit_dom_test_obj_set_int_attr):
        (webkit_dom_test_obj_get_long_long_attr):
        (webkit_dom_test_obj_set_long_long_attr):
        (webkit_dom_test_obj_get_unsigned_long_long_attr):
        (webkit_dom_test_obj_set_unsigned_long_long_attr):
        (webkit_dom_test_obj_get_string_attr):
        (webkit_dom_test_obj_set_string_attr):
        (webkit_dom_test_obj_get_test_obj_attr):
        (webkit_dom_test_obj_set_test_obj_attr):
        (webkit_dom_test_obj_get_xml_obj_attr):
        (webkit_dom_test_obj_set_xml_obj_attr):
        (webkit_dom_test_obj_get_create):
        (webkit_dom_test_obj_set_create):
        (webkit_dom_test_obj_get_reflected_string_attr):
        (webkit_dom_test_obj_set_reflected_string_attr):
        (webkit_dom_test_obj_get_reflected_integral_attr):
        (webkit_dom_test_obj_set_reflected_integral_attr):
        (webkit_dom_test_obj_get_reflected_unsigned_integral_attr):
        (webkit_dom_test_obj_set_reflected_unsigned_integral_attr):
        (webkit_dom_test_obj_get_reflected_boolean_attr):
        (webkit_dom_test_obj_set_reflected_boolean_attr):
        (webkit_dom_test_obj_get_reflected_url_attr):
        (webkit_dom_test_obj_set_reflected_url_attr):
        (webkit_dom_test_obj_get_reflected_custom_integral_attr):
        (webkit_dom_test_obj_set_reflected_custom_integral_attr):
        (webkit_dom_test_obj_get_reflected_custom_boolean_attr):
        (webkit_dom_test_obj_set_reflected_custom_boolean_attr):
        (webkit_dom_test_obj_get_reflected_custom_url_attr):
        (webkit_dom_test_obj_set_reflected_custom_url_attr):
        (webkit_dom_test_obj_get_attr_with_getter_exception):
        (webkit_dom_test_obj_set_attr_with_getter_exception):
        (webkit_dom_test_obj_get_attr_with_setter_exception):
        (webkit_dom_test_obj_set_attr_with_setter_exception):
        (webkit_dom_test_obj_get_string_attr_with_getter_exception):
        (webkit_dom_test_obj_set_string_attr_with_getter_exception):
        (webkit_dom_test_obj_get_string_attr_with_setter_exception):
        (webkit_dom_test_obj_set_string_attr_with_setter_exception):
        (webkit_dom_test_obj_get_with_script_state_attribute):
        (webkit_dom_test_obj_set_with_script_state_attribute):
        (webkit_dom_test_obj_get_with_script_execution_context_attribute):
        (webkit_dom_test_obj_set_with_script_execution_context_attribute):
        (webkit_dom_test_obj_get_with_script_state_attribute_raises):
        (webkit_dom_test_obj_set_with_script_state_attribute_raises):
        (webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
        (webkit_dom_test_obj_set_with_script_execution_context_attribute_raises):
        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute):
        (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute):
        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
        (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises):
        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_with_spaces_attribute):
        (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_with_spaces_attribute):
        (webkit_dom_test_obj_get_conditional_attr1):
        (webkit_dom_test_obj_set_conditional_attr1):
        (webkit_dom_test_obj_get_conditional_attr2):
        (webkit_dom_test_obj_set_conditional_attr2):
        (webkit_dom_test_obj_get_conditional_attr3):
        (webkit_dom_test_obj_set_conditional_attr3):
        (webkit_dom_test_obj_get_content_document):
        (webkit_dom_test_obj_get_mutable_point):
        (webkit_dom_test_obj_set_mutable_point):
        (webkit_dom_test_obj_get_immutable_point):
        (webkit_dom_test_obj_set_immutable_point):
        (webkit_dom_test_obj_get_strict_float):
        (webkit_dom_test_obj_set_strict_float):
        (webkit_dom_test_obj_get_description):
        (webkit_dom_test_obj_get_id):
        (webkit_dom_test_obj_set_id):
        (webkit_dom_test_obj_get_hash):
        * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        (WebKit):
        (WebKit::kit):
        (WebKit::core):
        (WebKit::wrapTestSerializedScriptValueInterface):
        (webkit_dom_test_serialized_script_value_interface_finalize):
        (webkit_dom_test_serialized_script_value_interface_accept_transfer_list):
        (webkit_dom_test_serialized_script_value_interface_multi_transfer_list):
        (webkit_dom_test_serialized_script_value_interface_get_value):
        (webkit_dom_test_serialized_script_value_interface_set_value):
        (webkit_dom_test_serialized_script_value_interface_get_readonly_value):
        (webkit_dom_test_serialized_script_value_interface_get_cached_value):
        (webkit_dom_test_serialized_script_value_interface_set_cached_value):
        (webkit_dom_test_serialized_script_value_interface_get_cached_readonly_value):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:

2012-03-23  Julien Chaffraix  <jchaffraix@webkit.org>

        REGRESSION(107971): Google Voice contact list is broken in WebKit due to badly allocating the extra height
        https://bugs.webkit.org/show_bug.cgi?id=81826

        Reviewed by Tony Chang.

        Covered by tables/mozilla/bugs/bug27038-{1|2}.html.

        This partly reverts r107971: the extra logical height distribution change was not needed
        to fix the bug (it is needed by the test though). We revert to giving all the extra height
        to the first tbody and not the first section.

        This is broken but unfortunately some websites are relying on that. Getting a real
        distribution algorithm is covered by bug 81824. However this is super tricky to get
        right and I did not want to add more compatibility risks until I have something solid.

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::distributeExtraLogicalHeight):

2012-03-23  Konrad Piascik  <kpiascik@rim.com>

        (r110063) m_mouseDownMayStartDrag is used without being behind the ENABLE(DRAG_SUPPORT) macro
        https://bugs.webkit.org/show_bug.cgi?id=81666

        Reviewed by Rob Buis.

        Compiled with feature disabled and built.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::selectCursor):

2012-03-23  Adam Barth  <abarth@webkit.org>

        Remove support for "magic" iframe
        https://bugs.webkit.org/show_bug.cgi?id=81590

        Reviewed by Eric Seidel.

        This patch removes support for "magic" iframe, which previously allowed
        an iframe to be transfered from one document to another without
        reloading the iframe.  The idea behind this feature was to let sites
        create "pop out" windows that could outlive their parents by
        transfering state to these windows via these magic iframes.

        Unforuntately, this feature was never implemented by other browsers and
        has been the source of a series of security vulnerabilities.  Although
        we have fixed each vulnerability as it has been discovered, the feature
        is still a complex corner case that isn't widely exercised on the web.
        For that reason, it's likely to have more vulnerabilities in the
        future.

        I'm not aware of any web sites that use this feature anymore.  There
        were a handful of them, but we appear to have been successful in
        evangalizing them to move away from "magic" iframe.

        * dom/Document.cpp:
        (WebCore::Document::adoptNode):
        * html/HTMLFrameElementBase.cpp:
        (WebCore):
        (WebCore::HTMLFrameElementBase::HTMLFrameElementBase):
        (WebCore::HTMLFrameElementBase::insertedIntoDocument):
        * html/HTMLFrameElementBase.h:
        (HTMLFrameElementBase):
        * loader/DocumentLoader.cpp:
        (WebCore):
        * loader/DocumentLoader.h:
        (DocumentLoader):
        * loader/EmptyClients.h:
        (WebCore::EmptyFrameLoaderClient::createFrame):
        * loader/FrameLoader.cpp:
        (WebCore):
        * loader/FrameLoader.h:
        (FrameLoader):
        * loader/FrameLoaderClient.h:
        (FrameLoaderClient):
        * loader/ResourceLoadNotifier.cpp:
        (WebCore):
        * loader/ResourceLoadNotifier.h:
        (ResourceLoadNotifier):
        * page/Frame.cpp:
        (WebCore):
        * page/Frame.h:
        (Frame):

2012-03-23  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        REGRESSION(r106232): The resize handler is always called after loading.
        https://bugs.webkit.org/show_bug.cgi?id=80242

        Reviewed by Kenneth Rohde Christiansen.

        Ensure resize-events are not emitted when layout-size changes due to added
        scrollbars. For fixed layout, scrollbars are never subtracted or added, so
        we can compare fixedLayoutSize directly. For normal layout, use the full
        visible rect size which is the same as layout size plus scrollbars.

        Test: fast/events/resize-events.html

        * page/FrameView.cpp:
        (WebCore::FrameView::reset):
        (WebCore::FrameView::layout):
        (WebCore::FrameView::performPostLayoutTasks):
        * page/FrameView.h:
        (FrameView):

2012-03-23  Adam Klein  <adamk@chromium.org>

        REGRESSION(r103452): 100% CPU usage and 5s pause after clicking on a link in Yahoo Mail
        https://bugs.webkit.org/show_bug.cgi?id=81141

        Reviewed by Ojan Vafai.

        Revert the behavior change from r103452: don't fire DOMSubtreeModified
        events when an attribute value merely changes. Still fire that event
        when an attribute is added or removed from an element.

        Though this contradicts the DOM3 spec, it matches legacy WebKit behavior,
        and given that Mutation Events are deprecated, it seems unwise to make
        any additions to WebKit's implementation of them.

        Test: fast/dom/subtree-modified-attributes.html

        * dom/Element.cpp:
        (WebCore::Element::didAddAttribute): Renamed from didModifyAttribute.
        (WebCore::Element::didModifyAttribute): Remove the call to dispatchSubtreeModifiedEvent.
        (WebCore):
        * dom/Element.h:
        (Element):
        * dom/ElementAttributeData.cpp:
        (WebCore::ElementAttributeData::addAttribute): Call didAddAttribute instead of didModifyAttribute.

2012-03-23  Daniel Bates  <dbates@webkit.org>

        REGRESSION(r99369): File input button doesn't highlight when pressed
        https://bugs.webkit.org/show_bug.cgi?id=79385

        Reviewed by Kent Tamura.

        Fixes an issue where the file input button doesn't highlight on mouse press.

        Currently we always override the active state of the button with whether
        a dragged file is being hovered over the file input control (i.e. can the control
        receive a dropped file; HTMLInputElement::canReceiveDroppedFiles()).
        Instead, we should only override the active state of the button when the state
        changes for whether we can receive dropped files (e.g. during a drag) so that
        we honor the active state of the button when it is pressed.

        Test: fast/forms/file/file-input-pressed-state.html

        * rendering/RenderFileUploadControl.cpp:
        (WebCore::RenderFileUploadControl::RenderFileUploadControl):
        (WebCore::RenderFileUploadControl::updateFromElement):
        * rendering/RenderFileUploadControl.h:
        (RenderFileUploadControl):

2012-03-23  Shawn Singh  <shawnsingh@chromium.org>

        REGRESSION (r93614): scrolling div does not repaint
        https://bugs.webkit.org/show_bug.cgi?id=80641

        Reviewed by Simon Fraser.

        Test: compositing/repaint/newly-composited-repaint-rect.html

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateBacking): When a layer
        becomes newly composited and creates its backing, the repaintRect
        may become invalid. This patch recomputes repaintRects in this
        case.

2012-03-23  Andy Estes  <aestes@apple.com>

        REGRESSION (r105396): Dragging an iWork document into icloud.com opens it in the Mac app instead of uploading it to icloud.com
        https://bugs.webkit.org/show_bug.cgi?id=79443

        Reviewed by Ryosuke Niwa.

        icloud.com registers a drop event handler that sets display:none on the
        file input element receiving the drop. After dispatching the drop event,
        DragController hit tests the position under the mouse to see if it is a
        file input element in need of receiving files. Since the file input
        element has lost its renderer, it cannot be found by hit testing, so
        the dropped file is never attached to the file input element, no change
        event fires, and no upload commences. We want these things to happen
        even if the element is no longer visible.

        Since we already keep track of the file input element under the mouse
        via m_fileInputElementUnderMouse, this additional hit test is
        unnecessary. Use m_fileInputElementUnderMouse in concludeEditDrag()
        when dropping files.

        Test: fast/events/file-input-hidden-in-ondrop.html

        * page/DragController.cpp:
        (WebCore::DragController::concludeEditDrag): Use
        m_fileInputElementUnderMouse instead of the element returned by hit
        testing. Assert that m_fileInputElementUnderMouse equals the hit tested
        element unless m_fileInputElementUnderMouse doesn't have a renderer.

2012-03-23  Mikkel Kruse Johnsen  <mikkel@linet.dk>

        WebKitGtk+ fails to build on win32 against GTK3
        https://bugs.webkit.org/show_bug.cgi?id=63919

        Reviewed by Gustavo Noronha Silva.

        * plugins/gtk/PluginViewGtk.cpp: Don't use gtk_socket_new with GTK3 on Win32
        (WebCore::PluginView::platformStart):

2012-03-23  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/10923294> REGRESSION (r100847): Entries are clipped out in Day One
        https://bugs.webkit.org/show_bug.cgi?id=80494

        Reviewed by Sam Weinig.

        Test: fast/dom/HTMLDocument/width-and-height.html

        * html/HTMLDocument.idl: Reverted r100847 by re-enabling the width and height properties
        in the JavaScript bindings.

2012-03-23  Adele Peterson  <adele@apple.com>

        REGRESSION(r96566): Cursor is I-beam upon dragging an attachment in mail
        https://bugs.webkit.org/show_bug.cgi?id=80458
        <rdar://problem/10873195>

        Reviewed by Dan Bernstein.

        No tests because we currently don't have any test machinery for cursors.

        Make sure the shortcut to always use an iBeam cursor during selection isn't used during dragging.
        Before r96566, we handled plugin cursors as a special case before calling into selectCursor, so we never hit this code path.

        * page/EventHandler.cpp: (WebCore::EventHandler::selectCursor):

2012-03-23  Maciej Stachowiak  <mjs@apple.com>

        REGRESSION(r97353): Crash when accessing location or history properties inside a navigated window
        https://bugs.webkit.org/show_bug.cgi?id=80133
        <rdar://problem/10432233>
        
        Reviewed by Antti Koivisto.

        Test: fast/dom/Window/navigated-window-properties.html

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore): Remove custom getters for window.location and window.history; they
        were unnecessary and did the wrong thing when DOMWindow returned null values 
        for these.
        * page/DOMWindow.idl: ditto
        * bindings/js/JSDOMBinding.cpp:
        (WebCore::reportException): Remove assert about null values and update comment,
        since this is now an expected state for navigated inner windows.

2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r74971): Can't select a line of RTL text on Facebook
        https://bugs.webkit.org/show_bug.cgi?id=59435

        Reviewed by Eric Seidel.

        The bug was caused by inline text boxes created by BRs being placed at the end of the line
        according to the block's direction regardless of its unicode bidi-level. e.g. if we have
        <div dir="rtl"><span dir="ltr">hello<br>world</span></div>
        the inline box generated by the br has the bidi-level of 2 like the rest of text in the span.
        This inline text box gives an illusion of having text on the left of "hello" to hit testing
        and editing code and causes all sorts of problems.

        Fixed the bug by replacing calls to nextLeafChild and prevLeafChild by newly introduced
        nextLeafChildIgnoringLineBreak and prevLeafChildIgnoringLineBreak. These two functions will
        return 0 when they hit the end of a line or inline text box that's a line break. In effect,
        hit testing and editing code can ignore inline boxes generated by br's.

        In the long term, we should move these two functions into RenderedPosition along with the rest
        of code that converts a Position and an inline box, offset pair.

        Test: editing/selection/select-line-break-with-opposite-directionality.html

        * dom/Position.cpp:
        (WebCore::Position::getInlineBoxAndOffset):
        * editing/RenderedPosition.cpp:
        (WebCore::RenderedPosition::prevLeafChild):
        (WebCore::RenderedPosition::nextLeafChild):
        * rendering/InlineBox.cpp:
        (WebCore::InlineBox::nextLeafChildIgnoringLineBreak):
        (WebCore::InlineBox::prevLeafChildIgnoringLineBreak):
        * rendering/InlineBox.h:
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::positionForPointWithInlineChildren):
        * rendering/RenderText.cpp:
        (WebCore::lineDirectionPointFitsInBox): If we're on the left of a RTL line, we should stay at
        upstream position since we're at the end of a line.
        (WebCore::createVisiblePositionAfterAdjustingOffsetForBiDi): Merge the two special cases into
        the general loop as the comment suggests. Skip an inline text box for a line break at the left
        edge when there are more line boxes on the line.
        (WebCore::RenderText::positionForPoint):
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::closestLeafChildForLogicalLeftPosition): Ignore line boxes created for
        line boxes when there are other boxes on the line.

2012-03-23  Antti Koivisto  <antti@apple.com>

        REGRESSION (r104060): Page contents not painted if inserting a new stylesheet and temporary body node
        https://bugs.webkit.org/show_bug.cgi?id=76590

        Reviewed by Maciej Stachowiak.

        Test: fast/css/pending-stylesheet-repaint.html
        
        If there has been a style recalc with a pending stylesheet, the forced repaint will need to be triggered even
        if the stylesheet doesn't affect the rendering. Otherwise we may end up never painting at all.

        * dom/Document.cpp:
        (WebCore::Document::styleSelectorChanged):

2012-03-23  Kent Tamura  <tkent@chromium.org>

        REGRESSION(90089): Input type='search' text shakes up and down when the style is changed.
        https://bugs.webkit.org/show_bug.cgi?id=79445

        Reviewed by Dimitri Glazkov.

        If the inner text height of a search field is smaller than the
        content box height of the <input>, the height of the container
        element should be same as the content box height.

        When the element style is changed, the RenderStyle height of the
        container element is cleared, but the renderer height of the
        container element remains. We had a bug that layout() didn't set
        the RenderStyle height in a case that the renderer height was the
        desired height. It shrunk the renderer height as the result of
        layout for children.

        Tests: fast/forms/search/search-shaking-text.html

        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::layout):
        Always set the RenderStyle height explicitly.

2012-03-23  Kent Tamura  <tkent@chromium.org>

        REGRESSION(r106388): Form state is restored to a wrong document.
        https://bugs.webkit.org/show_bug.cgi?id=79206

        Reviewed by Brady Eidson.

        In some cases, the URL of the current HistoryItem and the document
        URL are mismatched.
        A form state should be restored only if the document was loaded
        with a HistoryItem and the document is not loaded as a
        redirection.

        Test: fast/loader/form-state-restore-with-locked-back-forward-list.html

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::checkCompleted): Clear m_requestedHistoryItem.
        (WebCore::FrameLoader::loadItem):
        Save the requested HistoryItem for didLoadWithLodItem().
        * loader/FrameLoader.h:
        (WebCore::FrameLoader::requestedHistoryItem):
        Added. Accessor for m_requestedHistoryItem.
        * loader/HistoryController.cpp:
        (WebCore::HistoryController::restoreDocumentState):
        Restore a form state only if the current document was loaded with
        FrameLoader::loadItem() and not redirection.

2012-03-23  Abhishek Arya  <inferno@chromium.org>

        Regression(r107477): Crash in StaticNodeList::itemWithName.
        https://bugs.webkit.org/show_bug.cgi?id=79532

        Reviewed by Andreas Kling.

        Make sure that node is an element node before checking its id attribute.

        Test: fast/mutation/mutation-callback-non-element-crash.html

        * dom/StaticNodeList.cpp:
        (WebCore::StaticNodeList::itemWithName):

2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r99076): WebKit pastes the trailing newline into a single-line text field
        https://bugs.webkit.org/show_bug.cgi?id=79305

        Reviewed by Tony Chang.

        The bug was caused by ReplacementFragment::m_hasInterchangeNewlineAtEnd not reset even when
        text field's beforeTextInserted event handler removed interchange new lines at the end.
        Because the event handler is responsible for trimming new lines, we need to recompute the values
        for m_hasInterchangeNewlineAt* after the event dispatch.

        Test: editing/input/paste-text-ending-with-interchange-newline.html

        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplacementFragment::ReplacementFragment):

2012-03-23  Antti Koivisto  <antti@apple.com>

        REGRESSION (r104060): Web font is not loaded if specified by link element dynamically inserted
        https://bugs.webkit.org/show_bug.cgi?id=79186

        Reviewed by Andreas Kling.

        Test: fast/css/font-face-insert-link.html
        
        If a dynamically inserted stylesheet contains @font-face rules, we may fail to update the rendering.
        
        Before r104060 the style selector was destroyed on every style change, and the font selector along with it.
        This is no longer the case and we can't rely on comparing font selector pointers when comparing Fonts
        for equality. This patch adds version number to the font selector and checks it in Font::operator==.
        The version number is incremented when new font-face rules are added to the font selector.
        
        FontFallbackList is an object shared between Fonts so the extra field shouldn't matter much in terms
        of memory.

        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::CSSFontSelector):
        (WebCore::CSSFontSelector::addFontFaceRule):
        * css/CSSFontSelector.h:
        (CSSFontSelector):
        * platform/graphics/Font.cpp:
        (WebCore::Font::operator==):
        * platform/graphics/FontFallbackList.cpp:
        (WebCore::FontFallbackList::FontFallbackList):
        (WebCore::FontFallbackList::invalidate):
        * platform/graphics/FontFallbackList.h:
        (FontFallbackList):
        (WebCore::FontFallbackList::fontSelectorVersion):
        * platform/graphics/FontSelector.h:
        (FontSelector):

2012-03-23  Nikolas Zimmermann  <nzimmermann@rim.com>

        REGRESSION(58212): html foreignObjects with positions other than static not hidden correctly when parent has display:none
        https://bugs.webkit.org/show_bug.cgi?id=41386

        Reviewed by Zoltan Herczeg.

        r58212 gave SVGGElements a renderer, regardless if "display: none" was set or not, for various reasons (see change set).
        The <g> renderer for such cases is a RenderSVGHiddenContainer. We make sure in SVG that such subtrees are never used
        for painting & hittesting - they only exist for the purpose of SVG DOM (query getCTM, etc..) and to create renderers
        for child resources, like <g display="none"><linearGradient>.

        This concept still works fine for: <g display="none"><foreignObject><body>Foobar</body></foreignObject></g>, as
        RenderSVGForeignObject::paint is never called thus we never paint the subtree of the <fO>. If the <body> elements
        contains "position: relative" a new layer is created for the <body>. When the document paints we have two seperated
        layers, and the <body> layer doesn't know that it's actually inside a "SVG hidden subtree", and gets painted, where it
        shouldn't. HTML doesn't have this problems, as a display: none object, never creates a renderer.

        The fix is to disallow layer creation in hidden SVG subtrees, to mimic what would happen if we'd follow HTML rules
        to not create renderers for display: none objects. This avoids any indirections - as no layers are created anymore.

        Tests: svg/foreignObject/fO-display-none-with-relative-pos-content.svg
               svg/foreignObject/fO-display-none.svg
               svg/foreignObject/fO-parent-display-changes.svg
               svg/foreignObject/fO-parent-display-none-with-relative-pos-content.svg
               svg/foreignObject/fO-parent-display-none.svg
               svg/foreignObject/fO-parent-of-parent-display-none-with-relative-pos-content.svg
               svg/foreignObject/fO-parent-of-parent-display-none.svg

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::styleDidChange): Only create layers, if its allowed -- layerCreationAllowedForSubtree() will always return true for HTML, and only false for layers inside a hidden SVG subtree.
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::addChild): Only create layers, if its allowed.
        * rendering/RenderObject.h: Add inline layerCreationAllowedForSubtree() helper, that craws the tree to find a RenderSVGHiddenContainer ancestor, if not present, return true.

2012-03-23  Nikolas Zimmermann  <nzimmermann@rim.com>

        REGRESSION: unbalanced transparency layers for clipPath
        https://bugs.webkit.org/show_bug.cgi?id=78074

        Reviewed by Zoltan Herczeg.

        If we're rendering to a mask image buffer, all children are rendered with opacity=1, regardless what their RenderStyles specify.
        SVGRenderSupport::finishRenderSVGContent() did not take this into account and always called endTransparencyLayer(). Fix that
        by checking if we're rendering to a mask image buffer, if so don't call endTransparencyLayer().

        Add new reftest covering both the visual & logical correctness (no assertion).

        Tests: svg/clip-path/opacity-assertion-expected.svg
               svg/clip-path/opacity-assertion.svg

        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::isRenderingMaskImage): Extraced as sharable helper function.
        (WebCore::SVGRenderSupport::prepareToRenderSVGContent): Factor out isRenderingMaskImage() function.
        (WebCore::SVGRenderSupport::finishRenderSVGContent): Only call endTransparencyLayer(), if we actually called beginTL() first. 

2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>

        Assertion failure in TextIterator::handleTextBox
        https://bugs.webkit.org/show_bug.cgi?id=78530

        Reviewed by Eric Seidel.

        The assertion failure was caused by handleTextNodeFirstLetter's updating m_text without clearing
        m_sortedTextBoxesPosition. Re-structured handleTextNode so that we always reset m_sortedTextBoxesPosition
        when we have a first-letter.

        Test: editing/text-iterator/rtl-first-letter-text-iterator-crash.html

        * editing/TextIterator.cpp:
        (WebCore::TextIterator::handleTextNode):
        (WebCore::TextIterator::handleTextBox):
        (WebCore::TextIterator::handleTextNodeFirstLetter):

2012-03-19  Martin Robinson  <mrobinson@igalia.com>

        [Cairo] Text extent of shadowed text is calculated incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=65035

        Reviewed by Martin Robinson.

        No new tests. This is already covered by fast/canvas/fillText-shadow.html.

        Correct determine the size of rendered text using x and y bearing from the font
        extents.

        * platform/graphics/cairo/FontCairo.cpp:
        (WebCore::drawGlyphsShadow): Use the x and y bearing to calculate text extents.
        This gives a more accurate sizing and avoids clipping the edges of the shadow.

2012-03-19  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Menulist buttons have separators even when the theme turns them off
        https://bugs.webkit.org/show_bug.cgi?id=80668

        Reviewed by Daniel Bates.

        No new tests. GTK+ theme differences are notoriously difficult
        to test, because consistent results depend on having certain themes
        and certain versions of themes installed.

        Instead of using the GTK_TYPE_BUTTON and GTK_TYPE_SEPARATOR tags to get the
        style context, use GTK_TYPE_COMBO_BOX which should provide more accurate theme settings.

        * platform/gtk/RenderThemeGtk3.cpp:
        (WebCore::getComboBoxMetrics): Get metrics from a GTK_TYPE_COMBO_BOX style context.
        (WebCore::RenderThemeGtk::paintMenuList): Get separator settings from the GTK_TYPE_COMBO_BOX style context.

2012-03-19  Scott Byer  <scottbyer@chromium.org>

        Cleanup obsolete files.
        https://bugs.webkit.org/show_bug.cgi?id=80737

        Reviewed by James Robinson.

        No new code.

        * GNUmakefile.list.am:
        * PlatformWinCE.cmake:
        * Target.pri:
        * WebCore.vcproj/WebCore.vcproj:
        * platform/ScrollAnimatorWin.cpp: Removed.
        * platform/ScrollAnimatorWin.h: Removed.

2012-03-06  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r109760.
        http://trac.webkit.org/changeset/109760
        https://bugs.webkit.org/show_bug.cgi?id=80320

        Caused many GTK+ tests to crash (Requested by mrobinson on
        #webkit).

        * platform/network/ResourceHandleClient.h:
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCoreSynchronousLoader):
        (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
        (WebCore):
        (WebCore::WebCoreSynchronousLoader::~WebCoreSynchronousLoader):
        (WebCore::WebCoreSynchronousLoader::didReceiveResponse):
        (WebCore::WebCoreSynchronousLoader::didReceiveData):
        (WebCore::WebCoreSynchronousLoader::didFinishLoading):
        (WebCore::WebCoreSynchronousLoader::didFail):
        (WebCore::WebCoreSynchronousLoader::run):
        (WebCore::closeCallback):
        (WebCore::readCallback):
        (WebCore::ResourceHandle::defaultSession):

2012-03-05  Martin Robinson  <mrobinson@igalia.com>

        [soup] Crash while loading http://www.jusco.cn
        https://bugs.webkit.org/show_bug.cgi?id=68238

        Reviewed by Philippe Normand.

        Test: http/tests/xmlhttprequest/xmlhttprequest-sync-no-timers.html

        When running synchronous XMLHttpRequests, push a new inner thread default
        context, so that other sources from timers and network activity do not run.
        This will make synchronous requests truly synchronous with the rest of
        WebCore.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCoreSynchronousLoader): Clean up the method definitions a bit by writing them inline.
        (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader): Push a new thread default
        context to prevent other sources from running.
        (WebCore::WebCoreSynchronousLoader::~WebCoreSynchronousLoader): Pop the inner thread default context.
        (WebCore::closeCallback): If the client is synchronous call didFinishLoading now.
        (WebCore::readCallback): Only call didFinishLoading if the client isn't synchronous.
        (WebCore::ResourceHandle::defaultSession): Activate use-thread-context so that the soup session
        respects the inner thread context.
        (ResourceHandleClient):
        (WebCore::ResourceHandleClient::isSynchronousClient): Added this virtual method.

2012-03-05  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Add GMainLoop and GMainContext to be handled by GRefPtr
        https://bugs.webkit.org/show_bug.cgi?id=79496

        Reviewed by Martin Robinson.

        Updated places where raw pointers to GMainLoop and GMainContext
        were being used, replacing them with GRefPtr-based code.

        * platform/RunLoop.h:
        (RunLoop):
        * platform/gtk/RunLoopGtk.cpp:
        (WebCore::RunLoop::RunLoop):
        (WebCore::RunLoop::~RunLoop):
        (WebCore::RunLoop::mainLoop):
        (WebCore::RunLoop::stop):
        (WebCore::RunLoop::wakeUp):
        (WebCore::RunLoop::TimerBase::start):
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCoreSynchronousLoader):
        (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
        (WebCore::WebCoreSynchronousLoader::~WebCoreSynchronousLoader):
        (WebCore::WebCoreSynchronousLoader::didFinishLoading):
        (WebCore::WebCoreSynchronousLoader::run):

2012-03-05  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] media/media-can-play-flac-audio.html fails
        https://bugs.webkit.org/show_bug.cgi?id=80124

        Reviewed by Martin Robinson.

        Handle audio/x-flac in the mimeTypeCache() function so that we
        advertize both audio/flac and audio/x-flac.

        No new tests, this is covered already by media/media-can-play-flac-audio.html.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

2012-03-05  Pablo Flouret  <pablof@motorola.com>

        Fix code generators to correctly guard header declarations that have a [Conditional] attribute.
        https://bugs.webkit.org/show_bug.cgi?id=79375

        Reviewed by Kentaro Hara.

        In most cases code generators weren't checking the Conditional attribute
        when generating code in headers for function/attribute/constants, they
        were just guarding against the Conditional for the whole interface.

        * bindings/scripts/CodeGeneratorCPP.pm:
        (GenerateHeader):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (GenerateHeader):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        * bindings/scripts/test/CPP/WebDOMTestInterface.h:
        * bindings/scripts/test/CPP/WebDOMTestObj.h:
        * bindings/scripts/test/JS/JSTestInterface.h:
        (JSTestInterface):
        (WebCore):
        * bindings/scripts/test/JS/JSTestObj.h:
        (WebCore):
        * bindings/scripts/test/ObjC/DOMTestInterface.h:
        * bindings/scripts/test/ObjC/DOMTestObj.h:


2012-02-22  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Clean build is broken when using make -j
        https://bugs.webkit.org/show_bug.cgi?id=76388

        No new tests. This is just a build fix.

        Use order-only dependencies to ensure that built sources are built before
        files that depend on them.

        * GNUmakefile.am: Establish an order-only dependency on some built sources before starting
        to build non-generated sources. Rename some temporary files and variables to be more consistent.
        * bindings/gobject/GNUmakefile.am: Updated to reflect new variable names.

2012-02-20  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Web content oftens steals focus from other widgets
        https://bugs.webkit.org/show_bug.cgi?id=77791

        Reviewed by Gustavo Noronha Silva.

        * platform/gtk/WidgetGtk.cpp:
        (WebCore::Widget::setFocus): No longer do anything special to try
        to grab "real" widget focus. This matches the behavior on Qt.
        * plugins/gtk/PluginViewGtk.cpp:
        (WebCore::PluginView::setFocus): Moved the focus handling to here.
        This ensures that behavior for plugins does not change.

2012-02-20  Martin Robinson  <mrobinson@igalia.com>

        [UNIX] Plugin information fields are not interpreted as UTF-8
        https://bugs.webkit.org/show_bug.cgi?id=78635

        Reviewed by Gustavo Noronha Silva.

        Interpret plugin metadata as UTF8 aways. This matches the behavior
        of Chromium and the Totem plugin.

        This is tested by a change to TestNetscapePlugin and expectations updates.

        * plugins/efl/PluginPackageEfl.cpp:
        (WebCore::PluginPackage::fetchInfo): Use String::fromUTF8.
        * plugins/gtk/PluginPackageGtk.cpp:
        (WebCore::PluginPackage::fetchInfo): Use String::fromUTF8.
        * plugins/qt/PluginPackageQt.cpp:
        (WebCore::PluginPackage::fetchInfo): Use String::fromUTF8.

2012-02-20  Anders Carlsson  <andersca@apple.com>

        Stop the committer timer when the page is destroyed
        https://bugs.webkit.org/show_bug.cgi?id=78907

        Reviewed by Adam Roben.

        We don't want the committer timer to fire after the scrolling tree has been invalidated,
        so stop the committer timer to prevent it from firing and trying to access the scrolling tree.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::pageDestroyed):

2012-02-20  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed manual rollout of r107970 which breaks table column widths
        updates from javascript (e.g. inspector's network panel).

        * rendering/FixedTableLayout.cpp:
        (WebCore::FixedTableLayout::calcWidthArray):
        * rendering/RenderTableCol.h:
        (RenderTableCol):

2012-02-20  Kalev Lember  <kalevlember@gmail.com>

        [GTK] Fix build on platforms where UChar is wchar_t
        https://bugs.webkit.org/show_bug.cgi?id=78996

        Reviewed by Martin Robinson.

        The ICU backend defines UChar as wchar_t for platforms where wchar_t is
        16 bits wide, e.g. win32.

        * platform/graphics/pango/FontPango.cpp:
        (WebCore::utf16ToUtf8): Use reinterpret_cast instead of static_cast.
        * platform/gtk/GtkPopupMenu.cpp:
        (WebCore::GtkPopupMenu::typeAheadFind): Ditto.

2012-02-20  Paweł Forysiuk  <tuxator@o2.pl>

        [GTK] Can't find webinspector and error page redirection on Windows
        https://bugs.webkit.org/show_bug.cgi?id=51616

        Create and use an abstraction for finding shared resources on Windows.

        Reviewed by Martin Robinson.

        * platform/FileSystem.h:
        (WebCore):
        * platform/audio/gtk/AudioBusGtk.cpp:
        (WebCore::AudioBus::loadPlatformResource):
        * platform/graphics/gtk/ImageGtk.cpp:
        (WebCore::getPathToImageResource):
        * platform/gtk/FileSystemGtk.cpp:
        (WebCore::sharedResourcesPath):
        (WebCore):

2012-02-19  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distcheck issues.

        * GNUmakefile.list.am: Add missing header.

2012-02-18  Robert Hogan  <robert@webkit.org>

        CSS 2.1 failure: inline-box-002.htm fails
        https://bugs.webkit.org/show_bug.cgi?id=69210

        Reviewed by David Hyatt.

        Tests: css2.1/20110323/dynamic-top-change-005.htm
               css2.1/20110323/dynamic-top-change-005a.htm
               css2.1/20110323/dynamic-top-change-005b.htm
               css2.1/20110323/inline-box-002.htm
               fast/css/relative-positioned-block-nested-with-inline-parent-dynamic-removed.html
               fast/css/relative-positioned-block-nested-with-inline-parent-dynamic.html
               fast/css/relative-positioned-block-nested-with-inline-parent-multiple-descendant-blocks-dynamic.html
               fast/css/relative-positioned-block-nested-with-inline-parent.html
               fast/css/relative-positioned-block-with-inline-ancestor-and-parent-dynamic.html
               fast/css/relative-positioned-block-with-inline-ancestor-dynamic-removed.html
               fast/css/relative-positioned-block-with-inline-ancestor-dynamic.html
               fast/css/relative-positioned-block-with-inline-ancestor.html
               fast/css/relative-positioned-block-with-inline-parent-dynamic-removed.html
               fast/css/relative-positioned-block-with-inline-parent-dynamic.html
               fast/css/relative-positioned-block-with-inline-parent-keeps-style.html
               fast/css/relative-positioned-block-with-inline-parent.html

        A block within an inline is affected by relative positioning on the inline box. Give
        the anonymous block containing the block a layer and make it relative positioned. Then
        calculate the offset of the anonymous block's layer by accumulating the offsets from its
        inline continuation and the inline continuation's inline parents.
        If the position of an inline changes from or to relative positioned then ensure that any
        descendant blocks update their position and layer accordingly.

        * rendering/RenderBoxModelObject.cpp:
        (): add an enum RelPosAxis
        (WebCore::accumulateRelativePositionOffsets): 
        Total up the offsets of all relatively positioned inlines that are de-facto parents of the relatively 
        positioned anonymous block's child block.

        (WebCore):
        (WebCore::RenderBoxModelObject::relativePositionOffsetX): 
        Use accumulateRelativePositionOffsets when calculating the relative position offset of a relatively positioned anonymous block.

        (WebCore::RenderBoxModelObject::relativePositionOffsetY): ditto

        * rendering/RenderInline.cpp:
        (WebCore::hasRelPositionedInlineAncestor): 
        Detects if the anonymous block contains a block that is the de-facto descendant of a relatively positioned inline.

        (WebCore::updateStyleOfAnonymousBlockContinuations): 
        Update the style's positioning for each anonymous block containing a block that is descendant from the inline whose style has changed.

        (WebCore::RenderInline::styleDidChange): 
        If an inline changes to or from relative positioning ensure that any descendant blocks change to or from relative positioning
        as well, unless they still have a relatively positioned ancestor after the current ancestor loses its relative positioning.

        (WebCore::RenderInline::addChildIgnoringContinuation): 
        If the anonymous block contains a block that is effectively descended from a relatively positioned inline, make it relatively
        positioned so the block will respect its inline ancestor's relative positioning.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::propagateStyleToAnonymousChildren): 
        Preserve style position in anonymous block continuations when the parent block propagates a style change. 

2012-02-18  raman Tenneti  <rtenneti@chromium.org>

        Track the NPN protocol version negotiated with the server
        https://bugs.webkit.org/show_bug.cgi?id=77349

        Reviewed by Darin Fisher..

        [chromium] Added ExtraData to WebURLResponse.
        
        No intended functionality change.

        * platform/network/chromium/ResourceResponse.h:
        (ExtraData):
        (WebCore::ResourceResponse::ExtraData::~ExtraData):
        (ResourceResponse):
        (WebCore::ResourceResponse::extraData):
        (WebCore::ResourceResponse::setExtraData):

2012-02-18  Abhishek Arya  <inferno@chromium.org>

        Unreviewed, rolling out r107965.
        http://trac.webkit.org/changeset/107965
        https://bugs.webkit.org/show_bug.cgi?id=78273

        crashes

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

2012-02-18  Sam Weinig  <sam@webkit.org>

        Make WebCore compile with libc++ (Part 2)
        https://bugs.webkit.org/show_bug.cgi?id=78974

        Reviewed by Anders Carlsson.

        * config.h:
        Disable the DisallowCType check when using libc++.

2012-02-18  Sam Weinig  <sam@webkit.org>

        Fix the build.

        * page/DOMWindow.idl:

2012-02-14  Sam Weinig  <sam@webkit.org>

        Make WebCore compile with libc++ (Part 1)
        https://bugs.webkit.org/show_bug.cgi?id=78974

        Reviewed by Anders Carlsson.

        Add a workaround for <rdar://problem/10858112>, which cause the standard heap functions
        not to work when using an iterator with proxy objects for reference and pointer types.

        * WebCorePrefix.h:
        (move):
        Add an overload of std::move that the heap functions can call successfully.

2012-02-18  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Build fixes for C++ bindings after recent changes.
        
        * bindings/scripts/CodeGeneratorCPP.pm:
        (ShouldSkipType):
        (GenerateHeader):
        * page/DOMWindow.idl:

2012-02-18  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Build fix, add new platform method wx impl.

        * platform/wx/ContextMenuWx.cpp:
        (ContextMenu::itemCount):

2012-02-18  Sam Weinig  <sam@webkit.org>

        Fix part of the windows build failure.

        * WebCore.vcproj/WebCore.vcproj:
        Don't build JSWebKitCSSRegionRule.cpp, since it is already being built
        as part of DerivedSources.cpp.

2012-02-18  Sam Weinig  <sam@webkit.org>

        Fix the ENABLE(THREADED_SCROLLING) build.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
        (WebCore::ScrollingCoordinator::setScrollParameters):

2012-02-18  Andreas Kling  <awesomekling@apple.com>

        HTML: Remove unnecessary attributeChange() overrides.
        <http://webkit.org/b/78890>

        Reviewed by Anders Carlsson.

        Move logic from attributeChanged() overrides into parseAttribute().
        This is a step towards making attributeChanged() non-virtual.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        * html/HTMLMediaElement.h:
        (HTMLMediaElement):
        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::parseAttribute):
        * html/HTMLScriptElement.h:
        (HTMLScriptElement):
        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::parseAttribute):
        * html/HTMLTrackElement.h:
        (HTMLTrackElement):

2012-02-18  Andreas Kling  <awesomekling@apple.com>

        Remove Element::createAttribute().
        <http://webkit.org/b/78965>

        Reviewed by Anders Carlsson.

        Switch call sites to use Attribute::create() directly, as there is no magic
        in calling Element::createAttribute() anymore (it used to be virtual and handled
        differently by StyledElement.)

        * dom/Element.cpp:
        (WebCore::Element::setAttributeInternal):
        * dom/Element.h:
        * svg/properties/SVGAnimatedPropertySynchronizer.h:

2012-02-18  Andreas Kling  <awesomekling@apple.com>

        HTMLBodyElement: Avoid synchronous style recalc when setting link/vlink/alink.
        <http://webkit.org/b/78959>

        Reviewed by Anders Carlsson.

        Mark the body element for deferred style recalc instead of doing it synchronously
        when the attributes change.

        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::parseAttribute):

2012-02-18  Martin Robinson  <mrobinson@igalia.com>

        Fix the TextureMapper build for non-Qt ports. Qt debug builds
        must use RTTI, but GTK+, at least, does not.

        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::updateBackingStore): Make the RTTI check
        Qt only.

2012-02-16  Andreas Kling  <awesomekling@apple.com>

        FontFamilyValue: Utilize inheritance from CSSPrimitiveValue better.
        <http://webkit.org/b/78806>

        Reviewed by Antti Koivisto.

        Now that FontFamilyValue's string doesn't change after creation, we can just
        pass the massaged family name up to the CSSPrimitiveValue constructor and get
        cached cssText() for free. This also shrinks FontFamilyValue by sizeof(String)
        though that's less of an issue now that we cache them in CSSValuePool.

        * css/FontFamilyValue.cpp:
        (WebCore::stripFontFamilyJunk):
        (WebCore::FontFamilyValue::FontFamilyValue):
        * css/FontFamilyValue.h:
        (WebCore::FontFamilyValue::familyName):
        (FontFamilyValue):

2012-02-17  Adam Klein  <adamk@chromium.org>

        Avoid inconsistency in Node::inDocument due to DOMSubtreeModified dispatch
        https://bugs.webkit.org/show_bug.cgi?id=76087

        Reviewed by Ryosuke Niwa.

        Move post-removal notifications after call to Node::removeFromDocument
        to avoid inconsistent state of Node::inDocument() and thus avoid
        inconsistent state in DocumentOrderedMap.

        Tests: fast/dom/getElementById-consistency.html
               fast/dom/getElementById-consistency2.html

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::removeChild):
        * svg/SVGTRefElement.cpp:
        (WebCore::SVGTRefElement::updateReferencedText): Fixed to work with new timing of DOMSubtreeModified dispatch.

2012-02-17  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Support overloaded methods that take IDBKey or IDBKeyRange
        https://bugs.webkit.org/show_bug.cgi?id=78399

        Implements IDBObjectStore.delete(IDBKeyRange) to exercise the functionality.

        Reviewed by Tony Chang.

        Test: storage/indexeddb/delete-range.html

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateFunctionCallString): Use .get() to disambiguate when passing RefPtr.
        * bindings/scripts/test/V8/V8TestObj.cpp: Update test expectations.
        * storage/IDBLevelDBBackingStore.cpp:
        (WebCore):
        * storage/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::deleteFunction):
        (WebCore):
        * storage/IDBObjectStore.h:
        (IDBObjectStore):
        * storage/IDBObjectStore.idl:
        * storage/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
        (WebCore):
        (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
        * storage/IDBObjectStoreBackendImpl.h:
        (IDBObjectStoreBackendImpl):
        * storage/IDBObjectStoreBackendInterface.h:

2012-02-17  Kentaro Hara  <haraken@chromium.org>

        Replace [V8OnInstance] with [V8Unforgeable]
        https://bugs.webkit.org/show_bug.cgi?id=78894

        Reviewed by Adam Barth.

        [V8OnInstance] means that the method should be defined
        (not on a prototype chain but) on a DOM object. It is the
        same meaning as [V8Unforgeable]. This patch replaces [V8OnInstance]
        with [V8Unforgeable].

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateImplementation):
        * page/Location.idl:

2012-02-17  James Robinson  <jamesr@chromium.org>

        [chromium] Unreviewed build fix. MSVS gyp generator can't handle multiple .cpps with the same name in the same
        target from different paths.

        * WebCore.gypi:
        * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp: Renamed from Source/WebCore/page/scrolling/chromium/ScrollingCoordinator.cpp.
        (WebCore):
        (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
        (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
        (WebCore::ScrollingCoordinator::setScrollLayer):
        (WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
        (WebCore::ScrollingCoordinator::setScrollParameters):
        (WebCore::ScrollingCoordinator::setWheelEventHandlerCount):
        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):

2012-02-17  James Robinson  <jamesr@chromium.org>

        Unreviewed mac compile fix pt 2

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
        (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
        (WebCore::ScrollingCoordinator::setScrollLayer):
        (WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
        (WebCore::ScrollingCoordinator::setScrollParameters):
        (WebCore::ScrollingCoordinator::setWheelEventHandlerCount):
        (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):

2012-02-17  James Robinson  <jamesr@chromium.org>

        Unreviewed mac compile fix (unused parameter warning)

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
        (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):

2012-02-14  James Robinson  <jamesr@chromium.org>

        Move ScrollingCoordinator out of ENABLE(THREADED_SCROLLING) ifdef and enable on all platforms
        https://bugs.webkit.org/show_bug.cgi?id=78401

        Reviewed by Adam Barth.

        Separates THREADED_SCROLLING from ScrollingCoordinator and enables ScrollingCoordinator-related code on
        chromium. ScrollingCoordinator receives scrolling information to be used with an external scrolling source.
        ENABLE(THREADED_SCROLLING) enables a codepath that uses a thread in WebCore to handle scrolling related input
        events and interact with composited layers.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * dom/Document.cpp:
        (WebCore::wheelEventHandlerCountChanged):
        * page/FrameView.cpp:
        (WebCore::FrameView::addSlowRepaintObject):
        (WebCore::FrameView::removeSlowRepaintObject):
        (WebCore::FrameView::performPostLayoutTasks):
        * page/Page.cpp:
        (WebCore::Page::~Page):
        (WebCore):
        * page/Page.h:
        (Page):
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h:
        (Settings):
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::ScrollingCoordinator):
        (WebCore::ScrollingCoordinator::~ScrollingCoordinator):
        (WebCore::ScrollingCoordinator::pageDestroyed):
        (WebCore):
        * page/scrolling/ScrollingCoordinator.h:
        (WebCore):
        (ScrollingCoordinator):
        * page/scrolling/ScrollingThread.cpp:
        (WebCore::ScrollingThread::createThreadIfNeeded):
        * page/scrolling/ScrollingTreeState.cpp:
        * page/scrolling/ScrollingTreeState.h:
        * page/scrolling/chromium/ScrollingCoordinator.cpp: Added.
        (WebCore):
        (WebCore::ScrollingCoordinator::scheduleTreeStateCommit):
        (WebCore::ScrollingCoordinator::frameViewScrollLayerDidChange):
        (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
        (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::RenderLayerBacking):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::frameViewDidScroll):
        (WebCore::shouldCompositeOverflowControls):
        (WebCore::RenderLayerCompositor::requiresOverhangAreasLayer):
        (WebCore::RenderLayerCompositor::requiresContentShadowLayer):
        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
        (WebCore::RenderLayerCompositor::ensureRootLayer):
        (WebCore):
        * rendering/RenderLayerCompositor.h:
        (WebCore):
        (RenderLayerCompositor):

2012-02-17  Emil A Eklund  <eae@chromium.org>

        Add FractionalLayoutPoint for sub-pixel layout
        https://bugs.webkit.org/show_bug.cgi?id=78913

        Reviewed by Eric Seidel.

        Add FractionalLayoutUnit version of Point class and a couple of
        conversion methods to the Int and Float versions of same.

        No new tests.

        * GNUmakefile.list.am:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/FloatPoint.cpp:
        (WebCore::FloatPoint::FloatPoint):
        (WebCore):
        (WebCore::FloatPoint::moveBy):
        * platform/graphics/FloatPoint.h:
        (WebCore):
        (FloatPoint):
        * platform/graphics/FractionalLayoutPoint.h: Added.
        (WebCore):
        (FractionalLayoutPoint):
        (WebCore::FractionalLayoutPoint::FractionalLayoutPoint):
        (WebCore::FractionalLayoutPoint::zero):
        (WebCore::FractionalLayoutPoint::x):
        (WebCore::FractionalLayoutPoint::y):
        (WebCore::FractionalLayoutPoint::setX):
        (WebCore::FractionalLayoutPoint::setY):
        (WebCore::FractionalLayoutPoint::move):
        (WebCore::FractionalLayoutPoint::moveBy):
        (WebCore::FractionalLayoutPoint::scale):
        (WebCore::FractionalLayoutPoint::expandedTo):
        (WebCore::FractionalLayoutPoint::shrunkTo):
        (WebCore::FractionalLayoutPoint::clampNegativeToZero):
        (WebCore::FractionalLayoutPoint::transposedPoint):
        (WebCore::operator+=):
        (WebCore::operator-=):
        (WebCore::operator+):
        (WebCore::operator-):
        (WebCore::operator==):
        (WebCore::operator!=):
        (WebCore::toPoint):
        (WebCore::toSize):
        (WebCore::flooredIntPoint):
        (WebCore::roundedIntPoint):
        (WebCore::ceiledIntPoint):
        * platform/graphics/FractionalLayoutSize.cpp:
        (WebCore::pixelSnappedIntSize):
        * platform/graphics/FractionalLayoutSize.h:
        (WebCore):

2012-02-17  Ryosuke Niwa  <rniwa@webkit.org>

        Move textDirectionForSelection from Editor to EditingStyle
        https://bugs.webkit.org/show_bug.cgi?id=78868

        Reviewed by Enrica Casucci.

        Move textDirectionForSelection from Editor to EditingStyle to centralize the editing code's
        dependency on CSSStyleDeclaration.

        * editing/EditingStyle.cpp:
        (WebCore::EditingStyle::textDirectionForSelection):
        (WebCore):
        * editing/EditingStyle.h:
        (EditingStyle):
        * editing/Editor.cpp:
        (WebCore):
        * editing/Editor.h:
        (Editor):
        * editing/EditorCommand.cpp:
        (WebCore::stateTextWritingDirection):
        * editing/ReplaceSelectionCommand.cpp:
        * editing/markup.cpp:

2012-02-17  David Barton  <dbarton@mathscribe.com>

        MathML internals - embellished operators, getBase() accessor functions
        https://bugs.webkit.org/show_bug.cgi?id=78617

        Reviewed by Eric Seidel.

        Define functions that return an unembellished "base", by omitting
        subscripts/superscripts, underscripts/overscripts, or denominators. This is needed in
        subsequent patches both for correct operator stretching and simple code factoring.

        No new tests.

        * rendering/mathml/RenderMathMLBlock.h:
        (WebCore):
        (RenderMathMLBlock):
        (WebCore::RenderMathMLBlock::unembellishedOperator):
        * rendering/mathml/RenderMathMLFraction.cpp:
        (WebCore::RenderMathMLFraction::unembellishedOperator):
        (WebCore):
        * rendering/mathml/RenderMathMLFraction.h:
        (RenderMathMLFraction):
        * rendering/mathml/RenderMathMLOperator.h:
        (WebCore::RenderMathMLOperator::unembellishedOperator):
        * rendering/mathml/RenderMathMLSubSup.cpp:
        (WebCore::RenderMathMLSubSup::base):
        (WebCore):
        (WebCore::RenderMathMLSubSup::unembellishedOperator):
        (WebCore::RenderMathMLSubSup::stretchToHeight):
            - renamed a variable for clarity, especially in later patches
        (WebCore::RenderMathMLSubSup::layout):
            - renamed a variable for clarity, especially in later patches
        * rendering/mathml/RenderMathMLSubSup.h:
        (RenderMathMLSubSup):
        * rendering/mathml/RenderMathMLUnderOver.cpp:
        (WebCore::RenderMathMLUnderOver::base):
        (WebCore):
        (WebCore::RenderMathMLUnderOver::unembellishedOperator):
        (WebCore::RenderMathMLUnderOver::stretchToHeight):
        * rendering/mathml/RenderMathMLUnderOver.h:
        (RenderMathMLUnderOver):

2012-02-17  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Qt][WK2] Allow opaque tiles
        https://bugs.webkit.org/show_bug.cgi?id=78809

        Replace the isOpaque boolean in BitmapTexture to a SupportsAlpha flag.
        Use reset/didReset instead of a virtual function that has to call the superclass.

        Make sure that all calls to BitmapTexture::reset() pass the correct SupportsAlpha flag,
        based on the source image.
        Since we now disable blending for opaque textures, we also have to make sure that we treat
        the depth buffer correctly and bring it back to its previous state.

        Reviewed by Kenneth Rohde Christiansen.

        No behavior changes.

        * platform/graphics/opengl/TextureMapperGL.cpp:
        (TextureMapperGLData):
        (WebCore::TextureMapperGLData::initStencil):
        (WebCore::TextureMapperGLData::TextureMapperGLData):
        (BitmapTextureGL):
        (WebCore::TextureMapperGL::beginPainting):
        (WebCore::TextureMapperGL::endPainting):
        (WebCore::TextureMapperGL::drawTexture):
        (WebCore::BitmapTextureGL::didReset):
        (WebCore::BitmapTextureGL::bind):
        (WebCore::TextureMapperGL::beginClip):
        * platform/graphics/texmap/TextureMapper.h:
        (WebCore::BitmapTexture::BitmapTexture):
        (WebCore::BitmapTexture::flags):
        (WebCore::BitmapTexture::didReset):
        (WebCore::BitmapTexture::reset):
        (BitmapTexture):
        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
        (WebCore::TextureMapperTile::updateContents):
        (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
        (WebCore::TextureMapperTiledBackingStore::createOrDestroyTilesIfNeeded):
        (WebCore::TextureMapperTiledBackingStore::updateContents):
        * platform/graphics/texmap/TextureMapperBackingStore.h:
        (TextureMapperTiledBackingStore):
        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
        (WebCore::BitmapTextureImageBuffer::didReset):
        (WebCore):
        * platform/graphics/texmap/TextureMapperImageBuffer.h:
        (BitmapTextureImageBuffer):

2012-02-17  Stephen Chenney  <schenney@chromium.org>

        Crash in SVGAnimateElement due to changed target
        https://bugs.webkit.org/show_bug.cgi?id=75096

        Reviewed by Nikolas Zimmermann.

        The SVGAnimateElement object creates various internal objects
        depending on the type of property being animated, which depends on the
        target. These objects were not being recreated when the target
        changed, and crashes ensued. Now the SVGSMILElement provides a virtual
        method that is called when the target changes, and SVGAnimateElement
        updates its objects as necessary. We also deactivate the animation
        when the target changes, forcing recomputation of other derived
        objects.

        This change also removes various unnecessary calls to semi-expensive
        methods.

        Not only does this change fix the new test, it also fixes potential
        crashes in other tests that apparently never manifested before (but
        manifest when this new test is included in DRT).

        Test: svg/animations/svglength-animation-retarget-crash.html

        * svg/SVGAnimateElement.cpp:
        (WebCore::SVGAnimateElement::hasValidAttributeType):
        (WebCore::SVGAnimateElement::calculateAnimatedValue):
        (WebCore::SVGAnimateElement::calculateFromAndToValues):
        (WebCore::SVGAnimateElement::calculateFromAndByValues):
        (WebCore::SVGAnimateElement::resetToBaseValue):
        (WebCore::SVGAnimateElement::calculateDistance):
        (WebCore):
        (WebCore::SVGAnimateElement::targetElementDidChange):
        * svg/SVGAnimateElement.h:
        (SVGAnimateElement):
        * svg/SVGAnimatedTypeAnimator.h:
        (SVGAnimatedTypeAnimator):
        (WebCore::SVGAnimatedTypeAnimator::type):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::targetElement):
        (WebCore::SVGSMILElement::resetTargetElement):
        (WebCore):
        * svg/animation/SVGSMILElement.h:
        (SVGSMILElement):
        (WebCore::SVGSMILElement::targetElementDidChange):

2012-02-17  David Hyatt  <hyatt@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=78934
        
        Add the -webkit-line-align property to support the alignment of lines in the inline direction
        to the line grid.

        Reviewed by Dan Bernstein.

        Added fast/line-grid/line-align-parsing.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore):
        (WebCore::CSSPrimitiveValue::operator LineAlign):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSValueKeywords.in:
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff):
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleRareInheritedData.cpp:
        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
        (WebCore::StyleRareInheritedData::operator==):
        * rendering/style/StyleRareInheritedData.h:
        (StyleRareInheritedData):

2012-02-17  Emil A Eklund  <eae@chromium.org>

        Add FractionalLayoutSize for sub-pixel layout
        https://bugs.webkit.org/show_bug.cgi?id=78852

        Reviewed by Eric Seidel.

        Add FractionalLayoutUnit version of Size class and a couple of
        conversion methods to the Int and Float versions of same.

        No new tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/FloatPoint.cpp:
        (WebCore::FloatPoint::move):
        Add FractionalLayoutSize version of move.

        * platform/graphics/FloatPoint.h:
        * platform/graphics/FloatSize.cpp:
        (WebCore::FloatSize::FloatSize):
        Add FloatSize(FractionalLayoutSize) constructor.

        * platform/graphics/FloatSize.h:
        * platform/graphics/FractionalLayoutSize.cpp: Added.
        * platform/graphics/FractionalLayoutSize.h: Added.

2012-02-17  Enrica Casucci  <enrica@apple.com>

        REGRESSION (r107606): Copy Link writes malformed WebURLsWithTitlesPboardType
        data to the pasteboard.
        https://bugs.webkit.org/show_bug.cgi?id=78933
        <rdar://problem/10874553>
        
        For this format, the data needs to be placed in the pasteboard as array of arrays
        of strings. Currently is it stored as array of strings, which causes the code
        that uses this format to break.
        
        Reviewed by Ryosuke Niwa.

        * platform/mac/PlatformPasteboardMac.mm:
        (WebCore::PlatformPasteboard::setPathnamesForType):

2012-02-17  Abhishek Arya  <inferno@chromium.org>

        Incorrect placement of a new child when beforeChild and its
        previous sibling are in the same table.
        https://bugs.webkit.org/show_bug.cgi?id=78269

        Reviewed by Julien Chaffraix.

        Tests: fast/table/table-cell-split.html
               fast/table/table-row-split.html
               fast/table/table-section-split-with-after-content.html
               fast/table/table-section-split.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::splitAnonymousBlocksAroundChild): add
        call to splitTablePartsAroundChild to take care of splitting the
        table first if the child is part of table.
        (WebCore::markTableForSectionAndCellRecalculation): add helper to
        mark table for complete relayout by invalidating sections and cells.
        (WebCore):
        (WebCore::moveAllTableChildrenTo): moves children to another table.
        (WebCore::RenderBlock::splitTablePartsAroundChild): split table child
        and its next siblings into a new table. This allows adding a new
        non-table child between the tables.
        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): calls
        splitTablePartsAroundChild to see if we need to split the table
        for adding this new child.
        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createAnonymousTable): add helper for
        creating anonymous table.
        (WebCore):
        (WebCore::RenderObject::addChild): use the new helper for creating
        anonymous table.
        * rendering/RenderObject.h:
        (WebCore):
        (RenderObject):
        (WebCore::RenderObject::isTablePart): add helper to tell if the object
        is a table part.

2012-02-17  Andreas Kling  <awesomekling@apple.com>

        Element: Inline style selector and AX invalidation in attributeChanged().
        <http://webkit.org/b/78888>

        Reviewed by Antti Koivisto.

        Inline the updateAfterAttributeChanged() and recalcStyleIfNeededAfterAttributeChanged()
        methods into Element::attributeChanged(). They were separated when we needed them in
        StyledElement::attributeChanged(), but that's no longer the case.

        * dom/Element.cpp:
        (WebCore::Element::attributeChanged):
        * dom/Element.h:

2012-02-17  David Reveman  <reveman@chromium.org>

        [Chromium] Texture eviction doesn't show up in traces.
        https://bugs.webkit.org/show_bug.cgi?id=78851

        Reviewed by James Robinson.

        Add TextureManager::evictTexture() function with TRACE statement so
        that texture eviction shows up in traces.

        No new tests.

        * platform/graphics/chromium/TextureManager.cpp:
        (WebCore::TextureManager::evictTexture):
        (WebCore):
        (WebCore::TextureManager::reduceMemoryToLimit):
        * platform/graphics/chromium/TextureManager.h:
        (TextureManager):

2012-02-17  Kalev Lember  <kalevlember@gmail.com>

        Remove unused parameters from WTF threading API
        https://bugs.webkit.org/show_bug.cgi?id=78389

        Reviewed by Adam Roben.

        waitForThreadCompletion() had an out param 'void **result' to get the
        'void *' returned by ThreadFunction. However, the implementation in
        ThreadingWin.cpp ignored the out param, not filling it in. This had
        led to a situation where none of the client code made use of the param
        and just ignored it.

        To clean this up, the patch changes the signature of ThreadFunction to
        return void instead of void* and drops the the unused 'void **result'
        parameter from waitForThreadCompletion. Also, all client code is
        updated for the API change.

        As mentioned in https://bugs.webkit.org/show_bug.cgi?id=78389 , even
        though the change only affects internal API, Safari is using it
        directly and we'll need to keep the old versions around for ABI
        compatibility. For this, the patch adds compatibility wrappers with
        the old ABI.

        * bindings/js/GCController.cpp:
        (WebCore::collect):
        (WebCore::GCController::garbageCollectOnAlternateThreadForDebugging):
        * fileapi/FileThread.cpp:
        (WebCore::FileThread::fileThreadStart):
        (WebCore::FileThread::runLoop):
        * fileapi/FileThread.h:
        (FileThread):
        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::close):
        (WebCore::IconDatabase::iconDatabaseSyncThreadStart):
        (WebCore::IconDatabase::iconDatabaseSyncThread):
        (WebCore::IconDatabase::syncThreadMainLoop):
        * loader/icon/IconDatabase.h:
        (IconDatabase):
        * page/scrolling/ScrollingThread.cpp:
        (WebCore::ScrollingThread::threadCallback):
        * page/scrolling/ScrollingThread.h:
        (ScrollingThread):
        * platform/audio/HRTFDatabaseLoader.cpp:
        (WebCore::databaseLoaderEntry):
        (WebCore::HRTFDatabaseLoader::waitForLoaderThreadCompletion):
        * platform/audio/ReverbConvolver.cpp:
        (WebCore::backgroundThreadEntry):
        (WebCore::ReverbConvolver::~ReverbConvolver):
        * platform/network/cf/LoaderRunLoopCF.cpp:
        (WebCore::runLoaderThread):
        * storage/DatabaseThread.cpp:
        (WebCore::DatabaseThread::databaseThreadStart):
        (WebCore::DatabaseThread::databaseThread):
        * storage/DatabaseThread.h:
        (DatabaseThread):
        * storage/LocalStorageThread.cpp:
        (WebCore::LocalStorageThread::threadEntryPointCallback):
        (WebCore::LocalStorageThread::threadEntryPoint):
        (WebCore::LocalStorageThread::terminate):
        * storage/LocalStorageThread.h:
        (LocalStorageThread):
        * webaudio/AsyncAudioDecoder.cpp:
        (WebCore::AsyncAudioDecoder::~AsyncAudioDecoder):
        (WebCore::AsyncAudioDecoder::threadEntry):
        * webaudio/AsyncAudioDecoder.h:
        (AsyncAudioDecoder):
        * webaudio/OfflineAudioDestinationNode.cpp:
        (WebCore::OfflineAudioDestinationNode::uninitialize):
        (WebCore::OfflineAudioDestinationNode::renderEntry):
        * webaudio/OfflineAudioDestinationNode.h:
        (OfflineAudioDestinationNode):
        * workers/WorkerThread.cpp:
        (WebCore::WorkerThread::workerThreadStart):
        (WebCore::WorkerThread::workerThread):
        * workers/WorkerThread.h:
        (WorkerThread):

2012-02-17  Robert Hogan  <robert@webkit.org>

        AppleMac Build fix for r108111

        Remove variable that is now unused.

        Unreviewed, build fix.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::alwaysRequiresLineBox): Remove lineInfo
        (WebCore::requiresLineBox): 
        (WebCore::RenderBlock::LineBreaker::nextLineBreak):

2012-02-17  Michal Mocny  <mmocny@google.com>

        [chromium] GL_CHROMIUM_gpu_memory_manager extension
        https://bugs.webkit.org/show_bug.cgi?id=77155

        Reviewed by James Robinson.

        * platform/graphics/chromium/Extensions3DChromium.h:
        (GpuMemoryAllocationChangedCallbackCHROMIUM):
        (WebCore::Extensions3DChromium::GpuMemoryAllocationChangedCallbackCHROMIUM::~GpuMemoryAllocationChangedCallbackCHROMIUM):
        (Extensions3DChromium):

2012-01-23  Robert Hogan  <robert@webkit.org>

        REGRESSION: empty span creates renders with non-zero height
        https://bugs.webkit.org/show_bug.cgi?id=76465

        Reviewed by David Hyatt.

        Tests: fast/css/empty-span.html
               fast/css/non-empty-span.html

        Empty inlines with line-height, vertical-alignment or font metrics should only get a linebox if there is some
        other content in the line. So only create line boxes for such elements on lines that are not empty.

        This patch fixes a regression where an empty inline with line-height was propagating its height to an empty line.
        It also fixes cases where lines with content that had a leading empty inline element weren't respecting the 
        vertical alignment or font-height of the empty inline.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::constructLine): only create line boxes for lines that are not empty.
        (WebCore::requiresLineBoxForContent): an inline flow with line-height, vertical-alignment, or font-size
         will need a linebox if the rest of the line is not empty.
        (WebCore):
        (WebCore::alwaysRequiresLineBox): rename from inlineFlowRequiresLineBox.
        (WebCore::requiresLineBox):
        (WebCore::RenderBlock::LineBreaker::nextLineBreak): if the inline flow definitely requires a line, mark
         the line non-empty - otherwise hold off.

2012-02-17  Raymond Toy  <rtoy@google.com>

        RealtimeAnalyserNode does not consistently respect .minDecibels
        https://bugs.webkit.org/show_bug.cgi?id=78729

        Make use of m_minDecibel consistent.  Clean up some style issues
        with names of local variables and style issues with float
        constants.
        
        Reviewed by Chris Rogers.

        No new tests because the changes are cosmetic for style issues.

        * webaudio/RealtimeAnalyser.cpp:
        (WebCore):
        (WebCore::RealtimeAnalyser::doFFTAnalysis):
        (WebCore::RealtimeAnalyser::getFloatFrequencyData):
        (WebCore::RealtimeAnalyser::getByteFrequencyData):
        (WebCore::RealtimeAnalyser::getByteTimeDomainData):

2012-02-17  Abhishek Arya  <inferno@chromium.org>

        :before content incorrectly placed in continuation
        when we don't have a first child.
        https://bugs.webkit.org/show_bug.cgi?id=78380

        Reviewed by David Hyatt.

        Test: fast/css-generated-content/before-content-continuation-chain.html

        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::updateBeforeAfterContent):

2012-02-17  Mihnea Ovidenie  <mihnea@adobe.com>

        CSS regions enabled by default
        https://bugs.webkit.org/show_bug.cgi?id=78525

        Reviewed by David Hyatt.

        Test: fast/regions/css-regions-disabled.html

        Add a runtime preference to enable/disable regions functionality at runtime(WebKitCSSRegionsEnabled).
        CSSRegions are still enabled by default.
        In DRT, use layoutTestController.overridePreference("WebKitCSSRegionsEnabled", "0") to disable the css regions functionality.

        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::cssRegionsEnabled):
        (WebCore):
        (WebCore::CSSParser::parseFlowThread):
        (WebCore::CSSParser::parseRegionThread):
        (WebCore::CSSParser::createRegionRule):
        * css/CSSParser.h:
        * dom/Document.cpp:
        (WebCore::Document::cssRegionsEnabled):
        (WebCore):
        (WebCore::Document::webkitGetFlowByName):
        * dom/Document.h:
        (Document):
        * dom/Element.cpp:
        (WebCore::Element::webkitRegionOverflow):
        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h:
        (WebCore::Settings::setCSSRegionsEnabled):
        (WebCore::Settings::cssRegionsEnabled):
        (Settings):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::RenderFlowThread):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createObject):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::RenderRegion):

2012-02-17  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]Implement NamedFlow::overflow
        https://bugs.webkit.org/show_bug.cgi?id=78880

        Reviewed by David Hyatt.

        Test: fast/regions/webkit-named-flow-overflow.html

        * dom/WebKitNamedFlow.cpp:
        (WebCore::WebKitNamedFlow::WebKitNamedFlow):
        (WebCore::WebKitNamedFlow::overflow):
        (WebCore):
        * dom/WebKitNamedFlow.h:
        (WebCore):
        (WebCore::WebKitNamedFlow::create):
        (WebKitNamedFlow):
        * dom/WebKitNamedFlow.idl:
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::RenderFlowThread):
        (WebCore::RenderFlowThread::ensureNamedFlow):
        (WebCore::RenderFlowThread::computeOverflowStateForRegions):
        * rendering/RenderFlowThread.h:

2012-02-17  Joe Thomas  <joethomas@motorola.com>

        flex-wrap:nowrap should be flex-wrap:none
        https://bugs.webkit.org/show_bug.cgi?id=78772

        As per the spec http://dev.w3.org/csswg/css3-flexbox/#flex-wrap0, flex-wrap:nowrap should be changed to flex-wrap:none.

        Reviewed by Ojan Vafai.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator EFlexWrap):
        * css/CSSValueKeywords.in:
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:

2012-02-17  Enrica Casucci  <enrica@apple.com>

        Refactor DragData class to use PlatformStrategies in the Mac implementation.
        https://bugs.webkit.org/show_bug.cgi?id=78768

        Reviewed by Darin Adler.

        No new tests. No behavior change.

        * WebCore.exp.in: Added new exported method of the PlatformPasteboard class.
        * platform/DragData.h:
        (WebCore::DragData::pasteboardName): Added pasteboardName and removed pasteboard.
        * platform/PasteboardStrategy.h: Added color() method.
        * platform/PlatformPasteboard.h: Ditto.
        * platform/mac/ClipboardMac.mm:
        (WebCore::Clipboard::create): Changed to use pasteboardName() method.
        * platform/mac/DragDataMac.mm: All the methods below have been changed to use pasteboardName
        and the pasteboardStrategy() methods.
        (WebCore::DragData::DragData):
        (WebCore::DragData::canSmartReplace):
        (WebCore::DragData::containsColor):
        (WebCore::DragData::containsFiles):
        (WebCore::DragData::numberOfFiles):
        (WebCore::DragData::asFilenames):
        (WebCore::DragData::containsPlainText):
        (WebCore::DragData::asPlainText):
        (WebCore::DragData::asColor):
        (WebCore::DragData::containsCompatibleContent):
        (WebCore::DragData::asURL):
        (WebCore::DragData::asFragment):
        * platform/mac/PlatformPasteboardMac.mm:
        (WebCore::PlatformPasteboard::color): Added implementation of the color() method.

2012-02-17  Nate Chapin  <japhet@chromium.org>

        [Chromium mac] Cursors and background images disappear.
        https://bugs.webkit.org/show_bug.cgi?id=78834

        The issue occurs because a CachedImage sees that it has no clients
        and decide it is safe to purge its m_data buffer. However,
        StyleCachedImage is holding a CachedResourceHandle to the
        CachedImage, and it can still add a client later. If it does so,
        the CachedImage says everything is loaded but has no data.

        Reviewed by Adam Barth.

        No new tests, since the known repros have resisted reduction.
        Tested manually with chrome.angrybirds.com, redfin.com and a
        couple of other sites.

        * rendering/style/StyleCachedImage.cpp:
        * rendering/style/StyleCachedImage.h: Ensure the underlying
            CachedImage has a client for the lifetime of the
            StyleCachedImage and doesn't purge its buffer. Call
            addClient(this) in the constructor and removeClient(this) in
            the destructor, then ignore all cache callbacks.

2012-02-17  Julien Chaffraix  <jchaffraix@webkit.org>

        Table cell's anonymous wrappers are left in the tree, impacting our layout
        https://bugs.webkit.org/show_bug.cgi?id=7180

        Reviewed by David Hyatt.

        Tests: fast/table/table-switch-cell-position-bad-layout-expected.html
               fast/table/table-switch-cell-position-bad-layout.html

        This patch implements cell's anonymous wrapper removal at detach time.

        Trimming the render tree when we remove objects from it would be more complex
        to generalize as several objects override the behavior to do their own clean-ups.
        This would also open more potential for programming errors.

        This change is limited to table cells' as a simple step towards fixing bug 52123
        and more generally eliminate some anonymous wrappers from the tree at detach time.

        * dom/Node.cpp:
        (WebCore::Node::detach):
        Patched detach to call destroyAndCleanupAnonymousWrappers. The Document does not need
        to clean up any anonymous wrappers on detach.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
        Added this method to wrap destroy() call and trim the render tree. To avoid slowing down
        detach in some cases, added a fast path.

        * rendering/RenderObject.h: Added destroyAndCleanupAnonymousWrappers.

2012-02-17  Rob Buis  <rbuis@rim.com>

        ASSERT (and crash) with dynamically moved <font-face>
        https://bugs.webkit.org/show_bug.cgi?id=64839

        Reviewed by Antti Koivisto.

        Reset the style declaration when rmeoving the font-face element from the document.

        Test: svg/custom/font-face-move.svg

        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::removedFromDocument):

2012-02-17  Martin Robinson  <mrobinson@igalia.com>

        Fix some warnings encountered during the GTK+ build
        https://bugs.webkit.org/show_bug.cgi?id=78911

        Reviewed by Xan Lopez.

        No new tests. These are just fixes for warnings.

        * page/GestureTapHighlighter.cpp: Avoid using potentially signed operations on
        a size_t type. Use size_t for iterating over members of a vector.
        * platform/graphics/texmap/TextureMapperBackingStore.cpp: Use size_t where necessary.
        (WebCore::TextureMapperTiledBackingStore::createOrDestroyTilesIfNeeded): Ditto.
        * platform/graphics/texmap/TextureMapperLayer.cpp: Ditto.
        (WebCore::TextureMapperLayer::computeTransformsRecursive): Ditto.
        (WebCore::TextureMapperLayer::paintSelfAndChildren): Ditto.
        (WebCore::TextureMapperLayer::intermediateSurfaceRect): Ditto.

2012-02-17  Tim Dresser  <tdresser@chromium.org>

        [chromium] Refactor video drawing to be more data driven
        https://bugs.webkit.org/show_bug.cgi?id=76720

        Reviewed by James Robinson.

        CCVideoLayerImpl no longer handles drawing itself, but produces a list of CCVideoDrawQuads.
        These quads are then drawn by LayerRendererChromium.

        CCLayerImpl::willDraw(LayerRendererChromium*) is called directly before appendQuads.
        CCLayerImpl::didDraw() is called directly after all drawing has been completed.
        CCLayerImpl::draw has been removed.

        willDraw and didDraw are used to handle interaction with the VideoFrameProvider
        in CCVideoLayerImpl. willDraw gets a frame from the VideoFrameProvider, and
        didDraw returns it.

        A unit test has been added: CCLayerTreeHostImplTest.didDrawCalledOnAllLayers.
        This test ensures that CCLayerImpl::didDraw() is called on all layers,
        including layers on different render surfaces.

        As this was a refactor, no other tests were added.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::drawYUV):
        (WebCore):
        (WebCore::LayerRendererChromium::drawSingleTextureVideoQuad):
        (WebCore::LayerRendererChromium::drawRGBA):
        (WebCore::LayerRendererChromium::drawNativeTexture):
        (WebCore::LayerRendererChromium::copyFrameToTextures):
        (WebCore::LayerRendererChromium::copyPlaneToTexture):
        (WebCore::LayerRendererChromium::drawVideoQuad):
        * platform/graphics/chromium/LayerRendererChromium.h:
        (LayerRendererChromium):
        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
        * platform/graphics/chromium/cc/CCLayerImpl.h:
        (WebCore::CCLayerImpl::didDraw):
        (CCLayerImpl):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
        (WebCore::CCLayerTreeHostImpl::drawLayers):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
        (CCLayerTreeHostImpl):
        * platform/graphics/chromium/cc/CCVideoDrawQuad.cpp:
        (WebCore::CCVideoDrawQuad::create):
        (WebCore::CCVideoDrawQuad::CCVideoDrawQuad):
        * platform/graphics/chromium/cc/CCVideoDrawQuad.h:
        (CCVideoDrawQuad):
        (WebCore::CCVideoDrawQuad::textures):
        (WebCore::CCVideoDrawQuad::frame):
        (WebCore::CCVideoDrawQuad::format):
        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
        (WebCore::CCVideoLayerImpl::willDraw):
        (WebCore::CCVideoLayerImpl::appendQuads):
        (WebCore::CCVideoLayerImpl::didDraw):
        (WebCore::CCVideoLayerImpl::computeVisibleSize):
        * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
        (CCVideoLayerImpl):
        (WebCore::CCVideoLayerImpl::providerMutex):
        (WebCore::CCVideoLayerImpl::provider):
        (Texture):

2012-02-17  Stephen Chenney  <schenney@chromium.org>

        Crash at WebCore::SVGUseElement::expandSymbolElementsInShadowTree
        https://bugs.webkit.org/show_bug.cgi?id=77639

        Reviewed by Nikolas Zimmermann.

        Fix a SVG crash in Release builds, although it still crashes in Debug builds.
        The crash occurred when an SVG use element attempted to reference a style element while the file
        contained an error causing the error banner to display. The fix is to prevent SVGUseElement
        from recalculating style during tree building and return immediately when style is recalculated and
        the tree is building.

        Test: svg/custom/use-referencing-style-crash.svg

        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::willRecalcStyle): Return false if the tree is being built.
        (WebCore::SVGUseElement::didRecalcStyle): Check and return if the tree
        is being built and we are not yet ready for style update.

2012-02-17  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed, rolling out r108077.
        http://trac.webkit.org/changeset/108077
        https://bugs.webkit.org/show_bug.cgi?id=78390

        it broke compilation.

        * inspector/CodeGeneratorInspector.py:
        * inspector/InjectedScript.cpp:
        (WebCore::InjectedScript::evaluateOnCallFrame):
        (WebCore::InjectedScript::getFunctionDetails):
        (WebCore::InjectedScript::getProperties):
        (WebCore::InjectedScript::wrapCallFrames):
        * inspector/InjectedScript.h:
        (InjectedScript):
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
        (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
        (WebCore::InspectorDebuggerAgent::getFunctionDetails):
        (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
        (WebCore::InspectorDebuggerAgent::currentCallFrames):
        (WebCore::InspectorDebuggerAgent::didParseSource):
        * inspector/InspectorDebuggerAgent.h:
        (InspectorDebuggerAgent):

2012-02-17  Florin Malita  <fmalita@google.com>

        chrome.dll!WebCore::SVGTRefElement::updateReferencedText ReadAV@NULL (e85cb8e140071fa7790cad215b0109dc)
        https://bugs.webkit.org/show_bug.cgi?id=74858

        Reviewed by Nikolas Zimmermann.

        Tests: svg/custom/tref-remove-target-crash-expected.svg
               svg/custom/tref-remove-target-crash.svg

        Add a DOMNodeRemovedFromDocumentEvent listener to detect when the target element is removed. Upon removal,
        cleanup all listeners and re-activate the pending resource to attach if the referenced ID is added
        at a later time programmatically. Also move the DOMSubtreeModifiedEvent listener from the parent to
        the target element to simplify the implementation and reduce the scope.

        * svg/SVGTRefElement.cpp:
        (WebCore::TargetListener::create):
        (WebCore::TargetListener::cast):
        (WebCore::TargetListener::clear):
        (WebCore::TargetListener::TargetListener):
        (WebCore::TargetListener::operator==):
        (WebCore::TargetListener::handleEvent):
        (WebCore::SVGTRefElement::detachTarget):
        (WebCore::SVGTRefElement::buildPendingResource):
        * svg/SVGTRefElement.h:

2012-02-17  Simon Fraser  <simon.fraser@apple.com>

        Fix the build after r108077.

        * inspector/CodeGeneratorInspector.py:
        (RawTypes.Any.generate_validate_method):

2012-02-17  Simon Fraser  <simon.fraser@apple.com>

        Avoid using a transparency layer for rgba() border drawing when possible
        https://bugs.webkit.org/show_bug.cgi?id=63176

        Reviewed by Dan Bernstein.
        
        The non-radiused border drawing code would use a transparency layer
        when drawing any one or more borders with alpha colors. However,
        we only need to use a transparency layer when there is a corner
        join between the borders being rendered with any one color,
        so add a utility function includesAdjacentEdges() that can tell us
        that, and use it to avoid making extraneous transparency layers.

        Optimization only, no new tests.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::includesAdjacentEdges):
        (WebCore):
        (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):

2012-02-17  Pavel Feldman  <pfeldman@google.com>

        Not reviewed: Qt minimal build fix.

        * inspector/InjectedScript.h:
        (WebCore):

2012-02-17  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: Switch Debugger agent to TypeBuilder
        https://bugs.webkit.org/show_bug.cgi?id=78390

        Reviewed by Vsevolod Vlasov.

        Client code is switched to TypeBuilder.

        * inspector/CodeGeneratorInspector.py:
        * inspector/InjectedScript.cpp:
        (WebCore::InjectedScript::evaluateOnCallFrame):
        (WebCore::InjectedScript::getFunctionDetails):
        (WebCore::InjectedScript::getProperties):
        (WebCore::InjectedScript::wrapCallFrames):
        * inspector/InjectedScript.h:
        (InjectedScript):
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
        (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
        (WebCore::InspectorDebuggerAgent::getFunctionDetails):
        (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
        (WebCore::InspectorDebuggerAgent::currentCallFrames):
        (WebCore::InspectorDebuggerAgent::didParseSource):
        * inspector/InspectorDebuggerAgent.h:
        (InspectorDebuggerAgent):

2012-02-17  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: hide color picker on selected node update.
        https://bugs.webkit.org/show_bug.cgi?id=78896

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/Spectrum.js:
        (WebInspector.Spectrum.prototype.get visible):
        (WebInspector.Spectrum.prototype.toggle):
        (WebInspector.Spectrum.prototype.show):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.prototype.update):
        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):

2012-02-17  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: check undo-redo boundaries based on current action index, not history size.
        https://bugs.webkit.org/show_bug.cgi?id=78895

        Reviewed by Vsevolod Vlasov.

        Tests: inspector/elements/perform-undo-undo.html
               inspector/styles/perform-undo-perform-of-mergable-action.html

        * inspector/InspectorHistory.cpp:
        (WebCore::InspectorHistory::perform):

2012-02-17  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed, rolling out r108071.
        http://trac.webkit.org/changeset/108071
        https://bugs.webkit.org/show_bug.cgi?id=77155

        chromium-mac compilation failed

        * platform/graphics/chromium/Extensions3DChromium.h:

2012-02-17  Michal Mocny  <mmocny@google.com>

        [chromium] GL_CHROMIUM_gpu_memory_manager extension
        https://bugs.webkit.org/show_bug.cgi?id=77155

        Reviewed by James Robinson.

        * platform/graphics/chromium/Extensions3DChromium.h:
        (GpuMemoryAllocationChangedCallbackCHROMIUM):
        (WebCore::Extensions3DChromium::GpuMemoryAllocationChangedCallbackCHROMIUM::~GpuMemoryAllocationChangedCallbackCHROMIUM):
        (Extensions3DChromium):

2012-02-17  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [CMake, EFL] Unreviewed, fix the build when building with
        SHARED_CORE=ON after r107820.

        RunLoopEfl.cpp has not been upstreamed yet, and building only
        RunLoop.cpp created an .so with some missing, unimplemented
        symbols. The BlackBerry port seems to be in the same situation.

        The best solution for now is to build RunLoop.cpp only on the
        WinCE port.

        * CMakeLists.txt: Remove RunLoop.cpp from the list of files to build.
        * PlatformWinCE.cmake: Add RunLoop.cpp to the list of files to build.

2012-02-17  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: a bit of color picker polish
        https://bugs.webkit.org/show_bug.cgi?id=78892

        - Fixed computed style swatch
        - Removed color: caption
        - Rendered value as source code, user-selectable
        - Removed scroller gap

        Reviewed by Yury Semikhatsky.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/Popover.js:
        (WebInspector.Popover.prototype.setCanShrink):
        (WebInspector.Popover.prototype._positionElement):
        * inspector/front-end/Spectrum.js:
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertyTreeElement.prototype._resetMouseDownElement):
        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
        * inspector/front-end/elementsPanel.css:
        (.spectrum-container):
        (.spectrum-display-value):
        (.spectrum-range-container):
        * inspector/front-end/popover.css:
        (.popover .content.fixed-height):

2012-02-17  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: color picker does not allow changing the color.
        https://bugs.webkit.org/show_bug.cgi?id=78886

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype._showPopover.showPopover):
        * inspector/front-end/Popover.js:
        (WebInspector.Popover.prototype.setCanShrink):
        (WebInspector.Popover.prototype._positionElement):
        * inspector/front-end/Settings.js:
        * inspector/front-end/Spectrum.js:
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane):
        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):

2012-02-17  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: new image preview has poorly positioned popover arrow.
        https://bugs.webkit.org/show_bug.cgi?id=78884

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/Popover.js:
        (WebInspector.Popover.prototype._positionElement):
        * inspector/front-end/utilities.js:
        (Element.prototype.boxInWindow):

2012-02-17  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: enable "Single click CSS editing" experiment by default.
        https://bugs.webkit.org/show_bug.cgi?id=78881

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/elementsPanel.css:
        (.styles-section .properties .enabled-button):

2012-02-17  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: split innerUpdate into rebuildUpdate and refreshUpdate, make computed styles load lazily.
        https://bugs.webkit.org/show_bug.cgi?id=78827

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.prototype.update):
        (WebInspector.StylesSidebarPane.prototype._refreshUpdate.computedStyleCallback):
        (WebInspector.StylesSidebarPane.prototype._refreshUpdate):
        (WebInspector.StylesSidebarPane.prototype._rebuildUpdate):
        (WebInspector.StylesSidebarPane.prototype._validateNode):
        (WebInspector.StylesSidebarPane.prototype._styleSheetOrMediaQueryResultChanged):
        (WebInspector.StylesSidebarPane.prototype._attributesModified):
        (WebInspector.StylesSidebarPane.prototype._attributesRemoved):
        (WebInspector.StylesSidebarPane.prototype._styleInvalidated):
        (WebInspector.StylesSidebarPane.prototype._innerRefreshUpdate):
        (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
        (WebInspector.StylesSidebarPane.prototype._nodeStylesUpdatedForTest):
        (WebInspector.StylesSidebarPane.prototype._toggleElementStatePane):
        (WebInspector.StylesSidebarPane.prototype._createElementStatePane.clickListener):
        (WebInspector.StylesSidebarPane.prototype._showUserAgentStylesSettingChanged):
        (WebInspector.ComputedStyleSidebarPane.prototype.expand):
        (WebInspector.StylePropertyTreeElement.prototype):

2012-02-17  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Qt][WK2] Allow partial updates
        https://bugs.webkit.org/show_bug.cgi?id=78824

        BitmapTextureGL should not zero-fill the textures when resetting.
        This was needed in the previous buffer management system, where texture were not completely
        filled by the backing store.

        Reviewed by Simon Hausmann.

        No new behavior.

        * platform/graphics/opengl/TextureMapperGL.cpp:
        (BitmapTextureGL):
        (WebCore::texSubImage2DResourceSafe):
        (WebCore):
        (WebCore::BitmapTextureGL::reset):

2012-02-17  Yosifumi Inoue  <yosin@chromium.org>

        [Forms] Integrate InputType::dispatchChangeEventInResponseToSetValue into InputType::setValue
        https://bugs.webkit.org/show_bug.cgi?id=78873

        Reviewed by Kent Tamura.

        This patch moves event dispatch logic to InputType and TextFieldInputType from HTMLInputElement
        and merge dispatchChangeEventInResponseToSetValue to setValue.

        No new tests. No change in behavior.

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setValue): Move dispatch logic to InputType and TextFieldInput.
        * html/InputType.cpp: Remove dispatchChangeEventInResponseToSetValue implementation.
        * html/InputType.h: Remove dispatchChangeEventInResponseToSetValue declaration.
        (WebCore::InputType::setValue): Move code from dispatchChangeEventInResponseToSetValue.
        * html/TextFieldInputType.cpp: Remove dispatchChangeEventInResponseToSetValue implementation.
        * html/TextFieldInputType.h: Remove dispatchChangeEventInResponseToSetValue declaration.
        (WebCore::TextFieldInputType::setValue): Move code from dispatchChangeEventInResponseToSetValue. Stop dispatching event in InputType::setValue.
        * html/HTMLTextFormControlElement.h: Make setTextAsOfLastFormControlChangeEvent to public from protected for accessing from InputType class.

2012-02-17  Yury Semikhatsky  <yurys@chromium.org>

        Unreviewed. Mac build fix after r108047.

        * WebCore.xcodeproj/project.pbxproj:

2012-02-16  Andreas Kling  <awesomekling@apple.com>

        Removing the last presentation attribute should result in a null attributeStyle().
        <http://webkit.org/b/78812>

        Reviewed by Antti Koivisto.

        If the collectStyleForAttribute() pass in updateAttributeStyle() doesn't encounter any
        respected presentation attributes, set a null attributeStyle() instead of an empty one.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::collectMatchingRulesForList):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::updateAttributeStyle):

2012-02-16  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: use static counters for estimation of allocated Documents, Nodes and JS EventListeners
        https://bugs.webkit.org/show_bug.cgi?id=78825

        Introduced static counters of allocated Documents, Nodes and JS EventListeners.
        Their values are displayed on the Timeline panel.

        Reviewed by Pavel Feldman.

        * CMakeLists.txt:
        * English.lproj/localizedStrings.js:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::JSEventListener):
        (WebCore::JSEventListener::~JSEventListener):
        * bindings/v8/V8AbstractEventListener.cpp:
        (WebCore::V8AbstractEventListener::V8AbstractEventListener):
        (WebCore::V8AbstractEventListener::~V8AbstractEventListener):
        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::~Document):
        * dom/Document.h:
        (WebCore::Node::Node):
        * dom/Node.cpp:
        (WebCore::Node::~Node):
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorCounters.cpp: Added.
        (WebCore):
        (WebCore::InspectorCounters::counterValue):
        * inspector/InspectorCounters.h: Added.
        (WebCore):
        (InspectorCounters):
        (WebCore::InspectorCounters::incrementCounter):
        (WebCore::InspectorCounters::decrementCounter):
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::didCallFunction):
        (WebCore::InspectorTimelineAgent::didDispatchEvent):
        (WebCore::InspectorTimelineAgent::didWriteHTML):
        (WebCore::InspectorTimelineAgent::didFireTimer):
        (WebCore::InspectorTimelineAgent::didEvaluateScript):
        (WebCore::InspectorTimelineAgent::setHeapSizeStatistic):
        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
        * inspector/InspectorTimelineAgent.h:
        (WebCore):
        (WebCore::InspectorTimelineAgent::create):
        (InspectorTimelineAgent):
        * inspector/front-end/MemoryStatistics.js:
        (WebInspector.MemoryStatistics):
        (WebInspector.MemoryStatistics.prototype.addTimlineEvent):
        (WebInspector.MemoryStatistics.prototype._draw.getDocumentCount):
        (WebInspector.MemoryStatistics.prototype._refreshCurrentValues):
        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel.prototype._onTimelineEventRecorded):

2012-02-16  Cris Neckar  <cdn@chromium.org>

        Correct a misleading comment regarding string delimiters in CSS parsing.
        https://bugs.webkit.org/show_bug.cgi?id=78521

        Reviewed by Zoltan Herczeg.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::lex):

2012-02-16  Martin Robinson  <mrobinson@igalia.com>

        Fix the TextureMapper build for GTK+.

        No new tests. This is just a build fix.

        * GNUmakefile.list.am: Add missing files to the build and change spaces to tabs.

2012-02-16  Daniel Bates  <dbates@webkit.org>

        Add ENABLE(STYLE_SCOPED) around HTMLStyleElement::m_isRegisteredWithScopingNode 

        The instance variable HTMLStyleElement::m_isRegisteredWithScopingNode is only
        referenced from within ENABLE(STYLE_SCOPED)-guarded code. We should add this
        guard around its declaration.

        * html/HTMLStyleElement.h:
        (HTMLStyleElement):

2012-02-16  Shinya Kawanaka  <shinyak@chromium.org>

        [v8] v8 doesn't assume to do 'new WebKitShadowRoot(host)'
        https://bugs.webkit.org/show_bug.cgi?id=78875

        Reviewed by Kentaro Hara.

        Since v8 does not assume that we do 'new WebkitShadowRoot(host)', a wrapper object for new WebKitShadowRoot(host)
        was saved in DOMObject storage instead of DOMNode storage.

        CodeGenerator should handle with DOMNode correctly to solve the problem.

        Test: fast/dom/shadow/shadow-root-new.html

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateConstructorCallback):

2012-02-16  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed rollout r107952 because it broke shadow-boundary-events.html and related-target-focusevent.html on mac.
        see http://webkit.org/b/78832

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DOMAllInOne.cpp:
        * dom/EventDispatchMediator.cpp:
        (WebCore::FocusEventDispatchMediator::create):
        (WebCore):
        (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
        (WebCore::FocusEventDispatchMediator::dispatchEvent):
        (WebCore::BlurEventDispatchMediator::create):
        (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
        (WebCore::BlurEventDispatchMediator::dispatchEvent):
        * dom/EventDispatchMediator.h:
        (FocusEventDispatchMediator):
        (WebCore):
        (BlurEventDispatchMediator):
        * dom/EventFactory.in:
        * dom/FocusEvent.cpp: Removed.
        * dom/FocusEvent.h: Removed.
        * dom/FocusEvent.idl: Removed.
        * dom/Node.cpp:
        (WebCore::Node::dispatchFocusInEvent):
        (WebCore::Node::dispatchFocusOutEvent):
        * dom/UIEvent.cpp:
        (WebCore::FocusInEventDispatchMediator::create):
        (WebCore):
        (WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
        (WebCore::FocusInEventDispatchMediator::dispatchEvent):
        (WebCore::FocusOutEventDispatchMediator::create):
        (WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
        (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
        * dom/UIEvent.h:
        (FocusInEventDispatchMediator):
        (WebCore):
        (FocusOutEventDispatchMediator):
        * page/DOMWindow.idl:

2012-02-16  Mark Hahnenberg  <mhahnenberg@apple.com>

        Another fix for viewport tests

        No new tests.

        * dom/ViewportArguments.cpp:
        (WebCore::numericPrefix): When we don't parse a number, we could either be 
        trying to parse junk, which returns NaN, or we could get an empty string, 
        which returns 0, so we need to account for that in the assert.

2012-02-16  Mark Hahnenberg  <mhahnenberg@apple.com>

        Another build fix for viewport tests

        No new tests.

        * dom/ViewportArguments.cpp:
        (WebCore::numericPrefix): We now return NaN instead of 0 when we fail to 
        parse a number using charactersToFloatIgnoringJunk, so we need to assert that 
        we have NaN rather than 0.

2012-02-16  Alexandre Elias  <aelias@google.com>

        [chromium] Bundle page scale factor and limits in CCLayerTreeHost
        https://bugs.webkit.org/show_bug.cgi?id=78762

        Setting page scale factor and its limits in separate methods
        may cause clamping bugs if one of them makes it to the
        impl thread before the other.  Change the API to bundle them together,
        which matches the existing impl-side interface.

        Reviewed by James Robinson.

        No new tests (API change will disallow this type of bug).

        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
        (WebCore::CCLayerTreeHost::setPageScaleFactorAndLimits):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (CCLayerTreeHost):

2012-02-16  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests results.

        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        (WebCore::JSTestEventConstructorConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::JSTestInterfaceConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::JSTestObjConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):

2012-02-16  Sami Kyostila  <skyostil@chromium.org>

        [chromium] LayerChromium::setNeedsDisplay does not apply contents scale correctly
        https://bugs.webkit.org/show_bug.cgi?id=77464

        Use bounds() instead of contentBounds() to calculate the region to mark
        as needing painting in LayerChromium::setNeedsDisplay(). contentBounds()
        includes contents scale, while bounds() does not.

        Since this change also means that TiledLayerChromium::setNeedsDisplayRect() is
        given an unscaled rectangle, modify that function to scale the rectangle before
        using it to invalidate the underlying tiles.

        Reviewed by James Robinson.

        Tests: New tests added to LayerChromium and TiledLayerChromium unit tests.

        * platform/graphics/chromium/LayerChromium.h:
        (WebCore::LayerChromium::setNeedsDisplay):
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::setNeedsDisplayRect):

2012-02-16  Raymond Liu  <raymond.liu@intel.com>

        Lazy init for DefaultAudioDestinationNode and OfflineAudioDestinationNode
        https://bugs.webkit.org/show_bug.cgi?id=76509

        Reviewed by Eric Seidel.

        No new tests required.

        * webaudio/AudioDestinationNode.h:
        * webaudio/AudioNode.h:
        (WebCore::AudioNode::sampleRate):
        * webaudio/DefaultAudioDestinationNode.cpp:
        (WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
        * webaudio/DefaultAudioDestinationNode.h:
        * webaudio/OfflineAudioDestinationNode.cpp:
        (WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
        * webaudio/OfflineAudioDestinationNode.h:
        (WebCore::OfflineAudioDestinationNode::sampleRate):

2012-02-16  Shinya Kawanaka  <shinyak@chromium.org>

        [Refactoring] Remove location from NodeRenderingContext.
        https://bugs.webkit.org/show_bug.cgi?id=78796

        Reviewed by Hajime Morita.

        This is a simple refactoring to remove m_location from NodeRenderingContext.
        TreeLocation is merged into AttachPhase like the following.
            LocationUndertermined -> Calculating
            LocationNotInTree -> AttachingNotInTree
            LocationLightChild -> AttachingStraight / AttachingNotDistributed / AttachingDistributed
            LocationShadowChild -> AttachingStraight / AttachingShadowChild / AttachingFallback

        We have renamed the enum items of AttachPhase, because not only <content> but also
        <shadow> will use the phases. Basically these words are taken from Shadow DOM spec.
        'Calculating' means NodeRenderingContext is used not for attaching but for calculating RenderObject.

        No new tests, no change in behavior.

        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::NodeRenderingContext):
        (WebCore::NodeRenderingContext::nextRenderer):
        (WebCore::NodeRenderingContext::previousRenderer):
        (WebCore::NodeRenderingContext::parentRenderer):
        (WebCore::NodeRenderingContext::shouldCreateRenderer):
        * dom/NodeRenderingContext.h:
        (NodeRenderingContext):
        (WebCore::NodeRenderingContext::parentNodeForRenderingAndStyle):

2012-02-16  Kent Tamura  <tkent@chromium.org>

        Run sort-Xcode-project-file.

        * WebCore.xcodeproj/project.pbxproj: Sorted.

2012-02-16  Mark Hahnenberg  <mhahnenberg@apple.com>

        Another build fix for viewport tests

        No new tests.

        * dom/ViewportArguments.cpp:
        (WebCore::numericPrefix): We now return NaN instead of 0 when we fail to 
        parse a number using charactersToFloatIgnoringJunk, so we need to assert that 
        we have NaN rather than 0.

2012-02-15  Michael Nordman  <michaeln@google.com>

        [chromium] Fix bugs in the implementation of WebDatabase::closeDatabaseImmediately.
        https://bugs.webkit.org/show_bug.cgi?id=78841

        WebDatabase now delegates this function entirely to DatabaseTracker,
        a new closeDatabasesImmediately() has been added for that purpose. That
        method posts tasks to the appropiate context thread for each database
        instance that should be closed immediately.

        The DatabaseTracker getAllOpenDatabases() method has been removed from
        the chromium impl because it's unsafe, refs cannot be safely taken on
        AbstractDatabase instances in the tracker's collection of open databases.

        Add a message to the console log when a database is forcibly closed.

        Transactions initiated on a database instance that has been forcibly
        closed complete with a transaction error callback.
        
        This is part of resolving http://crbug.com/98939

        Reviewed by David Levin.

        No new layout tests, there is no common code way to closeImmediately.
        We have coverage for this in py automation tests.

        * platform/sql/SQLiteDatabase.cpp:
        The closeImmediately code path can result in the underlying sqlite3 handle being
        closed earlier than usual and trip some assertions. Updated the assertions to no
        longer trigger in this early close case.
        (WebCore::SQLiteDatabase::close):
        (WebCore::SQLiteDatabase::setMaximumSize):
        * platform/sql/SQLiteDatabase.h:
        (WebCore::SQLiteDatabase::sqlite3Handle):

        * storage/Database.cpp:
        (WebCore::Database::closeImmediately): Modified to only be called on the context thread and to log a console message.
        (WebCore::Database::changeVersion): Use the private runTransaction helper method.
        (WebCore::Database::transaction): Pass a new param required by the runTransaction helper.
        (WebCore::Database::readTransaction): Ditto.
        (WebCore::callTransactionErrorCallback): Used to defer invocation of the error callback.
        (WebCore::Database::runTransaction): Modified to detect when the database has been closed, and
        to invoke the error callback in that case. This also avoids creating a reference cycle between
        a newly created transaction and the database that previously existed due to a transction being
        added and never removed from the Q while in this state.
        * storage/Database.h:
        * storage/DatabaseSync.cpp:
        (WebCore::DatabaseSync::closeImmediately): Modified to only be called on the context thread and to log a console message.
        * storage/DatabaseTracker.h:

        * storage/chromium/DatabaseTrackerChromium.cpp:
        Posts tasks to the appropiate context thread for execution without bumping AbstractDatabase refcounts.
        (DatabaseTracker::CloseOneDatabaseImmediatelyTask):
        (WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::create):
        (WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::performTask):
        (WebCore::DatabaseTracker::CloseOneDatabaseImmediatelyTask::CloseOneDatabaseImmediatelyTask):
        (WebCore::DatabaseTracker::closeDatabasesImmediately): 
        (WebCore::DatabaseTracker::closeOneDatabaseImmediately):

2012-02-16  Dana Jansens  <danakj@chromium.org>

        [Chromium] Occlusion tracking with CSS filters
        https://bugs.webkit.org/show_bug.cgi?id=77498

        Reviewed by James Robinson.

        The new CSS filter support within the compositor changes how
        occlusion tracking needs to function. A filter can change the
        alpha value of pixels, making an otherwise opaque pixel no
        longer so. Secondly, a filter may move color values around
        on a surface, which can cause otherwise occluded areas to
        become visible and require painting.

        New unit tests: CCLayerTreeHostTest.cpp

        Tests: compositing/culling/filter-occlusion-alpha-large.html
               compositing/culling/filter-occlusion-alpha.html
               compositing/culling/filter-occlusion-blur-large.html
               compositing/culling/filter-occlusion-blur.html

        * platform/graphics/chromium/RenderSurfaceChromium.cpp:
        (WebCore::RenderSurfaceChromium::RenderSurfaceChromium):
        * platform/graphics/chromium/RenderSurfaceChromium.h:
        (WebCore::RenderSurfaceChromium::setFilters):
        (WebCore::RenderSurfaceChromium::filters):
        (WebCore::RenderSurfaceChromium::setNearestAncestorThatMovesPixels):
        (WebCore::RenderSurfaceChromium::nearestAncestorThatMovesPixels):
        (RenderSurfaceChromium):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::enterTargetRenderSurface):
        (WebCore::CCLayerTreeHost::paintLayerContents):
        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
        (WebCore::subtreeShouldRenderToSeparateSurface):
        (WebCore::calculateDrawTransformsAndVisibilityInternal):
        (WebCore::CCLayerTreeHostCommon::calculateDrawTransformsAndVisibility):
        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
        (WebCore::CCRenderSurface::CCRenderSurface):
        * platform/graphics/chromium/cc/CCRenderSurface.h:
        (WebCore::CCRenderSurface::setNearestAncestorThatMovesPixels):
        (WebCore::CCRenderSurface::nearestAncestorThatMovesPixels):
        (CCRenderSurface):
        * platform/graphics/filters/FilterOperation.h:
        (FilterOperation):
        (WebCore::FilterOperation::affectsOpacity):
        (WebCore::FilterOperation::movesPixels):
        (WebCore::ReferenceFilterOperation::affectsOpacity):
        (WebCore::ReferenceFilterOperation::movesPixels):
        (ReferenceFilterOperation):
        (WebCore::BasicComponentTransferFilterOperation::affectsOpacity):
        (BasicComponentTransferFilterOperation):
        (WebCore::BlurFilterOperation::affectsOpacity):
        (WebCore::BlurFilterOperation::movesPixels):
        (BlurFilterOperation):
        (WebCore::DropShadowFilterOperation::affectsOpacity):
        (DropShadowFilterOperation):
        * platform/graphics/filters/FilterOperations.cpp:
        (WebCore::FilterOperations::hasFilterThatAffectsOpacity):
        (WebCore):
        (WebCore::FilterOperations::hasFilterThatMovesPixels):
        * platform/graphics/filters/FilterOperations.h:
        (WebCore::FilterOperations::isEmpty):
        (FilterOperations):

2012-02-16  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Adapt to the removal of WebStringIml.h
        https://bugs.webkit.org/show_bug.cgi?id=78784

        Reviewed by Antonio Gomes.

        WebKit/blackberry/WebCoreSupport/WebStringImpl.h which hasn't been upstreamed
        has been removed internally. We should adapt to this removal for the
        upstreamed part of the BlackBerry port. Actually WebStringImpl is not necessary
        because it just inherits from WTF::StringImpl but adding nothing.

        No functionalities changed, no new tests.

        * platform/text/blackberry/StringBlackBerry.cpp:
        (WTF::String::operator WebString):

2012-02-15  Geoffrey Garen  <ggaren@apple.com>

        Made Weak<T> single-owner, adding PassWeak<T>
        https://bugs.webkit.org/show_bug.cgi?id=78740

        Reviewed by Sam Weinig.

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::jsStringSlowCase): Use PassWeak<T>, as required by our new
        hash map API.

        * bindings/js/JSDOMBinding.h:
        (WebCore::getCachedWrapper):
        (WebCore::cacheWrapper): Use PassWeak<T> and raw pointer, as required by
        our new hash map API.

        * bindings/js/JSEventListener.h:
        (WebCore::JSEventListener::setWrapper):
        * bindings/js/ScriptWrappable.h:
        (WebCore::ScriptWrappable::setWrapper):
        * bridge/jsc/BridgeJSC.cpp:
        (JSC::Bindings::Instance::createRuntimeObject):
        * bridge/runtime_root.cpp:
        (JSC::Bindings::RootObject::addRuntimeObject): Use PassWeak<T>, as
        required by our new hash map and Weak<T> APIs.

2012-02-16  Ryosuke Niwa  <rniwa@webkit.org>

        Crash in visiblePositionForIndex
        https://bugs.webkit.org/show_bug.cgi?id=77683

        Reviewed by Eric Seidel.

        Fixed the crash.

        Test: editing/execCommand/applyblockelement-visiblepositionforindex-crash.html

        * editing/ApplyBlockElementCommand.cpp:
        (WebCore::ApplyBlockElementCommand::doApply):
        * editing/InsertListCommand.cpp:
        (WebCore::InsertListCommand::doApply):
        * editing/htmlediting.cpp:
        (WebCore::indexForVisiblePosition):
        * editing/htmlediting.h:
        (WebCore):

2012-02-16  Matthew Delaney  <mdelaney@apple.com>

        ShadowBlur.cpp's cached content matching needs to consider m_layerSize changes
        https://bugs.webkit.org/show_bug.cgi?id=78765

        Reviewed by Simon Fraser.

        No new tests due to the flaky nature of reproducing the issue.

        * platform/graphics/ShadowBlur.cpp:
        (WebCore::ScratchBuffer::getScratchBuffer): Make sure to call clearScratchBuffer()
        when we create a new ImageBuffer in order to invalidate cached values.
        (WebCore::ScratchBuffer::setCachedShadowValues): Roll together matching and setting
        of cached values into one method to enforce them being the same.
        (WebCore::ScratchBuffer::setCachedInsetShadowValues): Ditto.

        Restructure to use new method described above.
        (WebCore::ShadowBlur::drawRectShadowWithoutTiling): 
        (WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
        (WebCore::ShadowBlur::drawInsetShadowWithTiling):
        (WebCore::ShadowBlur::drawRectShadowWithTiling):
        (WebCore::ShadowBlur::beginShadowLayer):

2012-02-16  Dana Jansens  <danakj@chromium.org>

        [chromium] Empty divs not transforming overflow correctly
        https://bugs.webkit.org/show_bug.cgi?id=78850

        Reviewed by James Robinson.

        Test: compositing/overflow/transform-in-empty-container.html

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setSize):

2012-02-16  Emil A Eklund  <eae@chromium.org>

        Fix use of long long in FractionalLayoutUnit::setRawValue
        https://bugs.webkit.org/show_bug.cgi?id=78835

        Reviewed by Eric Seidel.

        Change setRawValue(long long) to compare against int min and max instead
        of using abs as not all platforms we support implement a long long
        version of abs or llabs.

        No new tests.

        * platform/FractionalLayoutUnit.h:
        (WebCore::FractionalLayoutUnit::setRawValue):
        Compare against int min/max instead of just max with abs.
        
        (WebCore::FractionalLayoutUnit::isInBounds):
        Fix type mismatch warning.
        
        (WebCore::operator==):
        Fix typo.
        
        (WebCore::operator*):
        Use long long version of setRawValue.

2012-02-15  Shinya Kawanaka  <shinyak@chromium.org>

        Add an internal flag to accept multiple shadow roots for the purpose of tests.
        https://bugs.webkit.org/show_bug.cgi?id=78453

        Reviewed by Hajime Morita.

        This patch introduces a flag to enable multiple shadow subtrees.
        This flag is intended to be used for testing purpose for a while.
        We will remove it later.

        No new tests, no change in behavior.

        * WebCore.exp.in:
        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore):
        * bindings/generic/RuntimeEnabledFeatures.h:
        (RuntimeEnabledFeatures):
        (WebCore::RuntimeEnabledFeatures::multipleShadowSubtreesEnabled):
        (WebCore::RuntimeEnabledFeatures::setMultipleShadowSubtreesEnabled):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::create):
        * dom/ShadowRootList.cpp:
        (WebCore::ShadowRootList::pushShadowRoot):
        * testing/Internals.cpp:
        (WebCore::Internals::setMultipleShadowSubtreesEnabled):
        (WebCore):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2012-02-16  Mark Hahnenberg  <mhahnenberg@apple.com>

        Fix the broken viewport tests
        https://bugs.webkit.org/show_bug.cgi?id=78774

        Reviewed by Kenneth Rohde Christiansen.

        No new tests.

        * dom/ViewportArguments.cpp:
        (WebCore::numericPrefix): Changed to use the new charactersToFloatWithJunk function(s).

2012-02-16  Cris Neckar  <cdn@chromium.org>

        Very large strings could cause the new quoted string to wrap.
        https://bugs.webkit.org/show_bug.cgi?id=78387

        Reviewed by Eric Seidel.

        * css/CSSParser.cpp:
        (WebCore::quoteCSSString):

2012-02-16  Eric Seidel  <eric@webkit.org>

        Add a themeChromiumAndroid.css file for android-specific default styles
        https://bugs.webkit.org/show_bug.cgi?id=78547

        Reviewed by Adam Barth.

        This includes the themeChromiumAndroid.css file from the Chromium-Android port
        as well as some addidtional changes they had to html.css.  I believe those
        changes were made before themeChromiumAndroid was created, but it's now the better place for this CSS.

        * WebCore.gyp/WebCore.gyp:
        * css/themeChromiumAndroid.css: Added.
        (select[size][multiple]):
        (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
        * rendering/RenderThemeChromiumAndroid.cpp:
        (WebCore::RenderThemeChromiumAndroid::extraDefaultStyleSheet):
        (WebCore):
        * rendering/RenderThemeChromiumAndroid.h:
        (RenderThemeChromiumAndroid):
        (WebCore::RenderThemeChromiumAndroid::delegatesMenuListRendering):
        (WebCore::RenderThemeChromiumAndroid::platformTapHighlightColor):

2012-02-16  Brady Eidson  <beidson@apple.com>

        <rdar://problem/10616280> and https://bugs.webkit.org/show_bug.cgi?id=78767
        REGRESSION (r90471) - iAd Producer 2.0.1 produces blank pages

        Reviewed by Sam Weinig.

        No new tests. (Subtle API change attached to a specific application)

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::isLoadingInAPISense): Return true if the app needs the quirk
        and there are outstanding subresource loads.

        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h:
        (WebCore::Settings::setNeedsIsLoadingInAPISenseQuirk):
        (WebCore::Settings::needsIsLoadingInAPISenseQuirk):
        (Settings):

2012-02-16  Kentaro Hara  <haraken@chromium.org>

        Remove [ConvertScriptString] from FileReaderSync.idl
        https://bugs.webkit.org/show_bug.cgi?id=78335

        Reviewed by Eric Seidel.

        The spec says that FileReadSync should throw NOT_FOUND_ERR
        if a given blob is invalid: http://www.w3.org/TR/FileAPI/#FileReaderSync

        By this fix, we can completely remove [ConvertScriptString] from WebKit.

        Tests: fast/files/workers/worker-read-blob-sync.html
               fast/files/workers/worker-read-file-sync.html

        * fileapi/FileReaderSync.cpp: Modified to throw NOT_FOUND_ERR if a blob is invalid.
        (WebCore::FileReaderSync::readAsArrayBuffer):
        (WebCore::FileReaderSync::readAsBinaryString):
        (WebCore::FileReaderSync::readAsText):
        (WebCore::FileReaderSync::readAsDataURL):
        * fileapi/FileReaderSync.idl:

        * bindings/scripts/CodeGeneratorJS.pm: Removed [ConvertScriptString]
        since no one is using it.
        (NativeToJSValue):
        * bindings/scripts/CodeGeneratorV8.pm: Ditto.
        (NativeToJSValue):

        * bindings/scripts/test/TestObj.idl: Removed a test case for [ConvertScriptString].

        * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated run-bindings-tests results.
        * bindings/scripts/test/CPP/WebDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (webkit_dom_test_obj_get_property):
        (webkit_dom_test_obj_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore):
        * bindings/scripts/test/JS/JSTestObj.h:
        (WebCore):
        * bindings/scripts/test/ObjC/DOMTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore):


2012-02-16  Dana Jansens  <danakj@chromium.org>

        [chromium] Clipping/Transforms applied in wrong order in opaque paint tracking
        https://bugs.webkit.org/show_bug.cgi?id=78775

        Reviewed by Stephen White.

        The clip was being applied in device coordinates, before transforming the painted
        rect into device coordinates. This made any translations get doubly represented,
        and gave incorrect paint tracking results.

        Test: compositing/culling/unscrolled-within-boxshadow.html

        Unit test: PlatformContextSkiaTest.cpp

        * platform/graphics/skia/OpaqueRegionSkia.cpp:
        (WebCore::OpaqueRegionSkia::didDraw):

2012-02-16  Abhishek Arya  <inferno@chromium.org>

        Crash with tables in multi-column layout.
        https://bugs.webkit.org/show_bug.cgi?id=78415

        Reviewed by Julien Chaffraix.

        Multi-column code creates anonymous column blocks directly
        under RenderTable, thereby violating table layout assumption.
        E.g. Captions in this testcase gets reparented to these anonymous
        column blocks and when they go away, they are not able to clear
        themselves from table's m_captions list (since RenderTable::removeChild
        is not called).

        Test: fast/multicol/span/table-multi-column-crash.html

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

2012-02-16  ChangSeok Oh  <shivamidow@gmail.com>

        [GTK] File system api build is broken
        https://bugs.webkit.org/show_bug.cgi?id=78479

        Reviewed by Philippe Normand.

        This patch is a small step to support FileSystem API for GTK port.
        As I know, bug58443 also dealt with it, but it looks like the submitted patch
        needs to be updated. To do that, I think I need to discuss with the original author.
        So, I hope to just fix build break issue in this bug.

        No new tests. Implementing the feature is not done yet.

        * GNUmakefile.list.am: Added some missing files.
        * bindings/js/JSDirectoryEntryCustom.cpp: Added Error.h to use its API.
        * platform/AsyncFileSystem.cpp:
        (WebCore):
        (WebCore::AsyncFileSystem::create): The arguments don't match the declaration in AsyncFileSystem.h.
        * platform/gtk/AsyncFileSystemGtk.cpp: Added.
        (WebCore):
        (WebCore::AsyncFileSystem::isAvailable):
        (WebCore::AsyncFileSystem::isValidType):
        (WebCore::AsyncFileSystem::create):
        (WebCore::AsyncFileSystem::openFileSystem):
        (WebCore::AsyncFileSystem::crackFileSystemURL):
        (WebCore::AsyncFileSystemGtk::AsyncFileSystemGtk):
        (WebCore::AsyncFileSystemGtk::~AsyncFileSystemGtk):
        (WebCore::AsyncFileSystemGtk::toURL):
        (WebCore::AsyncFileSystemGtk::move):
        (WebCore::AsyncFileSystemGtk::copy):
        (WebCore::AsyncFileSystemGtk::remove):
        (WebCore::AsyncFileSystemGtk::removeRecursively):
        (WebCore::AsyncFileSystemGtk::readMetadata):
        (WebCore::AsyncFileSystemGtk::createFile):
        (WebCore::AsyncFileSystemGtk::createDirectory):
        (WebCore::AsyncFileSystemGtk::fileExists):
        (WebCore::AsyncFileSystemGtk::directoryExists):
        (WebCore::AsyncFileSystemGtk::readDirectory):
        (WebCore::AsyncFileSystemGtk::createWriter):
        * platform/gtk/AsyncFileSystemGtk.h: Added.
        (WebCore):
        (AsyncFileSystemGtk):

2012-02-16  Adrienne Walker  <enne@google.com>

        Handle dirty descendant visibility status in RenderLayer::updateLayerPositionsAfterScroll
        https://bugs.webkit.org/show_bug.cgi?id=78286

        Reviewed by Julien Chaffraix.

        This is an unfortunate bandaid over a corner case where sometimes the
        visible descendant status dirty flag is true when this function is
        called from FrameView::repaintFixedElementsAfterScrolling. As it
        should be cheap to refresh this flag when dirty in most cases (as it
        early outs after finding any visible descendant), just lazily update
        the dirty flag here to ensure correctness.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPositionsAfterScroll):

2012-02-16  Adam Barth  <abarth@webkit.org>

        Chrome::*Geolocation* are just useless pass-throughs to ChromeClient and should be removed
        https://bugs.webkit.org/show_bug.cgi?id=78844

        Reviewed by Eric Seidel.

        These function serve no useful purpose and should be removed.

        * page/Chrome.cpp:
        (WebCore):
        * page/Chrome.h:
        (Chrome):
        * page/Geolocation.cpp:
        (WebCore::Geolocation::reset):
        (WebCore::Geolocation::requestPermission):

2012-02-16  Sergio Villar Senin  <svillar@igalia.com>

        [soup] Move important SoupSession feature initialization to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=68602

        Reviewed by Martin Robinson.

        Moved content sniffer and decoder initialization from WebKit to
        WebCore because network stuff will not work as expected without
        them. Added also out-of-the-box proxy support to WebCore.

        No new tests required as we're just moving stuff from WebKit to
        WebCore.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandle::defaultSession):

2012-02-16  Julien Chaffraix  <jchaffraix@webkit.org>

        thead in table without tbody causes table height doubling
        https://bugs.webkit.org/show_bug.cgi?id=37244

        Reviewed by Ojan Vafai.

        Tests: fast/table/double-height-table-no-tbody-expected.html
               fast/table/double-height-table-no-tbody.html

        The bug is caused by the layout code would wrongly assuming that a
        table without a <tbody> is an empty table. We would set the logical
        height to the style's logical height wrongly before inflating the
        logical height to account for the section(s). This would cause us
        to increase past our needed size thus the bug.

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::layout):
        A table is empty if it does not have any top section, not just a <tbody>.
        The test uncovered an issue with height distribution in layoutRows where we
        would distribute the extra height to the first <tbody> not section.

2012-02-07  Robert Hogan  <robert@webkit.org>

        CSS 2.1 failure: fixed-table-layout-013 and fixed-table-layout-015 fail
        https://bugs.webkit.org/show_bug.cgi?id=78027

        Reviewed by Julien Chaffraix.

        Both of these test the (slightly implicit) rule that width set on column-groups cannot
        affect the width of columns in a fixed layout table: http://www.w3.org/TR/CSS21/tables.html#fixed-table-layout
        FF, Opera and IE all pass these two tests.

        Tests: css2.1/20110323/fixed-table-layout-013.htm
               css2.1/20110323/fixed-table-layout-015.htm

        * rendering/FixedTableLayout.cpp:
        (WebCore::nextCol): A helper function for finding the next column along.
        (WebCore::FixedTableLayout::calcWidthArray): Ignore width specified by column groups.
        * rendering/RenderTableCol.h:
        (WebCore::RenderTableCol::isTableColGroup): Convenience function for identifying column groups.

2012-02-16  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, rolling out r107941.
        http://trac.webkit.org/changeset/107941
        https://bugs.webkit.org/show_bug.cgi?id=68602

        Broke 23 http tests on GTK

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandle::defaultSession):

2012-02-16  Tom Sepez  <tsepez@chromium.org>

        XSS Auditor bypass with U+2028/2029
        https://bugs.webkit.org/show_bug.cgi?id=78732

        Reviewed by Adam Barth.

        Test: http/tests/security/xssAuditor/script-tag-with-trailing-comment-U2028.html

        * html/parser/XSSAuditor.cpp:
        (WebCore::isJSNewline):
        (WebCore::XSSAuditor::snippetForJavaScript):

2012-02-15  Mark Rowe  <mrowe@apple.com>

        NPN_GetValueForURL / NPNURLVProxy returns DIRECT when proxy configured via PAC
        <http://webkit.org/b/78766> / <rdar://problem/10729283>

        Reviewed by Anders Carlsson.

        * platform/network/cf/ProxyServerCFNet.cpp:
        (WebCore::proxyAutoConfigurationResultCallback): Stop the runloop, and then process
        the results that we received.
        (WebCore::processProxyServers): Processing of array of proxy configuration information
        moved from addProxyServersForURL. Handling of proxy auto-configuration URLs is now handled
        by calling CFNetworkExecuteProxyAutoConfigurationURL and waiting synchronously on the result
        callback. Doing this synchronously is not great, but it's the best we can do without a lot
        of restructuring of the code that calls this. We arbitrarily time out the execution after five
        seconds to avoid permanently hanging.
        (WebCore::addProxyServersForURL): Call in to our helper function.

2012-02-16  Abhishek Arya  <inferno@chromium.org>

        Fix clone() function to handle descendant classes of RenderBlock.
        https://bugs.webkit.org/show_bug.cgi?id=78273

        Reviewed by Eric Seidel.

        Test: fast/multicol/span/clone-flexbox-crash.html

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

2012-02-16  Raul Hudea  <rhudea@adobe.com>

        [CSSRegions]overflowRegion tests are flaky
        https://bugs.webkit.org/show_bug.cgi?id=78761

        Reviewed by Tony Chang.

        The overflowRegion tests were updated.

        * dom/Element.cpp:
        (WebCore::Element::webkitRegionOverflow):

2012-02-16  Raul Hudea  <rhudea@adobe.com>

        [CSS Regions] Repaint issues when changing innerHTML of content
        https://bugs.webkit.org/show_bug.cgi?id=78787

        Reviewed by David Hyatt.

        The calculation of the clipping rectangle is based on the repaint rectangle,
        so it needs to be clipped to the current region, because it might spread over multiple ones.

        Test: fast/repaint/region-painting-invalidation.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::repaintRectangleInRegions):

2012-02-16  Adam Roben  <aroben@apple.com>

        Roll out r107887

        It broke 32-bit builds due to truncation from "long long" to "int".

        Original bug is <http://webkit.org/b/76571> Add FractionalLayoutPoint/Size/Rect for
        sub-pixel layout

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.order:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/FractionalLayoutUnit.h:
        (WebCore::FractionalLayoutUnit::isInBounds):
        (WebCore::operator==):
        (WebCore::operator*):
        * platform/graphics/FloatPoint.cpp:
        * platform/graphics/FloatPoint.h:
        (WebCore):
        (FloatPoint):
        (WebCore::FloatPoint::move):
        (WebCore::FloatPoint::moveBy):
        * platform/graphics/FloatRect.cpp:
        * platform/graphics/FloatRect.h:
        (WebCore):
        * platform/graphics/FloatSize.cpp:
        * platform/graphics/FloatSize.h:
        (WebCore):
        * platform/graphics/FractionalLayoutPoint.h: Removed.
        * platform/graphics/FractionalLayoutRect.cpp: Removed.
        * platform/graphics/FractionalLayoutRect.h: Removed.
        * platform/graphics/FractionalLayoutSize.cpp: Removed.
        * platform/graphics/FractionalLayoutSize.h: Removed.
        * platform/graphics/IntRect.cpp:
        * platform/graphics/IntRect.h:
        (WebCore):
        (IntRect):

2012-02-16  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: cache settings values
        https://bugs.webkit.org/show_bug.cgi?id=78815

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/Settings.js:
        (WebInspector.Setting.prototype.get if):
        (WebInspector.Setting.prototype):
        (WebInspector.Setting.prototype.):
        (WebInspector.Setting.prototype.set this):

2012-02-16  Terry Anderson  <tdanderson@chromium.org>

        WebKit does not support DOM 3 Events FocusEvent
        https://bugs.webkit.org/show_bug.cgi?id=76216

        Created a new FocusEvent class (extends UIEvent) with a relatedTarget attribute.  Moved
        the {Focus,Blur,FocusIn,FocusOut}EventDispatchMediator classes inside FocusEvent.  Now when
        focusin or focusout events are dispatched, a FocusEvent is created with the relatedTarget
        attribute set accordingly.  No other logic changes have been made besides adding the
        FocusEvent class.

        Reviewed by Eric Seidel.

        Test: fast/events/related-target-focusevent.html

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DOMAllInOne.cpp:
            - Included mention of FocusEvent / JSFocusEvent in the above files to
              allow the patch to build on the different platforms
        * dom/EventDispatchMediator.cpp:
        * dom/EventDispatchMediator.h:
        * dom/EventFactory.in:
        * dom/FocusEvent.cpp: Added.
        (WebCore):
        (WebCore::FocusEvent::FocusEvent):
        (WebCore::FocusEvent::~FocusEvent):
        (WebCore::FocusEvent::initFocusEvent):
        (WebCore::FocusEvent::interfaceName):
        (WebCore::FocusInEventDispatchMediator::create):
        (WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
        (WebCore::FocusInEventDispatchMediator::dispatchEvent):
        (WebCore::FocusInEventDispatchMediator::event):
        (WebCore::FocusOutEventDispatchMediator::create):
        (WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
        (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
        (WebCore::FocusOutEventDispatchMediator::event):
        (WebCore::FocusEventDispatchMediator::create):
        (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
        (WebCore::FocusEventDispatchMediator::dispatchEvent):
        (WebCore::BlurEventDispatchMediator::create):
        (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
        (WebCore::BlurEventDispatchMediator::dispatchEvent):
        * dom/FocusEvent.h: Copied from Source/WebCore/dom/EventDispatchMediator.h.
        (WebCore):
        (FocusEvent):
        (WebCore::FocusEvent::create):
        (WebCore::FocusEvent::relatedTarget):
        (WebCore::FocusEvent::setRelatedTarget):
        (FocusInEventDispatchMediator):
        (FocusOutEventDispatchMediator):
        (FocusEventDispatchMediator):
        (BlurEventDispatchMediator):
        * dom/FocusEvent.idl: Added.
        * dom/Node.cpp:
        (WebCore::Node::dispatchFocusInEvent):
        (WebCore::Node::dispatchFocusOutEvent):
        * dom/UIEvent.cpp:
        * dom/UIEvent.h:
        * page/DOMWindow.idl:

2012-02-16  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Texmap] Improve the way we deal with BGRA extension
        https://bugs.webkit.org/show_bug.cgi?id=78822

        Swizzle the RGBA manually only in OpenGL ES, and only if the extension is not available.
        Pass the pixel-format of the images when updating TextureMapperTiledBackingStore.

        Reviewed by Kenneth Rohde Christiansen.

        No new behavior.

        * platform/graphics/opengl/TextureMapperGL.cpp:
        (WebCore):
        (WebCore::hasExtension):
        (WebCore::hasBgraExtension):
        (WebCore::BitmapTextureGL::updateContents):
        * platform/graphics/texmap/TextureMapperBackingStore.cpp:
        (WebCore::TextureMapperTile::updateContents):
        (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
        (WebCore::TextureMapperTiledBackingStore::updateContents):
        * platform/graphics/texmap/TextureMapperBackingStore.h:
        (TextureMapperTile):
        (TextureMapperTiledBackingStore):
        (WebCore::TextureMapperTiledBackingStore::updateContents):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::updateBackingStore):

2012-02-16  Simon Hausmann  <simon.hausmann@nokia.com>

        [Gtk][Efl][Qt] Move OpenGLShims out of cairo/ subdirectory
        https://bugs.webkit.org/show_bug.cgi?id=78800

        Reviewed by Kenneth Rohde Christiansen.

        The file is not specific to Cairo and used in other ports. Move it into
        common space.

        * GNUmakefile.list.am:
        * PlatformEfl.cmake:
        * Target.pri:
        * platform/graphics/OpenGLShims.cpp: Renamed from Source/WebCore/platform/graphics/cairo/OpenGLShims.cpp.
        (WebCore):
        (WebCore::openGLFunctionTable):
        (WebCore::getProcAddress):
        (WebCore::lookupOpenGLFunctionAddress):
        (WebCore::initializeOpenGLShims):
        * platform/graphics/OpenGLShims.h: Renamed from Source/WebCore/platform/graphics/cairo/OpenGLShims.h.
        (WebCore):
        (_OpenGLFunctionTable):
        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        * platform/graphics/opengl/TextureMapperGL.cpp:
        * platform/graphics/qt/Extensions3DQt.cpp:
        * platform/graphics/qt/GraphicsContext3DQt.cpp:

2012-02-16  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Qt][WK2] Allow opaque tiles
        https://bugs.webkit.org/show_bug.cgi?id=78809

        Add a supportsAlpha property to TiledBackingStore.
        We invalidate all the tiles if that property changes, because the buffers need to be
        recreated in a different format.

        Reviewed by Kenneth Rohde Christiansen.

        No behavior changes.

        * platform/graphics/TiledBackingStore.cpp:
        (WebCore::TiledBackingStore::TiledBackingStore):
        (WebCore::TiledBackingStore::setSupportsAlpha):
        (WebCore):
        * platform/graphics/TiledBackingStore.h:
        (TiledBackingStore):
        (WebCore::TiledBackingStore::supportsAlpha):

2012-02-16  Sergio Villar Senin  <svillar@igalia.com>

        [soup] Move important SoupSession feature initialization to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=68602

        Reviewed by Martin Robinson.

        Moved content sniffer and decoder initialization from WebKit to
        WebCore because network stuff will not work as expected without
        them. Added also out-of-the-box proxy support to WebCore.

        No new tests required as we're just moving stuff from WebKit to
        WebCore.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandle::defaultSession):

2012-02-16  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: remove free flow DOM editing experiment.
        https://bugs.webkit.org/show_bug.cgi?id=78813

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMAgent.prototype._markRevision):

2012-02-16  Patrick Gansterer  <paroga@webkit.org>

        WinCE build fix after r107453.

        * platform/FractionalLayoutUnit.h:
        (WebCore::FractionalLayoutUnit::isInBounds): Use fabs() instead of abs().

2012-02-15  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: explicitly mark undoable state from the front-end.
        https://bugs.webkit.org/show_bug.cgi?id=78716

        Reviewed by Vsevolod Vlasov.

        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::toggleProperty):
        (WebCore::InspectorCSSAgent::setRuleSelector):
        (WebCore::InspectorCSSAgent::addRule):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::setAttributeValue):
        (WebCore::InspectorDOMAgent::setAttributesAsText):
        (WebCore::InspectorDOMAgent::removeAttribute):
        (WebCore::InspectorDOMAgent::removeNode):
        (WebCore::InspectorDOMAgent::setNodeName):
        (WebCore::InspectorDOMAgent::setOuterHTML):
        (WebCore::InspectorDOMAgent::setNodeValue):
        (WebCore::InspectorDOMAgent::moveTo):
        * inspector/InspectorHistory.cpp:
        (WebCore::InspectorHistory::redo):
        * inspector/InspectorHistory.h:
        (InspectorHistory):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel.prototype.setRuleSelector.callback):
        (WebInspector.CSSStyleModel.prototype.setRuleSelector):
        (WebInspector.CSSStyleModel.prototype.addRule.callback):
        (WebInspector.CSSStyleModel.prototype.addRule):
        (WebInspector.CSSStyleModel.prototype.setStyleSheetText):
        (WebInspector.CSSProperty.prototype.setText.callback):
        (WebInspector.CSSProperty.prototype.setText):
        (WebInspector.CSSProperty.prototype.setDisabled.callback):
        (WebInspector.CSSProperty.prototype.setDisabled):
        (WebInspector.CSSStyleSheet.prototype.setText):
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMAgent.prototype._markRevision):
        (WebInspector.DOMAgent.prototype.get markUndoableState):

2012-02-15  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: revert 'modification of DOM upon single click for selected nodes'.
        https://bugs.webkit.org/show_bug.cgi?id=78717

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeElement.prototype.onattach):

2012-02-16  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: move style disable checkboxes to the left
        https://bugs.webkit.org/show_bug.cgi?id=78780

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertiesSection):
        (WebInspector.StylePropertiesSection.prototype._handleSelectorDoubleClick):
        (WebInspector.StylePropertyTreeElement.prototype):
        * inspector/front-end/elementsPanel.css:
        (.styles-section.matched-styles .properties):
        (.styles-section.matched-styles .properties li):
        (.styles-section .properties li.parent::before):
        (.styles-section .properties li.parent.expanded::before):
        (.styles-section.matched-styles .properties li.parent .expand-element):
        (.styles-section.matched-styles .properties li.parent.expanded .expand-element):
        (.styles-section.computed-style .properties li.parent::before):
        (.styles-section.computed-style .properties li.parent.expanded::before):
        (.styles-section.matched-styles:not(.read-only):hover .properties .enabled-button):
        (.styles-section.matched-styles:not(.read-only) .properties li.disabled .enabled-button):
        (.styles-section .properties .enabled-button):
        (.styles-section.matched-styles .properties ol.expanded):
        * inspector/front-end/treeoutline.js:
        (TreeElement.treeElementDoubleClicked):

2012-02-16  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: show memory counter graphics when switching to memory view
        https://bugs.webkit.org/show_bug.cgi?id=78808

        Switching to memory view in timeline will display memory counters. Counter
        graphics know show fair data without approximations between sampling points.

        Reviewed by Pavel Feldman.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/MemoryStatistics.js:
        (WebInspector.MemoryStatistics.prototype._calculateVisibleIndexes):
        (WebInspector.MemoryStatistics.prototype._calculateXValues):
        (WebInspector.MemoryStatistics.prototype._drawPolyline):
        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel.prototype.get statusBarItems):
        (WebInspector.TimelinePanel.prototype._createStatusbarButtons):
        (WebInspector.TimelinePanel.prototype._timelinesOverviewItemSelected):
        (WebInspector.TimelinePanel.prototype._memoryOverviewItemSelected):

2012-02-16  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: [heap snapshot] It could be useful to have access to the selected heap object from the console.
        https://bugs.webkit.org/show_bug.cgi?id=78496

        Reviewed by Yury Semikhatsky.

       * bindings/js/JSInjectedScriptHostCustom.cpp:
        (WebCore::JSInjectedScriptHost::inspectedObject):
        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
        (WebCore::V8InjectedScriptHost::inspectedObjectCallback):
        * inspector/InjectedScriptHost.cpp:
        (WebCore::InjectedScriptHost::InjectedScriptHost):
        (WebCore::InjectedScriptHost::InspectableObject::get):
        (WebCore):
        (WebCore::InjectedScriptHost::addInspectedObject):
        (WebCore::InjectedScriptHost::clearInspectedObjects):
        (WebCore::InjectedScriptHost::inspectedObject):
        * inspector/InjectedScriptHost.h:
        (InspectableObject):
        (WebCore::InjectedScriptHost::InspectableObject::~InspectableObject):
        (InjectedScriptHost):
        * inspector/InjectedScriptHost.idl:
        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/Inspector.json:
        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::domContentLoadedEventFired):
        * inspector/InspectorConsoleAgent.cpp:
        (InspectableHeapObject):
        (WebCore::InspectableHeapObject::InspectableHeapObject):
        (WebCore::InspectableHeapObject::get):
        (WebCore):
        (WebCore::InspectorConsoleAgent::addInspectedHeapObject):
        * inspector/InspectorConsoleAgent.h:
        (InspectorConsoleAgent):
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::resetState):
        * inspector/PageConsoleAgent.cpp:
        (InspectableNode):
        (WebCore::InspectableNode::InspectableNode):
        (WebCore::InspectableNode::get):
        (WebCore):
        (WebCore::PageConsoleAgent::addInspectedNode):
        * inspector/front-end/DetailedHeapshotView.js:
        (WebInspector.DetailedHeapshotView.prototype._selectionChanged):
        (WebInspector.DetailedHeapshotView.prototype._inspectedObjectChanged):

2012-02-16  Kihong Kwon  <kihong.kwon@samsung.com>

        Add support for unsigned long[] to idl bindings to JSC.
        https://bugs.webkit.org/show_bug.cgi?id=78210

        Reviewed by Kentaro Hara.

        Add support for unsigned long[] parameter type in idl.
        This patch adds support just for unsigned long[] parameter type.
        (support for other types of array should be done in another patch.)

        tests added to TestObj.idl.

        * bindings/js/JSDOMBinding.h:
        (WebCore::jsUnsignedLongArrayToVector):
        * bindings/scripts/CodeGeneratorJS.pm:
        (AddIncludesForType):
        (JSValueToNative):
        (NativeToJSValue):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore):
        (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongArray):
        * bindings/scripts/test/JS/JSTestObj.h:
        (WebCore):
        * bindings/scripts/test/TestObj.idl:

2012-02-16  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [InspectorIndexedDB] Add IndexedDB TreeElement to resources panel.
        https://bugs.webkit.org/show_bug.cgi?id=78609

        Reviewed by Yury Semikhatsky.

        Added IndexedDB tree element to resources panel (behind experimental setting).
        Test is currently disabled, since we don't run tests with experiments enabled.

        * English.lproj/localizedStrings.js:
        * WebCore.gypi:
        * inspector/front-end/Images/indexedDB.png: Added.
        * inspector/front-end/Images/indexedDBIndex.png: Added.
        * inspector/front-end/Images/indexedDBObjectStore.png: Added.
        * inspector/front-end/IndexedDBModel.js:
        (WebInspector.IndexedDBModel):
        (WebInspector.IndexedDBModel.prototype.refreshDatabaseNames):
        (WebInspector.IndexedDBModel.prototype.refreshDatabase):
        (WebInspector.IndexedDBModel.prototype._reset):
        (WebInspector.IndexedDBModel.prototype._originAddedToFrame):
        (WebInspector.IndexedDBModel.prototype._originRemoved):
        (WebInspector.IndexedDBModel.prototype._databaseAdded):
        (WebInspector.IndexedDBModel.prototype._databaseRemoved):
        (WebInspector.IndexedDBModel.prototype._loadDatabaseNamesForFrame):
        (WebInspector.IndexedDBModel.prototype._loadDatabase.callback):
        (WebInspector.IndexedDBModel.prototype._loadDatabase):
        (WebInspector.IndexedDBModel.Frame):
        (WebInspector.IndexedDBModel.DatabaseId):
        (WebInspector.IndexedDBModel.DatabaseId.prototype.equals):
        (WebInspector.IndexedDBModel.Database):
        (WebInspector.IndexedDBModel.Index):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.IndexedDBTreeElement):
        (WebInspector.IndexedDBTreeElement.prototype.onexpand):
        (WebInspector.IndexedDBTreeElement.prototype._createIndexedDBModel):
        (WebInspector.IndexedDBTreeElement.prototype.refreshIndexedDB):
        (WebInspector.IndexedDBTreeElement.prototype._indexedDBAdded):
        (WebInspector.IndexedDBTreeElement.prototype._indexedDBRemoved):
        (WebInspector.IndexedDBTreeElement.prototype._indexedDBLoaded):
        (WebInspector.IndexedDBTreeElement.prototype._idbDatabaseTreeElement):
        (WebInspector.IDBDatabaseTreeElement):
        (WebInspector.IDBDatabaseTreeElement.prototype.update):
        (WebInspector.IDBDatabaseTreeElement.prototype.onselect):
        (WebInspector.IDBObjectStoreTreeElement):
        (WebInspector.IDBObjectStoreTreeElement.prototype.update):
        (WebInspector.IDBIndexTreeElement):
        (WebInspector.IDBIndexTreeElement.prototype.update):
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/resourcesPanel.css:
        (.indexed-db-storage-tree-item .icon):
        (.indexed-db-object-store-storage-tree-item .icon):
        (.indexed-db-index-storage-tree-item .icon):

2012-02-15  Nikolas Zimmermann  <nzimmermann@rim.com>

        REGRESSION (Safari 5.0.5 - 5.1): No animation on svg-wow.org/text-effects/text-effects.xhtml
        https://bugs.webkit.org/show_bug.cgi?id=65072

        Reviewed by Zoltan Herczeg.

        Fix EMS/EXS length resolving, when the target context has no renderer, eg.
        <text display="none" dy="1em">ABC</text>, myText.dy.baseVal.getItem(0).value()
        currently throws, even if <text> has a parent, we could use to resolve the length.

        Always fall-back to parent context, to resolve EMS/EXS units, instead of ignoring it.
        The current behaviour stays the same, if the target element is not in the document,
        then we really can't resolve lengths like this.

        Tests: svg/text/ems-display-none.svg
               svg/text/exs-display-none.svg

        * svg/SVGLengthContext.cpp:
        (WebCore::renderStyleForLengthResolving):
        (WebCore::SVGLengthContext::convertValueFromUserUnitsToEMS):
        (WebCore::SVGLengthContext::convertValueFromEMSToUserUnits):
        (WebCore::SVGLengthContext::convertValueFromUserUnitsToEXS):
        (WebCore::SVGLengthContext::convertValueFromEXSToUserUnits):

2012-02-16  Simon Hausmann  <simon.hausmann@nokia.com>

        Build fix for Qt 5 without QtWidgets.

        Reviewed by Tor Arne Vestbø.

        The reason why QGLContext is included in Extensions3DQt.cpp is to
        achieve an implicit gl.h inclusion (needed for GL_FALSE). This patch
        replaces the inclusion with the OpenGLShims.h inclusions, which has
        the necessary #ifdefs in place to pull in gl.h with Qt 5 without QtWidgets.

        * platform/graphics/qt/Extensions3DQt.cpp:

2012-02-16  Shawn Singh  <shawnsingh@chromium.org>

        [chromium] Refactor CCLayerTreeHostCommon: create helper function for complex boolean condition
        https://bugs.webkit.org/show_bug.cgi?id=78539

        Reviewed by James Robinson.

        This change should introduce no change in behavior, and its
        expected behavior is already covered by existing tests.

        In calculateDrawTransformsAndVisibility, there is a complex
        boolean condition that indicates whether we should create a
        RenderSurface or not. This patch pulls out that boolean logic,
        and wraps it in a helper function for much better readability.

        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
        (WebCore::layerShouldBeSkipped):
        (WebCore):
        (WebCore::subtreeShouldRenderToSeparateSurface):
        (WebCore::calculateDrawTransformsAndVisibilityInternal):

2012-02-16  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [refactoring] move timeline overview sidebar creation to TimelineOverviewPane
        https://bugs.webkit.org/show_bug.cgi?id=78782

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/TimelineOverviewPane.js:
        (WebInspector.TimelineOverviewPane):
        (WebInspector.TimelineOverviewPane.prototype.showTimelines):
        (WebInspector.TimelineOverviewPane.prototype.showMemoryGraph):
        (WebInspector.TimelineOverviewPane.prototype.sidebarResized):
        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel):
        (WebInspector.TimelinePanel.prototype.sidebarResized):

2012-02-15  Andreas Kling  <awesomekling@apple.com>

        Share font-family CSS values through CSSValuePool.
        <http://webkit.org/b/78604>

        Reviewed by Darin Adler.

        Cache and share FontFamilyValue instances in the per-document CSSValuePool.
        This reduces memory consumption by 248 kB on the Moz page cycler (64-bit)
        and avoids a bunch of extra work.

        This is a regression from the recent attribute style refactoring; previously
        the mapped attribute declaration table would ensure that multiple 'font'
        elements with the same 'face' value would share the same FontFamilyValue.

        We're not yet sharing the entire CSSValueList returned by parseFontFamily()
        but this is a step on the way there.

        * css/FontFamilyValue.cpp:
        * css/FontFamilyValue.h:

            Removed appendSpaceSeparated(), making FontFamilyValue immutable.

        * css/CSSParser.cpp:
        (FontFamilyValueBuilder):
        (WebCore::FontFamilyValueBuilder::FontFamilyValueBuilder):
        (WebCore::FontFamilyValueBuilder::add):
        (WebCore::FontFamilyValueBuilder::commit):
        (WebCore::CSSParser::parseFontFamily):

            Refactor parseFontFamily() to defer creation of FontFamilyValue until
            the whole family name is known. Added a little helper class to avoid
            code duplication.

        * css/CSSValuePool.h:
        * css/CSSValuePool.cpp:
        (WebCore::CSSValuePool::createFontFamilyValue):

            Added a FontFamilyValue cache to CSSValuePool. All values are tied to
            the lifetime of the pool.

2012-02-16  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Move event conversion functions from WebCore to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=78788

        Reviewed by Kenneth Rohde Christiansen.

        Move QtWidgets dependent mouse event constructors out of WebCore
        into WebKit, similar to the web event conversions of WebKit2.

        * Target.pri:
        * platform/PlatformMouseEvent.h:
        (PlatformMouseEvent):
        * platform/PlatformWheelEvent.h:
        (PlatformWheelEvent):

2012-02-16  Simon Hausmann  <simon.hausmann@nokia.com>

        Unreviewed prospective Qt 4.8/Mac build fix.

        Cast the PlatformWidget from QObject* to QWidget* to gain access
        to QWidget methods.

        * plugins/mac/PluginViewMac.mm:
        (WebCore::nativeWindowFor):
        (WebCore::cgHandleFor):
        (WebCore::topLevelOffsetFor):
        (WebCore::PluginView::setFocus):
        (WebCore::PluginView::invalidateRect):

2012-02-16  Roland Steiner  <rolandsteiner@chromium.org>

        <style scoped>: Implement scoped selector matching in the slow path
        https://bugs.webkit.org/show_bug.cgi?id=77528

        Added scope information to SelectorCheckingContext, SelectorChecker methods and CSSStyleSelector methods.
        Added matchOptions struct to CSSStyleSelector similar to SelectorCheckingContext in SelectorChecker.
        Adapted the calling sites.

        Reviewed by Antti Koivisto.

        No new tests. (extended existing tests)

        * css/CSSStyleSelector.cpp:
        (RuleData):
        (RuleSet):
        (WebCore::CSSStyleSelector::determineScopingElement):
        (WebCore::CSSStyleSelector::collectMatchingRules):
        (WebCore::CSSStyleSelector::collectMatchingRulesForRegion):
        (WebCore::CSSStyleSelector::matchScopedAuthorRules):
        (WebCore::CSSStyleSelector::matchAuthorRules):
        (WebCore::CSSStyleSelector::collectMatchingRulesForList):
        * css/CSSStyleSelector.h:
        (CSSStyleSelector):
        (MatchOptions):
        (WebCore::CSSStyleSelector::MatchOptions::MatchOptions):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkSelector):
        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
        (SelectorCheckingContext):
        (SelectorChecker):

2012-02-15  Patrick Gansterer  <paroga@webkit.org>

        Windows build fix for !ENABLE(CSS_FILTERS) after r106593.

        * platform/graphics/ca/win/PlatformCALayerWin.cpp:

2012-02-15  Antti Koivisto  <antti@apple.com>

        Move the context invalidation code out from StylePropertySet
        https://bugs.webkit.org/show_bug.cgi?id=78589

        Reviewed by Ryosuke Niwa.

        StylePropertySet should be independent of its context so that they can in the future
        be shared between documents. The context invalidation code should move to the CSSOM wrapper.
        
        Parent rule and parent element pointers move to the CSSOM wrapper classes. 
        
        The wrapper is responsible of invalidating the element or document style on mutation.
        In case of internal mutation of style attribute, StyledElement takes care of the 
        invalidation.
        
        The StylePropertySet will still have a pointer to the context stylesheet so the patch
        doesn't actually reduce memory usage. That pointer will be factored out later.

        * css/CSSFontFaceRule.cpp:
        (WebCore::CSSFontFaceRule::~CSSFontFaceRule):
        * css/CSSFontFaceRule.h:
        (WebCore::CSSFontFaceRule::style):
        * css/CSSPageRule.cpp:
        (WebCore::CSSPageRule::~CSSPageRule):
        * css/CSSPageRule.h:
        (WebCore::CSSPageRule::style):
        (WebCore::CSSPageRule::setDeclaration):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::createStyleRule):
        (WebCore::CSSParser::createFontFaceRule):
        (WebCore::CSSParser::createPageRule):
        (WebCore::CSSParser::createKeyframeRule):
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::~CSSStyleRule):
        * css/CSSStyleRule.h:
        (WebCore::CSSStyleRule::style):
        (WebCore::CSSStyleRule::setDeclaration):
        * css/StylePropertySet.cpp:
        (PropertySetCSSStyleDeclaration):
        (WebCore::PropertySetCSSStyleDeclaration::parentElement):
        (WebCore::PropertySetCSSStyleDeclaration::clearParentRule):
        (WebCore::PropertySetCSSStyleDeclaration::clearParentElement):
        (WebCore::PropertySetCSSStyleDeclaration::setNeedsStyleRecalc):
        (RuleCSSStyleDeclaration):
        (WebCore::RuleCSSStyleDeclaration::RuleCSSStyleDeclaration):
        (WebCore::RuleCSSStyleDeclaration::parentRule):
        (WebCore::RuleCSSStyleDeclaration::clearParentRule):
        (WebCore):
        (InlineCSSStyleDeclaration):
        (WebCore::InlineCSSStyleDeclaration::InlineCSSStyleDeclaration):
        (WebCore::InlineCSSStyleDeclaration::parentElement):
        (WebCore::InlineCSSStyleDeclaration::clearParentElement):
        (WebCore::StylePropertySet::StylePropertySet):
        (WebCore::StylePropertySet::removeShorthandProperty):
        (WebCore::StylePropertySet::removeProperty):
        (WebCore::StylePropertySet::setProperty):
        (WebCore::StylePropertySet::parseDeclaration):
        (WebCore::StylePropertySet::addParsedProperties):
        (WebCore::StylePropertySet::addParsedProperty):
        (WebCore::StylePropertySet::merge):
        (WebCore::StylePropertySet::removePropertiesInSet):
        (WebCore::StylePropertySet::copy):
        (WebCore::StylePropertySet::ensureCSSStyleDeclaration):
        (WebCore::StylePropertySet::ensureRuleCSSStyleDeclaration):
        (WebCore::StylePropertySet::ensureInlineCSSStyleDeclaration):
        (WebCore::StylePropertySet::clearParentRule):
        (WebCore::StylePropertySet::clearParentElement):
        (WebCore::PropertySetCSSStyleDeclaration::setCssText):
        (WebCore::PropertySetCSSStyleDeclaration::setProperty):
        (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
        (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
        (WebCore::RuleCSSStyleDeclaration::setNeedsStyleRecalc):
        (WebCore::InlineCSSStyleDeclaration::setNeedsStyleRecalc):
        * css/StylePropertySet.h:
        (WebCore::StylePropertySet::create):
        (StylePropertySet):
        (WebCore::StylePropertySet::useStrictParsing):
        (WebCore::StylePropertySet::contextStyleSheet):
        (WebCore::StylePropertySet::setContextStyleSheet):
        * css/WebKitCSSKeyframeRule.cpp:
        (WebCore::WebKitCSSKeyframeRule::~WebKitCSSKeyframeRule):
        (WebCore::WebKitCSSKeyframeRule::setDeclaration):
        * css/WebKitCSSKeyframeRule.h:
        (WebCore::WebKitCSSKeyframeRule::style):
        * dom/ElementAttributeData.cpp:
        (WebCore::ElementAttributeData::ensureInlineStyleDecl):
        (WebCore::ElementAttributeData::destroyInlineStyleDecl):
        * dom/ElementAttributeData.h:
        (ElementAttributeData):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::insertedIntoDocument):
        (WebCore):
        (WebCore::StyledElement::removedFromDocument):
        (WebCore::StyledElement::parseAttribute):
        (WebCore::StyledElement::inlineStyleChanged):
        (WebCore::StyledElement::setInlineStyleProperty):
        (WebCore::StyledElement::removeInlineStyleProperty):
        (WebCore::StyledElement::updateAttributeStyle):
        * dom/StyledElement.h:
        (StyledElement):
        (WebCore::StyledElement::destroyInlineStyleDecl):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
        * editing/DeleteButtonController.cpp:
        (WebCore::DeleteButtonController::createDeletionUI):
        (WebCore::DeleteButtonController::show):
        (WebCore::DeleteButtonController::hide):
        * editing/Editor.cpp:
        (WebCore::Editor::applyEditingStyleToElement):
        * editing/RemoveCSSPropertyCommand.cpp:
        (WebCore::RemoveCSSPropertyCommand::doApply):
        (WebCore::RemoveCSSPropertyCommand::doUnapply):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::updateColorSwatch):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::updatePlaceholderVisibility):
        * html/ImageDocument.cpp:
        (WebCore::ImageDocument::resizeImageToFit):
        (WebCore::ImageDocument::restoreImageSize):
        (WebCore::ImageDocument::windowSizeChanged):
        * html/ValidationMessage.cpp:
        (WebCore::adjustBubblePosition):
        (WebCore::ValidationMessage::buildBubbleTree):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlElement::show):
        (WebCore::MediaControlElement::hide):
        (WebCore::MediaControlPanelElement::setPosition):
        (WebCore::MediaControlPanelElement::resetPosition):
        (WebCore::MediaControlPanelElement::makeOpaque):
        (WebCore::MediaControlPanelElement::makeTransparent):
        (WebCore::MediaControlInputElement::show):
        (WebCore::MediaControlInputElement::hide):
        (WebCore::MediaControlTextTrackContainerElement::updateSizes):
        * html/shadow/MeterShadowElement.cpp:
        (WebCore::MeterValueElement::setWidthPercentage):
        * html/shadow/ProgressShadowElement.cpp:
        (WebCore::ProgressValueElement::setWidthPercentage):
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::TrackLimiterElement::create):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::resize):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::styleDidChange):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::SVGFontFaceElement):
        (WebCore::SVGFontFaceElement::insertedIntoDocument):
        (WebCore::SVGFontFaceElement::removeFromMappedElementSheet):

2012-02-15  Daniel Cheng  <dcheng@chromium.org>

        dataTransfer.types (HTML5 drag & drop) should return DOMStringList
        https://bugs.webkit.org/show_bug.cgi?id=30416

        Reviewed by Eric Seidel.

        This change breaks backwards compatibility; however, since Firefox only supported
        event.dataTransfer.types.contains, sites already needed to check whether to use contains or
        indexOf. Therefore, the net compatibility effect of this change should be minimal.

        Test: fast/events/drag-dataTransfer-live-attributes.html

        * bindings/js/JSClipboardCustom.cpp:
        (WebCore):
        * bindings/v8/custom/V8ClipboardCustom.cpp:
        * dom/Clipboard.cpp:
        (WebCore::Clipboard::hasStringOfType):
        * dom/Clipboard.h:
        (WebCore):
        (Clipboard):
        * dom/Clipboard.idl:
        * platform/blackberry/ClipboardBlackBerry.cpp:
        (WebCore::ClipboardBlackBerry::types):
        * platform/blackberry/ClipboardBlackBerry.h:
        (ClipboardBlackBerry):
        * platform/chromium/ChromiumDataObject.cpp:
        (WebCore::ChromiumDataObject::types):
        * platform/chromium/ChromiumDataObject.h:
        (ChromiumDataObject):
        * platform/chromium/ClipboardChromium.cpp:
        (WebCore::ClipboardChromium::types):
        (WebCore::ClipboardChromium::mayUpdateItems):
        * platform/chromium/ClipboardChromium.h:
        (ClipboardChromium):
        * platform/chromium/DragDataChromium.cpp:
        (WebCore::containsHTML):
        (WebCore::DragData::containsURL):
        (WebCore::DragData::asURL):
        (WebCore::DragData::containsPlainText):
        (WebCore::DragData::canSmartReplace):
        (WebCore::DragData::asFragment):
        * platform/efl/ClipboardEfl.cpp:
        (WebCore::ClipboardEfl::types):
        * platform/efl/ClipboardEfl.h:
        (ClipboardEfl):
        * platform/gtk/ClipboardGtk.cpp:
        (WebCore::ClipboardGtk::types):
        * platform/gtk/ClipboardGtk.h:
        (ClipboardGtk):
        * platform/mac/ClipboardMac.h:
        (ClipboardMac):
        * platform/mac/ClipboardMac.mm:
        (WebCore::addHTMLClipboardTypesForCocoaType):
        (WebCore::ClipboardMac::types):
        * platform/qt/ClipboardQt.cpp:
        (WebCore::ClipboardQt::types):
        * platform/qt/ClipboardQt.h:
        (ClipboardQt):
        * platform/win/ClipboardWin.cpp:
        (WebCore::addMimeTypesForFormat):
        (WebCore::ClipboardWin::types):
        * platform/win/ClipboardWin.h:
        (ClipboardWin):
        * platform/wx/ClipboardWx.cpp:
        (WebCore::ClipboardWx::types):
        * platform/wx/ClipboardWx.h:
        (ClipboardWx):

2012-02-15  Bear Travis  <betravis@adobe.com>

        Repaint issues on changing 'viewBox' of inner SVG
        https://bugs.webkit.org/show_bug.cgi?id=77903

        Reviewed by Nikolas Zimmermann.

        Do not update the child viewbox/viewport transform to its parent
        coordinate system until after layout has stored the old bounds for
        repainting purposes.
        
        Test: svg/repaint/inner-svg-change-viewBox-contract.svg

        * rendering/svg/RenderSVGViewportContainer.cpp:
        (WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer):
        (WebCore::RenderSVGViewportContainer::calcViewport):
        (WebCore):
        (WebCore::RenderSVGViewportContainer::calculateLocalTransform):
        (WebCore::RenderSVGViewportContainer::localToParentTransform):
        * rendering/svg/RenderSVGViewportContainer.h:
        (WebCore::RenderSVGViewportContainer::setNeedsTransformUpdate):
        (RenderSVGViewportContainer):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::svgAttributeChanged):

2012-02-15  Bear Travis  <betravis@adobe.com>

        Repaint issues on changing 'viewBox' of inner SVG
        https://bugs.webkit.org/show_bug.cgi?id=77903

        Reviewed by Nikolas Zimmermann.

        Do not update the child viewbox/viewport transform to its parent
        coordinate system until after layout has stored the old bounds for
        repainting purposes.
        
        Test: svg/repaint/inner-svg-change-viewBox-contract.svg

        * rendering/svg/RenderSVGViewportContainer.cpp:
        (WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer):
        (WebCore::RenderSVGViewportContainer::calcViewport):
        (WebCore):
        (WebCore::RenderSVGViewportContainer::calculateLocalTransform):
        (WebCore::RenderSVGViewportContainer::localToParentTransform):
        * rendering/svg/RenderSVGViewportContainer.h:
        (WebCore::RenderSVGViewportContainer::setNeedsTransformUpdate):
        (RenderSVGViewportContainer):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::svgAttributeChanged):

2012-02-15  Daniel Cheng  <dcheng@chromium.org>

        dataTransfer.types (HTML5 drag & drop) should return DOMStringList
        https://bugs.webkit.org/show_bug.cgi?id=30416

        Reviewed by Eric Seidel.

        This change breaks backwards compatibility; however, since Firefox only supported
        event.dataTransfer.types.contains, sites already needed to check whether to use contains or
        indexOf. Therefore, the net compatibility effect of this change should be minimal.

        Test: fast/events/drag-dataTransfer-live-attributes.html

        * bindings/js/JSClipboardCustom.cpp:
        (WebCore):
        * bindings/v8/custom/V8ClipboardCustom.cpp:
        * dom/Clipboard.cpp:
        (WebCore::Clipboard::hasStringOfType):
        * dom/Clipboard.h:
        (WebCore):
        (Clipboard):
        * dom/Clipboard.idl:
        * platform/blackberry/ClipboardBlackBerry.cpp:
        (WebCore::ClipboardBlackBerry::types):
        * platform/blackberry/ClipboardBlackBerry.h:
        (ClipboardBlackBerry):
        * platform/chromium/ChromiumDataObject.cpp:
        (WebCore::ChromiumDataObject::types):
        * platform/chromium/ChromiumDataObject.h:
        (ChromiumDataObject):
        * platform/chromium/ClipboardChromium.cpp:
        (WebCore::ClipboardChromium::types):
        (WebCore::ClipboardChromium::mayUpdateItems):
        * platform/chromium/ClipboardChromium.h:
        (ClipboardChromium):
        * platform/chromium/DragDataChromium.cpp:
        (WebCore::containsHTML):
        (WebCore::DragData::containsURL):
        (WebCore::DragData::asURL):
        (WebCore::DragData::containsPlainText):
        (WebCore::DragData::canSmartReplace):
        (WebCore::DragData::asFragment):
        * platform/efl/ClipboardEfl.cpp:
        (WebCore::ClipboardEfl::types):
        * platform/efl/ClipboardEfl.h:
        (ClipboardEfl):
        * platform/gtk/ClipboardGtk.cpp:
        (WebCore::ClipboardGtk::types):
        * platform/gtk/ClipboardGtk.h:
        (ClipboardGtk):
        * platform/mac/ClipboardMac.h:
        (ClipboardMac):
        * platform/mac/ClipboardMac.mm:
        (WebCore::addHTMLClipboardTypesForCocoaType):
        (WebCore::ClipboardMac::types):
        * platform/qt/ClipboardQt.cpp:
        (WebCore::ClipboardQt::types):
        * platform/qt/ClipboardQt.h:
        (ClipboardQt):
        * platform/win/ClipboardWin.cpp:
        (WebCore::addMimeTypesForFormat):
        (WebCore::ClipboardWin::types):
        * platform/win/ClipboardWin.h:
        (ClipboardWin):
        * platform/wx/ClipboardWx.cpp:
        (WebCore::ClipboardWx::types):
        * platform/wx/ClipboardWx.h:
        (ClipboardWx):

2012-02-15  Bear Travis  <betravis@adobe.com>

        Repaint issues on changing 'viewBox' of inner SVG
        https://bugs.webkit.org/show_bug.cgi?id=77903

        Reviewed by Nikolas Zimmermann.

        Do not update the child viewbox/viewport transform to its parent
        coordinate system until after layout has stored the old bounds for
        repainting purposes.
        
        Test: svg/repaint/inner-svg-change-viewBox-contract.svg

        * rendering/svg/RenderSVGViewportContainer.cpp:
        (WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer):
        (WebCore::RenderSVGViewportContainer::calcViewport):
        (WebCore):
        (WebCore::RenderSVGViewportContainer::calculateLocalTransform):
        (WebCore::RenderSVGViewportContainer::localToParentTransform):
        * rendering/svg/RenderSVGViewportContainer.h:
        (WebCore::RenderSVGViewportContainer::setNeedsTransformUpdate):
        (RenderSVGViewportContainer):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::svgAttributeChanged):

2012-02-15  Anders Carlsson  <andersca@apple.com>

        Fix unused parameter warnings.

        * platform/graphics/ca/mac/WebTileCacheLayer.mm:
        (-[WebTileCacheLayer setContentsScale:]):

2012-02-15  Emil A Eklund  <eae@chromium.org>

        Convert RenderFrameSet to LayoutUnits in preparation for turning on subpixel layout
        https://bugs.webkit.org/show_bug.cgi?id=78526

        Reviewed by Eric Seidel.

        Revert paintColumnBorder and paintRowBorder to IntRect and pixel snap in
        paint before calling them. This way the rounding logic is contained in a
        single place (in paint).

        No new tests, no new functionality.

        * rendering/RenderFrameSet.cpp:
        (WebCore::RenderFrameSet::paintColumnBorder):
        (WebCore::RenderFrameSet::paintRowBorder):
        (WebCore::RenderFrameSet::paint):
        (WebCore::RenderFrameSet::getCursor):
        * rendering/RenderFrameSet.h:
        (RenderFrameSet):

2012-02-15  Emil A Eklund  <eae@chromium.org> and Levi Weintraub  <leviw@chromium.org>

        Add FractionalLayoutPoint/Size/Rect for sub-pixel layout
        https://bugs.webkit.org/show_bug.cgi?id=76571

        Reviewed by Eric Seidel.

        Add fixed point versions of the Point, Size and Rect classes using
        the new FractionalLayoutPoint type and.

        FractionalLayoutPoint, FractionalLayoutSize and FractionalLayoutRect are
        Point, Size and Rect implementations respectively using this new type.

        No new tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.order:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/FractionalLayoutUnit.h:
        Fixed a couple of typos and signed/unsigned bugs.

        * platform/graphics/FloatPoint.cpp:
        (WebCore::FloatPoint::FloatPoint):
        Add explicit FloatPoint(FractionalLayoutPoint) constructor.
        
        (WebCore::FloatPoint::move):
        Add move(FractionalLayoutSize) implementation.
        
        (WebCore::FloatPoint::moveBy):
        Add moveBy(FractionalLayoutPoint) implementation.

        * platform/graphics/FloatPoint.h:
        * platform/graphics/FloatRect.cpp:
        (WebCore::FloatRect::FloatRect):
        Add explicit FloatRectFractionalLayoutRect) constructor.
        
        * platform/graphics/FloatRect.h:
        (WebCore):
        (FloatRect):
        * platform/graphics/FloatSize.cpp:
        (WebCore::FloatSize::FloatSize):
        Add explicit FloatSize(FractionalLayoutSize) constructor.

        * platform/graphics/FloatSize.h:
        * platform/graphics/FractionalLayoutPoint.h: Added.
        * platform/graphics/FractionalLayoutRect.cpp: Added.
        * platform/graphics/FractionalLayoutRect.h: Added.
        * platform/graphics/FractionalLayoutSize.cpp: Added.
        * platform/graphics/FractionalLayoutSize.h: Added.
        * platform/graphics/IntRect.cpp:
        (WebCore::IntRect::IntRect):
        Add explicit IntRect(FractionalLayoutRect) constructor.

        * platform/graphics/IntRect.h:

2012-02-15  Kentaro Hara  <haraken@chromium.org>

        [Mac] PasteboardMac.mm build fails
        https://bugs.webkit.org/show_bug.cgi?id=78655

        Reviewed by Enrica Casucci.

        This patch fixes the code to make a plain text for pasted file names.
        The code should return a string of concatenated file names.

        Test: editing/pasteboard/drag-files-to-editable-element.html

        * platform/mac/PasteboardMac.mm:
        (WebCore::Pasteboard::plainText):

2012-02-15  Anders Carlsson  <andersca@apple.com>

        Another attempt at fixing the Snow Leopard build.

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::setContentsScale):

2012-02-15  Pablo Flouret  <pablof@motorola.com>

        Add support for the translate attribute in html elements.
        https://bugs.webkit.org/show_bug.cgi?id=78751

        Reviewed by Adam Barth.

        The translate attribute is used to specify whether an element's
        attribute values and the values of its Text node children are to be
        translated when the page is localized, or whether to leave them
        unchanged.

        Details at http://www.whatwg.org/specs/web-apps/current-work/multipage/elements.html#attr-translate

        Test: fast/dom/HTMLElement/translate.html

        * html/HTMLAttributeNames.in:
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::translateAttributeMode):
        (WebCore):
        (WebCore::HTMLElement::translate):
        (WebCore::HTMLElement::setTranslate):
        * html/HTMLElement.h:
        (HTMLElement):
        * html/HTMLElement.idl:

2012-02-15  Sami Kyostila  <skyostil@google.com>

        Add -webkit-overflow-scrolling CSS property
        https://bugs.webkit.org/show_bug.cgi?id=78664

        Reviewed by Eric Seidel.

        Add a CSS property indicating that an element with overflow scrolling
        should follow the platform's behavior for touch scrollable user
        interface objects. For instance, this property could enable momentum
        scrolling for the element if that is the platform convention.

        The property has two possible values: auto (default) and touch. The
        former does not alter overflow scrolling behavior, while the latter
        activates touch scrolling.

        As a side effect, enabling touch scrolling also causes an element to
        gain a stacking context. This is to allow the implementation to promote
        the scrolling contents into a render layer, which can be translated more
        efficiently.

        This property was introduced with iOS 5 WebKit. Another implementation
        is in Chrome for Android.

        Test: platform/chromium/compositing/overflow/overflow-scrolling-touch-stacking-context.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::adjustRenderStyle):
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSValueKeywords.in:
        * rendering/style/RenderStyle.h:
        * rendering/style/StyleRareInheritedData.cpp:
        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
        (WebCore::StyleRareInheritedData::operator==):
        * rendering/style/StyleRareInheritedData.h:
        (StyleRareInheritedData):

2012-02-15  Levi Weintraub  <leviw@chromium.org>

        Add zeroLayoutUnit constant.
        https://bugs.webkit.org/show_bug.cgi?id=78747

        Reviewed by Eric Seidel.

        Converting call sites where LayoutUnits and raw zeros are in ternary operations
        and templatized function calls (like std::max and min) to use a new zeroLayoutUnit
        constant instead of the raw zero.

        No new tests. No change in behavior.

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
        (WebCore::InlineFlowBox::addBorderOutsetVisualOverflow):
        (WebCore::InlineFlowBox::paintFillLayer):
        (WebCore::InlineFlowBox::paintBoxDecorations):
        (WebCore::InlineFlowBox::paintMask):
        (WebCore::InlineFlowBox::computeOverAnnotationAdjustment):
        * rendering/LayoutTypes.h:
        (WebCore):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::MarginInfo::MarginInfo):
        (WebCore::RenderBlock::adjustFloatingBlock):
        (WebCore::RenderBlock::paintColumnRules):
        (WebCore::RenderBlock::nextFloatLogicalBottomBelow):
        (WebCore::RenderBlock::getClearDelta):
        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
        (WebCore::getHeightForLineCount):
        (WebCore::RenderBlock::adjustForUnsplittableChild):
        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::paginationStrut):
        (WebCore::RenderBlock::pageLogicalOffset):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::LineLayoutState::updateRepaintRangeFromBox):
        (WebCore::RenderBlock::addOverflowFromInlineChildren):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::positionForPoint):
        * rendering/RenderBox.h:
        (WebCore::RenderBox::minYVisualOverflow):
        (WebCore::RenderBox::minXVisualOverflow):
        (RenderBox):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::offsetLeft):
        (WebCore::RenderBoxModelObject::offsetTop):
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        * rendering/RenderFieldset.cpp:
        (WebCore::RenderFieldset::paintBoxDecorations):
        * rendering/RenderFileUploadControl.cpp:
        (WebCore::nodeWidth):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::layout):
        (WebCore::RenderFlowThread::computeLogicalWidth):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::paintOutlineForLine):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::resize):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::listIndexAtOffset):
        (WebCore::RenderListBox::verticalScrollbarWidth):
        * rendering/RenderMarquee.cpp:
        (WebCore::RenderMarquee::computePosition):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::computePreferredLogicalWidths):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
        (WebCore::RenderTable::layout):
        * rendering/RenderTable.h:
        (WebCore::RenderTable::bordersPaddingAndSpacingInRowDirection):
        * rendering/mathml/RenderMathMLSubSup.cpp:
        (WebCore::RenderMathMLSubSup::layout):

2012-02-15  Alexey Proskuryakov  <ap@apple.com>

        Crash after trying to use FileReader in a document with null origin string
        https://bugs.webkit.org/show_bug.cgi?id=78649

        Reviewed by Enrica Casucci.

        Test: fast/files/null-origin-string.html

        * fileapi/FileReaderLoader.cpp: (WebCore::FileReaderLoader::~FileReaderLoader):
        HashMaps don't like empty keys, and they don't like removing keys that have never been added.

2012-02-15  Anders Carlsson  <andersca@apple.com>

        Attempt to fix the Snow Leopard build.

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::createTileLayer):
        * platform/graphics/ca/mac/WebTileCacheLayer.mm:
        (-[WebTileCacheLayer setContentsScale:]):

2012-02-15  Dan Bernstein  <mitz@apple.com>

        REGRESSION (r107836): fast/box-shadow/spread.html and fast/writing-mode/box-shadow-*.html tests failing
        https://bugs.webkit.org/show_bug.cgi?id=78759

        Reviewed by Simon Fraser.

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::boxShadowCanBeAppliedToBackground): Added. Returns false if
        paintFillLayer() would push a clip before painting the layer, thus preventing it from casting
        its own shadow.
        (WebCore::InlineFlowBox::paintBoxDecorations): Pass this as an additional parameter to
        boxShadowShouldBeAppliedToBackground().
        * rendering/InlineFlowBox.h:
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended): Pass the InlineFlowBox along to
        boxShadowShouldBeAppliedToBackground().
        (WebCore::RenderBoxModelObject::boxShadowShouldBeAppliedToBackground): Added an InlineFlowBox
        parameter. If non-0, check boxShadowCanBeAppliedToBackground(). Also check for shadow spread,
        and for the case of border radius with a background image, in which paintFillLayerExtended uses
        clipping. Finally, fixed a bug in the for() loop for finding the last background layer which
        was noticed by Tony Chang.
        * rendering/RenderBoxModelObject.h:
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::boxShadowShouldBeAppliedToBackground):
        * rendering/RenderTableCell.h:

2012-02-15  Erik Arvidsson  <arv@chromium.org>

        Expose Window constructor
        https://bugs.webkit.org/show_bug.cgi?id=78722

        Reviewed by Adam Barth.

        Test: fast/dom/Window/window-constructor-presence.html

        * page/DOMWindow.idl:

2012-02-15  Kelly Norton  <knorton@google.com>

        fill-opacity does not render properly only on Chromium Mac.
        https://bugs.webkit.org/show_bug.cgi?id=78624

        Reviewed by Stephen White.

        Test: svg/text/text-fill-opacity.svg

        * platform/graphics/skia/FontSkia.cpp:
        (WebCore::Font::drawGlyphs):

2012-02-15  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Upstream WebPageClient.h
        https://bugs.webkit.org/show_bug.cgi?id=78660

        Reviewed by Antonio Gomes.

        Header inclusion fix, no new test.

        * plugins/blackberry/PluginViewPrivateBlackBerry.h:
        Add #include <BlackBerryPlatformIntRectRegion.h>
        and #include <BlackBerryPlatformGraphics.h> because they
        are being removed from WebKit/blackberry/Api/WebPageClient.h.

2012-02-15  Tim Horton  <timothy_horton@apple.com>

        REGRESSION(r105057): Dynamically changing <tspan> offsets is broken
        https://bugs.webkit.org/show_bug.cgi?id=78385
        <rdar://problem/10832932>

        Reviewed by Simon Fraser.

        Don't short-circuit buildLayoutAttributesIfNeeded if m_textPositions is already full;
        we can't skip rebuilding the layout attributes, just walking the tree to acquire the
        positioning lists (invalidation of positioning lists is already covered by textDOMChanged).

        Test: svg/text/tspan-dynamic-positioning.svg

        * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
        (WebCore::SVGTextLayoutAttributesBuilder::buildLayoutAttributesIfNeeded):

2012-02-15  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Removing SecurityContext from the embedder API
        https://bugs.webkit.org/show_bug.cgi?id=73816

        Reviewed by Darin Fisher.

        Tests for the Media Stream API will be provided by the bug 56587, pending enough landed code.

        * mediastream/PeerConnection.cpp:
        (WebCore::PeerConnection::PeerConnection):
        * platform/mediastream/PeerConnectionHandler.h:
        (WebCore):
        (PeerConnectionHandler):
        * platform/mediastream/gstreamer/PeerConnectionHandler.cpp:
        (WebCore::PeerConnectionHandler::create):
        (WebCore::PeerConnectionHandler::PeerConnectionHandler):

2012-02-15  Nate Chapin  <japhet@chromium.org>

        Fix test regressons from r107672.
        https://bugs.webkit.org/show_bug.cgi?id=76564

        Move setting CachedRawResource::m_identifer from
        data() to setResponse(). WorkerScriptLoader depends
        on the identifier being set correctly during setResponse()
        in order to correctly mark itself as a ScriptResource in
        the inspector.

        Reviewed by Adam Barth.

        Fixes several worker script loading tests.

        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::data):
        (WebCore::CachedRawResource::setResponse):

2012-02-15  Enrica Casucci  <enrica@apple.com>

        REGRESSION: "Copy image" fails...copies image URL instead.
        https://bugs.webkit.org/show_bug.cgi?id=78723
        <rdar://problem/10869104>

        During the refactoring of the Pasteboard class some code was lost.
        When placing an NSImage in the NSPasteboard as NSTIFFPboardType, we need
        to use the its TIFF representation.
        
        Reviewed by Andy Estes.

        * platform/mac/PasteboardMac.mm:
        (WebCore::Pasteboard::writeImage):

2012-01-31  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [soup] Add support for multiple SoupSessions.
        https://bugs.webkit.org/show_bug.cgi?id=77341

        Reviewed by Gustavo Noronha Silva.

        Make the libsoup network backend support multiple SoupSessions. This is
        accomplished by using the NetworkingContext classes, which now have a
        `soupSession()' method when the libsoup backend is being used.

        libsoup's ResourceHandle implementation now retrieves the SoupSession
        via the NetworkingContext it receives instead of relying on
        defaultSession(). defaultSession() is still used when a null
        NetworkingContext is passed to ResourceHandle::start (for example, via
        webkit_download_start).

        The CookieJar implementation retrieves the SoupSession from the
        NetworkingContext as much as possible as well -- the functions used by
        WebKit2 could not be converted, though, as they seem to assume there is
        only one shared cookie jar.

        No new tests, covered by the existing ones.

        * platform/network/NetworkingContext.h:
        (NetworkingContext): Add soupSession() method if USE(SOUP) is set.
        * platform/network/ResourceHandleInternal.h:
        (ResourceHandleInternal):
        * platform/network/soup/CookieJarSoup.cpp:
        (WebCore::cookieJarForDocument):
        (WebCore):
        (WebCore::defaultCookieJar):
        (WebCore::setCookies):
        (WebCore::cookies):
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::cookiesEnabled):
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandleInternal::soupSession): Add method to retrieve
        a SoupSession from a NetworkingContext and fallback to defaultSession()
        if there's no valid NetworkingContext.
        (WebCore):
        (WebCore::ensureSessionIsInitialized): Only change or use the default
        cookie jar if the SoupSession being changed is the default one.
        (WebCore::sendRequestCallback):
        (WebCore::startHTTPRequest):
        (WebCore::ResourceHandle::cancel):
        (WebCore::startNonHTTPRequest):

2012-02-15  Anders Carlsson  <andersca@apple.com>

        The TileCache object should be deallocated on the main thread
        https://bugs.webkit.org/show_bug.cgi?id=78757
        <rdar://problem/10866161>

        Reviewed by Sam Weinig.

        Since the WebTileCacheLayer can be deleted on the scrolling thread, we need to make sure that the underlying
        TileCache object is actually destroyed on the main thread.

        * platform/graphics/ca/mac/TileCache.h:
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::~TileCache):
        Assert that this object is being destroyed on the main thread.

        * platform/graphics/ca/mac/WebTileCacheLayer.mm:
        (-[WebTileCacheLayer dealloc]):
        If dealloc is being called from a non-main thread, make sure to delete the tile cache object on the main thread.

2012-02-15  Anders Carlsson  <andersca@apple.com>

        Scrolling Coordinator must be deleted on the main thread
        https://bugs.webkit.org/show_bug.cgi?id=78756
        <rdar://problem/10866167>

        Reviewed by Sam Weinig.

        ScrollingTree::invalidate will finish breaking the cycle between the scrolling coordinator and the
        scrolling tree by dereffing the scrolling coordinator. We need to make sure that this happens on the main
        thread because the scrolling coordinator expects to be destroyed from there.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::derefScrollingCoordinator):
        (WebCore):
        (WebCore::ScrollingTree::invalidate):

2012-02-15  Anders Carlsson  <andersca@apple.com>

        Scrolling coordinator should handle pages being restored from the page cache
        https://bugs.webkit.org/show_bug.cgi?id=78753
        <rdar://problem/10866171>

        Reviewed by Sam Weinig.

        Replace ScrollingCoordinator::frameViewScrollLayerDidChange with a new member function,
        ScrollingCoordinator::frameViewRootLayerDidChange which is called whenever the root layer
        of the frame view changes (which happens on back/forward navigation as well).

        In this function, reset the scrolling tree state from the frame view.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::scrollLayerForFrameView):
        Add a helper function.

        (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
        Reset the entire scrolling tree state.

        (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
        Call the newly added helper function.

        * page/scrolling/ScrollingCoordinator.h:
        (ScrollingCoordinator):
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        Remove frameViewScrollLayerDidChange.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::ensureRootLayer):
        Remove call to ScrollingCoordinator::frameViewScrollLayerDidChange.

        (WebCore::RenderLayerCompositor::attachRootLayer):
        Call ScrollingCoordinator::frameViewRootLayerDidChange.

2012-02-15  Enrica Casucci  <enrica@apple.com>

        Refactor ClipboardMac class to use PlatformStrategies.
        https://bugs.webkit.org/show_bug.cgi?id=78554

        Reviewed by Anders Carlsson.

        No new tests. No change in behavior.

        * WebCore.exp.in: Added new exported methods of the PlatformPasteboard class
        * editing/mac/EditorMac.mm:
        (WebCore::Editor::newGeneralClipboard): Use name based pasteboard references.
        * page/DragClient.h:
        (WebCore::DragClient::declareAndWriteDragImage): Ditto.
        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::createDraggingClipboard): Ditto.
        * platform/PasteboardStrategy.h: Added new methods to get a unique pasteboard name
        and the pasteboard change count.
        * platform/PlatformPasteboard.h: Ditto.
        * platform/mac/ClipboardMac.h:
        (WebCore::ClipboardMac::create): Using name based pasteboard.
        (WebCore::ClipboardMac::pasteboardName): Replacing the old pasteboard() method.
        * platform/mac/ClipboardMac.mm: All the methods below have been modified to avoid
        using Objective-C types and direct access to NSPasteboard object.
        (WebCore::Clipboard::create):
        (WebCore::ClipboardMac::ClipboardMac):
        (WebCore::ClipboardMac::hasData):
        (WebCore::cocoaTypeFromHTMLClipboardType):
        (WebCore::utiTypeFromCocoaType):
        (WebCore::addHTMLClipboardTypesForCocoaType):
        (WebCore::ClipboardMac::clearData):
        (WebCore::ClipboardMac::clearAllData):
        (WebCore::absoluteURLsFromPasteboardFilenames):
        (WebCore::absoluteURLsFromPasteboard):
        (WebCore::ClipboardMac::getData):
        (WebCore::ClipboardMac::setData):
        (WebCore::ClipboardMac::types):
        (WebCore::ClipboardMac::files):
        (WebCore::ClipboardMac::setDragImage):
        (WebCore::ClipboardMac::writeRange):
        (WebCore::ClipboardMac::writePlainText):
        (WebCore::ClipboardMac::writeURL):
        (WebCore::ClipboardMac::declareAndWriteDragImage):
        * platform/mac/PasteboardMac.mm:
        (WebCore::Pasteboard::writeClipboard): Using name based pasteboard reference.
        * platform/mac/PlatformPasteboardMac.mm:
        (WebCore::PlatformPasteboard::getPathnamesForType): Fixed to support NSArray and NString content.
        (WebCore::PlatformPasteboard::changeCount): Added.
        (WebCore::PlatformPasteboard::uniqueName): Added.

2012-02-15  Anders Carlsson  <andersca@apple.com>

        TileCache needs to support setting the contents scale
        https://bugs.webkit.org/show_bug.cgi?id=78741
        <rdar://problem/10710773>

        Reviewed by Sam Weinig.

        * platform/graphics/ca/mac/TileCache.h:
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::setContentsScale):
        Update the contents scale of all the tiles and then revalidate the tile cache since tiles
        might have come and gone as a result of setting the contents scale.
        
        (WebCore::TileCache::createTileLayer):
        Set the contents scale of the tile layer.

        * platform/graphics/ca/mac/WebTileCacheLayer.mm:
        (-[WebTileCacheLayer setContentsScale:]):
        Call TileCache::setContentsScale.

2012-02-15  Anders Carlsson  <andersca@apple.com>

        Try to fix the Chromium build and remove a snarky comment in the process.

        * platform/chromium/PopupListBox.cpp:
        (WebCore::PopupListBox::handleWheelEvent):

2012-02-15  Anders Carlsson  <andersca@apple.com>

        Wheel events should be re-dispatched to the scrolling thread
        https://bugs.webkit.org/show_bug.cgi?id=78731
        <rdar://problem/10866144>

        Reviewed by Sam Weinig.

        When threaded scrolling is enabled, all the state is assumed to be kept in the scrolling tree,
        on the scrolling thread. This means that even if we do end up processing an event on the main thread
        (because of wheel event handlers for example), we still have to dispatch the wheel event back to the
        scrolling thread.

        * page/FrameView.cpp:
        (WebCore::FrameView::wheelEvent):
        Move wheelEvent from ScrollView and ask the scrolling coordinator to handle the wheel event.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::handleWheelEvent):
        Dispatch the event to the scrolling thread, unless it will start a gesture. In that case we'll return false
        so that information will be passed back to the UI process.
        
        (ScrollingCoordinator):
        * platform/ScrollView.cpp:
        * platform/ScrollView.h:
        Move wheelEvent to FrameView.

2012-02-15  Mark Hahnenberg  <mhahnenberg@apple.com>

        RootObject::finalize can cause a crash in object->invalidate()
        https://bugs.webkit.org/show_bug.cgi?id=78645

        Reviewed by Geoffrey Garen.

        No new tests.

        * bridge/runtime_root.cpp:
        (JSC::Bindings::RootObject::finalize): Added a stack-allocated RefPtr to protect the RootObject
        during the call to invalidate().

2012-02-15  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/10870238> Box shadow drawing takes an unnecessarily slow code path in some single-shadow, opaque-background cases
        https://bugs.webkit.org/show_bug.cgi?id=78728

        In some cases, when there is only one normal box shadow, and the box has an opaque background,
        it is possible to draw the box shadow by having the background cast it directly. This appears
        to be faster than the generic code path that uses a separate drawing pass to cast the shadow,
        clipping out the border box and the shadow-casting box.

        Reviewed by Dave Hyatt.

        No new tests, because behavior is unchanged.

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::paintBoxDecorations): Changed to not paint normal box shadows if
        they are going to be cast by the background.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintBoxDecorations): Ditto.
        * rendering/RenderBox.h: Made determineBackgroundBleedAvoidance() protected.
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::applyBoxShadowForBackground): Added this helper function, which applies the first
        normal shadow from the given RenderStyle to the given GraphicsContext.
        (WebCore::RenderBoxModelObject::paintFillLayerExtended): Added calls to
        applyBoxShadowForBackground() before drawing the background color when needed.
        (WebCore::RenderBoxModelObject::boxShadowShouldBeAppliedToBackground): Added. Returns true
        in some of the cases where the box shadow can be cast by the background directly.
        * rendering/RenderBoxModelObject.h:
        * rendering/RenderFieldset.cpp:
        (WebCore::RenderFieldset::paintBoxDecorations): Changed to not paint normal box shadows if
        they are going to be cast by the background.
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::paintBoxDecorations): Ditto.
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::boxShadowShouldBeAppliedToBackground): Added this override that
        always returns false, because table cells sometimes apply a clip before drawing the background.
        * rendering/RenderTableCell.h:

2012-02-15  Ojan Vafai  <ojan@chromium.org>

        getComputedStyle of flex-item-align:auto should resolve to it's parent's flex-align value
        https://bugs.webkit.org/show_bug.cgi?id=76326

        Reviewed by Tony Chang.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2012-02-15  Sadrul Habib Chowdhury  <sadrul@chromium.org>

        Notify ChromeClient when touch-event handlers are installed/removed.
        https://bugs.webkit.org/show_bug.cgi?id=77440

        Reviewed by Darin Fisher and Ryosuke Niwa.

        Keep a count of the number of touch-event handlers and notify the
        embedder when the count changes. Depending on the count, the embedder
        can decide whether or not to dispatch touch events to webkit.

        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::didAddTouchEventHandler):
        (WebCore):
        (WebCore::Document::didRemoveTouchEventHandler):
        * dom/Document.h:
        (WebCore::Document::touchEventHandlerCount):
        (Document):
        * dom/Node.cpp:
        (WebCore::isTouchEventType):
        (WebCore::tryAddEventListener):
        (WebCore::tryRemoveEventListener):
        * loader/EmptyClients.h:
        (WebCore::EmptyChromeClient::numTouchEventHandlersChanged):
        * page/ChromeClient.h:
        (ChromeClient):
        * page/Frame.cpp:
        (WebCore::Frame::notifyChromeClientWheelEventHandlerCountChanged):
        (WebCore::Frame::notifyChromeClientTouchEventHandlerCountChanged):
        (WebCore):
        * page/Frame.h:
        (Frame):

2012-02-15  Eric Carlson  <eric.carlson@apple.com>

        Unset the active flag when TextTrackCues go away
        https://bugs.webkit.org/show_bug.cgi?id=72552

        Reviewed by Maciej Stachowiak.

        Test: media/track/track-active-cues.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::loadTimerFired): Configure new text tracks before preparing to load
            so we know about all tracks when resource selection begins.
        (WebCore::HTMLMediaElement::prepareForLoad): Call updateActiveTextTrackCues after setting
            to m_readyState is HAVE_NOTHING so all cues get deactivated. Don't build list of 
            available text tracks because resource selection won't actually start until after the load timer fires.
        (WebCore::HTMLMediaElement::loadInternal): Build list of non-disabled tracks.
        (WebCore::HTMLMediaElement::updateActiveTextTrackCues):  Clear the active flag on all cues
            when m_readyState is HAVE_NOTHING or m_player is 0.
        (WebCore::HTMLMediaElement::setReadyState): Don't update m_readyState when tracks which haven't
            loaded yet will prevent events from firing. Call updateActiveTextTrackCues to ensure that the
            first cue(s) are shown as soon as possible.
        (WebCore::HTMLMediaElement::userCancelledLoad): Call updateActiveTextTrackCues when when m_readyState 
            is HAVE_NOTHING so all cues get deactivated.

2012-02-15  Jessie Berlin  <jberlin@apple.com>

        WebCore build exceeds address space on 32-bit Windows builders (again).
        https://bugs.webkit.org/show_bug.cgi?id=78724

        Reviewed by Jon Honeycutt.

        Add the rest of the inspector .cpp files to the InspectorAllInOne.cpp file in Production and
        Release builds.

        * WebCore.vcproj/WebCore.vcproj:
        In the process, let VS have its way with this file.

        * inspector/InspectorAllInOne.cpp:

2012-02-15  Anders Carlsson  <andersca@apple.com>

        Remove ScrollableArea::handleGestureEvent
        https://bugs.webkit.org/show_bug.cgi?id=78661

        Reviewed by Adam Roben.

        ScrollableArea::handleGestureEvent ends up being a no-op so remove it and the related code.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureEvent):
        * platform/ScrollAnimator.cpp:
        * platform/ScrollAnimator.h:
        (ScrollAnimator):
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::wheelEvent):
        * platform/ScrollView.h:
        (ScrollView):
        * platform/ScrollableArea.cpp:
        * platform/ScrollableArea.h:
        (ScrollableArea):

2012-02-14  Stephen White  <senorblanco@chromium.org>

        Fix for incorrect/offset image in CSS filters (non-composited path)
        https://bugs.webkit.org/show_bug.cgi?id=78626

        Reviewed by Darin Adler.

        Test: css3/filters/multiple-filters-invalidation.html

        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::prepare):
        When invalidating results, invalidate all intermediate filter
        results, not just the last effect's result.

2012-02-15  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: "Minus" (Delete) button disappears for hovered watch expression in Watches pane
        https://bugs.webkit.org/show_bug.cgi?id=78714

        Reviewed by Pavel Feldman.

        * inspector/front-end/WatchExpressionsSidebarPane.js:
        (WebInspector.WatchExpressionsSection.prototype._mouseOut):

2012-02-15  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Move RunLoop to WebCore/platform
        https://bugs.webkit.org/show_bug.cgi?id=78504

        Reviewed by Adam Roben.

        r105475 moved RunLoop.cpp from WebKit2 to WebCore, but missed the CMake based ports.

        * CMakeLists.txt:
        * PlatformWinCE.cmake:

2012-02-15  Zoltan Herczeg  <zherczeg@webkit.org>

        Remove clipToImageBuffer from SourceAlpha and feComposite
        https://bugs.webkit.org/show_bug.cgi?id=78355

        Reviewed by Nikolas Zimmermann.

        The implementation of clipToImageBuffer is inefficient on
        non-mac platforms, so we would benefit if remove it.

        Existing tests cover this feature.

        * platform/graphics/filters/FEComposite.cpp:
        (WebCore::FEComposite::platformApplySoftware):
        * platform/graphics/filters/SourceAlpha.cpp:
        (WebCore::SourceAlpha::platformApplySoftware):

2012-02-15  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Replace use of QGLWidget/QGLContext with QOpenGLContext and QSurface for Qt 5
        https://bugs.webkit.org/show_bug.cgi?id=78694

        Reviewed by Noam Rosenthal.

        Typedef PlatformGraphicsContext3D and PlatformGraphicsSurface3D to QOpenGLContext
        and QSurface for Qt 5. Use these APIs to change the current context and get the
        procedure addresses. Removed QGraphicsObject inheritance remainder while we're at it,
        because that code path is obsolete.

        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/cairo/OpenGLShims.cpp:
        (WebCore::getProcAddress):
        * platform/graphics/cairo/OpenGLShims.h:
        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
        (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
        (WebCore::GraphicsContext3DPrivate::makeCurrentIfNeeded):
        (WebCore::GraphicsContext3D::~GraphicsContext3D):

2012-02-15  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Move Qt platform specific GL Context/Surface creation out of WebCore into WebKit
        https://bugs.webkit.org/show_bug.cgi?id=78692

        Reviewed by Noam Rosenthal.

        Replace the "glWidget" term in the GraphicsContext with "surface" and delegate
        the context and surface creation to the page client.

        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (GraphicsContext3DPrivate):
        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
        (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
        (WebCore::GraphicsContext3DPrivate::makeCurrentIfNeeded):
        (WebCore::GraphicsContext3D::GraphicsContext3D):
        (WebCore::GraphicsContext3D::~GraphicsContext3D):
        (WebCore::GraphicsContext3D::platformGraphicsContext3D):
        * platform/qt/QWebPageClient.h:
        (QWebPageClient):

2012-02-15  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Texmap] Support filters in TextureMapperImageBuffer
        https://bugs.webkit.org/show_bug.cgi?id=76026

        Implement GraphicsLayer::setFilters for TextureMapper, and pass the filters all the way
        to BitmapTextureImageBuffer. This does not introduce a new filters implementation, but
        rather uses the non-AC implementation. A complete implementation will be needed in
        TextureMapperGL, which can use some of the glue in this code.

        Reviewed by Kenneth Rohde Christiansen.

        Unskipped 10 tests in css3/filters.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore):
        (WebCore::GraphicsLayerTextureMapper::setFilters):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (GraphicsLayerTextureMapper):
        * platform/graphics/texmap/TextureMapper.h:
        (BitmapTexture):
        (WebCore::BitmapTexture::applyFilters):
        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
        (WebCore):
        (WebCore::BitmapTextureImageBuffer::applyFilters):
        * platform/graphics/texmap/TextureMapperImageBuffer.h:
        (BitmapTextureImageBuffer):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::shouldPaintToIntermediateSurface):
        (WebCore):
        (WebCore::applyFilters):
        (WebCore::TextureMapperLayer::paintRecursive):
        (WebCore::TextureMapperLayer::syncCompositingStateSelf):
        * platform/graphics/texmap/TextureMapperLayer.h:
        (State):

2012-02-15  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Clean up fallback rendering of GraphicsContext3D to Canvas
        https://bugs.webkit.org/show_bug.cgi?id=78690

        Reviewed by Noam Rosenthal.

        Use the common paintRenderingResultsToCanvas code to retrieve the
        pixels from the FBO and use a Qt port specific paintToCanvas
        implementation to wrap the pixels into a QImage and render it
        into the graphics context, just like it's done for the other ports.

        This removes the QGraphicsObject based paint, which is an now 
        obsolete method of rendering.

        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (GraphicsContext3DPrivate):
        (WebCore::GraphicsContext3D::paintToCanvas):

2012-02-14  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Eliminate first set of QtWidgets dependencies from WebCore
        https://bugs.webkit.org/show_bug.cgi?id=78611

        Reviewed by Kenneth Rohde Christiansen.

        * bindings/js/ScriptControllerQt.cpp: Remove unused include.
        * page/qt/EventHandlerQt.cpp:
        (WebCore::EventHandler::tabsToAllFormControls): Replace import
        of private Qt(Widgets) variable with the default of Qt 5, where
        it is also not configurable.
        * platform/ContextMenu.h: Remove unused include.
        * platform/ContextMenuItem.h: Ditto.
        * platform/Widget.h: Use QObject as type for PlatformWidget
        instead of QWidget.
        * platform/graphics/Icon.h:
        (Icon): Prefer QImage over QIcon for storage.
        * platform/graphics/gstreamer/PlatformVideoWindowPrivate.h:
        (WebCore): Make it compile with QWindow for Qt 5 and QWidget for Qt 4.
        * platform/graphics/gstreamer/PlatformVideoWindowQt.cpp:
        (FullScreenVideoWindow::FullScreenVideoWindow):
        (FullScreenVideoWindow::keyPressEvent):
        (FullScreenVideoWindow::event):
        (FullScreenVideoWindow::showFullScreen):
        (PlatformVideoWindow::PlatformVideoWindow):
        * platform/graphics/qt/IconQt.cpp: Revert the implementation of this class
        back to notImplemented(). It was trying to load the actual file as QIcon
        instead of trying to find a symbolic icon for the given file. We should
        probably use the QMimeType API in Qt 5 once it becomes available.
        (WebCore::Icon::createIconForFiles):
        (WebCore::Icon::paint):
        * platform/graphics/qt/ImageQt.cpp:
        (graphics): Remove use of QStyle for retrieving icons. Code moved to
        WebCoreSupport instead.
        * platform/qt/ContextMenuQt.cpp: Removed unused include.
        * platform/qt/PlatformScreenQt.cpp: Add #ifdefs to use QScreen API
        with Qt 5.
        (WebCore::screenDepth):
        (WebCore::screenDepthPerComponent):
        (WebCore::screenIsMonochrome):
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):
        * platform/qt/QWebPageClient.h: Add hook for showing/hiding widget.
        (WebCore):
        (QWebPageClient):
        * platform/qt/SoundQt.cpp:
        (WebCore::systemBeep): Beep is not implemented in Qt 5 and its use is
        questionable. Move back to notImplemented() until proper QPA API becomes
        available in Qt 5 (if ever...).
        * platform/qt/WidgetQt.cpp: Delegate QWidget specific show/hide calls
        to the PageClient, out of WebCore.
        (WebCore::Widget::Widget):
        (WebCore::Widget::show):
        (WebCore::Widget::hide):
        * plugins/PluginView.h: Remove unused include.
        * rendering/RenderTreeAsText.cpp:
        (WebCore::RenderTreeAsText::writeRenderObject): When dumping properties of
        QWidget, use the QObject property API to retrieve the values instead of
        QWidget specific API. Removed the mask from the dump as it's not available
        as property and our layout tests don't seem to use it.

2012-02-15  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Fix minor design issues in the Spectrum color picker
        https://bugs.webkit.org/show_bug.cgi?id=78693

        Drive-by: frontend compilability fixes.

        Reviewed by Pavel Feldman.

        * English.lproj/localizedStrings.js:
        * inspector/compile-front-end.sh:
        * inspector/front-end/ElementsPanel.js:
        * inspector/front-end/Popover.js:
        * inspector/front-end/Spectrum.js:
        (WebInspector.Spectrum.rgbaToHSVA):
        (WebInspector.Spectrum.prototype.set color):
        (WebInspector.Spectrum.prototype.get isVisible):
        (WebInspector.Spectrum.prototype.toggle):
        (WebInspector.Spectrum.prototype.show):
        (WebInspector.Spectrum.prototype.hide):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
        * inspector/front-end/elementsPanel.css:
        (.spectrum-container):
        (.spectrum-top):
        (.spectrum-color):
        (.spectrum-hue):
        (.spectrum-fill):
        (.spectrum-range-container):
        (.spectrum-range-container *):
        (.spectrum-range-container label):
        (.spectrum-range-container input):
        (.swatch, .spectrum-dragger, .spectrum-slider):
        (.spectrum-sat):
        (.spectrum-val):
        (.spectrum-dragger):
        (.spectrum-slider):
        * inspector/front-end/inspector.css:
        (.custom-popup-vertical-scroll ::-webkit-scrollbar-track-piece:vertical:increment):

2012-02-15  Yury Semikhatsky  <yurys@chromium.org>

        Unreviewed. Build fix after r107806

        * inspector/InjectedScript.cpp:
        (WebCore::InjectedScript::callFunctionWithEvalEnabled):
        * inspector/InjectedScript.h:
        (InjectedScript):

2012-02-15  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: crash when inspecting an element on a page with eval disabled by CSP
        https://bugs.webkit.org/show_bug.cgi?id=78705

        Inspector functions in injected script may use eval so we need to make sure
        it is allowed for inspector code on pages where it is prohibited by CSP.

        Reviewed by Pavel Feldman.

        Test: inspector/elements/resolve-node-blocked.html

        * inspector/InjectedScript.cpp:
        (WebCore::InjectedScript::nodeForObjectId):
        (WebCore::InjectedScript::wrapCallFrames):
        (WebCore::InjectedScript::wrapObject):
        (WebCore::InjectedScript::releaseObjectGroup):
        (WebCore::InjectedScript::callFunctionWithEvalEnabled):
        (WebCore):
        (WebCore::InjectedScript::makeCall):
        * inspector/InjectedScript.h:
        (InjectedScript):

2012-02-13  Brian Grinstead  <briangrinstead@gmail.com>

        Web Inspector: Add colorpicker functionality to color swatches in Styles Sidebar
        https://bugs.webkit.org/show_bug.cgi?id=71262

        Reviewed by Pavel Feldman.

        * English.lproj/localizedStrings.js:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/front-end/Settings.js:
        * inspector/front-end/Spectrum.js: Added.
        (WebInspector.Spectrum.hueDrag):
        (WebInspector.Spectrum.colorDrag):
        (WebInspector.Spectrum.alphaDrag):
        (WebInspector.Spectrum):
        (WebInspector.Spectrum.hsvaToRGBA):
        (WebInspector.Spectrum.rgbaToHSVA):
        (WebInspector.Spectrum.draggable.prevent):
        (WebInspector.Spectrum.draggable.move):
        (WebInspector.Spectrum.draggable.start):
        (WebInspector.Spectrum.draggable.stop):
        (WebInspector.Spectrum.draggable):
        (WebInspector.Spectrum.prototype.set color):
        (WebInspector.Spectrum.prototype.get color):
        (WebInspector.Spectrum.prototype.get outputColorFormat):
        (WebInspector.Spectrum.prototype.get colorHueOnly):
        (WebInspector.Spectrum.prototype.set displayText):
        (WebInspector.Spectrum.prototype._onchange):
        (WebInspector.Spectrum.prototype._updateHelperLocations):
        (WebInspector.Spectrum.prototype._updateUI):
        (WebInspector.Spectrum.prototype.toggle):
        (WebInspector.Spectrum.prototype.show):
        (WebInspector.Spectrum.prototype.reposition):
        (WebInspector.Spectrum.prototype.hide):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane):
        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.css:
        (.swatch):
        (.swatch-inner):
        (.spectrum-container):
        (.spectrum-top):
        (.spectrum-color):
        (.spectrum-hue):
        (.spectrum-fill):
        (.spectrum-range-container):
        (.spectrum-range-container *):
        (.spectrum-range-container label):
        (.spectrum-range-container input):
        (.swatch, .spectrum-dragger, .spectrum-slider):
        (.spectrum-sat):
        (.spectrum-val):
        (.spectrum-dragger):
        (.spectrum-slider):
        * inspector/front-end/inspector.html:

2012-02-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        [Qt] Be smarter with tile usages during tiling
        https://bugs.webkit.org/show_bug.cgi?id=78243

        Reviewed by Simon Hausmann.

        The keep rect used to know what existing tiles to keep around, is now a
        padding (in tile dimensions) around the usual cover rect. With usual,
        I mean to point out that we take our panning optimization into account.

        We also do a good effort at keeping the amount of tiles steady, by not
        simply intersecting our areas with the contentRect, but moving it
        first into legal bounds and then expanding in opposite direction to
        cover a similar amount of pixels.

        In the future the cover area should be calculated given available
        system memory.

        * platform/graphics/TiledBackingStore.cpp:
        (WebCore):
        (WebCore::TiledBackingStore::TiledBackingStore):
        (WebCore::TiledBackingStore::createTiles):
        (WebCore::TiledBackingStore::adjustForContentsRect):
        (WebCore::TiledBackingStore::computeCoverAndKeepRect):
        (WebCore::TiledBackingStore::tileRectForCoordinate):
        * platform/graphics/TiledBackingStore.h:
        (TiledBackingStore):

2012-02-13  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [InspectorIndexedDB] Pass data entries from object stores and indexes to front-end.
        https://bugs.webkit.org/show_bug.cgi?id=78503

        Reviewed by Yury Semikhatsky.

        Test: http/tests/inspector/indexeddb/database-data.html

        * bindings/js/SerializedScriptValue.cpp:
        (WebCore::SerializedScriptValue::deserializeForInspector):
        (WebCore):
        * bindings/js/SerializedScriptValue.h:
        (SerializedScriptValue):
        * bindings/v8/SerializedScriptValue.cpp:
        (WebCore::SerializedScriptValue::deserializeForInspector):
        (WebCore):
        * bindings/v8/SerializedScriptValue.h:
        (SerializedScriptValue):
        * inspector/InjectedScript.cpp:
        (WebCore::InjectedScript::wrapObject):
        (WebCore::InjectedScript::wrapSerializedObject):
        (WebCore):
        (WebCore::InjectedScript::canAccessInspectedWindow):
        * inspector/InjectedScript.h:
        (InjectedScript):
        * inspector/Inspector.json:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorIndexedDBAgent.cpp:
        (WebCore):
        (WebCore::InspectorIndexedDBAgent::InspectorIndexedDBAgent):
        (WebCore::assertFrame):
        (WebCore::assertDocument):
        (WebCore::InspectorIndexedDBAgent::requestData):
        * inspector/InspectorIndexedDBAgent.h:
        (WebCore):
        (WebCore::InspectorIndexedDBAgent::create):
        (InspectorIndexedDBAgent):
        * inspector/front-end/IndexedDBModel.js:
        (WebInspector.IndexedDBModel.idbKeyFromKey):
        (WebInspector.IndexedDBModel.keyFromIDBKey):
        (WebInspector.IndexedDBModel.keyRangeFromIDBKeyRange):
        (WebInspector.IndexedDBModel.prototype._loadDatabase):
        (WebInspector.IndexedDBModel.prototype.loadObjectStoreData):
        (WebInspector.IndexedDBModel.prototype.loadIndexData):
        (WebInspector.IndexedDBModel.Entry):
        (WebInspector.IndexedDBRequestManager):
        (WebInspector.IndexedDBRequestManager.prototype._requestData.innerCallback):
        (WebInspector.IndexedDBRequestManager.prototype._requestData):
        (WebInspector.IndexedDBRequestManager.prototype.requestObjectStoreData):
        (WebInspector.IndexedDBRequestManager.prototype._objectStoreDataLoaded):
        (WebInspector.IndexedDBRequestManager.prototype.requestIndexData):
        (WebInspector.IndexedDBRequestManager.prototype._indexDataLoaded):
        (WebInspector.IndexedDBRequestManager.prototype._frameDetached):
        (WebInspector.IndexedDBRequestManager.prototype._databaseRemoved):
        (WebInspector.IndexedDBRequestManager.prototype._reset):
        (WebInspector.IndexedDBRequestManager.DataRequest):
        (WebInspector.IndexedDBDispatcher.prototype.databaseLoaded):
        (WebInspector.IndexedDBDispatcher.prototype.objectStoreDataLoaded):
        (WebInspector.IndexedDBDispatcher.prototype.indexDataLoaded):

2012-02-15  Hajime Morrita  <morrita@chromium.org>

        REGRESSION(r107518): DeviceOrientationController doesn't remove registered DOMWindows
        https://bugs.webkit.org/show_bug.cgi?id=78683

        Reviewed by Kentaro Hara.
        
        A copy-n-paste disaster. This change fixed it by calling correct methods.

        No new tests. Needs browser side mocking for testing this.
        A Chromium automated test covers this.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::removeAllEventListeners):
        * page/Page.cpp:
        (WebCore::Page::provideSupplement):
        (WebCore::Page::requireSupplement):
        * page/Page.h: Fix typo.
        (Page):

2012-02-15  Roland Steiner  <rolandsteiner@chromium.org>

        Unreviewed, quick build fix for 107792

        * inspector/DOMEditor.cpp:
        (WebCore::DOMEditor::RemoveAttributeAction::redo):

2012-02-15  Tony Gentilcore  <tonyg@chromium.org>

        [chromium] Don't use increased FontCache size on Android
        https://bugs.webkit.org/show_bug.cgi?id=78656

        Reviewed by Adam Barth.

        The chromium port uses a larger font cache size because it increases
        performance on the intl1 and intl2 page cyclers. However, on Android
        devices where resources are more constrained, it isn't desireable to
        allow the FontCache to grow so big.

        No new tests because no testable difference in functionality.

        * platform/graphics/FontCache.cpp:
        (WebCore):

2012-02-15  Roland Steiner  <rolandsteiner@chromium.org>

        <style scoped>: Allow <style scoped> as a direct child of a ShadowRoot
        https://bugs.webkit.org/show_bug.cgi?id=77853

        Moved registration code from Element to Node. updated Internals and build files accordingly.
        Moved registration data members from ElementRareData to NodeRareData.
        Forward willRemove() from host element into shadow DOM tree.

        Reviewed by Dimitri Glazkov.

        Test: fast/css/style-scoped/registering-shadowroot.html

        * WebCore.exp.in:
        * dom/Element.cpp:
        (WebCore::Element::willRemove):
        * dom/Element.h:
        (Element):
        * dom/ElementRareData.h:
        (ElementRareData):
        (WebCore::ElementRareData::ElementRareData):
        * dom/Node.cpp:
        (WebCore):
        (WebCore::Node::hasScopedHTMLStyleChild):
        (WebCore::Node::numberOfScopedHTMLStyleChildren):
        (WebCore::Node::registerScopedHTMLStyleChild):
        (WebCore::Node::unregisterScopedHTMLStyleChild):
        * dom/Node.h:
        (Node):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        (NodeRareData):
        (WebCore::NodeRareData::registerScopedHTMLStyleChild):
        (WebCore::NodeRareData::unregisterScopedHTMLStyleChild):
        (WebCore::NodeRareData::hasScopedHTMLStyleChild):
        (WebCore::NodeRareData::numberOfScopedHTMLStyleChildren):
        * dom/ShadowRootList.cpp:
        (WebCore::ShadowRootList::willRemove):
        (WebCore):
        * dom/ShadowRootList.h:
        (ShadowRootList):
        * html/HTMLStyleElement.cpp:
        (WebCore::HTMLStyleElement::registerWithScopingNode):
        (WebCore::HTMLStyleElement::unregisterWithScopingNode):
        * testing/Internals.cpp:
        (WebCore::Internals::numberOfScopedHTMLStyleChildren):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2012-02-14  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: implement redo for DOM actions.
        https://bugs.webkit.org/show_bug.cgi?id=78601

        Reviewed by Yury Semikhatsky.

        * inspector/DOMEditor.cpp:
        (WebCore::DOMEditor::RemoveChildAction::perform):
        (WebCore::DOMEditor::RemoveChildAction::redo):
        (DOMEditor::RemoveChildAction):
        (WebCore::DOMEditor::InsertBeforeAction::redo):
        (DOMEditor::InsertBeforeAction):
        (WebCore::DOMEditor::RemoveAttributeAction::perform):
        (WebCore::DOMEditor::RemoveAttributeAction::redo):
        (DOMEditor::RemoveAttributeAction):
        (WebCore::DOMEditor::SetAttributeAction::perform):
        (WebCore::DOMEditor::SetAttributeAction::redo):
        (DOMEditor::SetAttributeAction):
        (WebCore::DOMEditor::SetOuterHTMLAction::redo):
        (DOMEditor::SetOuterHTMLAction):
        (WebCore::DOMEditor::ReplaceWholeTextAction::perform):
        (WebCore::DOMEditor::ReplaceWholeTextAction::redo):
        (DOMEditor::ReplaceWholeTextAction):
        (WebCore::DOMEditor::ReplaceChildNodeAction::perform):
        (WebCore::DOMEditor::ReplaceChildNodeAction::redo):
        (DOMEditor::ReplaceChildNodeAction):
        (WebCore::DOMEditor::SetNodeValueAction::perform):
        (WebCore::DOMEditor::SetNodeValueAction::redo):
        (DOMEditor::SetNodeValueAction):
        * inspector/Inspector.json:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::perform):
        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::undo):
        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::redo):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::perform):
        (InspectorCSSAgent::SetPropertyTextAction):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::undo):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::redo):
        (WebCore::InspectorCSSAgent::TogglePropertyAction::perform):
        (WebCore::InspectorCSSAgent::TogglePropertyAction::redo):
        (InspectorCSSAgent::TogglePropertyAction):
        (WebCore::InspectorCSSAgent::SetRuleSelectorAction::perform):
        (WebCore::InspectorCSSAgent::SetRuleSelectorAction::redo):
        (InspectorCSSAgent::SetRuleSelectorAction):
        (WebCore::InspectorCSSAgent::AddRuleAction::perform):
        (WebCore::InspectorCSSAgent::AddRuleAction::redo):
        (InspectorCSSAgent::AddRuleAction):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::setNodeValue):
        (WebCore::InspectorDOMAgent::redo):
        (WebCore):
        * inspector/InspectorDOMAgent.h:
        (InspectorDOMAgent):
        * inspector/InspectorHistory.cpp:
        (WebCore::InspectorHistory::InspectorHistory):
        (WebCore::InspectorHistory::perform):
        (WebCore::InspectorHistory::markUndoableState):
        (WebCore::InspectorHistory::undo):
        (WebCore::InspectorHistory::redo):
        (WebCore):
        * inspector/InspectorHistory.h:
        (Action):
        (InspectorHistory):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel):
        (WebInspector.CSSStyleModel.prototype._undoRedoRequested):
        (WebInspector.CSSStyleModel.prototype._undoRedoCompleted):
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMAgent.prototype.get undo):
        (WebInspector.DOMAgent.prototype.redo):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype.handleShortcut):

2012-02-15  Yuta Kitamura  <yutak@chromium.org>

        WebSocket: MessageEvent fired during send() on workers
        https://bugs.webkit.org/show_bug.cgi?id=76521

        Reviewed by David Levin.

        WebSocket's message event should not be invoked while a synchronous operation
        (send() and bufferedAmount) is in progress.

        Test: http/tests/websocket/tests/hybi/workers/no-onmessage-in-sync-op.html

        * websockets/ThreadableWebSocketChannelClientWrapper.cpp:
        Added #if ENABLE(WORKERS) because ThreadableWebSocketChannelClientWrapper is not used
        if Web Workers is not available.
        Changed access label because private members were declared as protected with no good reason.
        (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
        Receive ScriptExecutionContext so we can post a task that should be executed later.
        (WebCore::ThreadableWebSocketChannelClientWrapper::create):
        (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasksCallback):
        (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
        * websockets/ThreadableWebSocketChannelClientWrapper.h:
        * websockets/WorkerThreadableWebSocketChannel.cpp:
        (WebCore::WorkerThreadableWebSocketChannel::WorkerThreadableWebSocketChannel):

2012-02-15  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Texmap] Divide TextureMapperNode.cpp to 3 files.
        https://bugs.webkit.org/show_bug.cgi?id=76660

        Rename TextureMapperNode to TextureMapperLayer.

        Reviewed by Kenneth Rohde Christiansen.

        No new tests.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
        (WebCore::GraphicsLayerTextureMapper::notifyChange):
        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
        (WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay):
        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
        (WebCore::GraphicsLayerTextureMapper::setParent):
        (WebCore::GraphicsLayerTextureMapper::setChildren):
        (WebCore::GraphicsLayerTextureMapper::addChild):
        (WebCore::GraphicsLayerTextureMapper::addChildAtIndex):
        (WebCore::GraphicsLayerTextureMapper::addChildAbove):
        (WebCore::GraphicsLayerTextureMapper::addChildBelow):
        (WebCore::GraphicsLayerTextureMapper::replaceChild):
        (WebCore::GraphicsLayerTextureMapper::removeFromParent):
        (WebCore::GraphicsLayerTextureMapper::setMaskLayer):
        (WebCore::GraphicsLayerTextureMapper::setReplicatedByLayer):
        (WebCore::GraphicsLayerTextureMapper::setPosition):
        (WebCore::GraphicsLayerTextureMapper::setAnchorPoint):
        (WebCore::GraphicsLayerTextureMapper::setSize):
        (WebCore::GraphicsLayerTextureMapper::setTransform):
        (WebCore::GraphicsLayerTextureMapper::setChildrenTransform):
        (WebCore::GraphicsLayerTextureMapper::setPreserves3D):
        (WebCore::GraphicsLayerTextureMapper::setMasksToBounds):
        (WebCore::GraphicsLayerTextureMapper::setDrawsContent):
        (WebCore::GraphicsLayerTextureMapper::setContentsOpaque):
        (WebCore::GraphicsLayerTextureMapper::setBackfaceVisibility):
        (WebCore::GraphicsLayerTextureMapper::setOpacity):
        (WebCore::GraphicsLayerTextureMapper::setContentsRect):
        (WebCore::GraphicsLayerTextureMapper::setContentsToImage):
        (WebCore::GraphicsLayerTextureMapper::setContentsToMedia):
        (WebCore::GraphicsLayerTextureMapper::syncCompositingStateForThisLayerOnly):
        (WebCore::GraphicsLayerTextureMapper::syncCompositingState):
        (WebCore::GraphicsLayerTextureMapper::addAnimation):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (WebCore):
        (GraphicsLayerTextureMapper):
        (WebCore::GraphicsLayerTextureMapper::layer):
        * platform/graphics/texmap/TextureMapperLayer.cpp: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp.
        (WebCore):
        (WebCore::toTextureMapperLayer):
        (WebCore::TextureMapperLayer::rootLayer):
        (WebCore::TextureMapperLayer::setTransform):
        (WebCore::TextureMapperLayer::clearBackingStoresRecursive):
        (WebCore::TextureMapperLayer::computeTransformsRecursive):
        (WebCore::TextureMapperLayer::updateBackingStore):
        (WebCore::TextureMapperLayer::paint):
        (WebCore::TextureMapperLayer::paintSelf):
        (WebCore::TextureMapperLayer::compareGraphicsLayersZValue):
        (WebCore::TextureMapperLayer::sortByZOrder):
        (WebCore::TextureMapperLayer::paintSelfAndChildren):
        (WebCore::TextureMapperLayer::intermediateSurfaceRect):
        (WebCore::TextureMapperLayer::shouldPaintToIntermediateSurface):
        (WebCore::TextureMapperLayer::isVisible):
        (WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
        (WebCore::TextureMapperLayer::paintRecursive):
        (WebCore::TextureMapperLayer::~TextureMapperLayer):
        (WebCore::TextureMapperLayer::syncCompositingState):
        (WebCore::TextureMapperLayer::syncCompositingStateSelf):
        (WebCore::TextureMapperLayer::descendantsOrSelfHaveRunningAnimations):
        (WebCore::TextureMapperLayer::syncAnimations):
        (WebCore::TextureMapperLayer::syncAnimationsRecursively):
        * platform/graphics/texmap/TextureMapperLayer.h: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperNode.h.
        (WebCore):
        (TextureMapperPaintOptions):
        (WebCore::TextureMapperPaintOptions::TextureMapperPaintOptions):
        (TextureMapperLayer):
        (WebCore::TextureMapperLayer::TextureMapperLayer):
        (WebCore::TextureMapperLayer::size):
        (WebCore::TextureMapperLayer::setOpacity):
        (WebCore::TextureMapperLayer::setTextureMapper):
        (WebCore::TextureMapperLayer::setShouldUpdateBackingStoreFromLayer):
        (WebCore::TextureMapperLayer::setBackingStore):
        (WebCore::TextureMapperLayer::backingStore):
        (WebCore::TextureMapperLayer::texture):
        (WebCore::TextureMapperLayer::layerRect):
        (State):
        (WebCore::TextureMapperLayer::State::State):

2012-02-15  Hayato Ito  <hayato@chromium.org>

        ShadowRoot: Remove a public static factory function which doesn't have any callers.
        https://bugs.webkit.org/show_bug.cgi?id=78668

        Reviewed by Kent Tamura.

        No tests. No change in behavior.

        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::create):
        * dom/ShadowRoot.h:
        (ShadowRoot):

2012-02-14  Hao Zheng  <zhenghao@chromium.org>

        Cleanup pending transaction queue in Database.
        https://bugs.webkit.org/show_bug.cgi?id=75048

        Reviewed by David Levin.

        Each SQLTransaction has 3 SQLCallbackWrappers, and each of them
        holds a ref to WorkerContext. As a result, if the worker thread is
        stopped before all SQLTransactions are finished, the ASSERT of
        m_workerContext->hasOneRef() in WorkerThread::workerThread() would fail.

        No new tests.
        REGRESSION(r103429) fast/workers/storage/use-same-database-in-page-and-workers.html asserts

        * storage/Database.cpp:
        (WebCore::Database::close): Cleanup pending transaction queue in close().
        * storage/SQLCallbackWrapper.h:
        (WebCore::SQLCallbackWrapper::clear):
        (SafeReleaseTask): Make SafeReleaseTask a cleanup task, which is
        necessary because at the time of SafeReleaseTask is performed,
        WorkerRunLoop has been terminated and only runs cleanup tasks.
        (WebCore::SQLCallbackWrapper::SafeReleaseTask::create):
        (WebCore::SQLCallbackWrapper::SafeReleaseTask::performTask):
        (WebCore::SQLCallbackWrapper::SafeReleaseTask::isCleanupTask):
        (WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask):

2012-02-14  Antti Koivisto  <antti@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=78662
        CSSStyleSelector should not rely on parent rule pointer in StylePropertySet

        Reviewed by Andreas Kling.

        Pass the rule pointer down to the style applying so we don't need to rely on
        StylePropertySet having one.

        To make this easier the patch also refactors the matched properties vector to
        be part of MatchResult object instead of a member of CSSStyleSelector.
        
        Rename Declaration -> Properties.
        
        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::dispatchInvalidationCallbacks):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::CSSStyleSelector):
        (WebCore::CSSStyleSelector::sweepMatchedPropertiesCache):
        (WebCore::CSSStyleSelector::addMatchedProperties):
        (WebCore::CSSStyleSelector::sortAndTransferMatchedRules):
        (WebCore::CSSStyleSelector::matchScopedAuthorRules):
        (WebCore::CSSStyleSelector::matchAuthorRules):
        (WebCore::CSSStyleSelector::matchUserRules):
        (WebCore::CSSStyleSelector::matchUARules):
        (WebCore::CSSStyleSelector::collectMatchingRulesForList):
        (WebCore::CSSStyleSelector::matchAllRules):
        (WebCore):
        (WebCore::CSSStyleSelector::initForStyleResolve):
        (WebCore::CSSStyleSelector::matchesRuleSet):
        (WebCore::CSSStyleSelector::styleForElement):
        (WebCore::CSSStyleSelector::styleForKeyframe):
        (WebCore::CSSStyleSelector::pseudoStyleForElement):
        (WebCore::CSSStyleSelector::styleForPage):
        (WebCore::CSSStyleSelector::pseudoStyleRulesForElement):
        (WebCore::isInsideRegionRule):
        (WebCore::CSSStyleSelector::applyProperties):
        (WebCore::CSSStyleSelector::applyMatchedProperties):
        (WebCore::CSSStyleSelector::computeMatchedPropertiesHash):
        (WebCore::operator==):
        (WebCore::operator!=):
        (WebCore::CSSStyleSelector::findFromMatchedPropertiesCache):
        (WebCore::CSSStyleSelector::addToMatchedPropertiesCache):
        (WebCore::CSSStyleSelector::invalidateMatchedPropertiesCache):
        (WebCore::isCacheableInMatchedPropertiesCache):
        (WebCore::CSSStyleSelector::matchPageRules):
        * css/CSSStyleSelector.h:
        (CSSStyleSelector):
        (WebCore::CSSStyleSelector::addMatchedRule):
        (WebCore::CSSStyleSelector::MatchedProperties::MatchedProperties):
        (MatchedProperties):
        (MatchResult):
        (MatchedPropertiesCacheItem):

2012-02-14  Takashi Toyoshima  <toyoshim@chromium.org>

        WebSocketChannel minor refactoring for code manageability
        https://bugs.webkit.org/show_bug.cgi?id=78576

        Reviewed by Kent Tamura.

        Change the first argument type of WebSocketChannel
        from ScriptExecutionContext to Document.
        WebSocketChannel always assume this ScriptExecutionContext must
        inherit Document. Then, it results in many static cast.
        It isn't readable and dangerous against future code changes.

        * websockets/ThreadableWebSocketChannel.cpp: Pass the first argument for WebSocketChannel as Document.
        (WebCore::ThreadableWebSocketChannel::create):
        * websockets/WebSocketChannel.cpp: Replace all ScriptExecutionContext* m_context descriptions to Document* m_document.
        (WebCore::WebSocketChannel::WebSocketChannel):
        (WebCore::WebSocketChannel::connect):
        (WebCore::WebSocketChannel::fail):
        (WebCore::WebSocketChannel::disconnect):
        (WebCore::WebSocketChannel::didOpenSocketStream):
        (WebCore::WebSocketChannel::didCloseSocketStream):
        (WebCore::WebSocketChannel::didReceiveSocketStreamData):
        (WebCore::WebSocketChannel::didFailSocketStream):
        (WebCore::WebSocketChannel::processBuffer):
        (WebCore::WebSocketChannel::processOutgoingFrameQueue):
        * websockets/WebSocketChannel.h: Change the first argument for construction to Document and hold it as Document m_document.
        (WebCore):
        (WebCore::WebSocketChannel::create):
        (WebSocketChannel):
        * websockets/WorkerThreadableWebSocketChannel.cpp: Pass the first argument for WebSocketChannel as Document.
        (WebCore::WorkerThreadableWebSocketChannel::Peer::Peer):

2012-02-14  Noel Gordon  <noel.gordon@gmail.com>

        Unreviewed, rolling out r107774.
        http://trac.webkit.org/changeset/107774
        https://bugs.webkit.org/show_bug.cgi?id=78661

        Broke Chromium build

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureEvent):
        * platform/ScrollAnimator.cpp:
        (WebCore):
        (WebCore::ScrollAnimator::handleGestureEvent):
        * platform/ScrollAnimator.h:
        (ScrollAnimator):
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::wheelEvent):
        * platform/ScrollView.h:
        (ScrollView):
        * platform/ScrollableArea.cpp:
        (WebCore):
        (WebCore::ScrollableArea::handleGestureEvent):
        * platform/ScrollableArea.h:
        (ScrollableArea):

2012-02-14  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r107766.
        http://trac.webkit.org/changeset/107766
        https://bugs.webkit.org/show_bug.cgi?id=78665

        Breaks Chromium Win build (Requested by bashi1 on #webkit).

        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * websockets/WebSocketDeflater.cpp: Removed.
        * websockets/WebSocketDeflater.h: Removed.

2012-02-14  Anders Carlsson  <andersca@apple.com>

        Remove ScrollableArea::handleGestureEvent
        https://bugs.webkit.org/show_bug.cgi?id=78661

        Reviewed by Sam Weinig.

        ScrollableArea::handleGestureEvent ends up being a no-op so remove it and the related code. 

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureEvent):
        * platform/ScrollAnimator.cpp:
        * platform/ScrollAnimator.h:
        (ScrollAnimator):
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::wheelEvent):
        * platform/ScrollView.h:
        (ScrollView):
        * platform/ScrollableArea.cpp:
        * platform/ScrollableArea.h:
        (ScrollableArea):

2012-02-14  Kentaro Hara  <haraken@chromium.org>

        [JSC] Cache the number of non-custom constructor arguments
        https://bugs.webkit.org/show_bug.cgi?id=78195

        Reviewed by Darin Adler.

        If [ConstructorParameters=] is specified, JSC caches the number of constructor
        arguments for performance. However, at present, [ConstructorParameters=] is specified
        on a small part of constructors (It appears that people have forgotten to
        add [ConstructorParameters=]). Thus, for non-custom constructors, this patch modifies
        CodeGeneratorJS.pm so that it caches the number of constructor arguments automatically
        without [ConstructorParameters=] (CodeGeneratorJS.pm can know the number of arguments
        by the [Constructor=...] signature).

        Test: fast/js/constructor-length.html

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateConstructorDefinition):

2012-02-14  Mark Rowe  <mrowe@apple.com>

        <http://webkit.org/b/78658> platformUserPreferredLanguages is leaking all of the language codes

        Reviewed by Darin Adler.

        * platform/mac/Language.mm:
        (WebCore::httpStyleLanguageCode): Switch to using RetainPtr's for temporaries to make the ownership
        more explicit. Switch to returning a WTF::String so that the caller doesn't have to worry about
        ownership at all. Change the name to reflect the lack of transfer of ownership.
        (WebCore::platformUserPreferredLanguages):

2012-02-14  Kentaro Hara  <haraken@chromium.org>

        [Mac] PasteboardMac.mm build fails
        https://bugs.webkit.org/show_bug.cgi?id=78655

        Reviewed by Hajime Morita.

        Although the bots have been working fine, PasteboardMac.mm build fails
        in our local Mac environments due to an uninitialized variable:

            /Users/haraken/WebKit/Source/WebCore/platform/mac/PasteboardMac.mm:322: warning: 'string' may be used uninitialized in this function

        This patch initializes the 'string' to nil to fix the build failure.

        No tests. No change in behavior.

        * platform/mac/PasteboardMac.mm:
        (WebCore::Pasteboard::plainText):

2012-02-14  Kenichi Ishibashi  <bashi@chromium.org>

        [WebSocket] Add extension attribute support
        https://bugs.webkit.org/show_bug.cgi?id=78557

        Implement WebSocket "extensions" attribute that holds a list of
        extension the server accepted. No change in behavior at this time
        because we don't send any extension on handshake.

        Reviewed by Kent Tamura.

        No new tests. http/tests/websocket/tests/hybi/extensions.html checks the value of this attribute.

        * websockets/ThreadableWebSocketChannel.h: Add extensions().
        (ThreadableWebSocketChannel):
        * websockets/ThreadableWebSocketChannelClientWrapper.cpp:
        (WebCore::ThreadableWebSocketChannelClientWrapper::extensions): Added.
        (WebCore):
        (WebCore::ThreadableWebSocketChannelClientWrapper::setExtensions): Added.
        * websockets/ThreadableWebSocketChannelClientWrapper.h:
        (ThreadableWebSocketChannelClientWrapper):
        * websockets/WebSocket.cpp: Added m_extensions member variable.
        (WebCore::WebSocket::WebSocket):
        (WebCore::WebSocket::extensions): Returns m_extensions.
        * websockets/WebSocket.h:
        * websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::extensions): Added.
        (WebCore):
        * websockets/WebSocketChannel.h:
        (WebSocketChannel):
        * websockets/WebSocketExtensionDispatcher.cpp:
        (WebCore::WebSocketExtensionDispatcher::fail): Added.
        (WebCore::WebSocketExtensionDispatcher::processHeaderValue): Stores accepted extensions.
        (WebCore::WebSocketExtensionDispatcher::acceptedExtensions): Added.
        (WebCore):
        (WebCore::WebSocketExtensionDispatcher::acceptedExtensions): Added.
        * websockets/WebSocketExtensionDispatcher.h:
        (WebSocketExtensionDispatcher):
        * websockets/WebSocketHandshake.cpp:
        (WebCore::WebSocketHandshake::acceptedExtensions): Added.
        (WebCore):
        * websockets/WebSocketHandshake.h:
        * websockets/WorkerThreadableWebSocketChannel.cpp:
        (WebCore::WorkerThreadableWebSocketChannel::extensions): Added.
        (WebCore):
        (WebCore::workerContextDidConnect): Calls ThreadableWebSocketChannelClientWrapper::setExtensions().
        (WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect): Passes extensions as an argument.
        * websockets/WorkerThreadableWebSocketChannel.h:
        (WorkerThreadableWebSocketChannel):

2012-02-14  Kentaro Hara  <haraken@chromium.org>

        Rename [JSGenerateToJS] to [JSGenerateToJSObject]
        https://bugs.webkit.org/show_bug.cgi?id=78490

        Reviewed by Adam Barth.

        This patch renames [JSGenerateToJS] to [JSGenerateToJSObject],
        for naming consistency with [CustomToJSObject], [JSCustomToJSObject] and [V8CustomToJSObject].

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * dom/WebKitNamedFlow.idl:
        * fileapi/DirectoryEntry.idl:
        * fileapi/DirectoryEntrySync.idl:
        * fileapi/File.idl:
        * fileapi/FileEntry.idl:
        * fileapi/FileEntrySync.idl:
        * html/DOMFormData.idl:
        * html/DOMSettableTokenList.idl:
        * html/DOMURL.idl:
        * html/MediaController.idl:
        * mediastream/LocalMediaStream.idl:
        * webaudio/AudioBufferCallback.idl:
        * webaudio/AudioBufferSourceNode.idl:
        * webaudio/AudioDestinationNode.idl:
        * webaudio/AudioGain.idl:
        * webaudio/AudioGainNode.idl:
        * webaudio/AudioPannerNode.idl:
        * webaudio/AudioProcessingEvent.idl:
        * webaudio/BiquadFilterNode.idl:
        * webaudio/ConvolverNode.idl:
        * webaudio/DelayNode.idl:
        * webaudio/DynamicsCompressorNode.idl:
        * webaudio/HighPass2FilterNode.idl:
        * webaudio/JavaScriptAudioNode.idl:
        * webaudio/LowPass2FilterNode.idl:
        * webaudio/MediaElementAudioSourceNode.idl:
        * webaudio/OfflineAudioCompletionEvent.idl:
        * webaudio/RealtimeAnalyserNode.idl:
        * webaudio/WaveShaperNode.idl:
        * workers/SharedWorker.idl:
        * workers/Worker.idl:

2012-02-14  Kenichi Ishibashi  <bashi@chromium.org>

        [WebSocket] Add deflater/inflater classes
        https://bugs.webkit.org/show_bug.cgi?id=78449

        Add WebSocketDeflater/WebSocketInflater classes which wrap zlib
        functions. These classes are not used yet, but will be used for
        supporting WebSocket deflate-frame extension.

        Reviewed by Kent Tamura.

        No new tests except for chromium port. Behavior is unchanged.

        * GNUmakefile.list.am: Added.WebSocketDeflater.(cpp|h).
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * websockets/WebSocketDeflater.cpp: Added.
        (WebCore):
        (WebCore::WebSocketDeflater::create):
        (WebCore::WebSocketDeflater::WebSocketDeflater):
        (WebCore::WebSocketDeflater::initialize):
        (WebCore::WebSocketDeflater::~WebSocketDeflater):
        (WebCore::WebSocketDeflater::addBytes):
        (WebCore::WebSocketDeflater::finish):
        (WebCore::WebSocketDeflater::reset):
        (WebCore::WebSocketInflater::create):
        (WebCore::WebSocketInflater::WebSocketInflater):
        (WebCore::WebSocketInflater::initialize):
        (WebCore::WebSocketInflater::~WebSocketInflater):
        (WebCore::WebSocketInflater::addBytes):
        (WebCore::WebSocketInflater::finish):
        (WebCore::WebSocketInflater::reset):
        * websockets/WebSocketDeflater.h: Added.
        (WebCore):
        (WebSocketDeflater):
        (WebCore::WebSocketDeflater::data):
        (WebCore::WebSocketDeflater::size):
        (WebSocketInflater):
        (WebCore::WebSocketInflater::data):
        (WebCore::WebSocketInflater::size):

2012-02-14  Dana Jansens  <danakj@chromium.org>

        [chromium] Compare filters on impl thread when setting them, and test setting in unit tests
        https://bugs.webkit.org/show_bug.cgi?id=78643

        Reviewed by James Robinson.

        Add setFilters() coverage to CCLayerImplTest.cpp

        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
        (WebCore::CCLayerImpl::setFilters):

2012-02-14  Ryosuke Niwa  <rniwa@webkit.org>

        Crash in deleteInsignificantText
        https://bugs.webkit.org/show_bug.cgi?id=78567

        Reviewed by Eric Seidel.

        Fix the crash. Also update layout at the beginning of each call to deleteInsignificantText
        since the previous call may have mutated the DOM.

        Test: editing/inserting/delete-insignificant-text-crash.html

        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::deleteInsignificantText):

2012-02-14  Levi Weintraub  <leviw@chromium.org>

        Prepare RenderLayerBacking and RenderLayerCompositor for subpixel layout
        https://bugs.webkit.org/show_bug.cgi?id=78630

        Reviewed by Simon Fraser.

        In our transition to subpixel layout in the render tree, we continue to pass RenderLayerBacking
        and RenderLayerCompositor integer (pixel) sizes and positions. This patch moves nearly all
        methods and members on these two classes back to integers, and applies pixel snapping logic to
        LayoutUnits pulled in.

        No new tests. No change in behavior.

        * rendering/RenderBox.h:
        (WebCore::RenderBox::pixelSnappedLayoutOverflowRect): Convenience function for getting pixel
        snapped overflow bounds.
        * rendering/RenderLayerBacking.cpp:
        (WebCore):
        (WebCore::RenderLayerBacking::updateCompositedBounds): Switch to integers and pixel snapping the
        clipping bounds.
        (WebCore::clipBox): Returns a pixel snapped rect.
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Using pixelSnappedLayerCoords. Removing
        pixelSnappedIntRect calls to clipBox since this is now an IntRect.
        (WebCore::RenderLayerBacking::computeTransformOrigin): Switching to operate on a pixel snapped rect.
        (WebCore::RenderLayerBacking::computePerspectiveOrigin): Ditto.
        (WebCore::RenderLayerBacking::contentOffsetInCompostingLayer): Returns a size based on m_compositingBounds,
        which is now an IntSize.
        (WebCore::RenderLayerBacking::contentsBox): Switching to use pixel snapped values from the render tree.
        (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect): This now takes in and outputs integers.
        (WebCore::RenderLayerBacking::paintIntoLayer): Uses a pixel snapped rect for the dirty rect.
        (WebCore::paintScrollbar): Scrollbars are Widgets & painted natively, so they should use integers.
        (WebCore::RenderLayerBacking::paintContents): We now properly take in an integer clip rect, as it's
        used for the scrollbars. 
        (WebCore::RenderLayerBacking::startAnimation): Using pixel snapped values for animations and transitions.
        (WebCore::RenderLayerBacking::startTransition): Ditto.
        (WebCore::RenderLayerBacking::compositedBounds): Composited bounds are now properly stored as integers.
        (WebCore::RenderLayerBacking::setCompositedBounds): Ditto.
        * rendering/RenderLayerBacking.h:
        (RenderLayerBacking):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::calculateCompositedBounds): Composited bounds are pixel snapped, but
        we use LayoutUnits up until we snap and return.
        (WebCore::RenderLayerCompositor::addToOverlapMap): Overlap mapping uses our integer positions. Switching
        it back to operating on them.
        (WebCore::RenderLayerCompositor::addToOverlapMapRecursive): Ditto.
        (WebCore::RenderLayerCompositor::overlapsCompositedLayers): Ditto.
        (WebCore::RenderLayerCompositor::computeCompositingRequirements): Using integers.
        (WebCore::RenderLayerCompositor::frameViewDidChangeLocation): FrameViews are on integer bounds. We now
        properly use these as integers.
        (WebCore::RenderLayerCompositor::frameViewDidScroll): Ditto.
        (WebCore::RenderLayerCompositor::recursiveRepaintLayerRect): Switching to use integers and
        pixelSnappedLayerCoords.
        (WebCore::RenderLayerCompositor::repaintCompositedLayersAbsoluteRect): Ditto.
        (WebCore::RenderLayerCompositor::updateRootLayerPosition): Using integer positions, which are what
        the apis used already returned.
        (WebCore::RenderLayerCompositor::requiresCompositingForPlugin): Using pixel snapped values.
        (WebCore::RenderLayerCompositor::requiresCompositingForFrame): Ditto.
        (WebCore::paintScrollbar): Scrollbars should always use integers.
        (WebCore::RenderLayerCompositor::paintContents): Switching to use an integer clip rect.
        (WebCore::RenderLayerCompositor::ensureRootLayer): Using values from new pixelSnappedLayoutOverflowRect
        method on RenderBox to ensure we're using values that are pixel snapped to the proper location.
        (WebCore::RenderLayerCompositor::destroyRootLayer): Properly calling scrollbar invalidation methods
        with integers.
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor):

2012-02-14  Anders Carlsson  <andersca@apple.com>

        Swipe gestures don't work if main frame has a horizontal scrollbar
        https://bugs.webkit.org/show_bug.cgi?id=78650
        <rdar://problem/10864993>

        Reviewed by Sam Weinig.

        Change ScrollingTree::tryToHandleWheelEvent so we can indicate that an event was
        processed by the scrolling tree but that we should indicate back to WebKit that it wasn't handled.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::ScrollingTree):
        Initialize new member variables.

        (WebCore::ScrollingTree::tryToHandleWheelEvent):
        If the wheel event will start a swipe gesture, return DidNotHandleEvent.

        (WebCore::ScrollingTree::updateBackForwardState):
        This can now be called from any thread, so use a mutex.

        (WebCore::ScrollingTree::setMainFramePinState):
        New function that will set the current main frame pin state.

        (WebCore::ScrollingTree::canGoBack):
        (WebCore::ScrollingTree::canGoForward):
        Put locks around these.

        (WebCore::ScrollingTree::willWheelEventStartSwipeGesture):
        Helper function that returns whether the given wheel event will start a swipe gesture
        because the main frame is pinned to the left/right and we can go back/forward.

        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
        (WebCore::ScrollingTreeNodeMac::update):
        Call updateMainFramePinState if the frame geometry changes.

        (WebCore::ScrollingTreeNodeMac::setScrollPosition):
        Call updateMainFramePinState.

        (WebCore::ScrollingTreeNodeMac::updateMainFramePinState):
        Compute the main frame pin state and set it on the scrolling tree.

2012-02-14  Brian Weinstein  <bweinstein@apple.com>

        Web Inspector: Add the ability to show the resources panel on launch
        https://bugs.webkit.org/show_bug.cgi?id=78641

        Reviewed by Timothy Hatcher.

        * WebCore.exp.in: Add a new function to be exported.
        * inspector/InspectorFrontendClientLocal.cpp:
        (WebCore::InspectorFrontendClientLocal::showResources): Call showResources on load.
        * inspector/InspectorFrontendClientLocal.h:
        (InspectorFrontendClientLocal):
        * inspector/front-end/InspectorFrontendAPI.js:
        (InspectorFrontendAPI.showResources): Show the resources panel.

2012-02-14  Enrica Casucci  <enrica@apple.com>

        REGRESSION (r107568-r107627): Crash when copying in WebCore::SharedBuffer::hasPlatformData().
        https://bugs.webkit.org/show_bug.cgi?id=78577

        Reviewed by Dan Bernstein.

        * platform/mac/PlatformPasteboardMac.mm:
        (WebCore::PlatformPasteboard::setBufferForType): Missing null check when
        setting data to the NSPasteboard.

2012-02-14  Ryosuke Niwa  <rniwa@webkit.org>

        Crash in WebCore::SVGElement::removedFromDocument
        https://bugs.webkit.org/show_bug.cgi?id=77270

        Reviewed by Adam Barth.

        Add a protector before calling NodeRemovalDispatcher::dispatch since
        NodeRemovalDispatcher::dispatch may remove the last RefPtr to this node.

        Test: fast/dom/Range/surround-contents-font-face-crash.svg

        * dom/ContainerNodeAlgorithms.h:
        (WebCore::Private::addChildNodesToDeletionQueue):

2012-02-14  Matt Lilek  <mrl@apple.com>

        Don't ENABLE_DASHBOARD_SUPPORT unconditionally on all Mac platforms
        https://bugs.webkit.org/show_bug.cgi?id=78629

        Reviewed by David Kilzer.

        * Configurations/FeatureDefines.xcconfig:

2012-02-14  Andreas Kling  <awesomekling@apple.com>

        Avoid full style recalc when presentation attributes change.
        <http://webkit.org/b/78636>

        Reviewed by Antti Koivisto.

        Use setNeedsStyleRecalc(InlineStyleChange) when a presentation attribute changes
        to reduce the amount of work done in recalcStyle().

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged):

2012-02-14  Ramya Chandrasekaran  <cramya@google.com>

        Last character display for passwords in Android.
        https://bugs.webkit.org/show_bug.cgi?id=78532

        Reviewed by Adam Barth.

        * page/Settings.cpp:
        (WebCore::Settings::Settings):

2012-02-14  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Invalid dates should not be valid keys
        https://bugs.webkit.org/show_bug.cgi?id=78622

        Reviewed by Tony Chang.

        Tests: storage/indexeddb/invalid-keys.html
               storage/indexeddb/factory-cmp.html

        * bindings/v8/IDBBindingUtilities.cpp: Special case for NaN Dates.
        (WebCore::createIDBKeyFromValue):

2012-02-14  Ken Buchanan  <kenrb@chromium.org>

        Crash from line break iterators in counter content
        https://bugs.webkit.org/show_bug.cgi?id=72977

        Reviewed by David Hyatt.

        Calculating the width of counter text can sometimes cause the
        underlying text buffer to change. This patch causes the iterator
        to reset appropriately when this happens.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::nextLineBreak):

2012-02-14  Levi Weintraub  <leviw@chromium.org>

        Update usage of LayoutUnits in RenderLayer
        https://bugs.webkit.org/show_bug.cgi?id=78511

        Reviewed by Simon Fraser.

        Updating RenderLayer to properly use LayoutUnits. See descriptions below for the rationale behind all
        the changes. Also adding a roundedIntSize method that takes a LayoutSize.

        No new tests. No change in behavior.

        * rendering/LayoutTypes.h:
        (WebCore::roundedIntSize): Inline method that currently does nothing, but will round a LayoutSize
        to an IntSize.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPositions): Switching repaint and outline boxes to LayoutRects, as
        it's important to keep the precision of these rects until handing off to the embedder (in FrameView).
        (WebCore::RenderLayer::computeRepaintRects): Repaint rects should be preserved in subpixel units until
        being passed to the embedding layer. This prevents needless repaints.
        (WebCore::RenderLayer::convertToPixelSnappedLayerCoords): Convenience function to return pixel snapped rects
        (WebCore):
        (WebCore::RenderLayer::convertToLayerCoords): Fixing a style flaw.
        (WebCore::RenderLayer::scrollRectToVisible): Pixel snapping the rect when handing off to the embedder.
        (WebCore::RenderLayer::maximumScrollPosition): Scroll offsets are rounded.
        (WebCore::RenderLayer::scrollCornerRect): Scrollbars are drawn natively and should be positioned on pixel
        boundaries.
        (WebCore::RenderLayer::scrollCornerAndResizerRect): Resize corner doesn't influence the size/position of
        render objects. It is only painted and hit tested. Therefor it should use integers.
        (WebCore::RenderLayer::offsetFromResizeCorner): Ditto.
        (WebCore::RenderLayer::positionOverflowControls): Overflow controls are drawn natively and should be
        positioned on integer boundaries.
        (WebCore::RenderLayer::paintOverflowControls): Ditto.
        (WebCore::RenderLayer::paintScrollCorner): Ditto.
        (WebCore::RenderLayer::drawPlatformResizerImage): Ditto.
        (WebCore::RenderLayer::paintResizer): Ditto.
        (WebCore::RenderLayer::hitTestOverflowControls): Hit testing & overflow controls both use integers.
        (WebCore::RenderLayer::clipToRect): Clipping to actual painted (pixel snapped) layer bounds in the
        graphics context.
        (WebCore::RenderLayer::paintLayerContents): Calling paintOverflowControls at pixel bounds.
        (WebCore::RenderLayer::hitTest): Intersecting the hit test area with pixel snapped boundaries.
        (WebCore::RenderLayer::setBackingNeedsRepaintInRect): Sending pixelSnapped rects to the backing
        store, which only cares about pixels, and hence integers.
        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::scrolledContentOffset): RenderLayer's scroll offsets are used in platform
        code, so we need to return them as integers. Rounding the scroll overflow before adding it to the
        scroll offset, which was already stored in integers.
        (RenderLayer):

2012-02-14  Abhishek Arya  <inferno@chromium.org>

        Crash in NavigationScheduler::schedule.
        https://bugs.webkit.org/show_bug.cgi?id=78297

        Reviewed by Adam Barth.

        Protect frame pointer and navigation scheduler when we stop the
        load (when redirect is scheduled during a load). Also, dont fire
        the navigation scheduler timer when we know that frameloader is
        going away.

        Test: http/tests/navigation/navigation-redirect-schedule-crash.html

        * loader/NavigationScheduler.cpp:
        (WebCore::NavigationScheduler::schedule):

2012-02-14  Alexis Menard  <alexis.menard@openbossa.org>

        font shorthand with inherit keyword incorrectly parsed and rendered
        https://bugs.webkit.org/show_bug.cgi?id=20181

        Reviewed by Tony Chang.

        As stated in http://www.w3.org/TR/CSS21/changes.html#q142
        if the inherit (and also by extension initial) is encountered in the
        middle of the shorthand then the property becomes invalid.

        Test: fast/css/font-shorthand-mix-inherit.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseFont):
        (WebCore::CSSParser::parseFontFamily):

2012-02-14  Abhishek Arya  <inferno@chromium.org>

        Crash due to incorrect firing of mutation event during class attribute parsing.
        https://bugs.webkit.org/show_bug.cgi?id=78537

        Reviewed by Ryosuke Niwa.

        Test: fast/dom/class-attr-change-double-mutation-fire.html

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::classAttributeChanged):

2012-02-14  Mike Lawther  <mikelawther@chromium.org>

        CSS3 calc: add isZero implementations to catch divide by zero
        https://bugs.webkit.org/show_bug.cgi?id=78603

        Reviewed by Ojan Vafai.

        * css/CSSCalculationValue.cpp:
        (WebCore::CSSCalcPrimitiveValue::isZero):
        (CSSCalcPrimitiveValue):
        (WebCore::CSSCalcBinaryOperation::isZero):
        (CSSCalcBinaryOperation):
        * css/CSSCalculationValue.h:
        (CSSCalcExpressionNode):

2012-02-12  Timothy Hatcher  <timothy@apple.com>

        Don't include CachedResources that haven't downloaded when populating the Web Inspector on load.

        https://webkit.org/b/78447
        rdar://problem/10843542

        Reviewed by Brian Weinstein.

        Test: inspector/protocol/page-agent.html

        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::cachedResourcesForFrame): Skip CachedFonts and CachedImages that
        return true for stillNeedsLoad.
        * loader/cache/CachedFont.h:
        (WebCore::CachedFont::stillNeedsLoad): Added.

2012-02-12  Timothy Hatcher  <timothy@apple.com>

        Web Inspector: include failed and canceled in FrameResourceTree.

        https://webkit.org/b/78445

        Reviewed by Pavel Feldman.

        Test: inspector/protocol/page-agent.html

        * WebCore.xcodeproj/project.pbxproj: Added Inspector.json, Inspector-0.1.json and Inspector-1.0.json
        for quick access and easy editing.
        * inspector/Inspector.json: Added failed and canceled as optional properties to the object for resources in FrameResourceTree.
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::buildObjectForFrameTree): Set those properties.

2012-02-14  Csaba Osztrogonác  <ossy@webkit.org>

        Typo fix after r107707.

        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::updateBackingStore):

2012-02-14  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [refactoring] extract TimelineOverviewWindow from TimelineOverviewPanel
        https://bugs.webkit.org/show_bug.cgi?id=78599

        Reviewed by Pavel Feldman.

        * inspector/front-end/TimelineOverviewPane.js:
        (WebInspector.TimelineOverviewPane):
        (WebInspector.TimelineOverviewPane.prototype.reset):
        (WebInspector.TimelineOverviewPane.prototype.scrollWindow):
        (WebInspector.TimelineOverviewWindow):
        (WebInspector.TimelineOverviewWindow.prototype.reset):
        (WebInspector.TimelineOverviewWindow.prototype.scrollWindow):
        (WebInspector.TimelineOverviewWindow.prototype._windowResizeDragging):
        (WebInspector.TimelineOverviewWindow.prototype._dragWindow):
        (WebInspector.TimelineOverviewWindow.prototype._windowSelectorDragging):
        (WebInspector.TimelineOverviewWindow.prototype._endWindowSelectorDragging):
        (WebInspector.TimelineOverviewWindow.prototype._windowDragging):
        (WebInspector.TimelineOverviewWindow.prototype._resizeWindowRight):
        (WebInspector.TimelineOverviewWindow.prototype._resizeWindowMaximum):
        (WebInspector.TimelineOverviewWindow.prototype._setWindowPosition):
        (WebInspector.TimelineOverviewWindow.prototype._endWindowDragging):
        (WebInspector.TimelinePanel.WindowSelector):

2012-02-14  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Make ScriptsNavigator default file selector.
        https://bugs.webkit.org/show_bug.cgi?id=78349

        Reviewed by Pavel Feldman.

        Moved ScriptsNavigator out of experiments.
        Introduced new setting "useScriptsNavigator" with true as default value.
        Updated scripts panel tests related to file selector.

        Tests: inspector/debugger/scripts-combobox-file-selector-history.html
               inspector/debugger/scripts-file-selector.html

        * English.lproj/localizedStrings.js:
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype.uiSourceCodes):
        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.ScriptsNavigator.prototype._removeUISourceCode):
        (WebInspector.ScriptsNavigator.prototype._showScriptFoldersSettingChanged):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
        (WebInspector.ScriptsPanel.prototype._addUISourceCode):
        (WebInspector.ScriptsPanel.prototype._updateExecutionLine):
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsScreen):

2012-02-14  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Qt][Texmap] Refactor backing-store code in TextureMapper
        https://bugs.webkit.org/show_bug.cgi?id=78305

        Instead of dealing with tiling inside of TextureMapperNode, we now deal with that in a new
        TextureMapperBackingStore class. Since the class is abstract, WebKit2 can overload it to
        support remotely-managed tiles.
        The backing-store for directly composited images is handled separately, in a new class
        TextureMapperCompositedImage. The TextureMapper implementation decides the dimension of
        the tiles, for example 2000 in the case of OpenGL.
        Also, directly composited content is now handled correctly, by painting it after the regular
        content and not as part of the same texture.

        To make this work, the functions in TextureMapperPlatformLayers had to become non-const,
        thus the changes to that file and GraphicsContext3DQt.

        Reviewed by Kenneth Rohde Christiansen.

        No new functionality, no new tests.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * platform/graphics/opengl/TextureMapperGL.h:
        (WebCore::TextureMapperGL::maxTextureDimension):
        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (GraphicsContext3DPrivate):
        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
        (WebCore::GraphicsLayerTextureMapper::didSynchronize):
        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
        (WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay):
        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
        (WebCore::GraphicsLayerTextureMapper::addChildBelow):
        (WebCore):
        (WebCore::GraphicsLayerTextureMapper::getContentsLayer):
        (WebCore::GraphicsLayerTextureMapper::setContentsToImage):
        (WebCore::GraphicsLayerTextureMapper::setContentsToMedia):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (GraphicsLayerTextureMapper):
        (WebCore::GraphicsLayerTextureMapper::platformLayer):
        (WebCore::GraphicsLayerTextureMapper::needsDisplay):
        (WebCore::GraphicsLayerTextureMapper::needsDisplayRect):
        * platform/graphics/texmap/TextureMapper.cpp:
        * platform/graphics/texmap/TextureMapper.h:
        (WebCore::TextureMapper::maxTextureDimension):
        (TextureMapper):
        * platform/graphics/texmap/TextureMapperBackingStore.cpp: Added.
        * platform/graphics/texmap/TextureMapperBackingStore.h: Added.
        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::backingStore):
        (WebCore::TextureMapperNode::updateBackingStore):
        (WebCore::TextureMapperNode::paint):
        (WebCore::TextureMapperNode::paintSelf):
        (WebCore::TextureMapperNode::intermediateSurfaceRect):
        (WebCore::TextureMapperNode::paintRecursive):
        (WebCore::TextureMapperNode::syncCompositingStateSelf):
        (WebCore::TextureMapperNode::syncCompositingState):
        * platform/graphics/texmap/TextureMapperNode.h:
        (TextureMapperPaintOptions):
        (WebCore::TextureMapperPaintOptions::TextureMapperPaintOptions):
        (WebCore::TextureMapperNode::TextureMapperNode):
        (TextureMapperNode):
        (WebCore::TextureMapperNode::setBackingStore):
        (WebCore::TextureMapperNode::texture):
        (WebCore::TextureMapperNode::layerRect):
        (WebCore::TextureMapperNode::createBackingStore):
        (State):
        (WebCore::TextureMapperNode::State::State):
        * platform/graphics/texmap/TextureMapperPlatformLayer.h:
        (TextureMapperPlatformLayer):
        (WebCore::TextureMapperPlatformLayer::swapBuffers):

2012-02-14  Shinya Kawanaka  <shinyak@google.com>

        Use youngestShadowRoot and oldestShadowRoot instead of Element::shadowRoot().
        https://bugs.webkit.org/show_bug.cgi?id=78455

        Reviewed by Hajime Morita.

        Element::shadowRoot() was used for these 3 purposes.
        1. checks a shadow root exists.
        2. gets author shadow root.
        3. gets user agent shadow root.

        We have to distinguish them when implementing multiple shadow subtrees.

        Calling for (1), (2), and (3) are convered to hasShadowRoot(),
        ShadowRootList()->youngestShadowRoot(), and ShadowRootList()->oldestShadowRoot() respectively.

        No new tests, no change in behavior.

        * WebCore.exp.in:
        * dom/Document.cpp:
        (WebCore::Document::buildAccessKeyMap):
        * dom/Element.cpp:
        (WebCore::Element::insertedIntoDocument):
        (WebCore::Element::removedFromDocument):
        (WebCore::Element::insertedIntoTree):
        (WebCore::Element::removedFromTree):
        (WebCore::Element::attach):
        (WebCore::Element::detach):
        (WebCore::Element::recalcStyle):
        (WebCore::Element::ensureShadowRoot):
        (WebCore::Element::childrenChanged):
        (WebCore::Element::focus):
        * dom/Element.h:
        (Element):
        * dom/EventDispatcher.cpp:
        (WebCore::isShadowHost):
        * dom/Node.cpp:
        (WebCore::shadowRoot):
        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::NodeRenderingContext):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::create):
        * dom/ShadowRootList.cpp:
        (WebCore::ShadowRootList::insertedIntoDocument):
        (WebCore):
        (WebCore::ShadowRootList::removedFromDocument):
        (WebCore::ShadowRootList::insertedIntoTree):
        (WebCore::ShadowRootList::removedFromTree):
        (WebCore::ShadowRootList::hostChildrenChanged):
        (WebCore::ShadowRootList::attach):
        (WebCore::ShadowRootList::detach):
        * dom/ShadowRootList.h:
        (ShadowRootList):
        * dom/TreeScopeAdopter.cpp:
        (WebCore::shadowRootFor):
        * html/FileInputType.cpp:
        (WebCore::FileInputType::createShadowSubtree):
        (WebCore::FileInputType::multipleAttributeChanged):
        * html/HTMLDetailsElement.cpp:
        (WebCore::HTMLDetailsElement::createShadowSubtree):
        (WebCore::HTMLDetailsElement::findMainSummary):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::createShadowSubtree):
        * html/HTMLKeygenElement.cpp:
        (WebCore::HTMLKeygenElement::HTMLKeygenElement):
        (WebCore::HTMLKeygenElement::shadowSelect):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaControls):
        (WebCore::HTMLMediaElement::hasMediaControls):
        * html/HTMLMeterElement.cpp:
        (WebCore::HTMLMeterElement::createShadowSubtree):
        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::createShadowSubtree):
        * html/HTMLSummaryElement.cpp:
        (WebCore::HTMLSummaryElement::createShadowSubtree):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::createShadowSubtree):
        (WebCore::HTMLTextAreaElement::innerTextElement):
        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
        * html/InputType.cpp:
        (WebCore::InputType::destroyShadowSubtree):
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::handleMouseDownEvent):
        (WebCore::RangeInputType::createShadowSubtree):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::createShadowSubtree):
        (WebCore::TextFieldInputType::updatePlaceholderText):
        * html/ValidationMessage.cpp:
        (WebCore::ValidationMessage::deleteBubbleTree):
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::sliderThumbElementOf):
        (WebCore::RenderSliderContainer::layout):
        (WebCore::trackLimiterElementOf):
        * page/FocusController.cpp:
        (WebCore::shadowRoot):
        * rendering/RenderFileUploadControl.cpp:
        (WebCore::RenderFileUploadControl::uploadButton):
        * svg/SVGTRefElement.cpp:
        (WebCore::SVGTRefElement::updateReferencedText):
        * testing/Internals.cpp:
        (WebCore::Internals::ensureShadowRoot):
        (WebCore::Internals::shadowRoot):
        (WebCore):
        (WebCore::Internals::youngestShadowRoot):
        (WebCore::Internals::oldestShadowRoot):
        * testing/Internals.h:
        (Internals):
        * testing/Internals.idl:

2012-02-14  Alexander Pavlov  <apavlov@chromium.org>

        Elements panel needs to be able to preview images
        https://bugs.webkit.org/show_bug.cgi?id=21570

        Reviewed by Pavel Feldman.

        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel):
        (WebInspector.ElementsPanel.prototype.willHide):
        (WebInspector.ElementsPanel.prototype._getPopoverAnchor):
        (WebInspector.ElementsPanel.prototype._loadDimensionsForNode.resolvedNode.dimensions):
        (WebInspector.ElementsPanel.prototype._loadDimensionsForNode.resolvedNode):
        (WebInspector.ElementsPanel.prototype._loadDimensionsForNode):
        (WebInspector.ElementsPanel.prototype._showPopover.dimensionsCallback):
        (WebInspector.ElementsPanel.prototype._showPopover.showPopover):
        (WebInspector.ElementsPanel.prototype._showPopover.buildPopoverContents):
        (WebInspector.ElementsPanel.prototype._showPopover):
        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeOutline.prototype._onmousemove):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertyTreeElement.prototype.updateTitle.get g):
        (WebInspector.StylePropertyTreeElement.prototype.updateTitle):
        * inspector/front-end/elementsPanel.css:
        (.image-preview-container):
        (.image-preview-container img):

2012-02-14  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: List expansion arrows is pointing down even
        when the list of eventListeners are hidden in the Elements tab
        https://bugs.webkit.org/show_bug.cgi?id=78360

        Reviewed by Timothy Hatcher.

        * inspector/front-end/elementsPanel.css:
        (.section .event-bar .header):
        (.section .event-bars .event-bar .header .title):
        (.section .event-bar .header .subtitle):
        (.section .event-bar .header::before):
        (.section .event-bar.expanded .header::before):

2012-02-14  Hayato Ito  <hayato@chromium.org>

        Make ShadowRoot.nodeType return DOCUMENT_FRAGMENT_NODE.
        https://bugs.webkit.org/show_bug.cgi?id=77514

        Reviewed by Dimitri Glazkov.

        NodeType.SHADOW_ROOT_NODE type is finally gone.

        * bindings/js/JSNodeCustom.cpp:
        (WebCore::createWrapperInline):
        * bindings/objc/DOM.mm:
        (kitClass):
        * bindings/v8/custom/V8NodeCustom.cpp:
        (WebCore::toV8Slow):
        * dom/ContainerNode.cpp:
        (WebCore::collectTargetNodes):
        (WebCore::ContainerNode::replaceChild):
        * dom/Document.cpp:
        (WebCore::Document::importNode):
        (WebCore::Document::childTypeAllowed):
        (WebCore::Document::canReplaceChild):
        * dom/Node.cpp:
        (WebCore::Node::dumpStatistics):
        (WebCore::Node::isDefaultNamespace):
        (WebCore::Node::lookupPrefix):
        (WebCore::Node::lookupNamespaceURI):
        (WebCore::appendTextContent):
        (WebCore::Node::setTextContent):
        * dom/Node.h:
        * dom/Range.cpp:
        (WebCore::lengthOfContentsInNode):
        (WebCore::Range::processContentsBetweenOffsets):
        (WebCore::Range::insertNode):
        (WebCore::Range::checkNodeWOffset):
        (WebCore::Range::checkNodeBA):
        (WebCore::Range::selectNode):
        (WebCore::Range::selectNodeContents):
        (WebCore::Range::surroundContents):
        * dom/ShadowRoot.cpp:
        * dom/ShadowRoot.h:
        (ShadowRoot):
        (WebCore::toShadowRoot):
        * editing/FrameSelection.cpp:
        (WebCore::nodeIsDetachedFromDocument):
        (WebCore):
        (WebCore::FrameSelection::textWillBeReplaced):
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::appendStartMarkup):
        * html/parser/HTMLElementStack.cpp:
        (WebCore::HTMLNames::isRootNode):
        (WebCore::HTMLElementStack::pushRootNode):
        * html/parser/HTMLElementStack.h:
        (WebCore::isInHTMLNamespace):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
        (WebCore::InspectorDOMAgent::buildObjectForNode):
        * xml/XPathUtil.cpp:
        (WebCore::XPath::isValidContextNode):

2012-02-14  Andreas Kling  <awesomekling@apple.com>

        StylePropertySet: Try to find a CSSValuePool for identifier values.
        <http://webkit.org/b/78590>

        Reviewed by Antti Koivisto.

        For StylePropertySets with a parent element (inline and attribute style),
        grab at the parentElement()->document() to locate a CSSValuePool.
        This code will change soon in the CSSOM refactoring and moreso once we
        figure out how to have a global CSSValuePool, but I'm hoping it will buy
        us some perf back in the meantime.

        * css/StylePropertySet.cpp:
        (WebCore::StylePropertySet::setProperty):

2012-02-14  Nikolas Zimmermann  <nzimmermann@rim.com>

        Convert svg/animations to use SMIL methods for driving the timeline
        https://bugs.webkit.org/show_bug.cgi?id=78422

        Reviewed by Hajime Morita.

        Fix last-minute typo in clearTimesWithDynamicOrigins, leading to assertions browsing the W3C SVG animation tests.
        Covered by existing tests in svg/animations.

        * svg/SVGAnimationElement.cpp: Remove unused endedActiveInterval.
        * svg/SVGAnimationElement.h: Ditto.
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::clearTimesWithDynamicOrigins): Fix order of walking the times list.
        (WebCore::SVGSMILElement::reset): Move calls to clearTimesWithDynamicOrigins into endedActiveInterval.
        (WebCore::SVGSMILElement::endedActiveInterval):
        * svg/animation/SVGSMILElement.h:
        (SVGSMILElement): Devirtualize endedActiveInterval.

2012-02-14  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r107661.
        http://trac.webkit.org/changeset/107661
        https://bugs.webkit.org/show_bug.cgi?id=78591

        crash on lion/qt bots (Requested by hayato on #webkit).

        * bindings/js/JSNodeCustom.cpp:
        (WebCore::createWrapperInline):
        * bindings/objc/DOM.mm:
        (kitClass):
        * bindings/v8/custom/V8NodeCustom.cpp:
        (WebCore::toV8Slow):
        * dom/ContainerNode.cpp:
        (WebCore::collectTargetNodes):
        (WebCore::ContainerNode::replaceChild):
        * dom/Document.cpp:
        (WebCore::Document::importNode):
        (WebCore::Document::childTypeAllowed):
        (WebCore::Document::canReplaceChild):
        * dom/Node.cpp:
        (WebCore::Node::dumpStatistics):
        (WebCore::Node::isDefaultNamespace):
        (WebCore::Node::lookupPrefix):
        (WebCore::Node::lookupNamespaceURI):
        (WebCore::appendTextContent):
        (WebCore::Node::setTextContent):
        * dom/Node.h:
        * dom/Range.cpp:
        (WebCore::lengthOfContentsInNode):
        (WebCore::Range::processContentsBetweenOffsets):
        (WebCore::Range::insertNode):
        (WebCore::Range::checkNodeWOffset):
        (WebCore::Range::checkNodeBA):
        (WebCore::Range::selectNode):
        (WebCore::Range::selectNodeContents):
        (WebCore::Range::surroundContents):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::nodeType):
        (WebCore):
        * dom/ShadowRoot.h:
        (ShadowRoot):
        (WebCore::toShadowRoot):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::textWillBeReplaced):
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::appendStartMarkup):
        * html/parser/HTMLElementStack.cpp:
        (WebCore::HTMLNames::isRootNode):
        (WebCore::HTMLElementStack::pushRootNode):
        * html/parser/HTMLElementStack.h:
        (WebCore::isInHTMLNamespace):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
        (WebCore::InspectorDOMAgent::buildObjectForNode):
        * xml/XPathUtil.cpp:
        (WebCore::XPath::isValidContextNode):

2012-02-14  Hayato Ito  <hayato@chromium.org>

        Fix typo. HTMLContentSeleciton -> HTMLContentSelection.
        https://bugs.webkit.org/show_bug.cgi?id=78571

        Reviewed by Hajime Morita.

        No tests. No change in behavior.

        * dom/NodeRenderingContext.cpp:
        (WebCore::nextRendererOf):
        (WebCore::previousRendererOf):
        (WebCore::firstRendererOf):
        (WebCore::lastRendererOf):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::insertionPointFor):
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::attach):
        * html/shadow/HTMLContentSelector.cpp:
        (WebCore::HTMLContentSelection::append):
        (WebCore::HTMLContentSelection::unlink):
        (WebCore::HTMLContentSelectionList::find):
        (WebCore::HTMLContentSelectionList::append):
        (WebCore::HTMLContentSelector::select):
        (WebCore::HTMLContentSelector::unselect):
        (WebCore::HTMLContentSelector::findFor):
        * html/shadow/HTMLContentSelector.h:
        (HTMLContentSelection):
        (WebCore::HTMLContentSelection::next):
        (WebCore::HTMLContentSelection::previous):
        (WebCore::HTMLContentSelection::HTMLContentSelection):
        (WebCore::HTMLContentSelection::create):
        (WebCore::HTMLContentSelectionList::first):
        (WebCore::HTMLContentSelectionList::last):
        (HTMLContentSelectionList):
        (WebCore::HTMLContentSelectionSet::add):
        (WebCore::HTMLContentSelectionSet::remove):
        (HTMLContentSelectionSet):
        (WebCore::HTMLContentSelectionSet::Translator::equal):
        (WebCore::HTMLContentSelectionSet::Hash::hash):
        (WebCore::HTMLContentSelectionSet::Hash::equal):
        (WebCore::HTMLContentSelectionSet::find):
        (HTMLContentSelector):

2012-02-14  Mike Lawther  <mikelawther@chromium.org>

        CSS3 calc: embed calc expressions in CSSPrimitiveValue
        https://bugs.webkit.org/show_bug.cgi?id=78446

        Reviewed by Ojan Vafai.
        
        Adds calc expressions to CSSPrimitiveValue. This enables simple (ie no mixing of
        percents with numbers/lengths) expressions to be evaluated on most properties.

        Tests: css3/calc/block-mask-overlay-image-outset-expected.html
               css3/calc/css3-radial-gradients-expected.html
               css3/calc/gradient-color-stops-expected.html

        * css/CSSCalculationValue.cpp:
        (WebCore::CSSCalcValue::computeLengthPx):
        (WebCore):
        (WebCore::CSSCalcPrimitiveValue::doubleValue):
        (CSSCalcPrimitiveValue):
        (WebCore::CSSCalcPrimitiveValue::computeLengthPx):
        (CSSCalcBinaryOperation):
        (WebCore::CSSCalcBinaryOperation::computeLengthPx):
        * css/CSSCalculationValue.h:
        (CSSCalcExpressionNode):
        (CSSCalcValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::createPrimitiveNumericValue):
        (WebCore::CSSParser::parseValidPrimitive):
        * css/CSSPrimitiveValue.cpp:
        (WebCore::isValidCSSUnitTypeForDoubleConversion):
        (WebCore::CSSPrimitiveValue::primitiveType):
        (WebCore::CSSPrimitiveValue::init):
        (WebCore):
        (WebCore::CSSPrimitiveValue::cleanup):
        (WebCore::CSSPrimitiveValue::computeLengthDouble):
        (WebCore::CSSPrimitiveValue::getDoubleValue):
        (WebCore::CSSPrimitiveValue::getDoubleValueInternal):
        (WebCore::CSSPrimitiveValue::customCssText):
        * css/CSSPrimitiveValue.h:
        (WebCore):
        (WebCore::CSSPrimitiveValue::isLength):
        (WebCore::CSSPrimitiveValue::isNumber):
        (WebCore::CSSPrimitiveValue::isPercentage):
        (WebCore::CSSPrimitiveValue::isPx):
        (WebCore::CSSPrimitiveValue::isCalculated):
        (WebCore::CSSPrimitiveValue::isCalculatedPercentageNumber):
        (WebCore::CSSPrimitiveValue::isCalculatedPercentageLength):
        (CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::getValue):
        (WebCore::CSSPrimitiveValue::cssCalcValue):
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyBorderRadius::applyValue):

2012-02-14  Pavel Feldman  <pfeldman@chromium.org>

        Not reviewed: follow up to r107683: protect inspector sidebar from updating
        while inserting new rule.

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted.successCallback):
        (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted):

2012-02-14  Rick Byers  <rbyers@.com>

        Extend Chromium V8 tracing to cover more cases
        https://bugs.webkit.org/show_bug.cgi?id=78507

        Reviewed by Eric Seidel.

        No tests modified because this affects only chrome tracing which we
        currently don't try to validate with automated tests.

        * bindings/v8/V8EventListener.cpp:
        (WebCore::V8EventListener::callListenerFunction):
        * bindings/v8/V8Proxy.cpp:
        (WebCore::V8Proxy::instrumentedCallFunction):
        (WebCore::V8Proxy::newInstance):

2012-02-14  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: fire stylesheet changed event upon CSS modifications.
        https://bugs.webkit.org/show_bug.cgi?id=78500

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector.json:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::mergeId):
        (InspectorCSSAgent::SetStyleSheetTextAction):
        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::merge):
        (WebCore::InspectorCSSAgent::setStyleSheetText):
        (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
        (WebCore::InspectorCSSAgent::bindStyleSheet):
        (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
        (WebCore::InspectorCSSAgent::styleSheetChanged):
        (WebCore):
        * inspector/InspectorCSSAgent.h:
        (InspectorCSSAgent):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::create):
        (WebCore::InspectorStyleSheet::InspectorStyleSheet):
        (WebCore::InspectorStyleSheet::reparseStyleSheet):
        (WebCore::InspectorStyleSheet::setRuleSelector):
        (WebCore::InspectorStyleSheet::addRule):
        (WebCore::InspectorStyleSheet::deleteRule):
        (WebCore::InspectorStyleSheet::setPropertyText):
        (WebCore::InspectorStyleSheet::toggleProperty):
        (WebCore::InspectorStyleSheet::fireStyleSheetChanged):
        (WebCore):
        (WebCore::InspectorStyleSheetForInlineStyle::create):
        (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
        * inspector/InspectorStyleSheet.h:
        (WebCore::InspectorStyleSheet::Listener::~Listener):
        (Listener):
        (InspectorStyleSheet):
        (InspectorStyleSheetForInlineStyle):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel):
        (WebInspector.CSSStyleModel.prototype.setRuleSelector):
        (WebInspector.CSSStyleModel.prototype.setRuleSelector.callback):
        (WebInspector.CSSStyleModel.prototype.addRule):
        (WebInspector.CSSStyleModel.prototype.addRule.callback):
        (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged.callback):
        (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged):
        (WebInspector.CSSStyleModel.prototype.setStyleSheetText):
        (WebInspector.CSSStyleModel.prototype._undoRequested):
        (WebInspector.CSSStyleModel.prototype._undoCompleted):
        (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
        (WebInspector.CSSProperty.prototype.setText):
        (WebInspector.CSSProperty.prototype.setText.callback):
        (WebInspector.CSSProperty.prototype.setDisabled.callback):
        (WebInspector.CSSProperty.prototype.setDisabled):
        (WebInspector.CSSStyleSheet.prototype.setText):
        (WebInspector.CSSDispatcher.prototype.mediaQueryResultChanged):
        (WebInspector.CSSDispatcher.prototype.styleSheetChanged):
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMAgent.prototype._emulateTouchEventsChanged):
        (WebInspector.DOMAgent.prototype.get undo):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype.handleShortcut):

2012-02-11  Nikolas Zimmermann  <nzimmermann@rim.com>

        Convert svg/animations to use SMIL methods for driving the timeline
        https://bugs.webkit.org/show_bug.cgi?id=78422

        Reviewed by Dirk Schulze.

        Switch the svg/animations tests to use SVGSVGElement.setCurrentTime to drive the animation timeline.
        This should fix all flakiness we previously had with these tests - and as nice side-effect we're now
        using the standard SVG methods to drive the timeline, and thus have more coverage for these methods.
        It already exposed several SMIL bugs, that had to be fixed, before this worked:

        - beginElement()/endElement() modify the begin/end times of a SVGSMILElement. When beginElement() is
          called a new begin time is added to the list - and the same happens for endElement() with the end list.
          Unfortunately the begin/end times never get removed again, leading to incorrect instance time resolving
          when begin/endElement is called repeatedly, combined with moving the timeline through setCurrentTime.

          SMIL3 specifically demands that all 'dynamic' times in the begin/endTimes list, such that got inserted
          via beginElement/endElement - get removed if the begin/endTimes list is updated. Why?
          When calling beginElement, then endElement, then beginElement again, the begin/endTimes lists should be
          identical, w/o leftovers from any previous begin/endElement call.

          To keep track of that introduce SMILTimeWithOrigin, which holds a SMILTime and an Origin enum,
          which determines whether this SMILTime was created by the parser or dynamically created via
          beginElement/endElement.

        - SMILTimeContainer::setElapsed() (called by SVGSVGElement::setCurrentTime) forgot to update the
          animation state, when it was not paused.

        - document.getElementsByTagName('animateMotion')[0], always returned 'object SVGElement', instead of
          SVGAnimateMotion element making it impossible to query the animation start time, as the interfaces
          from SVGAnimationElement were not available. Fix that by removing the last hacks from svgtags.in,
          now that all IDLs are available.

        Now that we use SVGSVGElement::setCurrentTime to drive the animation testing, we can remove
        the DRT specific sampleSVGAnimationAtTime functionality, and its code springled all over WebCore.

        Covered by all existing tests in svg/animations.

        * WebCore.exp.in: Remove sampleAnimationAtTime() symbols.
        * WebCore.order: Ditto.
        * svg/SVGAnimationElement.cpp: Add a flag to begin/endElement, SMILTimeWithOrigin::ScriptOrigin, to indicate that these are dynamic SMILTimes, added by a script. 
        (WebCore::SVGAnimationElement::beginElementAt):
        (WebCore::SVGAnimationElement::endElementAt):
        * svg/SVGDocumentExtensions.cpp: Remove sampleAnimationAtTime.
        * svg/SVGDocumentExtensions.h: Ditto.
        * svg/animation/SMILTime.h: Add SMILTimeWithOrigin helper.
        (SMILTimeWithOrigin): Needs a SMILTime and an Origin enum entry.
        (WebCore::SMILTimeWithOrigin::SMILTimeWithOrigin):
        (WebCore::SMILTimeWithOrigin::time): Returns the SMILTime.
        (WebCore::SMILTimeWithOrigin::originIsScript): Determines if this SMILTime got added by a script.
        (WebCore::operator<): Used by std::sort.
        * svg/animation/SMILTimeContainer.cpp:
        (WebCore::SMILTimeContainer::setElapsed): Always call updateAnimations, even if the animation is not paused. Use the right elpased time value, to seek precisely to the desired position.
        (WebCore::SMILTimeContainer::timerFired): Cleanup code, no need for a local variable 'elapsed'.
        (WebCore::SMILTimeContainer::updateAnimations): Remove DRT specific sampling code, which is no longer needed.
        * svg/animation/SMILTimeContainer.h: Remove sampleAnimationAtTime.
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::SVGSMILElement): Only call resolveFirstInterval, not reset, from the constructor - it wastes unnecessary time, as everything is already initialized.
        (WebCore::clearTimesWithDynamicOrigins): Helper function to clear all SMILTimes from the begin/endTimes list, that are dynamic.
        (WebCore::SVGSMILElement::reset): Clear begin/endTimes lists, on any reset() call (when driving the animation timeline through setElapsed).
        (WebCore::SVGSMILElement::insertedIntoDocument): m_beginTimes now stores SMILTimeWithOrigins, adapt the code.
        (WebCore::sortTimeList): Ditto.
        (WebCore::SVGSMILElement::parseBeginOrEnd): Ditto.
        (WebCore::SVGSMILElement::addBeginTime): Ditto.
        (WebCore::SVGSMILElement::addEndTime): Ditto.
        (WebCore::extractTimeFromVector): Ditto.
        (WebCore::SVGSMILElement::findInstanceTime): Ditto.
        * svg/animation/SVGSMILElement.h: 
        * svg/svgtags.in: Enable animateMotion/hkern/mpath JS interfaces, which were not enabled, despite their IDLs existed.

2012-02-14  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: [REGRESSION] Copy Stack Trace is broken
        https://bugs.webkit.org/show_bug.cgi?id=78583

        Reviewed by Yury Semikhatsky.

        Test: inspector/debugger/copy-stack-trace.html

        * inspector/front-end/CallStackSidebarPane.js:
        (WebInspector.CallStackSidebarPane.prototype._copyStackTrace):

2012-02-14  Eric Seidel  <eric@webkit.org>

        Upstream Android's support for SK_B32_SHIFT to JPEGImageEncoder
        https://bugs.webkit.org/show_bug.cgi?id=78540

        Reviewed by Adam Barth.

        * platform/image-encoders/skia/JPEGImageEncoder.cpp:
        (WebCore::encodePixels):

2012-02-13  Pavel Feldman  <pfeldman@chromium.org>

        [Qt] inspector/styles/undo-add-new-rule.html crashes
        https://bugs.webkit.org/show_bug.cgi?id=78502

        Reviewed by Yury Semikhatsky.

        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::deleteRule):

2012-02-13  Nate Chapin  <japhet@chromium.org>

        Reuse CachedRawResources (e.g., XHRs) that are stored
        in the MemoryCache when appropriate.
        https://bugs.webkit.org/show_bug.cgi?id=76564

        Reviewed by Antti Koivisto.

        No new tests, expected behavior covered by existing tests.

        * html/DOMURL.cpp:
        (WebCore::DOMURL::revokeObjectURL): Objects shouldn't remain in the
            MemoryCache if revokeObjectURL is called on them.
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::cachedResourceContent): Add CachedRawResource support.
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::setCacheDisabled): Immediately
            evict resources, rather than waiting for navigation, since XHRs
            should hit the cache if it has been disabled.
        * loader/cache/CachedRawResource.cpp:
        (CachedRawResourceCallback): Encapsulates the async callback for
            a cache hit for CachedRawResources.
        (WebCore::CachedRawResource::sendCallbacks): Do the work defered in didAddClient.
        (WebCore::CachedRawResource::didAddClient): Scheduled a CachedRawResourceCallback if
            we already have a response, since async XHRs may not play nicely with receiving
            their data synchronously.
        (WebCore::CachedRawResource::removeClient): Ensure we cancel a callback to a client if
            it removes itself.
        (WebCore::CachedRawResource::canReuse): Provide some basic rules for when a
            CachedRawResource can be reused.
        * loader/cache/CachedRawResource.h:
        * loader/cache/CachedResource.h:
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::determineRevalidationPolicy): Don't automatically reload
            CachedRawResources, and add a check for whether this request has already been
            made conditional.
        * xml/XMLHttpRequest.cpp:

2012-02-13  Dana Jansens  <danakj@chromium.org>

        [chromium] Set opaque flag on SkBitmap in per-tile layer updater
        https://bugs.webkit.org/show_bug.cgi?id=78498

        Reviewed by Stephen White.

        No new tests.

        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::prepareRect):
        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h:
        (SkPictureCanvasLayerTextureUpdater):
        (WebCore::SkPictureCanvasLayerTextureUpdater::layerIsOpaque):

2012-02-13  W. James MacLean  <wjmaclean@chromium.org>

        [chromium] Remove obsolete zoom animation pathway.
        https://bugs.webkit.org/show_bug.cgi?id=78359

        Reviewed by James Robinson.

        Tests for existing pathways should not be broken. Tests for removed pathway removed previously.

        This patch removes dead code from the previous incarnation of zoom animation for chromium.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureEvent):
        * page/FrameView.cpp:
        * page/FrameView.h:
        (FrameView):
        * platform/ScrollAnimator.cpp:
        (WebCore::ScrollAnimator::ScrollAnimator):
        * platform/ScrollAnimator.h:
        (ScrollAnimator):
        * platform/ScrollAnimatorNone.cpp:
        (WebCore::ScrollAnimatorNone::ScrollAnimatorNone):
        (WebCore::ScrollAnimatorNone::animationTimerFired):
        * platform/ScrollAnimatorNone.h:
        (ScrollAnimatorNone):
        * platform/ScrollableArea.cpp:
        * platform/ScrollableArea.h:
        * testing/InternalSettings.cpp:
        * testing/InternalSettings.h:
        (InternalSettings):
        * testing/InternalSettings.idl:
        * testing/Internals.cpp:

2012-02-13  Shinya Kawanaka  <shinyak@chromium.org>

        [Regression] r107650 broke the windows build.
        https://bugs.webkit.org/show_bug.cgi?id=78569

        Build fix, Unreviewed.

        The variable defined in switch statement should not escape from the switch statement.

        * dom/Element.cpp:
        (WebCore::Element::webkitRegionOverflow):

2012-02-13  ChangSeok Oh  <shivamidow@gmail.com>

        [GTK] Mutation Observers build is broken
        https://bugs.webkit.org/show_bug.cgi?id=78433

        Reviewed by Martin Robinson.

        Added some files missed.

        No new tests since no new feature.

        * GNUmakefile.list.am:

2012-02-13  Hayato Ito  <hayato@chromium.org>

        Make ShadowRoot.nodeType return DOCUMENT_FRAGMENT_NODE.
        https://bugs.webkit.org/show_bug.cgi?id=77514

        Reviewed by Dimitri Glazkov.

        NodeType.SHADOW_ROOT_NODE type is finally gone.

        * bindings/js/JSNodeCustom.cpp:
        (WebCore::createWrapperInline):
        * bindings/objc/DOM.mm:
        (kitClass):
        * bindings/v8/custom/V8NodeCustom.cpp:
        (WebCore::toV8Slow):
        * dom/ContainerNode.cpp:
        (WebCore::collectTargetNodes):
        (WebCore::ContainerNode::replaceChild):
        * dom/Document.cpp:
        (WebCore::Document::importNode):
        (WebCore::Document::childTypeAllowed):
        (WebCore::Document::canReplaceChild):
        * dom/Node.cpp:
        (WebCore::Node::dumpStatistics):
        (WebCore::Node::isDefaultNamespace):
        (WebCore::Node::lookupPrefix):
        (WebCore::Node::lookupNamespaceURI):
        (WebCore::appendTextContent):
        (WebCore::Node::setTextContent):
        * dom/Node.h:
        * dom/Range.cpp:
        (WebCore::lengthOfContentsInNode):
        (WebCore::Range::processContentsBetweenOffsets):
        (WebCore::Range::insertNode):
        (WebCore::Range::checkNodeWOffset):
        (WebCore::Range::checkNodeBA):
        (WebCore::Range::selectNode):
        (WebCore::Range::selectNodeContents):
        (WebCore::Range::surroundContents):
        * dom/ShadowRoot.cpp:
        * dom/ShadowRoot.h:
        (ShadowRoot):
        (WebCore::toShadowRoot):
        * editing/FrameSelection.cpp:
        (WebCore::nodeIsDetachedFromDocument):
        (WebCore):
        (WebCore::FrameSelection::textWillBeReplaced):
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::appendStartMarkup):
        * html/parser/HTMLElementStack.cpp:
        (WebCore::HTMLNames::isRootNode):
        (WebCore::HTMLElementStack::pushRootNode):
        * html/parser/HTMLElementStack.h:
        (WebCore::isInHTMLNamespace):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
        (WebCore::InspectorDOMAgent::buildObjectForNode):
        * xml/XPathUtil.cpp:
        (WebCore::XPath::isValidContextNode):

2012-02-13  Ojan Vafai  <ojan@chromium.org>

        rtl + flex-direction:column is positioning elements incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=78555

        Reviewed by Tony Chang.

        Do the y-axis flipping after we have adjusted the y-position for
        flex-align instead of before.

        Tests: css3/flexbox/flex-align-baseline.html
               css3/flexbox/flex-align-end.html

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::alignChildren):
        The amount we adjust by also needs to be flipped for rtl+column,
        so the flipping needs to be done after we align the flex items.

2012-02-09  Ojan Vafai  <ojan@chromium.org>

        nesting horizontal flexboxes is broken
        https://bugs.webkit.org/show_bug.cgi?id=76867

        Reviewed by David Hyatt.

        This is copied from RenderDeprecatedFlexibleBox and updated
        for RenderFlexibleBox and to handle vertical writing mode.

        Tests: css3/flexbox/preferred-widths-orthogonal.html
               css3/flexbox/preferred-widths.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computePreferredLogicalWidths):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::marginWidthForChild):
        (WebCore):
        (WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
        * rendering/RenderFlexibleBox.h:
        (RenderFlexibleBox):

2012-02-13  Anders Carlsson  <andersca@apple.com>

        The tile cache layer should have its background set to the page background
        https://bugs.webkit.org/show_bug.cgi?id=78560
        <rdar://problem/10857472>

        Reviewed by Sam Weinig.

        * page/FrameView.cpp:
        (WebCore::FrameView::recalculateScrollbarOverlayStyle):
        Inform the RenderLayerCompositor that the background color has changed.

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateLayerBackgroundColor):
        For tile cache layers we don't need a separate contents layer for the background color so
        just set the background color on the layer directly.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::documentBackgroundColorDidChange):
        If the root render layer is using a tile cache layer, update its background color.

2012-02-13  Raul Hudea  <rhudea@adobe.com>

        Implement Element.webkitRegionOverflow

        [CSSRegions][CSSOM] Implement Element.regionOverflow
        https://bugs.webkit.org/show_bug.cgi?id=77863

        Reviewed by David Hyatt.

        On each layout, compute the overflowState for each region belonging to the flow thread

        Tests: fast/regions/element-region-overflow-state-vertical-rl.html
               fast/regions/element-region-overflow-state.html

        * dom/Element.cpp:
        (WebCore::Element::webkitRegionOverflow):
        (WebCore):
        * dom/Element.h:
        * dom/Element.idl:
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computeOverflow):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::computeOverflowStateForRegions):
        (WebCore):
        * rendering/RenderFlowThread.h:
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::RenderRegion):
        * rendering/RenderRegion.h:
        (RenderRegion):
        (WebCore::RenderRegion::regionState):
        (WebCore::RenderRegion::setRegionState):

2012-02-13  Alexey Proskuryakov  <ap@apple.com>

        File API IDLs are incorrect in Xcode project
        https://bugs.webkit.org/show_bug.cgi?id=78551

        Rubber-stamped by Dan Bernstein.

        * WebCore.xcodeproj/project.pbxproj: Corrected paths, and added missing files.

2012-02-13  Benjamin Poulain  <bpoulain@apple.com>

        SharedBuffer::getSomeData() can potentially return a pointer past the data
        https://bugs.webkit.org/show_bug.cgi?id=77799

        Reviewed by David Kilzer.

        The expected behavior from SharedBuffer::getSomeData() is to return a size and pointer of value 0
        if position is past the data.

        However, the code handling the memory mapped data is before the code ensuring the aforementioned
        condition. It is possible to return a pointer past the data, and a non-null size.

        This patch aims at preventing such invalid memory access by checking position is in the boundaries
        before any attempt is made to return the data.

        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::getSomeData):

2012-02-13  Benjamin Poulain  <bpoulain@apple.com>

        SharedBuffer::getSomeData() must support m_dataArray if NETWORK_CFDATA_ARRAY_CALLBACK is defined
        https://bugs.webkit.org/show_bug.cgi?id=77718

        Reviewed by David Kilzer.

        Previously, the last part of SharedBuffer::getSomeData() was systematically accessing
        the data from the segments. When NETWORK_CFDATA_ARRAY_CALLBACK is defined, there can
        be data in m_dataArray past the segment.

        The previous code was making invalid memory access pass the segment vector. This patch
        adds support for getting the data out of m_dataArray to make SharedBuffer::getSomeData()
        works with NETWORK_CFDATA_ARRAY_CALLBACK.

        This is covered by existing tests when NETWORK_CFDATA_ARRAY_CALLBACK is defined.
        The test 'fast/events/constructors/track-event-constructor.html' is a reliable test
        for this.

        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::getSomeData):
        * platform/SharedBuffer.h:
        (SharedBuffer):
        * platform/cf/SharedBufferCF.cpp:
        (WebCore):
        (WebCore::SharedBuffer::copySomeDataFromDataArray):

2012-02-13  Anders Carlsson  <andersca@apple.com>

        Force slow-scrolling mode when there are position:fixed elements on a page
        https://bugs.webkit.org/show_bug.cgi?id=78553
        <rdar://problem/10247934>

        Reviewed by Dan Bernstein.

        Eventually, the scrolling tree will know about fixed positioning layers so their position can be updated
        when the scroll layer position is updated. For now we'll take the simple route however.

        * page/FrameView.cpp:
        (WebCore::FrameView::addFixedObject):
        (WebCore::FrameView::removeFixedObject):
        Inform the scrolling coordinator when the number of fixed objects changes between 0 and 1.

        * page/FrameView.h:
        (WebCore::FrameView::hasFixedObjects):
        Make this public.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::frameViewHasSlowRepaintObjectsDidChange):
        Call updateShouldUpdateScrollLayerPositionOnMainThread.

        (WebCore::ScrollingCoordinator::frameViewHasFixedObjectsDidChange):
        Call updateShouldUpdateScrollLayerPositionOnMainThread.

        (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
        Make sure to update compositing layers here. Normally, they will be updated by layout but doing a layout
        here is too intrusive since it could potentially change the size of the page.

        (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
        If we have fixed objects or slow repaint objects we need to update the scroll layer position on the main thread.

2012-02-13  Adrienne Walker  <enne@google.com>

        [chromium] Use HashMap<..., OwnPtr<Tile>> for compositor tilemap
        https://bugs.webkit.org/show_bug.cgi?id=74154

        Reviewed by James Robinson.

        Covered by the compositing/ layout tests.

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::UpdatableTile::create):
        (WebCore::UpdatableTile::UpdatableTile):
        (WebCore::TiledLayerChromium::createTile):
        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
        (WebCore::CCLayerTilingData::addTile):
        (WebCore::CCLayerTilingData::takeTile):
        (WebCore::CCLayerTilingData::tileAt):
        * platform/graphics/chromium/cc/CCLayerTilingData.h:
        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
        (WebCore::DrawableTile::create):
        (WebCore::DrawableTile::DrawableTile):
        (WebCore::CCTiledLayerImpl::createTile):

2012-02-13  Kentaro Hara  <haraken@chromium.org>

        Add [CustomToJSObject] to interfaces which have custom toJS() and toV8()
        https://bugs.webkit.org/show_bug.cgi?id=78489

        Reviewed by Adam Barth.

        This is the final step to remove hard-coding from HasCustomToV8Implementation()
        in CodeGeneratorV8.pm. This patch replaces [JSCustomToJS] with [CustomToJSObject]
        for interfaces which have custom toJS() and custom toV8().

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):

        * bindings/scripts/test/TestTypedArray.idl:
        * css/CSSRule.idl:
        * css/CSSValue.idl:
        * css/StyleSheet.idl:
        * dom/Document.idl:
        * dom/Event.idl:
        * dom/Node.idl:
        * fileapi/Blob.idl:
        * fileapi/Entry.idl:
        * fileapi/EntrySync.idl:
        * html/HTMLCollection.idl:
        * html/ImageData.idl:
        * html/canvas/ArrayBufferView.idl:
        * html/canvas/DataView.idl:
        * html/canvas/Float32Array.idl:
        * html/canvas/Float64Array.idl:
        * html/canvas/Int16Array.idl:
        * html/canvas/Int32Array.idl:
        * html/canvas/Int8Array.idl:
        * html/canvas/Uint16Array.idl:
        * html/canvas/Uint32Array.idl:
        * html/canvas/Uint8Array.idl:
        * html/canvas/Uint8ClampedArray.idl:
        * storage/IDBAny.idl:
        * storage/IDBKey.idl:
        * svg/SVGPathSeg.idl:

2012-02-13  Arun Patole  <bmf834@motorola.com>

        Chrome crashes when attempting to add cue to track element
        https://bugs.webkit.org/show_bug.cgi?id=77951

        Reviewed by Eric Carlson.

        Allocate text track's text track list of cues before using it.

        * html/TextTrack.cpp:
        (WebCore::TextTrack::cues):
        (WebCore::TextTrack::addCue):
        (WebCore::TextTrack::removeCue): return if text track list of cues is not allocated.
        (WebCore::TextTrack::ensureTextTrackCueList):Added.
        * html/TextTrack.h:
        (TextTrack):

2012-02-13  Andy Estes  <aestes@apple.com>

        Fix the Windows build.

        * platform/PlatformPasteboard.h:
        (PlatformPasteboard):

2012-02-13  Abhishek Arya  <inferno@chromium.org>

        Crash with button in multi-column layout.
        https://bugs.webkit.org/show_bug.cgi?id=78378

        Reviewed by David Hyatt.

        Button creates an anonymous wrapper and expects that new children
        be added to its m_inner anonymous block. However, splitBlock code
        incorrectly creates column blocks directly under the button.

        Test: fast/multicol/span/split-flow-anonymous-wrapper-crash.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::containingColumnsBlock):
        (WebCore::RenderBlock::columnsBlockForSpanningElement):

2012-02-09  Ojan Vafai  <ojan@chromium.org>

        nesting horizontal flexboxes is broken
        https://bugs.webkit.org/show_bug.cgi?id=76867

        Reviewed by David Hyatt.

        This is copied from RenderDeprecatedFlexibleBox and updated
        for RenderFlexibleBox and to handle vertical writing mode.

        Tests: css3/flexbox/preferred-widths-orthogonal.html
               css3/flexbox/preferred-widths.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computePreferredLogicalWidths):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::marginWidthForChild):
        (WebCore):
        (WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
        * rendering/RenderFlexibleBox.h:
        (RenderFlexibleBox):

2012-02-13  Mihnea Ovidenie  <mihnea@adobe.com>

        Crash in RenderFlowThread::setRegionBoxesRegionStyle
        https://bugs.webkit.org/show_bug.cgi?id=78298

        Reviewed by David Hyatt.

        Test: fast/regions/set-box-style-in-region-crash.html

        We have to make sure that anonymous block objects get their information in RenderFlowThread
        removed properly.

        * dom/Node.cpp:
        (WebCore::Node::diff):
        Correct a comment.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::collapseAnonymousBoxChild):
        Remove the information for anonymous block from render flow thread.
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::removeFlowChildInfo):
        (WebCore):
        (WebCore::RenderFlowThread::setRegionRangeForBox):
        Do not set region range if the flow thread does not have regions.
        * rendering/RenderFlowThread.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::willBeDestroyed):
        Add an assert to make sure that after we remove an object, there is no remaining info
        in any render flow thread.

2012-02-13  Tony Chang  <tony@chromium.org>

        Unreviewed, rolling out r107582.
        http://trac.webkit.org/changeset/107582
        https://bugs.webkit.org/show_bug.cgi?id=78349

        Broke three inspector interactive_ui_tests

        * English.lproj/localizedStrings.js:
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype.uiSourceCodes):
        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.ScriptsNavigator.prototype._removeUISourceCode.get while):
        (WebInspector.ScriptsNavigator.prototype._removeUISourceCode):
        (WebInspector.ScriptsNavigator.prototype._showScriptFoldersSettingChanged):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
        (WebInspector.ScriptsPanel.prototype._updateExecutionLine):
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsScreen):

2012-02-13  Abhishek Arya  <inferno@chromium.org>

        Incorrect children placement in multi-column layout.
        https://bugs.webkit.org/show_bug.cgi?id=78160

        Reviewed by David Hyatt.

        Test: fast/multicol/span/clone-before-after-content-crash.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::clone): no longer need to take care of making
        children noninline (remove fix r105769) since moveChild functions take
        care of adding the child properly if type of children differ. this
        function just makes sure to set the right value of childrenInline property.
        (WebCore::RenderBlock::splitBlocks): similar to moveChild functions below.
        (WebCore::RenderBlock::moveChildTo): when child is fullRemoveInsert (across
        different parents, e.g clones), we should use addChild function to make sure
        it handles the case of different type of children between fromBlock and
        toBlock correctly (specifically making children non-inline/wrapping inline
        children under anonymous blocks.).
        (WebCore::RenderBlock::moveChildrenTo):
        * rendering/RenderBlock.h:
        (RenderBlock):
        (WebCore::RenderBlock::moveAllChildrenTo): Rename to->toBlock.
        (WebCore::RenderBlock::moveChildrenTo): Rename to->toBlock.

2012-02-13  Stephen White  <senorblanco@chromium.org>

        [chromium] Implement Brightness and Contrast filters on composited
        layers.  Fix Saturation filter.
        https://bugs.webkit.org/show_bug.cgi?id=78527

        Reviewed by Kenneth Russell.

        Will be covered by existing tests in css3/filters, when enabled.

        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
        (WebCore::CCRenderSurfaceFilters::apply):

2012-02-13  Anders Carlsson  <andersca@apple.com>

        Turn off edge antialiasing for tile cache tile layers
        https://bugs.webkit.org/show_bug.cgi?id=78533
        <rdar://problem/10710798>

        Reviewed by Sam Weinig.

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::createTileLayer):

2012-02-13  Enrica Casucci  <enrica@apple.com>

        Build fix. Unreviewed.

        * WebCore.xcodeproj/project.pbxproj:

2012-02-13  Brady Eidson  <beidson@apple.com>

        <rdar://problem/7196487> and https://bugs.webkit.org/show_bug.cgi?id=26777
        Add https pages to the page cache in some cases

        Reviewed by Anders Carlsson.

        Test: http/tests/navigation/https-in-page-cache.html

        * history/PageCache.cpp:
        (WebCore::PageCache::canCachePageContainingThisFrame): Allow HTTPS pages that do not specify cache-control: no-cache
          or cache-control: no-store into the page cache. This will match Firefox's behavior for HTTPS in their bfcache.

2012-02-10  Enrica Casucci  <enrica@apple.com>

        Refactor Mac platform implementation of the Pasteboard class to use Platform Strategies.
        https://bugs.webkit.org/show_bug.cgi?id=78282

        This patch removes any accesss to the NSPasteboard object from the Pasteboard class which
        now makes use of a new pasteboardStrategy object that is implemented both in WebKit and
        WebKit2. The actual access to NSPasteboard is now performed inside the PlatformPasteboard
        class. Currently both WebKit and WebKit2 use the same implementation of the PasteboardStrategy
        interface but this one more step in the direction of removing access to NSPasteboard from
        the WebProcess.
        As part of the refactoring the I've reduced to a minimum the use of OBJ-C classes.

        Reviewed by Anders Carlsson.

        No new tests. No change in behavior, just code refactoring.

        * WebCore.exp.in: Added exported class PlatformPasteboard.
        * WebCore.xcodeproj/project.pbxproj: Added new files to the build.
        * editing/mac/EditorMac.mm:
        (WebCore::Editor::writeSelectionToPasteboard): New method signature that doesn't use OBJ-C types.
        * platform/Pasteboard.h:

        * platform/PasteboardStrategy.h: Added PasteboardStrategy abstract class.
        * platform/PlatformPasteboard.h: Added. This class implements access to NSPasteboard.
        * platform/PlatformStrategies.h:
        (WebCore::PlatformStrategies::pasteboardStrategy): Added.
        * platform/mac/DragDataMac.mm:
        (WebCore::DragData::canSmartReplace):
        (WebCore::insertablePasteboardTypes): 
        (WebCore::DragData::asURL):
        * platform/mac/PasteboardMac.mm:
        (WebCore::selectionPasteboardTypes): Changed to use Vector<String> instead of NSArray.
        (WebCore::writableTypesForURL): Ditto.
        (WebCore::createWritableTypesForImage): Ditto.
        (WebCore::writableTypesForImage): Ditto.
        (WebCore::Pasteboard::Pasteboard): Removed access to NSPasteboard.
        (WebCore::Pasteboard::clear): Modified to use platformStrategies()->pasteboardStrategy().
        (WebCore::Pasteboard::writeSelectionForTypes): Ditto.
        (WebCore::Pasteboard::writePlainText): Ditto.
        (WebCore::Pasteboard::writeSelection): Ditto.
        (WebCore::writeURLForTypes): Ditto.
        (WebCore::Pasteboard::writeURL): Ditto.
        (WebCore::writeFileWrapperAsRTFDAttachment): Ditto.
        (WebCore::Pasteboard::writeImage): Ditto.
        (WebCore::Pasteboard::writeClipboard): Ditto.
        (WebCore::Pasteboard::canSmartReplace): Ditto.
        (WebCore::Pasteboard::plainText): Ditto.
        (WebCore::documentFragmentWithRTF): Ditto.
        (WebCore::Pasteboard::documentFragment): Ditto.
        * platform/mac/PlatformPasteboardMac.mm: Added.
        (WebCore::PlatformPasteboard::PlatformPasteboard):
        (WebCore::PlatformPasteboard::getTypes):
        (WebCore::PlatformPasteboard::bufferForType):
        (WebCore::PlatformPasteboard::getPathnamesForType):
        (WebCore::PlatformPasteboard::stringForType):
        (WebCore::PlatformPasteboard::copy):
        (WebCore::PlatformPasteboard::setTypes):
        (WebCore::PlatformPasteboard::setBufferForType):
        (WebCore::PlatformPasteboard::setPathnamesForType):
        (WebCore::PlatformPasteboard::setStringForType):

2012-02-13  Raul Hudea  <rhudea@adobe.com>

        [CSS Regions] Inconsistent text selection behavior in regions
        https://bugs.webkit.org/show_bug.cgi?id=76456

        Reviewed by David Hyatt.

        Use the proper bounding rect when doing hit testing on flow threads.
        Based on initial patch by Alexandru Chiculita.

        Test: fast/regions/hit-test-region.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::hitTestRegion):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hitTest):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::nodeAtPoint):

2012-02-12  Andy Estes  <aestes@apple.com>

        [Windows] Add API to enable inverted color drawing on a WebView
        https://bugs.webkit.org/show_bug.cgi?id=77382

        Reviewed by Adam Roben.

        Implement CACFLayerTreeHost::setShouldInvertColors(), which instructs
        the layer tree host to render composited content with inverted colors.

        Test: platform/win/inverted-colors/non-composited.html

        * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
        (WebCore::CACFLayerTreeHost::setShouldInvertColors):
        (WebCore):
        * platform/graphics/ca/win/CACFLayerTreeHost.h:
        (CACFLayerTreeHost):
        * platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp: Use
        SOFT_LINK_OPTIONAL since WKCACFViewSetShouldInvertColors might not
        exist in older versions of WebKitQuartzCoreAdditions.
        (WebCore::WKCACFViewLayerTreeHost::setShouldInvertColors):
        (WebCore):
        * platform/graphics/ca/win/WKCACFViewLayerTreeHost.h:
        (WKCACFViewLayerTreeHost):

2012-02-13  Anders Carlsson  <andersca@apple.com>

        The scrolling tree needs to know about the back forward state of the page
        https://bugs.webkit.org/show_bug.cgi?id=78523
        <rdar://problem/10756548>

        Reviewed by Sam Weinig.

        In order to know if a page should rubber-band in the horizontal direction, the scrolling tree
        needs to know about the back/forward state of the page.

        * WebCore.exp.in:
        Export new symbols.

        * WebCore.xcodeproj/project.pbxproj:
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::ScrollingTree):
        Initialize m_canGoBack and m_canGoForward.

        (WebCore::ScrollingTree::updateBackForwardState):
        Update m_canGoBack and m_canGoForward.

        * page/scrolling/ScrollingTree.h:
        (WebCore::ScrollingTree::canGoBack):
        (WebCore::ScrollingTree::canGoForward):
        Add getters.

        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
        (WebCore::ScrollingTreeNodeMac::shouldRubberBandInDirection):
        Implement this, using canGoBack and canGoForward.

2012-02-13  Brady Eidson  <beidson@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=78520
        Cleanup PageCache::canCachePageContainingThisFrame readability

        Reviewed by Anders Carlsson.

        No new tests. (Code cleanup, no change in behavior)

        * history/PageCache.cpp:
        (WebCore::PageCache::canCachePageContainingThisFrame): Store three commonly
          getter-accessed variables in local variables for readability.

2012-02-13  Timothy Hatcher  <timothy@apple.com>

        Don't include a separator before the "Inspect Element" context menu item when the context menu is empty.

        https://webkit.org/b/78312

        Reviewed by Brian Weinstein.

        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::addInspectElementItem): Check itemCount before appending the separator.
        * platform/gtk/ContextMenuGtk.cpp:
        (WebCore::ContextMenu::itemCount): Added. Implement so this builds on GTK.

2012-02-13  Patrick Gansterer  <paroga@webkit.org>

        [WIN] Define HWND_MESSAGE if not done already
        https://bugs.webkit.org/show_bug.cgi?id=78341

        Reviewed by Adam Roben.

        HWND_MESSAGE is not defined on WinCE.
        Set it to 0 when not defined to avoid #ifdefs.

        * platform/win/PasteboardWin.cpp:
        (WebCore::Pasteboard::Pasteboard):
        * platform/win/WindowsExtras.h:
        (WebCore):

2012-02-13  Chris Fleizach  <cfleizach@apple.com>

        AX: <mark> element should be exposed through attributes
        https://bugs.webkit.org/show_bug.cgi?id=75727

        Reviewed by Beth Dakin.

        Exposes an attribute indicating that an element has highlighting through attributedStringForRange.
        Also allows the search mechanism to find elements with this style.

        Test: platform/mac/accessibility/attributed-string-includes-highlighting.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatch):
        (WebCore::AccessibilityObject::hasHighlighting):
        * accessibility/AccessibilityObject.h:
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (createAccessibilitySearchKeyMap):
        (AXAttributeStringSetStyle):

2012-02-13  Chris Fleizach  <cfleizach@apple.com>

        AX: the web area should report that focus can be set to itself
        https://bugs.webkit.org/show_bug.cgi?id=78272

        Reviewed by Beth Dakin.

        Test: platform/mac/accessibility/webarea-can-set-focus.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::isDataTable):
           Fixed erroneous comment.

2012-02-13  Patrick Gansterer  <paroga@webkit.org>

        Port RunLoop to WinCE
        https://bugs.webkit.org/show_bug.cgi?id=76781

        Reviewed by Adam Roben.

        * platform/win/RunLoopWin.cpp:
        (WebCore::RunLoop::registerRunLoopMessageWindowClass):

2012-02-10  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Make ScriptsNavigator default file selector.
        https://bugs.webkit.org/show_bug.cgi?id=78349

        Reviewed by Pavel Feldman.

        Moved ScriptsNavigator out of experiments.
        Introduced new setting "useScriptsNavigator" with true as default value.
        Updated scripts panel tests related to file selector.

        Tests: inspector/debugger/scripts-combobox-file-selector-history.html
               inspector/debugger/scripts-file-selector.html

        * English.lproj/localizedStrings.js:
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype.uiSourceCodes):
        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.ScriptsNavigator.prototype._removeUISourceCode):
        (WebInspector.ScriptsNavigator.prototype._showScriptFoldersSettingChanged):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
        (WebInspector.ScriptsPanel.prototype._addUISourceCode):
        (WebInspector.ScriptsPanel.prototype._updateExecutionLine):
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsScreen):

2012-02-13  Andreas Kling  <awesomekling@apple.com>

        Make HTMLTableCaptionElement inherit from HTMLElement.
        <http://webkit.org/b/78505>

        Reviewed by Antti Koivisto.

        HTMLTableCaptionElement was already bypassing its base class (HTMLTablePartElement)
        and calling up to HTMLElement in all its overrides. Just make it an HTMLElement
        instead since it doesn't use anything from HTMLTablePartElement.
        Remove parseAttribute() overload since it's no longer needed.

        * html/HTMLTableCaptionElement.cpp:
        (WebCore::HTMLTableCaptionElement::HTMLTableCaptionElement):
        (WebCore::HTMLTableCaptionElement::isPresentationAttribute):
        (WebCore::HTMLTableCaptionElement::collectStyleForAttribute):
        * html/HTMLTableCaptionElement.h:

2012-02-13  Andreas Kling  <awesomekling@apple.com>

        HTMLMarqueeElement: Don't cache presence of truespeed attribute.
        <http://webkit.org/b/78483>

        Reviewed by Antti Koivisto.

        Out-of-line minimumDelay() and look up the "truespeed" attribute there instead
        of caching the minimum delay in parseAttribute().
        Remove HTMLMarqueeElement::parseAttribute() as it's no longer needed.

        * html/HTMLMarqueeElement.cpp:
        (WebCore::HTMLMarqueeElement::HTMLMarqueeElement):
        (WebCore::HTMLMarqueeElement::minimumDelay):
        * html/HTMLMarqueeElement.h:
        (HTMLMarqueeElement):

2012-02-13  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [refactoring] factor common timeline UI state into TimelinePresentationModel
        https://bugs.webkit.org/show_bug.cgi?id=78501

        Reviewed by Pavel Feldman.

        * inspector/front-end/TimelineOverviewPane.js:
        (WebInspector.TimelineOverviewPane):
        (WebInspector.TimelineOverviewPane.prototype._onCategoryVisibilityChanged):
        (WebInspector.TimelineOverviewPane.prototype.update):
        (WebInspector.TimelineOverviewPane.prototype.sidebarResized):
        (WebInspector.TimelineOverviewPane.prototype._setWindowPosition):
        (WebInspector.TimelineOverviewPane.prototype.scrollWindow):
        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel):
        (WebInspector.TimelinePanel.prototype._createTopPane):
        (WebInspector.TimelinePanel.prototype.get statusBarItems):
        (WebInspector.TimelinePanel.prototype.get _recordStyles):
        (WebInspector.TimelinePanel.prototype._createStatusbarButtons):
        (WebInspector.TimelinePanel.prototype._createTimelineCategoryStatusBarCheckbox):
        (WebInspector.TimelinePanel.prototype._onCategoryCheckboxClicked):
        (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
        (WebInspector.TimelinePanel.prototype.sidebarResized):
        (WebInspector.TimelinePanel.prototype._updateBoundaries):
        (WebInspector.TimelinePanel.prototype._showPopover):
        (WebInspector.TimelinePresentationModel):
        (WebInspector.TimelinePresentationModel.prototype.get categories):
        (WebInspector.TimelinePresentationModel.prototype.addCategory):
        (WebInspector.TimelinePresentationModel.prototype.setWindowPosition):
        (WebInspector.TimelinePresentationModel.prototype.setCategoryVisibility):

2012-02-13  Joel Webber  <jgw@google.com>

        Use requestAnimationFrame callbacks to pump CSS animations
        https://bugs.webkit.org/show_bug.cgi?id=64591

        Reviewed by James Robinson.

        No new tests needed (covered by tests in animations/*).

        * page/FrameView.cpp:
        (WebCore::FrameView::serviceScriptedAnimations):
        * page/animation/AnimationController.cpp:
        (WebCore::AnimationControllerPrivate::updateAnimations):
        (WebCore::AnimationControllerPrivate::updateAnimationTimer):
        (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
        (WebCore::AnimationControllerPrivate::animationFrameCallbackFired):
        (WebCore::AnimationController::updateAnimations):
        (WebCore::AnimationController::serviceAnimations):
        * page/animation/AnimationController.h:
        * page/animation/AnimationControllerPrivate.h:

2012-02-13  Patrick Gansterer  <paroga@webkit.org>

        Add WindowsExtras.h
        https://bugs.webkit.org/show_bug.cgi?id=78340

        Reviewed by Adam Roben.

        Add a new file to share common code for Win32/WinCE differences.

        * platform/win/PopupMenuWin.cpp:
        (WebCore::PopupMenuWin::PopupMenuWndProc):
        * platform/win/RunLoopWin.cpp:
        (WebCore::RunLoop::RunLoopWndProc):
        * platform/win/WindowsExtras.h: Added.
        (WebCore):
        (WebCore::getWindowPointer):
        (WebCore::setWindowPointer):

2012-02-13  Andreas Kling  <awesomekling@apple.com>

        Don't mark element for style recalc when modifying its attribute style.
        <http://webkit.org/b/78497>

        Reviewed by Antti Koivisto.

        StylePropertySet::setNeedsStyleRecalc() shouldn't do anything for attribute styles.
        Their invalidation is handled exclusively by StyledElement::attributeChanged().
        Elements with presentation attributes were being marked for style recalc twice,
        once when the attribute changed, and again during attribute style update, below the
        call to collectStyleForAttribute().

        * css/StylePropertySet.cpp:
        (WebCore::StylePropertySet::setNeedsStyleRecalc):

2012-02-13  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Move attribute storage from NamedNodeMap to ElementAttributeData
        https://bugs.webkit.org/show_bug.cgi?id=77674

        Reviewed by Andreas Kling.

        Move m_attributes vector from NamedNodeMap to ElementAttributeData. Make the
        remaining callsites interact with ElementAttributeData if possible. The parsing
        code is still interacting with NamedNodeMap, so some functions remained as
        wrappers there. A next change will it use ElementAttributeData instead.

        The code for DOM exported functions remained in NamedNodeMap. This implementation
        should move to Element in a next change, too.

        * dom/Attr.h:
        (Attr):
        * dom/Element.cpp:
        (WebCore::Element::setAttribute):
        (WebCore::Element::setAttributeInternal):
        (WebCore::Element::parserSetAttributeMap):
        (WebCore::Element::removeAttribute):
        (WebCore::Element::hasAttribute):
        (WebCore::Element::hasAttributeNS):
        (WebCore::Element::normalizeAttributes):
        * dom/Element.h:
        (Element):
        (WebCore::Element::ensureUpdatedAttributes):
        (WebCore::Element::ensureAttributeData):
        (WebCore):
        (WebCore::Element::updatedAttributeData):
        (WebCore::Element::ensureUpdatedAttributeData):
        These *AttributeData functions are the correct correct way for callers to touch
        the details of attribute storage. The "updated" variants will update invalid
        attributes before return.

        (WebCore::Element::setAttributesFromElement):
        * dom/ElementAttributeData.cpp:
        (WebCore::ElementAttributeData::~ElementAttributeData):
        (WebCore):
        (WebCore::ElementAttributeData::ensureInlineStyleDecl):
        (WebCore::ElementAttributeData::addAttribute):
        (WebCore::ElementAttributeData::removeAttribute):
        (WebCore::ElementAttributeData::detachAttributesFromElement):
        (WebCore::ElementAttributeData::copyAttributesToVector):
        (WebCore::ElementAttributeData::getAttributeItemIndexSlowCase):
        (WebCore::ElementAttributeData::setAttributes): Make use of the assumption that
        this will only be called with a valid Element, since the only call site is an
        Element method.
        (WebCore::ElementAttributeData::clearAttributes):
        (WebCore::ElementAttributeData::replaceAttribute): Make use of the assumption
        this will only be called with a valid Element, since the only call site return
        early if there's no Element.
        * dom/ElementAttributeData.h:
        (ElementAttributeData):
        (WebCore::ElementAttributeData::length):
        (WebCore::ElementAttributeData::isEmpty):
        (WebCore::ElementAttributeData::attributeItem):
        (WebCore::ElementAttributeData::removeAttribute):
        (WebCore):
        (WebCore::ElementAttributeData::getAttributeItem):
        (WebCore::ElementAttributeData::getAttributeItemIndex):
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::getNamedItem):
        (WebCore::NamedNodeMap::removeNamedItem):
        (WebCore::NamedNodeMap::setNamedItem):
        (WebCore::NamedNodeMap::item):
        (WebCore::NamedNodeMap::detachFromElement):
        * dom/NamedNodeMap.h:
        (WebCore::NamedNodeMap::length):
        (WebCore::NamedNodeMap::isEmpty):
        (WebCore::NamedNodeMap::attributeItem):
        (WebCore::NamedNodeMap::getAttributeItem):
        (WebCore::NamedNodeMap::getAttributeItemIndex):
        (WebCore::NamedNodeMap::shrinkToLength):
        (WebCore::NamedNodeMap::reserveInitialCapacity):
        (WebCore::NamedNodeMap::addAttribute):
        (WebCore::NamedNodeMap::removeAttribute):
        (NamedNodeMap):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::updateAttributeStyle):
        * dom/StyledElement.h:
        (WebCore::StyledElement::ensureInlineStyleDecl):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::updateType):
        * svg/properties/SVGAnimatedPropertySynchronizer.h:
        * xml/parser/XMLDocumentParserQt.cpp:
        (WebCore::XMLDocumentParser::XMLDocumentParser):

2012-02-13  Alexei Filippov  <alexeif@chromium.org>

        Web Inspector: wrong percent calculations for empty snapshot.
        https://bugs.webkit.org/show_bug.cgi?id=78329

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/DetailedHeapshotGridNodes.js:
        (WebInspector.HeapSnapshotGridNode.prototype._createValueCell):

2012-02-13  Alexei Filippov  <alexeif@chromium.org>

        Web Inspector: add class filter to heap profiler.
        https://bugs.webkit.org/show_bug.cgi?id=78362

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/DataGrid.js:
        (WebInspector.DataGrid.prototype.insertChild):
        * inspector/front-end/DetailedHeapshotView.js:
        (WebInspector.HeapSnapshotSortableDataGrid.prototype._performSorting):
        (WebInspector.HeapSnapshotConstructorsDataGrid):
        (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._nameFilterChanged):
        (WebInspector.DetailedHeapshotView.prototype._changeNameFilter):
        * inspector/front-end/heapProfiler.css:
        (.detailed-heapshot-view .constructors-view-grid):
        (.detailed-heapshot-view .constructors-view-toolbar):
        (.detailed-heapshot-view .constructors-view-toolbar input.constructors-view-filter):

2012-02-13  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: In Inspector.json PropertyDescriptor.writable should be declared optional
        https://bugs.webkit.org/show_bug.cgi?id=77917

        Reviewed by Pavel Feldman.

        Property descriptor is fixed in Inspector.json. Also retroactively in
        0.1 and 1.0.
        Injected script in instructed to never return null property values.

        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/Inspector-0.1.json:
        * inspector/Inspector-1.0.json:
        * inspector/Inspector.json:

2012-02-13  ChangSeok Oh  <shivamidow@gmail.com>

        [GTK] Revise configuration for MHTML
        https://bugs.webkit.org/show_bug.cgi?id=78364

        Reviewed by Gustavo Noronha Silva.

        Added mhtml directory and removed target files duplicated to build when enabling mhtml.
        Archive.cpp, ArchiveFactory.cpp & their headers are included at the above line.
        This duplication has caused build-break if mhtml is enabled.

        No new tests, since no new features.

        * GNUmakefile.am:
        * GNUmakefile.list.am:

2012-02-06  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [EFL] Drop support for the Curl network backend.
        https://bugs.webkit.org/show_bug.cgi?id=77874

        Reviewed by Eric Seidel.

        Nobody seems to be maintaining the Curl backend in WebCore, the
        EFL port developers all seem to be using the Soup backend and the
        port itself has many features which are only implemented for the
        latter.

        No new tests, just some dependency plumbing.

        * PlatformEfl.cmake: Build the glib/soup source files
        unconditionally.
        * platform/efl/FileSystemEfl.cpp: Remove ENABLE(GLIB_SUPPORT) check.

2012-02-13  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: wrap settings selector text and adding a rule with undoable actions.
        https://bugs.webkit.org/show_bug.cgi?id=78482

        Reviewed by Yury Semikhatsky.

        Tests: inspector/styles/undo-add-new-rule.html
               inspector/styles/undo-set-selector-text.html

        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::StyleSheetAction::StyleSheetAction):
        (InspectorCSSAgent::StyleSheetAction):
        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::SetStyleSheetTextAction):
        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::perform):
        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::undo):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::SetPropertyTextAction):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::perform):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::undo):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::mergeId):
        (WebCore::InspectorCSSAgent::TogglePropertyAction::TogglePropertyAction):
        (WebCore::InspectorCSSAgent::TogglePropertyAction::perform):
        (WebCore::InspectorCSSAgent::TogglePropertyAction::undo):
        (InspectorCSSAgent::SetRuleSelectorAction):
        (WebCore::InspectorCSSAgent::SetRuleSelectorAction::SetRuleSelectorAction):
        (WebCore::InspectorCSSAgent::SetRuleSelectorAction::perform):
        (WebCore::InspectorCSSAgent::SetRuleSelectorAction::undo):
        (WebCore):
        (InspectorCSSAgent::AddRuleAction):
        (WebCore::InspectorCSSAgent::AddRuleAction::AddRuleAction):
        (WebCore::InspectorCSSAgent::AddRuleAction::perform):
        (WebCore::InspectorCSSAgent::AddRuleAction::undo):
        (WebCore::InspectorCSSAgent::AddRuleAction::newRuleId):
        (WebCore::InspectorCSSAgent::setStyleSheetText):
        (WebCore::InspectorCSSAgent::setPropertyText):
        (WebCore::InspectorCSSAgent::toggleProperty):
        (WebCore::InspectorCSSAgent::setRuleSelector):
        (WebCore::InspectorCSSAgent::addRule):
        (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
        (WebCore::InspectorCSSAgent::bindStyleSheet):
        (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
        (WebCore::InspectorCSSAgent::styleSheetChanged):
        * inspector/InspectorCSSAgent.h:
        (InspectorCSSAgent):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::create):
        (WebCore::InspectorStyleSheet::InspectorStyleSheet):
        (WebCore::InspectorStyleSheet::reparseStyleSheet):
        (WebCore::InspectorStyleSheet::ruleSelector):
        (WebCore):
        (WebCore::InspectorStyleSheet::setRuleSelector):
        (WebCore::InspectorStyleSheet::addRule):
        (WebCore::InspectorStyleSheet::deleteRule):
        (WebCore::InspectorStyleSheet::setPropertyText):
        (WebCore::InspectorStyleSheet::toggleProperty):
        (WebCore::InspectorStyleSheet::fireStyleSheetChanged):
        (WebCore::InspectorStyleSheetForInlineStyle::create):
        (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
        * inspector/InspectorStyleSheet.h:
        (InspectorStyleSheet):
        (WebCore::InspectorStyleSheet::styleId):
        (InspectorStyleSheetForInlineStyle):

2012-02-13  Hayato Ito  <hayato@chromium.org>

        Rename names defined in ContentInclutionSelector to more intuitive names.
        https://bugs.webkit.org/show_bug.cgi?id=78333

        Reviewed by Hajime Morita.

        This is just refactoring, renaming non-intuitive names to more intuitive names
        so that they match the terms in the spec.

        No tests. No change in behavior.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::NodeRenderingContext):
        (WebCore::nextRendererOf):
        (WebCore::previousRendererOf):
        (WebCore::firstRendererOf):
        (WebCore::lastRendererOf):
        (WebCore::NodeRenderingContext::nextRenderer):
        (WebCore::NodeRenderingContext::previousRenderer):
        * dom/NodeRenderingContext.h:
        (NodeRenderingContext):
        (WebCore::NodeRenderingContext::insertionPoint):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::insertionPointFor):
        (WebCore::ShadowRoot::isSelectorActive):
        (WebCore::ShadowRoot::attach):
        (WebCore::ShadowRoot::selector):
        (WebCore::ShadowRoot::ensureSelector):
        * dom/ShadowRoot.h:
        (WebCore):
        (ShadowRoot):
        * html/shadow/ContentInclusionSelector.h: Removed.
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::HTMLContentElement):
        (WebCore::HTMLContentElement::attach):
        (WebCore::HTMLContentElement::detach):
        * html/shadow/HTMLContentElement.h:
        (WebCore):
        (WebCore::HTMLContentElement::selections):
        (WebCore::HTMLContentElement::hasSelection):
        (HTMLContentElement):
        * html/shadow/HTMLContentSelector.cpp: Renamed from Source/WebCore/html/shadow/ContentInclusionSelector.cpp.
        (WebCore):
        (WebCore::HTMLContentSeleciton::append):
        (WebCore::HTMLContentSeleciton::unlink):
        (WebCore::HTMLContentSelectionList::HTMLContentSelectionList):
        (WebCore::HTMLContentSelectionList::~HTMLContentSelectionList):
        (WebCore::HTMLContentSelectionList::find):
        (WebCore::HTMLContentSelectionList::clear):
        (WebCore::HTMLContentSelectionList::append):
        (WebCore::HTMLContentSelector::HTMLContentSelector):
        (WebCore::HTMLContentSelector::~HTMLContentSelector):
        (WebCore::HTMLContentSelector::select):
        (WebCore::HTMLContentSelector::unselect):
        (WebCore::HTMLContentSelector::findFor):
        (WebCore::HTMLContentSelector::didSelect):
        (WebCore::HTMLContentSelector::willSelectOver):
        * html/shadow/HTMLContentSelector.h: Added.
        (WebCore):
        (HTMLContentSeleciton):
        (WebCore::HTMLContentSeleciton::insertionPoint):
        (WebCore::HTMLContentSeleciton::node):
        (WebCore::HTMLContentSeleciton::next):
        (WebCore::HTMLContentSeleciton::previous):
        (WebCore::HTMLContentSeleciton::HTMLContentSeleciton):
        (WebCore::HTMLContentSeleciton::create):
        (HTMLContentSelectionList):
        (WebCore::HTMLContentSelectionList::first):
        (WebCore::HTMLContentSelectionList::last):
        (WebCore::HTMLContentSelectionList::isEmpty):
        (HTMLContentSelectionSet):
        (WebCore::HTMLContentSelectionSet::add):
        (WebCore::HTMLContentSelectionSet::remove):
        (WebCore::HTMLContentSelectionSet::isEmpty):
        (Translator):
        (WebCore::HTMLContentSelectionSet::Translator::hash):
        (WebCore::HTMLContentSelectionSet::Translator::equal):
        (WebCore::HTMLContentSelectionSet::Hash::hash):
        (WebCore::HTMLContentSelectionSet::Hash::equal):
        (Hash):
        (WebCore::HTMLContentSelectionSet::find):
        (HTMLContentSelector):
        (WebCore::HTMLContentSelector::hasCandidates):
        * testing/Internals.cpp:
        (WebCore::Internals::includerFor):

2012-02-13  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Texmap] morphing-cubes animation appears too close when clicking the button
        https://bugs.webkit.org/show_bug.cgi?id=78476

        Fixed bug in TextureMapperAnimation that made transform animations that go to/from identity
        to not work.

        Reviewed by Simon Hausmann.

        No behavior changes.

        * platform/graphics/texmap/TextureMapperAnimation.cpp:
        (WebCore::applyTransformAnimation):

2012-02-13  Yosifumi Inoue  <yosin@chromium.org>

        [Forms] Use enum instead of bool for HTMLInputElement::setValue
        https://bugs.webkit.org/show_bug.cgi?id=75217

        Reviewed by Kent Tamura.

        Use TextFieldEventBehavior enum instead of sendChangeEvent bool
        parameter for HTMLInputElement::setValue method. This new enum
        parameter will be extended to dispatch input and change events
        when user agent populates input field as specified in
        "Common events behavior" of HTML5 standard.

        This patch is required for fixing bug 75067 "[Forms] Spin buttons
        of number input type should fire both input and change event."

        No new tests. Existing tests cover this patch.

        * html/BaseButtonInputType.cpp:
        (WebCore::BaseButtonInputType::setValue):
        * html/BaseButtonInputType.h:
        * html/BaseCheckableInputType.cpp:
        (WebCore::BaseCheckableInputType::setValue):
        * html/BaseCheckableInputType.h:
        * html/BaseDateAndTimeInputType.cpp:
        (WebCore::BaseDateAndTimeInputType::setValueAsNumber):
        * html/BaseDateAndTimeInputType.h:
        * html/CheckboxInputType.cpp:
        (WebCore::CheckboxInputType::willDispatchClick):
        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::setValue):
        * html/ColorInputType.h:
        * html/FileInputType.cpp:
        (WebCore::FileInputType::setValue):
        * html/FileInputType.h:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::applyStep):
        (WebCore::HTMLInputElement::stepUp):
        (WebCore::HTMLInputElement::stepDown):
        (WebCore::HTMLInputElement::setChecked):
        (WebCore::HTMLInputElement::setValueForUser):
        (WebCore::HTMLInputElement::setValue):
        (WebCore::HTMLInputElement::setValueInternal):
        (WebCore::HTMLInputElement::setValueAsNumber):
        (WebCore::HTMLInputElement::stepUpFromRenderer):
        * html/HTMLInputElement.h:
        * html/HTMLTextFormControlElement.h:
        * html/HiddenInputType.cpp:
        (WebCore::HiddenInputType::setValue):
        * html/HiddenInputType.h:
        * html/InputType.cpp:
        (WebCore::InputType::setValueAsNumber):
        (WebCore::InputType::setValue):
        * html/InputType.h:
        * html/NumberInputType.cpp:
        (WebCore::NumberInputType::setValueAsNumber):
        * html/NumberInputType.h:
        * html/RadioInputType.cpp:
        (WebCore::RadioInputType::willDispatchClick):
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::setValueAsNumber):
        (WebCore::RangeInputType::handleKeydownEvent):
        (WebCore::RangeInputType::setValue):
        * html/RangeInputType.h:
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::setValue):
        * html/TextFieldInputType.h:

2012-02-13  Andreas Kling  <awesomekling@apple.com>

        Move attribute style invalidation to attributeChanged().
        <http://webkit.org/b/78461>

        Reviewed by Antti Koivisto.

        Moved attribute style invalidation out of the parseAttribute() overloads
        and added an "isPresentationAttribute(Attribute*) virtual to StyledElement.
        Returning true for a given Attribute will cause attribute style invalidation
        when that attribute passes through attributeChanged().

        Removed a couple of parseAttribute() overloads whose only remaining purpose
        was invalidating attribute style.

        For form elements that deliberately don't map the "align" attribute, added
        short-circuits in isPresentationAttribute instead of falling back to the
        respective base class (which may othweise then map "align")

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged):
        * dom/StyledElement.h:
        (WebCore::StyledElement::isPresentationAttribute):
        * html/HTMLBRElement.cpp:
        (WebCore::HTMLBRElement::isPresentationAttribute):
        * html/HTMLBRElement.h:
        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::isPresentationAttribute):
        (WebCore::HTMLBodyElement::collectStyleForAttribute):
        (WebCore::HTMLBodyElement::parseAttribute):
        * html/HTMLBodyElement.h:
        * html/HTMLButtonElement.cpp:
        (WebCore::HTMLButtonElement::isPresentationAttribute):
        (WebCore::HTMLButtonElement::parseAttribute):
        * html/HTMLButtonElement.h:
        * html/HTMLDivElement.cpp:
        (WebCore::HTMLDivElement::isPresentationAttribute):
        * html/HTMLDivElement.h:
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::isPresentationAttribute):
        (WebCore::HTMLElement::parseAttribute):
        * html/HTMLElement.h:
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::isPresentationAttribute):
        (WebCore::HTMLEmbedElement::parseAttribute):
        * html/HTMLEmbedElement.h:
        * html/HTMLFontElement.cpp:
        (WebCore::HTMLFontElement::isPresentationAttribute):
        * html/HTMLFontElement.h:
        * html/HTMLFrameSetElement.cpp:
        (WebCore::HTMLFrameSetElement::isPresentationAttribute):
        (WebCore::HTMLFrameSetElement::parseAttribute):
        * html/HTMLFrameSetElement.h:
        * html/HTMLHRElement.cpp:
        (WebCore::HTMLHRElement::isPresentationAttribute):
        (WebCore::HTMLHRElement::collectStyleForAttribute):
        * html/HTMLHRElement.h:
        * html/HTMLIFrameElement.cpp:
        (WebCore::HTMLIFrameElement::isPresentationAttribute):
        (WebCore::HTMLIFrameElement::collectStyleForAttribute):
        (WebCore::HTMLIFrameElement::parseAttribute):
        * html/HTMLIFrameElement.h:
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::isPresentationAttribute):
        (WebCore::HTMLImageElement::collectStyleForAttribute):
        (WebCore::HTMLImageElement::parseAttribute):
        * html/HTMLImageElement.h:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::isPresentationAttribute):
        (WebCore::HTMLInputElement::collectStyleForAttribute):
        (WebCore::HTMLInputElement::parseAttribute):
        * html/HTMLInputElement.h:
        * html/HTMLLIElement.cpp:
        (WebCore::HTMLLIElement::isPresentationAttribute):
        (WebCore::HTMLLIElement::parseAttribute):
        * html/HTMLLIElement.h:
        * html/HTMLMarqueeElement.cpp:
        (WebCore::HTMLMarqueeElement::isPresentationAttribute):
        (WebCore::HTMLMarqueeElement::collectStyleForAttribute):
        (WebCore::HTMLMarqueeElement::parseAttribute):
        * html/HTMLMarqueeElement.h:
        * html/HTMLOListElement.cpp:
        (WebCore::HTMLOListElement::isPresentationAttribute):
        (WebCore::HTMLOListElement::parseAttribute):
        * html/HTMLOListElement.h:
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::isPresentationAttribute):
        (WebCore::HTMLObjectElement::parseAttribute):
        * html/HTMLObjectElement.h:
        * html/HTMLParagraphElement.cpp:
        (WebCore::HTMLParagraphElement::isPresentationAttribute):
        * html/HTMLParagraphElement.h:
        * html/HTMLPlugInElement.cpp:
        (WebCore::HTMLPlugInElement::isPresentationAttribute):
        (WebCore::HTMLPlugInElement::collectStyleForAttribute):
        * html/HTMLPlugInElement.h:
        * html/HTMLPreElement.cpp:
        (WebCore::HTMLPreElement::isPresentationAttribute):
        (WebCore::HTMLPreElement::collectStyleForAttribute):
        * html/HTMLPreElement.h:
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::isPresentationAttribute):
        (WebCore::HTMLSelectElement::parseAttribute):
        * html/HTMLSelectElement.h:
        * html/HTMLTableCaptionElement.cpp:
        (WebCore::HTMLTableCaptionElement::isPresentationAttribute):
        (WebCore::HTMLTableCaptionElement::parseAttribute):
        * html/HTMLTableCaptionElement.h:
        * html/HTMLTableCellElement.cpp:
        (WebCore::HTMLTableCellElement::isPresentationAttribute):
        (WebCore::HTMLTableCellElement::collectStyleForAttribute):
        (WebCore::HTMLTableCellElement::parseAttribute):
        * html/HTMLTableCellElement.h:
        * html/HTMLTableColElement.cpp:
        (WebCore::HTMLTableColElement::isPresentationAttribute):
        (WebCore::HTMLTableColElement::parseAttribute):
        * html/HTMLTableColElement.h:
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::isPresentationAttribute):
        (WebCore::HTMLTableElement::parseAttribute):
        * html/HTMLTableElement.h:
        * html/HTMLTablePartElement.cpp:
        (WebCore::HTMLTablePartElement::isPresentationAttribute):
        (WebCore::HTMLTablePartElement::collectStyleForAttribute):
        * html/HTMLTablePartElement.h:
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::isPresentationAttribute):
        (WebCore::HTMLTextAreaElement::parseAttribute):
        * html/HTMLTextAreaElement.h:
        * html/HTMLUListElement.cpp:
        (WebCore::HTMLUListElement::isPresentationAttribute):
        (WebCore::HTMLUListElement::collectStyleForAttribute):
        * html/HTMLUListElement.h:
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::isPresentationAttribute):
        (WebCore::HTMLVideoElement::parseAttribute):
        * html/HTMLVideoElement.h:
        * mathml/MathMLElement.cpp:
        (WebCore::MathMLElement::isPresentationAttribute):
        (WebCore::MathMLElement::collectStyleForAttribute):
        * mathml/MathMLElement.h:
        * svg/SVGImageElement.cpp:
        (WebCore::SVGImageElement::isPresentationAttribute):
        (WebCore::SVGImageElement::parseAttribute):
        * svg/SVGImageElement.h:
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::isPresentationAttribute):
        (WebCore::SVGStyledElement::parseAttribute):
        * svg/SVGStyledElement.h:
        * svg/SVGTextContentElement.cpp:
        (WebCore::SVGTextContentElement::isPresentationAttribute):
        (WebCore::SVGTextContentElement::parseAttribute):
        * svg/SVGTextContentElement.h:

2012-02-13  Kentaro Hara  <haraken@chromium.org>

        Add [JSCustomToJSObject] IDL attribute to interfaces that have
        custom toJS() but do not have custom toV8()
        https://bugs.webkit.org/show_bug.cgi?id=78466

        Reviewed by Adam Barth.

        This is the second step to remove hard-coding in HasCustomToV8Implementation()
        in CodeGeneratorV8.pm. This patch replaces [JSCustomToJS] with [JSCustomToJSObject]
        for interfaces which have custom toJS() but do not have custom toV8().

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (HasCustomToV8Implementation): I found that AbstractWorker and CanvasRenderingContext
        are the only IDL files to which I need to add [JSCustomToJSObject].
        Other IDL files which had been listed here do not have [JSCustomToJS].
        * html/canvas/CanvasRenderingContext.idl:
        * workers/AbstractWorker.idl:

2012-02-13  Andreas Kling  <awesomekling@apple.com>

        Avoid unnecessary work when evaluating style sharing candidates.
        <http://webkit.org/b/78220>

        Reviewed by Antti Koivisto.

        Do the cheap checks (bitfields, pointers) before calling virtuals and doing hash lookups.
        Remove comparison of attributes that are reflected in the attribute styles (cellpadding.)
        Moved comparison of "type" and "readonly" attributes into the more specific
        canShareStyleWithControl() since they are only relevant for input elements. Don't bother
        calling isFormControlElement() on both elements as they already have the same tagQName().

        Altogether this knocks off ~8ms worth of samples per cycle of the "Moz" page cycler test.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::canShareStyleWithControl):
        (WebCore::CSSStyleSelector::canShareStyleWithElement):
        (WebCore::isCommonAttributeSelectorAttribute):

2012-02-13  Arko Saha  <arko@motorola.com>

        <summary> is not keyboard accessible.
        https://bugs.webkit.org/show_bug.cgi?id=75478

        Reviewed by Hajime Morita.

        Toggle the content of <details> element on pressing Enter or Spacebar
        key on a focused <summary> element.

        Test: fast/html/details-keyboard-show-hide.html

        * html/HTMLSummaryElement.cpp:
        (WebCore::HTMLSummaryElement::supportsFocus):
        (WebCore):
        (WebCore::HTMLSummaryElement::defaultEventHandler):
        * html/HTMLSummaryElement.h:
        (HTMLSummaryElement):

2012-02-13  Gavin Barraclough  <barraclough@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=78434
        Unreviewed - temporarily reverting r107498 will I fix a couple of testcases.

        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore):
        * bindings/js/JSDOMWindowBase.h:
        (JSDOMWindowBase):

2012-02-13  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: get rid of cycles in containment view of an object.
        https://bugs.webkit.org/show_bug.cgi?id=78462

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/DetailedHeapshotGridNodes.js:
        (WebInspector.HeapSnapshotObjectNode.prototype.updateHasChildren):
        (WebInspector.HeapSnapshotObjectNode.prototype._prefixObjectCell):

2012-02-12  Adam Barth  <abarth@webkit.org>

        Remove ENABLE(MEDIA_STREAM) from Navigator.h
        https://bugs.webkit.org/show_bug.cgi?id=78467

        Reviewed by Kentaro Hara.

        Navigator.webkitGetUser media doesn't really have anything to do with
        Navigator.cpp.  This patch moves it into the mediastream directory and
        removes the ENABLE(MEDIA_STREAM) ifdefs in Navigator.h and
        Navigator.cpp.

        * GNUmakefile.list.am:
        * WebCore.gypi:
        * mediastream/NavigatorMediaStream.cpp: Added.
        (WebCore):
        (WebCore::NavigatorMediaStream::NavigatorMediaStream):
        (WebCore::NavigatorMediaStream::~NavigatorMediaStream):
        (WebCore::NavigatorMediaStream::webkitGetUserMedia):
        * mediastream/NavigatorMediaStream.h: Added.
        (WebCore):
        (NavigatorMediaStream):
        * mediastream/NavigatorMediaStream.idl: Added.
        * page/Navigator.cpp:
        (WebCore):
        * page/Navigator.h:
        (WebCore):
        (Navigator):
        * page/Navigator.idl:

2012-02-12  Adam Barth  <abarth@webkit.org>

        Navigator.webkitGetUserMedia doesn't need to be custom
        https://bugs.webkit.org/show_bug.cgi?id=78464

        Reviewed by Eric Seidel.

        The code generator has gotten smarter since this function was added.

        * GNUmakefile.list.am:
        * UseV8.cmake:
        * WebCore.gypi:
        * bindings/js/JSNavigatorCustom.cpp: Removed.
        * bindings/v8/custom/V8NavigatorCustom.cpp: Removed.
        * page/Navigator.idl:

2012-02-12  Adam Barth  <abarth@webkit.org>

        Move ENABLE(GAMEPAD) logic out of Navigator.h/cpp
        https://bugs.webkit.org/show_bug.cgi?id=78457

        Reviewed by Hajime Morita.

        This patch moves GAMEPAD-specific logic out of Navigator by introducing
        the concept of a NavigatorSupplement, analogous to the recently
        introduced PageSupplement.

        * Modules/gamepad/NavigatorGamepad.cpp:
        (WebCore::NavigatorGamepad::from):
        (WebCore):
        (WebCore::NavigatorGamepad::webkitGamepads):
        (WebCore::NavigatorGamepad::gamepads):
        * Modules/gamepad/NavigatorGamepad.h:
        (NavigatorGamepad):
        * WebCore.gypi:
        * dom/DeviceMotionController.cpp:
        (WebCore::DeviceMotionController::supplementName):
        * page/Navigator.cpp:
        (WebCore::Navigator::provideSupplement):
        (WebCore):
        (WebCore::Navigator::requireSupplement):
        * page/Navigator.h:
        (Navigator):
        * page/Page.h:
        (Page):
        * page/PageSupplement.h:
            - This patch cleans up some nits in PageSupplement.
        (WebCore):
        (PageSupplement):

2012-02-12  Kentaro Hara  <haraken@chromium.org>

        Add a [V8CustomToJSObject] IDL attribute
        https://bugs.webkit.org/show_bug.cgi?id=78450

        Reviewed by Adam Barth.

        This is the first step to remove hard-coding in HasCustomToV8Implementation()
        in CodeGeneratorV8.pm. This patch adds [V8CustomToJSObject]
        to interfaces which have custom toV8() but do not have custom toJS().

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm: Replaced hard-coding with [V8CustomToJSObject].
        (HasCustomToV8Implementation):

        * css/CSSStyleSheet.idl: Added [V8CustomToJSObject].
        * dom/DOMStringMap.idl:
        * dom/Element.idl:
        * dom/NamedNodeMap.idl:
        * html/DOMTokenList.idl:
        * html/HTMLDocument.idl:
        * html/HTMLElement.idl:
        * html/canvas/CanvasPixelArray.idl:
        * inspector/ScriptProfile.idl:
        * inspector/ScriptProfileNode.idl:
        * page/DOMWindow.idl:
        * page/Location.idl:
        * svg/SVGDocument.idl:
        * svg/SVGElement.idl:
        * workers/WorkerContext.idl:

2012-02-12  David Barr  <davidbarr@chromium.org>

        CSS3 currentColor on outline-color gets treated as inherit
        https://bugs.webkit.org/show_bug.cgi?id=73180

        Reviewed by Antti Koivisto.

        The CSS2 and CSS3 UI modules state that outline-color
        is not inherited. Make it so.
        http://www.w3.org/TR/CSS2/ui.html#propdef-outline-color
        http://www.w3.org/TR/css3-ui/#outline-color

        Test: fast/css/outline-currentcolor.html

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):

2012-02-12  Antti Koivisto  <antti@apple.com>

        CSSPageRule should inherit from CSSRule instead of CSSStyleRule
        https://bugs.webkit.org/show_bug.cgi?id=78452

        Reviewed by Anders Carlsson.

        This matches CSSOM and eliminates the only subclass of CSSStyleRule, enabling further refactoring.

        * css/CSSPageRule.cpp:
        (WebCore::CSSPageRule::CSSPageRule):
        (WebCore::CSSPageRule::~CSSPageRule):
        (WebCore):
        (WebCore::CSSPageRule::selectorText):
        (WebCore::CSSPageRule::setSelectorText):
        (WebCore::CSSPageRule::cssText):
        * css/CSSPageRule.h:
        (CSSPageRule):
        (WebCore::CSSPageRule::style):
        (WebCore::CSSPageRule::selector):
        (WebCore::CSSPageRule::properties):
        (WebCore::CSSPageRule::adoptSelectorVector):
        (WebCore::CSSPageRule::setDeclaration):
        * css/CSSRule.cpp:
        (WebCore::CSSRule::cssText):
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::generateSelectorText):
        * css/CSSStyleSelector.cpp:
        (WebCore::RuleSet::pageRules):
        (RuleSet):
        (WebCore::RuleSet::addPageRule):
        (WebCore::comparePageRules):
        (WebCore::CSSStyleSelector::matchPageRules):
        (WebCore::CSSStyleSelector::matchPageRulesForList):
        * css/CSSStyleSelector.h:
        (CSSStyleSelector):

2012-02-12  Shinya Kawanaka  <shinyak@google.com>

        Introduce ShadowRootList.
        https://bugs.webkit.org/show_bug.cgi?id=78069

        Reviewed by Hajime Morita.

        This is a step to implement multiple shadow subtrees.

        This patch introduces a shadow root list. ShadowRootList is a doubly linked list,
        and each shadow root now has a younger shadow root and older shadow root,
        which are a previous element and a next element respectively.
        Since a visual tree traversal, which will be introduced in coming patches, will need a older shadow root,
        we make a shadow root list a doubly linked list.

        However, ShadowRootList does not have more than one shadow root now.
        This will be changed in a series of coming patches.

        Element::shadowRoot(), setShadowRoot(), ensureShadowRoot(), and removeShadowRoot() are
        emulated using ShadowRootList for a while. These API will be replaced to ShadowRootList API later.

        No new tests, no change in behavior.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DOMAllInOne.cpp:
        * dom/Element.cpp:
        (WebCore::Element::hasShadowRoot):
          Retruns true if an element has a shadowRoot.
        (WebCore::Element::shadowRootList):
          Gets shadow root list if any.
        (WebCore::Element::shadowRoot):
          Gets the first shadow root from the shadow root list.
        (WebCore::Element::setShadowRoot):
          Sets the first shadow root to the shadow root list.
        (WebCore::Element::removeShadowRoot):
          Removes all the shadow roots in the shadow root list.
        * dom/Element.h:
        (WebCore):
        (Element):
        * dom/ElementRareData.h:
        (ElementRareData):
        (WebCore::ElementRareData::ElementRareData):
          Has shadow root lists instead of shadow root.
        (WebCore::ElementRareData::~ElementRareData):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::ShadowRoot):
        (WebCore::ShadowRoot::~ShadowRoot):
        * dom/ShadowRoot.h:
        (ShadowRoot):
        (WebCore::ShadowRoot::youngerShadowRoot):
        (WebCore::ShadowRoot::olderShadowRoot):
        * dom/ShadowRootList.cpp: Added.
        (WebCore):
        (WebCore::ShadowRootList::ShadowRootList):
        (WebCore::ShadowRootList::~ShadowRootList):
        (WebCore::ShadowRootList::pushShadowRoot):
          Adds a shadow root into the list. Currently we limit the list can have only one shadow root.
        (WebCore::ShadowRootList::popShadowRoot):
          Removes and returns the youngest shadow root if any.
        * dom/ShadowRootList.h: Added.
        (WebCore):
        (ShadowRootList):
        (WebCore::ShadowRootList::hasShadowRoot):
        (WebCore::ShadowRootList::youngestShadowRoot):
        (WebCore::ShadowRootList::oldestShadowRoot):

2012-02-12  Shinya Kawanaka  <shinyak@google.com>

        INPUT shouldn't create ShadowRoot dynamically.
        https://bugs.webkit.org/show_bug.cgi?id=77930

        Reviewed by Dimitri Glazkov.

        When input type is changed, ShadowRoot was being re-created. This makes it difficult to
        support multiple shadow subtrees. This patch makes input re-use the existing shadow root
        instead of re-creating a shaow root. A shadow root should be created when an element is created.

        Since media control elements are implemented using input elements, these elements should also
        create a shadow root in their construction phase.

        Test: fast/dom/shadow/input-shadow-nochange.html
        Tests related to media controls should be covered by existing tests.

        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::createShadowSubtree):
        * html/FileInputType.cpp:
        (WebCore::FileInputType::createShadowSubtree):
        (WebCore::FileInputType::multipleAttributeChanged):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::createShadowSubtree):
        * html/InputType.cpp:
        (WebCore::InputType::destroyShadowSubtree):
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::createShadowSubtree):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::createShadowSubtree):
        * html/shadow/MediaControlElements.cpp:
          Creates a shadow tree in the construction phase.
        (WebCore::MediaControlPanelMuteButtonElement::create):
        (WebCore::MediaControlVolumeSliderMuteButtonElement::create):
        (WebCore::MediaControlPlayButtonElement::create):
        (WebCore::MediaControlSeekForwardButtonElement::create):
        (WebCore::MediaControlSeekBackButtonElement::create):
        (WebCore::MediaControlRewindButtonElement::create):
        (WebCore::MediaControlReturnToRealtimeButtonElement::create):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
        (WebCore::MediaControlTimelineElement::create):
        (WebCore::MediaControlVolumeSliderElement::create):
        (WebCore::MediaControlFullscreenVolumeSliderElement::create):
        (WebCore::MediaControlFullscreenButtonElement::create):
        (WebCore::MediaControlFullscreenVolumeMinButtonElement::create):
        (WebCore::MediaControlFullscreenVolumeMaxButtonElement::create):

2012-02-12  Shinya Kawanaka  <shinyak@google.com>

        SVGTRefElement shouldn't create a shadow root dynamically.
        https://bugs.webkit.org/show_bug.cgi?id=77938

        Reviewed by Hajime Morita.

        SVGTRefElement creates a shadow root dynamically. This will cause a problem to support
        multiple shadow subtrees. So it should be created in a constructor phase.

        Test: svg/custom/tref-shadowdom.html

        * svg/SVGTRefElement.cpp:
        (WebCore::SVGTRefElement::create):
        (WebCore::SVGTRefElement::createShadowSubtree):
        (WebCore):
        (WebCore::SVGTRefElement::updateReferencedText):
        * svg/SVGTRefElement.h:
        (SVGTRefElement):

2012-02-12  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests results.

        * bindings/scripts/test/JS/JSFloat64Array.cpp:
        (WebCore):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        (WebCore):
        (WebCore::JSTestActiveDOMObject::destroy):
        (WebCore::JSTestActiveDOMObject::~JSTestActiveDOMObject):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
        (JSTestActiveDOMObject):
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        (WebCore):
        (WebCore::JSTestCustomNamedGetter::destroy):
        (WebCore::JSTestCustomNamedGetter::~JSTestCustomNamedGetter):
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
        (JSTestCustomNamedGetter):
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        (WebCore):
        (WebCore::JSTestEventConstructor::destroy):
        (WebCore::JSTestEventConstructor::~JSTestEventConstructor):
        * bindings/scripts/test/JS/JSTestEventConstructor.h:
        (JSTestEventConstructor):
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        (WebCore):
        (WebCore::JSTestEventTarget::destroy):
        (WebCore::JSTestEventTarget::~JSTestEventTarget):
        * bindings/scripts/test/JS/JSTestEventTarget.h:
        (JSTestEventTarget):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore):
        (WebCore::JSTestInterface::destroy):
        (WebCore::JSTestInterface::~JSTestInterface):
        * bindings/scripts/test/JS/JSTestInterface.h:
        (JSTestInterface):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        (WebCore):
        (WebCore::JSTestMediaQueryListListener::destroy):
        (WebCore::JSTestMediaQueryListListener::~JSTestMediaQueryListListener):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
        (JSTestMediaQueryListListener):
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore):
        (WebCore::JSTestNamedConstructor::destroy):
        (WebCore::JSTestNamedConstructor::~JSTestNamedConstructor):
        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
        (JSTestNamedConstructor):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore):
        (WebCore::JSTestObj::destroy):
        (WebCore::JSTestObj::~JSTestObj):
        * bindings/scripts/test/JS/JSTestObj.h:
        (JSTestObj):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore):
        (WebCore::JSTestSerializedScriptValueInterface::destroy):
        (WebCore::JSTestSerializedScriptValueInterface::~JSTestSerializedScriptValueInterface):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
        (JSTestSerializedScriptValueInterface):

2012-02-12  Abhishek Arya  <inferno@chromium.org>

        Regression (r104528): Crash when moving nodes across documents.
        https://bugs.webkit.org/show_bug.cgi?id=78432

        Reviewed by Hajime Morita.

        Test: fast/dom/node-move-to-new-document-crash-main.html

        * dom/TreeScopeAdopter.cpp:
        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
        (WebCore::TreeScopeAdopter::moveTreeToNewDocument):
        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):

2012-02-12  Hajime Morrita  <morrita@chromium.org>

        Page should have less intrusive way to associate API implementation objects.
        https://bugs.webkit.org/show_bug.cgi?id=78085

        Reviewed by Adam Barth.

        Introducing PageSupplement interface to attach behind-the-flag-ish
        objects to Page instances.

        This change aims to improve modularity of Modules/ entries. With
        PageSupplement mechinary, we can eliminate ifdef conditionals from
        Page.h/Page.cpp and are able to add Modules/ entries without
        touching non-Module WebCore files. WebKit API classes like WebPage
        can "provide" these objects dynamically during the Page setup phase.

        In this change, DeviceMotionController and
        DeviceOrientationController is updated to adopt PageSupplement
        inteface for an illustrative purpose because they are going to
        move into Modules/ shortly. Other Page associated API backing
        objects also should be transformed to PageSupplement family.

        Reviewed by Adam Barth.

        No new tests. No behavior change.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DeviceMotionClient.h:
        (WebCore):
        * dom/DeviceMotionController.cpp:
        (WebCore::DeviceMotionController::supplementName):
        (WebCore):
        (WebCore::DeviceMotionController::isActiveAt):
        (WebCore::provideDeviceMotionTo):
        * dom/DeviceMotionController.h:
        (DeviceMotionController):
        (WebCore::DeviceMotionController::from):
        * dom/DeviceOrientationClient.h:
        (WebCore):
        * dom/DeviceOrientationController.cpp:
        (WebCore::DeviceOrientationController::supplementName):
        (WebCore):
        (WebCore::DeviceOrientationController::isActiveAt):
        (WebCore::provideDeviceOrientationTo):
        * dom/DeviceOrientationController.h:
        (DeviceOrientationController):
        (WebCore::DeviceOrientationController::from):
        * dom/Document.cpp:
        (WebCore::Document::suspendActiveDOMObjects):
        (WebCore::Document::resumeActiveDOMObjects):
        * history/PageCache.cpp:
        (WebCore::logCanCachePageDecision):
        (WebCore::PageCache::canCache):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::addEventListener):
        (WebCore::DOMWindow::removeEventListener):
        (WebCore::DOMWindow::removeAllEventListeners):
        * page/PageSupplement.cpp:
        (WebCore::PageSupplement::~PageSupplement):
        (WebCore::PageSupplement::provideTo):
        (WebCore::PageSupplement::from):
        * page/PageSupplement.h:
        * page/Page.cpp:
        (WebCore::Page::Page):
        (WebCore::Page::~Page):
        (WebCore::Page::provideSupplement):
        (WebCore):
        (WebCore::Page::requireSupplement):
        (WebCore::Page::notifyDestroyedToSupplements):
        (WebCore::Page::PageClients::PageClients):
        * page/Page.h:
        (WebCore):
        (PageClients):
        (Page):
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::dataChanged):

2012-02-12  Nico Weber  <nicolasweber@gmx.de>

        [chromium/mac] Change the type of webkit_system_interface from static_library to none
        https://bugs.webkit.org/show_bug.cgi?id=78441

        This target exists only run an action and to add a dependency to the
        action's output to targets depending on webkit_system_interface.
        This is what target type 'none' is for. With this, no dummy source
        file is needed, and no empty libwebkit_system_interface.a is created.
        This also fixes this (harmless) libtool warning:

        libtool: warning for library: libwebkit_system_interface.a the table
        of contents is empty (no object file members in the library define
        global symbols)

        Reviewed by Adam Barth.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gyp/mac/Empty.cpp: Removed.

2012-02-12  Kenichi Ishibashi  <bashi@chromium.org>

        If @font-face does not provide an explicit italic/bold variant, regular is used.
        https://bugs.webkit.org/show_bug.cgi?id=34147

        Reviewed by Dan Bernstein.

        Update @font-face handling code so that it matches @font-face behavior to the current draft of CSS3 Font spec. The original patch was written by yusukes@chromium.org.
        - Drops support for "bolder", "lighter", and "all" value. These are no longer allowed.
        - Only allows one value for font-style and font-weight.

        Tests: fast/css/font-face-synthetic-bold-italic.html
               fast/css/font-face-weight-matching.html

        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule): Removed "all", "lighter", "bolder" handling code.
        (WebCore::compareFontFaces):Updated the weight matching algortihm.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue): Replaced parseFontStyle() call with checking primitive values.
        (WebCore::CSSParser::parseFontWeight): Changed to allow only primitive values.
        (WebCore::CSSParser::createFontFaceRule): Removed checks for font-weight and font-style.
        (WebCore::CSSParser::deleteFontFaceOnlyValues): Ditto.
        * css/CSSParser.h: Removed parseFontStyle().

2012-02-12  David Reveman  <reveman@chromium.org>

        [Chromium] Avoid unnecessary memset in per-tile layer updater.
        https://bugs.webkit.org/show_bug.cgi?id=78426

        Reviewed by Stephen White.

        Use our own SkBitmap and call SkBitmap::allocPixels() instead of
        letting SkDevice construct a SkBitmap. This avoids an unnecessary
        memset otherwise done by SkDevice.

        No new tests.

        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::prepareRect):
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::updateRect):
        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
        (Texture):

2012-02-12  Joe Thomas  <joethomas@motorola.com>

        Add toText and isTextNode helpers in Text class.
        https://bugs.webkit.org/show_bug.cgi?id=78140

        Added a new helper function toText() in dom/Text.h which does the type casting operation to Text object.
        Modified the code to make use of this helper function.

        Reviewed by Adam Barth.

        No new tests.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::accessibleNameForNode):
        * bindings/v8/custom/V8NodeCustom.cpp:
        (WebCore::toV8Slow):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOneSelector):
        * dom/Attr.cpp:
        (WebCore::Attr::childrenChanged):
        * dom/Element.cpp:
        (WebCore::Element::recalcStyle):
        * dom/Node.cpp:
        (WebCore::Node::normalize):
        * dom/Position.cpp:
        (WebCore::Position::containerText):
        (WebCore::Position::leadingWhitespacePosition):
        * dom/Range.cpp:
        (WebCore::Range::insertNode):
        (WebCore::Range::getBorderAndTextQuads):
        * dom/ScriptElement.cpp:
        (WebCore::ScriptElement::scriptContent):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::recalcShadowTreeStyle):
        * dom/Text.h: Added new helper function toText.
        (WebCore::toText): new helper function which does the type casting operation to Text object.
        (WebCore):
        * editing/ApplyBlockElementCommand.cpp:
        (WebCore::isNewLineAtPosition):
        (WebCore::ApplyBlockElementCommand::endOfNextParagrahSplittingTextNodesIfNeeded):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::splitTextAtEnd):
        (WebCore::ApplyStyleCommand::splitTextElementAtEnd):
        (WebCore::ApplyStyleCommand::joinChildTextNodes):
        * editing/BreakBlockquoteCommand.cpp:
        (WebCore::BreakBlockquoteCommand::doApply):
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::insertNodeAt):
        (WebCore::CompositeEditCommand::positionOutsideTabSpan):
        (WebCore::CompositeEditCommand::canRebalance):
        (WebCore::CompositeEditCommand::rebalanceWhitespaceAt):
        (WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit):
        (WebCore::CompositeEditCommand::deleteInsignificantText):
        (WebCore::CompositeEditCommand::removePlaceholderAt):
        (WebCore::CompositeEditCommand::cleanupAfterDeletion):
        (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
        (WebCore::DeleteSelectionCommand::fixupWhitespace):
        * editing/Editor.cpp:
        (WebCore::Editor::setComposition):
        * editing/InsertLineBreakCommand.cpp:
        (WebCore::InsertLineBreakCommand::doApply):
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply):
        * editing/InsertTextCommand.cpp:
        (WebCore::InsertTextCommand::insertTab):
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::appendStartMarkup):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
        (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace):
        (WebCore::ReplaceSelectionCommand::insertAsListItems):
        (WebCore::ReplaceSelectionCommand::performTrivialReplace):
        * editing/htmlediting.cpp:
        (WebCore::lineBreakExistsAtPosition):
        * editing/visible_units.cpp:
        (WebCore::startPositionForLine):
        (WebCore::endPositionForLine):
        (WebCore::startOfParagraph):
        (WebCore::endOfParagraph):
        * html/HTMLElement.cpp:
        (WebCore::replaceChildrenWithFragment):
        (WebCore::replaceChildrenWithText):
        (WebCore::mergeWithNextTextNode):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::hasFallbackContent):
        (WebCore::HTMLObjectElement::updateDocNamedItem):
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::setText):
        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::setText):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::defaultValue):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::innerTextValue):
        (WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks):
        * html/HTMLTitleElement.cpp:
        (WebCore::HTMLTitleElement::text):
        (WebCore::HTMLTitleElement::setText):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::setNodeValue):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::originalText):
        * rendering/RenderTextFragment.cpp:
        (WebCore::RenderTextFragment::originalText):
        (WebCore::RenderTextFragment::previousCharacter):

2012-02-12  Kentaro Hara  <haraken@chromium.org>

        Remove [CPPCustom] from CodeGeneratorCPP.pm
        https://bugs.webkit.org/show_bug.cgi?id=78342

        Reviewed by Adam Barth.

        This patch removes [CPPCustom].

        [CPPCustom] has been used in DOMWindow.location only to indicate that
        DOMWindow.location should be ignored in CPP. However, there are many
        other attributes and methods that CPP does not support (e.g. [CallWith=...],
        [CustomSetter], etc), and they are not yet marked with [CPPCustom].
        CPP just generates "meaningless" code for those unsupported attributes
        and methods. Ideally we can mark all unsupported attributes and methods
        with [CPPCustom], but it would not be so practical. Otherwise, removing
        [CPPCustom] would make sense. The side effect of removing [CPPCustom]
        is just that CPP will generate "meaningless" code for DOMWindow.location.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorCPP.pm:
        (ShouldSkipType):
        * page/DOMWindow.idl:

2012-02-12  Kentaro Hara  <haraken@chromium.org>

        Rename [JSCustomPrototypeDefineOwnProperty] to [JSCustomDefineOwnPropertyOnPrototype]
        https://bugs.webkit.org/show_bug.cgi?id=78354

        Reviewed by Adam Barth.

        This patch renames [JSCustomPrototypeDefineOwnProperty] to
        [JSCustomDefineOwnPropertyOnPrototype], for naming consistency with
        [JSCustomDefineOwnProperty] and [JSCustomNamedGetterOnPrototype].

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        * page/Location.idl:

2012-02-11  Filip Pizlo  <fpizlo@apple.com>

        It should be possible to send all JSC debug logging to a file
        https://bugs.webkit.org/show_bug.cgi?id=78418

        Reviewed by Sam Weinig.
        
        Introduced wtf/DataLog, which defines WTF::dataFile, WTF::dataLog,
        and WTF::dataLogV. Changed all debugging- and profiling-related printfs
        to use WTF::dataLog() or one of its friends. By default, debug logging
        goes to stderr, unless you change the setting in wtf/DataLog.cpp.

        No new tests because behavior is unchanged.

        * ForwardingHeaders/wtf/DataLog.h: Added.

2012-02-11  Gavin Barraclough  <barraclough@apple.com>

        Move special __proto__ property to Object.prototype
        https://bugs.webkit.org/show_bug.cgi?id=78409

        Reviewed by Oliver Hunt.

        Re-implement this as a regular accessor property.  This has three key benefits:
        1) It makes it possible for objects to be given properties named __proto__.
        2) Object.prototype.__proto__ can be deleted, preventing object prototypes from being changed.
        3) This largely removes the magic used the implement __proto__, it can just be made a regular accessor property.

        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::allowsAccessFrom):
        (WebCore):
            - expose allowsAccessFrom check to JSC.
        * bindings/js/JSDOMWindowBase.h:
        (JSDOMWindowBase):
            - expose allowsAccessFrom check to JSC.

2012-02-11  Benjamin Poulain  <benjamin@webkit.org>

        Get rid of WebCore::URLString
        https://bugs.webkit.org/show_bug.cgi?id=78429

        Reviewed by Adam Barth.

        URLString is unused, remove the class.

        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/KURL.cpp:
        * platform/KURL.h:
        (KURL):
        * platform/URLString.h: Removed.

2012-02-11  Sam Weinig  <sam@webkit.org>

        Fix the windows build.

        Since Windows uses an all-in-one file to compile, the isRespectedPresentationAttribute()
        functions all need unique names.

        * html/HTMLBodyElement.cpp:
        * html/HTMLHRElement.cpp:
        * html/HTMLIFrameElement.cpp:
        * html/HTMLImageElement.cpp:
        * html/HTMLInputElement.cpp:
        * html/HTMLMarqueeElement.cpp:
        * html/HTMLPlugInElement.cpp:
        * html/HTMLTableCellElement.cpp:
        * html/HTMLTablePartElement.cpp:
        * mathml/MathMLElement.cpp:

2012-02-11  Anders Carlsson  <andersca@apple.com>

        Overlay scrollbars don't appear when scrolling on the scrolling thread
        https://bugs.webkit.org/show_bug.cgi?id=78427

        Reviewed by Sam Weinig.

        Add a ScrollAnimator::notifyContentAreaScrolled and call it from ScrollAnimator::notifyContentAreaScrolled.
        It is then overridden in ScrollAnimatorMac to tickle AppKit so that overlay scrollbars will be shown.

        * platform/ScrollAnimator.h:
        (WebCore::ScrollAnimator::notifyContentAreaScrolled):
        (ScrollAnimator):
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::notifyScrollPositionChanged):
        * platform/mac/ScrollAnimatorMac.h:
        (ScrollAnimatorMac):
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::notifyPositionChanged):
        (WebCore::ScrollAnimatorMac::notifyContentAreaScrolled):
        (WebCore):

2012-02-11  Anders Carlsson  <andersca@apple.com>

        Implement more ScrollElasticityControllerClient member functions
        https://bugs.webkit.org/show_bug.cgi?id=78425
        <rdar://problem/10710727>

        Reviewed by Sam Weinig.

        * page/scrolling/ScrollingTreeNode.h:
        (ScrollingTreeNode):
        (WebCore::ScrollingTreeNode::horizontalScrollElasticity):
        (WebCore::ScrollingTreeNode::verticalScrollElasticity):
        (WebCore::ScrollingTreeNode::hasEnabledHorizontalScrollbar):
        (WebCore::ScrollingTreeNode::hasEnabledVerticalScrollbar):
        Add new getters.

        * page/scrolling/mac/ScrollingTreeNodeMac.h:
        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
        (WebCore::ScrollingTreeNodeMac::allowsHorizontalStretching):
        (WebCore::ScrollingTreeNodeMac::allowsVerticalStretching):
        (WebCore::ScrollingTreeNodeMac::stretchAmount):
        (WebCore::ScrollingTreeNodeMac::pinnedInDirection):
        (WebCore::ScrollingTreeNodeMac::canScrollHorizontally):
        (WebCore::ScrollingTreeNodeMac::canScrollVertically):
        (WebCore::ScrollingTreeNodeMac::absoluteScrollPosition):
        (WebCore::ScrollingTreeNodeMac::immediateScrollByWithoutContentEdgeConstraints):
        (WebCore::ScrollingTreeNodeMac::startSnapRubberbandTimer):
        (WebCore::ScrollingTreeNodeMac::stopSnapRubberbandTimer):
        (WebCore::ScrollingTreeNodeMac::scrollByWithoutContentEdgeConstraints):
        Implement ScrollElasticityControllerClient member functions.

2012-02-11  Antti Koivisto  <antti@apple.com>

        Add size assert for Length
        https://bugs.webkit.org/show_bug.cgi?id=78420

        Rubber-stamped by Andreas Kling.

        Length type is memory critical and must not grow.

        * platform/Length.cpp:
        (SameSizeAsLength):
        (WebCore):

2012-02-11  Anders Carlsson  <andersca@apple.com>

        Pass wheel events to a scroll elasticity controller on the scrolling thread
        https://bugs.webkit.org/show_bug.cgi?id=78421

        Reviewed by Sam Weinig.

        Add a ScrollElasticityController to ScrollingTreeNodeMac and pass wheel events to it.
        Fix ScrollingTreeNodeMac::scrollBy to clamp by the minimum and maximum scroll positions.

        * page/scrolling/mac/ScrollingTreeNodeMac.h:
        (ScrollingTreeNodeMac):
        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
        (WebCore::ScrollingTreeNodeMac::ScrollingTreeNodeMac):
        (WebCore::ScrollingTreeNodeMac::handleWheelEvent):
        (WebCore::ScrollingTreeNodeMac::immediateScrollBy):
        (WebCore::ScrollingTreeNodeMac::setScrollLayerPosition):
        (WebCore::ScrollingTreeNodeMac::minimumScrollPosition):
        (WebCore):
        (WebCore::ScrollingTreeNodeMac::maximumScrollPosition):
        (WebCore::ScrollingTreeNodeMac::scrollBy):

2012-02-11  Andreas Kling  <awesomekling@apple.com>

        Attribute styles should be created lazily.
        <http://webkit.org/b/78381>

        Reviewed by Antti Koivisto.

        TL;DR summary: Lazily construct the StyledElement::attributeStyle() instead of
        moving properties in/out of it in parseAttribute(). This allows us to enable
        the matched declaration cache for elements with presentation attributes.

        The matched declaration cache has been disabled for elements with presentation
        attributes because attributeStyle() was mutable, and (simply put) the cache maps
        a set of StylePropertySet pointers to a resulting RenderStyle. This requires
        that the StylePropertySets are immutable.

        To make them immutable, we now construct the attribute style lazily by adding
        a flag (to Node) that gets set in parseAttribute() when a presentation attribute
        respected by the element changes. A subsequent call to attributeStyle() checks
        the flag and rebuilds the style by looping over the attributes and calling the
        new virtual StyledElement::collectStyleForAttribute() on each one. Any dangling
        references to the previous attribute style will be garbage collected by the
        cache in CSSStyleSelector::sweepMatchedDeclarationCache().

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchAllRules):

            Enable matched declaration cache for elements with attribute style.

        * dom/Node.h:
        (WebCore::Node::attributeStyleDirty):
        (WebCore::Node::setAttributeStyleDirty):
        (WebCore::Node::clearAttributeStyleDirty):

            Add a Node flag to signify that a presentation attribute has changed and
            the attribute style needs to be rebuilt.

        * dom/ElementAttributeData.h:
        * dom/ElementAttributeData.cpp:
        (WebCore::ElementAttributeData::setAttributeStyle):

            Added a setter for the attribute style, called by updateAttributeStyle().

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::addHTMLLengthToStyle):
        (WebCore::StyledElement::addHTMLColorToStyle):

            Moved and renamed two of the old addCSS* helpers from StyledElement.

        (WebCore::StyledElement::updateAttributeStyle):

            Called by attributeStyle() in case the "attribute style dirty" flag is
            set. Rebuilds the attribute style from scratch by looping over the
            attribute map and calling collectStyleForAttribute() on each attribute.

        * dom/StyledElement.h:
        (WebCore::StyledElement::collectStyleForAttribute):
        (WebCore::StyledElement::attributeStyle):
        (WebCore::StyledElement::setNeedsAttributeStyleUpdate):

            Helper, sets the attribute style dirty flag and marks the element for
            full style recalc. This is what parseAttribute() calls in subclasses
            when they encounter a presentation attribute.

        * html/HTMLBRElement.cpp:
        (WebCore::HTMLBRElement::collectStyleForAttribute):
        (WebCore::HTMLBRElement::parseAttribute):
        * html/HTMLBRElement.h:
        * html/HTMLBodyElement.cpp:
        (WebCore::isRespectedPresentationAttribute):
        (WebCore::HTMLBodyElement::collectStyleForAttribute):
        (WebCore::HTMLBodyElement::parseAttribute):
        * html/HTMLBodyElement.h:
        * html/HTMLDivElement.cpp:
        (WebCore::HTMLDivElement::collectStyleForAttribute):
        (WebCore::HTMLDivElement::parseAttribute):
        * html/HTMLDivElement.h:
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::applyBorderAttributeToStyle):
        (WebCore::HTMLElement::mapLanguageAttributeToLocale):
        (WebCore::HTMLElement::collectStyleForAttribute):
        (WebCore::HTMLElement::parseAttribute):
        (WebCore::HTMLElement::applyAlignmentAttributeToStyle):
        * html/HTMLElement.h:
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::collectStyleForAttribute):
        (WebCore::HTMLEmbedElement::parseAttribute):
        * html/HTMLEmbedElement.h:
        * html/HTMLFontElement.cpp:
        (WebCore::HTMLFontElement::collectStyleForAttribute):
        (WebCore::HTMLFontElement::parseAttribute):
        * html/HTMLFontElement.h:
        * html/HTMLFrameSetElement.cpp:
        (WebCore::HTMLFrameSetElement::collectStyleForAttribute):
        (WebCore::HTMLFrameSetElement::parseAttribute):
        * html/HTMLFrameSetElement.h:
        * html/HTMLHRElement.cpp:
        (WebCore::isRespectedPresentationAttribute):
        (WebCore::HTMLHRElement::collectStyleForAttribute):
        (WebCore::HTMLHRElement::parseAttribute):
        * html/HTMLHRElement.h:
        * html/HTMLIFrameElement.cpp:
        (WebCore::HTMLIFrameElement::collectStyleForAttribute):
        (WebCore::HTMLIFrameElement::parseAttribute):
        * html/HTMLIFrameElement.h:
        * html/HTMLImageElement.cpp:
        (WebCore::isRespectedPresentationAttribute):
        (WebCore::HTMLImageElement::collectStyleForAttribute):
        (WebCore::HTMLImageElement::parseAttribute):
        * html/HTMLImageElement.h:
        * html/HTMLInputElement.cpp:
        (WebCore::isRespectedPresentationAttribute):
        (WebCore::HTMLInputElement::collectStyleForAttribute):
        (WebCore::HTMLInputElement::parseAttribute):
        * html/HTMLInputElement.h:
        * html/HTMLLIElement.cpp:
        (WebCore::HTMLLIElement::collectStyleForAttribute):
        (WebCore::HTMLLIElement::parseAttribute):
        * html/HTMLLIElement.h:
        * html/HTMLMarqueeElement.cpp:
        (WebCore::isRespectedPresentationAttribute):
        (WebCore::HTMLMarqueeElement::collectStyleForAttribute):
        (WebCore::HTMLMarqueeElement::parseAttribute):
        * html/HTMLMarqueeElement.h:
        * html/HTMLOListElement.cpp:
        (WebCore::HTMLOListElement::collectStyleForAttribute):
        (WebCore::HTMLOListElement::parseAttribute):
        * html/HTMLOListElement.h:
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::collectStyleForAttribute):
        (WebCore::HTMLObjectElement::parseAttribute):
        * html/HTMLObjectElement.h:
        * html/HTMLParagraphElement.cpp:
        (WebCore::HTMLParagraphElement::collectStyleForAttribute):
        (WebCore::HTMLParagraphElement::parseAttribute):
        * html/HTMLParagraphElement.h:
        * html/HTMLPlugInElement.cpp:
        (WebCore::isRespectedPresentationAttribute):
        (WebCore::HTMLPlugInElement::collectStyleForAttribute):
        (WebCore::HTMLPlugInElement::parseAttribute):
        * html/HTMLPlugInElement.h:
        * html/HTMLPreElement.cpp:
        (WebCore::HTMLPreElement::collectStyleForAttribute):
        (WebCore::HTMLPreElement::parseAttribute):
        * html/HTMLPreElement.h:
        * html/HTMLTableCaptionElement.cpp:
        (WebCore::HTMLTableCaptionElement::collectStyleForAttribute):
        (WebCore::HTMLTableCaptionElement::parseAttribute):
        * html/HTMLTableCaptionElement.h:
        * html/HTMLTableCellElement.cpp:
        (WebCore::isRespectedPresentationAttribute):
        (WebCore::HTMLTableCellElement::collectStyleForAttribute):
        (WebCore::HTMLTableCellElement::parseAttribute):
        * html/HTMLTableCellElement.h:
        * html/HTMLTableColElement.cpp:
        (WebCore::HTMLTableColElement::collectStyleForAttribute):
        (WebCore::HTMLTableColElement::parseAttribute):
        * html/HTMLTableColElement.h:
        * html/HTMLTableElement.cpp:
        (WebCore::getBordersFromFrameAttributeValue):
        (WebCore::HTMLTableElement::collectStyleForAttribute):
        (WebCore::HTMLTableElement::parseAttribute):
        * html/HTMLTableElement.h:
        * html/HTMLTablePartElement.cpp:
        (WebCore::isRespectedPresentationAttribute):
        (WebCore::HTMLTablePartElement::collectStyleForAttribute):
        (WebCore::HTMLTablePartElement::parseAttribute):
        * html/HTMLTablePartElement.h:
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::collectStyleForAttribute):
        (WebCore::HTMLTextAreaElement::parseAttribute):
        * html/HTMLTextAreaElement.h:
        * html/HTMLUListElement.cpp:
        (WebCore::HTMLUListElement::collectStyleForAttribute):
        (WebCore::HTMLUListElement::parseAttribute):
        * html/HTMLUListElement.h:
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::collectStyleForAttribute):
        (WebCore::HTMLVideoElement::parseAttribute):
        * html/HTMLVideoElement.h:
        * mathml/MathMLElement.cpp:
        (WebCore::isRespectedPresentationAttribute):
        (WebCore::MathMLElement::collectStyleForAttribute):
        (WebCore::MathMLElement::parseAttribute):
        * mathml/MathMLElement.h:
        * svg/SVGImageElement.cpp:
        (WebCore::SVGImageElement::collectStyleForAttribute):
        (WebCore::SVGImageElement::parseAttribute):
        * svg/SVGImageElement.h:
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::collectStyleForAttribute):
        (WebCore::SVGStyledElement::parseAttribute):
        * svg/SVGStyledElement.h:
        * svg/SVGTextContentElement.cpp:
        (WebCore::SVGTextContentElement::collectStyleForAttribute):
        (WebCore::SVGTextContentElement::parseAttribute):
        * svg/SVGTextContentElement.h:

            Split handling of presentation attributes between parseAttribute() and
            collectStyleForAttribute() as appropriate. Some minor refactorings here and
            there (mostly in HTMLTableElement) to avoid excessive code duplication.
            Also sprinkled FIXMEs about inefficiencies we should clean up.

2012-02-11   Arko Saha  <arko@motorola.com>

        HTML 5: Support click() method on HTMLElement.
        https://bugs.webkit.org/show_bug.cgi?id=27880

        Reviewed by Timothy Hatcher.

        Test: fast/dom/click-method-on-html-element.html

        * bindings/objc/PublicDOMInterfaces.h: Added click() method in DOMHTMLElement
        with availability macro AVAILABLE_AFTER_WEBKIT_VERSION_5_1.
        * html/HTMLButtonElement.idl: Moved click() method under LANGUAGE_OBJECTIVE_C.
        * html/HTMLElement.idl: Added click() IDL method.
        * html/HTMLInputElement.idl: Moved click() method under LANGUAGE_OBJECTIVE_C.

2012-02-11  Martin Robinson  <mrobinson@igalia.com>

        [GStreamer] html5test.com says that gstreamer ports do not support WebM for audio
        https://bugs.webkit.org/show_bug.cgi?id=78244

        Reviewed by Eric Seidel.

        Specifically advertise support for audio/webm when we support the vorbis
        audio codec. This is necessary because gstreamer doesn't advertise it.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::mimeTypeCache): Add an override for audio/webm.

2012-02-11  Anders Carlsson  <andersca@apple.com>

        Try to fix the Windows build.

        * platform/win/PopupMenuWin.cpp:
        (WebCore::PopupMenuWin::scrollToRevealSelection):

2012-02-08  Stephen White  <senorblanco@chromium.org>

        [chromium] Enable CSS filters on composited layers.
        https://bugs.webkit.org/show_bug.cgi?id=77266

        Reviewed by James Robinson.

        Will be covered by existing tests in css3/filters (when enabled).

        * WebCore.gypi:
        Add CCRenderSurfaceFilters.* to the Chromium build.
        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setFilters):
        * platform/graphics/chromium/GraphicsLayerChromium.h:
        Override setFilters() virtual from GraphicsLayer.
        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::setFilters):
        Implement setFilters() to cache the filters here...
        (WebCore::LayerChromium::pushPropertiesTo):
        ... and push them to the CCLayerImpl at commit time.
        * platform/graphics/chromium/LayerChromium.h:
        (WebCore::LayerChromium::filters):
        Implement accessor.
        * platform/graphics/chromium/RenderSurfaceChromium.h:
        (WebCore::RenderSurfaceChromium::setFilters):
        Implement stub version of setFilters(), to satisfy the templates.
        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
        (WebCore::CCLayerImpl::setFilters):
        Implement setter to receive filters at commit time.
        * platform/graphics/chromium/cc/CCLayerImpl.h:
        (WebCore::CCLayerImpl::filters):
        Implement member var and accessor for filters.
        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
        (WebCore::calculateDrawTransformsAndVisibilityInternal):
        Add another clause here to force creation of a RenderSurface when
        filters are present, and to forward them from the layer to the
        RenderSurface.
        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
        (WebCore::CCRenderSurface::draw):
        (WebCore::CCRenderSurface::drawLayer):
        Check for filters at draw time, apply them, and forward the result
        through the drawing traversal.
        (WebCore::CCRenderSurface::drawSurface):
        If filter bitmap is present, bind it instead of the normal
        RenderSurface texture.
        (WebCore::CCRenderSurface::applyFilters):
        Apply filters to the render surface texture, and return the result.
        This function is a no-op for the threaded compositor, due to use
        of the SharedGraphicsContext3D.
        * platform/graphics/chromium/cc/CCRenderSurface.h:
        (WebCore::CCRenderSurface::setFilters):
        (WebCore::CCRenderSurface::filters):
        (CCRenderSurface):
        Filters getters and setters.
        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp: Added.
        (WebCore::CCRenderSurfaceFilters::apply):
        External interface for this (static) class.  All internal
        implementation and helper functions are in the unnamed namespace.
        * platform/graphics/chromium/cc/CCRenderSurfaceFilters.h: Added.

2012-02-11  Andreas Kling  <awesomekling@apple.com>

        Node.isEqualNode() compares attributes twice.
        <http://webkit.org/b/78414>

        Reviewed by Anders Carlsson.

        A single pass across the attribute maps should be enough for anyone.

        Added a test verifying correct behavior of Node.isEqualNode() when comparing
        two elements, one of which has had attributes that were all removed,
        resulting in an empty but non-null NamedNodeMap hanging off of the element.
        Note that this change is not fixing a regression, I'm just adding the test
        since I came close to introducing a bug here.

        Test: fast/dom/isEqualNode-after-removeAttribute.html

        * dom/Node.cpp:
        (WebCore::Node::isEqualNode):

2012-02-11  Andreas Kling  <awesomekling@apple.com>

        HTMLTablePartElement: Add helper method to find parent table.
        <http://webkit.org/b/78413>

        Reviewed by Anders Carlsson.

        Add HTMLTablePartElement::findParentTable() and use that in subclasses instead
        of duplicating the code.

        * html/HTMLTableCellElement.cpp:
        (WebCore::HTMLTableCellElement::additionalAttributeStyle):
        * html/HTMLTableColElement.cpp:
        (WebCore::HTMLTableColElement::additionalAttributeStyle):
        * html/HTMLTablePartElement.cpp:
        (WebCore::HTMLTablePartElement::findParentTable):
        (WebCore):
        * html/HTMLTablePartElement.h:
        (WebCore):
        (HTMLTablePartElement):
        * html/HTMLTableSectionElement.cpp:
        (WebCore::HTMLTableSectionElement::additionalAttributeStyle):

2012-02-11  Andreas Kling  <awesomekling@apple.com>

        Use Element's hasName/hasID flags to avoid unnecessary work when looking up name/id attributes.
        <http://webkit.org/b/77845>

        Reviewed by Anders Carlsson.

        Have Element::getIdAttribute() check the hasID() flag before looking up the attribute.
        Add an Element::getNameAttribute() to do the same thing with hasName().
        Update call sites to make use of these helpers whenever possible.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::accessibilityDescription):
        * dom/DocumentOrderedMap.cpp:
        (WebCore::keyMatchesId):
        * dom/Element.h:
        (Element):
        (WebCore::Element::getIdAttribute):
        (WebCore):
        (WebCore::Element::getNameAttribute):
        * dom/NameNodeList.cpp:
        (WebCore::NameNodeList::nodeMatches):
        * dom/StaticHashSetNodeList.cpp:
        (WebCore::StaticHashSetNodeList::itemWithName):
        * dom/StaticNodeList.cpp:
        (WebCore::StaticNodeList::itemWithName):
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::name):
        * html/HTMLAppletElement.cpp:
        (WebCore::HTMLAppletElement::createRenderer):
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::checkForNameMatch):
        (WebCore::HTMLCollection::updateNameCache):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::updateWidget):
        * html/HTMLFormCollection.cpp:
        (WebCore::HTMLFormCollection::updateNameCache):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::formControlName):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::name):
        * html/HTMLFrameElementBase.cpp:
        (WebCore::HTMLFrameElementBase::setNameAndOpenURL):
        * html/HTMLMetaElement.cpp:
        (WebCore::HTMLMetaElement::name):
        * html/HTMLNameCollection.cpp:
        (WebCore::HTMLNameCollection::itemAfter):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::updateWidget):
        (WebCore::HTMLObjectElement::updateDocNamedItem):
        (WebCore::HTMLObjectElement::containsJavaApplet):
        (WebCore::HTMLObjectElement::formControlName):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::buildObjectForFrame):
        * page/Frame.cpp:
        (WebCore::Frame::matchLabelsAgainstElement):
        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::getElementById):

2012-02-11  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r107435.
        http://trac.webkit.org/changeset/107435
        https://bugs.webkit.org/show_bug.cgi?id=78410

        It broke the Qt build (Requested by Ossy on #webkit).

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * editing/mac/EditorMac.mm:
        (WebCore::Editor::writeSelectionToPasteboard):
        * platform/Pasteboard.h:
        (WebCore):
        (Pasteboard):
        * platform/PasteboardStrategy.h: Removed.
        * platform/PlatformPasteboard.h: Removed.
        * platform/PlatformStrategies.h:
        (WebCore):
        (WebCore::PlatformStrategies::PlatformStrategies):
        (PlatformStrategies):
        * platform/mac/DragDataMac.mm:
        (WebCore::DragData::canSmartReplace):
        (WebCore::insertablePasteboardTypes):
        (WebCore::DragData::asURL):
        * platform/mac/PasteboardMac.mm:
        (WebCore):
        (WebCore::selectionPasteboardTypes):
        (WebCore::writableTypesForURL):
        (WebCore::createWritableTypesForImage):
        (WebCore::writableTypesForImage):
        (WebCore::Pasteboard::Pasteboard):
        (WebCore::Pasteboard::clear):
        (WebCore::Pasteboard::writeSelectionForTypes):
        (WebCore::Pasteboard::writePlainText):
        (WebCore::Pasteboard::writeSelection):
        (WebCore::writeURLForTypes):
        (WebCore::Pasteboard::writeURL):
        (WebCore::writeFileWrapperAsRTFDAttachment):
        (WebCore::Pasteboard::writeImage):
        (WebCore::Pasteboard::writeClipboard):
        (WebCore::Pasteboard::canSmartReplace):
        (WebCore::Pasteboard::plainText):
        (WebCore::documentFragmentWithRTF):
        (WebCore::Pasteboard::documentFragment):
        * platform/mac/PlatformPasteboardMac.mm: Removed.

2012-02-10  Antti Koivisto  <antti@apple.com>

        Move CSSOM wrapper pointer out of StylePropertySet
        https://bugs.webkit.org/show_bug.cgi?id=78406

        Reviewed by Andreas Kling.
        
        Most StylePropertySet instances never have CSSOM wrappers so having a pointer to one in
        each and and every object makes no sense.

        Move the PropertySetCSSStyleDeclaration instances to a global HashMap. This shrinks
        StylePropertySet by a pointer.
        
        Added COMPILE_ASSERT for StylePropertySet size.

        * css/StylePropertySet.cpp:
        (WebCore):
        (WebCore::StylePropertySet::StylePropertySet):
        (WebCore::StylePropertySet::~StylePropertySet):
        (WebCore::StylePropertySet::ensureCSSStyleDeclaration):
        * css/StylePropertySet.h:
        (StylePropertySet):

2012-02-10  David Barton  <dbarton@mathscribe.com>

        MathML internals - use createXXX() function naming, ASSERT()s
        https://bugs.webkit.org/show_bug.cgi?id=78384

        Reviewed by Eric Seidel.

        Standard RefPtr function naming uses "createXXX" instead of "makeXXX".
        I also added a couple of ASSERT()s.

        No new tests.

        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore::RenderMathMLBlock::createBlockStyle):
        * rendering/mathml/RenderMathMLBlock.h:
        (RenderMathMLBlock):
        * rendering/mathml/RenderMathMLFenced.cpp:
        (WebCore::RenderMathMLFenced::createOperatorStyle):
        (WebCore::RenderMathMLFenced::makeFences):
        (WebCore::RenderMathMLFenced::addChild):
        * rendering/mathml/RenderMathMLFenced.h:
        (RenderMathMLFenced):
        * rendering/mathml/RenderMathMLFraction.cpp:
        (WebCore::RenderMathMLFraction::addChild):
        * rendering/mathml/RenderMathMLRoot.cpp:
        (WebCore::RenderMathMLRoot::addChild):
        * rendering/mathml/RenderMathMLSubSup.cpp:
        (WebCore::RenderMathMLSubSup::RenderMathMLSubSup):
        * rendering/mathml/RenderMathMLUnderOver.cpp:
        (WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver):
        (WebCore::RenderMathMLUnderOver::addChild):

2012-02-10  Dan Bernstein  <mitz@apple.com>

        Non-threaded scrolling build fix.

        * page/FrameView.cpp:
        (WebCore::FrameView::requestScrollPositionUpdate):

2012-02-10  Edward O'Connor  <eoconnor@apple.com>

        Change values for WEBKIT_KEYFRAMES_RULE, WEBKIT_KEYFRAME_RULE
        https://bugs.webkit.org/show_bug.cgi?id=71293

        Reviewed by Chris Marrin.

        Tests: animations/animation-css-rule-types.html

        * css/CSSRule.h: Change WEBKIT_KEYFRAMES_RULE to 7 and
        WEBKIT_KEYFRAME_RULE to 8.
        * css/CSSRule.idl: Ditto.

2012-02-10  Eric Seidel  <eric@webkit.org>

        AtomicMarkupTokenBase::initializeAttributes should not create a StringImpl if it doesn't need to
        https://bugs.webkit.org/show_bug.cgi?id=78394

        Reviewed by Adam Barth.

        On the very next line is passes value to Attribute::create which takes
        an AtomicString, so this code was just allocating a StringImpl (every time)
        only to (much of the time) just release that StringImpl on the next line
        when it got the AtomicString instead.

        I discovered this while looking at DOM/Events.html, but it's unclear
        if this fix actually makes that benchmark faster.

        * xml/parser/MarkupTokenBase.h:
        (WebCore::::initializeAttributes):

2012-02-10  Anders Carlsson  <andersca@apple.com>

        Always update the scroll position through the scrolling coordinator
        https://bugs.webkit.org/show_bug.cgi?id=78403

        Reviewed by Sam Weinig.

        To get correct behavior, we always want to update the scrolling layer position
        on the scrolling thread. Do this by allowing the scrolling coordinator to intercept
        scroll position update requests and send them to the scrolling tree.

        * page/FrameView.cpp:
        (WebCore::FrameView::requestScrollPositionUpdate):
        Let the scrolling coordinator have a go at updating the scroll position for this frame view.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
        If it's a frame view we're coordinating scrolling for, tell the scrolling tree to update 
        the scroll position.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::setMainFrameScrollPosition):
        Call through to the scrolling tree node.

        * page/scrolling/ScrollingTreeNode.h:
        Add a new pure virtual setScrollPosition member function.

        (WebCore::ScrollingTreeNodeMac::setScrollPosition):
        Move most of the code from scrollBy here.

        (WebCore::ScrollingTreeNodeMac::setScrollLayerPosition):
        Rename this member function from setScrollPosition to avoid conflicts.

        (WebCore::ScrollingTreeNodeMac::scrollBy):
        Just call setScsrollPosition.

        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::setScrollOffsetFromAnimation):
        Call requestScrollPositionUpdate, which allows subclasses of scrollable area to intercept
        the scroll operation and call it asynchronously.

2012-02-10  Anders Carlsson  <andersca@apple.com>

        ScrollableArea should have a function for noting that the scroll position changed
        https://bugs.webkit.org/show_bug.cgi?id=78402

        Reviewed by Sam Weinig.

        The scrolling coordinator needs a specialized function to call whenever the main frame
        scrolling position has changed, so add ScrollableArea::notifyScrollPositionChanged and
        call it from the scrolling coordinator.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
        (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::notifyScrollPositionChanged):
        New function.

        (WebCore::ScrollableArea::setScrollOffsetFromAnimation):
        Call ScrollableArea::notifyScrollPositionChanged.

2012-02-09  Levi Weintraub  <leviw@chromium.org>

        Unreviewed build fix.

        Fixing the build by removing a duplicate definition of pixelSnappedIntRect in LayoutTypes.h and
        removing conflict markers from the changelog.

        * rendering/LayoutTypes.h:
        (pixelSnappedIntRect):
        * ChangeLog:

2012-02-09  Levi Weintraub  <leviw@chromium.org>

        Add pixelSnappedIntRect method
        https://bugs.webkit.org/show_bug.cgi?id=78054

        Reviewed by Eric Seidel.

        This patch introduces a pixelSnappedIntRect method that will snap a sub-pixel LayoutRect to
        pixel boundaries. These pixel snapped forms are what is used to communicate with the graphics
        engine (to paint at whole pixel boundaries) and the embedding app (so they don't need to 
        understand we're using sub-pixel units).

        No new tests. No change in behavior.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::isOffScreen):
        (WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange):
        * dom/Range.cpp:
        (WebCore::Range::boundingBox):
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::paint):
        * html/shadow/TextControlInnerElements.cpp:
        (WebCore::InputFieldSpeechButtonElement::startSpeechInput):
        * page/Frame.cpp:
        (WebCore::Frame::nodeImage):
        * page/FrameView.cpp:
        (WebCore::FrameView::repaintContentRectangle):
        (WebCore::FrameView::doDeferredRepaints):
        (WebCore::FrameView::windowClipRectForLayer):
        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::paintGraphicsLayerContents):
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::paint):
        * rendering/LayoutTypes.h:
        (WebCore::pixelSnappedIntRect):
        (WebCore):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::paintColumnContents):
        (WebCore::RenderBlock::selectionGaps):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintBoxDecorations):
        (WebCore::RenderBox::pushContentsClip):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
        (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
        (WebCore::RenderBoxModelObject::paintBoxShadow):
        * rendering/RenderDetailsMarker.cpp:
        (WebCore::RenderDetailsMarker::paint):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::paintIntoRegion):
        * rendering/RenderFrameSet.cpp:
        (WebCore::RenderFrameSet::paintColumnBorder):
        (WebCore::RenderFrameSet::paintRowBorder):
        (WebCore::RenderFrameSet::positionFramesWithFlattening):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::paintReplaced):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollRectToVisible):
        (WebCore::RenderLayer::positionOverflowControls):
        (WebCore::RenderLayer::calculateRects):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        (WebCore::paintScrollbar):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::calculateCompositedBounds):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::drawLineForBoxSide):
        (WebCore::RenderObject::addPDFURLRect):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::showPopup):
        (WebCore::RenderTextControlSingleLine::paint):
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::paint):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::getRoundedBorderFor):
        (WebCore::RenderStyle::getRoundedInnerBorderFor):

2012-02-09  Levi Weintraub  <leviw@chromium.org>

        Add pixelSnappedIntRect method
        https://bugs.webkit.org/show_bug.cgi?id=78054

        Reviewed by Eric Seidel.

        This patch introduces a pixelSnappedIntRect method that will snap a sub-pixel LayoutRect to
        pixel boundaries. These pixel snapped forms are what is used to communicate with the graphics
        engine (to paint at whole pixel boundaries) and the embedding app (so they don't need to 
        understand we're using sub-pixel units).

        No new tests. No change in behavior.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::isOffScreen):
        (WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange):
        * dom/Range.cpp:
        (WebCore::Range::boundingBox):
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::paint):
        * html/shadow/TextControlInnerElements.cpp:
        (WebCore::InputFieldSpeechButtonElement::startSpeechInput):
        * page/Frame.cpp:
        (WebCore::Frame::nodeImage):
        * page/FrameView.cpp:
        (WebCore::FrameView::repaintContentRectangle):
        (WebCore::FrameView::doDeferredRepaints):
        (WebCore::FrameView::windowClipRectForLayer):
        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::paintGraphicsLayerContents):
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::paint):
        * rendering/LayoutTypes.h:
        (WebCore::pixelSnappedIntRect):
        (WebCore):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::paintColumnContents):
        (WebCore::RenderBlock::selectionGaps):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintBoxDecorations):
        (WebCore::RenderBox::pushContentsClip):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
        (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
        (WebCore::RenderBoxModelObject::paintBoxShadow):
        * rendering/RenderDetailsMarker.cpp:
        (WebCore::RenderDetailsMarker::paint):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::paintIntoRegion):
        * rendering/RenderFrameSet.cpp:
        (WebCore::RenderFrameSet::paintColumnBorder):
        (WebCore::RenderFrameSet::paintRowBorder):
        (WebCore::RenderFrameSet::positionFramesWithFlattening):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::paintReplaced):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollRectToVisible):
        (WebCore::RenderLayer::positionOverflowControls):
        (WebCore::RenderLayer::calculateRects):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        (WebCore::paintScrollbar):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::calculateCompositedBounds):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::drawLineForBoxSide):
        (WebCore::RenderObject::addPDFURLRect):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::showPopup):
        (WebCore::RenderTextControlSingleLine::paint):
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::paint):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::getRoundedBorderFor):
        (WebCore::RenderStyle::getRoundedInnerBorderFor):

2012-02-10  Brian Weinstein  <bweinstein@apple.com>

        Web Inspector: Add the ability to jump to the source for a given frame
        https://bugs.webkit.org/show_bug.cgi?id=78396

        Reviewed by Tim Hatcher.

        * WebCore.exp.in: Add a new exported function.
        * inspector/InspectorController.cpp: Add and expose the InspectorPageAgent.
        (WebCore::InspectorController::InspectorController): Set m_pageAgent.
        * inspector/InspectorController.h: Add m_pageAgent.
        (WebCore::InspectorController::pageAgent): Return m_pageAgent.

        * inspector/InspectorFrontendClientLocal.cpp:
        (WebCore::InspectorFrontendClientLocal::showMainResourceForFrame): Get the inspector's frame ID
            of the frame that was passed in, and add a call to evaluate on load.
        * inspector/InspectorFrontendClientLocal.h:

        * inspector/front-end/InspectorFrontendAPI.js:
        (InspectorFrontendAPI.showMainResourceForFrame): Add a FIXME to show the source code for the main
            resource of the given frame.

2012-02-10  Vineet Chaudhary  <rgf748@motorola.com>

        https://bugs.webkit.org/show_bug.cgi?id=72756
        DOMHTMLElement’s accessKey property is declared as available in WebKit version that didn’t have it. 

        Reviewed by Timothy Hatcher.

        No new tests.

        * bindings/objc/PublicDOMInterfaces.h: Moving accessKey property to DOMHTMLElement
          with an appropriate availability macro AVAILABLE_AFTER_WEBKIT_VERSION_5_1.
          Also Moving accessKey property to HTMLAnchorElement, HTMLAreaElement, HTMLButtonElement,
          HTMLInputElement, HTMLLabelElement, HTMLLegendElement  and HTMLTextAreaElement idls
          with an availability macro AVAILABLE_WEBKIT_VERSION_1_3_AND_LATER_BUT_DEPRECATED_AFTER_WEBKIT_VERSION_5_1.
        * html/HTMLAnchorElement.idl: Adding accessKey entries back to idls under LANGUAGE_OBJECTIVE_C.
        * html/HTMLAreaElement.idl: Ditto.
        * html/HTMLButtonElement.idl: Ditto.
        * html/HTMLInputElement.idl: Ditto.
        * html/HTMLLabelElement.idl: Ditto.
        * html/HTMLLegendElement.idl: Ditto.
        * html/HTMLTextAreaElement.idl: Ditto.

2012-02-10  Beth Dakin  <bdakin@apple.com>

        Speculative build fix.

        * platform/win/PopupMenuWin.cpp:
        (WebCore::PopupMenuWin::scrollToRevealSelection):

2012-02-10  Adam Klein  <adamk@chromium.org>

        Enable MUTATION_OBSERVERS by default on all platforms
        https://bugs.webkit.org/show_bug.cgi?id=78196

        Reviewed by Ojan Vafai.

        * Configurations/FeatureDefines.xcconfig:
        * UseV8.cmake: Add some previously-missing files.
        * WebCore.vcproj/WebCore.vcproj: ditto.
        * bindings/js/JSBindingsAllInOne.cpp: ditto.
        * dom/DOMAllInOne.cpp: ditto.

2012-02-10  Emil A Eklund  <eae@chromium.org> and Levi Weintraub  <leviw@chromium.org>

        Add FractionalLayoutUnit type for sub-pixel layout
        https://bugs.webkit.org/show_bug.cgi?id=77485

        Reviewed by Eric Seidel.

        Add fixed point implementation (FractionalLayoutUnit).

        FractionalLayoutUnit represents values as multiples of 1/60th pixel. This allows us
        to represent sub-pixel values using integer math and avoids floating point precision
        problems.

        No new tests.

        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/FractionalLayoutUnit.h: Added.

2012-02-10  Adam Langley  <agl@chromium.org>

        Don't lowercase ping URLs.

        Previously, ping URLs would be lowercased when splitting them apart.
        URLs are not, however, case-insensitive.

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

        Reviewed by Tony Chang.

        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::sendPings): Don't lowercase URL.

2012-02-10  Ojan Vafai  <ojan@chromium.org>

        flex-pack:center and flex-item-align:center should do true centering
        https://bugs.webkit.org/show_bug.cgi?id=77385

        Reviewed by Tony Chang.

        Also, removed passing totalPositiveFlexibility around. We don't
        need to know about positive/negative flex once we run the flexing algorithm.
        We used to need to know this in order to flex margins, but margins can
        no longer be flexed.

        Test: css3/flexbox/true-centering.html

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutFlexItems):
        (WebCore::initialPackingOffset):
        (WebCore::packingSpaceBetweenChildren):
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
        (WebCore::RenderFlexibleBox::layoutColumnReverse):
        * rendering/RenderFlexibleBox.h:
        (RenderFlexibleBox):

2012-02-10  Mark Hahnenberg  <mhahnenberg@apple.com>

        Split MarkedSpace into destructor and destructor-free subspaces
        https://bugs.webkit.org/show_bug.cgi?id=77761

        Reviewed by Geoffrey Garen.

        No new tests.

        * bindings/js/JSDOMWindowShell.cpp: Removed old operator new, which was just used in the create
        function so that we can use allocateCell instead.
        (WebCore):
        * bindings/js/JSDOMWindowShell.h:
        (WebCore::JSDOMWindowShell::create):
        (JSDOMWindowShell):
        * bindings/scripts/CodeGeneratorJS.pm: Added destructor back to root JS DOM nodes (e.g. JSNode, etc)
        because their destroy functions need to be called, so we don't want the NeedsDestructor struct to 
        think they don't need destruction due to having empty/trivial destructors.
        Removed ASSERT_HAS_TRIVIAL_DESTRUCTOR from all JS DOM wrapper auto-generated objects because their 
        ancestors now have non-trivial destructors. 
        (GenerateHeader):
        (GenerateImplementation):
        (GenerateConstructorDefinition):

2012-02-10  Anders Carlsson  <andersca@apple.com>

        Remove a bunch of unused ScrollableArea member functions
        https://bugs.webkit.org/show_bug.cgi?id=78388

        Reviewed by Beth Dakin.

        * platform/ScrollableArea.cpp:
        * platform/ScrollableArea.h:

2012-02-10  Pavel Podivilov  <podivilov@chromium.org>

        Fix a few typos in IDL exception names.
        https://bugs.webkit.org/show_bug.cgi?id=78356

        Reviewed by Adam Barth.

        * dom/Node.idl:
        * notifications/NotificationCenter.idl:
        * page/Navigator.idl:

2012-02-10  Benjamin Poulain  <bpoulain@apple.com>

        DefaultLocalizationStrategy::htmlSelectMultipleItems() should use size_t instead of int
        https://bugs.webkit.org/show_bug.cgi?id=78374

        Reviewed by Joseph Pecoraro.

        The value comes from size_t and is converted to int for no good reason. We should use
        size_t.

        * platform/DefaultLocalizationStrategy.cpp:
        (WebCore::DefaultLocalizationStrategy::htmlSelectMultipleItems):
        * platform/DefaultLocalizationStrategy.h:
        (DefaultLocalizationStrategy):

2012-02-10  Anders Carlsson  <andersca@apple.com>

        More ScrollableArea cleanup
        https://bugs.webkit.org/show_bug.cgi?id=78383

        Reviewed by Beth Dakin.

        Get rid of setScrollOriginX and setScrollOriginY. Make ScrollableArea::setScrollOrigin private.

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::updateScrollbars):
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::setScrollOrigin):
        * platform/ScrollableArea.h:
        (ScrollableArea):

2012-02-10  Kentaro Hara  <haraken@chromium.org>

        Rename [JSCustomPrototypePutDelegate] to [JSCustomNamedGetterOnPrototype]
        https://bugs.webkit.org/show_bug.cgi?id=78353

        Reviewed by Adam Barth.

        [JSCustomPrototypePutDelegate] is used to write custom code for named
        getters on a prototype interface. "PutDelegate" is just a method name
        in implementation and not so descriptive. This patch renames it to
        [JSCustomNamedGetterOnPrototype]. This is also for naming consistency
        with [CustomNamedGetter].

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * page/Location.idl:

2012-02-10  Enrica Casucci  <enrica@apple.com>

        Refactor Mac platform implementation of the Pasteboard class to use Platform Strategies.
        https://bugs.webkit.org/show_bug.cgi?id=78282

        This patch removes any accesss to the NSPasteboard object from the Pasteboard class which
        now makes use of a new pasteboardStrategy object that is implemented both in WebKit and
        WebKit2. The actual access to NSPasteboard is now performed inside the PlatformPasteboard
        class. Currently both WebKit and WebKit2 use the same implementation of the PasteboardStrategy
        interface but this one more step in the direction of removing access to NSPasteboard from
        the WebProcess.
        As part of the refactoring the I've reduced to a minimum the use of OBJ-C classes.
        
        Reviewed by Anders Carlsson.

        No new tests. No change in behavior, just code refactoring.

        * WebCore.exp.in: Added exported class PlatformPasteboard.
        * WebCore.xcodeproj/project.pbxproj: Added new files to the build.
        * editing/mac/EditorMac.mm:
        (WebCore::Editor::writeSelectionToPasteboard): New method signature that doesn't use OBJ-C types.
        * platform/Pasteboard.h:

        * platform/PasteboardStrategy.h: Added PasteboardStrategy abstract class.
        * platform/PlatformPasteboard.h: Added. This class implements access to NSPasteboard.
        * platform/PlatformStrategies.h:
        (WebCore::PlatformStrategies::pasteboardStrategy): Added.
        * platform/mac/DragDataMac.mm:
        (WebCore::DragData::canSmartReplace):
        (WebCore::insertablePasteboardTypes): 
        (WebCore::DragData::asURL):
        * platform/mac/PasteboardMac.mm:
        (WebCore::selectionPasteboardTypes): Changed to use Vector<String> instead of NSArray.
        (WebCore::writableTypesForURL): Ditto.
        (WebCore::createWritableTypesForImage): Ditto.
        (WebCore::writableTypesForImage): Ditto.
        (WebCore::Pasteboard::Pasteboard): Removed access to NSPasteboard.
        (WebCore::Pasteboard::clear): Modified to use platformStrategies()->pasteboardStrategy().
        (WebCore::Pasteboard::writeSelectionForTypes): Ditto.
        (WebCore::Pasteboard::writePlainText): Ditto.
        (WebCore::Pasteboard::writeSelection): Ditto.
        (WebCore::writeURLForTypes): Ditto.
        (WebCore::Pasteboard::writeURL): Ditto.
        (WebCore::writeFileWrapperAsRTFDAttachment): Ditto.
        (WebCore::Pasteboard::writeImage): Ditto.
        (WebCore::Pasteboard::writeClipboard): Ditto.
        (WebCore::Pasteboard::canSmartReplace): Ditto.
        (WebCore::Pasteboard::plainText): Ditto.
        (WebCore::documentFragmentWithRTF): Ditto.
        (WebCore::Pasteboard::documentFragment): Ditto.
        * platform/mac/PlatformPasteboardMac.mm: Added.
        (WebCore::PlatformPasteboard::PlatformPasteboard):
        (WebCore::PlatformPasteboard::getTypes):
        (WebCore::PlatformPasteboard::bufferForType):
        (WebCore::PlatformPasteboard::getPathnamesForType):
        (WebCore::PlatformPasteboard::stringForType):
        (WebCore::PlatformPasteboard::copy):
        (WebCore::PlatformPasteboard::setTypes):
        (WebCore::PlatformPasteboard::setBufferForType):
        (WebCore::PlatformPasteboard::setPathnamesForType):
        (WebCore::PlatformPasteboard::setStringForType):

2012-02-10  Kentaro Hara  <haraken@chromium.org>

        Rename [JSCustomGetOwnPropertySlotDelegate] to [JSCustomGetOwnPropertySlotAndDescriptor]
        https://bugs.webkit.org/show_bug.cgi?id=78352

        Reviewed by Adam Barth.

        [JSCustomGetOwnPropertySlotDelegate] is used for "flexibly customizable"
        named getter. It allows us to write custom code for getOwnPropertySlotDelegate()
        and getOwnPropertyDescriptorDelegate(). To clarify that, we can rename
        [JSCustomGetOwnPropertySlotDelegate] to [JSCustomGetOwnPropertySlotAndDescriptor].

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody):
        (GenerateGetOwnPropertyDescriptorBody):
        (GenerateHeader):
        (GenerateImplementation):

        * html/HTMLAppletElement.idl:
        * html/HTMLEmbedElement.idl:
        * html/HTMLObjectElement.idl:
        * page/History.idl:
        * page/Location.idl:
        * workers/WorkerContext.idl:

2012-02-10  Anders Carlsson  <andersca@apple.com>

        Minor ScrollAnimatorMac cleanup
        https://bugs.webkit.org/show_bug.cgi?id=78375

        Reviewed by Beth Dakin.

        Get rid of adjustScrollXPositionIfNecessary and adjustScrollYPositionIfNecessary.
        Also, reduce nesting in willAdd/didAdd functions by using early returns.

        * platform/mac/ScrollAnimatorMac.h:
        (ScrollAnimatorMac):
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
        (WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
        (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
        (WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):
        (WebCore::ScrollAnimatorMac::immediateScrollBy):

2012-02-10  Anders Carlsson  <andersca@apple.com>

        Minor ScrollableArea cleanup
        https://bugs.webkit.org/show_bug.cgi?id=78372

        Reviewed by Beth Dakin.

        Get rid of scrollToXOffsetWithoutAnimation and scrollToYOffsetWithoutAnimation.

        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::scrollToOffsetWithoutAnimation):
        * platform/ScrollableArea.h:
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::computeLogicalHeight):
        (WebCore::RenderListBox::scrollToRevealElementAtListIndex):
        (WebCore::RenderListBox::setScrollTop):

2012-02-10  Benjamin Poulain  <bpoulain@apple.com>

        [Mac] DYLIB_INSTALL_NAME_BASE should not be prefixed by the SDKROOT
        https://bugs.webkit.org/show_bug.cgi?id=78320

        Reviewed by Joseph Pecoraro.

        <rdar://problem/10839750>

        * Configurations/WebCore.xcconfig:

2012-02-10  Anders Carlsson  <andersca@apple.com>

        Update the non-fast-scrollable region for subframe layout as well
        https://bugs.webkit.org/show_bug.cgi?id=78366
        <rdar://problem/10844064>

        Reviewed by Beth Dakin.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::computeNonFastScrollableRegion):
        Move the non-fast-scrollable region computation out into a new function.

        (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
        Always recompute the non-fast-scrollable region whenever a frame view's layout is updated,
        not just the main frame.

2012-02-09  Chris Marrin  <cmarrin@apple.com>

        Implement hardware animation of CSS filters
        https://bugs.webkit.org/show_bug.cgi?id=78155

        Added logic to PlatformCAAnimation to return enough information
        to GraphicsLayerCA to be able to construct a keyPath animation
        for each filter property. Some filters need to animate multiple
        properties per filter, so PlatformCAAnimation also returns the number
        of properties per filter and then an animation is constructed for 
        each one. Also added all the support logic to handle hardware filter
        animation in the higher level logic, just like we do for transforms and
        opacity.

        Also stubbed out new PlatformCAAnimation functions for Windows. We don't yet
        support hardware filters on Windows.

        Reviewed by Dean Jackson.

        Tests: css3/filters/filter-animation-from-none-hw.html
               css3/filters/filter-animation-from-none-multi-hw.html
               css3/filters/filter-animation-from-none-multi.html
               css3/filters/filter-animation-hw.html
               css3/filters/filter-animation-multi-hw.html
               css3/filters/filter-animation-multi.html

        * page/animation/AnimationBase.cpp:
        (WebCore):
        (PropertyWrapperAcceleratedFilter):
        (WebCore::PropertyWrapperAcceleratedFilter::PropertyWrapperAcceleratedFilter):
        (WebCore::PropertyWrapperAcceleratedFilter::animationIsAccelerated):
        (WebCore::PropertyWrapperAcceleratedFilter::blend):
        (WebCore::AnimationBase::ensurePropertyMap):
        * platform/graphics/GraphicsLayer.cpp:
        (WebCore):
        (WebCore::filterOperationsAt):
        (WebCore::GraphicsLayer::validateFilterOperations):
        * platform/graphics/GraphicsLayer.h:
        (WebCore):
        (FilterAnimationValue):
        (WebCore::FilterAnimationValue::FilterAnimationValue):
        (WebCore::FilterAnimationValue::clone):
        (WebCore::FilterAnimationValue::value):
        (GraphicsLayer):
        * platform/graphics/GraphicsLayerClient.h:
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::propertyIdToString):
        (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
        (WebCore::GraphicsLayerCA::addAnimation):
        (WebCore::GraphicsLayerCA::ensureStructuralLayer):
        (WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
        (WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
        (WebCore):
        (WebCore::GraphicsLayerCA::createFilterAnimationsFromKeyframes):
        (WebCore::GraphicsLayerCA::createBasicAnimation):
        (WebCore::GraphicsLayerCA::createKeyframeAnimation):
        (WebCore::GraphicsLayerCA::setFilterAnimationEndpoints):
        (WebCore::GraphicsLayerCA::setFilterAnimationKeyframes):
        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
        (WebCore::GraphicsLayerCA::cloneLayer):
        * platform/graphics/ca/GraphicsLayerCA.h:
        (GraphicsLayerCA):
        * platform/graphics/ca/PlatformCAAnimation.h:
        (PlatformCAAnimation):
        * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
        (PlatformCAAnimation::setFromValue):
        (PlatformCAAnimation::setToValue):
        (PlatformCAAnimation::setValues):
        (PlatformCAAnimation::numAnimatedFilterProperties):
        (PlatformCAAnimation::animatedFilterPropertyName):
        * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
        (PlatformCAAnimation::setFromValue):
        (PlatformCAAnimation::setToValue):
        (PlatformCAAnimation::setValues):
        (PlatformCAAnimation::numAnimatedFilterProperties):
        (PlatformCAAnimation::animatedFilterPropertyName):
        * platform/graphics/filters/FilterOperation.h:
        (FilterOperation):
        (WebCore::FilterOperation::isDefault):
        (DefaultFilterOperation):
        (WebCore::DefaultFilterOperation::create):
        (WebCore::DefaultFilterOperation::operator==):
        (WebCore::DefaultFilterOperation::isDefault):
        (WebCore::DefaultFilterOperation::DefaultFilterOperation):
        (WebCore):
        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::hasFilter):
        (RenderLayer):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::startAnimation):
        (WebCore::RenderLayerBacking::startTransition):
        (WebCore::RenderLayerBacking::graphicsLayerToCSSProperty):
        (WebCore::RenderLayerBacking::cssToGraphicsLayerProperty):

2012-02-10  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py: properly resolve output types of commands
        https://bugs.webkit.org/show_bug.cgi?id=78025

        Reviewed by Vsevolod Vlasov.

        Code for generating ad-hoc types is added. It was reused from event
        generator part.

        * inspector/CodeGeneratorInspector.py:
        (Generator.process_event):
        (Generator.process_command):
        (Generator.resolve_type_and_generate_ad_hoc):
        (Generator.resolve_type_and_generate_ad_hoc.AdHocTypeContext):
        (Generator.resolve_type_and_generate_ad_hoc.AdHocTypeContext.get_type_name_fix):
        (Generator.resolve_type_and_generate_ad_hoc.AdHocTypeContext.get_type_name_fix.NameFix):
        (Generator.resolve_type_and_generate_ad_hoc.AdHocTypeContext.get_type_name_fix.NameFix.output_comment):
        (Generator.resolve_type_and_generate_ad_hoc.AdHocTypeContext.add_type):
        (Generator.resolve_type_and_generate_ad_hoc.InterfaceForwardListener):
        (Generator.resolve_type_and_generate_ad_hoc.InterfaceForwardListener.add_type_data):
        (Generator.resolve_type_and_generate_ad_hoc.InterfaceResolveContext):
        (Generator.resolve_type_and_generate_ad_hoc.InterfaceGenerateContext):
        (Generator):

2012-02-10  Kentaro Hara  <haraken@chromium.org>

        Rename [CustomPropertyNames] to [CustomEnumerateProperty]
        https://bugs.webkit.org/show_bug.cgi?id=78351

        Reviewed by Adam Barth.

        This patch renames [CustomPropertyNames] to [CustomEnumerateProperty],
        for clarification and for naming consistency with [CustomDeleteProperty].

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeaderNamedAndIndexedPropertyAccessors):
        (GenerateImplementationNamedPropertyGetter):

        * css/CSSStyleDeclaration.idl:
        * dom/DOMStringMap.idl:
        * page/DOMWindow.idl:
        * page/History.idl:
        * page/Location.idl:
        * storage/Storage.idl:

2012-02-09  Antti Koivisto  <antti@apple.com>

        Use underlying property set to refcount PropertySetCSSStyleDeclaration
        https://bugs.webkit.org/show_bug.cgi?id=78257

        Reviewed by Andreas Kling.

        Clean up the PropertySetCSSStyleDeclaration refcounting. PropertySetCSSStyleDeclaration now
        forwards the ref/deref to the underlying StylePropertySet.

        Also made CSSComputedStyleDeclaration construction use the standard create() pattern.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::ref):
        (WebCore):
        (WebCore::CSSComputedStyleDeclaration::deref):
        * css/CSSComputedStyleDeclaration.h:
        (WebCore::CSSComputedStyleDeclaration::create):
        (CSSComputedStyleDeclaration):
        (WebCore):
        * css/CSSStyleDeclaration.h:
        (CSSStyleDeclaration):
        * css/StylePropertySet.cpp:
        (WebCore::PropertySetCSSStyleDeclaration::PropertySetCSSStyleDeclaration):
        (WebCore):
        (WebCore::StylePropertySet::~StylePropertySet):
        (WebCore::StylePropertySet::ensureCSSStyleDeclaration):
        (WebCore::PropertySetCSSStyleDeclaration::makeMutable):
        * css/StylePropertySet.h:
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
        (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
        (WebCore::highestEmbeddingAncestor):
        (WebCore::ApplyStyleCommand::computedFontSize):
        * editing/EditingStyle.cpp:
        (WebCore::EditingStyle::init):
        (WebCore::EditingStyle::removeStyleAddedByNode):
        (WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode):
        (WebCore::EditingStyle::triStateOfStyle):
        (WebCore::EditingStyle::styleIsPresentInComputedStyleOfNode):
        (WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
        (WebCore::backgroundColorInEffect):
        * editing/Editor.cpp:
        (WebCore::Editor::textDirectionForSelection):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::getComputedStyleForNode):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::getComputedStyle):
        * svg/SVGAnimateElement.cpp:
        (WebCore::getPropertyValue):
        * svg/animation/SMILTimeContainer.cpp:
        (WebCore::SMILTimeContainer::baseValueFor):

2012-02-10  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [TextPrompt] TAB should complete suggestions up to their common prefix in Console
        https://bugs.webkit.org/show_bug.cgi?id=78236

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/TextPrompt.js:
        (WebInspector.TextPrompt.prototype._completionsReady):
        (WebInspector.TextPrompt.prototype._completeCommonPrefix):
        (WebInspector.TextPrompt.prototype.acceptSuggestion):
        (WebInspector.TextPrompt.prototype.tabKeyPressed):

2012-02-10  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: implement undo for setOuterHTML via undo-ing nested primitive commands.
        https://bugs.webkit.org/show_bug.cgi?id=78346

        Reviewed by Yury Semikhatsky.

        Tests: inspector/elements/undo-set-outer-html-2.html
               inspector/elements/undo-set-outer-html.html

        * inspector/DOMEditor.cpp:
        (WebCore::DOMEditor::RemoveChildAction::RemoveChildAction):
        (WebCore::DOMEditor::InsertBeforeAction::InsertBeforeAction):
        (WebCore::DOMEditor::InsertBeforeAction::undo):
        (WebCore::DOMEditor::RemoveAttributeAction::RemoveAttributeAction):
        (WebCore::DOMEditor::SetAttributeAction::SetAttributeAction):
        (WebCore::DOMEditor::SetOuterHTMLAction::SetOuterHTMLAction):
        (WebCore::DOMEditor::SetOuterHTMLAction::perform):
        (WebCore::DOMEditor::SetOuterHTMLAction::undo):
        (DOMEditor::SetOuterHTMLAction):
        (WebCore::DOMEditor::ReplaceWholeTextAction::ReplaceWholeTextAction):
        (DOMEditor::ReplaceChildNodeAction):
        (WebCore::DOMEditor::ReplaceChildNodeAction::ReplaceChildNodeAction):
        (WebCore::DOMEditor::ReplaceChildNodeAction::perform):
        (WebCore::DOMEditor::ReplaceChildNodeAction::undo):
        (WebCore):
        (DOMEditor::SetNodeValueAction):
        (WebCore::DOMEditor::SetNodeValueAction::SetNodeValueAction):
        (WebCore::DOMEditor::SetNodeValueAction::perform):
        (WebCore::DOMEditor::SetNodeValueAction::undo):
        (WebCore::DOMEditor::insertBefore):
        (WebCore::DOMEditor::removeChild):
        (WebCore::DOMEditor::setAttribute):
        (WebCore::DOMEditor::removeAttribute):
        (WebCore::DOMEditor::setOuterHTML):
        (WebCore::DOMEditor::replaceWholeText):
        (WebCore::DOMEditor::replaceChild):
        (WebCore::DOMEditor::setNodeValue):
        (WebCore::populateErrorString):
        * inspector/DOMEditor.h:
        (DOMEditor):
        * inspector/DOMPatchSupport.cpp:
        (WebCore::DOMPatchSupport::patchDocument):
        (WebCore):
        (WebCore::DOMPatchSupport::DOMPatchSupport):
        (WebCore::DOMPatchSupport::patchNode):
        (WebCore::DOMPatchSupport::innerPatchNode):
        (WebCore::DOMPatchSupport::innerPatchChildren):
        (WebCore::DOMPatchSupport::insertBeforeAndMarkAsUsed):
        (WebCore::DOMPatchSupport::removeChildAndMoveToNew):
        * inspector/DOMPatchSupport.h:
        (WebCore):
        (DOMPatchSupport):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::StyleSheetAction::perform):
        (WebCore::InspectorCSSAgent::StyleSheetAction::undo):
        (InspectorCSSAgent::StyleSheetAction):
        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::perform):
        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::undo):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::perform):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::undo):
        (WebCore::InspectorCSSAgent::TogglePropertyAction::perform):
        (WebCore::InspectorCSSAgent::TogglePropertyAction::undo):
        (WebCore::InspectorCSSAgent::setStyleSheetText):
        (WebCore::InspectorCSSAgent::setPropertyText):
        (WebCore::InspectorCSSAgent::toggleProperty):
        (WebCore::InspectorCSSAgent::assertStyleSheetForId):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::toErrorString):
        (WebCore):
        (WebCore::InspectorDOMAgent::setAttributesAsText):
        (WebCore::InspectorDOMAgent::setOuterHTML):
        (WebCore::InspectorDOMAgent::undo):
        * inspector/InspectorDOMAgent.h:
        (InspectorDOMAgent):
        * inspector/InspectorHistory.cpp:
        (WebCore::InspectorHistory::perform):
        (WebCore::InspectorHistory::undo):
        * inspector/InspectorHistory.h:
        (WebCore):
        (Action):
        (InspectorHistory):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::setDocumentContent):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyle::setPropertyText):
        (WebCore::InspectorStyle::toggleProperty):
        (WebCore::InspectorStyleSheet::setPropertyText):
        (WebCore::InspectorStyleSheet::toggleProperty):
        * inspector/InspectorStyleSheet.h:
        (InspectorStyle):
        (InspectorStyleSheet):

2012-02-10  Kentaro Hara  <haraken@chromium.org>

        Replace [CustomArgumentHandling] with [CallWith=ScriptArguments|CallStack]
        https://bugs.webkit.org/show_bug.cgi?id=78327

        Reviewed by Adam Barth.

        This patch replaces [CustomArgumentHandling] with [CallWith=ScriptArguments|CallStack],
        and removes [CustomArgumentHandling].

        Test: bindings/scripts/test/TestObj.idl

        * bindings/scripts/CodeGeneratorJS.pm: Modified to replace
        [CustomArgumentHandling] with [CallWith=ScriptArguments|CallStack].
        (GenerateCallWith):
        (GenerateParametersCheck):
        * bindings/scripts/CodeGeneratorV8.pm: Ditto.
        (GenerateCallWith):
        * bindings/scripts/CodeGeneratorGObject.pm: Ditto.
        (SkipFunction):
        (GenerateFunction):
        * bindings/scripts/CodeGeneratorCPP.pm: Simply removed [CustomArgumentHandling]
        from the skipped list. By this fix, CodeGeneratorCPP.pm will generate
        meaningless code for attributes or methods which was previously marked as
        [CustomArgumentHandling], but this change will be harmless.
        (ShouldSkipType):

        * bindings/v8/custom/V8ConsoleCustom.cpp: Changed the argument order.
        (WebCore::V8Console::assertCallback):
        * page/Console.cpp: Ditto.
        (WebCore::Console::assertCondition):
        (WebCore::Console::timeEnd):
        * page/Console.h: Ditto.
        (Console):

        * bindings/scripts/test/TestObj.idl: Added test cases for [CallWith=ScriptArguments|CallStack].

        * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated run-bindings-tests results.
        (WebDOMTestObj::withScriptArgumentsAndCallStackAttribute):
        (WebDOMTestObj::setWithScriptArgumentsAndCallStackAttribute):
        (WebDOMTestObj::withScriptArgumentsAndCallStack):
        * bindings/scripts/test/CPP/WebDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (webkit_dom_test_obj_with_script_arguments_and_call_stack):
        (webkit_dom_test_obj_get_with_script_arguments_and_call_stack_attribute):
        (webkit_dom_test_obj_set_with_script_arguments_and_call_stack_attribute):
        (webkit_dom_test_obj_get_property):
        (webkit_dom_test_obj_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore):
        (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
        (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
        (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
        * bindings/scripts/test/JS/JSTestObj.h:
        (WebCore):
        * bindings/scripts/test/ObjC/DOMTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        (-[DOMTestObj withScriptArgumentsAndCallStackAttribute]):
        (-[DOMTestObj setWithScriptArgumentsAndCallStackAttribute:]):
        (-[DOMTestObj withScriptArgumentsAndCallStack]):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjInternal::withScriptArgumentsAndCallStackAttributeAttrGetter):
        (TestObjInternal):
        (WebCore::TestObjInternal::withScriptArgumentsAndCallStackAttributeAttrSetter):
        (WebCore::TestObjInternal::withScriptArgumentsAndCallStackCallback):
        (WebCore):
        (WebCore::ConfigureV8TestObjTemplate):

2012-02-10  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] KURL::fileSystemPath() doesn't work if uri contains #
        https://bugs.webkit.org/show_bug.cgi?id=78339

        Reviewed by Philippe Normand.

        * platform/gtk/KURLGtk.cpp:
        (WebCore::KURL::fileSystemPath): Use GFile API instead of
        g_filename_from_uri() to convert the uri to a local
        path. g_file_get_path() removes the anchor from the uri and
        returns a valid path instead of NULL.

2012-02-10  Pablo Flouret  <pablof@motorola.com>

        CodeGeneratorJS doesn't always generate visitChildren() implementation when required
        https://bugs.webkit.org/show_bug.cgi?id=78336

        Reviewed by Kentaro Hara.
        
        In an IDL for an interface that declares no functions, but has
        attributes with [CachedAttribute], the implementation of visitChildren()
        is not generated by the JSC code generator.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::JSTestSerializedScriptValueInterface::visitChildren):
        (WebCore):

2012-02-10  Noel Gordon  <noel.gordon@gmail.com>

        [chromium] Increase JPEG decoding performance some more
        https://bugs.webkit.org/show_bug.cgi?id=78323

        Reviewed by Adam Barth.

        Increase JPEG image decoding speed by another 9% (avg) according to libjpeg-turbo tjbench.

        No new tests. Covered by many existing tests, all requiring subsequent rebaselines.

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (dctMethod): Fast decode on the jpeg-turbo using ports (Chrome Android, Chrome, Chromium).
        (WebCore::JPEGImageReader::decode): Select DCT method via a helper routine.

2012-02-10  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: FileSelector should not depend on DebuggerPresentationModel.
        https://bugs.webkit.org/show_bug.cgi?id=78337

        Reviewed by Pavel Feldman.

        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.ScriptsNavigator):
        (WebInspector.ScriptsNavigator.prototype._showScriptFoldersSettingChanged):
        (WebInspector.ScriptsNavigator.prototype.reset):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._reset):
        (WebInspector.ScriptsPanel.FileSelector.prototype.replaceUISourceCodes):
        (WebInspector.ScriptsPanel.FileSelector.prototype.reset):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype.reset):

2012-02-10  Kentaro Hara  <haraken@chromium.org>

        Remove [ConvertingNullStringTo] from CloseEvent.idl
        https://bugs.webkit.org/show_bug.cgi?id=78328

        Reviewed by Adam Barth.

        In CloseEvent.idl, [ConvertingNullStringTo] is a typo of [ConvertNullStringTo],
        (although in bug 78108, [ConvertNullStringTo] was renamed to [TreatReturnedNullStringAs]).

        Anyway, the spec says that "The reason attribute must return the value it was
        initialized to. When the object is created, this attribute must be initialized to empty string."
        http://dev.w3.org/html5/websockets/#event-definitions
        Thus, this patch removes [ConvertingNullStringTo] from CloseEvent.idl.

        Test: fast/events/constructors/close-event-constructor.html

        * websockets/CloseEvent.idl:

2012-02-10  Pavel Feldman  <pfeldman@google.com>

        [Qt] REGRESSION(r107242): It made 5 inspector tests crash in debug mode
        https://bugs.webkit.org/show_bug.cgi?id=78330

        Reviewed by Yury Semikhatsky.

        * inspector/DOMPatchSupport.cpp:
        (WebCore::DOMPatchSupport::innerPatchChildren):

2012-02-09  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [refactoring] TimelineModel should not depend on TimelinePanel
        https://bugs.webkit.org/show_bug.cgi?id=78254

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel):
        (WebInspector.TimelinePanel.prototype._loadFromFile):
        (WebInspector.TimelinePanel.prototype._toggleTimelineButtonClicked):
        (WebInspector.TimelinePanel.prototype._onTimelineEventRecorded):
        (WebInspector.TimelinePanel.prototype._clearPanel):
        (WebInspector.TimelinePanel.prototype._onRecordsCleared):
        (WebInspector.TimelineModel):
        (WebInspector.TimelineModel.prototype.startRecord):
        (WebInspector.TimelineModel.prototype.stopRecord):
        (WebInspector.TimelineModel.prototype._onRecordAdded):
        (WebInspector.TimelineModel.prototype._addRecord):
        (WebInspector.TimelineModel.prototype._loadNextChunk):
        (WebInspector.TimelineModel.prototype._loadFromFile):
        (WebInspector.TimelineModel.prototype._reset):

2012-02-09  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r107368.
        http://trac.webkit.org/changeset/107368
        https://bugs.webkit.org/show_bug.cgi?id=78327

        break GTK build

        * bindings/scripts/CodeGeneratorCPP.pm:
        (ShouldSkipType):
        * bindings/scripts/CodeGeneratorGObject.pm:
        (SkipFunction):
        (GenerateFunction):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateCallWith):
        (GenerateParametersCheck):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateFunctionCallback):
        (GenerateCallWith):
        (GenerateFunctionCallString):
        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
        * bindings/scripts/test/CPP/WebDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (webkit_dom_test_obj_get_property):
        (webkit_dom_test_obj_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore):
        (WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
        * bindings/scripts/test/JS/JSTestObj.h:
        (WebCore):
        * bindings/scripts/test/ObjC/DOMTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        (-[DOMTestObj customArgsAndException:]):
        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjInternal::customArgsAndExceptionCallback):
        (TestObjInternal):
        (WebCore):
        (WebCore::ConfigureV8TestObjTemplate):
        * bindings/v8/custom/V8ConsoleCustom.cpp:
        (WebCore::V8Console::assertCallback):
        * page/Console.cpp:
        (WebCore::Console::assertCondition):
        (WebCore::Console::timeEnd):
        * page/Console.h:
        (Console):
        * page/Console.idl:

2012-02-09  Zoltan Herczeg  <zherczeg@webkit.org>

        Heap-buffer-overflow in WebCore::CSSParser::lex
        https://bugs.webkit.org/show_bug.cgi?id=77402

        Reviewed by Antti Koivisto.

        Comments should check only a single \0 terminator.

        Test: fast/css/parsing-css-comment.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::lex):

2012-02-09  Kentaro Hara  <haraken@chromium.org>

        Replace [CustomArgumentHandling] with [CallWith=ScriptArguments|CallStack]
        https://bugs.webkit.org/show_bug.cgi?id=78327

        Reviewed by Adam Barth.

        This patch replaces [CustomArgumentHandling] with [CallWith=ScriptArguments|CallStack],
        and removes [CustomArgumentHandling].

        Test: bindings/scripts/test/TestObj.idl

        * bindings/scripts/CodeGeneratorJS.pm: Modified to replace
        [CustomArgumentHandling] with [CallWith=ScriptArguments|CallStack].
        (GenerateCallWith):
        (GenerateParametersCheck):
        * bindings/scripts/CodeGeneratorV8.pm: Ditto.
        (GenerateCallWith):
        * bindings/scripts/CodeGeneratorCPP.pm: Simply removed [CustomArgumentHandling]
        from the skipped list. By this fix, CodeGeneratorCPP.pm will generate
        meaningless code for attributes or methods which was previously marked as
        [CustomArgumentHandling], but this change will be harmless.
        (ShouldSkipType):
        * bindings/scripts/CodeGeneratorGObject.pm: Ditto.
        (SkipFunction):
        (GenerateFunction):

        * bindings/v8/custom/V8ConsoleCustom.cpp: Changed the argument order.
        (WebCore::V8Console::assertCallback):
        * page/Console.cpp: Ditto.
        (WebCore::Console::assertCondition):
        (WebCore::Console::timeEnd):
        * page/Console.h: Ditto.
        (Console):

        * bindings/scripts/test/TestObj.idl: Added test cases for [CallWith=ScriptArguments|CallStack].

        * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated run-bindings-tests results.
        (WebDOMTestObj::withScriptArgumentsAndCallStackAttribute):
        (WebDOMTestObj::setWithScriptArgumentsAndCallStackAttribute):
        (WebDOMTestObj::withScriptArgumentsAndCallStack):
        * bindings/scripts/test/CPP/WebDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (webkit_dom_test_obj_with_script_arguments_and_call_stack):
        (webkit_dom_test_obj_get_with_script_arguments_and_call_stack_attribute):
        (webkit_dom_test_obj_set_with_script_arguments_and_call_stack_attribute):
        (webkit_dom_test_obj_get_property):
        (webkit_dom_test_obj_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore):
        (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
        (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
        (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
        * bindings/scripts/test/JS/JSTestObj.h:
        (WebCore):
        * bindings/scripts/test/ObjC/DOMTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        (-[DOMTestObj withScriptArgumentsAndCallStackAttribute]):
        (-[DOMTestObj setWithScriptArgumentsAndCallStackAttribute:]):
        (-[DOMTestObj withScriptArgumentsAndCallStack]):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjInternal::withScriptArgumentsAndCallStackAttributeAttrGetter):
        (TestObjInternal):
        (WebCore::TestObjInternal::withScriptArgumentsAndCallStackAttributeAttrSetter):
        (WebCore::TestObjInternal::withScriptArgumentsAndCallStackCallback):
        (WebCore):
        (WebCore::ConfigureV8TestObjTemplate):

2012-02-09  Adam Barth  <abarth@webkit.org>

        Dromaeo/dom-traverse.html should go fast
        https://bugs.webkit.org/show_bug.cgi?id=78307

        Reviewed by Eric Seidel.

        This patch improves Dromaeo/dom-traverse.html by roughly 2.5% by
        removing a branch.  Previously, we null-checked the result of
        V8DOMWrapper::getWrapper in a hot code path, but the only case where we
        return a non-empty wrapper comes from a cold code path.  By pushing the
        null check into the cold codepath, we eliminate the branch from the
        hot code path.

        This patch also annotates the branches in the hot code path with their
        likely outcome.  I didn't measure a statistically significant
        improvement with that aspect of the change, but it seems worthwhile.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::getExistingWrapperInline):
        (WebCore):
        (WebCore::V8DOMWrapper::getExistingWrapperSlow):
        (WebCore::V8DOMWrapper::getWrapperSlow):
        * bindings/v8/V8DOMWrapper.h:
        (WebCore::V8DOMWrapper::getExistingWrapper):
        (V8DOMWrapper):
        (WebCore::V8DOMWrapper::getWrapper):
        * bindings/v8/custom/V8NodeCustom.cpp:
        (WebCore::toV8Slow):

2012-02-09  Emil A Eklund  <eae@chromium.org>

        Convert Frame/FrameView to LayoutUnits in preparation for turning on subpixel layout
        https://bugs.webkit.org/show_bug.cgi?id=78311

        Reviewed by Eric Seidel.

        No new tests, no new functionality.

        * page/Frame.cpp:
        (WebCore::Frame::nodeImage):
        Pixel snap painting rect for image to ensure that it is painted aligned
        to device pixels. This avoids avoid unwanted anti-aliasing.

        * page/FrameView.cpp:
        (WebCore::FrameView::windowClipRectForLayer):
        Pixel snap clip rects as all window coordinates and sizes are exposed as
        integers.

        * page/GestureTapHighlighter.cpp:
        * page/Page.cpp:
        (WebCore::Page::addRelevantRepaintedObject):
        As the painting is done aligned on pixel boundaries we need to pixel snap
        the view rect when checking if it intersects the objects paint rect.

        * page/mac/FrameMac.mm:
        (WebCore::Frame::snapshotDragImage):
        (WebCore::Frame::nodeImage):
        Pixel snap painting rect for image to ensure that it is painted aligned
        to device pixels. This avoids avoid unwanted anti-aliasing.

        * page/win/FrameCGWin.cpp:
        (WebCore::Frame::nodeImage):
        Pixel snap painting rect for image to ensure that it is painted aligned
        to device pixels. This avoids avoid unwanted anti-aliasing.

        * rendering/LayoutTypes.h:
        (WebCore::pixelSnappedIntRect):
        (WebCore):
        No-op implementation of pixelSnappedIntRect for now.

2012-02-09  Kenichi Ishibashi  <bashi@chromium.org>

        Add WebSocket extension support
        https://bugs.webkit.org/show_bug.cgi?id=78079

        This patch introduces WebSocketExtensionDispatcher class, which creates client's
        Sec-WebSocket-Extensions header field and parses the server response.
        This patch doesn't add any actual extension, so no changes in behavior.

        Reviewed by Kent Tamura.

        No new tests except for chromium port.

        * CMakeLists.txt: Added WebSocketExtensionDispatcher.(cpp|h) and WebSocketExtensionProcessor.h.
        * GNUmakefile.list.am: Ditto.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * websockets/WebSocketExtensionDispatcher.cpp: Added.
        (WebCore):
        (ExtensionParser):
        (WebCore::ExtensionParser::ExtensionParser):
        (WebCore::ExtensionParser::currentToken):
        (WebCore::ExtensionParser::finished):
        (WebCore::ExtensionParser::parsedSuccessfully):
        (WebCore::isTokenCharacter):
        (WebCore::isSeparator):
        (WebCore::ExtensionParser::skipSpaces):
        (WebCore::ExtensionParser::consumeToken):
        (WebCore::ExtensionParser::consumeQuotedString):
        (WebCore::ExtensionParser::consumeQuotedStringOrToken):
        (WebCore::ExtensionParser::consumeCharacter):
        (WebCore::WebSocketExtensionDispatcher::reset):
        (WebCore::WebSocketExtensionDispatcher::addProcessor):
        (WebCore::WebSocketExtensionDispatcher::createHeaderValue):
        (WebCore::WebSocketExtensionDispatcher::processHeaderValue):
        (WebCore::WebSocketExtensionDispatcher::failureReason):
        * websockets/WebSocketExtensionDispatcher.h: Added.
        (WebCore):
        (WebSocketExtensionDispatcher):
        (WebCore::WebSocketExtensionDispatcher::WebSocketExtensionDispatcher):
        * websockets/WebSocketExtensionProcessor.h: Added.
        (WebCore):
        (WebSocketExtensionProcessor):
        (WebCore::WebSocketExtensionProcessor::~WebSocketExtensionProcessor):
        (WebCore::WebSocketExtensionProcessor::extensionToken):
        (WebCore::WebSocketExtensionProcessor::failureReason):
        (WebCore::WebSocketExtensionProcessor::WebSocketExtensionProcessor):
        * websockets/WebSocketHandshake.cpp:
        (WebCore::WebSocketHandshake::clientHandshakeMessage): Adds extension header value if exists.
        (WebCore::WebSocketHandshake::clientHandshakeRequest): Ditto.
        (WebCore::WebSocketHandshake::reset): Resets WebSocketExtensionDispatcher object.
        (WebCore::WebSocketHandshake::serverHandshakeResponse): Removed.
        (WebCore::WebSocketHandshake::addExtensionProcessor): Added.
        (WebCore::WebSocketHandshake::readHTTPHeaders): Parses and checks every time Sec-WebSocket-Extensions header appears.
        (WebCore::WebSocketHandshake::checkResponseHeaders): Removed the check of Sec-WebSocket-Extensions.
        * websockets/WebSocketHandshake.h: Removed serverHandshakeResponse().

2012-02-09  Xianzhu Wang  <wangxianzhu@chromium.org>

        Avoid compositing invisible fixed positioned elements
        https://bugs.webkit.org/show_bug.cgi?id=78186

        Reviewed by James Robinson.

        Test: compositing/layer-creation/fixed-position-out-of-view.html

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):

2012-02-09  Timothy Hatcher  <timothy@apple.com>

        Prevent attaching when inspecting the Web Inspector.

        https://webkit.org/b/78304

        Reviewed by Brian Weinstein.

        * inspector/InspectorFrontendClientLocal.cpp:
        (WebCore::InspectorFrontendClientLocal::canAttachWindow): Prevent attaching when the page is an inspector page.

2012-02-09  Dana Jansens  <danakj@chromium.org>

        [Chromium] Assertion failure minX <= maxX in Region.cpp
        https://bugs.webkit.org/show_bug.cgi?id=78038

        Reviewed by James Robinson.

        Covered by existing tests (should make them stop asserting).

        Clamp sizes for composited layers coming out of WebCore to make sure they are valid non-negative values.

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setSize):

2012-02-09  Gregg Tavares  <gman@google.com>

        Make WebGLRenderingContext::printWarningToConsole safer
        https://bugs.webkit.org/show_bug.cgi?id=78284

        Reviewed by Kenneth Russell.

        No new tests because no change in functionality.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::printWarningToConsole):

2012-02-09  W. James MacLean  <wjmaclean@chromium.org>

        [chromium] Add support for starting page/scale animations on CC impl thread from WebViewImpl
        https://bugs.webkit.org/show_bug.cgi?id=77872

        Reviewed by James Robinson.

        Added unit test.

        Provides a pathway to invoke CCLayerTreeHostImpl::startPageScaleAnimation() from
        WebViewImpl. This is intended to support scale and scroll animations, such as WebInputEvent::GestureDoubleTap.

        * platform/CrossThreadCopier.h:
        (WebCore):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::startPageScaleAnimation):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (CCLayerTreeHost):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
        (CCLayerTreeHostImpl):
        * platform/graphics/chromium/cc/CCProxy.h:
        (CCProxy):
        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
        (WebCore::CCSingleThreadProxy::startPageScaleAnimation):
        (WebCore):
        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
        (CCSingleThreadProxy):
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::startPageScaleAnimation):
        (WebCore):
        (WebCore::CCThreadProxy::requestStartPageScaleAnimationOnImplThread):
        * platform/graphics/chromium/cc/CCThreadProxy.h:
        (CCThreadProxy):

2012-02-09  Xianzhu Wang  <wangxianzhu@chromium.org>

        [Chromium] TiledLayerChromium::protectVisibleTileTextures() should only protect the visible textures
        https://bugs.webkit.org/show_bug.cgi?id=78249

        Reviewed by James Robinson.

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::protectVisibleTileTextures):

2012-02-09  Hayato Ito  <hayato@chromium.org>

        Add Node::isShadowElement() member function.
        https://bugs.webkit.org/show_bug.cgi?id=78201

        Reviewed by Dimitri Glazkov.

        No tests. No change in behavior. An upcoming change requires this to detect HTMLShadowElement.

        * dom/Node.h:
        (Node):
        (WebCore::Node::isShadowElement):
        * html/shadow/HTMLShadowElement.h:
        (WebCore::HTMLShadowElement::isShadowElement):

2012-02-09  Ryosuke Niwa  <rniwa@webkit.org>

        CachedResourceLoader is destroyed before CSSFontSelector is destroyed
        https://bugs.webkit.org/show_bug.cgi?id=77817

        Reviewed by Adam Barth.

        Explicitly clear style selector before destorying the cached resource loader.

        No new tests but PerformanceTests/Parser/html5-full-render.html was crashing
        on performance bots due to this bug.

        * dom/Document.cpp:
        (WebCore::Document::~Document):

2012-02-09  Anders Carlsson  <andersca@apple.com>

        Update the scroll layer position on the main thread when we have slow repaint objects
        https://bugs.webkit.org/show_bug.cgi?id=78300
        <rdar://problem/10710754>

        Reviewed by Dan Bernstein.

        When we have slow repaint objects (background-attachment: fixed), we need to update the
        scroll layer position on the main thread, otherwise the web page will appear to jiggle.
    
        * page/FrameView.cpp:
        (WebCore::FrameView::addSlowRepaintObject):
        (WebCore::FrameView::removeSlowRepaintObject):
        Call ScrollingCoordinator::frameViewHasSlowRepaintObjectsDidChange if needed.

        * page/FrameView.h:
        (WebCore::FrameView::hasSlowRepaintObjects):
        Add new getter.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::frameViewHasSlowRepaintObjectsDidChange):
        Call ScrollingTreeNode::shouldUpdateScrollLayerPositionOnMainThread.

        (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
        New function that will update both the main frame scroll position and the scroll layer position.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::updateMainFrameScrollPositionAndScrollLayerPosition):
        Dispatch a call to ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition on the main thread.

        * page/scrolling/ScrollingTreeNode.cpp:
        (WebCore::ScrollingTreeNode::ScrollingTreeNode):
        Initialize m_shouldUpdateScrollLayerPositionOnMainThread.

        (WebCore::ScrollingTreeNode::update):
        Set m_shouldUpdateScrollLayerPositionOnMainThread.

        * page/scrolling/ScrollingTreeState.cpp:
        (WebCore::ScrollingTreeState::ScrollingTreeState):
        Initialize m_shouldUpdateScrollLayerPositionOnMainThread.

        (WebCore::ScrollingTreeState::setShouldUpdateScrollLayerPositionOnMainThread):
        Update m_shouldUpdateScrollLayerPositionOnMainThread if needed.

        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
        (WebCore::ScrollingTreeNodeMac::setScrollPosition):
        Assert that we're not supposed to update the scroll layer position on the main thread.

        (WebCore::ScrollingTreeNodeMac::scrollBy):
        If we're supposed to update the scroll layer position on the main thread, 
        call ScrollingTree::updateMainFrameScrollPositionAndScrollLayerPosition.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::frameViewDidScroll):
        If the frame view has its scrolling coordinated by a scrolling coordinator, don't update the scroll layer position.

2012-02-09  Anders Carlsson  <andersca@apple.com>

        FrameView::addSlowRepaintObject() doesn't update m_canBlitOnScroll correctly
        https://bugs.webkit.org/show_bug.cgi?id=78291

        Reviewed by Dan Bernstein.

        m_slowRepaintObjectCount needs to be incremented before calling updateCanBlitOnScrollRecursively(),
        because otherwise useSlowRepaints() will return false even though we have to use slow repaints.

        I was unable to make a layout test for this because it requires that updateCanBlitOnScrollRecursively() isn't
        called again after m_slowRepaintObjectCount has been incremented.

        * page/FrameView.cpp:
        (WebCore::FrameView::addSlowRepaintObject):

2012-02-09  Ojan Vafai  <ojan@chromium.org>

        Remove TreeOrderIterator and iterate over the child boxes directly.
        https://bugs.webkit.org/show_bug.cgi?id=78294

        Reviewed by Tony Chang.

        No new tests. This is purely a refactor. No change in behavior. 

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutFlexItems):
        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
        * rendering/RenderFlexibleBox.h:
        (RenderFlexibleBox):
        (FlexOrderHashTraits):
        (WebCore::RenderFlexibleBox::FlexOrderHashTraits::emptyValue):
        (WebCore::RenderFlexibleBox::FlexOrderHashTraits::constructDeletedValue):
        (WebCore::RenderFlexibleBox::FlexOrderHashTraits::isDeletedValue):

2012-02-09  Kentaro Hara  <haraken@chromium.org>

        Code generators should support multiple values for the [CallWith=] attribute
        https://bugs.webkit.org/show_bug.cgi?id=78224

        Reviewed by Adam Barth.

        Currently we can specify only one value for one [CallWith=],
        like [CallWith=ScriptExecutionContext] or [CallWith=ScriptState].
        To reduce redundant IDL attributes, we are planning to support multiple
        values for [CallWith=], like [CallWith=ScriptExecutionContext|ScriptArguments|CallStack].
        This patch makes a change on code generators to support it.

        Test: bindings/scripts/test/TestObj.idl
        No change in WebKit behavior since IDL files have not yet used [CallWith=X|Y|Z].

        * bindings/scripts/CodeGenerator.pm: Modified to support [CallWith=X|Y|Z].
        (ExtendedAttributeContains):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        (GenerateCallWith):
        (GenerateParametersCheck):
        (GenerateImplementationFunctionCall):
        (GenerateConstructorDeclaration):
        (GenerateConstructorDefinition):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateCallWith):
        (GenerateFunctionCallString):

        * bindings/scripts/test/TestObj.idl: Added test cases for [CallWith=X|Y|Z].

        * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated run-bindings-tests results.
        (WebDOMTestObj::withScriptExecutionContextAndScriptStateAttribute):
        (WebDOMTestObj::setWithScriptExecutionContextAndScriptStateAttribute):
        (WebDOMTestObj::withScriptExecutionContextAndScriptStateAttributeRaises):
        (WebDOMTestObj::setWithScriptExecutionContextAndScriptStateAttributeRaises):
        (WebDOMTestObj::withScriptExecutionContextAndScriptStateWithSpacesAttribute):
        (WebDOMTestObj::setWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
        (WebDOMTestObj::withScriptExecutionContextAndScriptState):
        (WebDOMTestObj::withScriptExecutionContextAndScriptStateObjException):
        (WebDOMTestObj::withScriptExecutionContextAndScriptStateWithSpaces):
        * bindings/scripts/test/CPP/WebDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (webkit_dom_test_obj_with_script_execution_context_and_script_state):
        (webkit_dom_test_obj_with_script_execution_context_and_script_state_obj_exception):
        (webkit_dom_test_obj_with_script_execution_context_and_script_state_with_spaces):
        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute):
        (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute):
        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_attribute_raises):
        (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_attribute_raises):
        (webkit_dom_test_obj_get_with_script_execution_context_and_script_state_with_spaces_attribute):
        (webkit_dom_test_obj_set_with_script_execution_context_and_script_state_with_spaces_attribute):
        (webkit_dom_test_obj_get_property):
        (webkit_dom_test_obj_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore):
        (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
        (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
        (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptState):
        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
        * bindings/scripts/test/JS/JSTestObj.h:
        (WebCore):
        * bindings/scripts/test/ObjC/DOMTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        (-[DOMTestObj withScriptExecutionContextAndScriptStateAttribute]):
        (-[DOMTestObj setWithScriptExecutionContextAndScriptStateAttribute:]):
        (-[DOMTestObj withScriptExecutionContextAndScriptStateAttributeRaises]):
        (-[DOMTestObj setWithScriptExecutionContextAndScriptStateAttributeRaises:]):
        (-[DOMTestObj withScriptExecutionContextAndScriptStateWithSpacesAttribute]):
        (-[DOMTestObj setWithScriptExecutionContextAndScriptStateWithSpacesAttribute:]):
        (-[DOMTestObj withScriptExecutionContextAndScriptState]):
        (-[DOMTestObj withScriptExecutionContextAndScriptStateObjException]):
        (-[DOMTestObj withScriptExecutionContextAndScriptStateWithSpaces]):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjInternal::withScriptExecutionContextAndScriptStateAttributeAttrGetter):
        (TestObjInternal):
        (WebCore::TestObjInternal::withScriptExecutionContextAndScriptStateAttributeAttrSetter):
        (WebCore::TestObjInternal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrGetter):
        (WebCore::TestObjInternal::withScriptExecutionContextAndScriptStateAttributeRaisesAttrSetter):
        (WebCore::TestObjInternal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrGetter):
        (WebCore::TestObjInternal::withScriptExecutionContextAndScriptStateWithSpacesAttributeAttrSetter):
        (WebCore::TestObjInternal::withScriptExecutionContextAndScriptStateCallback):
        (WebCore::TestObjInternal::withScriptExecutionContextAndScriptStateObjExceptionCallback):
        (WebCore::TestObjInternal::withScriptExecutionContextAndScriptStateWithSpacesCallback):
        (WebCore):

2012-02-09  Kentaro Hara  <haraken@chromium.org>

        Rename [ConvertNullStringTo=] to [TreatReturnedNullStringAs=]
        https://bugs.webkit.org/show_bug.cgi?id=78108

        Reviewed by Adam Barth.

        [ConvertNullStringTo=] is not descriptive. To clarify that it specifies
        the behavior when the null string is returned by WebCore, this patch renames
        [ConvertNullStringTo=] to [TreatReturnedNullStringAs=]. This change is also
        for naming consistency with [TreatNullAs] and [TreatUndefinedAs].

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody):
        (NativeToJSValue):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateImplementationIndexer):
        (NativeToJSValue):
        * bindings/scripts/test/TestObj.idl:
        * css/CSSCharsetRule.idl:
        * css/CSSImportRule.idl:
        * css/CSSPageRule.idl:
        * css/CSSRule.idl:
        * css/CSSStyleDeclaration.idl:
        * css/CSSStyleRule.idl:
        * css/CSSValue.idl:
        * css/MediaList.idl:
        * css/StyleSheet.idl:
        * css/WebKitCSSKeyframesRule.idl:
        * dom/Attr.idl:
        * dom/CharacterData.idl:
        * dom/Clipboard.idl:
        * dom/DOMStringList.idl:
        * dom/Document.idl:
        * dom/DocumentType.idl:
        * dom/Element.idl:
        * dom/Entity.idl:
        * dom/MutationRecord.idl:
        * dom/Node.idl:
        * dom/Notation.idl:
        * dom/ProcessingInstruction.idl:
        * html/DOMTokenList.idl:
        * html/DOMURL.idl:
        * html/HTMLMediaElement.idl:
        * html/canvas/WebGLDebugShaders.idl:
        * html/canvas/WebGLRenderingContext.idl:
        * page/DOMWindow.idl:
        * storage/IDBObjectStore.idl:
        * storage/IDBRequest.idl:
        * storage/Storage.idl:
        * storage/StorageEvent.idl:
        * websockets/WebSocket.idl:
        * xml/XMLHttpRequest.idl:
        * xml/XPathNSResolver.idl:
        * xml/XSLTProcessor.idl:

2012-02-09  Tony Chang  <tony@chromium.org>

        more refactoring of RenderFlexibleBox in preparation for multiline
        https://bugs.webkit.org/show_bug.cgi?id=78281

        Reviewed by Ojan Vafai.

        Previously, we were creating Vector of each flex item's preferred size in document order,
        but for multiline, we need to break the lines in the flex order.  I just removed this code
        since it was the wrong order.

        Instead, have 2 funtions, computeMainAxisPreferredSizes which only does the necessary
        layouts and margin computations to compute preferred sizes and computeFlexOrder which
        does the work of computing the flex order, preferred sizes, positive/negative flex.

        For multiline, we will have computeFlexOrder drive a while loop and it will return the
        flex items, preferred size, and positive/negative flex values for each line.

        No new tests, just refactoring.

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutFlexItems):
        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Only layout auto sized children and set margins.
        (WebCore::RenderFlexibleBox::computeFlexOrder): Compute flex order, preferred size, positive/negative flex.
        (WebCore::RenderFlexibleBox::runFreeSpaceAllocationAlgorithm): Use the precomputed flex order.
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Use the precomputed flex order.
        (WebCore::RenderFlexibleBox::layoutColumnReverse): Use the precomputed flex order.
        (WebCore::RenderFlexibleBox::alignChildren): Use the precomputed flex order.
        * rendering/RenderFlexibleBox.h:
        (RenderFlexibleBox):

2012-02-09  Kentaro Hara  <haraken@chromium.org>

        Rename [Optional=CallWithDefaultValue] and [Optional=CallWithNullValue]
        https://bugs.webkit.org/show_bug.cgi?id=78200

        Reviewed by Adam Barth.

        [Optional=CallWithDefaultValue] and [Optional=CallWithNullValue] are confusing.

        - [Optional=CallWithDefaultValue] indicates that a missing value should be treated
        as if the JavaScript undefined is passed.
        - [Optional=CallWithNullValue] indicates that a missing value should be treated as
        the WebKit null value (i.e. JSValue() or v8::Local<v8::Value>()).
        - Actually, the difference between [Optional=CallWithDefaultValue] and
        [Optional=CallWithNullValue] will appear only when the type of the missing value
        is DOMString. In case of [Optional=CallWithDefaultValue], the missing value is
        converted to the string "undefined". On the other hand, in case of
        [Optional=CallWithNullValue], the missing value is converted to the WebKit null string.

        With these observations, this patch renames as follows:

        - Rename [Optional=CallWithDefaultValue] to [Optional=DefaultIsUndefined].
        - Rename [Optional=CallWithNullValue] to [Optional=DefaultIsNullString].

        Test: bindings/scripts/test/TestObj.idl

        * bindings/js/JSDOMBinding.h: Renamed MissingIsEmpty to DefaultIsNullString,
        renamed MissingIsUndefined to DefaultIsUndefined.
        * bindings/v8/V8Binding.h: Ditto.
        * bindings/v8/custom/V8BindingMacros.h: Ditto.

        * bindings/scripts/CodeGeneratorJS.pm: Modified to support the renaming.
        (GenerateParametersCheck):
        * bindings/scripts/CodeGeneratorV8.pm: Ditto.
        (GenerateParametersCheck):
        (RequiresCustomSignature):

        * bindings/scripts/test/TestObj.idl: Renamed [Optional=...] as described above.
        * bindings/scripts/test/TestInterface.idl: Ditto.
        * bindings/scripts/test/TestNamedConstructor.idl: Ditto.

        * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated run-bindings-tests results.
        (WebDOMTestObj::methodWithOptionalString):
        (WebDOMTestObj::methodWithOptionalStringIsUndefinedString):
        (WebDOMTestObj::methodWithOptionalStringIsNullString):
        * bindings/scripts/test/CPP/WebDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (webkit_dom_test_obj_method_with_optional_string):
        (webkit_dom_test_obj_method_with_optional_string_is_undefined_string):
        (webkit_dom_test_obj_method_with_optional_string_is_null_string):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefinedString):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
        * bindings/scripts/test/JS/JSTestObj.h:
        (WebCore):
        * bindings/scripts/test/ObjC/DOMTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        (-[DOMTestObj methodWithOptionalString:]):
        (-[DOMTestObj methodWithOptionalStringIsUndefinedString:]):
        (-[DOMTestObj methodWithOptionalStringIsNullString:]):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructorCallback):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjInternal::methodWithOptionalStringCallback):
        (TestObjInternal):
        (WebCore::TestObjInternal::methodWithOptionalStringIsUndefinedStringCallback):
        (WebCore::TestObjInternal::methodWithOptionalStringIsNullStringCallback):
        (WebCore):

        * Modules/gamepad/GamepadList.idl: Renamed [Optional=...] as described above.
        * Modules/intents/Intent.idl:
        * css/CSSMediaRule.idl:
        * css/CSSPrimitiveValue.idl:
        * css/CSSRuleList.idl:
        * css/CSSStyleDeclaration.idl:
        * css/CSSStyleSheet.idl:
        * css/CSSValueList.idl:
        * css/MediaList.idl:
        * css/MediaQueryList.idl:
        * css/MediaQueryListListener.idl:
        * css/StyleMedia.idl:
        * css/StyleSheetList.idl:
        * css/WebKitCSSKeyframesRule.idl:
        * css/WebKitCSSMatrix.idl:
        * dom/CharacterData.idl:
        * dom/ClientRectList.idl:
        * dom/CompositionEvent.idl:
        * dom/CustomEvent.idl:
        * dom/DOMImplementation.idl:
        * dom/DOMStringList.idl:
        * dom/DataTransferItem.idl:
        * dom/DataTransferItemList.idl:
        * dom/DeviceMotionEvent.idl:
        * dom/DeviceOrientationEvent.idl:
        * dom/Document.idl:
        * dom/Element.idl:
        * dom/Event.idl:
        * dom/HashChangeEvent.idl:
        * dom/KeyboardEvent.idl:
        * dom/MessageEvent.idl:
        * dom/MouseEvent.idl:
        * dom/MutationEvent.idl:
        * dom/NamedNodeMap.idl:
        * dom/Node.idl:
        * dom/NodeFilter.idl:
        * dom/NodeList.idl:
        * dom/OverflowEvent.idl:
        * dom/Range.idl:
        * dom/ShadowRoot.idl:
        * dom/Text.idl:
        * dom/TextEvent.idl:
        * dom/TouchEvent.idl:
        * dom/UIEvent.idl:
        * dom/WheelEvent.idl:
        * html/DOMFormData.idl:
        * html/HTMLAllCollection.idl:
        * html/HTMLAudioElement.idl:
        * html/HTMLCanvasElement.idl:
        * html/HTMLCollection.idl:
        * html/HTMLDocument.idl:
        * html/HTMLElement.idl:
        * html/HTMLInputElement.idl:
        * html/HTMLMediaElement.idl:
        * html/HTMLOptionElement.idl:
        * html/HTMLOptionsCollection.idl:
        * html/HTMLSelectElement.idl:
        * html/HTMLTableElement.idl:
        * html/HTMLTableRowElement.idl:
        * html/HTMLTableSectionElement.idl:
        * html/HTMLTextAreaElement.idl:
        * html/TextTrackCue.idl:
        * html/canvas/CanvasGradient.idl:
        * html/canvas/CanvasRenderingContext2D.idl:
        * html/canvas/Float32Array.idl:
        * html/canvas/Float64Array.idl:
        * html/canvas/Int16Array.idl:
        * html/canvas/Int32Array.idl:
        * html/canvas/Int8Array.idl:
        * html/canvas/OESVertexArrayObject.idl:
        * html/canvas/Uint16Array.idl:
        * html/canvas/Uint32Array.idl:
        * html/canvas/Uint8Array.idl:
        * html/canvas/Uint8ClampedArray.idl:
        * page/Console.idl:
        * page/DOMSelection.idl:
        * page/DOMWindow.idl:
        * page/History.idl:
        * page/Location.idl:
        * plugins/DOMMimeTypeArray.idl:
        * plugins/DOMPlugin.idl:
        * plugins/DOMPluginArray.idl:
        * storage/IDBDatabase.idl:
        * storage/StorageEvent.idl:
        * svg/ElementTimeControl.idl:
        * svg/SVGDocument.idl:
        * svg/SVGElementInstanceList.idl:
        * svg/SVGFEDropShadowElement.idl:
        * svg/SVGFEGaussianBlurElement.idl:
        * svg/SVGFEMorphologyElement.idl:
        * svg/SVGFilterElement.idl:
        * svg/SVGLocatable.idl:
        * svg/SVGMarkerElement.idl:
        * svg/SVGPathElement.idl:
        * svg/SVGSVGElement.idl:
        * svg/SVGStylable.idl:
        * svg/SVGTests.idl:
        * svg/SVGTextContentElement.idl:
        * webaudio/AudioNode.idl:
        * workers/SharedWorker.idl:
        * workers/WorkerContext.idl:
        * xml/DOMParser.idl:
        * xml/XMLSerializer.idl:
        * xml/XPathEvaluator.idl:
        * xml/XPathExpression.idl:
        * xml/XPathNSResolver.idl:
        * xml/XPathResult.idl:

2012-02-09  Matthew Delaney  <mdelaney@apple.com>

        getComputedStyle() returns different values for different zoom levels
        https://bugs.webkit.org/show_bug.cgi?id=32230

        Reviewed by Beth Dakin.

        Test: fast/css/getComputedStyle/getComputedStyle-zoom-and-background-size.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::fillSizeToCSSValue): Pass down the RenderStyle for use in adjusting
        values to account for zoom.
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Adjust additional
        properties that are affected by zoom.

2012-02-09  Kentaro Hara  <haraken@chromium.org>

        Rename [Return] to [CustomReturn]
        https://bugs.webkit.org/show_bug.cgi?id=78225

        Reviewed by Adam Barth.

        [Return] is used to handle custom code for a returned value.
        To clarify it, this patch renames [Return] to [CustomReturn].

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorCPP.pm:
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateFunction):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (GenerateImplementation):
        * dom/Node.idl:

2012-02-09  Levi Weintraub  <leviw@chromium.org>

        Add roundedIntPoint method for LayoutPoints
        https://bugs.webkit.org/show_bug.cgi?id=78262

        Reviewed by Eric Seidel.

        Adding a roundedIntPoint method that operates on a LayoutPoint. Currently, this does
        nothing as LayoutPoint is a typedef to IntPoint. When we enable sub-pixel LayoutUnits,
        this is a critical part in our pixel snapping strategy, where we round the logical top-
        left point, then snap the right and bottom edges.

        Also using this new method where we wish to convert LayoutPoints to IntPoints, which
        we're currently doing implicitly (since they're the same thing).

        No new tests. No change in functionality.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
        (WebCore::AccessibilityRenderObject::accessibilityHitTest):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::eventMayStartDrag):
        (WebCore::EventHandler::hitTestResultAtPoint):
        (WebCore::EventHandler::selectCursor):
        * rendering/LayoutTypes.h:
        (WebCore::roundedIntPoint):
        (WebCore):
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::getReplacementTextGeometry):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::paintIntoRegion):
        * rendering/RenderFrameSet.cpp:
        (WebCore::RenderFrameSet::getCursor):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::paintReplaced):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollRectToVisible):
        (WebCore::RenderLayer::offsetFromResizeCorner):
        (WebCore::RenderLayer::isPointInResizeControl):
        (WebCore::RenderLayer::paintLayerContents):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::paintContents):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::paintContents):
        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore::RenderMathMLBlock::paint):
        * rendering/mathml/RenderMathMLFraction.cpp:
        (WebCore::RenderMathMLFraction::paint):
        * rendering/mathml/RenderMathMLRoot.cpp:
        (WebCore::RenderMathMLRoot::paint):
        * rendering/mathml/RenderMathMLSquareRoot.cpp:
        (WebCore::RenderMathMLSquareRoot::paint):

2012-02-09  John Bates  <jbates@google.com>

        [Chromium] Add chromium-style tracing support
        https://bugs.webkit.org/show_bug.cgi?id=76885

        Reviewed by Darin Fisher.

        This code enables WebKit trace events to pass through more data to the
        chromium platform tracing API and generally to use the full tracing
        API provided by chromium.

        * bindings/v8/V8Proxy.cpp:
        (WebCore::V8Proxy::evaluate): Replace old tracing API.
        * page/Console.cpp:
        (WebCore::Console::time): Replace old tracing API.
        (WebCore::Console::timeEnd): Replace old tracing API.
        * platform/chromium/PlatformSupport.h:
        * platform/chromium/TraceEvent.h:
        (WebCore::TraceEvent::TraceID::TraceID):
        (WebCore::TraceEvent::TraceID::data):
        (WebCore::TraceEvent::TraceStringWithCopy::TraceStringWithCopy):
        (WebCore::TraceEvent::TraceStringWithCopy::operator const char* ):
        (WebCore::TraceEvent::setTraceValue):
        (WebCore::TraceEvent::addTraceEvent):
        (WebCore::TraceEvent::TraceEndOnScopeClose::TraceEndOnScopeClose):
        (WebCore::TraceEvent::TraceEndOnScopeClose::~TraceEndOnScopeClose):
        (WebCore::TraceEvent::TraceEndOnScopeClose::initialize):
        (WebCore::TraceEvent::TraceEndOnScopeClose::addEventIfEnabled):
        (WebCore::TraceEvent::TraceEndOnScopeCloseThreshold::TraceEndOnScopeCloseThreshold):
        (WebCore::TraceEvent::TraceEndOnScopeCloseThreshold::~TraceEndOnScopeCloseThreshold):
        (WebCore::TraceEvent::TraceEndOnScopeCloseThreshold::initialize):
        (WebCore::TraceEvent::TraceEndOnScopeCloseThreshold::addEventIfEnabled):

2012-02-09  David Hyatt  <hyatt@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=78256
        
        Rename line-grid-snap to line-snap so that it matches the draft proposal for the
        property.

        Reviewed by Dan Bernstein.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator LineSnap):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::alignBoxesInBlockDirection):
        (WebCore::RootInlineBox::lineSnapAdjustment):
        * rendering/RootInlineBox.h:
        (RootInlineBox):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff):
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleRareInheritedData.cpp:
        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
        (WebCore::StyleRareInheritedData::operator==):
        * rendering/style/StyleRareInheritedData.h:
        (StyleRareInheritedData):

2012-02-09  Benjamin Poulain  <bpoulain@apple.com>

        The localization of htmlSelectMultipleItems() needs better support of pluralization
        https://bugs.webkit.org/show_bug.cgi?id=78197

        Reviewed by Joseph Pecoraro.

        For translation, the localization of 0 and 1 depends on the language.

        * English.lproj/Localizable.strings:
        * platform/DefaultLocalizationStrategy.cpp:
        (WebCore::DefaultLocalizationStrategy::htmlSelectMultipleItems):

2012-02-09  Anders Carlsson  <andersca@apple.com>

        ScrollingTreeNodeMac should implement ScrollElasticityController
        https://bugs.webkit.org/show_bug.cgi?id=78277

        Reviewed by Andreas Kling.

        Add stubbed out implementations of the ScrollElasticityController member functions.

        * page/scrolling/mac/ScrollingTreeNodeMac.h:
        (ScrollingTreeNodeMac):
        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
        (WebCore::ScrollingTreeNodeMac::allowsHorizontalStretching):
        (WebCore):
        (WebCore::ScrollingTreeNodeMac::allowsVerticalStretching):
        (WebCore::ScrollingTreeNodeMac::stretchAmount):
        (WebCore::ScrollingTreeNodeMac::pinnedInDirection):
        (WebCore::ScrollingTreeNodeMac::canScrollHorizontally):
        (WebCore::ScrollingTreeNodeMac::canScrollVertically):
        (WebCore::ScrollingTreeNodeMac::shouldRubberBandInDirection):
        (WebCore::ScrollingTreeNodeMac::absoluteScrollPosition):
        (WebCore::ScrollingTreeNodeMac::immediateScrollBy):
        (WebCore::ScrollingTreeNodeMac::immediateScrollByWithoutContentEdgeConstraints):
        (WebCore::ScrollingTreeNodeMac::startSnapRubberbandTimer):
        (WebCore::ScrollingTreeNodeMac::stopSnapRubberbandTimer):

2012-02-09  Adrienne Walker  <enne@google.com>

        [chromium] Correct potential double reserveTextures() in CCLayerTreeHost
        https://bugs.webkit.org/show_bug.cgi?id=78258

        Reviewed by James Robinson.

        This isn't a problem currently, because scrollbar layers don't create
        render surfaces. However, if this ever got used for other layers, we
        could call reserve on them twice needlessly. It's also just bad form
        to have an iterator doing the wrong thing.

        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::reserveTextures):

2012-02-09  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r107261.
        http://trac.webkit.org/changeset/107261
        https://bugs.webkit.org/show_bug.cgi?id=78274

        It has regressed svg/W3C-SVG-1.1/styling-css-05-b.svg (using
        lang() selectors) (Requested by jchaffraix on #webkit).

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::canShareStyleWithControl):
        (WebCore::CSSStyleSelector::canShareStyleWithElement):
        (WebCore::isCommonAttributeSelectorAttribute):

2012-02-09  Joshua Bell  <jsbell@chromium.org>

        [Chromium] IndexedDB: IDBVersionChangeRequest V8 wrapper not generated as ActiveDOMObject
        https://bugs.webkit.org/show_bug.cgi?id=78167

        Add ActiveDOMObject annotation to IDBVersionChangeRequest.idl; it is not
        automagically inherited from IDBRequest.idl.

        Reviewed by Adam Barth.

        Test: storage/indexeddb/versionchangerequest-activedomobject.html

        * storage/IDBVersionChangeRequest.idl:

2012-02-09  Anders Carlsson  <andersca@apple.com>

        The scrolling tree should know more about the scrollbar state
        https://bugs.webkit.org/show_bug.cgi?id=78268

        Reviewed by Andreas Kling.

        With this change, the scroll tree now keeps track of the horizontal scroll elasticity,
        the vertical scroll elasticity and whether the page has enabled scrollbars.

        This is needed in order to make rubber-banding work correctly when doing fast scrolling.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
        * page/scrolling/ScrollingTreeNode.cpp:
        (WebCore::ScrollingTreeNode::ScrollingTreeNode):
        (WebCore::ScrollingTreeNode::update):
        * page/scrolling/ScrollingTreeNode.h:
        (ScrollingTreeNode):
        * page/scrolling/ScrollingTreeState.cpp:
        (WebCore::ScrollingTreeState::ScrollingTreeState):
        (WebCore::ScrollingTreeState::setHorizontalScrollElasticity):
        (WebCore):
        (WebCore::ScrollingTreeState::setVerticalScrollElasticity):
        (WebCore::ScrollingTreeState::setHasEnabledHorizontalScrollbar):
        (WebCore::ScrollingTreeState::setHasEnabledVerticalScrollbar):
        * page/scrolling/ScrollingTreeState.h:
        (WebCore::ScrollingTreeState::horizontalScrollElasticity):
        (ScrollingTreeState):
        (WebCore::ScrollingTreeState::verticalScrollElasticity):
        (WebCore::ScrollingTreeState::hasEnabledHorizontalScrollbar):
        (WebCore::ScrollingTreeState::hasEnabledVerticalScrollbar):

2012-02-09  Xianzhu Wang  <wangxianzhu@chromium.org>

        Unnecessary and incorrect invalidation about composited fixed-position layers
        https://bugs.webkit.org/show_bug.cgi?id=75638

        When a FrameView scrolls, composited fixed-position layers should
        not contribute to the invalidation rect of the root layer.

        Reviewed by Simon Fraser.

        No new tests. Haven't found a good way to test this programatically.

        * page/FrameView.cpp:
        (WebCore::FrameView::scrollContentsFastPath):

2012-02-09  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r107035.
        http://trac.webkit.org/changeset/107035
        https://bugs.webkit.org/show_bug.cgi?id=78253

        Regressed DOMDivWalk (Requested by arv on #webkit).

        * Target.pri:
        * UseV8.cmake:
        * WebCore.gypi:
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (HasCustomToV8Implementation):
        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
        (WebCore::toV8):
        (WebCore):
        * bindings/v8/custom/V8DOMTokenListCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8NamedNodeMapCustom.cpp.
        (WebCore):
        (WebCore::toV8):
        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
        (WebCore::toV8):
        (WebCore):

2012-02-09  David Barton  <dbarton@mathscribe.com>

        MathML internals for bug 52444 fix - type checking, PassRefPtr
        https://bugs.webkit.org/show_bug.cgi?id=78180

        Reviewed by Eric Seidel.
        
        static_cast<Element*>(node()) is done in methods in RenderMathMLFenced.cpp and a few
        other files. It is more type-safe if the RenderMathMLFenced() or other constructor only
        accepts an Element*, not a Node*. Also a couple functions were changed to return a
        PassRefPtr instead of a RefPtr.

        No new tests.

        * rendering/mathml/RenderMathMLFenced.cpp:
        (WebCore::RenderMathMLFenced::RenderMathMLFenced):
        (WebCore::RenderMathMLFenced::updateFromElement):
        (WebCore::RenderMathMLFenced::makeOperatorStyle):
        (WebCore::RenderMathMLFenced::makeFences):
        (WebCore::RenderMathMLFenced::addChild):
        * rendering/mathml/RenderMathMLFenced.h:
        (RenderMathMLFenced):
        * rendering/mathml/RenderMathMLFraction.cpp:
        (WebCore::RenderMathMLFraction::RenderMathMLFraction):
        * rendering/mathml/RenderMathMLFraction.h:
        (RenderMathMLFraction):
        * rendering/mathml/RenderMathMLMath.cpp:
        (WebCore::RenderMathMLMath::RenderMathMLMath):
        * rendering/mathml/RenderMathMLMath.h:
        (RenderMathMLMath):
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
        (WebCore::RenderMathMLOperator::updateFromElement):
        (WebCore::RenderMathMLOperator::createStackableStyle):
        (WebCore::RenderMathMLOperator::createGlyph):
        * rendering/mathml/RenderMathMLOperator.h:
        (RenderMathMLOperator):
        * rendering/mathml/RenderMathMLRoot.cpp:
        (WebCore::RenderMathMLRoot::RenderMathMLRoot):
        (WebCore::RenderMathMLRoot::layout):
        * rendering/mathml/RenderMathMLRoot.h:
        (RenderMathMLRoot):
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::RenderMathMLRow):
        * rendering/mathml/RenderMathMLRow.h:
        (RenderMathMLRow):
        * rendering/mathml/RenderMathMLSquareRoot.cpp:
        (WebCore::RenderMathMLSquareRoot::RenderMathMLSquareRoot):
        * rendering/mathml/RenderMathMLSquareRoot.h:
        (RenderMathMLSquareRoot):
        * rendering/mathml/RenderMathMLSubSup.cpp:
        (WebCore::RenderMathMLSubSup::addChild):
        * rendering/mathml/RenderMathMLSubSup.h:
        (RenderMathMLSubSup):
        * rendering/mathml/RenderMathMLUnderOver.cpp:
        (WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver):
        * rendering/mathml/RenderMathMLUnderOver.h:
        (RenderMathMLUnderOver):

2012-02-09  Andreas Kling  <awesomekling@apple.com>

        Avoid unnecessary work when evaluating style sharing candidates.
        <http://webkit.org/b/78220>

        Reviewed by Antti Koivisto.

        Do the cheap checks (bitfields, pointers) before calling virtuals and doing hash lookups.
        Remove comparison of attributes that are reflected in the attribute styles (cellpadding,
        lang and xml:lang.) Moved comparison of "type" and "readonly" attributes into the more
        specific canShareStyleWithControl() since they are only relevant for input elements.
        Don't bother calling isFormControlElement() on both elements since we already know they
        have the same tagQName().

        Altogether this knocks off 8-9ms worth of samples per cycle of the "Moz" page cycler test.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::canShareStyleWithControl):
        (WebCore::CSSStyleSelector::canShareStyleWithElement):
        (WebCore::isCommonAttributeSelectorAttribute):

2012-02-09  Mike Lawther  <mikelawther@chromium.org>

        CSS3 calc() - remove mod
        https://bugs.webkit.org/show_bug.cgi?id=78226

        mod has been removed from the spec for calc().

        Reviewed by Ojan Vafai.

        * css/CSSCalculationValue.cpp:
        (WebCore::CSSCalcBinaryOperation::create):
        (WebCore::CSSCalcBinaryOperation::evaluate):
        (WebCore::CSSCalcExpressionNodeParser::parseValueMultiplicativeExpression):
        * css/CSSGrammar.y:
        * platform/CalculationValue.h:

2012-02-09  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: rename DOMEditor to DOMPatchSupport, move undoable actions from
        InspectorDOMAgent to the new DOMEditor.
        https://bugs.webkit.org/show_bug.cgi?id=78245

        Reviewed by Yury Semikhatsky.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/DOMEditor.cpp:
        (DOMEditor::DOMAction):
        (WebCore::DOMEditor::DOMAction::DOMAction):
        (WebCore::DOMEditor::DOMAction::perform):
        (WebCore::DOMEditor::DOMAction::undo):
        (DOMEditor::RemoveChildAction):
        (WebCore::DOMEditor::RemoveChildAction::RemoveChildAction):
        (WebCore::DOMEditor::RemoveChildAction::perform):
        (WebCore::DOMEditor::RemoveChildAction::undo):
        (DOMEditor::InsertBeforeAction):
        (WebCore::DOMEditor::InsertBeforeAction::InsertBeforeAction):
        (WebCore::DOMEditor::InsertBeforeAction::perform):
        (WebCore::DOMEditor::InsertBeforeAction::undo):
        (DOMEditor::RemoveAttributeAction):
        (WebCore::DOMEditor::RemoveAttributeAction::RemoveAttributeAction):
        (WebCore::DOMEditor::RemoveAttributeAction::perform):
        (WebCore::DOMEditor::RemoveAttributeAction::undo):
        (DOMEditor::SetAttributeAction):
        (WebCore::DOMEditor::SetAttributeAction::SetAttributeAction):
        (WebCore::DOMEditor::SetAttributeAction::perform):
        (WebCore::DOMEditor::SetAttributeAction::undo):
        (DOMEditor::SetOuterHTMLAction):
        (WebCore::DOMEditor::SetOuterHTMLAction::SetOuterHTMLAction):
        (WebCore::DOMEditor::SetOuterHTMLAction::perform):
        (WebCore::DOMEditor::SetOuterHTMLAction::undo):
        (WebCore::DOMEditor::SetOuterHTMLAction::newNode):
        (DOMEditor::ReplaceWholeTextAction):
        (WebCore::DOMEditor::ReplaceWholeTextAction::ReplaceWholeTextAction):
        (WebCore::DOMEditor::ReplaceWholeTextAction::perform):
        (WebCore::DOMEditor::ReplaceWholeTextAction::undo):
        (WebCore::DOMEditor::DOMEditor):
        (WebCore):
        (WebCore::DOMEditor::~DOMEditor):
        (WebCore::DOMEditor::insertBefore):
        (WebCore::DOMEditor::removeChild):
        (WebCore::DOMEditor::setAttribute):
        (WebCore::DOMEditor::removeAttribute):
        (WebCore::DOMEditor::setOuterHTML):
        (WebCore::DOMEditor::replaceWholeText):
        * inspector/DOMEditor.h:
        (WebCore):
        (DOMEditor):
        * inspector/DOMPatchSupport.cpp: Copied from Source/WebCore/inspector/DOMEditor.cpp.
        (WebCore::DOMPatchSupport::DOMPatchSupport):
        (WebCore::DOMPatchSupport::~DOMPatchSupport):
        (WebCore::DOMPatchSupport::patchDocument):
        (WebCore::DOMPatchSupport::patchNode):
        (WebCore::DOMPatchSupport::innerPatchNode):
        (WebCore):
        (WebCore::DOMPatchSupport::diff):
        (WebCore::DOMPatchSupport::innerPatchChildren):
        (WebCore::DOMPatchSupport::createDigest):
        (WebCore::DOMPatchSupport::insertBefore):
        (WebCore::DOMPatchSupport::removeChild):
        (WebCore::DOMPatchSupport::markNodeAsUsed):
        (WebCore::DOMPatchSupport::dumpMap):
        * inspector/DOMPatchSupport.h: Copied from Source/WebCore/inspector/DOMEditor.h.
        (DOMPatchSupport):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::InspectorDOMAgent):
        (WebCore::InspectorDOMAgent::setFrontend):
        (WebCore::InspectorDOMAgent::clearFrontend):
        (WebCore::InspectorDOMAgent::reset):
        (WebCore::InspectorDOMAgent::setAttributeValue):
        (WebCore::InspectorDOMAgent::setAttributesAsText):
        (WebCore::InspectorDOMAgent::removeAttribute):
        (WebCore::InspectorDOMAgent::removeNode):
        (WebCore::InspectorDOMAgent::setNodeName):
        (WebCore::InspectorDOMAgent::setOuterHTML):
        (WebCore::InspectorDOMAgent::setNodeValue):
        (WebCore::InspectorDOMAgent::moveTo):
        * inspector/InspectorDOMAgent.h:
        (WebCore):
        (InspectorDOMAgent):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::setDocumentContent):

2012-02-09  Mark Rowe  <mrowe@apple.com>

        REGRESSION (r104746): iframes load PDFs as media documents
        <http://webkit.org/b/77079> / <rdar://problem/10757933>

        Roll out r104746 since it completely broke support for loading PDF documents in subframes.

        Reviewed by Adam Treat.

        * dom/DOMImplementation.cpp:
        (WebCore::DOMImplementation::createDocument):

2012-02-09  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [refactoring] take _showShortEvents out of timeline calculator
        https://bugs.webkit.org/show_bug.cgi?id=78230

        Reviewed by Pavel Feldman.

        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel):
        (WebInspector.TimelinePanel.prototype._toggleFilterButtonClicked):
        (WebInspector.TimelinePanel.prototype._refresh):
        (WebInspector.TimelinePanel.prototype._addToRecordsWindow):

2012-02-08  Dan Vrátil  <dvratil@redhat.com>, Milan Crha <mcrha@redhat.com>

        [GTK] Embedded GtkWidgets are not drawn
        https://bugs.webkit.org/show_bug.cgi?id=63451

        Remove widget from it's parent container when GtkPluginWidget is destroyed.
        Remove paint() method because real expose even is used for drawing child widgets now.

        Reviewed by Martin Robinson.

        * platform/gtk/GtkPluginWidget.cpp:
        (WebCore::GtkPluginWidget::~GtkPluginWidget):
        (WebCore):
        * platform/gtk/GtkPluginWidget.h:
        (GtkPluginWidget):

2012-02-09  Arun Patole  <arun.patole@motorola.com>

        Setting media element 'src' attribute to "" should trigger load
        https://bugs.webkit.org/show_bug.cgi?id=47907

        Reviewed by Eric Carlson.

        Test: media/video-src-empty.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::attributeChanged):Trigger a load, as long as the 'src' attribute is present.

2012-02-09  Jonathan Backer  <backer@chromium.org>

        [chromium] Add setNeedsRedraw to WebWidget
        https://bugs.webkit.org/show_bug.cgi?id=77555

        Reviewed by James Robinson.

        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::setNeedsRedraw):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::setFullRootLayerDamage):
        (WebCore):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
        (CCLayerTreeHostImpl):
        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
        (WebCore::CCSingleThreadProxy::setNeedsRedraw):
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::setNeedsRedraw):
        (WebCore::CCThreadProxy::setFullRootLayerDamageOnImplThread):
        (WebCore):
        * platform/graphics/chromium/cc/CCThreadProxy.h:
        (CCThreadProxy):

2012-02-09  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: fix setOuterHTML for the case that adds / removes duplicate.
        https://bugs.webkit.org/show_bug.cgi?id=78235

        Reviewed by Yury Semikhatsky.

        * inspector/DOMEditor.cpp:
        (WebCore::DOMEditor::diff):
        (WebCore::DOMEditor::innerPatchChildren):
        (WebCore):
        (WebCore::nodeName):
        (WebCore::DOMEditor::dumpMap):
        * inspector/DOMEditor.h:
        (DOMEditor):

2012-02-09  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        Ensure timers and other active DOM objects do not fire in suspended documents.
        https://bugs.webkit.org/show_bug.cgi?id=53733

        ScriptExecutionContext now remembers it has suspended active DOM objects
        and suspends all newly installed active DOM objects as well.

        All create-calls active DOM objects now calls the post constructor method
        suspendIfNeeded that updates the suspend state. It is post constructor
        because the suspend/resume functions are virtual and thus can not be called
        from constructors.

        Reviewed by Mihai Parparita.

        Test: fast/events/suspend-timers.html

        * Modules/intents/IntentRequest.cpp:
        (WebCore::IntentRequest::create):
        * bindings/generic/ActiveDOMCallback.cpp:
        (WebCore::ActiveDOMCallback::ActiveDOMCallback):
        * dom/ActiveDOMObject.cpp:
        (WebCore::ActiveDOMObject::ActiveDOMObject):
        (WebCore::ActiveDOMObject::~ActiveDOMObject):
        (WebCore::ActiveDOMObject::suspendIfNeeded):
        * dom/ActiveDOMObject.h:
        (WebCore::ActiveDOMObject::suspendIfNeededCalled):
        * dom/DocumentEventQueue.cpp:
        (WebCore::DocumentEventQueue::DocumentEventQueue):
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::ScriptExecutionContext):
        (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
        (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
        (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
        (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
        (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
        (WebCore::ScriptExecutionContext::suspendActiveDOMObjectIfNeeded):
        * dom/ScriptExecutionContext.h:
        (ScriptExecutionContext):
        (WebCore::ScriptExecutionContext::activeDOMObjectsAreSuspended):
        * fileapi/DOMFileSystem.cpp:
        (WebCore::DOMFileSystem::create):
        * fileapi/FileReader.cpp:
        (WebCore::FileReader::create):
        * fileapi/FileReader.h:
        * fileapi/FileWriter.cpp:
        (WebCore::FileWriter::create):
        * fileapi/FileWriter.h:
        * history/CachedFrame.cpp:
        (WebCore::CachedFrame::CachedFrame):
        * html/HTMLAudioElement.cpp:
        (WebCore::HTMLAudioElement::create):
        (WebCore::HTMLAudioElement::createForJSConstructor):
        * html/HTMLMarqueeElement.cpp:
        (WebCore::HTMLMarqueeElement::create):
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::create):
        * mediastream/PeerConnection.cpp:
        (WebCore::PeerConnection::create):
        * notifications/Notification.cpp:
        (WebCore::Notification::create):
        * notifications/NotificationCenter.cpp:
        (WebCore::NotificationCenter::create):
        * notifications/NotificationCenter.h:
        * page/DOMTimer.cpp:
        (WebCore::DOMTimer::install):
        (WebCore::DOMTimer::fired):
        * page/EventSource.cpp:
        (WebCore::EventSource::create):
        * page/SuspendableTimer.cpp:
        (WebCore::SuspendableTimer::SuspendableTimer):
        * storage/IDBDatabase.cpp:
        (WebCore::IDBDatabase::create):
        * storage/IDBRequest.cpp:
        (WebCore::IDBRequest::create):
        * storage/IDBTransaction.cpp:
        (WebCore::IDBTransaction::create):
        * storage/IDBVersionChangeRequest.cpp:
        (WebCore::IDBVersionChangeRequest::create):
        * webaudio/AudioContext.cpp:
        (WebCore::AudioContext::create):
        (WebCore::AudioContext::createOfflineContext):
        * websockets/WebSocket.cpp:
        (WebCore::WebSocket::create):
        * websockets/WebSocket.h:
        * workers/SharedWorker.cpp:
        (WebCore::SharedWorker::create):
        * workers/Worker.cpp:
        (WebCore::Worker::create):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::create):

2012-02-09  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed followup for r107235.

        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._hideNavigatorOverlay):
        (WebInspector.ScriptsPanel.prototype._navigatorOverlayWillHide):

2012-02-09  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Support hiding scripts panel debug sidebar.
        https://bugs.webkit.org/show_bug.cgi?id=77543

        Reviewed by Pavel Feldman.

        * English.lproj/localizedStrings.js:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.sh:
        * inspector/front-end/Dialog.js:
        (WebInspector.Dialog):
        (WebInspector.DialogDelegate.prototype.show):
        * inspector/front-end/Images/navigatorPinButton.png: Added.
        * inspector/front-end/Images/navigatorShowHideButton.png: Added.
        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.ScriptsNavigator):
        (WebInspector.ScriptsNavigator.prototype.get view):
        (WebInspector.ScriptsNavigator.prototype.get element):
        (WebInspector.ScriptsNavigator.prototype.show):
        (WebInspector.ScriptsNavigator.prototype.focus):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._fileSelected):
        (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
        (WebInspector.ScriptsPanel.prototype._createNavigatorControls):
        (WebInspector.ScriptsPanel.prototype._createNavigatorControlButton):
        (WebInspector.ScriptsPanel.prototype._toggleNavigator):
        (WebInspector.ScriptsPanel.prototype._hidePinnedNavigator):
        (WebInspector.ScriptsPanel.prototype.set _pinNavigator):
        (WebInspector.ScriptsPanel.prototype.set _showNavigatorOverlay):
        (WebInspector.ScriptsPanel.prototype._hideNavigatorOverlay):
        (WebInspector.ScriptsPanel.prototype._navigatorOverlayWasShown):
        (WebInspector.ScriptsPanel.prototype._navigatorOverlayWillHide):
        * inspector/front-end/SidebarOverlay.js: Added.
        * inspector/front-end/SplitView.js:
        (WebInspector.SplitView.prototype.get resizable):
        (WebInspector.SplitView.prototype.hideMainElement):
        (WebInspector.SplitView.prototype.showMainElement):
        (WebInspector.SplitView.prototype.hideSidebarElement):
        (WebInspector.SplitView.prototype.showSidebarElement):
        (WebInspector.SplitView.prototype._resizerDragging):
        * inspector/front-end/TabbedEditorContainer.js:
        (WebInspector.TabbedEditorContainer.prototype.get element):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/dialog.css:
        * inspector/front-end/inspector.html:
        * inspector/front-end/scriptsPanel.css:

2012-02-09  Alexei Filippov  <alexeif@chromium.org>

        Web Inspector: Show percentage by default in heap profiler.
        https://bugs.webkit.org/show_bug.cgi?id=78103

        Reviewed by Pavel Feldman.

        * inspector/front-end/DetailedHeapshotGridNodes.js:
        (WebInspector.HeapSnapshotGridNode.prototype._toPercentString):
        (WebInspector.HeapSnapshotGridNode.prototype._createValueCell):
        (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
        (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
        * inspector/front-end/DetailedHeapshotView.js:
        (WebInspector.DetailedHeapshotView.profileCallback):
        (WebInspector.DetailedHeapshotView):
        (WebInspector.DetailedHeapshotView.prototype.get statusBarItems):
        (WebInspector.DetailedHeapshotView.prototype._mouseDownInContentsGrid):
        (WebInspector.DetailedHeapshotView.prototype._updateFilterOptions):
        * inspector/front-end/UIUtils.js:
        (Number.withThousandsSeparator):
        * inspector/front-end/heapProfiler.css:
        (.detailed-heapshot-view .data-grid span.percent-column):

2012-02-09  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Timeline memory graph would have been more useful if it had used minUsedHeapSize as the lower bound. Currently it uses zero as the lower bound.
        https://bugs.webkit.org/show_bug.cgi?id=78222

        Reviewed by Pavel Feldman.

        * inspector/front-end/TimelineOverviewPane.js:
        (WebInspector.HeapGraph):
        (WebInspector.HeapGraph.prototype.update):
        * inspector/front-end/timelinePanel.css:
        (.memory-graph-label):
        (.max.memory-graph-label):
        (.min.memory-graph-label):

2012-02-09  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Update protocol and UI to follow bug 77204 (Kill per-Attribute style declarations)
        https://bugs.webkit.org/show_bug.cgi?id=77962

        Reviewed by Pavel Feldman.

        * English.lproj/localizedStrings.js:
        * inspector/Inspector.json:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::getInlineStylesForNode):
        (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
        * inspector/InspectorCSSAgent.h:
        (InspectorCSSAgent):
        * inspector/front-end/AuditRules.js:
        (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun):
        (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun.getStyles):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel.prototype.getInlineStylesAsync):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.prototype._executeRebuildUpdate.inlineCallback):
        (WebInspector.StylesSidebarPane.prototype._rebuildStyleRules):
        (WebInspector.StylesSidebarPane.prototype._rebuildStyleRules.get continue):

2012-02-08  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: toggle Edit as HTML on F2, drag nodes up / down upon Ctrl(Cmd) Up / Down.
        https://bugs.webkit.org/show_bug.cgi?id=78123

        Reviewed by Yury Semikhatsky.

        * English.lproj/localizedStrings.js:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::SetOuterHTMLAction::SetOuterHTMLAction):
        (WebCore::InspectorDOMAgent::SetOuterHTMLAction::undo):
        (InspectorDOMAgent::SetOuterHTMLAction):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype._registerShortcuts):
        (WebInspector.ElementsPanel.prototype.handleShortcut):
        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeOutline.prototype._ondragstart):
        (WebInspector.ElementsTreeOutline.prototype._ondragover):
        (WebInspector.ElementsTreeOutline.prototype._doMove):
        (WebInspector.ElementsTreeOutline.prototype._ondragend):
        (WebInspector.ElementsTreeOutline.prototype._populateContextMenu):
        (WebInspector.ElementsTreeOutline.prototype.handleShortcut):
        (WebInspector.ElementsTreeOutline.prototype._toggleEditAsHTML):
        (WebInspector.ElementsTreeOutline.prototype._selectNodeAfterEdit):
        (WebInspector.ElementsTreeElement.prototype._startEditingAsHTML.commit):
        (WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted.changeTagNameCallback):
        (WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted):
        * inspector/front-end/UIUtils.js:

2012-02-09  Roland Steiner  <rolandsteiner@chromium.org>

        SelectorChecker::checkSelector: move parameters into a struct
        https://bugs.webkit.org/show_bug.cgi?id=77525

        Added 'SelectorCheckingContext' struct to hold parameters for the function.
        Adapted calling sites.
        (fixing change log after the commit message got bungled up).

        Reviewed by Antti Koivisto.

        No new tests. (refactoring)

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::checkSelector):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkSelector):
        (WebCore):
        (WebCore::SelectorChecker::checkOneSelector):
        * css/SelectorChecker.h:
        (SelectorCheckingContext):
        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
        (SelectorChecker):

2012-02-09  Philip Rogers  <pdr@google.com>

        Fix mirroring with SVG fonts
        https://bugs.webkit.org/show_bug.cgi?id=77067

        Reviewed by Nikolas Zimmermann.

        SVG fonts were incorrectly handling mirrored characters in bidi text.
        In this change I added the function createStringWithMirroredCharacters
        which handles mirroring the characters when selecting glyphs for SVG
        fonts. I also made a small cosmetic change in the function
        charactersWithArabicForm, changing the bool parameter "mirror" to "rtl"
        which better reflects what it actually does.

        Several new tests were added to test mirroring with SVG fonts in the
        presence of Arabic forms and non-BMP characters.

        Tests: svg/custom/glyph-selection-arabic-forms.svg
               svg/custom/glyph-selection-bidi-mirror.svg
               svg/custom/glyph-selection-non-bmp.svg

        * platform/graphics/SVGGlyph.cpp:
        (WebCore::charactersWithArabicForm):
        * svg/SVGFontData.cpp:
        (WebCore::SVGFontData::applySVGGlyphSelection):
        (WebCore::SVGFontData::createStringWithMirroredCharacters):
        * svg/SVGFontData.h:
        (SVGFontData):

2012-02-09  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Scripts navigator fails to reopen previously closed script.
        https://bugs.webkit.org/show_bug.cgi?id=78212

        Reviewed by Pavel Feldman.

        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._reset):
        (WebInspector.ScriptsPanel.prototype._showFile):
        (WebInspector.ScriptsPanel.prototype._editorClosed):
        * inspector/front-end/TabbedEditorContainer.js:
        (WebInspector.TabbedEditorContainer.prototype._tabClosed):

2012-02-09  Shinya Kawanaka  <shinyak@google.com>

        ASSERT_NO_EXCEPTION should be initialized with non-zero value.
        https://bugs.webkit.org/show_bug.cgi?id=78194

        Reviewed by Hajime Morita.

        ExceptionCode should not be checked without initializing it.
        However, we encountered a bug that breaks this rule.
        It was missed until now because ExceptionCode is sometimes set to 0 even if it is not initialized.
        This patch ensures it is initialized as non-zero value.

        No new tests, no change in behavior.

        * dom/ExceptionCodePlaceholder.cpp:
        (WebCore::NoExceptionAssertionChecker::NoExceptionAssertionChecker):
        (WebCore::NoExceptionAssertionChecker::~NoExceptionAssertionChecker):
        * dom/ExceptionCodePlaceholder.h:
        (NoExceptionAssertionChecker):

2012-02-09  Roland Steiner  <rolandsteiner@chromium.org>

        Unreviewed, rolling out r107197.
        http://trac.webkit.org/changeset/107197
        https://bugs.webkit.org/show_bug.cgi?id=77525

        broke Chromium Linux

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::checkSelector):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkSelector):
        (WebCore):
        (WebCore::SelectorChecker::checkOneSelector):
        * css/SelectorChecker.h:

2012-02-09  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r107182, r107186, r107189, r107191,
        and r107199.
        http://trac.webkit.org/changeset/107182
        http://trac.webkit.org/changeset/107186
        http://trac.webkit.org/changeset/107189
        http://trac.webkit.org/changeset/107191
        http://trac.webkit.org/changeset/107199
        https://bugs.webkit.org/show_bug.cgi?id=78200

        Layout tests of JSC-related port are crashing

        * Modules/gamepad/GamepadList.idl:
        * Modules/intents/Intent.idl:
        * bindings/js/JSDOMBinding.h:
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody):
        (GenerateParametersCheck):
        (NativeToJSValue):
        (GenerateConstructorDefinition):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateParametersCheck):
        (GenerateImplementationIndexer):
        (RequiresCustomSignature):
        (NativeToJSValue):
        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
        * bindings/scripts/test/CPP/WebDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/JS/JSFloat64Array.cpp:
        (WebCore::jsFloat64ArrayPrototypeFunctionFoo):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
        (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        (WebCore::jsTestEventTargetPrototypeFunctionItem):
        (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore):
        (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
        (WebCore::jsTestObjPrototypeFunctionSerializedValue):
        (WebCore::jsTestObjPrototypeFunctionIdbKey):
        (WebCore::jsTestObjPrototypeFunctionOptionsObject):
        (WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
        (WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
        (WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
        (WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
        (WebCore::jsTestObjPrototypeFunctionConvert1):
        (WebCore::jsTestObjPrototypeFunctionConvert2):
        (WebCore::jsTestObjPrototypeFunctionConvert3):
        (WebCore::jsTestObjPrototypeFunctionConvert4):
        (WebCore::jsTestObjPrototypeFunctionConvert5):
        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
        * bindings/scripts/test/JS/JSTestObj.h:
        (WebCore):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
        * bindings/scripts/test/ObjC/DOMTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        * bindings/scripts/test/TestInterface.idl:
        * bindings/scripts/test/TestNamedConstructor.idl:
        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::Float64ArrayInternal::fooCallback):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
        (WebCore::TestActiveDOMObjectInternal::excitingFunctionCallback):
        (WebCore::TestActiveDOMObjectInternal::postMessageCallback):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
        (WebCore::TestCustomNamedGetterInternal::anotherFunctionCallback):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp:
        (WebCore::TestEventTargetInternal::itemCallback):
        (WebCore::TestEventTargetInternal::dispatchEventCallback):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::TestInterfaceInternal::supplementalMethod2Callback):
        (WebCore::V8TestInterface::constructorCallback):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
        (WebCore::TestMediaQueryListListenerInternal::methodCallback):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructorCallback):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjInternal::voidMethodWithArgsCallback):
        (WebCore::TestObjInternal::intMethodWithArgsCallback):
        (WebCore::TestObjInternal::objMethodWithArgsCallback):
        (WebCore::TestObjInternal::methodThatRequiresAllArgsAndThrowsCallback):
        (WebCore::TestObjInternal::idbKeyCallback):
        (WebCore::TestObjInternal::optionsObjectCallback):
        (WebCore::TestObjInternal::customArgsAndExceptionCallback):
        (WebCore::TestObjInternal::methodWithOptionalArgCallback):
        (WebCore::TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback):
        (WebCore::TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
        (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
        (WebCore::TestObjInternal::overloadedMethod1Callback):
        (WebCore::TestObjInternal::overloadedMethod2Callback):
        (WebCore::TestObjInternal::overloadedMethod3Callback):
        (WebCore::TestObjInternal::overloadedMethod4Callback):
        (WebCore::TestObjInternal::overloadedMethod6Callback):
        (WebCore::TestObjInternal::overloadedMethod7Callback):
        (WebCore::TestObjInternal::classMethodWithOptionalCallback):
        (WebCore::TestObjInternal::overloadedMethod11Callback):
        (WebCore::TestObjInternal::overloadedMethod12Callback):
        (WebCore::TestObjInternal::enabledAtRuntimeMethod1Callback):
        (WebCore::TestObjInternal::enabledAtRuntimeMethod2Callback):
        (WebCore::TestObjInternal::convert1Callback):
        (WebCore::TestObjInternal::convert2Callback):
        (WebCore::TestObjInternal::convert3Callback):
        (WebCore::TestObjInternal::convert4Callback):
        (WebCore::TestObjInternal::convert5Callback):
        (WebCore::TestObjInternal::strictFunctionCallback):
        (WebCore):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
        * bindings/v8/V8Binding.h:
        * bindings/v8/custom/V8BindingMacros.h:
        * css/CSSCharsetRule.idl:
        * css/CSSImportRule.idl:
        * css/CSSMediaRule.idl:
        * css/CSSPageRule.idl:
        * css/CSSPrimitiveValue.idl:
        * css/CSSRule.idl:
        * css/CSSRuleList.idl:
        * css/CSSStyleDeclaration.idl:
        * css/CSSStyleRule.idl:
        * css/CSSStyleSheet.idl:
        * css/CSSValue.idl:
        * css/CSSValueList.idl:
        * css/MediaList.idl:
        * css/MediaQueryList.idl:
        * css/MediaQueryListListener.idl:
        * css/StyleMedia.idl:
        * css/StyleSheet.idl:
        * css/StyleSheetList.idl:
        * css/WebKitCSSKeyframesRule.idl:
        * css/WebKitCSSMatrix.idl:
        * dom/Attr.idl:
        * dom/CharacterData.idl:
        * dom/ClientRectList.idl:
        * dom/Clipboard.idl:
        * dom/CompositionEvent.idl:
        * dom/CustomEvent.idl:
        * dom/DOMImplementation.idl:
        * dom/DOMStringList.idl:
        * dom/DataTransferItem.idl:
        * dom/DataTransferItemList.idl:
        * dom/DeviceMotionEvent.idl:
        * dom/DeviceOrientationEvent.idl:
        * dom/Document.idl:
        * dom/DocumentType.idl:
        * dom/Element.idl:
        * dom/Entity.idl:
        * dom/Event.idl:
        * dom/HashChangeEvent.idl:
        * dom/KeyboardEvent.idl:
        * dom/MessageEvent.idl:
        * dom/MouseEvent.idl:
        * dom/MutationEvent.idl:
        * dom/MutationRecord.idl:
        * dom/NamedNodeMap.idl:
        * dom/Node.idl:
        * dom/NodeFilter.idl:
        * dom/NodeList.idl:
        * dom/Notation.idl:
        * dom/OverflowEvent.idl:
        * dom/ProcessingInstruction.idl:
        * dom/Range.idl:
        * dom/ShadowRoot.idl:
        * dom/Text.idl:
        * dom/TextEvent.idl:
        * dom/TouchEvent.idl:
        * dom/UIEvent.idl:
        * dom/WheelEvent.idl:
        * html/DOMFormData.idl:
        * html/DOMTokenList.idl:
        * html/DOMURL.idl:
        * html/HTMLAllCollection.idl:
        * html/HTMLAudioElement.idl:
        * html/HTMLCanvasElement.idl:
        * html/HTMLCollection.idl:
        * html/HTMLDocument.idl:
        * html/HTMLElement.idl:
        * html/HTMLInputElement.idl:
        * html/HTMLMediaElement.idl:
        * html/HTMLOptionElement.idl:
        * html/HTMLOptionsCollection.idl:
        * html/HTMLSelectElement.idl:
        * html/HTMLTableElement.idl:
        * html/HTMLTableRowElement.idl:
        * html/HTMLTableSectionElement.idl:
        * html/HTMLTextAreaElement.idl:
        * html/TextTrackCue.idl:
        * html/canvas/CanvasGradient.idl:
        * html/canvas/CanvasRenderingContext2D.idl:
        * html/canvas/Float32Array.idl:
        * html/canvas/Float64Array.idl:
        * html/canvas/Int16Array.idl:
        * html/canvas/Int32Array.idl:
        * html/canvas/Int8Array.idl:
        * html/canvas/OESVertexArrayObject.idl:
        * html/canvas/Uint16Array.idl:
        * html/canvas/Uint32Array.idl:
        * html/canvas/Uint8Array.idl:
        * html/canvas/Uint8ClampedArray.idl:
        * html/canvas/WebGLDebugShaders.idl:
        * html/canvas/WebGLRenderingContext.idl:
        * page/Console.idl:
        * page/DOMSelection.idl:
        * page/DOMWindow.idl:
        * page/History.idl:
        * page/Location.idl:
        * plugins/DOMMimeTypeArray.idl:
        * plugins/DOMPlugin.idl:
        * plugins/DOMPluginArray.idl:
        * storage/IDBDatabase.idl:
        * storage/IDBObjectStore.idl:
        * storage/IDBRequest.idl:
        * storage/Storage.idl:
        * storage/StorageEvent.idl:
        * svg/ElementTimeControl.idl:
        * svg/SVGDocument.idl:
        * svg/SVGElementInstanceList.idl:
        * svg/SVGFEDropShadowElement.idl:
        * svg/SVGFEGaussianBlurElement.idl:
        * svg/SVGFEMorphologyElement.idl:
        * svg/SVGFilterElement.idl:
        * svg/SVGLocatable.idl:
        * svg/SVGMarkerElement.idl:
        * svg/SVGPathElement.idl:
        * svg/SVGSVGElement.idl:
        * svg/SVGStylable.idl:
        * svg/SVGTests.idl:
        * svg/SVGTextContentElement.idl:
        * webaudio/AudioNode.idl:
        * websockets/WebSocket.idl:
        * workers/SharedWorker.idl:
        * workers/WorkerContext.idl:
        * xml/DOMParser.idl:
        * xml/XMLHttpRequest.idl:
        * xml/XMLSerializer.idl:
        * xml/XPathEvaluator.idl:
        * xml/XPathExpression.idl:
        * xml/XPathNSResolver.idl:
        * xml/XPathResult.idl:
        * xml/XSLTProcessor.idl:

2012-02-09  Shinya Kawanaka  <shinyak@google.com>

        Disable adding a shadow root to elements having a dynamic built-in shadow root.
        https://bugs.webkit.org/show_bug.cgi?id=77935

        Reviewed by Hajime Morita.

        We temporarily disable adding a shadow root in elements having a dynamic user agent shadow root.
        These shadow roots are currently created using Element::ensureShadowRoot.
        So we don't check the condition if a shadow root is created eaither using Element::ensureShadowRoot
        or ShadowRoot::CreatingUserAgentShadowRoot is specified for ShadowRoot::create.

        Test: fast/dom/shadow/shadow-disable.html

        * dom/Element.cpp:
        (WebCore::Element::ensureShadowRoot):
        * dom/ShadowRoot.cpp:
        (WebCore::allowsUserShadowRoot):
        (WebCore):
        (WebCore::ShadowRoot::create):
        * dom/ShadowRoot.h:
        (ShadowRoot):
        * html/HTMLDetailsElement.cpp:
        (WebCore::HTMLDetailsElement::createShadowSubtree):
          ShadowRoot::CreatingUserAgentShadowRoot is specified.
        * html/HTMLKeygenElement.cpp:
        (WebCore::HTMLKeygenElement::HTMLKeygenElement): ditto.
        * html/HTMLMeterElement.cpp:
        (WebCore::HTMLMeterElement::createShadowSubtree): ditto.
        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::createShadowSubtree): ditto.
        * html/HTMLSummaryElement.cpp:
        (WebCore::HTMLSummaryElement::createShadowSubtree): ditto.
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::createShadowSubtree): ditto.

2012-02-08  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: hovering over element with :hover style halts inspector
        https://bugs.webkit.org/show_bug.cgi?id=78086

        Reviewed by Pavel Feldman.

        Test: inspector/styles/updates-throttled.html

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.prototype._executeRebuildUpdate):
        (WebInspector.StylesSidebarPane.prototype._innerUpdate.computedStyleCallback):
        (WebInspector.StylesSidebarPane.prototype._innerUpdate):

2012-02-09  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Fix build failure caused by r107191.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateParametersCheck):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateParametersCheck):

2012-02-09  Roland Steiner  <rolandsteiner@chromium.org>

        SelectorChecker::checkSelector: move parameters into a struct
        https://bugs.webkit.org/show_bug.cgi?id=77525

        Added 'SelectorCheckingContext' struct to hold parameters for the function.
        Adapted calling sites.

        Reviewed by Antti Koivisto.

        No new tests. (refactoring)

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::checkSelector):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkSelector):
        (WebCore):
        (WebCore::SelectorChecker::checkOneSelector):
        * css/SelectorChecker.h:
        (SelectorCheckingContext):
        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
        (SelectorChecker):

2012-02-09  Kent Tamura  <tkent@chromium.org>

        Do not localize numbers in scientific notation
        https://bugs.webkit.org/show_bug.cgi?id=78208

        Reviewed by Hajime Morita.

        For a preparation of fixing http://wkb.ug/62939, we stop supporting
        localized numbers in scientific notation in <input type=number>.

        We're going to change number localization processing so that it replaces
        letters one by one. It will be very hard to support scientific notation.

        * html/NumberInputType.cpp:
        (WebCore::isE): A helper functio for String::find() to detect scientific notation.
        (WebCore::NumberInputType::visibleValue): Avoid localization for scientific notation.
        (WebCore::NumberInputType::convertFromVisibleValue): ditto.
        (WebCore::NumberInputType::isAcceptableValue):
        Use convertFromVisibleValue, also stop accepting a standard format as a fallback.

2012-02-09  Leo Yang  <leo.yang@torchmobile.com.cn>

        EntryBase.cpp is missing in CMake build system when turning on ENABLE_FILE_SYSTEM
        https://bugs.webkit.org/show_bug.cgi?id=78190

        Reviewed by Antonio Gomes.

        EntryBase.cpp is not in the CMake build system, which causes build failure (undefined
        symbols to EntryBase) when turning on ENABLE_FILE_SYSTEM.

        Build system fix, no new tests.

        * CMakeLists.txt:

2012-02-09  Andreas Kling  <awesomekling@apple.com>

        REGRESSION(r53878): Input elements don't share their styles if the document contains no validity style rules.
        <http://webkit.org/b/69400>

        Reviewed by Kent Tamura.

        Don't reject style sharing candidates prematurely just because the document doesn't
        have any :valid or :invalid selectors.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::canShareStyleWithControl):

2012-02-09  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Fixed typo in the following files. [TreatUndefinedAs] => [TreatAsUndefined].

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateParametersCheck):

        * bindings/scripts/test/TestObj.idl:

        * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated run-bindings-tests results.
        (WebDOMTestObj::methodWithOptionalIsUndefinedString):
        * bindings/scripts/test/CPP/WebDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (webkit_dom_test_obj_method_with_optional_is_undefined_string):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalIsUndefinedString):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalIsNullStringString):
        (WebCore::jsTestObjPrototypeFunctionConvert5):
        * bindings/scripts/test/JS/JSTestObj.h:
        (WebCore):
        * bindings/scripts/test/ObjC/DOMTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        (-[DOMTestObj methodWithOptionalIsUndefinedString:]):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjInternal::methodWithOptionalIsUndefinedStringCallback):
        (WebCore):

2012-02-09  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Fixed typo in the following files. [TreatReturnedNullStringTo=] => [TreatReturnedNullStringAs=].

        * bindings/scripts/test/TestObj.idl:
        * css/CSSCharsetRule.idl:
        * css/CSSImportRule.idl:
        * css/CSSPageRule.idl:
        * css/CSSRule.idl:
        * css/CSSStyleDeclaration.idl:
        * css/CSSStyleRule.idl:
        * css/CSSValue.idl:
        * css/MediaList.idl:
        * css/StyleSheet.idl:
        * css/WebKitCSSKeyframesRule.idl:
        * dom/Attr.idl:
        * dom/CharacterData.idl:
        * dom/Clipboard.idl:
        * dom/DOMStringList.idl:
        * dom/Document.idl:
        * dom/DocumentType.idl:
        * dom/Element.idl:
        * dom/Entity.idl:
        * dom/MutationRecord.idl:
        * dom/Node.idl:
        * dom/Notation.idl:
        * dom/ProcessingInstruction.idl:
        * html/DOMTokenList.idl:
        * html/DOMURL.idl:
        * html/HTMLMediaElement.idl:
        * html/canvas/WebGLDebugShaders.idl:
        * html/canvas/WebGLRenderingContext.idl:
        * page/DOMWindow.idl:
        * storage/IDBObjectStore.idl:
        * storage/IDBRequest.idl:
        * storage/Storage.idl:
        * storage/StorageEvent.idl:
        * websockets/WebSocket.idl:
        * xml/XMLHttpRequest.idl:
        * xml/XPathNSResolver.idl:
        * xml/XSLTProcessor.idl:

2012-02-08  Kentaro Hara  <haraken@chromium.org>

        Rename [ConvertNullStringTo=] to [TreatReturnedNullStringAs=]
        https://bugs.webkit.org/show_bug.cgi?id=78108

        Reviewed by Adam Barth.

        [ConvertNullStringTo=] is not descriptive. To clarify that it specifies
        the behavior when the null string is returned by WebCore, this patch renames
        [ConvertNullStringTo=] to [TreatReturnedNullStringAs=]. This change is also
        for naming consistency with [TreatNullAs] and [TreatUndefinedAs].

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody):
        (NativeToJSValue):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateImplementationIndexer):
        (NativeToJSValue):

        * bindings/scripts/test/TestObj.idl: No change in run-bindings-tests results.

        * css/CSSCharsetRule.idl:
        * css/CSSImportRule.idl:
        * css/CSSPageRule.idl:
        * css/CSSRule.idl:
        * css/CSSStyleDeclaration.idl:
        * css/CSSStyleRule.idl:
        * css/CSSValue.idl:
        * css/MediaList.idl:
        * css/StyleSheet.idl:
        * css/WebKitCSSKeyframesRule.idl:
        * dom/Attr.idl:
        * dom/CharacterData.idl:
        * dom/Clipboard.idl:
        * dom/DOMStringList.idl:
        * dom/Document.idl:
        * dom/DocumentType.idl:
        * dom/Element.idl:
        * dom/Entity.idl:
        * dom/MutationRecord.idl:
        * dom/Node.idl:
        * dom/Notation.idl:
        * dom/ProcessingInstruction.idl:
        * html/DOMTokenList.idl:
        * html/DOMURL.idl:
        * html/HTMLMediaElement.idl:
        * html/canvas/WebGLDebugShaders.idl:
        * html/canvas/WebGLRenderingContext.idl:
        * page/DOMWindow.idl:
        * storage/IDBObjectStore.idl:
        * storage/IDBRequest.idl:
        * storage/Storage.idl:
        * storage/StorageEvent.idl:
        * websockets/WebSocket.idl:
        * xml/XMLHttpRequest.idl:
        * xml/XPathNSResolver.idl:
        * xml/XSLTProcessor.idl:

2012-02-08  Andreas Kling  <awesomekling@apple.com>

        Simplify ownership of StyledElement::additionalAttributeStyles().
        <http://webkit.org/b/78204>

        Reviewed by Anders Carlsson.

        Change additionalAttributeStyle() to return a raw pointer rather than a PassRefPtr.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchAllRules):
        (WebCore::CSSStyleSelector::canShareStyleWithElement):
        * dom/StyledElement.h:
        (WebCore::StyledElement::additionalAttributeStyle):
        * html/HTMLTableCellElement.cpp:
        (WebCore::HTMLTableCellElement::additionalAttributeStyle):
        * html/HTMLTableCellElement.h:
        (HTMLTableCellElement):
        * html/HTMLTableColElement.cpp:
        (WebCore::HTMLTableColElement::additionalAttributeStyle):
        * html/HTMLTableColElement.h:
        (HTMLTableColElement):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::additionalAttributeStyle):
        (WebCore::HTMLTableElement::additionalCellStyle):
        (WebCore::HTMLTableElement::additionalGroupStyle):
        * html/HTMLTableElement.h:
        (HTMLTableElement):
        * html/HTMLTableSectionElement.cpp:
        (WebCore::HTMLTableSectionElement::additionalAttributeStyle):
        * html/HTMLTableSectionElement.h:
        (HTMLTableSectionElement):

2012-02-08  Kentaro Hara  <haraken@chromium.org>

        Rename [Optional=CallWithDefalutValue] and [Optional=CallWithNullValue]
        https://bugs.webkit.org/show_bug.cgi?id=78200

        Reviewed by Adam Barth.

        [Optional=CallWithDefalutValue] and [Optional=CallWithNullValue] are confusing.

        - [Optional=CallWithDefalutValue] indicates that a missing value should be treated
        as if the JavaScript undefined is passed.
        - [Optional=CallWithNullValue] indicates that a missing value should be treated as
        the WebKit null value (i.e. JSValue() or v8::Local<v8::Value>()).
        - Actually, the difference between [Optional=CallWithDefalutValue] and
        [Optional=CallWithNullValue] appears only when the type of the missing value is DOMString.
        In case of [Optional=CallWithDefalutValue], the missing value is converted to the string
        "undefined". On the other hand, in case of [Optional=CallWithNullValue], the missing
        value is converted to the WebKit null string.

        With these observations, this patch renames them as follows:

        - Rename [Optional=CallWithDefalutValue] to [Optional=TreatAsUndefined].
        - Remove [Optional=CallWithNullValue]. Instead, we use
        [Optional=TreatAsUndefined, TreatUndefinedAs=NullString].

        Test: bindings/scripts/test/TestInterface.idl

        * bindings/js/JSDOMBinding.h: Renamed MissingIsUndefined to MissingIsUndefinedValue,
        renamed MissingIsEmpty to MissingIsNullValue.
        * bindings/v8/V8Binding.h: Ditto.
        * bindings/v8/custom/V8BindingMacros.h: Ditto.

        * bindings/scripts/CodeGeneratorJS.pm: Modified to support the IDL attribute renaming.
        (GenerateParametersCheck):
        (GenerateConstructorDefinition):
        * bindings/scripts/CodeGeneratorV8.pm: Ditto.
        (GenerateParametersCheck):
        (RequiresCustomSignature):

        * Modules/gamepad/GamepadList.idl: Renamed IDL attributes as described above.
        * Modules/intents/Intent.idl:
        * css/CSSMediaRule.idl:
        * css/CSSPrimitiveValue.idl:
        * css/CSSRuleList.idl:
        * css/CSSStyleDeclaration.idl:
        * css/CSSStyleSheet.idl:
        * css/CSSValueList.idl:
        * css/MediaList.idl:
        * css/MediaQueryList.idl:
        * css/MediaQueryListListener.idl:
        * css/StyleMedia.idl:
        * css/StyleSheetList.idl:
        * css/WebKitCSSKeyframesRule.idl:
        * css/WebKitCSSMatrix.idl:
        * dom/CharacterData.idl:
        * dom/ClientRectList.idl:
        * dom/CompositionEvent.idl:
        * dom/CustomEvent.idl:
        * dom/DOMImplementation.idl:
        * dom/DOMStringList.idl:
        * dom/DataTransferItem.idl:
        * dom/DataTransferItemList.idl:
        * dom/DeviceMotionEvent.idl:
        * dom/DeviceOrientationEvent.idl:
        * dom/Document.idl:
        * dom/Element.idl:
        * dom/Event.idl:
        * dom/HashChangeEvent.idl:
        * dom/KeyboardEvent.idl:
        * dom/MessageEvent.idl:
        * dom/MouseEvent.idl:
        * dom/MutationEvent.idl:
        * dom/NamedNodeMap.idl:
        * dom/Node.idl:
        * dom/NodeFilter.idl:
        * dom/NodeList.idl:
        * dom/OverflowEvent.idl:
        * dom/Range.idl:
        * dom/ShadowRoot.idl:
        * dom/Text.idl:
        * dom/TextEvent.idl:
        * dom/TouchEvent.idl:
        * dom/UIEvent.idl:
        * dom/WheelEvent.idl:
        * html/DOMFormData.idl:
        * html/HTMLAllCollection.idl:
        * html/HTMLAudioElement.idl:
        * html/HTMLCanvasElement.idl:
        * html/HTMLCollection.idl:
        * html/HTMLDocument.idl:
        * html/HTMLElement.idl:
        * html/HTMLInputElement.idl:
        * html/HTMLMediaElement.idl:
        * html/HTMLOptionElement.idl:
        * html/HTMLOptionsCollection.idl:
        * html/HTMLSelectElement.idl:
        * html/HTMLTableElement.idl:
        * html/HTMLTableRowElement.idl:
        * html/HTMLTableSectionElement.idl:
        * html/HTMLTextAreaElement.idl:
        * html/TextTrackCue.idl:
        * html/canvas/CanvasGradient.idl:
        * html/canvas/CanvasRenderingContext2D.idl:
        * html/canvas/Float32Array.idl:
        * html/canvas/Float64Array.idl:
        * html/canvas/Int16Array.idl:
        * html/canvas/Int32Array.idl:
        * html/canvas/Int8Array.idl:
        * html/canvas/OESVertexArrayObject.idl:
        * html/canvas/Uint16Array.idl:
        * html/canvas/Uint32Array.idl:
        * html/canvas/Uint8Array.idl:
        * html/canvas/Uint8ClampedArray.idl:
        * page/Console.idl:
        * page/DOMSelection.idl:
        * page/DOMWindow.idl:
        * page/History.idl:
        * page/Location.idl:
        * plugins/DOMMimeTypeArray.idl:
        * plugins/DOMPlugin.idl:
        * plugins/DOMPluginArray.idl:
        * storage/IDBDatabase.idl:
        * storage/StorageEvent.idl:
        * svg/ElementTimeControl.idl:
        * svg/SVGDocument.idl:
        * svg/SVGElementInstanceList.idl:
        * svg/SVGFEDropShadowElement.idl:
        * svg/SVGFEGaussianBlurElement.idl:
        * svg/SVGFEMorphologyElement.idl:
        * svg/SVGFilterElement.idl:
        * svg/SVGLocatable.idl:
        * svg/SVGMarkerElement.idl:
        * svg/SVGPathElement.idl:
        * svg/SVGSVGElement.idl:
        * svg/SVGStylable.idl:
        * svg/SVGTests.idl:
        * svg/SVGTextContentElement.idl:
        * webaudio/AudioNode.idl:
        * workers/SharedWorker.idl:
        * workers/WorkerContext.idl:
        * xml/DOMParser.idl:
        * xml/XMLSerializer.idl:
        * xml/XPathEvaluator.idl:
        * xml/XPathExpression.idl:
        * xml/XPathNSResolver.idl:
        * xml/XPathResult.idl:

        * bindings/scripts/test/TestInterface.idl: Added test cases for [Optional],
        [Optional=TreatAsUndefined] and [Optional=TreatAsUndefined, TreatUndefinedAs=NullString]
        * bindings/scripts/test/TestNamedConstructor.idl: Renamed IDL attributes as described above.
        * bindings/scripts/test/TestObj.idl: Ditto.

        * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated run-bindings-tests results.
        (WebDOMTestObj::methodWithOptionalString):
        (WebDOMTestObj::methodWithOptionalIsTreatAsUndefinedString):
        (WebDOMTestObj::methodWithOptionalIsNullStringString):
        * bindings/scripts/test/CPP/WebDOMTestObj.h: Ditto.
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto.
        (webkit_dom_test_obj_method_with_optional_string):
        (webkit_dom_test_obj_method_with_optional_is_treat_as_undefined_string):
        (webkit_dom_test_obj_method_with_optional_is_null_string_string):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto.
        * bindings/scripts/test/JS/JSFloat64Array.cpp: Ditto.
        (WebCore::jsFloat64ArrayPrototypeFunctionFoo):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: Ditto.
        (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
        (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: Ditto.
        (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
        * bindings/scripts/test/JS/JSTestEventTarget.cpp: Ditto.
        (WebCore::jsTestEventTargetPrototypeFunctionItem):
        (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
        * bindings/scripts/test/JS/JSTestInterface.cpp: Ditto.
        (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: Ditto.
        (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: Ditto.
        (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
        * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
        (WebCore):
        (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
        (WebCore::jsTestObjPrototypeFunctionSerializedValue):
        (WebCore::jsTestObjPrototypeFunctionIdbKey):
        (WebCore::jsTestObjPrototypeFunctionOptionsObject):
        (WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalIsTreatAsUndefinedString):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalIsNullStringString):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
        (WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
        (WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
        (WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
        (WebCore::jsTestObjPrototypeFunctionConvert1):
        (WebCore::jsTestObjPrototypeFunctionConvert2):
        (WebCore::jsTestObjPrototypeFunctionConvert3):
        (WebCore::jsTestObjPrototypeFunctionConvert4):
        (WebCore::jsTestObjPrototypeFunctionConvert5):
        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
        * bindings/scripts/test/JS/JSTestObj.h: Ditto.
        (WebCore):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: Ditto.
        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
        * bindings/scripts/test/ObjC/DOMTestObj.h: Ditto.
        * bindings/scripts/test/ObjC/DOMTestObj.mm: Ditto.
        (-[DOMTestObj methodWithOptionalString:]):
        (-[DOMTestObj methodWithOptionalIsTreatAsUndefinedString:]):
        (-[DOMTestObj methodWithOptionalIsNullStringString:]):
        * bindings/scripts/test/V8/V8Float64Array.cpp: Ditto.
        (WebCore::Float64ArrayInternal::fooCallback):
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp: Ditto.
        (WebCore::TestActiveDOMObjectInternal::excitingFunctionCallback):
        (WebCore::TestActiveDOMObjectInternal::postMessageCallback):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp: Ditto.
        (WebCore::TestCustomNamedGetterInternal::anotherFunctionCallback):
        * bindings/scripts/test/V8/V8TestEventTarget.cpp: Ditto.
        (WebCore::TestEventTargetInternal::itemCallback):
        (WebCore::TestEventTargetInternal::dispatchEventCallback):
        * bindings/scripts/test/V8/V8TestInterface.cpp: Ditto.
        (WebCore::TestInterfaceInternal::supplementalMethod2Callback):
        (WebCore::V8TestInterface::constructorCallback):
        * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp: Ditto.
        (WebCore::TestMediaQueryListListenerInternal::methodCallback):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp: Ditto.
        (WebCore::V8TestNamedConstructorConstructorCallback):
        * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
        (WebCore::TestObjInternal::voidMethodWithArgsCallback):
        (WebCore::TestObjInternal::intMethodWithArgsCallback):
        (WebCore::TestObjInternal::objMethodWithArgsCallback):
        (WebCore::TestObjInternal::methodThatRequiresAllArgsAndThrowsCallback):
        (WebCore::TestObjInternal::idbKeyCallback):
        (WebCore::TestObjInternal::optionsObjectCallback):
        (WebCore::TestObjInternal::customArgsAndExceptionCallback):
        (WebCore::TestObjInternal::methodWithOptionalArgCallback):
        (WebCore::TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback):
        (WebCore::TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
        (WebCore::TestObjInternal::methodWithOptionalStringCallback):
        (TestObjInternal):
        (WebCore::TestObjInternal::methodWithOptionalIsTreatAsUndefinedStringCallback):
        (WebCore::TestObjInternal::methodWithOptionalIsNullStringStringCallback):
        (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
        (WebCore::TestObjInternal::overloadedMethod1Callback):
        (WebCore::TestObjInternal::overloadedMethod2Callback):
        (WebCore::TestObjInternal::overloadedMethod3Callback):
        (WebCore::TestObjInternal::overloadedMethod4Callback):
        (WebCore::TestObjInternal::overloadedMethod6Callback):
        (WebCore::TestObjInternal::overloadedMethod7Callback):
        (WebCore::TestObjInternal::classMethodWithOptionalCallback):
        (WebCore::TestObjInternal::overloadedMethod11Callback):
        (WebCore::TestObjInternal::overloadedMethod12Callback):
        (WebCore::TestObjInternal::enabledAtRuntimeMethod1Callback):
        (WebCore::TestObjInternal::enabledAtRuntimeMethod2Callback):
        (WebCore::TestObjInternal::convert1Callback):
        (WebCore::TestObjInternal::convert2Callback):
        (WebCore::TestObjInternal::convert3Callback):
        (WebCore::TestObjInternal::convert4Callback):
        (WebCore::TestObjInternal::convert5Callback):
        (WebCore::TestObjInternal::strictFunctionCallback):
        (WebCore):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp: Ditto.
        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):

2012-02-08  Kentaro Hara  <haraken@chromium.org>

        Rename [HasNumericIndexGetter] to [NumericIndexedGetter]
        https://bugs.webkit.org/show_bug.cgi?id=78096

        Reviewed by Adam Barth.

        This patch renames [HasNumericIndexGetter] to [NumericIndexedGetter],
        for naming consistency with [IndexedGetter] and [CustomIndexedGetter].

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody):
        (GenerateGetOwnPropertyDescriptorBody):
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeaderNamedAndIndexedPropertyAccessors):
        (GenerateImplementationIndexer):

        * bindings/scripts/test/TestTypedArray.idl: No change in run-bindings-tests results.

        * html/canvas/CanvasPixelArray.idl:
        * html/canvas/Float32Array.idl:
        * html/canvas/Float64Array.idl:
        * html/canvas/Int16Array.idl:
        * html/canvas/Int32Array.idl:
        * html/canvas/Int8Array.idl:
        * html/canvas/Uint16Array.idl:
        * html/canvas/Uint32Array.idl:
        * html/canvas/Uint8Array.idl:
        * html/canvas/Uint8ClampedArray.idl:

2012-02-08  Tony Chang  <tony@chromium.org>

        refactor RenderFlexibleBox to return preferred sizes of all children
        https://bugs.webkit.org/show_bug.cgi?id=78169

        Reviewed by Ojan Vafai.

        This is in preparation for multi-line flexbox. We need the preferred
        size of each child so we can compute where the multi-line breaks happen.

        No new tests, just refactoring.

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild): Renamed from preferredMainAxisContentExtentForFlexItem because
        other methods are ForChild rather than ForFlexItem.
        (WebCore::RenderFlexibleBox::layoutFlexItems):
        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
        (WebCore::RenderFlexibleBox::runFreeSpaceAllocationAlgorithm):
        * rendering/RenderFlexibleBox.h:
        (RenderFlexibleBox):

2012-02-08  Shinya Kawanaka  <shinyak@google.com>

        Stop calling Element::ensureShadowRoot() if it is used in construction phase.
        https://bugs.webkit.org/show_bug.cgi?id=77929

        Reviewed by Hajime Morita.

        ShadowRoot's life cycle can be consufing If Element::ensureShadowRoot() is used.
        So we want to remove Element::ensureShadowRoot().
        This patch replaces Element::ensureShadowRoot() if it is used in object construction phase.

        No new tests, no change in behavior.

        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::create):
          Initialize exception code before calling appendChild.
        * html/HTMLDetailsElement.cpp:
        (WebCore::HTMLDetailsElement::createShadowSubtree):
        * html/HTMLKeygenElement.cpp:
        (WebCore::HTMLKeygenElement::HTMLKeygenElement):
        * html/HTMLMeterElement.cpp:
        (WebCore::HTMLMeterElement::createShadowSubtree):
        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::createShadowSubtree):
        * html/HTMLSummaryElement.cpp:
        (WebCore::HTMLSummaryElement::createShadowSubtree):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::createShadowSubtree):

2012-02-08  David Reveman  <reveman@chromium.org>

        [Chromium] Avoid unnecessary full tile updates without breaking atomicity of commits.
        https://bugs.webkit.org/show_bug.cgi?id=76740

        Reviewed by James Robinson.

        Allow the final batch of texture uploads to be performed without
        allocating new textures and re-painting complete tiles.

        This patch is tested by the following unit test:
        - CCLayerTreeHostTestAtomicCommitWithPartialUpdate.runMultiThread
        - TiledLayerChromiumTest.partialUpdates

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::UpdatableTile::UpdatableTile):
        (UpdatableTile):
        (WebCore::TiledLayerChromium::updateCompositorResources):
        (WebCore):
        (WebCore::TiledLayerChromium::tileOnlyNeedsPartialUpdate):
        (WebCore::TiledLayerChromium::tileNeedsBufferedUpdate):
        (WebCore::TiledLayerChromium::prepareToUpdateTiles):
        * platform/graphics/chromium/TiledLayerChromium.h:
        (TiledLayerChromium):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
        (WebCore::CCLayerTreeHost::initializeLayerRenderer):
        (WebCore::CCLayerTreeHost::updateLayers):
        (WebCore::CCLayerTreeHost::requestPartialTextureUpdate):
        (WebCore):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):
        (CCSettings):
        (CCLayerTreeHost):
        * platform/graphics/chromium/cc/CCProxy.h:
        (CCProxy):
        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
        (WebCore::CCSingleThreadProxy::doCommit):
        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
        (WebCore::CCSingleThreadProxy::maxPartialTextureUpdates):
        * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
        (WebCore::CCTextureUpdater::append):
        (WebCore):
        (WebCore::CCTextureUpdater::appendPartial):
        (WebCore::CCTextureUpdater::hasMoreUpdates):
        (WebCore::CCTextureUpdater::update):
        (WebCore::CCTextureUpdater::clear):
        * platform/graphics/chromium/cc/CCTextureUpdater.h:
        (CCTextureUpdater):
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WTF):
        (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
        (WebCore::CCThreadProxy::maxPartialTextureUpdates):
        * platform/graphics/chromium/cc/CCThreadProxy.h:
        (CCThreadProxy):

2012-02-07  MORITA Hajime  <morrita@google.com>

        Replacement text should be available from the marker.
        https://bugs.webkit.org/show_bug.cgi?id=77934

        Reviewed by Kent Tamura.

        On spellchecking, TextCheckingResult can contain a replacement text
        which is usable both for an automatic replacement and for showing a suggestion.

        But when marking a misspelled word ragarding to returned
        TextCheckingResult, Editor uses only the misspelled range data and
        discards the replacement value. Then it asks the same value again
        when showing suggestion/autocorrection.

        It would be great if the marker holds the replacement text
        and Editor can use it on suggesting a correction, without any re-request.
        This is especially true in the case when it needs IPC messaging for spellchecking:
        We can save one round-trip by this technique.

        Here is actual change:

        - Passed the replacement text to addMarker() for for misspelling markers.
          Note that this is done only for the unified checker path because legacy
          TextCheckerClient API doesn't provide such a replacement.
        - Added an Internals API to retrieve a description text on a marker.

        Test: editing/spelling/spelling-marker-description.html

        * WebCore.exp.in:
        * editing/Editor.cpp:
        (WebCore::Editor::markAndReplaceFor):
        * testing/Internals.cpp:
        (WebCore::Internals::markerAt):
        (WebCore):
        (WebCore::Internals::markerRangeForNode):
        (WebCore::Internals::markerDescriptionForNode):
        * testing/Internals.h:
        (WebCore):
        (Internals):
        * testing/Internals.idl:

2012-02-08  Eric Seidel  <eric@webkit.org>

        Remove more cruft now that HTMLIsIndexElement is gone
        https://bugs.webkit.org/show_bug.cgi?id=77887

        Reviewed by Darin Adler.

        Just removing dead code, thus no tests.
        There is likely more to remove after this.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * html/HTMLInputElement.cpp:
        * html/HTMLInputElement.h:
        (HTMLInputElement):
        * html/InputType.cpp:
        (WebCore::createInputTypeFactoryMap):
        * html/InputType.h:
        (InputTypeNames):
        * html/IsIndexInputType.cpp: Removed.
        * html/IsIndexInputType.h: Removed.
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::isContentEditable):

2012-02-08  Andreas Kling  <awesomekling@apple.com>

        Increased style sharing for elements with presentation attributes.
        <http://webkit.org/b/78199>

        Reviewed by Antti Koivisto.

        When determining whether two elements can share style, we can do a lot better.
        Instead of comparing the attribute maps for exact equality, do a property-by-property
        comparison of the attributeStyle() and the additionalAttributeStyle() (if any.)

        This increases our style sharing hit rate and shaves 100ms off of each cycle on
        Chromium's "Moz" page cycler test on my machine.

        The function that compares attribute styles has O(n^2) runtime in the worst case,
        where n is the number of properties in the styles. However, given the low number of
        properties found in attribute styles, this should be fine, and it doesn't seem to
        heat up in profiles.

        * css/CSSStyleSelector.cpp:
        (WebCore::attributeStylesEqual):
        (WebCore::CSSStyleSelector::canShareStyleWithElement):

2012-02-08  Raymond Liu  <raymond.liu@intel.com>

        Fix the caculation of preDelayFrames in DynamicsCompressorKernel
        https://bugs.webkit.org/show_bug.cgi?id=78057

        Reviewed by Chris Rogers.

        No new tests required.

        * platform/audio/DynamicsCompressorKernel.cpp:
        (WebCore::DynamicsCompressorKernel::setPreDelayTime):

2012-02-08  Adam Klein  <adamk@chromium.org>

        DOM mutations should not be delivered on worker threads
        https://bugs.webkit.org/show_bug.cgi?id=77898

        Reviewed by Dmitry Titov.

        In V8RecursionScope, only call WebKitMutationObserver::deliverAllMutations
        if in a Document context.

        This is accomplished through a change to V8Proxy::instrumentedCallFunction
        (which now takes a Frame* instead of a Page*), requiring an update to all
        callers of that function (accounting for the majority of files changed
        in this patch).

        Added ASSERT(isMainThread()) in a deliverAllMutations to confirm that
        it's no longer called on worker threads, and in enqueueMutationRecord,
        where the same global store of active observers is accessed.

        See also http://crbug.com/112586, where the problem was initially
        reported.

        * bindings/v8/ScriptFunctionCall.cpp:
        (WebCore::ScriptCallback::call):
        * bindings/v8/V8NodeFilterCondition.cpp:
        (WebCore::V8NodeFilterCondition::acceptNode):
        * bindings/v8/V8Proxy.cpp:
        (WebCore::V8Proxy::runScript):
        (WebCore::V8Proxy::callFunction):
        (WebCore::V8Proxy::instrumentedCallFunction):
        * bindings/v8/V8Proxy.h:
        (WebCore):
        (V8Proxy):
        * bindings/v8/V8RecursionScope.cpp:
        (WebCore::V8RecursionScope::didLeaveScriptContext):
        * bindings/v8/V8RecursionScope.h:
        (WebCore):
        (WebCore::V8RecursionScope::V8RecursionScope):
        (V8RecursionScope):
        (WebCore::V8RecursionScope::~V8RecursionScope):
        * bindings/v8/V8WindowErrorHandler.cpp:
        (WebCore::V8WindowErrorHandler::callListenerFunction):
        * bindings/v8/custom/V8CustomVoidCallback.cpp:
        (WebCore::invokeCallback):
        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
        * dom/WebKitMutationObserver.cpp:
        (WebCore::WebKitMutationObserver::enqueueMutationRecord):
        (WebCore::WebKitMutationObserver::deliverAllMutations):

2012-02-08  Anders Carlsson  <andersca@apple.com>

        Don't use the wheel event handler count to track if a page has horizontal scrollbars
        https://bugs.webkit.org/show_bug.cgi?id=78192

        Reviewed by Andreas Kling.

        Stop calling Document::didAddWheelEventHandler and Document::didRemoveWheelEventHandler when
        adding and removing scrollbars.

        * page/FrameView.cpp:
        * page/FrameView.h:
        (FrameView):
        * rendering/RenderLayer.cpp:
        * rendering/RenderLayer.h:

2012-02-08  Igor Oliveira  <igor.o@sisa.samsung.com>

        Implement reverse animation direction

        Implement reverse animation direction
        https://bugs.webkit.org/show_bug.cgi?id=60525

        Implement reverse and alternate-reverse direction.

        Reviewed by Dean Jackson.

        Tests: animations/animation-direction-alternate-reverse.html
               animations/animation-direction-reverse.html
               animations/fill-mode-reverse.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseAnimationDirection):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::mapAnimationDirection):
        * css/CSSValueKeywords.in:
        * page/WebKitAnimation.cpp:
        (WebCore::WebKitAnimation::direction):
        * page/WebKitAnimation.h:
        * page/animation/AnimationBase.cpp:
        (WebCore::AnimationBase::fractionalTime):
        * platform/animation/Animation.h:
        (Animation):
        * platform/graphics/texmap/TextureMapperAnimation.cpp:
        (WebCore):
        (WebCore::shouldReverseAnimationValue):
        (WebCore::normalizedAnimationValue):

2012-02-08  James Robinson  <jamesr@chromium.org>

        [chromium] Avoid creating a temporary GraphicsContext3D if someone requests the WebView's GraphicsContext3D before initialization is complete
        https://bugs.webkit.org/show_bug.cgi?id=78154

        Reviewed by Kenneth Russell.

        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
        (WebCore::CCSingleThreadProxy::context):

2012-02-08  David Hyatt  <hyatt@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=78157
        
        Make multi-column layout work with line grids that are outside of the multi-column
        block.

        Reviewed by Dan Bernstein.

        Added new tests in fast/line-grid.

        * rendering/LayoutState.cpp:
        (WebCore::LayoutState::LayoutState):
        (WebCore::LayoutState::propagateLineGridInfo):
        (WebCore::LayoutState::establishLineGrid):
        (WebCore):
        (WebCore::LayoutState::computeLineGridPaginationOrigin):
        * rendering/LayoutState.h:
        (WebCore::LayoutState::LayoutState):
        (WebCore::LayoutState::lineGrid):
        (WebCore::LayoutState::lineGridOffset):
        (WebCore::LayoutState::lineGridPaginationOrigin):
        (WebCore::LayoutState::needsBlockDirectionLocationSetBeforeLayout):
        (LayoutState):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutBlockChildren):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::layoutInlineChildren):
        * rendering/RenderView.h:
        (WebCore::RenderView::pushLayoutState):
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::lineGridSnapAdjustment):

2012-02-08  Matthew Delaney  <mdelaney@apple.com>

        GeneratorGeneratedImage::drawPattern does not factor in its destination context's scale when generating its image tiles

        https://bugs.webkit.org/show_bug.cgi?id=67729
        <rdar://problem/10087050>

        Reviewed by Beth Dakin.

        No new tests, current pixel tests will cover this. Though some pixel results might improve to become less pixel-y.

        * platform/graphics/GeneratorGeneratedImage.cpp:
        (WebCore::GeneratorGeneratedImage::draw): Updated context to destContext for consistency.
        (WebCore::GeneratorGeneratedImage::drawPattern): Taught drawPattern about the destination
        scale factor to avoid having low-res generated images such as gradients in certain cases.
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::createCompatibleBuffer): Have the image buffer match the
        context acceleration setting as well.

2012-02-08  Adam Klein  <adamk@chromium.org>

        Simplify and correct mutation delivery timing for JSC
        https://bugs.webkit.org/show_bug.cgi?id=78172

        Reviewed by Adam Barth.

        Instead of keeping a static recursion counter in JSMainThreadExecState,
        simply wait for a state change from non-null ExecState to null ExecState.
        Because s_mainThreadState is initially null, this equivalent to
        waiting for s_recursionLevel to rewind to zero.

        This also properly handles the usage of JSMainThreadNullState (and
        does not do mutation delivery), since that class is only used by
        non-JS bindings. Now fast/mutation/end-of-task-delivery.html properly
        fails, whereas it was passing before due to usage of the ObjC DOM API
        from DumpRenderTree.

        * bindings/js/JSMainThreadExecState.cpp:
        (WebCore):
        * bindings/js/JSMainThreadExecState.h: Added a comment explaining the purpose of JSMainThreadNullState.
        (WebCore::JSMainThreadExecState::JSMainThreadExecState):
        (WebCore::JSMainThreadExecState::~JSMainThreadExecState):
        (JSMainThreadExecState):
        (WebCore):

2012-02-08  Kentaro Hara  <haraken@chromium.org>

        Remove [ConvertToString] from CodeGeneratorCPP.pm and rename
        it to [ObjCImplementedAsUnsignedLong]
        https://bugs.webkit.org/show_bug.cgi?id=78100

        Reviewed by Eric Seidel.

        Now [ConvertToString] is used by ObjC's HTMLElement.size only.
        This patch removes [ConvertToString] code from CodeGeneratorCPP.pm,
        and renames [ConvertToString] to [ObjCImplementedAsUnsignedLong].

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorCPP.pm:
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (GenerateImplementation):
        * html/HTMLInputElement.idl: Removed FIXME comment, because the latest spec
        says HTMLInputElement.size should be unsigned long.
        (http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#the-input-element)

2012-02-08  Leo Yang  <leo.yang@torchmobile.com.cn>

        REGRESSION(r84194): Build fails when turning on ENABLE_FILE_SYSTEM
        https://bugs.webkit.org/show_bug.cgi?id=78088

        Reviewed by Antonio Gomes.

        WebCore::getDOMObjectWrapper was changed to WebCore::wrap in r84194.
        Adapt to this change in JSEntryCustom.cpp and JSEntrySyncCustom.cpp.

        Build fix, no new tests.

        * bindings/js/JSEntryCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSEntrySyncCustom.cpp:
        (WebCore::toJS):

2012-02-08  Dana Jansens  <danakj@chromium.org>

        [Chromium] Fix opaque tracking for box shadows and non-composited child elements
        https://bugs.webkit.org/show_bug.cgi?id=78073

        Reviewed by Stephen White.

        Tests: compositing/culling/scrolled-within-boxshadow.html
               compositing/culling/translated-boxshadow.html

        Unit tests: PlatformContextSkiaTest.cpp

        When painting a box shadow, a filter is applied to the skia canvas, that can make
        pixels painted with an opaque color end up non-opaque. So consider image/mask/color
        filters when deciding if a paint is opaque.

        Also when painting the background of an element with a box shadow, the background is
        painted with a transform on the skia canvas based on the size of the box shadow. This
        transform needs to be considered when tracking an opaque paint.

        However, when a layer's contentRect position is non-zero, we translate the GraphicsContext
        to put the contentRect at 0,0 in the skia canvas. For tracking opaque regions in the resulting
        layer, we need to unto this translation. Scaling can also occur which we must undo. So we pass
        the transform in to PlatformContextSkia to go from the SkCanvas back to the layer's content
        coordinate space. Opaque paints can then be tracked in the layer's content space rather than
        in the skia canvas space.

        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
        (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
        * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp:
        (WebCore::CanvasLayerTextureUpdater::paintContents):
        * platform/graphics/chromium/CanvasLayerTextureUpdater.h:
        (WebCore):
        (CanvasLayerTextureUpdater):
        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
        (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
        * platform/graphics/skia/OpaqueRegionSkia.cpp:
        (WebCore::paintIsOpaque):
        (WebCore::OpaqueRegionSkia::didDrawRect):
        (WebCore::OpaqueRegionSkia::didDrawPath):
        (WebCore::OpaqueRegionSkia::didDrawPoints):
        (WebCore::OpaqueRegionSkia::didDrawBounded):
        (WebCore::OpaqueRegionSkia::didDraw):
        (WebCore::OpaqueRegionSkia::markRectAsOpaque):
        (WebCore::OpaqueRegionSkia::markRectAsNonOpaque):
        * platform/graphics/skia/OpaqueRegionSkia.h:
        (WebCore):
        (OpaqueRegionSkia):
        * platform/graphics/skia/PlatformContextSkia.cpp:
        (WebCore::PlatformContextSkia::didDrawRect):
        (WebCore::PlatformContextSkia::didDrawPath):
        (WebCore::PlatformContextSkia::didDrawPoints):
        (WebCore::PlatformContextSkia::didDrawBounded):
        * platform/graphics/skia/PlatformContextSkia.h:
        (PlatformContextSkia):
        (WebCore::PlatformContextSkia::setOpaqueRegionTransform):

2012-02-08  Kentaro Hara  <haraken@chromium.org>

        Remove [CustomHeader] from CanvasPixelArray and rename [CustomHeader] to [JSCustomHeader]
        https://bugs.webkit.org/show_bug.cgi?id=78089

        Reviewed by Adam Barth.

        This patch removes [CustomHeader] from CanvasPixelArray.idl, since CanvasPixelArrayCustom.h
        does not exist. (The reason why missing CanvasPixelArrayCustom.h has not caused build failure
        is that [CustomHeader] has been JSC-specific and JSC has not enabled CanvasPixelArray.)
        Also, this patch renames [CustomHeader] to [JSCustomHeader], since whether a given class
        should have custom header or not will depend on JavaScript bindings.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        * dom/Node.idl:
        * html/canvas/CanvasPixelArray.idl:

2012-02-08  Zalan Bujtas  <zbujtas@gmail.com>

        Dispatch updateViewportArguments(), when Document is finished
        restoring from page cache.

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

        Reviewed by Kenneth Rohde Christiansen.

        Move updateViewportArguments() call from setPageInCache() to
        documentDidResumeFromPageCache() to ensure, that the Document is
        fully resumed from the page cache and attached to the mainframe,
        when the viewport arguments are updated.

        No tests. No change in behaviour.

        * dom/Document.cpp:
        (WebCore::Document::setInPageCache):
        (WebCore::Document::documentDidResumeFromPageCache):

2012-02-08  Shawn Singh  <shawnsingh@chromium.org>

        [chromium] Remove incorrect early exit in CCDamageTracker
        https://bugs.webkit.org/show_bug.cgi?id=76924

        Reviewed by James Robinson.

        New unit test added to CCDamageTrackerTest.cpp

        This patch does three things: (1) adds unit test that demonstrates
        that early exiting in CCDamageTracker is wrong, (2) removes the
        early exit and cleans up the surrounding code, and (3) re-names
        several functions in CCDamageTracker so that state updating is
        implied by the name, and not just a bad side-effect of the functions.

        * platform/graphics/chromium/cc/CCDamageTracker.cpp:
        (WebCore::CCDamageTracker::updateDamageTrackingState):
        (WebCore::CCDamageTracker::trackDamageFromActiveLayers):
        (WebCore::CCDamageTracker::trackDamageFromSurfaceMask):
        (WebCore::CCDamageTracker::trackDamageFromLeftoverRects):
        * platform/graphics/chromium/cc/CCDamageTracker.h:
        (CCDamageTracker):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::trackDamageForAllSurfaces):

2012-02-08  James Robinson  <jamesr@chromium.org>

        [chromium] Check that we can make the SharedGraphicsContext3D current before returning
        https://bugs.webkit.org/show_bug.cgi?id=78142

        Reviewed by Stephen White.

        If we can't make the context current, we can't use it.

        * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
        (WebCore::SharedGraphicsContext3D::get):

2012-02-08  Abhishek Arya  <inferno@chromium.org>

        Crash in Node::normalize.
        https://bugs.webkit.org/show_bug.cgi?id=78135

        Reviewed by Ryosuke Niwa.

        No new tests. Original testcase does not reduce to manageable
        extent.

        * dom/Node.cpp:
        (WebCore::Node::normalize):

2012-02-08  Antoine Labour  <piman@chromium.org>

        Make WebGL context current early to check validity
        https://bugs.webkit.org/show_bug.cgi?id=78141

        Reviewed by James Robinson.

        Covered by existing tests

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::create):

2012-02-08  Jonathan Backer  <backer@chromium.org>

        [chromium] Disable root layer clears on release builds.
        https://bugs.webkit.org/show_bug.cgi?id=77478

        Reviewed by James Robinson.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::clearRenderSurface):
        (WebCore::LayerRendererChromium::drawRenderPass):
        * platform/graphics/chromium/LayerRendererChromium.h:
        (LayerRendererChromium):

2012-02-08  Anders Carlsson  <andersca@apple.com>

        Add a content shadow layer to the render layer compositor
        https://bugs.webkit.org/show_bug.cgi?id=78133
        <rdar://problem/10797742>

        Reviewed by Beth Dakin.

        Have the render layer compositor optionally create a content shadow layer,
        and add a ScrollbarTheme::setUpContentShadowLayer member function that subclasses
        can use to set content shadow properties.

        * platform/mac/ScrollbarThemeMac.mm:
        (WebCore::ScrollbarThemeMac::setUpContentShadowLayer):
        Set the layer properties once, and set the shadow path on every call, since we know that this
        function will be called every time the size of the content shadow layer changes.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateRootLayerPosition):
        Reposition the content shadow layer, and call ScrollbarTheme::setUpContentShadowLayer if the size changes.

        (WebCore::RenderLayerCompositor::requiresContentShadowLayer):
        Add new helper function.

        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
        Create a content shadow layer if needed.

2012-02-07  Andy Estes  <aestes@apple.com>

        REGRESSION (r102983): ClicktoFlash drawing of old style youtube embeds missing until resize
        https://bugs.webkit.org/show_bug.cgi?id=77167

        Reviewed by Eric Seidel.

        Test: plugins/layout-in-beforeload-listener-affects-plugin-loading.html

        r102983 made FrameView::updateWidgets() check if the DOM node actually
        needs a widget update before calling updateWidget(). Due to historical
        reasons, however, updateWidget() can be legitimately called twice: once
        at attach time for non-Netscape plug-ins and once at layout time for
        Netscape plug-ins.

        If the widget represents a Netscape plug-in, but updateWidget() is
        called for the CreateOnlyNonNetscapePlugins case after the DOM node was
        marked as needing an update, updateWidget() will clear the update flag
        and prevent a second call to updateWidget() at layout time for the
        CreateAnyWidgetType case.

        As much as I loathe adding to the code duplication between
        HTMLEmbedElement::updateWidget() and HTMLObjectElement::updateWidget(),
        the simplest solution seems to be marking the DOM node as needing
        update in the case where we are calling updateWidget() for the
        CreateOnlyNonNetscapePlugins case and we know we will be loading a
        Netscape plug-in.

        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::updateWidget): Call
        setNeedsWidgetUpdate(true) if pluginCreationOption is
        CreateOnlyNonNetscapePlugins but we will load a Netscape plug-in.
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::updateWidget): Ditto.
        * html/HTMLPlugInElement.cpp:
        (WebCore::HTMLPlugInElement::guardedDispatchBeforeLoadEvent): Remove an
        invalid assertion that prevents the layout test from running in a Debug
        configuration.

2012-02-07  Ojan Vafai  <ojan@chromium.org>

        Floated flexboxes render as regular RenderBlocks
        https://bugs.webkit.org/show_bug.cgi?id=77909

        Reviewed by Eric Seidel.

        Add grid/flexbox cases to adjusting the display of floated/positioned
        elements. Also, move this logic into a switch statement. This makes
        the code more readable and gives compile warnings when new display types
        are added that aren't handled here.

        Test: css3/flexbox/floated-flexbox.html

        * css/CSSStyleSelector.cpp:
        (WebCore::adjustDisplay):
        (WebCore):
        (WebCore::CSSStyleSelector::adjustRenderStyle):

2012-02-08  Dirk Schulze  <krit@webkit.org>

        viewBox on nested SVG causes wrong content size for relative values
        https://bugs.webkit.org/show_bug.cgi?id=69459

        Reviewed by Nikolas.

        In the past we just checked the change of the viewport size of the root SVG element. If the size changed, all childs
        with relative length values needed a relayout. We did not consider that we might have other viewports in the document.
        Childs with relative lengths had a strange zooming, if just the viewport size of an inner SVG element changed.

        With this patch we check if the size of the nearest viewport changes. Is this the case, childs with relative lengths
        need a relayout.

        Test: inner-svg-change-viewBox.svg

        * rendering/svg/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::layout):
        * rendering/svg/RenderSVGContainer.h:
        (RenderSVGContainer):
        (WebCore::RenderSVGContainer::determineIfLayoutSizeChanged): Check if we need layout and have relative length values.
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::layout): Remove resetting 'viewport size changed' flag for code operability. No influence on the layout.
        * rendering/svg/RenderSVGViewportContainer.cpp:
        (WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer): Add a flag that indicates that the viewport size changes.
        (WebCore::RenderSVGViewportContainer::determineIfLayoutSizeChanged): The flag gets set during the layout phase of the SVG element if the size changes.
        (WebCore):
        * rendering/svg/RenderSVGViewportContainer.h:
        (WebCore::RenderSVGViewportContainer::isLayoutSizeChanged): Added getter to get flag status.
        (RenderSVGViewportContainer):
        (WebCore::toRenderSVGViewportContainer): Added casting function for constant RenderObjects.
        (WebCore):
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::layoutSizeOfNearestViewportChanged): Search the nearest viewport and check if the size changed.
        (WebCore):
        (WebCore::SVGRenderSupport::layoutChildren): Don't check the roots viewport for size changes, but the nearest viewport.
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::svgAttributeChanged): Added viewBoxAttr to the list of attributes that cause relayout.

2012-02-08  Gregg Tavares  <gman@google.com>

        Implement new WEBGL compressed texture extensions
        https://bugs.webkit.org/show_bug.cgi?id=77066

        This removes the old experimental compressed
        texture extension and implements the first new
        one.

        A test is in the WebGL conformance tests in
        extensions/webgl-compressed-texture-s3tc.html
        and will be copied here in a future patch.

        Reviewed by Kenneth Russell.

        No new tests. Test coming in future patch.

        * CMakeLists.txt:
        * DerivedSources.make:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::toJS):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::toV8Object):
        * html/canvas/WebGLCompressedTextureS3TC.cpp: Added.
        (WebCore):
        (WebCore::WebGLCompressedTextureS3TC::WebGLCompressedTextureS3TC):
        (WebCore::WebGLCompressedTextureS3TC::~WebGLCompressedTextureS3TC):
        (WebCore::WebGLCompressedTextureS3TC::getName):
        (WebCore::WebGLCompressedTextureS3TC::create):
        (WebCore::WebGLCompressedTextureS3TC::supported):
        * html/canvas/WebGLCompressedTextureS3TC.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
        (WebCore):
        (WebGLCompressedTextureS3TC):
        * html/canvas/WebGLCompressedTextureS3TC.idl: Renamed from Source/WebCore/html/canvas/WebGLCompressedTextures.idl.
        * html/canvas/WebGLCompressedTextures.cpp: Removed.
        * html/canvas/WebGLCompressedTextures.h: Removed.
        * html/canvas/WebGLExtension.h:
        * html/canvas/WebGLGetInfo.cpp:
        (WebCore::WebGLGetInfo::WebGLGetInfo):
        (WebCore):
        (WebCore::WebGLGetInfo::getWebGLUnsignedIntArray):
        * html/canvas/WebGLGetInfo.h:
        * html/canvas/WebGLObject.cpp:
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::addCompressedTextureFormat):
        (WebCore::WebGLRenderingContext::compressedTexImage2D):
        (WebCore::WebGLRenderingContext::compressedTexSubImage2D):
        (WebCore::WebGLRenderingContext::getExtension):
        (WebCore::WebGLRenderingContext::getParameter):
        (WebCore::WebGLRenderingContext::getSupportedExtensions):
        (WebCore::WebGLRenderingContext::validateCompressedTexFormat):
        (WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
        (WebCore::WebGLRenderingContext::validateCompressedTexDimensions):
        (WebCore::WebGLRenderingContext::validateCompressedTexSubDimensions):
        * html/canvas/WebGLRenderingContext.h:
        (WebCore):
        (WebGLRenderingContext):
        * html/canvas/WebGLRenderingContext.idl:

2012-02-08  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: heap snapshot: implement Distance column in Object's retaining tree.
        https://bugs.webkit.org/show_bug.cgi?id=78113

        Retaining path list was replaced with Retaining tree some time ago.
        But it was not so useful when we want to track the retaining path from an object to a DOM Window node.

        Drive by fix: sort doesn't work in retaining tree panel.
        Drive by fix: save/load child nodes doesn't work for the retaining tree panel.

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/DetailedHeapshotGridNodes.js:
        (WebInspector.HeapSnapshotObjectNode):
        (WebInspector.HeapSnapshotObjectNode.prototype._childHashForEntity): save/load children fix
        (WebInspector.HeapSnapshotObjectNode.prototype._childHashForNode): save/load children fix
        (WebInspector.HeapSnapshotObjectNode.prototype.comparator):
        (WebInspector.HeapSnapshotObjectNode.prototype._enhanceData):
        * inspector/front-end/DetailedHeapshotView.js:
        (WebInspector.HeapSnapshotContainmentDataGrid):
        (WebInspector.HeapSnapshotRetainmentDataGrid):
        (WebInspector.HeapSnapshotRetainmentDataGrid.prototype._sortFields):
        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshotRetainerEdge.prototype.set retainerIndex):
        (WebInspector.HeapSnapshotRetainerEdge.prototype.set edgeIndex):
        (WebInspector.HeapSnapshotRetainerEdge.prototype.get _node):
        (WebInspector.HeapSnapshotRetainerEdge.prototype.get _edge):
        (WebInspector.HeapSnapshotNode.prototype.get distanceToWindow):
        (WebInspector.HeapSnapshot.prototype._init):
        (WebInspector.HeapSnapshot.prototype._buildRetainers):
        (WebInspector.HeapSnapshot.prototype._calculateObjectToWindowDistance):
        (WebInspector.HeapSnapshot.prototype._bfs):
        (WebInspector.HeapSnapshotEdgesProvider.prototype._serialize):
        (WebInspector.HeapSnapshotEdgesProvider.prototype.sort.compareEdgeFieldName):
        (WebInspector.HeapSnapshotEdgesProvider.prototype.sort.compareNodeField):
        (WebInspector.HeapSnapshotEdgesProvider.prototype.sort.compareEdgeAndNode):
        (WebInspector.HeapSnapshotEdgesProvider.prototype.sort.compareNodeAndEdge):
        (WebInspector.HeapSnapshotEdgesProvider.prototype.sort.compareNodeAndNode):
        (WebInspector.HeapSnapshotEdgesProvider.prototype.sort):
        (WebInspector.HeapSnapshotNodesProvider.prototype._serialize):
        * inspector/front-end/heapProfiler.css:
        (.detailed-heapshot-view .data-grid td.distanceToWindow-column):

2012-02-08  Anders Carlsson  <andersca@apple.com>

        Fix assertion in svg/dom/SVGStyledElement-pendingResource-crash.html
        https://bugs.webkit.org/show_bug.cgi?id=78126

        Reviewed by Dan Bernstein.

        This broke in r106977 when I tried to change an early return into an ASSERT,
        so let's bring back the early return.

        * page/FrameView.cpp:
        (WebCore::FrameView::notifyPageThatContentAreaWillPaint):

2012-02-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r106920, r106924, r106933, r106939,
        and r107090.
        http://trac.webkit.org/changeset/106920
        http://trac.webkit.org/changeset/106924
        http://trac.webkit.org/changeset/106933
        http://trac.webkit.org/changeset/106939
        http://trac.webkit.org/changeset/107090
        https://bugs.webkit.org/show_bug.cgi?id=78124

        Something is completely wrong this change (Requested by
        Ossy_gardener on #webkit).

        * platform/FileSystem.h:
        (WebCore):
        * platform/qt/FileSystemQt.cpp:

2012-02-08  David Hyatt  <hyatt@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=78122
        
        Add support for the "contains" value for line-grid-snap. This value centers the line box in between the
        text-top and text-bottom of the minimum number of grid lines that enclose the line box. This is useful for
        centering headers in a line grid.

        Reviewed by Adam Roben.

        Added a new test in fast/line-grid.

        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::lineGridSnapAdjustment):

2012-02-08  Cary Clark  <caryclark@google.com>

        [Skia Mac] Make misspelling underline dots unclipped
        https://bugs.webkit.org/show_bug.cgi?id=78117
        http://code.google.com/p/chromium/issues/detail?id=113154

        Reviewed by Stephen White.

        No new tests. Existing layout tests cover this.

        As is done on the CoreGraphics Mac platform, adjust the
        underline width to remove partial dots, not including the
        trailing transparent pixel column.

        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::GraphicsContext::drawLineForTextChecking):

2012-02-08  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: bind entire subtree upon childNodeInserted so that text node were accounted.
        https://bugs.webkit.org/show_bug.cgi?id=78116

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMNode):
        (WebInspector.DOMDocument):
        (WebInspector.DOMAgent.prototype._setDocument):
        (WebInspector.DOMAgent.prototype._setDetachedRoot):
        (WebInspector.DOMAgent.prototype._setChildNodes):
        (WebInspector.DOMAgent.prototype._childNodeRemoved):
        (WebInspector.DOMAgent.prototype._unbind):

2012-02-08  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: Optional out arguments are not supported in the Web Inspector protocol, which breaks the implementation
        https://bugs.webkit.org/show_bug.cgi?id=77967

        Reviewed by Yury Semikhatsky.

        Condition for RefPtr-based types added. This is more-or-less a hack
        and it's should be redone together with the switch to type-safe API.

        * inspector/CodeGeneratorInspector.py:
        (Generator.process_command):

2012-02-07  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: inspected object wrapper should be released by InjectedScript when popover closes
        https://bugs.webkit.org/show_bug.cgi?id=77972

        When object popover is shown the object under cursor is resolved and its
        wrapper is put into 'popover' object wrapper group. The group is discarded
        when the popover closes.

        Reviewed by Pavel Feldman.

        * bindings/js/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::objectByHeapObjectId):
        * bindings/js/ScriptProfiler.h:
        (WebCore):
        (ScriptProfiler):
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::objectByHeapObjectId):
        (WebCore):
        * bindings/v8/ScriptProfiler.h:
        (WebCore):
        (ScriptProfiler):
        * inspector/Inspector.json:
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::getObjectByHeapObjectId):
        * inspector/InspectorProfilerAgent.h:
        (InspectorProfilerAgent):
        * inspector/front-end/DetailedHeapshotGridNodes.js:
        (WebInspector.HeapSnapshotGenericObjectNode.prototype.queryObjectContent):
        * inspector/front-end/DetailedHeapshotView.js:
        (WebInspector.DetailedHeapshotView.prototype._resolveObjectForPopover):
        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame):
        (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
        (WebInspector.JavaScriptSourceFrame.prototype._onHidePopover):
        * inspector/front-end/ObjectPopoverHelper.js:
        (WebInspector.ObjectPopoverHelper):
        (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
        (WebInspector.ObjectPopoverHelper.prototype._onHideObjectPopover):

2012-02-08  Mario Sanchez Prada  <msanchez@igalia.com>

        [Gtk] atk_text_get_text_at_offset() fails to provide the correct line for list items whose text wraps
        https://bugs.webkit.org/show_bug.cgi?id=73431

        Reviewed by Chris Fleizach.

        Don't replace item's markers with the objectReplacementCharacter
        character, as they will be treated in an special way later on.

        * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
        (textForRenderer): Don't append the objectReplacementCharacter
        character for list item's markers.

2012-02-08  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: do not clear entire tree map upon last element deletion.
        https://bugs.webkit.org/show_bug.cgi?id=78112

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/treeoutline.js:
        (TreeOutline.prototype._forgetChildrenRecursive):

2012-02-08  Kaustubh Atrawalkar  <kaustubh@motorola.com>

        Migrate createObjectURL & revokeObjectURL to static (Class) methods.
        https://bugs.webkit.org/show_bug.cgi?id=74386

        Reviewed by Kentaro Hara.

        Move createObjectURL & revokeObjectURL from DOMURL implementation to
        static methods as per specs - http://www.w3.org/TR/FileAPI/#creating-revoking

        Test: fast/dom/DOMURL/check-instanceof-domurl-functions.html
        Already Existing:
            fast/files/revoke-blob-url.html
            fast/dom/window-domurl-crash.html
            fast/files/apply-blob-url-to-img.html
            fast/files/create-blob-url-crash.html
            fast/files/workers/inline-worker-via-blob-url.html

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
        (WebCore::ScriptExecutionContext::fileThread):
        (WebCore):
        (WebCore::ScriptExecutionContext::publicURLManager):
        * dom/ScriptExecutionContext.h:
        (WebCore):
        (ScriptExecutionContext):
        * html/DOMURL.cpp:
        (WebCore):
        (WebCore::DOMURL::createObjectURL): Changed to static.
        (WebCore::DOMURL::revokeObjectURL): ditto.
        * html/DOMURL.h:
        (DOMURL):
        (WebCore::DOMURL::create):
        * html/DOMURL.idl:
        * html/PublicURLManager.h: Added.
        (WebCore):
        (PublicURLManager):
        (WebCore::PublicURLManager::create):
        (WebCore::PublicURLManager::contextDestroyed):
        (WebCore::PublicURLManager::blobURLs):
        (WebCore::PublicURLManager::streamURLs):
        * page/DOMWindow.cpp: Removed object initialization for DOMURL.
        (WebCore):
        * page/DOMWindow.h: ditto.
        (DOMWindow):
        * page/DOMWindow.idl:
        * workers/WorkerContext.cpp:
        (WebCore):
        * workers/WorkerContext.h:
        (WorkerContext):
        * workers/WorkerContext.idl:

2012-02-01  Brian Grinstead  <briangrinstead@gmail.com>

        Web Inspector: Add changes for Spectrum colorpicker
        https://bugs.webkit.org/show_bug.cgi?id=75454

        Reviewed by Pavel Feldman.

        * inspector/front-end/Color.js:
        (WebInspector.Color.fromRGB):
        * inspector/front-end/utilities.js:
        (Element.prototype.totalOffsetLeft):
        (Element.prototype.totalOffsetTop):
        (Element.prototype.totalOffset):
        (Element.prototype.scrollOffset):
        ():

2012-02-08  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Avoid an avalanche of "class" attribute modifications in WatchExpressionsSidebarPane
        https://bugs.webkit.org/show_bug.cgi?id=78102

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/WatchExpressionsSidebarPane.js:
        (WebInspector.WatchExpressionsSection.prototype._updateHoveredElement):

2012-02-08  Antaryami Pandia  <antaryami.pandia@motorola.com>

        CSS2 overflow: scrollbar not visible on SELECT elements when overflow: scroll is set.
        https://bugs.webkit.org/show_bug.cgi?id=69993

        Reviewed by Simon Fraser.

        The issue was that for overflow:scroll, currently webkit always places the horizontal
        and vertical scrollbar. But Since the listbox renderer handles its scrolling,
        we should not set scrollbar for list-box.

        Tests: fast/css/getComputedStyle/computed-style-select-overflow.html
               fast/forms/select-overflow-scroll-inherited.html
               fast/forms/select-overflow-scroll.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutBlock):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateScrollInfoAfterLayout):

2012-02-08  Nikolas Zimmermann  <nzimmermann@rim.com>

        feImage doesn't invalidate when its target SVG element is animated
        https://bugs.webkit.org/show_bug.cgi?id=73860

        Reviewed by Dirk Schulze.

        Consider following testcase:
        <defs>
            <rect id="rect" fill="red" width="50" height="50"/>
            <filter id="filter">
                <feImage xlink:href="#rect"/>
            </filter>
        </defs>
        <rect width="50" height="50" filter="url(#filter)"/>

        If the <rect id="rect"> gets changed dynamically (attribute/property/style change) the <feImage>
        doesn't notice this, as there's no link between the <rect> and the <feImage>, as the <rect> is not
        a child of the <feImage/>. To get invalidations working for these situations, we have to track
        the referencingElement & referencedElement in SVGDocumentExtensions.

        Fixes parts the SVG-Wow twirl testcase and David Daileys SVG waves example.

        Tests: svg/filters/feImage-animated-transform-on-target-rect.svg
               svg/filters/feImage-late-indirect-update.svg
               svg/filters/feImage-mutliple-targets-id-change.svg
               svg/filters/feImage-target-attribute-change-with-use-indirection-2.svg
               svg/filters/feImage-target-attribute-change-with-use-indirection.svg
               svg/filters/feImage-target-attribute-change.svg
               svg/filters/feImage-target-inline-style-change.svg
               svg/filters/feImage-target-property-change.svg
               svg/filters/feImage-target-style-change.svg

        * rendering/svg/RenderSVGResource.cpp:
        (WebCore::removeFromFilterCacheAndInvalidateDependencies): Renamed from removeFromFilterCache, as it has another purpose now.
        (WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation): s/removeFromFilterCache/removeFromFilterCacheAndInvalidateDependencies/.
        * rendering/svg/RenderSVGResource.h: Removed removeFromFilterCache, it got inlined.
        * svg/SVGDocumentExtensions.cpp: Add a new HashMap<SVGElement*, OwnPtr<HashSet<SVGElement*> > > used for dependency tracking.
        (WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget): Returns all elements the passed in element depends on.
        (WebCore::SVGDocumentExtensions::addElementReferencingTarget): Register element 'a' referencing target 'b'.
        (WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement): Called by element 'a' on destruction or any target change.
        (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget): Called by element 'b' on destruction.
        * svg/SVGDocumentExtensions.h: Expose new methods.
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::~SVGElement): Call remove removeAllElementReferencesForTarget on destruction.
        * svg/SVGFEImageElement.cpp:
        (WebCore::SVGFEImageElement::clearResourceReferences):
        (WebCore::SVGFEImageElement::buildPendingResource):

2012-02-08  Kihong Kwon  <kihong.kwon@samsung.com>

        [EFL] Using string method instead of char* operation in the platformLanguage().
        https://bugs.webkit.org/show_bug.cgi?id=78077

        Reviewed by Andreas Kling.

        No new tests. Just fix a bug of platformLanguage function.

        * platform/efl/LanguageEfl.cpp:
        (WebCore::platformLanguage):
        Change char* operation to string operation.

2012-02-08  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Touch event emulation fails for iframes
        https://bugs.webkit.org/show_bug.cgi?id=77987

        Reviewed by Pavel Feldman.

        Test: fast/events/touch/emulated-touch-iframe.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMouseReleaseEvent):

2012-02-08  Andreas Kling  <awesomekling@apple.com>

        StyledElement: Manully setNeedsStyleRecalc() after adding CSSProperties directly.
        <http://webkit.org/b/78068>

        Rubber-stamped by Ryosuke Niwa.

        Turns out that setProperty() with a CSSProperty has quite different behavior from
        the other setProperty() methods. We should probably clean that up (separately.)
        For now, simply call setNeedsStyleRecalc() manually in the addCSS* functions that
        use setProperty(CSSProperty).

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::addCSSProperty):
        (WebCore::StyledElement::addCSSImageProperty):

2012-02-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r107050.
        http://trac.webkit.org/changeset/107050
        https://bugs.webkit.org/show_bug.cgi?id=78094

        May crash editing tests (Requested by morrita on #webkit).

        * html/HTMLDetailsElement.cpp:
        (WebCore::HTMLDetailsElement::createShadowSubtree):
        * html/HTMLKeygenElement.cpp:
        (WebCore::HTMLKeygenElement::HTMLKeygenElement):
        * html/HTMLMeterElement.cpp:
        (WebCore::HTMLMeterElement::createShadowSubtree):
        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::createShadowSubtree):
        * html/HTMLSummaryElement.cpp:
        (WebCore::HTMLSummaryElement::createShadowSubtree):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::createShadowSubtree):

2012-02-08  Nikolas Zimmermann  <nzimmermann@rim.com>

        [Qt] REGRESSION(r106918): It made svg/zoom/page/zoom-foreignObject.svg crash with Qt5-WK1
        https://bugs.webkit.org/show_bug.cgi?id=77995

        Reviewed by Csaba Osztrogonác.

        From the stack traces it's obvious that SVGImageChromeClient tried to invalidate the root view,
        while its SVGImage was being destructed, due to an updateStyleIfNeeded() call, coming
        from frameDetached(). There's no point in redrawing there, so we should just stop it.

        Covered by existing tests on the Qt but, unfortunately I couldn't reproduce it on Mac.

        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImageChromeClient::invalidateContentsAndRootView): Stop invalidating if m_page is 0.
        (WebCore::SVGImage::~SVGImage): Clear m_page, so that SVGImageChromeClient knows we're destructing.
        * svg/graphics/SVGImage.h:

2012-02-08  Pablo Flouret  <pablof@motorola.com>

        Add state attribute to history's dom interface.
        https://bugs.webkit.org/show_bug.cgi?id=76035

        Reviewed by Kentaro Hara.

        Tests: fast/loader/stateobjects/state-attribute-object-types.html
               fast/loader/stateobjects/state-attribute-only-one-deserialization.html

        * bindings/js/JSHistoryCustom.cpp:
        (WebCore::JSHistory::state):
        (WebCore):
        (WebCore::JSHistory::pushState):
        (WebCore::JSHistory::replaceState):
        * bindings/v8/custom/V8HistoryCustom.cpp:
        (WebCore::V8History::stateAccessorGetter):
        (WebCore):
        (WebCore::V8History::pushStateCallback):
        (WebCore::V8History::replaceStateCallback):
        * page/History.cpp:
        (WebCore::History::History):
        (WebCore::History::state):
        (WebCore):
        (WebCore::History::stateInternal):
        (WebCore::History::stateChanged):
        * page/History.h:
        (History):
        * page/History.idl:

2012-02-08  Nikolas Zimmermann  <nzimmermann@rim.com>

        SVGLoad event fires too early
        https://bugs.webkit.org/show_bug.cgi?id=78084

        Reviewed by Hajime Morita.

        SVGLoad event fires too early, making it impossible to use the vanilla repaint.js harness (runRepaintTest).

        We're using a hack called runSVGRepaintTest() at the moment in trunk, which runs runRepaintTest() from a 0ms timer,
        which is not reliable. The main difference between HTML onload and SVG onload is that HTMLs event is a "window event",
        thus dispatched through DOMWindow (eg. <body onload="alert(event.target)" will yield Document,
        <svg onload="alert(evt.target)"> will say SVGSVGElement).

        Consider:
        <svg onload="alert('1')>
        <g onload="alert('2)">
        <rect onload="alert('3')"/>
        </svg>

        As soon as the <rect> finishes parsing (SVGElement::finishedParsingChildren), it's SVGLoad event is fired.
        So first you'll see '3', then '2', then '1'.

        Using:
        <svg onload="alert('1')>
        <g onload="alert('2)">
        <image xlink:href="someExternal.jpg" onload="alert('3')"/>
        </svg>

        will yield the same SVGLoad order. When using <image externalREsourcesRequired="true", first the '1' will fire,
        then '3', then '2', all as expected and specified in SVG.

        http://www.w3.org/TR/SVG/interact.html#LoadEvent says:
        "The event is triggered at the point at which the user agent has fully parsed the element and its descendants and is
        ready to act appropriately upon that element, such as being ready to render the element to the target device. Referenced
        external resources that are required must be loaded, parsed and ready to render before the event is triggered. Optional
        external resources are not required to be ready for the event to be triggered."

        What we don't implement correctly is the second part of the first sentence: "and is ready to act appropriately upon that
        element, such as being ready to render the element to the target device". We currently fire the SVGLoad event, right after
        </svg> is seen, if no externalResourceRequired="true" attributes are set anywhere. This is not wrong, but not correct for
        WebKit, as we're not yet "ready to render".

        HTML fires its window onload event from Document::implicitClose(), where it calls Document::dispatchWindowLoadEvent.
        At this point we're ready to render. So I'm now aligning the timing of the outermost <svg> elements SVGLoad event, to be
        equal to HTML. This lets use use the repaint.js harness w/o any special SVG tricks.

        Covered by existing tests.

        * dom/Document.cpp:
        (WebCore::Document::implicitClose): Dispatch SVGLoad event for outermost <svg> elements from here, as HTML does for its window onload event.
        * svg/SVGDocumentExtensions.cpp:
        (WebCore::SVGDocumentExtensions::dispatchSVGLoadEventToOutermostSVGElements): Sends a SVGLoad event to all outermost <svg> elements in a document, if possible.
        There can be multiple ones, if using <svg><foreignObject><svg>... - the <svg> in the <fO> also acts as outermost <svg> element.
        * svg/SVGDocumentExtensions.h: Add new dispatchSVGLoadEventToOutermostSVGElements() helper.
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::isOutermostSVGSVGElement): Moved from SVGSVGElement into SVGElement, and renamed from isOutermostSVG().
        (WebCore::SVGElement::sendSVGLoadEventIfPossible): Don't dispatch load events to outermost <svg> elements, if Document::implicitClose() wasn't called yet.
        (WebCore::SVGElement::finishParsingChildren): Stop using the default SVGLoad dispatching logic for outermost <svg> elements.
        * svg/SVGElement.h: Add isOutermostSVGSVGElement().
        * svg/SVGSVGElement.cpp: Rename isOutermostSVG to isOutermostSVGSVGElement.
        (WebCore::SVGSVGElement::currentScale):
        (WebCore::SVGSVGElement::setCurrentScale):
        (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
        (WebCore::SVGSVGElement::createRenderer):
        * svg/SVGSVGElement.h: Move isOutermostSVG() to SVGElement.
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::title): Rename isOutermostSVG to isOutermostSVGSVGElement.

2012-02-08  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [CRASH] InspectorDOMAgent::updateTouchEventEmulationInPage()
        https://bugs.webkit.org/show_bug.cgi?id=78090

        Reviewed by Vsevolod Vlasov.

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::updateTouchEventEmulationInPage):

2012-02-07  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Closed computed style sidebar pane rebuilds, resulting in slowness
        https://bugs.webkit.org/show_bug.cgi?id=77865

        Reviewed by Pavel Feldman.

        Test: inspector/styles/lazy-computed-style.html

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane):
        (WebInspector.StylesSidebarPane.prototype._executeRebuildUpdate):
        (WebInspector.StylesSidebarPane.prototype._refreshComputedStyleSection):
        (WebInspector.ComputedStyleSidebarPane.prototype.expand):
        (WebInspector.ComputedStylePropertiesSection.prototype.onpopulate):

2012-02-08  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Adding the onstatechange callback to PeerConnection
        https://bugs.webkit.org/show_bug.cgi?id=77954

        When readyState changes a callback should be triggered.

        Reviewed by Adam Barth.

        Tests for the Media Stream API will be provided by the bug 56587, pending enough landed code.

        * dom/EventNames.h:
        (WebCore):
        * mediastream/PeerConnection.cpp:
        (WebCore::PeerConnection::changeReadyState):
        * mediastream/PeerConnection.h:
        (PeerConnection):
        (WebCore::PeerConnection::didChangeState):
        * mediastream/PeerConnection.idl:
        * platform/mediastream/PeerConnectionHandlerClient.h:
        (PeerConnectionHandlerClient):

2012-02-08  Kentaro Hara  <haraken@chromium.org>

        Rename [DelegatingPutFunction] IDL to [CustomNamedSetter] IDL
        https://bugs.webkit.org/show_bug.cgi?id=77963

        Reviewed by Adam Barth.

        This patch renames [DelegatingPutFunction] IDL to [CustomNamedSetter] IDL,
        for clarification and for naming consistency with [NamedGetter] and [CustomIndexedSetter].

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeaderNamedAndIndexedPropertyAccessors):
        (GenerateImplementationIndexer):
        (GenerateImplementationNamedPropertyGetter):
        * bindings/scripts/test/TestInterface.idl:
        * css/CSSStyleDeclaration.idl:
        * dom/DOMStringMap.idl:
        * html/HTMLAppletElement.idl:
        * html/HTMLEmbedElement.idl:
        * html/HTMLObjectElement.idl:
        * page/History.idl:
        * page/Location.idl:
        * storage/Storage.idl:

2012-02-08  Kentaro Hara  <haraken@chromium.org>

        Replace [CheckNodeSecurity] with [CheckAccessToNode]
        https://bugs.webkit.org/show_bug.cgi?id=77971

        Reviewed by Adam Barth.

        [CheckNodeSecurity] is not implemented by code generators.
        This patch replaces [CheckNodeSecurity] with [CheckAccessToNode].

        Test: http/tests/security/cross-frame-access-frameelement.html

        * page/DOMWindow.idl:

2012-02-08  Kentaro Hara  <haraken@chromium.org>

        Rename [CustomPushEventHandlerScope] to [JSCustomPushEventHandlerScope]
        https://bugs.webkit.org/show_bug.cgi?id=78081

        Reviewed by Adam Barth.

        [CustomPushEventHandlerScope] is a JSC-specific IDL attribute.
        This patch renames it to [JSCustomPushEventHandlerScope]

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        * dom/Node.idl:
        * html/HTMLElement.idl:

2012-02-06  Kentaro Hara  <haraken@chromium.org>

        Add "JS" prefix to JSC-specific IDLs
        https://bugs.webkit.org/show_bug.cgi?id=77846

        Reviewed by Darin Adler.

        In bug 77693, we have added "JS" prefix to several JSC specific IDLs.
        This patch adds "JS" prefix to the remaining JSC specific IDLs.
        Specifically, this patch renames IDLs as follows:

        [CustomDefineOwnProperty] => [JSCustomDefineOwnProperty]
        [CustomPrototypeDefineOwnProperty] => [JSCustomPrototypeDefineOwnProperty]
        [GenerateNativeConverter] => [JSGenerateToNativeObject]  (Note: For naming consistency
        with [JSGenerateToJS] and [JSCustomToNativeObject])
        [DelegatingGetOwnPropertySlot] => [JSCustomGetOwnPropertySlotDelegate]  (Note: Should be prefixed "JS",
        should be prefixed with "Custom", and for naming consistency with [CustomGetOwnPropertySlot])

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody):
        (GenerateGetOwnPropertyDescriptorBody):
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/test/TestTypedArray.idl:
        * dom/Attr.idl:
        * dom/DataTransferItemList.idl:
        * dom/Document.idl:
        * dom/DocumentType.idl:
        * dom/Element.idl:
        * dom/Node.idl:
        * fileapi/DirectoryEntry.idl:
        * fileapi/DirectoryEntrySync.idl:
        * fileapi/File.idl:
        * fileapi/FileEntry.idl:
        * fileapi/FileEntrySync.idl:
        * fileapi/WebKitBlobBuilder.idl:
        * html/DOMFormData.idl:
        * html/DOMURL.idl:
        * html/HTMLAppletElement.idl:
        * html/HTMLCanvasElement.idl:
        * html/HTMLElement.idl:
        * html/HTMLEmbedElement.idl:
        * html/HTMLImageElement.idl:
        * html/HTMLMediaElement.idl:
        * html/HTMLObjectElement.idl:
        * html/HTMLOptionElement.idl:
        * html/HTMLOptionsCollection.idl:
        * html/HTMLTableCaptionElement.idl:
        * html/HTMLTableSectionElement.idl:
        * html/HTMLVideoElement.idl:
        * html/TextTrackCue.idl:
        * html/canvas/Float32Array.idl:
        * html/canvas/Float64Array.idl:
        * html/canvas/Int16Array.idl:
        * html/canvas/Int32Array.idl:
        * html/canvas/Int8Array.idl:
        * html/canvas/Uint16Array.idl:
        * html/canvas/Uint32Array.idl:
        * html/canvas/Uint8Array.idl:
        * html/canvas/Uint8ClampedArray.idl:
        * mediastream/LocalMediaStream.idl:
        * page/DOMWindow.idl:
        * page/History.idl:
        * page/Location.idl:
        * storage/StorageInfo.idl:
        * svg/SVGElement.idl:
        * svg/SVGElementInstance.idl:
        * workers/DedicatedWorkerContext.idl:
        * workers/SharedWorker.idl:
        * workers/SharedWorkerContext.idl:
        * workers/Worker.idl:
        * workers/WorkerContext.idl:

2012-02-07  Kentaro Hara  <haraken@chromium.org>

        Rename [HasOverridingNameGetter] attribute to [CustomNamedGetter] attribute
        https://bugs.webkit.org/show_bug.cgi?id=78076

        Reviewed by Adam Barth.

        This patch renames the [HasOverridingNameGetter] attribute to the
        [CustomNamedGetter] attribute, for naming consistency with [CustomNamedSetter].

        Test: bindings/scripts/test/TestCustomNamedGetter.idl

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody):
        (GenerateGetOwnPropertyDescriptorBody):
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeaderNamedAndIndexedPropertyAccessors):
        (GenerateImplementationNamedPropertyGetter):

        * html/HTMLDocument.idl:
        * html/HTMLFormElement.idl:
        * html/HTMLFrameSetElement.idl:

        * bindings/scripts/test/TestCustomNamedGetter.idl: Renamed from Source/WebCore/bindings/scripts/test/TestOverridingNameGetter.idl.

        * bindings/scripts/test/CPP/WebDOMTestCustomNamedGetter.cpp: Updated run-bindings-tests results.
        (WebDOMTestCustomNamedGetter::WebDOMTestCustomNamedGetterPrivate::WebDOMTestCustomNamedGetterPrivate):
        (WebDOMTestCustomNamedGetter::WebDOMTestCustomNamedGetterPrivate):
        (WebDOMTestCustomNamedGetter::WebDOMTestCustomNamedGetter):
        (WebDOMTestCustomNamedGetter::operator=):
        (WebDOMTestCustomNamedGetter::impl):
        (WebDOMTestCustomNamedGetter::~WebDOMTestCustomNamedGetter):
        (WebDOMTestCustomNamedGetter::anotherFunction):
        (toWebCore):
        (toWebKit):
        * bindings/scripts/test/CPP/WebDOMTestCustomNamedGetter.h: Ditto.
        (WebCore):
        (WebDOMTestCustomNamedGetter):
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp: Ditto.
        (WebKit):
        (WebKit::kit):
        (webkit_dom_test_custom_named_getter_another_function):
        (WebKit::core):
        (webkit_dom_test_custom_named_getter_finalize):
        (webkit_dom_test_custom_named_getter_set_property):
        (webkit_dom_test_custom_named_getter_get_property):
        (webkit_dom_test_custom_named_getter_constructed):
        (webkit_dom_test_custom_named_getter_class_init):
        (webkit_dom_test_custom_named_getter_init):
        (WebKit::wrapTestCustomNamedGetter):
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h: Ditto.
        (_WebKitDOMTestCustomNamedGetter):
        (_WebKitDOMTestCustomNamedGetterClass):
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h: Ditto.
        (WebKit):
        * bindings/scripts/test/GObject/WebKitDOMTestOverridingNameGetter.h: Ditto.
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: Ditto.
        (WebCore):
        (WebCore::JSTestCustomNamedGetterConstructor::JSTestCustomNamedGetterConstructor):
        (WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
        (WebCore::JSTestCustomNamedGetterConstructor::getOwnPropertySlot):
        (WebCore::JSTestCustomNamedGetterConstructor::getOwnPropertyDescriptor):
        (WebCore::JSTestCustomNamedGetterPrototype::self):
        (WebCore::JSTestCustomNamedGetterPrototype::getOwnPropertySlot):
        (WebCore::JSTestCustomNamedGetterPrototype::getOwnPropertyDescriptor):
        (WebCore::JSTestCustomNamedGetter::JSTestCustomNamedGetter):
        (WebCore::JSTestCustomNamedGetter::finishCreation):
        (WebCore::JSTestCustomNamedGetter::createPrototype):
        (WebCore::JSTestCustomNamedGetter::destroy):
        (WebCore::JSTestCustomNamedGetter::getOwnPropertySlot):
        (WebCore::JSTestCustomNamedGetter::getOwnPropertyDescriptor):
        (WebCore::jsTestCustomNamedGetterConstructor):
        (WebCore::JSTestCustomNamedGetter::getConstructor):
        (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
        (WebCore::isObservable):
        (WebCore::JSTestCustomNamedGetterOwner::isReachableFromOpaqueRoots):
        (WebCore::JSTestCustomNamedGetterOwner::finalize):
        (WebCore::toJS):
        (WebCore::toTestCustomNamedGetter):
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h: Ditto.
        (WebCore):
        (JSTestCustomNamedGetter):
        (WebCore::JSTestCustomNamedGetter::create):
        (WebCore::JSTestCustomNamedGetter::createStructure):
        (WebCore::JSTestCustomNamedGetter::impl):
        (WebCore::JSTestCustomNamedGetter::releaseImpl):
        (WebCore::JSTestCustomNamedGetter::releaseImplIfNotNull):
        (JSTestCustomNamedGetterOwner):
        (WebCore::wrapperOwner):
        (WebCore::wrapperContext):
        (JSTestCustomNamedGetterPrototype):
        (WebCore::JSTestCustomNamedGetterPrototype::create):
        (WebCore::JSTestCustomNamedGetterPrototype::createStructure):
        (WebCore::JSTestCustomNamedGetterPrototype::JSTestCustomNamedGetterPrototype):
        (JSTestCustomNamedGetterConstructor):
        (WebCore::JSTestCustomNamedGetterConstructor::create):
        (WebCore::JSTestCustomNamedGetterConstructor::createStructure):
        * bindings/scripts/test/JS/JSTestOverridingNameGetter.cpp:
        * bindings/scripts/test/ObjC/DOMTestCustomNamedGetter.h: Ditto.
        * bindings/scripts/test/ObjC/DOMTestCustomNamedGetter.mm: Ditto.
        (-[DOMTestCustomNamedGetter dealloc]):
        (-[DOMTestCustomNamedGetter finalize]):
        (-[DOMTestCustomNamedGetter anotherFunction:]):
        (core):
        (kit):
        * bindings/scripts/test/ObjC/DOMTestCustomNamedGetterInternal.h: Ditto.
        (WebCore):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp: Ditto.
        (WebCore):
        (TestCustomNamedGetterInternal):
        (WebCore::TestCustomNamedGetterInternal::V8_USE):
        (WebCore::TestCustomNamedGetterInternal::anotherFunctionCallback):
        (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
        (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
        (WebCore::V8TestCustomNamedGetter::GetTemplate):
        (WebCore::V8TestCustomNamedGetter::HasInstance):
        (WebCore::V8TestCustomNamedGetter::wrapSlow):
        (WebCore::V8TestCustomNamedGetter::derefObject):
        * bindings/scripts/test/V8/V8TestCustomNamedGetter.h: Ditto.
        (WebCore):
        (V8TestCustomNamedGetter):
        (WebCore::V8TestCustomNamedGetter::toNative):
        (WebCore::V8TestCustomNamedGetter::existingWrapper):
        (WebCore::V8TestCustomNamedGetter::wrap):
        (WebCore::toV8):

2012-02-07  Emil A Eklund  <eae@chromium.org>

        Revert TableSection cell and border calculations to integers
        https://bugs.webkit.org/show_bug.cgi?id=77918

        Reviewed by Eric Seidel.

        Change RenderTableSection cell width, row height and border calculations
        back to use integers. Table layout is done on integer bounds to comply
        with the specification and to ensure that columns given the same width,
        including percentage widths, are rendered with identical widths. The same
        applies to heights.

        No new tests.

        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::setCellLogicalWidths):
        (WebCore::RenderTableSection::calcRowLogicalHeight):
        (WebCore::RenderTableSection::layoutRows):
        (WebCore::RenderTableSection::calcOuterBorderBefore):
        (WebCore::RenderTableSection::calcOuterBorderAfter):
        (WebCore::RenderTableSection::calcOuterBorderStart):
        (WebCore::RenderTableSection::calcOuterBorderEnd):
        (WebCore::RenderTableSection::paintObject):
        (WebCore::RenderTableSection::nodeAtPoint):
        * rendering/RenderTableSection.h:
        (RenderTableSection):
        (WebCore::RenderTableSection::RowStruct::RowStruct):
        (WebCore::RenderTableSection::outerBorderBefore):
        (WebCore::RenderTableSection::outerBorderAfter):
        (WebCore::RenderTableSection::outerBorderStart):
        (WebCore::RenderTableSection::outerBorderEnd):

2012-02-07  Robert Kroeger  <rjkroege@chromium.org>

        [chromium] Remove the no longer necessary Chromium gesture recognizer.
        https://bugs.webkit.org/show_bug.cgi?id=77492

        Reviewed by Adam Barth.

        * WebCore.gypi:
        * platform/PlatformGestureRecognizer.h: Removed.
        * platform/chromium/FramelessScrollView.h:
        (WebCore):
        (FramelessScrollView):
        * platform/chromium/GestureRecognizerChromium.cpp: Removed.
        * platform/chromium/GestureRecognizerChromium.h: Removed.
        * platform/chromium/PopupContainer.cpp:
        (WebCore):
        * platform/chromium/PopupContainer.h:
        * platform/chromium/PopupListBox.cpp:
        (WebCore):
        * platform/chromium/PopupListBox.h:
        (PopupListBox):

2012-02-07  Erik Arvidsson  <arv@chromium.org>

        [V8] Allow bindings for attributes on DOM nodes to also set a named hidden reference
        https://bugs.webkit.org/show_bug.cgi?id=78052

        Reviewed by Nate Chapin.

        Before this patch the code generator did not add the named hidden reference when the data node
        was a DOM Node. This lead to us having to create custom toV8 bindings in a few places.

        Covered by existing tests

        * Target.pri:
        * UseV8.cmake:
        * WebCore.gypi:
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (HasCustomToV8Implementation):
        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
        * bindings/v8/custom/V8DOMTokenListCustom.cpp: Removed.
        * bindings/v8/custom/V8NamedNodeMapCustom.cpp:

2012-02-07  Kentaro Hara  <haraken@chromium.org>

        [GTK] Ignore [Custom] attributes in CodeGeneratorGObject.pm
        https://bugs.webkit.org/show_bug.cgi?id=78059

        Reviewed by Adam Barth.

        CodeGeneratorGObject.pm does not support custom attributes.
        We can skip generating code for attributes with [Custom].
        The change would make sense, since CodeGeneratorGObject.pm already
        skips attributes with [CustomGetter] or [CustomSetter].

        Test: bindings/scripts/test/TestObj.idl

        * bindings/scripts/CodeGeneratorGObject.pm:
        (SkipAttribute):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

2012-02-07  Emil A Eklund  <eae@chromium.org>

        Add pixelSnappedX/Y/Width/Height methods
        https://bugs.webkit.org/show_bug.cgi?id=78040

        Reviewed by Eric Seidel.

        Add pixel snapped versions of x/y/width/height methods. These return the
        same value as the x/w/width/height methods for now but once we move over
        to sub pixel layout they will snap the subpixel value to a device pixel
        and return an integer value.

        When snapping the left and top edge is simply rounded to the nearest
        device pixel.
        The right and bottom edges are computed by subtracting the rounded left/
        top edge from the precise location and size. This ensures that the edges
        all line up with device pixels and that the total size of an object,
        including borders, is at most one pixel off.

        In summary, the values are computed as follows:
                x: round(x)
                y: round(y)
                maxX: round(x + width)
                maxY: round(y + height)
                width: round(x + width) - round(x)
                height: round(y + height) - round(y)

        We use the term pixel snapped to indicate that the numbers are not merely
        rounded. This also matches the naming used by the line box tree.

        No new tests, no functionality changes.

        * page/PrintContext.cpp:
        (WebCore::PrintContext::pageNumberForElement):
        * rendering/RenderBlock.cpp:
        (WebCore::::collectIfNeeded):
        * rendering/RenderBlock.h:
        (RenderBlock):
        (WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine):
        (WebCore::RenderBlock::pixelSnappedLogicalLeftOffsetForLine):
        (WebCore::RenderBlock::FloatingObject::pixelSnappedX):
        (WebCore::RenderBlock::FloatingObject::pixelSnappedMaxX):
        (WebCore::RenderBlock::FloatingObject::pixelSnappedY):
        (WebCore::RenderBlock::FloatingObject::pixelSnappedMaxY):
        (WebCore::RenderBlock::FloatingObject::pixelSnappedWidth):
        (WebCore::RenderBlock::FloatingObject::pixelSnappedHeight):
        (FloatingObject):
        (WebCore::RenderBlock::pixelSnappedLogicalTopForFloat):
        (WebCore::RenderBlock::pixelSnappedLogicalBottomForFloat):
        (WebCore::RenderBlock::pixelSnappedLogicalLeftForFloat):
        (WebCore::RenderBlock::pixelSnappedLogicalRightForFloat):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::pixelSnappedClientWidth):
        (WebCore):
        (WebCore::RenderBox::pixelSnappedClientHeight):
        (WebCore::RenderBox::scrollHeight):
        * rendering/RenderBox.h:
        (WebCore::RenderBox::pixelSnappedWidth):
        (WebCore::RenderBox::pixelSnappedHeight):
        (RenderBox):
        (WebCore::RenderBox::pixelSnappedOffsetWidth):
        (WebCore::RenderBox::pixelSnappedOffsetHeight):
        (WebCore::RenderBox::clientLogicalWidth):
        (WebCore::RenderBox::clientLogicalHeight):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::pixelSnappedOffsetWidth):
        (WebCore):
        (WebCore::RenderBoxModelObject::pixelSnappedOffsetHeight):
        * rendering/RenderBoxModelObject.h:
        (WebCore::RenderBoxModelObject::pixelSnappedOffsetLeft):
        (WebCore::RenderBoxModelObject::pixelSnappedOffsetTop):
        (RenderBoxModelObject):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::pixelSnappedScrollWidth):
        (WebCore):
        (WebCore::RenderLayer::pixelSnappedScrollHeight):
        (WebCore::RenderLayer::computeScrollDimensions):
        (WebCore::RenderLayer::updateScrollInfoAfterLayout):
        * rendering/RenderLayer.h:
        (RenderLayer):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::scrollHeight):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::write):

2012-02-07  Mike Lawther  <mikelawther@chromium.org>

        CSS3 calc() - simple parse time evaluation
        https://bugs.webkit.org/show_bug.cgi?id=77960

        Adds simple number/percent expression evaluation. rgb() and hsl() functions now
        allow simple calc() expressions.

        Reviewed by Ojan Vafai.

        * css/CSSCalculationValue.cpp:
        (WebCore):
        (WebCore::CSSCalcValue::doubleValue):
        (WebCore::CSSCalcPrimitiveValue::doubleValue):
        (WebCore::CSSCalcBinaryOperation::doubleValue):
        (CSSCalcBinaryOperation):
        (WebCore::CSSCalcBinaryOperation::evaluate):
        * css/CSSCalculationValue.h:
        (CSSCalcExpressionNode):
        (WebCore::CSSCalcValue::isInt):
        (CSSCalcValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parsedDouble):

2012-02-07  Andreas Kling  <awesomekling@apple.com>

        REGRESSION(r106668-r106889): Chromium page cycler tests (Intl2) performance regressions.
        <http://webkit.org/b/78068>

        Reviewed by Ryosuke Niwa.

        Create CSS_IDENT values for attribute styles in the document's CSSValuePool.
        This regressed in r106756 and I suspect it'll fix up the cycler regression.

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::addCSSProperty):

2012-02-07  Noel Gordon  <noel.gordon@gmail.com>

        Remove TextureMapperQt from the gyp projects
        https://bugs.webkit.org/show_bug.cgi?id=78055

        Reviewed by Noam Rosenthal.

        TextureMapperQt.{cpp,h} were removed in r106659, remove references to
        these files from the gyp projects.

        * WebCore.gypi:

2012-02-07  Tony Chang  <tony@chromium.org>

        merge DashboardSupportCSSPropertyNames.in into CSSPropertyNames.in
        https://bugs.webkit.org/show_bug.cgi?id=78036

        Reviewed by Darin Adler.

        In r89362, we started running the preprocessor through CSSPropertyNames.in.
        Now we can move DashboardSupportCSSPropertyNames.in into CSSPropertyNames.in
        and wrap it in an #if.

        No new tests, build refactoring.

        * Configurations/FeatureDefines.xcconfig: Add ENABLE_DASHBOARD_SUPPORT to FEATURE_DEFINES.
        * DerivedSources.make: Remove DashboardSupportCSSPropertyNames.in.
        * DerivedSources.pri: Remove DashboardSupportCSSPropertyNames.in.
        * WebCore.xcodeproj/project.pbxproj: Remove DashboardSupportCSSPropertyNames.in.
        * css/CSSPropertyNames.in: Wrap -webkit-dashboard-region in an #if.
        * css/DashboardSupportCSSPropertyNames.in: Removed.

2012-02-07  Xingnan Wang  <xingnan.wang@intel.com>

        Enable IPP for FFTFrame
        https://bugs.webkit.org/show_bug.cgi?id=75522

        Reviewed by Tony Chang.

        Add the FFTFrame implementation using Intel IPP's DFT algorithm.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * platform/audio/FFTFrame.h:
        (FFTFrame):
        * platform/audio/FFTFrameStub.cpp:
        * platform/audio/ipp/FFTFrameIPP.cpp: Added.
        (WebCore):
        (WebCore::FFTFrame::FFTFrame):
        (WebCore::FFTFrame::initialize):
        (WebCore::FFTFrame::cleanup):
        (WebCore::FFTFrame::~FFTFrame):
        (WebCore::FFTFrame::multiply):
        (WebCore::FFTFrame::doFFT):
        (WebCore::FFTFrame::doInverseFFT):
        (WebCore::FFTFrame::realData):
        (WebCore::FFTFrame::imagData):
        (WebCore::FFTFrame::getUpToDateComplexData):

2012-02-07  Adrienne Walker  <enne@google.com>

        Properly detect top level frames when propogating compositing
        https://bugs.webkit.org/show_bug.cgi?id=78033

        Reviewed by James Robinson.

        There's no need to enumerate all tag names when searching for a
        top-level frame. If a render view's document has a frame, then that
        frame is not the top-level one.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame):
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor):

2012-02-07  Chris Palmer  <palmer@google.com>

        Resolve crash in FrameLoader::checkTimerFired.
        https://bugs.webkit.org/show_bug.cgi?id=77907

        Reviewed by Eric Seidel.

        Test is LayoutTests/http/tests/appcache/deferred-events-delete-while-raising-timer.html.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::checkTimerFired):

2012-02-07  Yong Li  <yoli@rim.com>

        [BlackBerry] NetworkJob should stop redirecting when the request is cleared by client
        https://bugs.webkit.org/show_bug.cgi?id=78029

        Reviewed by Rob Buis.

        When a redirect is rejected by security origin check, the ResourceRequest
        will be cleared (see DocumentThreadableLoader::redirectReceived()). In this
        case, we should stop handling the request.

        No new tests because existing tests (like http:/tests/xmlhttprequest/redirect-cross
        -origin-tripmine.html) can cover this.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::startNewJobWithRequest):

2012-02-07  David Barton  <dbarton@mathscribe.com>

        Remove extraneous MathML code before bug 52444 fix
        https://bugs.webkit.org/show_bug.cgi?id=78034

        Reviewed by Eric Seidel.
        
        Per Darin Adler, I am breaking up the patch fixing bug 52444 into smaller pieces.
        This patch removes a couple unused functions, some extra blank lines, unused #include
        directives, etc., and adds a very few WebKit-standard changes to these files.

        No new tests.

        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore):
        * rendering/mathml/RenderMathMLBlock.h:
        (WebCore::RenderMathMLBlock::getBoxModelObjectHeight):
            - changed to a static member function since 'this' is unused;
              removed redundant non-const version
        (WebCore::RenderMathMLBlock::getBoxModelObjectWidth):
            - changed to a static member function since 'this' is unused;
              removed redundant non-const version
        (WebCore):
        * rendering/mathml/RenderMathMLFraction.cpp:
        * rendering/mathml/RenderMathMLMath.cpp:
        * rendering/mathml/RenderMathMLMath.h:
        * rendering/mathml/RenderMathMLOperator.h:
        (WebCore):
        * rendering/mathml/RenderMathMLRoot.cpp:
        * rendering/mathml/RenderMathMLRow.cpp:
        * rendering/mathml/RenderMathMLRow.h:
        * rendering/mathml/RenderMathMLSquareRoot.cpp:
        * rendering/mathml/RenderMathMLSquareRoot.h:
        * rendering/mathml/RenderMathMLSubSup.cpp:
        * rendering/mathml/RenderMathMLSubSup.h:
        * rendering/mathml/RenderMathMLUnderOver.cpp:
        * rendering/mathml/RenderMathMLUnderOver.h:

2012-02-07  David Reveman  <reveman@chromium.org>

        [Chromium] REGRESSION(r101854): Causing large amounts of unnecessary repainting.
        https://bugs.webkit.org/show_bug.cgi?id=78020

        Reviewed by James Robinson.

        Revert r101854.

        This patch is tested by the following unit test:
        - TextureManagerTest.requestTextureExceedingPreferredLimit

        * platform/graphics/chromium/ManagedTexture.cpp:
        (WebCore::ManagedTexture::reserve):
        * platform/graphics/chromium/TextureManager.cpp:
        (WebCore::TextureManager::requestTexture):
        * platform/graphics/chromium/TextureManager.h:
        (TextureManager):

2012-02-07  Anders Carlsson  <andersca@apple.com>

        Use the non-fast-scrollable region to detect when we can't do fast scrolling
        https://bugs.webkit.org/show_bug.cgi?id=78056
        <rdar://problem/10247932>

        Reviewed by Sam Weinig.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
        Actually set the non-fast scrollable region on the scrolling tree state.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::tryToHandleWheelEvent):
        Check if the wheel event's position is inside the non-fast-scrollable region
        and return false if it is.

        (WebCore::ScrollingTree::updateMainFrameScrollPosition):
        Store the cached main frame scroll position so we can use it in tryToHandleWheelEvent.

        * platform/graphics/Region.cpp:
        * platform/graphics/Region.h:
        Add a simple contains(const IntPoint&) member function.

2012-02-07  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/10475450> Synthetic bold is illegible under some scaling transforms
        https://bugs.webkit.org/show_bug.cgi?id=78044

        Reviewed by Beth Dakin.

        Tests: fast/text/synthetic-bold-transformed-expected.html
               fast/text/synthetic-bold-transformed.html

        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::drawGlyphs): Changed to interpret syntheticBoldOffset as a length in device pixels.

2012-02-07  Levi Weintraub  <leviw@chromium.org>

        Update LayoutUnit usage in ColumnInfo and RenderFrameSet
        https://bugs.webkit.org/show_bug.cgi?id=77914

        Reviewed by Eric Seidel.

        Updating ColumnInfo and RenderFrameSet to use LayoutUnits
        instead of directly referencing integers for locations and
        distances.

        No new tests. No changed behavior.

        * rendering/ColumnInfo.h:
        (WebCore::ColumnInfo::forcedBreakOffset):
        (WebCore::ColumnInfo::maximumDistanceBetweenForcedBreaks):
        (ColumnInfo):
        * rendering/RenderFrameSet.cpp:
        (WebCore::RenderFrameSet::paintColumnBorder):
        (WebCore::RenderFrameSet::paintRowBorder):
        * rendering/RenderFrameSet.h:
        (RenderFrameSet):

2012-02-07  Adam Klein  <adamk@chromium.org>

        Add JSC support for delivering mutations when the outermost script context exits
        https://bugs.webkit.org/show_bug.cgi?id=70289

        Reviewed by Eric Seidel.

        The meat of this change is in JSMainThreadExecState, where a counter
        is incremented every time WebCore calls into JSC and decremented every
        time it returns. When the counter reaches zero, any pending mutations
        are delivered (this mirrors very similar code in V8Proxy and V8RecursionScope).

        The rest of the changes are of two sorts: compilation/logic fixes for
        JSC code when ENABLE(MUTATION_OBSERVERS) is true, and additional
        usages of JSMainThreadExecState so as to trigger the above
        increment/decrements at the appropriate times.

        * bindings/js/JSCustomXPathNSResolver.cpp:
        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
        Use JSMainThreadExecState instead of JSC::call.
        * bindings/js/JSDictionary.cpp:
        (WebCore::JSDictionary::convertValue): Add support
        for tryGetProperty with a HashMap<AtomicString>.
        * bindings/js/JSDictionary.h:
        * bindings/js/JSErrorHandler.cpp:
        (WebCore::JSErrorHandler::handleEvent):
        Use JSMainThreadExecState instead of JSC::call.
        * bindings/js/JSHTMLDocumentCustom.cpp:
        (WebCore::JSHTMLDocument::open):
        Use JSMainThreadExecState instead of JSC::call.
        * bindings/js/JSMainThreadExecState.cpp:
        (WebCore::JSMainThreadExecState::didLeaveScriptContext):
        * bindings/js/JSMainThreadExecState.h:
        (WebCore::JSMainThreadExecState::JSMainThreadExecState):
        Increment a static recursion level counter.
        (WebCore::JSMainThreadExecState::~JSMainThreadExecState):
        Decrement a static recursion level counter and, if we are
        at zero (the outermost script invocation), deliver any
        outstanding mutation records.
        * bindings/js/JSNodeFilterCondition.cpp:
        (WebCore::JSNodeFilterCondition::acceptNode):
        Use JSMainThreadExecState instead of JSC::call.
        * bindings/js/JSWebKitMutationObserverCustom.cpp:
        (WebCore::JSWebKitMutationObserver::observe):
        Fix JSDictionary logic, add support for attributeFilter.

2012-02-07  Anders Carlsson  <andersca@apple.com>

        Fix build.

        * platform/ScrollableArea.h:
        (WebCore::ScrollableArea::scrollableAreaBoundingBox):

2012-02-07  Levi Weintraub  <leviw@chromium.org>

        [SVG] Use element disappears after scripted change
        https://bugs.webkit.org/show_bug.cgi?id=74392

        Reviewed by Eric Seidel.

        Solution uncovered by Nikolas Zimmermann. Removing an early return that caused
        SVGUseElements to not update the shadow root's style, and therefor not render
        correctly.

        Test: svg/custom/use-disappears-after-style-update.svg

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

2012-02-07  Kentaro Hara  <haraken@chromium.org>

        Rename [v8OnProto] IDL attribute to [V8OnProto] IDL attribute
        https://bugs.webkit.org/show_bug.cgi?id=77973

        Reviewed by Adam Barth.

        This patch renames [v8OnProto] to [V8OnProto], since V8 specific IDL
        attributes should be prefixed by "V8".

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateSingleBatchedAttribute):
        (GenerateImplementation):

2011-10-10  Jer Noble  <jer.noble@apple.com>

        media/audio-data-url.html test broken on Lion
        https://bugs.webkit.org/show_bug.cgi?id=69779

        Reviewed by Eric Carlson.

        Do not use "OpenForPlayback" attribute on data:// urls, as CoreMedia/QuickTime X cannot
        handle those URLs.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivateQTKit::createQTMovie):

2012-02-07  Anders Carlsson  <andersca@apple.com>

        Scrolling tree should keep track of region we can't do fast scrolling for
        https://bugs.webkit.org/show_bug.cgi?id=78050

        Reviewed by Dan Bernstein.

        We currently won't do fast scrolling for subframes and other types of scrollable areas.
        Because of this, we'll have the scrolling tree keep a region of the page for which we can't
        do fast scrolling. This region will be updated after layout.

        * page/FrameView.cpp:
        (WebCore::FrameView::scrollableAreaBoundingBox):
        Return the bounding box.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
        Go through all the scrollable areas in this frame view and compute the region which we can't do
        fast scrolling for.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::commitNewTreeState):
        Update the non-fast-scrollable region.

        * page/scrolling/ScrollingTreeState.cpp:
        (WebCore::ScrollingTreeState::setNonFastScrollableRegion):
        Set the non-fast-scrollable region if it's changed.

        * platform/ScrollableArea.h:
        Add scrollableAreaBoundingBox member function.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollableAreaBoundingBox):
        Return the bounding box.

        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::scrollableAreaBoundingBox):
        Return the bounding box.

2012-02-07  Levi Weintraub  <leviw@chromium.org>

        unicode-bidi:plaintext is supposed to be effective on display:inline elements too
        https://bugs.webkit.org/show_bug.cgi?id=73310

        Reviewed by Eric Seidel.

        Adding support for unicode-bidi: plaintext as a property on inlines. These are treated
        like unicode-bidi: isolate with the addition of their directionality being determined
        by the UBA.

        Tests: fast/text/international/inline-plaintext-is-isolated-expected.html
               fast/text/international/inline-plaintext-is-isolated.html
               fast/text/international/inline-plaintext-relayout-with-leading-neutrals-expected.html
               fast/text/international/inline-plaintext-relayout-with-leading-neutrals.html
               fast/text/international/inline-plaintext-with-generated-content-expected.html
               fast/text/international/inline-plaintext-with-generated-content.html

        * platform/text/UnicodeBidi.h:
        (WebCore::isIsolated): Added this convenience function as Plaintext and Isolate Unicode-Bidi values
        are both treated as isolated content.
        * rendering/InlineIterator.h:
        (WebCore::notifyObserverEnteredObject): Inline now supports Unicode-Bidi Plaintext.
        (WebCore::notifyObserverWillExitObject): Ditto.
        (WebCore::bidiFirstSkippingEmptyInlines): Changed to support being called without a resolver.
        (WebCore::isIsolatedInline): Inline now supports Unicode-Bidi: Plaintext.
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::determineDirectionality): Generalized for inlines.
        (WebCore::constructBidiRuns): Added support for Unicode-Bidi: Plaintext as an isolated inline.
        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Fixed comment.
        (WebCore::RenderBlock::determineStartPosition): Fixed comment and switched to updated
        bidiFirstSkippingEmptyInlines.

2012-02-07  Kentaro Hara  <haraken@chromium.org>

        [Refactoring] Use the [IsWorkerContext] IDL in CodeGeneratorV8.pm
        https://bugs.webkit.org/show_bug.cgi?id=77957

        Reviewed by Adam Barth.

        This patch replaces IsSubType("WorkerContext") and something equivalent that
        with the [IsWorkerContext] IDL.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GetInternalFields):
        (GenerateConstructorGetter):
        (GenerateImplementation):

2012-02-07  David Reveman  <reveman@chromium.org>

        [Chromium] Crash when using per-tile painting on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=75715

        Reviewed by James Robinson.

        PlatformCanvas constructor on win32 expects forth argument to be a
        shared section handle. Passing a pointer to a system memory causes
        it to crash. Fix this by not using the PlatformCanvas API for
        SkCanvas construction in per-tile texture uploader.

        Tested with manual tests.

        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::prepareRect):
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::updateRect):
        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
        (Texture):

2012-02-07  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix; make OSStatus the explicit return type for CMTimebase functions.

        * platform/mac/PlatformClockCM.mm:

2012-02-07  James Robinson  <jamesr@chromium.org>

        [chromium] Allow retaining texture across frames in composited video playback and correctly handle lost context
        https://bugs.webkit.org/show_bug.cgi?id=77923

        Reviewed by Kenneth Russell.

        Thanks to r106840, we can improve the video playback mode a bit. Instead of creating a new texture on every
        frame, this attempts to reuse the texture from the previous frame unless the context is lost. Also improves
        error checking in case the TextureManager cannot successfully reserve memory for the texture.

        Tested manually by killing the GPU process with an html5 video playing and verifying that the video playback
        continues and that we don't create a new set of textures for each plane on each frame.

        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
        (WebCore::CCVideoLayerImpl::draw):
        (WebCore::CCVideoLayerImpl::reserveTextures):

2012-02-07  Matthew Delaney  <mdelaney@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=77912
        Removing old CG shadow code.
        
        A CG-specific shadow offset hack was added in http://trac.webkit.org/changeset/34317
        for this particular setShadow method. However, this shadow offset adjustment for CG
        has since moved down into platform specific code. Thus, this offset adjustment here
        is now redundant.

        The CG-only shadow setting code block in this setShadow method is now redundant.
        Since it sets the shadow values to the CGContext directly - and not to the State object -
        it will be overwritten later by any subsequent calls to setting shadow values such as
        blur, offset, or shadow color.

        Reviewed by Simon Fraser.

        No new tests. Current canvas tests cover this path.

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

2012-02-07  James Robinson  <jamesr@chromium.org>

        [chromium] Gracefully handle compositor initialization failure in single-threaded proxy
        https://bugs.webkit.org/show_bug.cgi?id=78013

        Reviewed by Kenneth Russell.

        If compositor initialization fails it's not safe to proceed through the rest of the frame process. This adds
        some early outs.

        Tested manually by forcing the first makeContextCurrent() call fail.

        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::updateLayers):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (CCLayerTreeHost):
        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
        (WebCore::CCSingleThreadProxy::compositeAndReadback):
        (WebCore::CCSingleThreadProxy::compositeImmediately):
        (WebCore::CCSingleThreadProxy::commitIfNeeded):
        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
        (CCSingleThreadProxy):

2012-02-07  Brady Eidson  <beidson@apple.com>

        <rdar://problem/9567286> and https://bugs.webkit.org/show_bug.cgi?id=78003
        WebKit associates credentials with the wrong site if the authentication challenge takes place after a redirect chain

        Reviewed by Alexey Proskuryakov.

        Test: http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials.html

        Associate the credential with the URL of the challenge itself, not the original request:
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): 
        (WebCore::ResourceHandle::receivedCredential):
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
        (WebCore::ResourceHandle::receivedCredential):

2012-02-07  Tony Chang  <tony@chromium.org>

        move warning about css values and render style constants closer to where it applies
        https://bugs.webkit.org/show_bug.cgi?id=78017

        Reviewed by Darin Adler.

        Move the warning about keeping RenderStyleConstnats.h enums and
        CSSValueKeywords.in values in the same order closer to the properties
        that the warning applies to. The warning was easy to miss and was
        confusing since it doesn't apply to most values.

        Also refactor 2 conversion functions to
        enumerate the possible values so the order doesn't matter.

        No new tests, just refactoring and comment cleanup.

        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::operator EListStylePosition): Name all possible values and add a NOT_REACHED().
        (WebCore::CSSPrimitiveValue::operator EUserModify): Name all possible values and add a NOT_REACHED().
        * css/CSSValueKeywords.in:
        * css/SVGCSSPropertyNames.in:
        * css/SVGCSSValueKeywords.in:
        * rendering/style/RenderStyleConstants.h:

2012-02-06  Jer Noble  <jer.noble@apple.com>

        Use CMClock as a timing source for PlatformClock where available.
        https://bugs.webkit.org/show_bug.cgi?id=77885

        Reviewed by Eric Carlson.

        No new tests; performance improvement covered by existing test cases.

        * WebCore.xcodeproj/project.pbxproj:
        * platform/Clock.cpp:
        (Clock::create): Use PlatformClockCM if available.
        * platform/mac/PlatformClockCM.h: Added.
        (WebCore::PlatformClockCM::playRate):
        (WebCore::PlatformClockCM::isRunning):
        * platform/mac/PlatformClockCM.mm: Added.
        (PlatformClockCM::PlatformClockCM):
        (PlatformClockCM::initializeWithTimingSource):
        (PlatformClockCM::setCurrentTime):
        (PlatformClockCM::currentTime):
        (PlatformClockCM::setPlayRate):
        (PlatformClockCM::start):
        (PlatformClockCM::stop):

2012-02-06  Anders Carlsson  <andersca@apple.com>

        ScrollableAreaSet should be moved from Page to FrameView
        https://bugs.webkit.org/show_bug.cgi?id=62762

        Reviewed by Beth Dakin.

        It makes more sense for the set of scrollable areas to be per frame view instead of per page;
        scrollable areas are associated with a containing frame view and their lifecycle follows the lifecycle of the
        frame view much more closely. This could even fix a bunch of crashes where a scrollable area outlived its containing page.

        * WebCore.exp.in:
        Replace the Page member functions with FrameView member functions instead.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::mouseMoved):
        Check if the frame view contains the given layer.

        (WebCore::EventHandler::updateMouseEventTargetNode):
        Ditto.

        * page/FocusController.cpp:
        (WebCore::contentAreaDidShowOrHide):
        Add helper function.

        (WebCore::FocusController::setContainingWindowIsVisible):
        Call contentAreaDidShowOrHide for the main frame view, and for all scrollable areas
        inside all subframe views.

        * page/FrameView.cpp:
        (WebCore::FrameView::FrameView):
        Use early returns to make the code more clear. Also, don't add the scrollable area to the set here.

        (WebCore::FrameView::~FrameView):
        Don't remove the scrollable area here.

        (WebCore::FrameView::zoomAnimatorTransformChanged):
        m_page is gone so use m_frame->page() instead.

        (WebCore::FrameView::setAnimatorsAreActive):
        Call ScrollAnimator::setIsActive for all the scrollable areas in this frame view. Previously we used to do
        this for all scrollable areas on the page, but since setAnimatorsAreActive will be called for each document,
        this will be done implicitly.

        (WebCore::FrameView::notifyPageThatContentAreaWillPaint):
        Call ScrollableArea::contentDidPaint for this frame view and all its immediate scrollable areas. Previously, we used
        to do this for all scrollable areas on the page, but we only need to do it for this frame view.

        (WebCore::FrameView::scrollAnimatorEnabled):
        Get the page from m_frame since m_page is gone.

        (WebCore::FrameView::addScrollableArea):
        (WebCore::FrameView::removeScrollableArea):
        (WebCore::FrameView::containsScrollableArea):
        Move these member functions here from Page.

        (WebCore::FrameView::addChild):
        If we are adding a frame view, add it to the scrollable area set.

        (WebCore::FrameView::removeChild):
        If we are removing a frame view, remove it from the scrollable area set.

        * page/FrameView.h:
        Move the member function declarations and the scrollable area set member variable here from Page.

        * page/Page.cpp:
        (WebCore::Page::~Page):
        Don't call disconnectPage on the scrollable areas anymore.

        * platform/ScrollView.h:
        (ScrollView):
        Make addChild and removeChild virtual.

        * platform/ScrollableArea.h:
        Remove disconnectFromPage.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::~RenderLayer):
        (WebCore::RenderLayer::styleChanged):
        The frame view now keeps track of the scrollable areas.

        * rendering/RenderLayer.h:
        Remove the page member variable and disconnectFromPage.

        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::RenderListBox):
        (WebCore::RenderListBox::~RenderListBox):
        The frame view now keeps track of the scrollable areas.

        * rendering/RenderListBox.h:
        Remove the page member variable and disconnectFromPage.

2012-02-07  Matthew Delaney  <mdelaney@apple.com>

        Remove redundant checks in CanvasRenderingContext2D.cpp
        https://bugs.webkit.org/show_bug.cgi?id=78000

        Reviewed by Dan Bernstein.

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::setShadowColor):
        (WebCore::CanvasRenderingContext2D::setShadow):
        (WebCore::CanvasRenderingContext2D::drawImage):

2012-02-07  Abhishek Arya  <inferno@chromium.org>

        Crash in ContainerNode functions due to mutation events.
        https://bugs.webkit.org/show_bug.cgi?id=77999

        Reviewed by Ryosuke Niwa.

        Add RefPtr to protect premature deletion of this due to mutation events.

        Tests: fast/dom/remove-body-during-body-replacement.html
               fast/dom/remove-body-during-body-replacement2.html

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::insertBefore):
        (WebCore::ContainerNode::replaceChild):
        (WebCore::ContainerNode::removeChild):
        (WebCore::ContainerNode::appendChild):

2012-02-07  Dana Jansens  <danakj@chromium.org>

        [Chromium] Memory bug during occlusion tracking if Vector::append() needs to reallocate the buffer
        https://bugs.webkit.org/show_bug.cgi?id=77996

        Reviewed by James Robinson.

        We're holding onto the last element in the Vector and then calling
        append(). If append() reallocates the Vector's buffer, the pointer
        is no longer valid.

        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::enterTargetRenderSurface):

2012-02-07  Abhishek Arya  <inferno@chromium.org>

        Crash due to column style not updated on post block
        in splitInlines.
        https://bugs.webkit.org/show_bug.cgi?id=77939

        Reviewed by Julien Chaffraix.

        Test: fast/multicol/span/split-inline-wrong-post-block-crash.html

        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::splitFlow):

2012-02-07  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py: extend Array validator functionality
        https://bugs.webkit.org/show_bug.cgi?id=77919

        Patch by Peter Rybin <peter.rybin@gmail.com> on 2012-02-07
        Reviewed by Yury Semikhatsky.

        Array validator method runtimeCast is added, internal backing method
        is moved from .cpp to .h (it's template anyway), boolean validator is
        supported.

        * inspector/CodeGeneratorInspector.py:
        (RawTypes.Bool.get_validate_method_params.ValidateMethodParams):
        (RawTypes.Bool.get_validate_method_params):
        (TypeBuilder):

2012-02-07  Dean Jackson  <dino@apple.com>

        Apple/Safari: Enable WebGL multisampling on ATI cards
        for OS X 10.7.2 and above.
        https://bugs.webkit.org/show_bug.cgi?id=77922

        Address review comments by Alexey Proskuryakov and Mark Rowe.

        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::systemAllowsMultisamplingOnATICards):

2012-02-07  Dean Jackson  <dino@apple.com>

        Apple/Safari: Enable WebGL multisampling on ATI cards
        for OS X 10.7.2 and above.
        https://bugs.webkit.org/show_bug.cgi?id=77922

        Reviewed by Chris Marrin.

        Follow Chrome's lead to allow WebGL antialiasing
        on ATI cards as long as we're on 10.7.2 and above.

        No new tests. Covered by existing tests.

        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::systemAllowsMultisamplingOnATICards):
        (WebCore):
        (WebCore::GraphicsContext3D::validateAttributes):

2012-02-07  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: add generic support for undo-ing DOM edits.
        https://bugs.webkit.org/show_bug.cgi?id=77875

        Reviewed by Yury Semikhatsky.

        This change introduces InspectorHistory::Action that encapsulates all DOM modifications
        initiated by the inspector. There is a way to undo these actions up until the undoable
        state marker.

        Tests: inspector/elements/undo-dom-edits-2.html
               inspector/elements/undo-dom-edits.html
               inspector/styles/undo-add-property.html
               inspector/styles/undo-change-property.html
               inspector/styles/undo-property-toggle.html

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/Inspector.json:
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorCSSAgent.cpp:
        (InspectorCSSAgent::StyleSheetAction):
        (WebCore::InspectorCSSAgent::StyleSheetAction::StyleSheetAction):
        (WebCore::InspectorCSSAgent::StyleSheetAction::perform):
        (WebCore::InspectorCSSAgent::StyleSheetAction::undo):
        (WebCore):
        (InspectorCSSAgent::SetStyleSheetTextAction):
        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::SetStyleSheetTextAction):
        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::perform):
        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::undo):
        (InspectorCSSAgent::SetPropertyTextAction):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::SetPropertyTextAction):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::toString):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::perform):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::undo):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::mergeId):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::merge):
        (InspectorCSSAgent::TogglePropertyAction):
        (WebCore::InspectorCSSAgent::TogglePropertyAction::TogglePropertyAction):
        (WebCore::InspectorCSSAgent::TogglePropertyAction::perform):
        (WebCore::InspectorCSSAgent::TogglePropertyAction::undo):
        (WebCore::InspectorCSSAgent::getStyleSheetText):
        (WebCore::InspectorCSSAgent::setStyleSheetText):
        (WebCore::InspectorCSSAgent::setPropertyText):
        (WebCore::InspectorCSSAgent::toggleProperty):
        * inspector/InspectorCSSAgent.h:
        (InspectorCSSAgent):
        * inspector/InspectorDOMAgent.cpp:
        (InspectorDOMAgent::DOMAction):
        (WebCore::InspectorDOMAgent::DOMAction::DOMAction):
        (WebCore::InspectorDOMAgent::DOMAction::perform):
        (WebCore::InspectorDOMAgent::DOMAction::undo):
        (WebCore):
        (InspectorDOMAgent::RemoveChildAction):
        (WebCore::InspectorDOMAgent::RemoveChildAction::RemoveChildAction):
        (WebCore::InspectorDOMAgent::RemoveChildAction::perform):
        (WebCore::InspectorDOMAgent::RemoveChildAction::undo):
        (InspectorDOMAgent::InsertBeforeAction):
        (WebCore::InspectorDOMAgent::InsertBeforeAction::InsertBeforeAction):
        (WebCore::InspectorDOMAgent::InsertBeforeAction::perform):
        (WebCore::InspectorDOMAgent::InsertBeforeAction::undo):
        (InspectorDOMAgent::RemoveAttributeAction):
        (WebCore::InspectorDOMAgent::RemoveAttributeAction::RemoveAttributeAction):
        (WebCore::InspectorDOMAgent::RemoveAttributeAction::perform):
        (WebCore::InspectorDOMAgent::RemoveAttributeAction::undo):
        (InspectorDOMAgent::SetAttributeAction):
        (WebCore::InspectorDOMAgent::SetAttributeAction::SetAttributeAction):
        (WebCore::InspectorDOMAgent::SetAttributeAction::perform):
        (WebCore::InspectorDOMAgent::SetAttributeAction::undo):
        (InspectorDOMAgent::SetOuterHTMLAction):
        (WebCore::InspectorDOMAgent::SetOuterHTMLAction::SetOuterHTMLAction):
        (WebCore::InspectorDOMAgent::SetOuterHTMLAction::perform):
        (WebCore::InspectorDOMAgent::SetOuterHTMLAction::undo):
        (WebCore::InspectorDOMAgent::SetOuterHTMLAction::newNode):
        (InspectorDOMAgent::ReplaceWholeTextAction):
        (WebCore::InspectorDOMAgent::ReplaceWholeTextAction::ReplaceWholeTextAction):
        (WebCore::InspectorDOMAgent::ReplaceWholeTextAction::perform):
        (WebCore::InspectorDOMAgent::ReplaceWholeTextAction::undo):
        (WebCore::InspectorDOMAgent::InspectorDOMAgent):
        (WebCore::InspectorDOMAgent::reset):
        (WebCore::InspectorDOMAgent::setAttributeValue):
        (WebCore::InspectorDOMAgent::setAttributesAsText):
        (WebCore::InspectorDOMAgent::removeAttribute):
        (WebCore::InspectorDOMAgent::removeNode):
        (WebCore::InspectorDOMAgent::setNodeName):
        (WebCore::InspectorDOMAgent::setOuterHTML):
        (WebCore::InspectorDOMAgent::setNodeValue):
        (WebCore::InspectorDOMAgent::moveTo):
        (WebCore::InspectorDOMAgent::undo):
        (WebCore::InspectorDOMAgent::markUndoableState):
        * inspector/InspectorDOMAgent.h:
        (InspectorDOMAgent):
        (WebCore::InspectorDOMAgent::history):
        * inspector/InspectorHistory.cpp: Added.
        (WebCore::InspectorHistory::Action::Action):
        (WebCore):
        (WebCore::InspectorHistory::Action::~Action):
        (WebCore::InspectorHistory::Action::toString):
        (WebCore::InspectorHistory::Action::isUndoableStateMark):
        (WebCore::InspectorHistory::Action::mergeId):
        (WebCore::InspectorHistory::Action::merge):
        (WebCore::InspectorHistory::InspectorHistory):
        (WebCore::InspectorHistory::~InspectorHistory):
        (WebCore::InspectorHistory::perform):
        (WebCore::InspectorHistory::markUndoableState):
        (WebCore::InspectorHistory::undo):
        (WebCore::InspectorHistory::reset):
        * inspector/InspectorHistory.h: Added.
        (WebCore):
        (InspectorHistory):
        (Action):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyle::setPropertyText):
        (WebCore::InspectorStyle::styleText):
        (WebCore::InspectorStyleSheet::addRule):
        (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
        (WebCore::InspectorStyleSheet::buildObjectForStyle):
        (WebCore::InspectorStyleSheet::setPropertyText):
        (WebCore::InspectorStyleSheet::getText):
        (WebCore::InspectorStyleSheetForInlineStyle::getText):
        * inspector/InspectorStyleSheet.h:
        (InspectorStyle):
        (InspectorStyleSheet):
        (InspectorStyleSheetForInlineStyle):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSProperty.prototype.setText):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype._selectedNodeChanged):
        (WebInspector.ElementsPanel.prototype._updateSidebars):
        (WebInspector.ElementsPanel.prototype.handleShortcut):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertiesSection.prototype.onpopulate):
        (WebInspector.StylePropertiesSection.prototype.addNewBlankProperty):
        (WebInspector.ComputedStylePropertiesSection.prototype.onpopulate):
        (WebInspector.StylePropertyTreeElement):
        (WebInspector.StylePropertyTreeElement.prototype):

2012-02-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r106935.
        http://trac.webkit.org/changeset/106935
        https://bugs.webkit.org/show_bug.cgi?id=77994

        "Crashes runMultiThread webkit_unit_test" (Requested by tonyg-
        cr on #webkit).

        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::setNeedsRedraw):
        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
        (WebCore::CCSingleThreadProxy::setNeedsRedraw):
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::setNeedsRedraw):
        * platform/graphics/chromium/cc/CCThreadProxy.h:
        (CCThreadProxy):

2012-02-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r106932.
        http://trac.webkit.org/changeset/106932
        https://bugs.webkit.org/show_bug.cgi?id=77988

        Breaks Mac bots (Requested by pfeldman on #webkit).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/Inspector.json:
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::getStyleSheetText):
        (WebCore::InspectorCSSAgent::setStyleSheetText):
        (WebCore::InspectorCSSAgent::setPropertyText):
        (WebCore::InspectorCSSAgent::toggleProperty):
        * inspector/InspectorCSSAgent.h:
        (InspectorCSSAgent):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::InspectorDOMAgent):
        (WebCore::InspectorDOMAgent::reset):
        (WebCore::InspectorDOMAgent::setAttributeValue):
        (WebCore::InspectorDOMAgent::setAttributesAsText):
        (WebCore::InspectorDOMAgent::removeAttribute):
        (WebCore::InspectorDOMAgent::removeNode):
        (WebCore::InspectorDOMAgent::setNodeName):
        (WebCore::InspectorDOMAgent::setOuterHTML):
        (WebCore::InspectorDOMAgent::setNodeValue):
        (WebCore::InspectorDOMAgent::moveTo):
        * inspector/InspectorDOMAgent.h:
        (InspectorDOMAgent):
        * inspector/InspectorHistory.cpp: Removed.
        * inspector/InspectorHistory.h: Removed.
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyle::setPropertyText):
        (WebCore::InspectorStyle::styleText):
        (WebCore::InspectorStyleSheet::addRule):
        (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
        (WebCore::InspectorStyleSheet::buildObjectForStyle):
        (WebCore::InspectorStyleSheet::setPropertyText):
        (WebCore::InspectorStyleSheet::text):
        (WebCore::InspectorStyleSheetForInlineStyle::text):
        * inspector/InspectorStyleSheet.h:
        (InspectorStyle):
        (InspectorStyleSheet):
        (InspectorStyleSheetForInlineStyle):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSProperty.prototype.setText):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype._selectedNodeChanged):
        (WebInspector.ElementsPanel.prototype.handleShortcut):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertiesSection.prototype.onpopulate):
        (WebInspector.StylePropertiesSection.prototype.addNewBlankProperty):
        (WebInspector.ComputedStylePropertiesSection.prototype.onpopulate):
        (WebInspector.StylePropertyTreeElement):
        (WebInspector.StylePropertyTreeElement.prototype):

2012-02-07  Priit Laes  <plaes@plaes.org>

        [GTK] Build failure with --enable-web-audio
        https://bugs.webkit.org/show_bug.cgi?id=77978

        Reviewed by Gustavo Noronha Silva.

        * GNUmakefile.list.am: Include AudioSourceProviderClient.h

2012-02-07  Alexei Filippov  <alexeif@chromium.org>

        Web Inspector: fix objects duplication when switching filter in heap profiler.
        https://bugs.webkit.org/show_bug.cgi?id=77974

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/DetailedHeapshotView.js:
        (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.populateChildren):

2012-02-07  Jonathan Backer  <backer@chromium.org>

        [chromium] Add setNeedsRedraw to WebWidget
        https://bugs.webkit.org/show_bug.cgi?id=77555

        Reviewed by James Robinson.

        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::setNeedsRedraw):
        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
        (WebCore::CCSingleThreadProxy::setNeedsRedraw):
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::setNeedsRedraw):
        (WebCore::CCThreadProxy::resetDamageTrackerOnImplThread):
        (WebCore):
        * platform/graphics/chromium/cc/CCThreadProxy.h:
        (CCThreadProxy):

2012-02-07  Michael Brüning  <michael.bruning@nokia.com>

        [Qt][WK2] Compute and set cache capacities using the current CacheModel
        https://bugs.webkit.org/show_bug.cgi?id=73918

        Reviewed by Kenneth Rohde Christiansen.

        No new tests. (build fix)

        * platform/qt/FileSystemQt.cpp:
        (WebCore::getVolumeFreeSizeForPath):

2012-02-07  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: add generic support for undo-ing DOM edits.
        https://bugs.webkit.org/show_bug.cgi?id=77875

        Reviewed by Yury Semikhatsky.

        This change introduces InspectorHistory::Action that encapsulates all DOM modifications
        initiated by the inspector. There is a way to undo these actions up until the undoable
        state marker.

        Tests: inspector/elements/undo-dom-edits-2.html
               inspector/elements/undo-dom-edits.html
               inspector/styles/undo-add-property.html
               inspector/styles/undo-change-property.html
               inspector/styles/undo-property-toggle.html

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/Inspector.json:
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorCSSAgent.cpp:
        (InspectorCSSAgent::StyleSheetAction):
        (WebCore::InspectorCSSAgent::StyleSheetAction::StyleSheetAction):
        (WebCore::InspectorCSSAgent::StyleSheetAction::perform):
        (WebCore::InspectorCSSAgent::StyleSheetAction::undo):
        (WebCore):
        (InspectorCSSAgent::SetStyleSheetTextAction):
        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::SetStyleSheetTextAction):
        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::perform):
        (WebCore::InspectorCSSAgent::SetStyleSheetTextAction::undo):
        (InspectorCSSAgent::SetPropertyTextAction):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::SetPropertyTextAction):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::toString):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::perform):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::undo):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::mergeId):
        (WebCore::InspectorCSSAgent::SetPropertyTextAction::merge):
        (InspectorCSSAgent::TogglePropertyAction):
        (WebCore::InspectorCSSAgent::TogglePropertyAction::TogglePropertyAction):
        (WebCore::InspectorCSSAgent::TogglePropertyAction::perform):
        (WebCore::InspectorCSSAgent::TogglePropertyAction::undo):
        (WebCore::InspectorCSSAgent::getStyleSheetText):
        (WebCore::InspectorCSSAgent::setStyleSheetText):
        (WebCore::InspectorCSSAgent::setPropertyText):
        (WebCore::InspectorCSSAgent::toggleProperty):
        * inspector/InspectorCSSAgent.h:
        (InspectorCSSAgent):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::InspectorDOMAgent):
        (WebCore::InspectorDOMAgent::reset):
        (WebCore::InspectorDOMAgent::setAttributeValue):
        (WebCore::InspectorDOMAgent::setAttributesAsText):
        (WebCore::InspectorDOMAgent::removeAttribute):
        (WebCore::InspectorDOMAgent::removeNode):
        (WebCore::InspectorDOMAgent::setNodeName):
        (WebCore::InspectorDOMAgent::setOuterHTML):
        (WebCore::InspectorDOMAgent::setNodeValue):
        (WebCore::InspectorDOMAgent::moveTo):
        (WebCore::InspectorDOMAgent::undo):
        (WebCore):
        (WebCore::InspectorDOMAgent::markUndoableState):
        * inspector/InspectorDOMAgent.h:
        (InspectorDOMAgent):
        (WebCore::InspectorDOMAgent::history):
        * inspector/InspectorHistory.cpp: Added.
        (WebCore::InspectorHistory::Action::Action):
        (WebCore):
        (WebCore::InspectorHistory::Action::~Action):
        (WebCore::InspectorHistory::Action::toString):
        (WebCore::InspectorHistory::Action::isUndoableStateMark):
        (WebCore::InspectorHistory::Action::mergeId):
        (WebCore::InspectorHistory::Action::merge):
        (WebCore::InspectorHistory::InspectorHistory):
        (WebCore::InspectorHistory::~InspectorHistory):
        (WebCore::InspectorHistory::perform):
        (WebCore::InspectorHistory::markUndoableState):
        (WebCore::InspectorHistory::undo):
        (WebCore::InspectorHistory::reset):
        * inspector/InspectorHistory.h: Added.
        (WebCore):
        (InspectorHistory):
        (Action):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyle::setPropertyText):
        (WebCore::InspectorStyle::styleText):
        (WebCore::InspectorStyleSheet::addRule):
        (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
        (WebCore::InspectorStyleSheet::buildObjectForStyle):
        (WebCore::InspectorStyleSheet::setPropertyText):
        (WebCore::InspectorStyleSheet::getText):
        (WebCore::InspectorStyleSheetForInlineStyle::getText):
        * inspector/InspectorStyleSheet.h:
        (InspectorStyle):
        (InspectorStyleSheet):
        (InspectorStyleSheetForInlineStyle):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSProperty.prototype.setText):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype._selectedNodeChanged):
        (WebInspector.ElementsPanel.prototype._updateSidebars):
        (WebInspector.ElementsPanel.prototype.handleShortcut):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertiesSection.prototype.onpopulate):
        (WebInspector.StylePropertiesSection.prototype.addNewBlankProperty):
        (WebInspector.ComputedStylePropertiesSection.prototype.onpopulate):
        (WebInspector.StylePropertyTreeElement):
        (WebInspector.StylePropertyTreeElement.prototype):

2012-02-07  Chris Guan  <chris.guan@torchmobile.com.cn>

        [Blackberry] Clean up Networkjob and Networkmanger: remove unused variables in release build and change some public functions into be private ones
        https://bugs.webkit.org/show_bug.cgi?id=77926

        Reviewed by Rob Buis.

        1. rename clientIsOk to isClientAvailable.
        2. m_isRunning is only for an ASSERT in NetWorkManager, So move out from
        release build but keep available in debug build.
        
        No changes in behavior, so no new tests.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::NetworkJob):
        (WebCore::NetworkJob::handleNotifyDataReceived):
        (WebCore::NetworkJob::handleNotifyDataSent):
        (WebCore::NetworkJob::handleNotifyClose):
        (WebCore::NetworkJob::startNewJobWithRequest):
        (WebCore::NetworkJob::sendResponseIfNeeded):
        (WebCore::NetworkJob::sendMultipartResponseIfNeeded):
        * platform/network/blackberry/NetworkJob.h:
        (NetworkJob):
        (WebCore::NetworkJob::isClientAvailable):

2012-02-06  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: don't mark object is queriable if it is only reachable by internal reference
        https://bugs.webkit.org/show_bug.cgi?id=77877

        Reviewed by Pavel Feldman.

        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):

2012-02-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r106909.
        http://trac.webkit.org/changeset/106909
        https://bugs.webkit.org/show_bug.cgi?id=77965

        ~20 tests are crashing on chromium win release bot. (Requested
        by loislo on #webkit).

        * html/HTMLDetailsElement.cpp:
        (WebCore::HTMLDetailsElement::createShadowSubtree):
        * html/HTMLKeygenElement.cpp:
        (WebCore::HTMLKeygenElement::HTMLKeygenElement):
        * html/HTMLMeterElement.cpp:
        (WebCore::HTMLMeterElement::createShadowSubtree):
        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::createShadowSubtree):
        * html/HTMLSummaryElement.cpp:
        (WebCore::HTMLSummaryElement::createShadowSubtree):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::createShadowSubtree):

2012-02-07  Andreas Kling  <awesomekling@apple.com>

        REGRESSION(r106819): ~28% or so performance regression on the ManInBlue HTML benchmark
        <http://webkit.org/b/77952>

        Reviewed by Andreas Kling.
        Patch by Ryosuke Niwa.

        The performance regression was caused by using ensureAttributeData() which forces the
        regeneration of invalidated attributes ("style" and SVG animatable attributes.)
        Added an ensureAttributeDataWithoutUpdate() helper that only ensures the presence
        of ElementAttributeData, not the validity of its contents. Use that when grabbing
        at an element's inline and attribute styles.

        * dom/Element.h:
        (Element):
        (WebCore::Element::ensureAttributeDataWithoutUpdate):
        * dom/StyledElement.h:
        (WebCore::StyledElement::ensureInlineStyleDecl):
        (WebCore::StyledElement::ensureAttributeStyle):

2012-02-07  Michael Brüning  <michael.bruning@nokia.com>

        [Qt][WK2] Compute and set cache capacities using the current CacheModel
        https://bugs.webkit.org/show_bug.cgi?id=73918

        Reviewed by Csaba Osztrogonác.

        No new tests. (build fix).

        * platform/qt/FileSystemQt.cpp:

2012-02-07  Michael Brüning  <michael.bruning@nokia.com>

        [Qt][WK2] Compute and set cache capacities using the current CacheModel
        https://bugs.webkit.org/show_bug.cgi?id=73918

        Reviewed by Kenneth Rohde Christiansen.

        No new tests. (Not applicable)

        Added OS-specific implementation for retrieving the free disk space.

        * platform/FileSystem.h:
        (WebCore):
        * platform/qt/FileSystemQt.cpp:
        (WebCore::getVolumeFreeSizeForPath):
        (WebCore):

2012-02-07  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        [Inspector] Add the Nokia N9 user agent
        https://bugs.webkit.org/show_bug.cgi?id=77949

        Reviewed by Simon Hausmann.

        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsScreen.prototype._createUserAgentSelectRowElement.get const):

2012-02-07  Alexander Pavlov  <apavlov@chromium.org>

        [CRASH] bool EventHandler::dispatchSyntheticTouchEventIfEnabled(const PlatformMouseEvent& event) references a NULL pointer
        https://bugs.webkit.org/show_bug.cgi?id=77953

        Reviewed by Andreas Kling.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):

2012-02-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r106912.
        http://trac.webkit.org/changeset/106912
        https://bugs.webkit.org/show_bug.cgi?id=77947

        "AppleWebKit build is broken" (Requested by haraken on
        #webkit).

        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
        (WebCore):
        * dom/ScriptExecutionContext.h:
        (WebCore):
        (ScriptExecutionContext):
        * html/DOMURL.cpp:
        (WebCore::DOMURL::DOMURL):
        (WebCore):
        (WebCore::DOMURL::~DOMURL):
        (WebCore::DOMURL::contextDestroyed):
        (WebCore::DOMURL::createObjectURL):
        (WebCore::DOMURL::revokeObjectURL):
        * html/DOMURL.h:
        (WebCore::DOMURL::create):
        (DOMURL):
        * html/DOMURL.idl:
        * html/PublicURLManager.h: Removed.
        * page/DOMWindow.cpp:
        (WebCore):
        (WebCore::DOMWindow::webkitURL):
        * page/DOMWindow.h:
        (DOMWindow):
        * page/DOMWindow.idl:
        * workers/WorkerContext.cpp:
        (WebCore):
        (WebCore::WorkerContext::webkitURL):
        * workers/WorkerContext.h:
        (WorkerContext):
        * workers/WorkerContext.idl:

2012-02-07  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r106862.
        http://trac.webkit.org/changeset/106862
        https://bugs.webkit.org/show_bug.cgi?id=77510

        Mac build fails if we manually remove generated code

        * DerivedSources.make:
        * bindings/scripts/generate-bindings.pl:
        (generateEmptyHeaderAndCpp):
        * bindings/scripts/resolve-supplemental.pl:
        * bindings/scripts/update-idl-needs-rebuild.pl: Removed.

2012-02-07  Kaustubh Atrawalkar  <kaustubh@motorola.com>

        Migrate createObjectURL & revokeObjectURL to static (Class) methods.
        https://bugs.webkit.org/show_bug.cgi?id=74386

        Reviewed by David Levin.

        Test: fast/dom/DOMURL/check-instanceof-domurl-functions.html
        Already Existing:
            fast/files/revoke-blob-url.html
            fast/dom/window-domurl-crash.html
            fast/files/apply-blob-url-to-img.html
            fast/files/create-blob-url-crash.html
            fast/files/workers/inline-worker-via-blob-url.html

        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::fileThread):
        (WebCore):
        (WebCore::ScriptExecutionContext::publicURLManager):
        * dom/ScriptExecutionContext.h:
        (WebCore):
        (ScriptExecutionContext):
        * html/DOMURL.cpp:
        (WebCore):
        (WebCore::DOMURL::createObjectURL): Changed to static.
        (WebCore::DOMURL::revokeObjectURL): ditto.
        * html/DOMURL.h:
        (DOMURL):
        (WebCore::DOMURL::create):
        * html/DOMURL.idl:
        * html/PublicURLManager.h: Added.
        (WebCore):
        (PublicURLManager):
        (WebCore::PublicURLManager::create):
        (WebCore::PublicURLManager::contextDestroyed):
        (WebCore::PublicURLManager::blobURLs):
        (WebCore::PublicURLManager::streamURLs):
        * page/DOMWindow.cpp: Removed object initialization for DOMURL.
        (WebCore):
        * page/DOMWindow.h: ditto.
        (DOMWindow):
        * page/DOMWindow.idl:
        * workers/WorkerContext.cpp:
        (WebCore):
        * workers/WorkerContext.h:
        (WorkerContext):
        * workers/WorkerContext.idl:

2012-02-03  Vsevolod Vlasov  <vsevik@chromium.org>

        http/tests/inspector/indexeddb/database-structure.html failing on chromium win/linux
        https://bugs.webkit.org/show_bug.cgi?id=77661

        Reviewed by Yury Semikhatsky.

        * inspector/InspectorIndexedDBAgent.cpp:
        (WebCore):

2012-02-07  Hayato Ito  <hayato@chromium.org>

        Fix build on Mac with '--shadow-dom'.
        https://bugs.webkit.org/show_bug.cgi?id=77940

        Reviewed by Hajime Morita.

        * WebCore.xcodeproj/project.pbxproj:

2012-02-06  Shinya Kawanaka  <shinyak@google.com>

        Stop calling Element::ensureShadowRoot() if it is used in construction phase.
        https://bugs.webkit.org/show_bug.cgi?id=77929

        Reviewed by Hajime Morita.

        ShadowRoot's life cycle can be consufing If Element::ensureShadowRoot() is used.
        So we want to remove Element::ensureShadowRoot().
        This patch replaces Element::ensureShadowRoot() if it is used in object construction phase.

        No new tests, no change in behavior.

        * html/HTMLDetailsElement.cpp:
        (WebCore::HTMLDetailsElement::createShadowSubtree):
        * html/HTMLKeygenElement.cpp:
        (WebCore::HTMLKeygenElement::HTMLKeygenElement):
        * html/HTMLMeterElement.cpp:
        (WebCore::HTMLMeterElement::createShadowSubtree):
        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::createShadowSubtree):
        * html/HTMLSummaryElement.cpp:
        (WebCore::HTMLSummaryElement::createShadowSubtree):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::createShadowSubtree):

2012-02-06  Shinya Kawanaka  <shinyak@google.com>

        Remove Element::ensureShadowRoot export.
        https://bugs.webkit.org/show_bug.cgi?id=77932

        Reviewed by Hajime Morita.

        Removes Element::ensureShadowRoot export.

        No new tests, no change in behavior.

        * WebCore.exp.in:

2012-02-06  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed. Web Inspector: rename Artificial to Synthetic according to v8 patch r10614.

        * inspector/front-end/DetailedHeapshotGridNodes.js:
        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshotNode.prototype.get isSynthetic):
        (WebInspector.HeapSnapshot.prototype._init):

2012-02-06  Hayato Ito  <hayato@chromium.org>

        Implement querySelector on ShadowRoot.
        https://bugs.webkit.org/show_bug.cgi?id=77714

        Reviewed by Dimitri Glazkov.

        * dom/SelectorQuery.cpp:
        (WebCore::nodeIsRootNodeOfTreeScope):
        (WebCore):
        (WebCore::SelectorDataList::execute):

2012-02-06  Martin Robinson  <mrobinson@igalia.com> and Nayan Kumar K  <nayankk@motorola.com>

        [GTK] Add TextureMapperGL implementation
        https://bugs.webkit.org/show_bug.cgi?id=75308

        Reviewed by Alejandro G. Castro.

        No new tests. This will be covered by accelerated compositing and
        3D CSS transform tests eventually.

        * GNUmakefile.list.am: Added some files necessary to build TextureMapperGL.
        * platform/graphics/cairo/TextureMapperGLCairo.cpp: Added implementations.
        * platform/graphics/cairo/TextureMapperGLCairo.h: Updated member list.
        * platform/graphics/gtk/WindowGLContext.h: Added.
        * platform/graphics/gtk/WindowGLContextGLX.cpp: Added.
        * platform/graphics/opengl/TextureMapperGL.cpp: Use the GL shims on GTK.

2012-02-06  Emil A Eklund  <eae@chromium.org>

        Change baselinePosition and lineHeight to LayoutUnit
        https://bugs.webkit.org/show_bug.cgi?id=77905

        Reviewed by Eric Seidel.

        Change the virtual baselinePosition and lineHeight methods to return
        LayoutUnits as they are both computed from the height and top/bottom
        margins (or width and left/right margins for vertical text), all of
        which are LayoutUnits.

        No new tests.

        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::RenderThemeEfl::baselinePosition):
        * platform/efl/RenderThemeEfl.h:
        (RenderThemeEfl):
        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::baselinePosition):
        * platform/gtk/RenderThemeGtk.h:
        (RenderThemeGtk):
        * platform/qt/RenderThemeQt.cpp:
        (WebCore::RenderThemeQt::baselinePosition):
        * platform/qt/RenderThemeQt.h:
        (RenderThemeQt):
        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::lineHeight):
        (WebCore::RenderListMarker::baselinePosition):
        * rendering/RenderListMarker.h:
        (RenderListMarker):
        * rendering/RenderSlider.cpp:
        (WebCore::RenderSlider::baselinePosition):
        * rendering/RenderSlider.h:
        (RenderSlider):
        * rendering/RootInlineBox.h:
        (WebCore::RootInlineBox::baselinePosition):
        (WebCore::RootInlineBox::lineHeight):
        * rendering/mathml/RenderMathMLFraction.cpp:
        (WebCore::RenderMathMLFraction::baselinePosition):
        * rendering/mathml/RenderMathMLFraction.h:
        (RenderMathMLFraction):
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::baselinePosition):
        * rendering/mathml/RenderMathMLOperator.h:
        (RenderMathMLOperator):
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::baselinePosition):
        * rendering/mathml/RenderMathMLRow.h:
        (RenderMathMLRow):
        * rendering/mathml/RenderMathMLSubSup.cpp:
        (WebCore::RenderMathMLSubSup::baselinePosition):
        * rendering/mathml/RenderMathMLSubSup.h:
        (RenderMathMLSubSup):
        * rendering/mathml/RenderMathMLUnderOver.cpp:
        (WebCore::RenderMathMLUnderOver::baselinePosition):
        * rendering/mathml/RenderMathMLUnderOver.h:
        (RenderMathMLUnderOver):

2012-02-06  Xianzhu Wang  <wangxianzhu@chromium.org>

        Avoid Page::updateViewportArguments() if the causing frame is not the main frame
        https://bugs.webkit.org/show_bug.cgi?id=77387

        Reviewed by Kenneth Rohde Christiansen.

        * dom/Document.cpp:
        (WebCore::Document::processViewport):
        (WebCore::Document::updateViewportArguments):
        (WebCore::Document::setInPageCache):
        * dom/Document.h:
        (Document):
        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::insertedIntoDocument):
        * page/Frame.cpp:
        (WebCore::Frame::setDocument):
        * page/Page.cpp:
        (WebCore::Page::viewportArguments):
        (WebCore):
        * page/Page.h:
        (Page):

2012-02-06  Martin Robinson  <mrobinson@igalia.com>

        Fix some miscellaneous 'make dist' error for WebKitGTK+.

        * GNUmakefile.list.am: Add some missing Shadow DOM files to the
        source list.

2012-02-06  Dana Jansens  <danakj@chromium.org>

        Add contains() test to Region
        https://bugs.webkit.org/show_bug.cgi?id=72294

        Reviewed by Anders Carlsson.

        * platform/graphics/Region.cpp:
        (WebCore::Region::contains):
        (WebCore):
        * platform/graphics/Region.h:
        (Region):
        (Shape):
        (WebCore::operator==):
        (WebCore):

2012-02-06  Kentaro Hara  <haraken@chromium.org>

        Rename [DontCheckEnums], [ReturnsNew], [DoNotCheckDomainSecurityOnGet],
        [DoNotCheckDomainSecurityOnSet] and [ImplementationFunction] IDLs
        https://bugs.webkit.org/show_bug.cgi?id=77852

        Reviewed by Adam Barth.

        This patch renames [DontCheckEnums], [ReturnsNew], [DoNotCheckDomainSecurityOnGet],
        [DoNotCheckDomainSecurityOnSet] and [ImplementationFunction] IDLs for clarification.

        [DontCheckEnums] => [DoNotCheckConstants]  (This IDL inserts assertions to check if a
        constant value is equal to the expected constant value)
        [ReturnsNew] => [ReturnNewObject] (For clarification)
        [DoNotCheckDomainSecurityOnGet] => [DoNotCheckDomainSecurityOnGetter] (For naming consistency
        with other [*Getter] IDLs)
        [DoNotCheckDomainSecurityOnSet] => [DoNotCheckDomainSecurityOnSetter] (For naming consistency
        with other [*Setter] IDLs)
        [ImplementationFunction=] => [ImplementedAs=] (For clarification. This IDL specifies a method
        name in implementation)

        No tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        (ShouldCheckEnums):
        (GenerateCompileTimeCheckForEnumsIfNeeded):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        (NativeToJSValue):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateSingleBatchedAttribute):
        (GenerateFunctionCallString):
        (NativeToJSValue):

        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/TestTypedArray.idl:

        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore):
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore):

        * css/WebKitCSSFilterValue.idl:
        * css/WebKitCSSTransformValue.idl:
        * dom/DOMCoreException.idl:
        * dom/Document.idl:
        * dom/EventException.idl:
        * dom/RangeException.idl:
        * fileapi/FileException.idl:
        * fileapi/OperationNotAllowedException.idl:
        * html/HTMLFormElement.idl:
        * html/canvas/Float32Array.idl:
        * html/canvas/Float64Array.idl:
        * html/canvas/Int16Array.idl:
        * html/canvas/Int32Array.idl:
        * html/canvas/Int8Array.idl:
        * html/canvas/OESStandardDerivatives.idl:
        * html/canvas/OESVertexArrayObject.idl:
        * html/canvas/Uint16Array.idl:
        * html/canvas/Uint32Array.idl:
        * html/canvas/Uint8Array.idl:
        * html/canvas/Uint8ClampedArray.idl:
        * html/canvas/WebGLCompressedTextures.idl:
        * html/canvas/WebGLDebugRendererInfo.idl:
        * html/canvas/WebGLRenderingContext.idl:
        * inspector/JavaScriptCallFrame.idl:
        * loader/appcache/DOMApplicationCache.idl:
        * page/Console.idl:
        * page/DOMWindow.idl:
        * page/Location.idl:
        * storage/IDBCursor.idl:
        * storage/IDBDatabaseException.idl:
        * storage/IDBObjectStore.idl:
        * storage/SQLException.idl:
        * svg/SVGComponentTransferFunctionElement.idl:
        * svg/SVGException.idl:
        * svg/SVGFEBlendElement.idl:
        * svg/SVGFEColorMatrixElement.idl:
        * svg/SVGFECompositeElement.idl:
        * svg/SVGFEConvolveMatrixElement.idl:
        * svg/SVGFEDisplacementMapElement.idl:
        * svg/SVGFEMorphologyElement.idl:
        * svg/SVGFETurbulenceElement.idl:
        * svg/SVGGradientElement.idl:
        * xml/XMLHttpRequestException.idl:
        * xml/XPathException.idl:

2012-02-06  James Robinson  <jamesr@chromium.org>

        [chromium] canvas demo is slow due to unnecessary resource cleanups
        https://bugs.webkit.org/show_bug.cgi?id=77135

        Reviewed by Kenneth Russell.

        This defers dropping a ManagedTexture until it is evicted by the manager, the layer is destroyed, the
        TextureManager is destroyed, or the layer is added to a CCLayerTreeHost that has a different texture manager. In
        particular, removing a layer from a CCLayerTreeHost and then adding it back to the same host does not drop any
        ManagedTextures unless the manager has to evict it for other reasons. This provides a big speedup on sites that
        rebuild the compositing tree frequently.

        New unit test added for ManagedTexture / TextureManager interaction.

        * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
        (WebCore::Canvas2DLayerChromium::setLayerTreeHost):
        (WebCore::Canvas2DLayerChromium::setTextureManager):
        * platform/graphics/chromium/Canvas2DLayerChromium.h:
        (Canvas2DLayerChromium):
        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::setLayerTreeHost):
        * platform/graphics/chromium/LayerChromium.h:
        (LayerChromium):
        * platform/graphics/chromium/ManagedTexture.cpp:
        (WebCore::ManagedTexture::setTextureManager):
        (WebCore):
        (WebCore::ManagedTexture::steal):
        (WebCore::ManagedTexture::clear):
        * platform/graphics/chromium/ManagedTexture.h:
        (ManagedTexture):
        * platform/graphics/chromium/RenderSurfaceChromium.h:
        (RenderSurfaceChromium):
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::setLayerTreeHost):
        (WebCore):
        (WebCore::TiledLayerChromium::prepareToUpdateTiles):
        * platform/graphics/chromium/TiledLayerChromium.h:

2012-02-06  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r106883.
        http://trac.webkit.org/changeset/106883
        https://bugs.webkit.org/show_bug.cgi?id=77852

        build failure around Chromium V8 bindings

        * bindings/scripts/CodeGenerator.pm:
        (ShouldCheckEnums):
        (GenerateCompileTimeCheckForEnumsIfNeeded):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        (NativeToJSValue):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateSingleBatchedAttribute):
        (GenerateFunctionCallString):
        (NativeToJSValue):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore):
        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/TestTypedArray.idl:
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore):
        * css/WebKitCSSFilterValue.idl:
        * css/WebKitCSSTransformValue.idl:
        * dom/DOMCoreException.idl:
        * dom/Document.idl:
        * dom/EventException.idl:
        * dom/RangeException.idl:
        * fileapi/FileException.idl:
        * fileapi/OperationNotAllowedException.idl:
        * html/HTMLFormElement.idl:
        * html/canvas/Float32Array.idl:
        * html/canvas/Float64Array.idl:
        * html/canvas/Int16Array.idl:
        * html/canvas/Int32Array.idl:
        * html/canvas/Int8Array.idl:
        * html/canvas/OESStandardDerivatives.idl:
        * html/canvas/OESVertexArrayObject.idl:
        * html/canvas/Uint16Array.idl:
        * html/canvas/Uint32Array.idl:
        * html/canvas/Uint8Array.idl:
        * html/canvas/Uint8ClampedArray.idl:
        * html/canvas/WebGLCompressedTextures.idl:
        * html/canvas/WebGLDebugRendererInfo.idl:
        * html/canvas/WebGLRenderingContext.idl:
        * inspector/JavaScriptCallFrame.idl:
        * loader/appcache/DOMApplicationCache.idl:
        * page/Console.idl:
        * page/DOMWindow.idl:
        * page/Location.idl:
        * storage/IDBCursor.idl:
        * storage/IDBDatabaseException.idl:
        * storage/IDBObjectStore.idl:
        * storage/SQLException.idl:
        * svg/SVGComponentTransferFunctionElement.idl:
        * svg/SVGException.idl:
        * svg/SVGFEBlendElement.idl:
        * svg/SVGFEColorMatrixElement.idl:
        * svg/SVGFECompositeElement.idl:
        * svg/SVGFEConvolveMatrixElement.idl:
        * svg/SVGFEDisplacementMapElement.idl:
        * svg/SVGFEMorphologyElement.idl:
        * svg/SVGFETurbulenceElement.idl:
        * svg/SVGGradientElement.idl:
        * xml/XMLHttpRequestException.idl:
        * xml/XPathException.idl:

2012-02-06  Yongsheng Zhu  <yongsheng.zhu@intel.com>

        WebGL must allocate smaller drawing buffer when the allocation fails. 
        https://bugs.webkit.org/show_bug.cgi?id=76654

        Reviewed by Kenneth Russell.

        Test: fast/canvas/webgl/drawingbuffer-test.html

        * platform/graphics/gpu/DrawingBuffer.cpp:
        (WebCore):
        (WebCore::DrawingBuffer::create):
        (WebCore::DrawingBuffer::reset):

2012-02-06  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests results.

        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjInternal::optionsObjectCallback):

2012-02-06  Levi Weintraub  <leviw@chromium.org>

        Correct usage of LayoutUnits in dom, editing, page, accessibility, inspector, and loader
        https://bugs.webkit.org/show_bug.cgi?id=77891

        Reviewed by Darin Adler.

        Updating the usage of LayoutUnits in the dom, editing, page, accessibility, inspector, and loader
        directories to properly use LayoutUnits vs ints.

        No new tests. No new behavior.

        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::boundsForVisiblePositionRange):
        (WebCore::AccessibilityObject::doAXBoundsForRange):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::isOffScreen):
        (WebCore::AccessibilityRenderObject::clickPoint):
        (WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange):
        (WebCore::AccessibilityRenderObject::doAXBoundsForRange):
        (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest):
        * accessibility/AccessibilityRenderObject.h:
        (AccessibilityRenderObject):
        * accessibility/AccessibilitySlider.cpp:
        (WebCore::AccessibilitySlider::elementAccessibilityHitTest):
        * accessibility/AccessibilitySlider.h:
        (AccessibilitySlider):
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::computedTransform):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * dom/Clipboard.h:
        (WebCore::Clipboard::dragLocation):
        (Clipboard):
        * dom/DocumentMarkerController.cpp:
        (WebCore::DocumentMarkerController::renderedRectsForMarkers):
        * dom/DocumentMarkerController.h:
        * dom/Element.cpp:
        (WebCore::Element::screenRect):
        * dom/Element.h:
        (Element):
        * editing/Editor.cpp:
        (WebCore::Editor::rangeForPoint):
        (WebCore::Editor::firstRectForRange):
        * editing/RenderedPosition.cpp:
        (WebCore::RenderedPosition::absoluteRect):
        * editing/RenderedPosition.h:
        (WebCore::RenderedPosition::absoluteRect):
        (RenderedPosition):
        * editing/VisiblePosition.h:
        (VisiblePosition):
        * inspector/DOMNodeHighlighter.cpp:
        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::createJavaAppletWidget):
        * loader/SubframeLoader.h:
        (SubframeLoader):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent):
        * page/Frame.cpp:
        (WebCore::Frame::nodeImage):
        * page/win/FrameCGWin.cpp:
        (WebCore::Frame::nodeImage):

2012-02-05  Kentaro Hara  <haraken@chromium.org>

        Rename [DontCheckEnums], [ReturnsNew], [DoNotCheckDomainSecurityOnGet],
        [DoNotCheckDomainSecurityOnSet] and [ImplementationFunction] IDLs
        https://bugs.webkit.org/show_bug.cgi?id=77852

        Reviewed by Adam Barth.

        This patch renames [DontCheckEnums], [ReturnsNew], [DoNotCheckDomainSecurityOnGet],
        [DoNotCheckDomainSecurityOnSet] and [ImplementationFunction] IDLs for clarification.

        [DontCheckEnums] => [DoNotCheckConstants]  (This IDL inserts assertions to check if a
        constant value is equal to the expected constant value)
        [ReturnsNew] => [ReturnNewObject] (For clarification)
        [DoNotCheckDomainSecurityOnGet] => [DoNotCheckDomainSecurityOnGetter] (For naming consistency
        with other [*Getter] IDLs)
        [DoNotCheckDomainSecurityOnSet] => [DoNotCheckDomainSecurityOnSetter] (For naming consistency
        with other [*Setter] IDLs)
        [ImplementationFunction=] => [ImplementedAs=] (For clarification. This IDL specifies a method
        name in implementation)

        No tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        (ShouldCheckEnums):
        (GenerateCompileTimeCheckForEnumsIfNeeded):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        (NativeToJSValue):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateSingleBatchedAttribute):
        (GenerateFunctionCallString):
        (NativeToJSValue):

        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/TestTypedArray.idl:

        * bindings/scripts/test/JS/JSTestInterface.cpp: Updated run-bindings-tests results.
        (WebCore):
        * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
        (WebCore):
        * bindings/scripts/test/V8/V8TestInterface.cpp: Ditto.
        (WebCore):
        * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
        (WebCore):

        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/TestTypedArray.idl:
        * css/WebKitCSSFilterValue.idl:
        * css/WebKitCSSTransformValue.idl:
        * dom/DOMCoreException.idl:
        * dom/Document.idl:
        * dom/EventException.idl:
        * dom/RangeException.idl:
        * fileapi/FileException.idl:
        * fileapi/OperationNotAllowedException.idl:
        * html/HTMLFormElement.idl:
        * html/canvas/Float32Array.idl:
        * html/canvas/Float64Array.idl:
        * html/canvas/Int16Array.idl:
        * html/canvas/Int32Array.idl:
        * html/canvas/Int8Array.idl:
        * html/canvas/OESStandardDerivatives.idl:
        * html/canvas/OESVertexArrayObject.idl:
        * html/canvas/Uint16Array.idl:
        * html/canvas/Uint32Array.idl:
        * html/canvas/Uint8Array.idl:
        * html/canvas/Uint8ClampedArray.idl:
        * html/canvas/WebGLCompressedTextures.idl:
        * html/canvas/WebGLDebugRendererInfo.idl:
        * html/canvas/WebGLRenderingContext.idl:
        * inspector/JavaScriptCallFrame.idl:
        * loader/appcache/DOMApplicationCache.idl:
        * page/Console.idl:
        * page/DOMWindow.idl:
        * page/Location.idl:
        * storage/IDBCursor.idl:
        * storage/IDBDatabaseException.idl:
        * storage/IDBObjectStore.idl:
        * storage/SQLException.idl:
        * svg/SVGComponentTransferFunctionElement.idl:
        * svg/SVGException.idl:
        * svg/SVGFEBlendElement.idl:
        * svg/SVGFEColorMatrixElement.idl:
        * svg/SVGFECompositeElement.idl:
        * svg/SVGFEConvolveMatrixElement.idl:
        * svg/SVGFEDisplacementMapElement.idl:
        * svg/SVGFEMorphologyElement.idl:
        * svg/SVGFETurbulenceElement.idl:
        * svg/SVGGradientElement.idl:
        * xml/XMLHttpRequestException.idl:

2012-02-06  Stephen Chenney  <schenney@chromium.org>

        RenderSVGShape::strokeContains will fail for some strokes
        https://bugs.webkit.org/show_bug.cgi?id=76931

        Reviewed by Darin Adler.

        Adding support for rounded zero-length endcaps for SVG path hit
        testing.

        Tests: svg/hittest/zero-length-butt-cap-path.xhtml
               svg/hittest/zero-length-round-cap-path.xhtml
               svg/hittest/zero-length-square-cap-path.xhtml

        * rendering/svg/RenderSVGShape.cpp:
        (WebCore::RenderSVGShape::strokeContains):

2012-02-06  Gregg Tavares  <gman@google.com>

        Add webGLErrorsToConsoleEnabled Settings flag
        https://bugs.webkit.org/show_bug.cgi?id=77696

        Reviewed by Kenneth Russell.

        No new tests as there is no change in behavior.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::setupFlags):
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h:
        (Settings):
        (WebCore::Settings::webGLErrorsToConsoleEnabled):

2012-02-06  Emil A Eklund  <eae@chromium.org>

        Convert PopupMenuClient::clientPadding over to new layout abstraction
        https://bugs.webkit.org/show_bug.cgi?id=77798

        Reviewed by Eric Seidel.

        Change PopupMenuClient and all classes inheriting from it to use the new
        layout types for padding.

        No new tests.

        * platform/PopupMenuClient.h:
        (PopupMenuClient):
        * rendering/RenderMenuList.h:
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::clientPaddingLeft):
        (WebCore::RenderTextControlSingleLine::clientPaddingRight):
        * rendering/RenderTextControlSingleLine.h:

2012-02-06  Philip Rogers  <pdr@google.com>

        Fix color animations by value
        https://bugs.webkit.org/show_bug.cgi?id=77812

        Reviewed by Darin Adler.

        Test: svg/animations/animate-color-fill-from-by.html

        * svg/SVGAnimatedColor.cpp:
        (WebCore::SVGAnimatedColorAnimator::calculateFromAndByValues):

2012-02-03  Jer Noble  <jer.noble@apple.com>

        REGRESSION (r104303): Clicking inline video controls gives the video a focus ring
        https://bugs.webkit.org/show_bug.cgi?id=77288

        Reviewed by Darin Adler.

        Test: media/video-mouse-focus.html

        Do not allow media elements to be focused by mouse click by overriding isMouseFocusable
        and returning false.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::isMouseFocusable):
        * html/HTMLMediaElement.h:

2012-02-06  Anders Carlsson  <andersca@apple.com>

        Overlay scrollbars flash when window is simply activated
        https://bugs.webkit.org/show_bug.cgi?id=77911
        <rdar://problem/10211995>

        Reviewed by Kenneth Russell.

        Add a new member function, FocusController::setContainingWindowIsVisible, and move the code
        that calls ScrollableArea::contentAreaDidShow/ScrollableArea::contentAreaDidHide there, since
        we only want to flash scrollers when the window becomes visible.

        * WebCore.exp.in:
        * page/FocusController.cpp:
        (WebCore::FocusController::FocusController):
        (WebCore::FocusController::setActive):
        (WebCore::FocusController::setContainingWindowIsVisible):
        (WebCore):
        * page/FocusController.h:
        (FocusController):
        (WebCore::FocusController::containingWindowIsVisible):

        * platform/mac/ScrollAnimatorMac.mm:
        (-[WebScrollbarPainterControllerDelegate scrollerImpPair:setContentAreaNeedsDisplayInRect:]):
        Call ScrollAnimatorMac::contentAreaWillPaint here, since that will trigger AppKit to flash the scrollers.

2012-02-06  Greg Simon  <gregsimon@chromium.org>

        postMessage leaks MemoryEvent object
        https://bugs.webkit.org/show_bug.cgi?id=77893

        Reviewed by Adam Barth.

        Changed from PassRefPtr().leakRef() to RefPtr.get() when 
        calling into FrameLoaderClient to stop +1 extra ref.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::postMessageTimerFired):

2012-02-06  Ehsan Akhgari  <ehsan.akhgari@gmail.com>

        WebGL conformance test misc/functions-returning-strings.html fails
        https://bugs.webkit.org/show_bug.cgi?id=77149

        Make sure that WebGL methods returning strings don't return null when
        they run successfully.

        Reviewed by Kenneth Russell.

        Test: fast/canvas/webgl/functions-returning-strings.html

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore):
        (WebCore::WebGLRenderingContext::getProgramInfoLog):
        (WebCore::WebGLRenderingContext::getShaderInfoLog):
        (WebCore::WebGLRenderingContext::getShaderSource):
        (WebCore::WebGLRenderingContext::ensureNotNull):
        * html/canvas/WebGLRenderingContext.h:
        (WebGLRenderingContext):

2012-02-06  Enrica Casucci  <enrica@apple.com>

        Refactor Mac platform implementation of the Pasteboard class.
        https://bugs.webkit.org/show_bug.cgi?id=77567
        
        The goal of this change is to remove the majority of the methods in
        the class interface that are Mac specific.
        writeSelectionForTypes has been left to support OS X services.
        Some of the methods have been turned into static functions.
        The method asURL was being used only by the DragData class and its
        implementation has been moved there.
        This is a first step in the direction of removing NSPasteboard access from
        the WebProcess for WebKit2 (https://bugs.webkit.org/show_bug.cgi?id=77259)
        leaving the WebKit1 behavior unchanged.

        Reviewed by Alexey Proskuryakov.

        No new tests. No changes in behavior.

        * platform/Pasteboard.h: Removed most of the Mac specific methods.
        * platform/mac/ClipboardMac.mm:
        (WebCore::ClipboardMac::writeRange):
        (WebCore::ClipboardMac::writeURL):
        * platform/mac/DragDataMac.mm:
        (WebCore::DragData::asURL): Moved code from PasteboardMac.mm. Removed FIXME
        because we only want to handle the case of single file, otherwise the user
        doesn't know which of the files has been chosen.
        * platform/mac/PasteboardMac.mm:
        (WebCore::writeURLForTypes):
        (WebCore::Pasteboard::writeURL):
        (WebCore::writeFileWrapperAsRTFDAttachment): Now a static function.
        (WebCore::Pasteboard::writeImage):
        (WebCore::documentFragmentWithImageResource): Ditto.
        (WebCore::documentFragmentWithRTF): Ditto.
        (WebCore::Pasteboard::documentFragment):

2012-02-06  James Robinson  <jamesr@chromium.org>

        [chromium] Drop tiles completely outside of layer bounds when resizing to a smaller size
        https://bugs.webkit.org/show_bug.cgi?id=77910

        Reviewed by Kenneth Russell.

        When resizing a tiled layer to a smaller size, drop all tiles that lie completely outside the new layer bounds.
        This avoids attempting to access out-of-bounds tiles when iterating over all tiles in the tiler, which triggers
        ASSERT()s, as well as saves some memory.

        New unit test added to TiledLayerChromiumTest.

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::invalidateRect):
        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
        (WebCore::CCLayerTilingData::setBounds):

2012-02-06  Chris Rogers  <crogers@google.com>

        zvmul incorrectly multiplies complex arrays on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=77900

        Reviewed by Kenneth Russell.

        * platform/audio/VectorMath.cpp:
        (WebCore::VectorMath::zvmul):

2012-02-06  Andreas Kling  <awesomekling@apple.com>

        REGRESSION(r106756): 10% performance hit on DOM/Template.
        <http://webkit.org/b/77831>

        Reviewed by Ryosuke Niwa.

        Let the StylePropertySet used for element attribute style have the element as its parent.
        This is accomplished by adding an m_parentIsElement bit to StylePropertySet and sharing
        some of the internal logic with inline styles.

        In the end, this means that CSSParser will now pick up the document's CSSValuePool when
        parsing properties for attribute styles, which fixes the perf regression from r106756.

        * css/StylePropertySet.cpp:
        (WebCore::StylePropertySet::StylePropertySet):
        (WebCore::StylePropertySet::contextStyleSheet):

            Find contextStyleSheet via the parentElement() when there is one.

        (WebCore::StylePropertySet::setNeedsStyleRecalc):

            Always set FullStyleChange for attribute style mutations. We can probably use the
            same lighter invalidation as inline styles, but that's a topic for another patch.

        * css/StylePropertySet.h:
        (WebCore::StylePropertySet::createInline):
        (WebCore::StylePropertySet::createAttributeStyle):
        (WebCore::StylePropertySet::parentRuleInternal):
        (WebCore::StylePropertySet::clearParentRule):
        (StylePropertySet):
        (WebCore::StylePropertySet::parentElement):
        (WebCore::StylePropertySet::clearParentElement):

            Added m_parentIsElement bit and update assertions as appropriate to not just
            cover the inline style case. Added a createAttributeStyle() helper to create
            a StylePropertySet for use as Element::attributeStyle().

        * dom/StyledElement.h:
        * dom/ElementAttributeData.h:
        * dom/ElementAttributeData.cpp:
        (WebCore::ElementAttributeData::ensureAttributeStyle):

            Use StylePropertySet::createAttributeStyle().

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::removeCSSProperties):
        (WebCore::StyledElement::addCSSProperty):
        (WebCore::StyledElement::addCSSImageProperty):

            Remove setNeedsStyleRecalc() calls since that is now handled automatically by
            StylePropertySet's mutation methods.

2012-02-06  Kentaro Hara  <haraken@chromium.org>

        In AppleWebKit, stop rebuilding IDLs that need not to be rebuilt
        https://bugs.webkit.org/show_bug.cgi?id=77510

        Reviewed by Adam Barth.

        Currently, if any IDL file is updated, all IDL files are rebuilt.
        This patch stops rebuilding IDL files which are not modified nor
        whose supplemental dependencies are not changed.

        The new build flow is as follows:

            supplemental.dep : $(ALL_IDLS)
                perl resolve-supplemental.pl ...

            %.idl-needs-rebuild : %.idl supplemental.dep
                perl update-idl-needs-rebuild.pl ...

            JS%.cpp : %.idl-needs-rebuild
                perl generate-bindings.pl ...

        resolve-supplemental.pl generates the following supplemental.dep.
        The number in () is the last access timestamp of the file.

            A.idl(1200)
            B.idl(1000) B-supplemental1.idl(800) B-supplemental2.idl(1200)
            C.idl(1000)

        update-idl-needs-rebuild.pl for X.idl touches X.idl-needs-rebuild,
        if X.idl-needs-rebuild is older than X.idl or the IDL files which are
        supplementing X.idl. For example, if the timestamps of A.idl-needs-rebuild,
        B.idl-needs-rebuild and C.idl-needs-rebuild are all 1000, then A.idl-needs-rebuild
        and B.idl-needs-rebuild will be touched.

        Even if no IDL files are modified, update-idl-needs-rebuild.pl can run for all IDL files,
        but generate-bindings.pl won't run. If any IDL file is updated, resolve-supplemental.pl
        will run once, update-idl-needs-rebuild.pl will run for all IDL files, and
        generate-bindings.pl will run for the IDL files which are modified or whose
        dependencies are changed.

        No tests. I manually confirmed the followings:
        - Touch Element.idl, then only Element.idl is rebuilt
        - Touch DOMWindow.idl, then only DOMWindow.idl is rebuilt
        - Touch DOMWindowWebAudio.idl, then only DOMWindow.idl and DOMWindowWebAudio.idl are rebuilt

        * DerivedSources.make: Modified the build flow as described above.
        * bindings/scripts/generate-bindings.pl: Modified to read an IDL file path from .idl-needs-rebuild.
        * bindings/scripts/update-idl-needs-rebuild.pl: Added. Touches X.idl-needs-rebuild if
        the X.idl-needs-rebuild is older than X.idl or the IDL files which are supplementing X.idl.
        (touch):

2012-02-06  Wei James  <james.wei@intel.com>

        AudioBus need to support stereo->mono down mix in copyFrom sumFrom etc.
        https://bugs.webkit.org/show_bug.cgi?id=77609

        Reviewed by Kenneth Russell.

        Test: webaudio/stereo2mono-down-mixing.html

        * platform/audio/AudioBus.cpp:
        (WebCore):
        (WebCore::AudioBus::copyFrom):
        (WebCore::AudioBus::sumFrom):

2012-02-06  Cris Neckar  <cdn@chromium.org>

        Add RefPtrs for parent and sibling counter nodes
        https://bugs.webkit.org/show_bug.cgi?id=75212

        Reviewed by Adam Barth.

        Test: fast/css/counters/reparent-table-children-with-counters-crash.html

        * rendering/RenderCounter.cpp:
        (WebCore::findPlaceForCounter):
        (WebCore::makeCounterNode):
        (WebCore::updateCounters):

2012-02-06  Kalev Lember  <kalevlember@gmail.com>

        [GTK] Add missing pango include dir to fix build
        https://bugs.webkit.org/show_bug.cgi?id=77832

        Reviewed by Martin Robinson.

        * GNUmakefile.am: Added $(PANGO_CFLAGS) to libWebCore_la_CPPFLAGS.

2012-02-06  Jochen Eisinger  <jochen@chromium.org>

        Before accessing a frame's script controller in V8 bindings, first check that the frame actually exists
        https://bugs.webkit.org/show_bug.cgi?id=77370

        Reviewed by Adam Barth.

        I don't have a working reproduction of the crash yet. As soon as I have
        one,  I will add new layout tests.

        * bindings/v8/PageScriptDebugServer.cpp:
        (WebCore::PageScriptDebugServer::addListener):
        * bindings/v8/ScheduledAction.cpp:
        (WebCore::ScheduledAction::execute):
        * bindings/v8/ScriptCachedFrameData.cpp:
        (WebCore::ScriptCachedFrameData::restore):
        * page/DOMTimer.cpp:
        (WebCore::DOMTimer::DOMTimer): remove temporary debug code

2012-02-06  James Robinson  <jamesr@chromium.org>

        Support detaching TextureManager from ManagedTexture
        https://bugs.webkit.org/show_bug.cgi?id=77655

        Reviewed by Kenneth Russell.
        Initial patch by Alok Priyadarshi.

        TextureManager now holds references to the textures it manages.
        This allows TextureManager to inform managed textures when it gets deleted
        so that the texture that outlive the TextureManager can handle the situation gracefully.

        Unit test in TextureManagerTest.cpp

        * platform/graphics/chromium/ManagedTexture.cpp:
        (WebCore::ManagedTexture::ManagedTexture):
        (WebCore::ManagedTexture::~ManagedTexture):
        (WebCore):
        (WebCore::ManagedTexture::managerWillDie):
        (WebCore::ManagedTexture::isValid):
        (WebCore::ManagedTexture::reserve):
        (WebCore::ManagedTexture::unreserve):
        (WebCore::ManagedTexture::steal):
        (WebCore::ManagedTexture::reset):
        * platform/graphics/chromium/ManagedTexture.h:
        (WebCore::ManagedTexture::manager):
        (ManagedTexture):
        (WebCore::ManagedTexture::isReserved):
        * platform/graphics/chromium/TextureManager.cpp:
        (WebCore::TextureManager::~TextureManager):
        (WebCore):
        (WebCore::TextureManager::setPreferredMemoryLimitBytes):
        (WebCore::TextureManager::registerTexture):
        (WebCore::TextureManager::unregisterTexture):
        * platform/graphics/chromium/TextureManager.h:
        (WebCore):
        (TextureManager):

2012-02-06  Anders Carlsson  <andersca@apple.com>

        Wheel event handler count not updated when adding handlers to the window
        https://bugs.webkit.org/show_bug.cgi?id=77895

        Reviewed by Dan Bernstein.

        Test: fast/events/wheelevent-handler-count.html

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::addEventListener):
        (WebCore::DOMWindow::removeEventListener):
        Update the wheel event count.

        * testing/Internals.cpp:
        (WebCore::Internals::wheelEventHandlerCount):
        * testing/Internals.h:
        * testing/Internals.idl:
        Add wheelEventHandlerCount to window.internals.

2012-02-06  Matthew Delaney  <mdelaney@apple.com>

        toDataURL() uses stale data after putImageData()
        https://bugs.webkit.org/show_bug.cgi?id=65767

        This patch fixes the issue we've encountered of getting back
        stale copies of the CGContext of accelerated ImageBuffers who have seen
        putImageData calls but have not been drawn into via the CG API.
        This issue is fixed by modifying the way we implement putImageData
        in ImageBufferCG to draw the bits wrapped in a CGImage while the CGContext
        is in a state where the data will effectively be copied (as is needed for
        implementing putImageData) instead of directly modifying the bits of the IOSurface.

        Reviewed by Chris Marrin.

        Test: fast/canvas/check-stale-putImageData, pixel test to check that the canvas is in fact painted.

        * platform/graphics/cg/ImageBufferCG.cpp: Implement new way of putting image data.
        * platform/graphics/ImageBuffer.h: Merged two previously separate put data calls
            into a single and more sensibly named 'putByteArray', since that's what it does!

        * WebCore.exp.in: Added new WKSI call for use in ImageBufferCG.cpp
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:

        Using new method name.
        * html/canvas/CanvasRenderingContext2D.cpp:
        * platform/graphics/ImageBuffer.cpp:
        * platform/graphics/ShadowBlur.cpp:        
        * platform/graphics/filters/FEColorMatrix.cpp:
        * platform/graphics/filters/FEDropShadow.cpp:
        * platform/graphics/filters/FilterEffect.cpp:

        Updated other ports' ImageBuffers to use new method.
        * platform/graphics/cairo/ImageBufferCairo.cpp:
        * platform/graphics/qt/ImageBufferQt.cpp:
        * platform/graphics/skia/ImageBufferSkia.cpp:
        * platform/graphics/wince/ImageBufferWinCE.cpp:
        * platform/graphics/wx/ImageBufferWx.cpp:

2012-02-06  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Provide more attribute methods in Element
        https://bugs.webkit.org/show_bug.cgi?id=77800

        Reviewed by Ryosuke Niwa.

        Reduce the clients of NamedNodeMap. This will make easier to change the
        implementation of our attribute storage. The clients now use Element methods
        that expose Attribute* accessors.

        Instead of checking the existence of NamedNodeMap, clients can call
        hasAttributes() or hasAttributesWithoutUpdate() (that skips updating invalid
        style or animation svg attributes).

        If there are attributes, they can be accessed by index via attributeCount() /
        attributeItem(), as well as by QualifiedName. Those accessors assume there are an
        attribute storage.

        * css/SelectorChecker.cpp:
        (WebCore::anyAttributeMatches):
        (WebCore::SelectorChecker::checkOneSelector):
        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::checkExactAttribute):
        * dom/DatasetDOMStringMap.cpp:
        (WebCore::DatasetDOMStringMap::getNames):
        (WebCore::DatasetDOMStringMap::item):
        (WebCore::DatasetDOMStringMap::contains):
        * dom/Document.cpp:
        (WebCore::Document::importNode): use setAttributesFromElement() instead of manually copying.
        * dom/Element.h:
        (Element):
        (WebCore::Element::hasAttributesWithoutUpdate):
        (WebCore):
        (WebCore::Element::attributeCount):
        (WebCore::Element::attributeItem):
        (WebCore::Element::getAttributeItem):
        (WebCore::Element::removeAttribute):
        * dom/Node.cpp:
        (WebCore::Node::isDefaultNamespace):
        (WebCore::Node::lookupNamespaceURI):
        (WebCore::Node::lookupNamespacePrefix):
        (WebCore::Node::compareDocumentPosition):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::hasNoAttributeOrOnlyStyleAttribute):
        (WebCore::isEmptyFontTag):
        * editing/EditingStyle.cpp:
        (WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::highestVisuallyEquivalentDivBelowRoot):
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::appendElement):
        * editing/markup.cpp:
        (WebCore::completeURLs):
        (WebCore::StyledMarkupAccumulator::appendElement):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::parametersForPlugin):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::updateType):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parametersForPlugin):
        * html/HTMLParamElement.cpp:
        (WebCore::HTMLParamElement::isURLAttribute):
        * html/parser/HTMLFormattingElementList.cpp:
        (WebCore::attributeCountWithoutUpdate):
        (WebCore::HTMLFormattingElementList::tryToEnsureNoahsArkConditionQuickly):
        (WebCore::HTMLFormattingElementList::ensureNoahsArkCondition): Store Attribute*
        to avoid looking up the right element again by name.
        * inspector/DOMEditor.cpp:
        (WebCore::DOMEditor::innerPatchNode):
        (WebCore::DOMEditor::createDigest):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::setAttributesAsText):
        (WebCore::InspectorDOMAgent::performSearch):
        (WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
        * page/PageSerializer.cpp:
        (WebCore::isCharsetSpecifyingNode):
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::getPresentationAttribute):
        * xml/XPathFunctions.cpp:
        (WebCore::XPath::FunLang::evaluate):
        * xml/XPathNodeSet.cpp:
        (WebCore::XPath::NodeSet::traversalSort):
        * xml/XPathStep.cpp:
        (WebCore::XPath::Step::nodesInAxis):
        * xml/parser/XMLDocumentParserLibxml2.cpp:
        (WebCore::XMLDocumentParser::XMLDocumentParser):
        * xml/parser/XMLTreeBuilder.cpp:
        (WebCore::XMLTreeBuilder::XMLTreeBuilder):

2012-02-06  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Raise exception during add/put call if autoIncrement key insertion will fail
        https://bugs.webkit.org/show_bug.cgi?id=77374

        If a put request will use a key generator, try inserting a dummy key during the sync
        put() call to check if the key insertion will succeed so an exception can be raised
        early, rather than deferring to the asynchronous task.

        Reviewed by Tony Chang.

        Test: storage/indexeddb/keypath-edges.html

        * storage/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::put):

2012-02-06  Gustavo Noronha Silva  <gns@gnome.org>

        Add a null check for the gdkwindow, that will happen if the window
        is not mapped.

        Reviewed by Martin Robinson.

        * platform/gtk/GtkUtilities.cpp:
        (WebCore::convertWidgetPointToScreenPoint):

2012-02-06  Eugene Girard  <girard@chromium.org>

        IndexedDB createObjectStore should throw if options arg is invalid
        Added logic to OptionsObject to determine if an invalid object was created.
        Javascript bindings now detect invalid OptionsObject's and throw TypeError when found.
        https://bugs.webkit.org/show_bug.cgi?id=58471

        Reviewed by Adam Barth.

        Test: storage/indexeddb/createObjectStore-bad-options.html

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateParametersCheck):
        * bindings/v8/OptionsObject.cpp:
        (WebCore::OptionsObject::isObject):
        * bindings/v8/OptionsObject.h:

2012-02-06  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r106797 and r106806.
        http://trac.webkit.org/changeset/106797
        http://trac.webkit.org/changeset/106806
        https://bugs.webkit.org/show_bug.cgi?id=77888

        The change is still causing some crashes in webaudio/ on the
        Chromium bots (Requested by jchaffraix on #webkit).

        * Modules/intents/IntentRequest.cpp:
        (WebCore::IntentRequest::create):
        * bindings/generic/ActiveDOMCallback.cpp:
        (WebCore::ActiveDOMCallback::ActiveDOMCallback):
        * dom/ActiveDOMObject.cpp:
        (WebCore::ActiveDOMObject::ActiveDOMObject):
        (WebCore::ActiveDOMObject::~ActiveDOMObject):
        * dom/ActiveDOMObject.h:
        (ActiveDOMObject):
        * dom/DocumentEventQueue.cpp:
        (WebCore::DocumentEventQueue::DocumentEventQueue):
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::ScriptExecutionContext):
        (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
        (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
        (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
        (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
        (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
        * dom/ScriptExecutionContext.h:
        (ScriptExecutionContext):
        * fileapi/DOMFileSystem.cpp:
        (WebCore::DOMFileSystem::create):
        * fileapi/FileReader.cpp:
        (WebCore):
        * fileapi/FileReader.h:
        (WebCore::FileReader::create):
        * fileapi/FileWriter.cpp:
        (WebCore):
        * fileapi/FileWriter.h:
        (WebCore::FileWriter::create):
        * history/CachedFrame.cpp:
        (WebCore::CachedFrame::CachedFrame):
        * html/HTMLAudioElement.cpp:
        (WebCore::HTMLAudioElement::create):
        (WebCore::HTMLAudioElement::createForJSConstructor):
        * html/HTMLMarqueeElement.cpp:
        (WebCore::HTMLMarqueeElement::create):
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::create):
        * mediastream/PeerConnection.cpp:
        (WebCore::PeerConnection::create):
        * notifications/Notification.cpp:
        (WebCore::Notification::create):
        * notifications/NotificationCenter.cpp:
        * notifications/NotificationCenter.h:
        (WebCore::NotificationCenter::create):
        * page/DOMTimer.cpp:
        (WebCore::DOMTimer::install):
        (WebCore::DOMTimer::fired):
        * page/EventSource.cpp:
        (WebCore::EventSource::create):
        * page/SuspendableTimer.cpp:
        (WebCore::SuspendableTimer::SuspendableTimer):
        * storage/IDBDatabase.cpp:
        (WebCore::IDBDatabase::create):
        * storage/IDBRequest.cpp:
        (WebCore::IDBRequest::create):
        * storage/IDBTransaction.cpp:
        (WebCore::IDBTransaction::create):
        * storage/IDBVersionChangeRequest.cpp:
        (WebCore::IDBVersionChangeRequest::create):
        * webaudio/AudioContext.cpp:
        (WebCore::AudioContext::create):
        * websockets/WebSocket.cpp:
        * websockets/WebSocket.h:
        (WebCore::WebSocket::create):
        * workers/SharedWorker.cpp:
        (WebCore::SharedWorker::create):
        * workers/Worker.cpp:
        (WebCore::Worker::create):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::create):

2012-02-06  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Move style related functions from NamedNodeMap to ElementAttributeData
        https://bugs.webkit.org/show_bug.cgi?id=77879

        Reviewed by Ryosuke Niwa.

        This commit also removes the NamedNodeMap::mappedAttributeCount(),
        which is a leftover from removal of mapped attributes.

        * dom/ElementAttributeData.cpp:
        (WebCore::ElementAttributeData::ensureInlineStyleDecl):
        (WebCore):
        (WebCore::ElementAttributeData::destroyInlineStyleDecl):
        (WebCore::ElementAttributeData::ensureAttributeStyle):
        * dom/ElementAttributeData.h:
        (WebCore::ElementAttributeData::inlineStyleDecl):
        (ElementAttributeData):
        (WebCore::ElementAttributeData::attributeStyle):
        * dom/NamedNodeMap.cpp:
        * dom/NamedNodeMap.h:
        * dom/StyledElement.h:
        (StyledElement):
        (WebCore::StyledElement::inlineStyleDecl):
        (WebCore::StyledElement::ensureInlineStyleDecl):
        (WebCore::StyledElement::attributeStyle):
        (WebCore::StyledElement::ensureAttributeStyle):
        (WebCore::StyledElement::destroyInlineStyleDecl):

2012-02-06  Abhishek Arya  <inferno@chromium.org>

        Crash in SubframeLoader::loadSubframe.
        https://bugs.webkit.org/show_bug.cgi?id=77345

        Reviewed by Nate Chapin.

        Mutation event when loading subframe can blow away the
        main frame. Add a RefPtr to protect against that.

        Test: fast/frames/subframe-load-crash-main.html

        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::loadSubframe):

2012-02-06  ChangSeok Oh  <shivamidow@gmail.com>

        Initial implementation of GraphicsContext3DOpenGLES.cpp
        https://bugs.webkit.org/show_bug.cgi?id=76248

        Reviewed by Martin Robinson.

        Implemented APIs in GraphicsContext3DOpenGLES.cpp according to the GLES spec. roughly.
        But no way to run these codes right now, because they need an extra port
        specific implementation to work. I plan to add these extra codes for the GTK port
        in the next patch. And also this patch doesn't support anti-aliasing yet. Another bug
        will deal with it.
        Moved some APIs in GraphicsContext3DOpenGLES.cpp to GraphicsContext3DCommon.cpp.
        It looks it could be shared between gl and gles.
        Two helper functions are added to avoid code duplication in GraphicsContext3D.
        Added a missing period at the end of comment lines.

        No new tests required.
        We'll be able to verify this patch by using the existing webgl test cases.

        * platform/graphics/GraphicsContext3D.h: Add build flag to access stencilBuffer & depthBuffer for gles.
        (WebCore):
        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
        (WebCore::GraphicsContext3D::reshapeFBOs): Helper function extracted from GC3D::reshape to resize regular & multisampled FBOs.
        (WebCore::GraphicsContext3D::resolveMultisamplingIfNecessary): Helper function to resolve multisampling.
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::validateAttributes): Add condition to disable antialiasing & packedDepthStencilExtension for GLES.
        (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
        (WebCore::GraphicsContext3D::paintRenderingResultsToImageData):

        Following APIs looked shareable so that moved into GC3DOpenGLCommon.cpp.
        (WebCore::GraphicsContext3D::prepareTexture):
        (WebCore):
        (WebCore::GraphicsContext3D::readRenderingResults):
        (WebCore::GraphicsContext3D::reshape):
        (WebCore::GraphicsContext3D::bindFramebuffer):
        (WebCore::GraphicsContext3D::copyTexImage2D):
        (WebCore::GraphicsContext3D::copyTexSubImage2D):
        (WebCore::GraphicsContext3D::getActiveUniform):
        (WebCore::GraphicsContext3D::readPixels):

        Added a missing period at the end of comment line.
        (WebCore::GraphicsContext3D::compileShader):
        (WebCore::GraphicsContext3D::getActiveAttrib):
        (WebCore::GraphicsContext3D::uniform2fv):
        (WebCore::GraphicsContext3D::uniform3fv):
        (WebCore::GraphicsContext3D::uniform4fv):
        (WebCore::GraphicsContext3D::uniform2iv):
        (WebCore::GraphicsContext3D::uniform3iv):
        (WebCore::GraphicsContext3D::uniform4iv):
        (WebCore::GraphicsContext3D::uniformMatrix2fv):
        (WebCore::GraphicsContext3D::uniformMatrix3fv):
        (WebCore::GraphicsContext3D::uniformMatrix4fv):
        (WebCore::GraphicsContext3D::texSubImage2D):

        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
        (WebCore::GraphicsContext3D::reshapeFBOs): Same with the above.
        (WebCore::GraphicsContext3D::resolveMultisamplingIfNecessary): Same with the above.

        Brief explanation about what the differences are between gl and gles.
        (WebCore::GraphicsContext3D::renderbufferStorage): Removed codes for converting GLES parameter to GL parameter.
        (WebCore::GraphicsContext3D::getIntegerv): Removed codes that emulate GLES.
        (WebCore::GraphicsContext3D::texImage2D): Removed codes for converting GLES parameter to GL parameter.

2012-02-06  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Meta] Allow emulation of touch events
        https://bugs.webkit.org/show_bug.cgi?id=77096

        Reviewed by Pavel Feldman.

        This is the inspector part of the change, core part implementation tracked in bug 77105.

        * English.lproj/localizedStrings.js:
        * inspector/Inspector.json:
        * inspector/InspectorDOMAgent.cpp:
        (DOMAgentState):
        (WebCore::InspectorDOMAgent::clearFrontend):
        (WebCore::InspectorDOMAgent::restore):
        (WebCore):
        (WebCore::InspectorDOMAgent::updateTouchEventEmulationInDocuments):
        (WebCore::InspectorDOMAgent::setTouchEmulationEnabled):
        * inspector/InspectorDOMAgent.h:
        (InspectorDOMAgent):
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMAgent.prototype._captureDOM):
        (WebInspector.DOMAgent.prototype._emulateTouchEventsChanged):
        * inspector/front-end/Settings.js:
        (WebInspector.Settings):
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsScreen):

2012-02-06  Chris Guan  <chris.guan@torchmobile.com.cn>

        [Blackberry] Non-supported about: operations never stops loading
        https://bugs.webkit.org/show_bug.cgi?id=76366

        Reviewed by Rob Buis.

        If user typed a non-supported "about:" scheme such as "about:nonsupport",
        the loadAboutURL() function in NetworkManger should recognize and handle it as 
        an error of invalid url.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::loadAboutURL):
        (WebCore::NetworkJob::handleAbout):
        * platform/network/blackberry/NetworkJob.h:
        (NetworkJob):
        * platform/network/blackberry/NetworkManager.cpp:
        (WebCore::NetworkManager::startJob):

2012-02-06  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Remove unused disabledComputedProperties from methods in StylesSidebarPane
        https://bugs.webkit.org/show_bug.cgi?id=77876

        Reviewed by Pavel Feldman.

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.prototype._refreshUpdate):
        (WebInspector.StylesSidebarPane.prototype._rebuildUpdate):
        (WebInspector.StylesSidebarPane.prototype._markUsedProperties):
        (WebInspector.StylesSidebarPane.prototype._refreshSectionsForStyleRules):
        (WebInspector.StylesSidebarPane.prototype._rebuildSectionsForStyleRules):
        (WebInspector.StylePropertiesSection.prototype.onpopulate):
        (WebInspector.ComputedStylePropertiesSection):
        (WebInspector.ComputedStylePropertiesSection.prototype._isPropertyInherited):

2012-02-06  Alexei Filippov  <alexeif@chromium.org>

        Web Inspector: Redesign summary view / retaining tree contents
        https://bugs.webkit.org/show_bug.cgi?id=77870

        Reviewed by Pavel Feldman.

        1. Make object IDs less contrast.
        2. Put array indices in [].
        3. Do not write type if it's just "Object".

        * inspector/front-end/DetailedHeapshotGridNodes.js:
        (WebInspector.HeapSnapshotGenericObjectNode.prototype._createObjectCell):
        (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
        (WebInspector.HeapSnapshotObjectNode.prototype._emptyData):
        (WebInspector.HeapSnapshotObjectNode.prototype._enhanceData):
        (WebInspector.HeapSnapshotObjectNode.prototype._prefixObjectCell):
        (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
        * inspector/front-end/heapProfiler.css:
        (.detailed-heapshot-view .console-formatted-id):
        (.detailed-heapshot-view td.object-column span.grayed):

2012-02-06  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Texmap][Qt] Avoid an image copy when uploading textures in WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=77748

        Reviewed by Kenneth Rohde Christiansen.

        Use QPixmap::buffer() API to get access to the QPixmap's pixels without implicit copies.

        Instrumentation shows that the deep image copies created from TextureMapperGL are
        eliminated.

        * platform/graphics/opengl/TextureMapperGL.cpp:
        (WebCore::BitmapTextureGL::updateContents):

2012-02-06  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        LayoutTest failures on r106797
        https://bugs.webkit.org/show_bug.cgi?id=77868

        Call suspendIfNeeded from subclass of IDBRequest, IDBVersionChangeRequest.

        Reviewed by Simon Hausmann.

        * storage/IDBVersionChangeRequest.cpp:
        (WebCore::IDBVersionChangeRequest::create):

2012-02-06  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Qt] Implement ImageBuffer::copyImage(ImageBuffer::DontCopyBackingStore)
        https://bugs.webkit.org/show_bug.cgi?id=77689

        Reviewed by Kenneth Rohde Christiansen.

        Use StillImageQt::createForRendering when using DontCopyBackingStore.
        Enable DontCopyBackingStore in TextureMapperNode.
        This removes deep copies resulting from the use of ImageBuffer.

        Instrumentation shows that deep image copies resulted from ImageBuffer are eliminated.

        * platform/graphics/qt/ImageBufferQt.cpp:
        (WebCore::ImageBuffer::copyImage):
        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::renderContent):

2012-02-06  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        WebGestureEvent can not encode delta and area.
        https://bugs.webkit.org/show_bug.cgi?id=77728

        Add area field to PlatformGestureEvent.

        Reviewed by Kenneth Rohde Christiansen.

        * platform/PlatformGestureEvent.h:
        (WebCore::PlatformGestureEvent::PlatformGestureEvent):
        (WebCore::PlatformGestureEvent::area):

2012-02-06  Charles Wei  <charles.wei@torchmobile.com.cn>

        [BlackBerry]Use extension for a mimetype as the suggested extension
        if the url file doesn't have an extension.
        https://bugs.webkit.org/show_bug.cgi?id=76779

        Reviewed by Antonio Gomes.

        No new tests. 

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::sendResponseIfNeeded):

2012-02-06  Kentaro Hara  <haraken@chromium.org>

        Rename [HasIndexGetter], [HasNameGetter] and [HasCustomIndexSetter] IDLs
        https://bugs.webkit.org/show_bug.cgi?id=77848

        Reviewed by Adam Barth.

        For naming consistency with [CustomGetter] and [CustomSetter],
        this patch renames the following IDLs:

        [HasIndexGetter] => [IndexedGetter]  (Remove "Has". This IDL is for "indexed" properties
        in the Web IDL: http://dev.w3.org/2006/webapi/WebIDL/#idl-indexed-properties)
        [HasCustomIndexSetter] => [CustomIndexedSetter]  (Ditto.)
        [HasNameGetter] => [NamedGetter] (Remove "Has". This IDL is for "named" properties
        in the Web IDL: http://dev.w3.org/2006/webapi/WebIDL/#idl-named-properties)

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody):
        (GenerateGetOwnPropertyDescriptorBody):
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeaderNamedAndIndexedPropertyAccessors):
        (GenerateImplementationIndexer):
        (GenerateImplementationNamedPropertyGetter):

        * bindings/scripts/test/TestEventTarget.idl: No change in run-bindings-tests results.
        * bindings/scripts/test/TestTypedArray.idl: Ditto.

        * Modules/gamepad/GamepadList.idl:
        * css/CSSRuleList.idl:
        * css/CSSStyleDeclaration.idl:
        * css/CSSValueList.idl:
        * css/MediaList.idl:
        * css/StyleSheetList.idl:
        * css/WebKitCSSFilterValue.idl:
        * css/WebKitCSSKeyframesRule.idl:
        * css/WebKitCSSTransformValue.idl:
        * dom/ClientRectList.idl:
        * dom/DOMStringList.idl:
        * dom/DOMStringMap.idl:
        * dom/DataTransferItemList.idl:
        * dom/NamedNodeMap.idl:
        * dom/NodeList.idl:
        * dom/TouchList.idl:
        * fileapi/EntryArray.idl:
        * fileapi/EntryArraySync.idl:
        * fileapi/FileList.idl:
        * html/DOMSettableTokenList.idl:
        * html/DOMTokenList.idl:
        * html/HTMLAllCollection.idl:
        * html/HTMLCollection.idl:
        * html/HTMLFormElement.idl:
        * html/HTMLOptionsCollection.idl:
        * html/HTMLPropertiesCollection.idl:
        * html/HTMLSelectElement.idl:
        * html/TextTrackCueList.idl:
        * html/canvas/CanvasPixelArray.idl:
        * html/canvas/Float32Array.idl:
        * html/canvas/Float64Array.idl:
        * html/canvas/Int16Array.idl:
        * html/canvas/Int32Array.idl:
        * html/canvas/Int8Array.idl:
        * html/canvas/Uint16Array.idl:
        * html/canvas/Uint32Array.idl:
        * html/canvas/Uint8Array.idl:
        * html/canvas/Uint8ClampedArray.idl:
        * html/track/TextTrackList.idl:
        * mediastream/MediaStreamList.idl:
        * mediastream/MediaStreamTrackList.idl:
        * page/SpeechInputResultList.idl:
        * page/WebKitAnimationList.idl:
        * plugins/DOMMimeTypeArray.idl:
        * plugins/DOMPlugin.idl:
        * plugins/DOMPluginArray.idl:
        * storage/Storage.idl:

2012-02-06  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        Ensure timers and other active DOM objects do not fire in suspended documents.
        https://bugs.webkit.org/show_bug.cgi?id=53733

        ScriptExecutionContext now remembers it has suspended active DOM objects
        and suspends all newly installed active DOM objects as well.

        All create-calls active DOM objects now calls the post constructor method
        suspendIfNeeded that updates the suspend state. It is post constructor
        because the suspend/resume functions are virtual and thus can not be called
        from constructors.

        Reviewed by Mihai Parparita.

        Test: fast/events/suspend-timers.html

        * Modules/intents/IntentRequest.cpp:
        (WebCore::IntentRequest::create):
        * bindings/generic/ActiveDOMCallback.cpp:
        (WebCore::ActiveDOMCallback::ActiveDOMCallback):
        * dom/ActiveDOMObject.cpp:
        (WebCore::ActiveDOMObject::ActiveDOMObject):
        (WebCore::ActiveDOMObject::~ActiveDOMObject):
        (WebCore::ActiveDOMObject::suspendIfNeeded):
        * dom/ActiveDOMObject.h:
        (WebCore::ActiveDOMObject::suspendIfNeededCalled):
        * dom/DocumentEventQueue.cpp:
        (WebCore::DocumentEventQueue::DocumentEventQueue):
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::ScriptExecutionContext):
        (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
        (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
        (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
        (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
        (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
        (WebCore::ScriptExecutionContext::suspendActiveDOMObjectIfNeeded):
        * dom/ScriptExecutionContext.h:
        (WebCore::ScriptExecutionContext::activeDOMObjectsAreSuspended):
        * fileapi/DOMFileSystem.cpp:
        (WebCore::DOMFileSystem::create):
        * fileapi/FileReader.cpp:
        (WebCore::FileReader::create):
        * fileapi/FileReader.h:
        * fileapi/FileWriter.cpp:
        (WebCore::FileWriter::create):
        * fileapi/FileWriter.h:
        * history/CachedFrame.cpp:
        (WebCore::CachedFrame::CachedFrame):
        * html/HTMLAudioElement.cpp:
        (WebCore::HTMLAudioElement::create):
        * html/HTMLMarqueeElement.cpp:
        (WebCore::HTMLMarqueeElement::create):
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::create):
        * mediastream/PeerConnection.cpp:
        (WebCore::PeerConnection::create):
        * notifications/Notification.cpp:
        (WebCore::Notification::create):
        * notifications/NotificationCenter.cpp:
        (WebCore::NotificationCenter::create):
        * notifications/NotificationCenter.h:
        * page/DOMTimer.cpp:
        (WebCore::DOMTimer::install):
        (WebCore::DOMTimer::fired):
        * page/EventSource.cpp:
        (WebCore::EventSource::create):
        * page/SuspendableTimer.cpp:
        (WebCore::SuspendableTimer::SuspendableTimer):
        * storage/IDBDatabase.cpp:
        (WebCore::IDBDatabase::create):
        * storage/IDBRequest.cpp:
        (WebCore::IDBRequest::create):
        * storage/IDBTransaction.cpp:
        (WebCore::IDBTransaction::create):
        * webaudio/AudioContext.cpp:
        (WebCore::AudioContext::create):
        * websockets/WebSocket.cpp:
        (WebCore::WebSocket::create):
        * websockets/WebSocket.h:
        * workers/SharedWorker.cpp:
        (WebCore::SharedWorker::create):
        * workers/Worker.cpp:
        (WebCore::Worker::create):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::create):

2012-02-06  Philippe Normand  <pnormand@igalia.com>

        Adding FFTFrameGStreamer.cpp that I forgot to commit
        in r106537. That new file was reviewed in https://bugs.webkit.org/show_bug.cgi?id=73545.

        * platform/audio/gstreamer/FFTFrameGStreamer.cpp: Added.

2012-02-06  Hayato Ito  <hayato@chromium.org>

        Add <shadow> element, which is guarded by SHADOW_DOM flag.
        https://bugs.webkit.org/show_bug.cgi?id=76435

        Reviewed by Dimitri Glazkov.

        Test: fast/dom/shadow/shadow-element.html

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * html/HTMLElementsAllInOne.cpp:
        * html/HTMLTagNames.in:
        * html/shadow/HTMLShadowElement.cpp: Added.
        (WebCore):
        (WebCore::HTMLShadowElement::HTMLShadowElement):
        (WebCore::HTMLShadowElement::create):
        (WebCore::HTMLShadowElement::~HTMLShadowElement):
        * html/shadow/HTMLShadowElement.h: Added.
        (WebCore):
        (HTMLShadowElement):
        * html/shadow/HTMLShadowElement.idl: Added.

2012-02-06  Joe Thomas  <joethomas@motorola.com>

        https://bugs.webkit.org/show_bug.cgi?id=76995.
        WebKit fails IETC :indeterminate and input type=radio test.

        All input types should respect indeterminate property(getter and setter). This is true with other browsers.
        Indeterminate appearance for radio input type is supported by IOS platform. Webkit need not support indeterminate appearance
        for radio input type on other platforms.

        Reviewed by Kent Tamura.

        Test: fast/forms/indeterminate-input-types.html

        * html/CheckboxInputType.cpp:
        (WebCore::CheckboxInputType::supportsIndeterminateAppearance): Checks indeterminate appearance is supported.
        (WebCore):
        * html/CheckboxInputType.h:
        (CheckboxInputType):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setIndeterminate): Removed the check isCheckable().
        (WebCore::HTMLInputElement::isIndeterminate): Checks indeterminate appearance is supported.
        (WebCore):
        * html/HTMLInputElement.h:
        (HTMLInputElement):
        * html/InputType.cpp:
        (WebCore::InputType::supportsIndeterminateAppearance): Checks indeterminate appearance is supported.
        (WebCore):
        * html/InputType.h:
        (InputType):
        * html/RadioInputType.cpp:
        (WebCore::RadioInputType::willDispatchClick): Indeterminate related code is moved to IOS specific.
        (WebCore::RadioInputType::didDispatchClick): Ditto.
        (WebCore::RadioInputType::supportsIndeterminateAppearance): Checks indeterminate appearance is supported.
        (WebCore):
        * html/RadioInputType.h:
        (RadioInputType):

2012-02-06  Robin Cao  <robin.cao@torchmobile.com.cn>

        [BlackBerry] Remove unused variable in PluginViewBlackBerry
        https://bugs.webkit.org/show_bug.cgi?id=77847

        Reviewed by Kentaro Hara.

        No changes in behavior, so no new tests.

        * plugins/blackberry/PluginViewBlackBerry.cpp:
        (WebCore::PluginView::updatePluginWidget):

2012-02-06  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: Fix CallArgument type in Inspector.json
        https://bugs.webkit.org/show_bug.cgi?id=77839

        Reviewed by Yury Semikhatsky.

        Protocol description is fixed: field type is changed. No changes to
        program code are necessary.

        * inspector/Inspector-0.1.json:
        * inspector/Inspector-1.0.json:
        * inspector/Inspector.json:

2012-02-05  Gavin Barraclough  <barraclough@apple.com>

        Remove JSObject defineGetter/defineSetter lookupGetter/lookupSetter
        https://bugs.webkit.org/show_bug.cgi?id=77451

        Reviewed by Sam Weinig.

        These can now all be implemented in terms of defineOwnProperty & getPropertyDescriptor.
        Also remove initializeGetterSetterProperty, since this is equivalent to putDirectAccessor.

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore):
        (WebCore::JSDOMWindow::defineOwnProperty):
        * bindings/js/JSDOMWindowShell.cpp:
        (WebCore):
        * bindings/js/JSDOMWindowShell.h:
        (JSDOMWindowShell):
        * bindings/js/JSLocationCustom.cpp:
        (WebCore::JSLocation::defineOwnProperty):
        (WebCore::JSLocationPrototype::defineOwnProperty):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        * page/DOMWindow.idl:
        * page/Location.idl:

2012-02-06  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distrcheck.

        * GNUmakefile.am: Fix typo in inspector json file.
        * GNUmakefile.list.am: Remove non existent file.

2012-02-06  Yury Semikhatsky  <yurys@chromium.org>

        Unreviewed. Qt minimal compilation fix after r106777.

        * inspector/InspectorDatabaseAgent.h: added missing #if ENABLED guards.

2012-02-05  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: REGRESSION detached dom nodes aren't highlighted
        https://bugs.webkit.org/show_bug.cgi?id=77829

        This functionality was lost when I replaced (Native roots) with (Detached DOM trees) on v8 side.

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshotNode.prototype.get isDetachedDOMTreesRoot):
        (WebInspector.HeapSnapshot.prototype._markDetachedDOMTreeNodes):

2012-02-05  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: get rid of artificial heap snapshot nodes from the retaining tree.
        https://bugs.webkit.org/show_bug.cgi?id=77850

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/DetailedHeapshotGridNodes.js:
        (WebInspector.HeapSnapshotObjectNode):
        (WebInspector.HeapSnapshotObjectNode.prototype.updateHasChildren):
        (WebInspector.HeapSnapshotObjectNode.prototype._prefixObjectCell):
        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshotNode.prototype.get isArtificial):
        (WebInspector.HeapSnapshot.prototype._init):

2012-02-05  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py: switch domain agents to formal interfaces in BackendDispatcher
        https://bugs.webkit.org/show_bug.cgi?id=77444

        Reviewed by Yury Semikhatsky.

        All agent code is switched to formal interfaces. Actual agent class
        names and includes are dropped from InspectorBackendDispatcher.h.

        * inspector/CodeGeneratorInspector.py:
        (DomainNameFixes.get_fixed_data):
        (Generator.go):
        * inspector/InspectorAgent.h:
        * inspector/InspectorApplicationCacheAgent.h:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
        * inspector/InspectorCSSAgent.h:
        (InspectorCSSAgent):
        * inspector/InspectorConsoleAgent.h:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::highlightNode):
        * inspector/InspectorDOMAgent.h:
        (InspectorDOMAgent):
        * inspector/InspectorDOMDebuggerAgent.h:
        * inspector/InspectorDOMStorageAgent.h:
        * inspector/InspectorDatabaseAgent.h:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::setBreakpoint):
        (WebCore::InspectorDebuggerAgent::continueToLocation):
        * inspector/InspectorDebuggerAgent.h:
        (InspectorDebuggerAgent):
        * inspector/InspectorFileSystemAgent.h:
        * inspector/InspectorIndexedDBAgent.h:
        * inspector/InspectorMemoryAgent.h:
        * inspector/InspectorPageAgent.h:
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::getProfile):
        (WebCore::InspectorProfilerAgent::removeProfile):
        * inspector/InspectorProfilerAgent.h:
        (InspectorProfilerAgent):
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::setExtraHTTPHeaders):
        * inspector/InspectorResourceAgent.h:
        (InspectorResourceAgent):
        * inspector/InspectorRuntimeAgent.h:
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::start):
        * inspector/InspectorTimelineAgent.h:
        (InspectorTimelineAgent):
        * inspector/InspectorWorkerAgent.cpp:
        (WebCore::InspectorWorkerAgent::sendMessageToWorker):
        * inspector/InspectorWorkerAgent.h:
        (InspectorWorkerAgent):

2012-02-05  Kentaro Hara  <haraken@chromium.org>

        Rename [TreatNullAs=EmptyString] to [TreatNullAs=NullString],
        [TreatUndefinedAs=EmptyString] to [TreatUndefinedAs=NullString]
        https://bugs.webkit.org/show_bug.cgi?id=77611

        Reviewed by Adam Barth.

        While the Web IDL spec requires [TreatNullAs=EmptyString] and [TreatUndefinedAs=EmptyString],
        the current WebKit treats them as (not an empty string but) a null string.
        To avoid confusion, this patch renames [TreatNullAs=EmptyString] to [TreatNullAs=NullString],
        and [TreatUndefinedAs=EmptyString] to [TreatUndefinedAs=NullString].
        (Eventually we should fix WebKit so that it uses an empty string and then
        rename them to [TreatNullAs=EmptyString] and [TreatUndefinedAs=EmptyString].)

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm: Added FIXME.
        (JSValueToNative):
        * bindings/scripts/CodeGeneratorV8.pm: Ditto.
        (GetNativeTypeFromSignature):

        * bindings/scripts/test/TestObj.idl:
        * css/CSSCharsetRule.idl:
        * css/CSSPageRule.idl:
        * css/CSSRule.idl:
        * css/CSSStyleDeclaration.idl:
        * css/CSSStyleRule.idl:
        * css/CSSValue.idl:
        * css/MediaList.idl:
        * css/WebKitCSSKeyframesRule.idl:
        * dom/Attr.idl:
        * dom/CharacterData.idl:
        * dom/DOMImplementation.idl:
        * dom/Document.idl:
        * dom/Element.idl:
        * dom/NamedNodeMap.idl:
        * dom/Node.idl:
        * dom/ProcessingInstruction.idl:
        * dom/ShadowRoot.idl:
        * fileapi/Blob.idl:
        * fileapi/DirectoryEntry.idl:
        * fileapi/DirectoryEntrySync.idl:
        * fileapi/Entry.idl:
        * fileapi/EntrySync.idl:
        * fileapi/WebKitBlobBuilder.idl:
        * html/HTMLAnchorElement.idl:
        * html/HTMLButtonElement.idl:
        * html/HTMLCanvasElement.idl:
        * html/HTMLDocument.idl:
        * html/HTMLElement.idl:
        * html/HTMLFieldSetElement.idl:
        * html/HTMLFormElement.idl:
        * html/HTMLFrameElement.idl:
        * html/HTMLInputElement.idl:
        * html/HTMLKeygenElement.idl:
        * html/HTMLMediaElement.idl:
        * html/HTMLObjectElement.idl:
        * html/HTMLOutputElement.idl:
        * html/HTMLScriptElement.idl:
        * html/HTMLSelectElement.idl:
        * html/HTMLTextAreaElement.idl:
        * html/HTMLTitleElement.idl:
        * html/canvas/CanvasRenderingContext2D.idl:
        * page/Console.idl:
        * page/DOMWindow.idl:
        * storage/StorageEvent.idl:
        * svg/SVGAngle.idl:
        * svg/SVGElement.idl:
        * svg/SVGLength.idl:
        * svg/SVGScriptElement.idl:

2012-02-05  Kentaro Hara  <haraken@chromium.org>

        Rename [JSCCustom*] IDL to [JSCustom*] IDL
        https://bugs.webkit.org/show_bug.cgi?id=77844

        Reviewed by Adam Barth.

        Most existing JSC-specific IDLs have "JS" prefix. We can rename [JSCCustom] to
        [JSCustom], [JSCCustomGetter] to [JSCustomGetter], and [JSCCustomSetter] to
        [JSCustomSetter].

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * css/CSSStyleDeclaration.idl:
        * html/HTMLDocument.idl:
        * html/canvas/DataView.idl:
        * page/DOMWindow.idl:
        * page/MemoryInfo.idl:
        * webaudio/ConvolverNode.idl:
        * webaudio/DOMWindowWebAudio.idl:
        * webaudio/WaveShaperNode.idl:
        * websockets/DOMWindowWebSocket.idl:
        * workers/WorkerContext.idl:

2012-02-05  ChangSeok Oh  <shivamidow@gmail.com>

        [EFL] Enable WebGL with glx backend
        https://bugs.webkit.org/show_bug.cgi?id=77308

        Reviewed by Martin Robinson.

        Implemented WebGL feature for EFL port. The way is very similar to the one of GTK port.

        No new tests required. We can verify this feature with the existing test cases.

        * CMakeLists.txt: Revised common files required for WebGL.
        * PlatformEfl.cmake: Added EFL specific files.
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::getContext):
        * platform/graphics/ANGLEWebKitBridge.h:
        * platform/graphics/GraphicsContext3D.h:
        (WebCore):
        (WebCore::GraphicsContext3D::platformTexture):
        (GraphicsContext3D):
        (WebCore::GraphicsContext3D::paintsIntoCanvasBuffer):
        * platform/graphics/efl/DrawingBufferEfl.cpp: Copied from GTK port.
        (WebCore):
        (WebCore::DrawingBuffer::DrawingBuffer):
        (WebCore::DrawingBuffer::~DrawingBuffer):
        (WebCore::DrawingBuffer::platformColorBuffer):
        (WebCore::DrawingBuffer::paintCompositedResultsToCanvas):
        * platform/graphics/efl/GraphicsContext3DEfl.cpp: Almost same with GraphicsContext3DGtk.cpp.
        (WebCore::GraphicsContext3D::create):
        (WebCore::GraphicsContext3D::GraphicsContext3D):
        (WebCore::GraphicsContext3D::~GraphicsContext3D):
        (WebCore::GraphicsContext3D::makeContextCurrent):
        (WebCore::GraphicsContext3D::platformGraphicsContext3D):
        (WebCore::GraphicsContext3D::isGLES2Compliant):
        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
        (WebCore::Extensions3DOpenGL::createVertexArrayOES):
        (WebCore::Extensions3DOpenGL::deleteVertexArrayOES):
        (WebCore::Extensions3DOpenGL::isVertexArrayOES):
        (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

2012-02-05  Abhishek Arya  <inferno@chromium.org>

        Crash in FormSubmission::create.
        https://bugs.webkit.org/show_bug.cgi?id=77813

        Reviewed by Kent Tamura.

        Test: fast/forms/form-submission-create-crash.xhtml

        * loader/FormSubmission.cpp:
        (WebCore::FormSubmission::create):

2012-02-05  Andreas Kling  <awesomekling@apple.com>

        Remove unused file MappedAttributeEntry.h.
        <http://webkit.org/b/77841>

        Reviewed by Anders Carlsson.

        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/MappedAttributeEntry.h: Removed.
        * dom/StyledElement.h:

2012-02-05  Andreas Kling  <awesomekling@apple.com>

        StyledElement: Rename parseMappedAttribute() to parseAttribute().
        <http://webkit.org/b/77830>

        Reviewed by Anders Carlsson.

        Rename across the board and decorate subclasses with OVERRIDE.

2012-02-05  Gustavo Noronha Silva  <gns@gnome.org>

        Unreviewed syntax fix.

        * English.lproj/localizedStrings.js:

2012-02-05  Andreas Kling  <awesomekling@apple.com>

        Swedish buildfix.

        * dom/Document.cpp:
        (WebCore::wheelEventHandlerCountChanged):

2012-02-05  Anders Carlsson  <andersca@apple.com>

        The scrolling tree should be aware of any wheel event handlers on the page
        https://bugs.webkit.org/show_bug.cgi?id=77840

        Reviewed by Andreas Kling.

        If there are wheel event handlers on the page, any wheel events must be redispatched
        to the main thread so they can go through the DOM event handling.

        * dom/Document.cpp:
        (WebCore::wheelEventHandlerCountChanged):
        Inform the scrolling coordinator that the wheel event count changed.

        (WebCore::Document::didAddWheelEventHandler):
        (WebCore::Document::didRemoveWheelEventHandler):
        Call wheelEventHandlerCountChanged.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::frameViewWheelEventHandlerCountChanged):
        Call recomputeWheelEventHandlerCount.

        (WebCore::ScrollingCoordinator::recomputeWheelEventHandlerCount):
        Update the scrolling tree state.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::ScrollingTree):
        Initialize m_hasWheelEventHandlers to false.

        (WebCore::ScrollingTree::tryToHandleWheelEvent):
        If m_hasWheelEventHandlers is true, bail.

        (WebCore::ScrollingTree::commitNewTreeState):
        Update m_hasWheelEventHandlers.

        * page/scrolling/ScrollingTreeState.cpp:
        (WebCore::ScrollingTreeState::ScrollingTreeState):
        (WebCore::ScrollingTreeState::setWheelEventHandlerCount):
        Add getter and setter for the wheel event handler count.

2012-02-05  Andreas Kling  <awesomekling@apple.com>

        Remove mapped vs non-mapped attribute distinction.
        <http://webkit.org/b/77827>

        Reviewed by Antti Koivisto.

        Removed the isMappedAttribute flag from Attribute as it no longer serves
        a practical purpose. Previously, StyledElement would generate mapped
        attributes and plain Element would generate non-mapped ones.

        The distinction is now made much more clearly by dividing the work between
        Element's and StyledElement's attributeChanged() methods. The only thing
        that StyledElement wants to do in addition to what Element does is
        calling parseMappedAttribute() (which we'll rename in a later patch.)

        * dom/Attribute.cpp:
        (WebCore::Attribute::clone):
        * dom/Attribute.h:
        (WebCore::Attribute::create):
        (WebCore::Attribute::Attribute):
        (Attribute):
        * dom/Document.cpp:
        (WebCore::Document::createAttributeNS):
        * dom/Element.cpp:
        (WebCore::Element::attributeChanged):
        * dom/Element.h:
        (Element):
        * dom/Node.cpp:
        (WebCore::Node::dumpStatistics):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged):
        (WebCore::StyledElement::parseMappedAttribute):
        * dom/StyledElement.h:
        (StyledElement):
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::attributesForIsindexInput):
        * html/parser/TextDocumentParser.cpp:
        (WebCore::TextDocumentParser::insertFakePreElement):
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::getPresentationAttribute):
        * xml/parser/MarkupTokenBase.h:
        (WebCore::::initializeAttributes):

2012-02-05  Andreas Kling  <awesomekling@apple.com>

        Kill CSSMappedAttributeDeclaration.
        <http://webkit.org/b/77820>

        Reviewed by Antti Koivisto.

        Replace all use of CSSMappedAttributeDeclaration by StylePropertySet.
        Moved the setNeedsStyleRecalc() calls from CSSMappedAttributeDeclaration
        to the add/remove-CSS-property helpers in StyledElement.

        This removes one step of indirection for attribute styles and reduces
        the size of elements that have presentational attributes by one pointer.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.order:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/CSSMappedAttributeDeclaration.cpp: Removed.
        * dom/CSSMappedAttributeDeclaration.h: Removed.
        * dom/DOMAllInOne.cpp:

            Remove CSSMappedAttributeDeclaration.{cpp,h}

        * css/CSSParser.h:
        * css/CSSParser.cpp:
        (WebCore::parseSimpleLengthValue):

            Remove CSSParser::parseMappedAttributeValue(), we now use parseValue()
            directly instead. We lose the benefit of caching new CSSValues in the
            document's CSSValuePool but this optimization can be added back later.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchAllRules):
        * dom/ElementAttributeData.h:
        (ElementAttributeData):
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::ensureAttributeStyle):
        * dom/NamedNodeMap.h:
        (WebCore::NamedNodeMap::attributeStyle):
        (NamedNodeMap):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::removeCSSProperties):
        (WebCore::StyledElement::addCSSProperty):
        (WebCore::StyledElement::addCSSImageProperty):
        (WebCore::StyledElement::addCSSLength):
        (WebCore::StyledElement::addCSSColor):
        * dom/StyledElement.h:
        (WebCore):
        (WebCore::StyledElement::attributeStyle):
        (WebCore::StyledElement::ensureAttributeStyle):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::buildArrayForAttributeStyles):

2012-02-05  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: beautify retaining tree items view.
        https://bugs.webkit.org/show_bug.cgi?id=77810

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/DetailedHeapshotGridNodes.js:
        (WebInspector.HeapSnapshotGenericObjectNode.prototype._createObjectCell):
        (WebInspector.HeapSnapshotObjectNode.prototype._prefixObjectCell):
        * inspector/front-end/heapProfiler.css:
        (.cycled-ancessor-node):
        * inspector/front-end/profilesPanel.css:

2012-02-04  Shawn Singh  <shawnsingh@chromium.org>

        [chromium] Add support to force full damage in CCDamageTracker
        https://bugs.webkit.org/show_bug.cgi?id=76805

        Reviewed by James Robinson.

        Unit test added to CCDamageTrackerTest.cpp.

        This feature is needed for events that should cause the entire
        surface to be damaged, even if layers themselves had only partial
        damage or no damage at all. For example, tab-switching is one such
        event.

        * platform/graphics/chromium/cc/CCDamageTracker.cpp:
        (WebCore::CCDamageTracker::CCDamageTracker):
        (WebCore::CCDamageTracker::updateDamageRectForNextFrame):
        * platform/graphics/chromium/cc/CCDamageTracker.h:
        (WebCore::CCDamageTracker::forceFullDamageNextUpdate):
        (CCDamageTracker):

2012-02-04  Anders Carlsson  <andersca@apple.com>

        Remove dead code from ScrollingCoordinator
        https://bugs.webkit.org/show_bug.cgi?id=77821

        Reviewed by Sam Weinig.

        * WebCore.exp.in:
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::ScrollingCoordinator):
        * page/scrolling/ScrollingCoordinator.h:
        (ScrollingCoordinator):
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinator::frameViewScrollLayerDidChange):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
        (WebCore::RenderLayerCompositor::updateRootLayerPosition):

2012-02-04  Anders Carlsson  <andersca@apple.com>

        The scrolling tree should inform the main scrolling coordinator when the scroll position changes
        https://bugs.webkit.org/show_bug.cgi?id=77818

        Reviewed by Sam Weinig.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
        Set the main frame scroll position.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::updateMainFrameScrollPosition):
        Call ScrollingCoordinator::updateMainFrameScrollPosition on the main thread.

        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
        (WebCore::ScrollingTreeNodeMac::scrollBy):
        Call ScrollingTree::updateMainFrameScrollPosition.

2012-02-04  Andreas Kling  <awesomekling@apple.com>

        Element: Remove unnecessary attributeChanged() argument.
        <http://webkit.org/b/77814>

        Reviewed by Ryosuke Niwa.

        Remove the 'preserveDecls' argument to Element::attributeChanged() as that is no
        longer needed after the removal of per-attribute style declarations.
        Decorated subclass overrides with OVERRIDE since we're touching the lines.

        Also removed an old inaccurate comment in NamedNodeMap::setAttributes() - calling
        attributeChanged() is absolutely necessary to initialize element-specific state.

        * dom/Element.cpp:
        (WebCore::Element::attributeChanged):
        * dom/Element.h:
        (Element):
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::setAttributes):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged):
        * dom/StyledElement.h:
        (StyledElement):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::updateType):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::attributeChanged):
        * html/HTMLMediaElement.h:
        (HTMLMediaElement):
        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::attributeChanged):
        * html/HTMLScriptElement.h:
        (HTMLScriptElement):
        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::attributeChanged):
        * html/HTMLTrackElement.h:
        (HTMLTrackElement):
        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::attributeChanged):
        * svg/SVGAnimationElement.h:
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::attributeChanged):
        * svg/SVGElement.h:
        (SVGElement):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::attributeChanged):
        * svg/animation/SVGSMILElement.h:
        (SVGSMILElement):

2012-02-04  Ken Buchanan  <kenrb@chromium.org>

        Crash when reparenting children of flexible boxes
        https://bugs.webkit.org/show_bug.cgi?id=77458

        Reviewed by Ojan Vafai.

        This fixes some regressions I introduced in r106150. RenderBlock::
        removeChild needs to be careful about not collapsing anonymous
        blocks underneath flexible boxes, and also about node ordering
        when there is an after block.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::removeChild):
        (WebCore::RenderBlock::collapseAnonymousBoxChild):

2012-02-04  Ryosuke Niwa  <rniwa@webkit.org>

        Debug build fix after r106715.

        * html/HTMLDetailsElement.cpp:
        (WebCore::DetailsSummaryElement::create):

2012-02-04  Andreas Kling  <awesomekling@apple.com>

        Unreviewed test fix after r106740.
        <http://webkit.org/b/77204>

        Disable matched declaration caching for elements with attribute style until we can
        figure out how it's supposed to work.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchAllRules):

2012-02-03  Andreas Kling  <awesomekling@apple.com>

        Kill per-Attribute style declarations.
        <http://webkit.org/b/77204>

        Reviewed by Antti Koivisto.

        TL;DR summary: Remove the per-Attribute style declarations and replace them by a single
        style declaration on StyledElement that acts as a secondary inline style.

        The previous design was conceived in the Age of the Old Web(tm) where the majority of
        element styling was accomplished via attributes. Nowadays, CSS is a much better tool for
        this and we should optimize around that instead.

        StyledElements now have an attributeStyle() which contains all the styling from attributes.
        parseMappedAttribute() is responsible for adding/removing properties to the attributeStyle
        as the corresponding attributes come in/out of the element.

        Each Attribute instance shrinks by one pointer, each element that has attributes grows by
        one pointer. The styles from individual attributes are no longer shared, so content that
        uses a lot of repeating styling attributes will see a slight memory regression from this.
        Future improvements to this could enable sharing the attributeStyle between elements that
        have the same exact attributes to mitigate some of the damage.

        There should be no web-facing behavior change from this, but it does break two things:

        - The Inspector feature for displaying per-attribute styles. To keep things manageable,
          this patch simply files all the attribute styles together under an anonymous attribute
          in the Inspector.

        - The Obj-C DOM binding for Attr::style() has to be kept for compatibility reasons,
          though it's already deprecated. It will now always return nil, since there's no way to
          retrieve a live style declaration that's specific to a certain Attr.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchAllRules):
        (WebCore::CSSStyleSelector::canShareStyleWithElement):
        * dom/Attr.h:
        (WebCore):
        (Attr):
        (WebCore::Attr::style):
        * dom/Attribute.cpp:
        (WebCore::Attribute::clone):
        * dom/Attribute.h:
        (WebCore):
        (WebCore::Attribute::create):
        (WebCore::Attribute::createMapped):
        (Attribute):
        (WebCore::Attribute::Attribute):
        * dom/CSSMappedAttributeDeclaration.cpp:
        (WebCore::CSSMappedAttributeDeclaration::~CSSMappedAttributeDeclaration):
        (WebCore::CSSMappedAttributeDeclaration::setMappedProperty):
        * dom/CSSMappedAttributeDeclaration.h:
        (CSSMappedAttributeDeclaration):
        (WebCore::CSSMappedAttributeDeclaration::CSSMappedAttributeDeclaration):
        * dom/Element.h:
        (Element):
        * dom/ElementAttributeData.h:
        (ElementAttributeData):
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::ensureAttributeStyle):
        (WebCore):
        * dom/NamedNodeMap.h:
        (WebCore::NamedNodeMap::attributeStyle):
        (NamedNodeMap):
        * dom/StyledElement.cpp:
        (WebCore):
        (WebCore::StyledElement::attributeChanged):
        (WebCore::StyledElement::removeCSSProperties):
        (WebCore::StyledElement::addCSSProperty):
        (WebCore::StyledElement::addCSSImageProperty):
        (WebCore::StyledElement::addCSSLength):
        (WebCore::StyledElement::addCSSColor):
        * dom/StyledElement.h:
        (StyledElement):
        (WebCore::StyledElement::removeCSSProperty):
        (WebCore::StyledElement::attributeStyle):
        (WebCore::StyledElement::ensureAttributeStyle):
        * html/HTMLBRElement.cpp:
        (WebCore::HTMLBRElement::parseMappedAttribute):
        * html/HTMLBRElement.h:
        (HTMLBRElement):
        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::parseMappedAttribute):
        * html/HTMLBodyElement.h:
        (HTMLBodyElement):
        * html/HTMLDivElement.cpp:
        (WebCore::HTMLDivElement::parseMappedAttribute):
        * html/HTMLDivElement.h:
        (HTMLDivElement):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::applyBorderAttribute):
        (WebCore::HTMLElement::mapLanguageAttributeToLocale):
        (WebCore::HTMLElement::parseMappedAttribute):
        (WebCore::HTMLElement::removeHTMLAlignment):
        (WebCore):
        (WebCore::HTMLElement::addHTMLAlignmentToStyledElement):
        (WebCore::HTMLElement::setContentEditable):
        * html/HTMLElement.h:
        (HTMLElement):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::parseMappedAttribute):
        * html/HTMLEmbedElement.h:
        (HTMLEmbedElement):
        * html/HTMLFontElement.cpp:
        (WebCore::HTMLFontElement::parseMappedAttribute):
        * html/HTMLFontElement.h:
        (HTMLFontElement):
        * html/HTMLFrameSetElement.cpp:
        (WebCore::HTMLFrameSetElement::parseMappedAttribute):
        * html/HTMLFrameSetElement.h:
        (HTMLFrameSetElement):
        * html/HTMLHRElement.cpp:
        (WebCore::HTMLHRElement::parseMappedAttribute):
        * html/HTMLHRElement.h:
        (HTMLHRElement):
        * html/HTMLIFrameElement.cpp:
        (WebCore::HTMLIFrameElement::parseMappedAttribute):
        * html/HTMLIFrameElement.h:
        (HTMLIFrameElement):
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::parseMappedAttribute):
        * html/HTMLImageElement.h:
        (HTMLImageElement):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::parseMappedAttribute):
        * html/HTMLInputElement.h:
        (HTMLInputElement):
        * html/HTMLLIElement.cpp:
        (WebCore::HTMLLIElement::parseMappedAttribute):
        * html/HTMLLIElement.h:
        (HTMLLIElement):
        * html/HTMLMarqueeElement.cpp:
        (WebCore::HTMLMarqueeElement::parseMappedAttribute):
        * html/HTMLMarqueeElement.h:
        (HTMLMarqueeElement):
        * html/HTMLOListElement.cpp:
        (WebCore::HTMLOListElement::parseMappedAttribute):
        * html/HTMLOListElement.h:
        (HTMLOListElement):
        * html/HTMLOutputElement.cpp:
        * html/HTMLOutputElement.h:
        (HTMLOutputElement):
        * html/HTMLParagraphElement.cpp:
        (WebCore::HTMLParagraphElement::parseMappedAttribute):
        * html/HTMLParagraphElement.h:
        (HTMLParagraphElement):
        * html/HTMLPlugInElement.cpp:
        (WebCore::HTMLPlugInElement::parseMappedAttribute):
        * html/HTMLPlugInElement.h:
        (HTMLPlugInElement):
        * html/HTMLPreElement.cpp:
        (WebCore::HTMLPreElement::parseMappedAttribute):
        * html/HTMLPreElement.h:
        (HTMLPreElement):
        * html/HTMLTableCaptionElement.cpp:
        (WebCore::HTMLTableCaptionElement::parseMappedAttribute):
        * html/HTMLTableCaptionElement.h:
        (HTMLTableCaptionElement):
        * html/HTMLTableCellElement.cpp:
        (WebCore::HTMLTableCellElement::parseMappedAttribute):
        * html/HTMLTableCellElement.h:
        (HTMLTableCellElement):
        * html/HTMLTableColElement.cpp:
        (WebCore::HTMLTableColElement::parseMappedAttribute):
        * html/HTMLTableColElement.h:
        (HTMLTableColElement):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::parseMappedAttribute):
        * html/HTMLTableElement.h:
        (HTMLTableElement):
        * html/HTMLTablePartElement.cpp:
        (WebCore):
        (WebCore::HTMLTablePartElement::parseMappedAttribute):
        * html/HTMLTablePartElement.h:
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::parseMappedAttribute):
        * html/HTMLUListElement.cpp:
        (WebCore::HTMLUListElement::parseMappedAttribute):
        * html/HTMLUListElement.h:
        (HTMLUListElement):
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::parseMappedAttribute):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::buildArrayForAttributeStyles):
        * mathml/MathMLElement.cpp:
        (WebCore::MathMLElement::parseMappedAttribute):
        * mathml/MathMLElement.h:
        * svg/SVGImageElement.cpp:
        (WebCore::SVGImageElement::parseMappedAttribute):
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::parseMappedAttribute):
        (WebCore::SVGStyledElement::getPresentationAttribute):
        * svg/SVGStyledElement.h:
        (SVGStyledElement):
        * svg/SVGTextContentElement.cpp:
        (WebCore::SVGTextContentElement::parseMappedAttribute):

2012-02-03  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: get rid of cycles in retaining tree
        https://bugs.webkit.org/show_bug.cgi?id=77801

        Drive by fix: 'retained by' prefix was removed.

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/DetailedHeapshotGridNodes.js:
        (WebInspector.HeapSnapshotObjectNode):
        (WebInspector.HeapSnapshotObjectNode.prototype._updateHasChildren):
        (WebInspector.HeapSnapshotObjectNode.prototype._createChildNode):
        (WebInspector.HeapSnapshotObjectNode.prototype._prefixObjectCell):
        * inspector/front-end/profilesPanel.css:
        (.cycled-ancessor-node):

2012-02-04  Kentaro Hara  <haraken@chromium.org>

        Add the "JS" prefix to JSC specific IDL attributes
        https://bugs.webkit.org/show_bug.cgi?id=77693

        Reviewed by Darin Adler.

        Some JSC specific IDLs do not have "JS" prefix, e.g. [CustomIsReachable].
        It might be OK since JSC is the main JavaScript engine in WebKit, but
        distinguishing IDLs widely used in WebKit and IDLs used in JSC only would help
        people understand the role of IDLs.

        This patch renames the following JSC specific IDLs:

            CustomFinalize => JSCustomFinalize
            CustomIsReachable => JSCustomIsReachable
            CustomMarkFunction => JSCustomMarkFunction
            CustomToJS => JSCustomToJS
            CustomNativeConverter => JSCustomToNativeObject (Note: For naming consistency with [JSCustomToJS])
            GenerateIsReachable => JSGenerateIsReachable
            GenerateToJS => JSGenerateToJS
            NoStaticTables => JSNoStaticTables
            WindowEventListener => JSWindowEventListener
            InlineGetOwnPropertySlot => JSInlineGetOwnPropertySlot
            DelegatingPrototypePutFunction => JSCustomPrototypePutDelegate

        No tests. No changes in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody):
        (GenerateGetOwnPropertyDescriptorBody):
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (HasCustomToV8Implementation):

        * bindings/scripts/test/TestTypedArray.idl: No change in run-bindings-tests results.

        * css/CSSRule.idl:
        * css/CSSRuleList.idl:
        * css/CSSStyleDeclaration.idl:
        * css/CSSValue.idl:
        * css/MediaList.idl:
        * css/MediaQueryListListener.idl:
        * css/StyleMedia.idl:
        * css/StyleSheet.idl:
        * css/StyleSheetList.idl:
        * dom/Attr.idl:
        * dom/DOMCoreException.idl:
        * dom/DOMImplementation.idl:
        * dom/DOMStringMap.idl:
        * dom/Document.idl:
        * dom/Element.idl:
        * dom/ErrorEvent.idl:
        * dom/Event.idl:
        * dom/EventException.idl:
        * dom/EventListener.idl:
        * dom/MessageChannel.idl:
        * dom/MessageEvent.idl:
        * dom/MessagePort.idl:
        * dom/NamedNodeMap.idl:
        * dom/Node.idl:
        * dom/NodeFilter.idl:
        * dom/NodeIterator.idl:
        * dom/NodeList.idl:
        * dom/TreeWalker.idl:
        * dom/WebKitNamedFlow.idl:
        * fileapi/Blob.idl:
        * fileapi/DOMFileSystem.idl:
        * fileapi/DOMFileSystemSync.idl:
        * fileapi/DirectoryEntry.idl:
        * fileapi/DirectoryEntrySync.idl:
        * fileapi/DirectoryReader.idl:
        * fileapi/DirectoryReaderSync.idl:
        * fileapi/Entry.idl:
        * fileapi/EntryArray.idl:
        * fileapi/EntryArraySync.idl:
        * fileapi/EntrySync.idl:
        * fileapi/File.idl:
        * fileapi/FileEntry.idl:
        * fileapi/FileEntrySync.idl:
        * fileapi/FileError.idl:
        * fileapi/FileException.idl:
        * fileapi/FileList.idl:
        * fileapi/FileReader.idl:
        * fileapi/FileReaderSync.idl:
        * fileapi/FileWriter.idl:
        * fileapi/Metadata.idl:
        * fileapi/OperationNotAllowedException.idl:
        * fileapi/WebKitBlobBuilder.idl:
        * html/DOMFormData.idl:
        * html/DOMSettableTokenList.idl:
        * html/DOMTokenList.idl:
        * html/DOMURL.idl:
        * html/HTMLAllCollection.idl:
        * html/HTMLBodyElement.idl:
        * html/HTMLCollection.idl:
        * html/HTMLFrameSetElement.idl:
        * html/ImageData.idl:
        * html/MediaController.idl:
        * html/TextTrack.idl:
        * html/TextTrackCue.idl:
        * html/VoidCallback.idl:
        * html/canvas/ArrayBuffer.idl:
        * html/canvas/ArrayBufferView.idl:
        * html/canvas/CanvasRenderingContext.idl:
        * html/canvas/DataView.idl:
        * html/canvas/Float32Array.idl:
        * html/canvas/Float64Array.idl:
        * html/canvas/Int16Array.idl:
        * html/canvas/Int32Array.idl:
        * html/canvas/Int8Array.idl:
        * html/canvas/OESStandardDerivatives.idl:
        * html/canvas/OESTextureFloat.idl:
        * html/canvas/OESVertexArrayObject.idl:
        * html/canvas/Uint16Array.idl:
        * html/canvas/Uint32Array.idl:
        * html/canvas/Uint8Array.idl:
        * html/canvas/Uint8ClampedArray.idl:
        * html/canvas/WebGLCompressedTextures.idl:
        * html/canvas/WebGLDebugRendererInfo.idl:
        * html/canvas/WebGLDebugShaders.idl:
        * html/canvas/WebGLLoseContext.idl:
        * html/canvas/WebGLRenderingContext.idl:
        * html/track/TextTrackList.idl:
        * loader/appcache/DOMApplicationCache.idl:
        * mediastream/LocalMediaStream.idl:
        * page/BarInfo.idl:
        * page/Console.idl:
        * page/DOMSelection.idl:
        * page/DOMWindow.idl:
        * page/EventSource.idl:
        * page/Geolocation.idl:
        * page/History.idl:
        * page/Location.idl:
        * page/Navigator.idl:
        * page/Screen.idl:
        * page/WorkerNavigator.idl:
        * plugins/DOMMimeTypeArray.idl:
        * plugins/DOMPluginArray.idl:
        * storage/Database.idl:
        * storage/DatabaseSync.idl:
        * storage/IDBAny.idl:
        * storage/IDBKey.idl:
        * storage/SQLError.idl:
        * storage/SQLException.idl:
        * storage/SQLResultSet.idl:
        * storage/SQLResultSetRowList.idl:
        * storage/SQLTransaction.idl:
        * storage/SQLTransactionSync.idl:
        * storage/Storage.idl:
        * svg/SVGElementInstance.idl:
        * svg/SVGPathSeg.idl:
        * webaudio/AudioBufferCallback.idl:
        * webaudio/AudioBufferSourceNode.idl:
        * webaudio/AudioContext.idl:
        * webaudio/AudioDestinationNode.idl:
        * webaudio/AudioGain.idl:
        * webaudio/AudioGainNode.idl:
        * webaudio/AudioPannerNode.idl:
        * webaudio/AudioProcessingEvent.idl:
        * webaudio/BiquadFilterNode.idl:
        * webaudio/ConvolverNode.idl:
        * webaudio/DelayNode.idl:
        * webaudio/DynamicsCompressorNode.idl:
        * webaudio/HighPass2FilterNode.idl:
        * webaudio/JavaScriptAudioNode.idl:
        * webaudio/LowPass2FilterNode.idl:
        * webaudio/MediaElementAudioSourceNode.idl:
        * webaudio/OfflineAudioCompletionEvent.idl:
        * webaudio/RealtimeAnalyserNode.idl:
        * webaudio/WaveShaperNode.idl:
        * websockets/CloseEvent.idl:
        * websockets/WebSocket.idl:
        * workers/AbstractWorker.idl:
        * workers/DedicatedWorkerContext.idl:
        * workers/SharedWorker.idl:
        * workers/SharedWorkerContext.idl:
        * workers/Worker.idl:
        * workers/WorkerContext.idl:
        * workers/WorkerLocation.idl:
        * xml/XMLHttpRequest.idl:
        * xml/XMLHttpRequestException.idl:
        * xml/XMLHttpRequestProgressEvent.idl:
        * xml/XMLHttpRequestUpload.idl:
        * xml/XPathResult.idl:

2012-02-04  Emil A Eklund  <eae@chromium.org>

        Convert RenderTheme over to new layout abstraction
        https://bugs.webkit.org/show_bug.cgi?id=77783

        Reviewed by Eric Seidel.

        Change the RenderTheme classes to use the new layout abstraction as a
        part of the ongoing conversion work.

        No new tests.

        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::paint):
        (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
        (WebCore::RenderTheme::baselinePosition):
        (WebCore::RenderTheme::adjustRepaintRect):
        (WebCore::RenderTheme::meterSizeForBounds):
        * rendering/RenderTheme.h:
        (RenderTheme):
        (WebCore::RenderTheme::paintCapsLockIndicator):
        * rendering/RenderThemeChromiumMac.h:
        (RenderThemeChromiumMac):
        * rendering/RenderThemeChromiumMac.mm:
        (WebCore::RenderThemeChromiumMac::volumeSliderOffsetFromMuteButton):
        * rendering/RenderThemeChromiumSkia.cpp:
        (WebCore::RenderThemeChromiumSkia::convertToPaintingRect):
        (WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
        (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
        (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
        * rendering/RenderThemeChromiumSkia.h:
        * rendering/RenderThemeMac.h:
        (RenderThemeMac):
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::adjustRepaintRect):
        (WebCore::RenderThemeMac::inflateRect):
        (WebCore::RenderThemeMac::setControlSize):
        (WebCore::RenderThemeMac::paintCapsLockIndicator):
        (WebCore::RenderThemeMac::paintMenuList):
        (WebCore::RenderThemeMac::meterSizeForBounds):
        (WebCore::RenderThemeMac::paintMenuListButtonGradients):
        (WebCore::RenderThemeMac::setPopupButtonCellState):
        (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
        (WebCore::RenderThemeMac::volumeSliderOffsetFromMuteButton):
        * rendering/RenderThemeSafari.cpp:
        (WebCore::RenderThemeSafari::baselinePosition):
        * rendering/RenderThemeSafari.h:
        (RenderThemeSafari):
        * rendering/RenderThemeWin.cpp:
        (WebCore::RenderThemeWin::paintSearchFieldCancelButton):
        (WebCore::RenderThemeWin::paintSearchFieldResultsDecoration):
        (WebCore::RenderThemeWin::paintSearchFieldResultsButton):
        (WebCore::RenderThemeWin::volumeSliderOffsetFromMuteButton):
        * rendering/RenderThemeWin.h:
        (RenderThemeWin):

2012-02-04  Stephen White  <senorblanco@chromium.org>

        [chromium] Fix multi-second hangs in compositor invalidating large layers
        https://bugs.webkit.org/show_bug.cgi?id=77774

        Reviewed by James Robinson.

        Correctness covered by existing tests.

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::pushPropertiesTo):
        Remove tiles from the tiler when they are invalid (ie., no longer have
        texture backing).
        (WebCore::TiledLayerChromium::invalidateRect):
        Instead of iterating over the tile indices (which may be very large),
        iterate over the tile hash map instead.

2012-02-04  Swapna P  <spottabathini@innominds.com>

        Reviewed by Antonio Gomes.
        
        Bug: iframe with scrolling=no incorrectly autoscrollable
        https://bugs.webkit.org/show_bug.cgi?id=61558
        
        Added check for frame scrolling mode just before applying scroll on frame content in function RenderLayer::scrollRect
        
        Testcase: LayoutTests/fast/events/autoscroll-with-non-scrollable-parent.html
        
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollRectToVisible):

2012-02-03  Tim Horton  <timothy_horton@apple.com>

        Canvas-into-canvas drawing should respect backing store scale ratio
        https://bugs.webkit.org/show_bug.cgi?id=77784
        <rdar://problem/10549729>

        Reviewed by Dan Bernstein.

        Respect the backing store scale ratio when drawing a canvas into another
        canvas via ctx.drawImage(canvas, x, y). Previous behavior caused canvas
        drawing to differ based on the size of the backing store, which is ideally
        an implementation detail to authors.

        Also, rename the source canvas arguments to CanvasRenderingContext2D::drawImage
        to be more clear.

        No new tests.

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

2012-02-03  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=77782
        WebPageProxy::didNewFirstVisuallyNonEmptyLayout should is called more than 
        once on some pages with frames
        -and corresponding-
        <rdar://problem/10798474>

        Reviewed by Sam Weinig.

        startCountingRelevantRepaintedObjects() should only be called for the main 
        frame. Otherwise, the counter will be re-set inappropriately, and 
        didNewFirstVisuallyNonEmptyLayout may even end up firing more than once. 
        * page/FrameView.cpp:
        (WebCore::FrameView::performPostLayoutTasks):

2012-02-03  Benjamin Poulain  <bpoulain@apple.com>

        Reduce the memory allocations of WebCore's cssPropertyName()
        https://bugs.webkit.org/show_bug.cgi?id=74782

        Reviewed by Geoffrey Garen.

        Add a fast path to avoid the use of the StringBuilder.

        The string builder is needed for two cases:
        -CSS prefix (the character after the prefix must be uppercase)
        -JavaScript CamelCase name for CSS properties

        We can skip all memory allocations if the property is not in those
        two cases. We start by testing the string for uppercase characters,
        and just return the an identical string.

        This patch create a "fast case" 2.7 times faster than previously.
        The "slow case" is 2-3% slower due to the additional check at the beginning.

        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        (WebCore):
        (WebCore::containsASCIIUpperChar):
        (WebCore::cssPropertyName):
        (WebCore::isCSSPropertyName):

2012-02-03  Anders Carlsson  <andersca@apple.com>

        WebKit2 should dispatch wheel events to the new ScrollingTree class
        https://bugs.webkit.org/show_bug.cgi?id=77795

        Reviewed by Andreas Kling.

        * WebCore.exp.in:
        Add new symbols needed by WebKit2.

        * WebCore.xcodeproj/project.pbxproj:
        Make ScrollingTree.h private so it can be included by WebKit2.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::scrollingTree):
        * page/scrolling/ScrollingCoordinator.h:
        Add a scrolling tree getter.

2012-02-03  Dmitry Lomov  <dslomov@google.com>

        [Chromium] WebCore::toV8Context crashes if DomWindow::frame() returns null.
        https://bugs.webkit.org/show_bug.cgi?id=77686.

        Reviewed by Adam Barth.

        * bindings/v8/V8Helpers.cpp:
        (WebCore::toV8Context):

2012-02-03  Anders Carlsson  <andersca@apple.com>

        The scrolling tree should be able to handle wheel events
        https://bugs.webkit.org/show_bug.cgi?id=77794

        Reviewed by Andreas Kling.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::tryToHandleWheelEvent):
        New function. Currently this always returns that it was able to handle the wheel event,
        but this will change in the future.

        (WebCore::ScrollingTree::handleWheelEvent):
        Ask the root node to handle the wheel event.

        * page/scrolling/ScrollingTreeNode.h:
        Add a handleWheelEvent pure virtual member function.

        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
        (WebCore::ScrollingTreeNodeMac::handleWheelEvent):
        Call scrollBy for now. Eventually this should use a scroll elasticity controller to handle
        things like rubber-banding.

        (WebCore::ScrollingTreeNodeMac::scrollPosition):
        (WebCore::ScrollingTreeNodeMac::setScrollPosition):
        Add getters and setters for the scroll position.

        (WebCore::ScrollingTreeNodeMac::scrollBy):
        Update the scroll position given the offset.

2012-02-03  Ryosuke Niwa  <rniwa@webkit.org>

        Crash in Node::dispatchSubtreeModifiedEvent
        https://bugs.webkit.org/show_bug.cgi?id=77449

        Reviewed by Alexey Proskuryakov.

        The bug was caused by appendChild not retaining this pointer.
        This is normally okay because there's another owner within JSC/V8 binding code that
        holds onto the node but this isn't the case when nodes are created as a part
        of setting document.title. Fixed the crash by retaining the pointer as needed.

        Test: fast/dom/remove-body-during-title-creation.html

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::appendChild):

2012-02-03  Anders Carlsson  <andersca@apple.com>

        Apply changed properties from the updated scrolling tree state
        https://bugs.webkit.org/show_bug.cgi?id=77792

        Reviewed by Andreas Kling.

        * page/scrolling/ScrollingTreeNode.cpp:
        (WebCore::ScrollingTreeNode::update):
        Update the tree node properties from the scrolling tree state.

        * page/scrolling/ScrollingTreeNode.h:
        (WebCore::ScrollingTreeNode::scrollingTree):
        (WebCore::ScrollingTreeNode::viewportRect):
        (WebCore::ScrollingTreeNode::contentsSize):
        Add getters.

        * page/scrolling/ScrollingTreeState.h:
        (WebCore::ScrollingTreeState::changedProperties):
        New function for accessing the changed properties of the scrolling tree state.

        * page/scrolling/mac/ScrollingTreeNodeMac.h:
        * page/scrolling/mac/ScrollingTreeNodeMac.mm:
        (WebCore::ScrollingTreeNodeMac::update):
        Update the scroll layer from the scrolling tree if necessary.

2012-02-03  Brady Eidson  <beidson@apple.com>

        <rdar://problem/10742441> and https://bugs.webkit.org/show_bug.cgi?id=77766
        Need a WK2 API to filter which subframes go into WebArchives as they are created.

        Reviewed by Darin Adler.

        This adds a filter callback object that allows clients to get called back for each
        subframe that might be added to a WebArchive.

        API only, No new layout tests.

        * WebCore.exp.in:
        * loader/archive/cf/LegacyWebArchive.cpp:
        (WebCore::LegacyWebArchive::create):
        (WebCore::LegacyWebArchive::createFromSelection):
        * loader/archive/cf/LegacyWebArchive.h:
        (FrameFilter):
        (WebCore:: FrameFilter::~ FrameFilter):
        (LegacyWebArchive):

2012-02-03  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Key generators not rolled back if insertion fails or is aborted
        https://bugs.webkit.org/show_bug.cgi?id=77060

        Reviewed by Tony Chang.

        Test: storage/indexeddb/key-generator.html

        * storage/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::put): Add abort task to reset cache.
        (WebCore::IDBObjectStoreBackendImpl::revertAutoIncrementKeyCache):
        (WebCore):
        (WebCore::IDBObjectStoreBackendImpl::putInternal): Reset cache on error.
        * storage/IDBObjectStoreBackendImpl.h:
        (IDBObjectStoreBackendImpl):

2012-02-03  Tony Chang  <tony@chromium.org>

        positive and negative flex values are not being cleared on style changes
        https://bugs.webkit.org/show_bug.cgi?id=77771

        Reviewed by Ojan Vafai.

        If the width or height was a flex() value, but is no longer a flex
        value, we weren't clearing the positive and negative flex values in
        RenderStyle.

        Test: css3/flexbox/flex-no-flex.html

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyLength::applyValue):

2012-02-03  James Robinson  <jamesr@chromium.org>

        [chromium] Defer makeContextCurrent in compositor until first frame
        https://bugs.webkit.org/show_bug.cgi?id=77269

        Reviewed by Kenneth Russell.

        There are situations where we need to instantiate a compositor, but can't call makeContextCurrent() until some
        initialization work completes on another thread that we cannot block for. This defers the first
        makeContextCurrent() call until we need to produce the first frame at which point we know the call can succeed,
        assuming that the scheduler does the right thing.

        This is accomplished by splitting up proxy initialization into two pieces:
        *) initializeContext() which attempts to instantiate a GraphicsContext3D. This can fail if we can't make a
        context at all, in which case we abort completely and return NULL from CCLayerTreeHost::create().

        *) initializeLayerRenderer() which uses the previously-created context to instantiate our compositor objects and
            grab our renderer capabilities. This can fail if the context is not usable for compositing, which we report
            to the client as a lost context event.

        Internally this introduces a new state to the CCLayerTreeHostImpl where it has a context but does not yet have a
        LayerRendererChromium, which has fairly minimal impact. One other change is that we don't instantiate the
        TextureManagers until we have the renderer capabilities, but this isn't necessary until we want to start
        painting so it doesn't have any impact outside of some overly intrustive unit tests.

        * platform/graphics/chromium/ContentLayerChromium.cpp:
        (WebCore::ContentLayerChromium::paintContentsIfDirty):
        (WebCore::ContentLayerChromium::createTextureUpdater):
        * platform/graphics/chromium/ContentLayerChromium.h:
        (ContentLayerChromium):
        * platform/graphics/chromium/ImageLayerChromium.cpp:
        (WebCore::ImageLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/ImageLayerChromium.h:
        (ImageLayerChromium):
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        * platform/graphics/chromium/TiledLayerChromium.h:
        (WebCore::TiledLayerChromium::setSampledTexelFormat):
        (TiledLayerChromium):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
        (WebCore::CCLayerTreeHost::initialize):
        (WebCore::CCLayerTreeHost::initializeLayerRenderer):
        (WebCore):
        (WebCore::CCLayerTreeHost::beginCommitOnImplThread):
        (WebCore::CCLayerTreeHost::compositeAndReadback):
        (WebCore::CCLayerTreeHost::finishAllRendering):
        (WebCore::CCLayerTreeHost::setViewportSize):
        (WebCore::CCLayerTreeHost::setVisible):
        (WebCore::CCLayerTreeHost::updateLayers):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (CCLayerTreeHost):
        ():
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::isContextLost):
        * platform/graphics/chromium/cc/CCProxy.h:
        (CCProxy):
        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
        (WebCore::CCSingleThreadProxy::CCSingleThreadProxy):
        (WebCore::CCSingleThreadProxy::compositeAndReadback):
        (WebCore::CCSingleThreadProxy::initializeContext):
        (WebCore::CCSingleThreadProxy::initializeLayerRenderer):
        (WebCore::CCSingleThreadProxy::layerRendererCapabilities):
        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
        (CCSingleThreadProxy):
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::CCThreadProxy):
        (WebCore::CCThreadProxy::compositeAndReadback):
        (WebCore::CCThreadProxy::initializeContext):
        (WebCore):
        (WebCore::CCThreadProxy::initializeLayerRenderer):
        (WebCore::CCThreadProxy::layerRendererCapabilities):
        (WebCore::CCThreadProxy::initializeImplOnImplThread):
        (WebCore::CCThreadProxy::initializeContextOnImplThread):
        (WebCore::CCThreadProxy::initializeLayerRendererOnImplThread):
        * platform/graphics/chromium/cc/CCThreadProxy.h:
        (CCThreadProxy):

2012-02-03  James Robinson  <jamesr@chromium.org>

        Unreviewed compile fix for chromium - add commas after entries in list in WebCore.gypi

        * WebCore.gypi:

2012-02-03  Andreas Kling  <awesomekling@apple.com>

        Unreviewed build fix attempt after r106695.

        CSSMutableStyleDeclaration was renamed to StylePropertySet.

        * bindings/scripts/CodeGeneratorCPP.pm:
        (AddIncludesForType):
        * bindings/scripts/CodeGeneratorV8.pm:
        (AddIncludesForType):
        * bindings/v8/V8DOMWindowShell.cpp:
        * bindings/v8/V8DOMWrapper.cpp:
        * bindings/v8/V8Proxy.cpp:

2012-02-03  Yong Li  <yoli@rim.com>

        [BlackBerry] Let userIdleTime() return maximum number instead of 0 as
        most of other ports do.
        https://bugs.webkit.org/show_bug.cgi?id=77769

        Reviewed by Rob Buis.

        userIdleTime() should return a big number so it won't block page cache
        from releasing cached pages. See PageCache::releaseAutoreleasedPagesNowOrReschedule().

        No new tests as no visible functional changes.

        * platform/blackberry/SystemTimeBlackBerry.cpp:
        (WebCore::userIdleTime):

2012-02-03  Anders Carlsson  <andersca@apple.com>

        Commit scrolling tree state changes to the scrolling tree
        https://bugs.webkit.org/show_bug.cgi?id=77780

        Reviewed by Darin Adler.

        * WebCore.xcodeproj/project.pbxproj:
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::commitTreeState):
        Send the new scrolling tree state over to the ScrollingTree on the scrolling thread.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::ScrollingTree):
        Create a root node.

        (WebCore::ScrollingTree::commitNewTreeState):
        Update the root node.

        * page/scrolling/ScrollingTreeNode.cpp: Copied from Source/WebCore/page/scrolling/ScrollingTree.cpp.
        * page/scrolling/ScrollingTreeNode.h: Copied from Source/WebCore/page/scrolling/ScrollingTree.cpp.
        Stub out an abstract ScrollingTreeNode class.

        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinator::frameViewScrollLayerDidChange):
        Update the scroll layer on the tree state.

        * page/scrolling/mac/ScrollingTreeNodeMac.h: Copied from Source/WebCore/page/scrolling/ScrollingTree.cpp.
        * page/scrolling/mac/ScrollingTreeNodeMac.mm: Copied from Source/WebCore/page/scrolling/ScrollingTree.cpp.
        Stub out the concrete ScrollingTreeNodeMac subclass.

2012-02-03  Antti Koivisto  <antti@apple.com>

        Rename CSSMutableStyleDeclaration.h/.cpp to StylePropertySet.h/.cpp 
        https://bugs.webkit.org/show_bug.cgi?id=77779

        Reviewed by Darin Adler.

        Match the new class name.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        * bindings/js/JSDOMBinding.h:
        * bindings/scripts/CodeGeneratorJS.pm:
        (NativeToJSValue):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (AddIncludesForType):
        * css/CSSAllInOne.cpp:
        * css/CSSComputedStyleDeclaration.cpp:
        * css/CSSFontFaceRule.cpp:
        * css/CSSFontFaceRule.h:
        * css/CSSFontSelector.cpp:
        * css/CSSMutableStyleDeclaration.cpp: Removed.
        * css/CSSMutableStyleDeclaration.h: Removed.
        * css/CSSPageRule.cpp:
        * css/CSSParser.cpp:
        * css/CSSStyleRule.cpp:
        * css/CSSStyleRule.h:
        * css/StylePropertySet.cpp: Copied from Source/WebCore/css/CSSMutableStyleDeclaration.cpp.
        * css/StylePropertySet.h: Copied from Source/WebCore/css/CSSMutableStyleDeclaration.h.
        * css/WebKitCSSKeyframeRule.cpp:
        * css/WebKitCSSKeyframeRule.h:
        * css/WebKitCSSKeyframesRule.cpp:
        * css/WebKitCSSMatrix.cpp:
        * dom/CSSMappedAttributeDeclaration.h:
        * dom/ElementAttributeData.h:
        * dom/StyledElement.cpp:
        * dom/StyledElement.h:
        * editing/ApplyStyleCommand.cpp:
        * editing/DeleteButtonController.cpp:
        * editing/EditingStyle.cpp:
        * editing/Editor.cpp:
        * editing/EditorCommand.cpp:
        * editing/RemoveCSSPropertyCommand.cpp:
        * editing/ReplaceSelectionCommand.cpp:
        * editing/markup.cpp:
        * html/canvas/CanvasRenderingContext2D.cpp:
        * html/shadow/MeterShadowElement.cpp:
        * inspector/InspectorCSSAgent.cpp:
        * inspector/InspectorDOMAgent.cpp:
        * page/DragController.cpp:
        * page/Frame.cpp:
        * rendering/RenderLayer.cpp:
        * rendering/RenderTreeAsText.cpp:
        * svg/SVGFontFaceElement.h:
        (WebCore):

2012-02-03  Mihnea Ovidenie  <mihnea@adobe.com>

        Crash in RenderFlowThread::setRegionBoxesRegionStyle
        https://bugs.webkit.org/show_bug.cgi?id=77474

        Reviewed by David Hyatt.

        Flexbox and deprecated flexible box should also compute their region range
        when they are part of a named flow. Until now, only RenderBlock elements
        were doing that. Flexbox and deprecated flexible box, while implementing
        their own layoutBlock method, were not doing that.

        Tests: fast/regions/flexbox-in-region-crash.html
               fast/regions/select-in-region-crash.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computeInitialRegionRangeForBlock):
        (WebCore):
        (WebCore::RenderBlock::computeRegionRangeForBlock):
        (WebCore::RenderBlock::layoutBlock):
        * rendering/RenderBlock.h:
        (RenderBlock):
        * rendering/RenderDeprecatedFlexibleBox.cpp:
        (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::removeRegionFromThread):
        (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::RenderRegion):
        (WebCore::RenderRegion::paintReplaced):
        * rendering/RenderRegion.h:
        (RenderRegion):

2012-02-03  Anders Carlsson  <andersca@apple.com>

        Update the tree state after layout and add a way to commit it
        https://bugs.webkit.org/show_bug.cgi?id=77767

        Reviewed by Andreas Kling.

        * page/FrameView.cpp:
        (WebCore::FrameView::performPostLayoutTasks):
        Call ScrollingCoordinator::frameViewLayoutUpdated if we have a scrolling coordinator.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::ScrollingCoordinator):
        Initialize m_scrollingTreeStateCommitterTimer.

        (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
        Update the viewport rect and contents size of the frame view.

        (WebCore::ScrollingCoordinator::scheduleTreeStateCommit):
        Schedule a tree state commit unless we've already scheduled one or there are no changed properties.

        (WebCore::ScrollingCoordinator::scrollingTreeStateCommitterTimerFired):
        Call commitTreeState().

        (WebCore::ScrollingCoordinator::commitTreeStateIfNeeded):
        Commit the tree state unless there are no changed properties.

        (WebCore::ScrollingCoordinator::commitTreeState):
        Commit the tree state. We currently don't do anything with the committed state yet.

        * page/scrolling/ScrollingCoordinator.h:
        Add new member functions and the timer member variable.

        * page/scrolling/ScrollingTreeState.cpp:
        (WebCore::ScrollingTreeState::commit):
        Copy the current tree state and restore the changed properties on the original.

        * page/scrolling/ScrollingTreeState.h:
        (WebCore::ScrollingTreeState::hasChangedProperties):
        Return whether there are any changed properties in the tree state.

2012-02-03  Andreas Kling  <awesomekling@apple.com>

        HTMLElement: Clean up tabindex attribute parsing.
        <http://webkit.org/b/77763>

        Reviewed by Antti Koivisto.

        Remove an unnecessary getAttribute() call when parsing tabindexAttr.

        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::parseMappedAttribute):

2012-02-03  Anders Carlsson  <andersca@apple.com>

        ScrollingTreeState should keep track of the scroll layer
        https://bugs.webkit.org/show_bug.cgi?id=77762

        Reviewed by Andreas Kling.

        * WebCore.xcodeproj/project.pbxproj:
        * page/scrolling/ScrollingTreeState.h:
        (ScrollingTreeState):
        * page/scrolling/mac/ScrollingTreeStateMac.mm: Copied from Source/WebCore/page/scrolling/ScrollingTreeState.h.
        (WebCore):
        (WebCore::ScrollingTreeState::platformScrollLayer):
        (WebCore::ScrollingTreeState::setScrollLayer):

2012-02-03  Antti Koivisto  <antti@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=77740
        Split CSSMutableStyleDeclaration into separate internal and CSSOM types 

        Reviewed by Andreas Kling and Darin Adler.

        Split the CSSMutableStyleDeclaration into an internal type (StylePropertySet) and a CSSOM implementation type (PropertySetCSSStyleDeclaration).
        
        To keep things somewhat manageable, this patch does NOT

        - rename or add any files (so files names won't match types)
        - rename fields, methods or variables to match new type names (like CSSStyleRule::declaration() -> CSSStyleRule::propertySet())
        - try to realize any memory or performance gains (StylePropertySet loses the vptr but gains PropertySetCSSStyleDeclaration*)

        * WebCore.exp.in:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::copy):
        (WebCore::CSSComputedStyleDeclaration::makeMutable):
        (WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
        * css/CSSComputedStyleDeclaration.h:
        (WebCore):
        (CSSComputedStyleDeclaration):
        * css/CSSFontFaceRule.h:
        (WebCore::CSSFontFaceRule::style):
        (WebCore::CSSFontFaceRule::declaration):
        (WebCore::CSSFontFaceRule::setDeclaration):
        (CSSFontFaceRule):
        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule):
        * css/CSSMutableStyleDeclaration.cpp:
        (PropertySetCSSStyleDeclaration):
        (WebCore::PropertySetCSSStyleDeclaration::create):
        (WebCore::PropertySetCSSStyleDeclaration::PropertySetCSSStyleDeclaration):
        (WebCore):
        (WebCore::StylePropertySet::StylePropertySet):
        (WebCore::StylePropertySet::~StylePropertySet):
        (WebCore::StylePropertySet::deref):
        (WebCore::StylePropertySet::contextStyleSheet):
        (WebCore::StylePropertySet::copyPropertiesFrom):
        (WebCore::StylePropertySet::getPropertyValue):
        (WebCore::StylePropertySet::borderSpacingValue):
        (WebCore::StylePropertySet::appendFontLonghandValueIfExplicit):
        (WebCore::StylePropertySet::fontValue):
        (WebCore::StylePropertySet::get4Values):
        (WebCore::StylePropertySet::getLayeredShorthandValue):
        (WebCore::StylePropertySet::getShorthandValue):
        (WebCore::StylePropertySet::getCommonValue):
        (WebCore::StylePropertySet::getPropertyCSSValue):
        (WebCore::StylePropertySet::removeShorthandProperty):
        (WebCore::StylePropertySet::removeProperty):
        (WebCore::StylePropertySet::setNeedsStyleRecalc):
        (WebCore::StylePropertySet::propertyIsImportant):
        (WebCore::StylePropertySet::getPropertyShorthand):
        (WebCore::StylePropertySet::isPropertyImplicit):
        (WebCore::StylePropertySet::setProperty):
        (WebCore::StylePropertySet::parseDeclaration):
        (WebCore::StylePropertySet::addParsedProperties):
        (WebCore::StylePropertySet::addParsedProperty):
        (WebCore::StylePropertySet::asText):
        (WebCore::StylePropertySet::merge):
        (WebCore::StylePropertySet::addSubresourceStyleURLs):
        (WebCore::StylePropertySet::copyBlockProperties):
        (WebCore::StylePropertySet::removeBlockProperties):
        (WebCore::StylePropertySet::removePropertiesInSet):
        (WebCore::StylePropertySet::findPropertyWithId):
        (WebCore::StylePropertySet::propertyMatches):
        (WebCore::StylePropertySet::removeEquivalentProperties):
        (WebCore::StylePropertySet::copy):
        (WebCore::StylePropertySet::copyPropertiesInSet):
        (WebCore::StylePropertySet::ensureCSSStyleDeclaration):
        (WebCore::PropertySetCSSStyleDeclaration::length):
        (WebCore::PropertySetCSSStyleDeclaration::item):
        (WebCore::PropertySetCSSStyleDeclaration::parentRule):
        (WebCore::PropertySetCSSStyleDeclaration::cssText):
        (WebCore::PropertySetCSSStyleDeclaration::setCssText):
        (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
        (WebCore::PropertySetCSSStyleDeclaration::getPropertyValue):
        (WebCore::PropertySetCSSStyleDeclaration::getPropertyPriority):
        (WebCore::PropertySetCSSStyleDeclaration::getPropertyShorthand):
        (WebCore::PropertySetCSSStyleDeclaration::isPropertyImplicit):
        (WebCore::PropertySetCSSStyleDeclaration::setProperty):
        (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
        (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal):
        (WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):
        (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
        (WebCore::PropertySetCSSStyleDeclaration::parentStyleSheet):
        (WebCore::PropertySetCSSStyleDeclaration::copy):
        (WebCore::PropertySetCSSStyleDeclaration::makeMutable):
        (WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
        * css/CSSMutableStyleDeclaration.h:
        (WebCore):
        (StylePropertySet):
        (WebCore::StylePropertySet::create):
        (WebCore::StylePropertySet::createInline):
        * css/CSSPageRule.h:
        (WebCore):
        * css/CSSParser.cpp:
        (WebCore::parseColorValue):
        (WebCore::parseSimpleLengthValue):
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseDeclaration):
        (WebCore::CSSParser::createStyleRule):
        (WebCore::CSSParser::createFontFaceRule):
        (WebCore::CSSParser::createPageRule):
        (WebCore::CSSParser::createKeyframeRule):
        * css/CSSParser.h:
        (WebCore):
        (CSSParser):
        * css/CSSStyleDeclaration.h:
        (WebCore):
        (CSSStyleDeclaration):
        * css/CSSStyleRule.h:
        (WebCore::CSSStyleRule::style):
        (WebCore::CSSStyleRule::setDeclaration):
        (WebCore::CSSStyleRule::declaration):
        (CSSStyleRule):
        * css/CSSStyleSelector.cpp:
        (WebCore::leftToRightDeclaration):
        (WebCore::rightToLeftDeclaration):
        (WebCore::CSSStyleSelector::addMatchedDeclaration):
        (WebCore::CSSStyleSelector::collectMatchingRulesForList):
        (WebCore::CSSStyleSelector::matchAllRules):
        (WebCore::CSSStyleSelector::styleForKeyframe):
        (WebCore::isInsideRegionRule):
        (WebCore::CSSStyleSelector::applyDeclaration):
        (WebCore::CSSStyleSelector::applyDeclarations):
        (WebCore::CSSStyleSelector::matchPageRulesForList):
        * css/CSSStyleSelector.h:
        (CSSStyleSelector):
        (MatchedStyleDeclaration):
        * css/WebKitCSSKeyframeRule.cpp:
        (WebCore::WebKitCSSKeyframeRule::setDeclaration):
        * css/WebKitCSSKeyframeRule.h:
        (WebCore::WebKitCSSKeyframeRule::style):
        (WebCore::WebKitCSSKeyframeRule::declaration):
        (WebKitCSSKeyframeRule):
        * css/WebKitCSSMatrix.cpp:
        (WebCore::WebKitCSSMatrix::setMatrixValue):
        * dom/Attr.h:
        (WebCore::Attr::style):
        * dom/Attribute.h:
        (WebCore::Attribute::decl):
        * dom/CSSMappedAttributeDeclaration.h:
        (WebCore::CSSMappedAttributeDeclaration::declaration):
        (WebCore::CSSMappedAttributeDeclaration::CSSMappedAttributeDeclaration):
        (CSSMappedAttributeDeclaration):
        * dom/Document.cpp:
        (WebCore::Document::createCSSStyleDeclaration):
        * dom/ElementAttributeData.h:
        (ElementAttributeData):
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::ensureInlineStyleDecl):
        * dom/NamedNodeMap.h:
        (WebCore::NamedNodeMap::inlineStyleDecl):
        (NamedNodeMap):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::updateStyleAttribute):
        (WebCore::StyledElement::copyNonAttributeProperties):
        (WebCore::StyledElement::addSubresourceAttributeURLs):
        * dom/StyledElement.h:
        (WebCore::StyledElement::additionalAttributeStyle):
        (WebCore::StyledElement::inlineStyleDecl):
        (WebCore::StyledElement::ensureInlineStyleDecl):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
        (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
        (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
        (WebCore::ApplyStyleCommand::removeCSSStyle):
        (WebCore::ApplyStyleCommand::addBlockStyle):
        (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
        * editing/DeleteButtonController.cpp:
        (WebCore::DeleteButtonController::createDeletionUI):
        * editing/EditingStyle.cpp:
        (WebCore::copyEditingProperties):
        (WebCore::editingStyleFromComputedStyle):
        (WebCore):
        (WebCore::HTMLElementEquivalent::propertyExistsInStyle):
        (HTMLElementEquivalent):
        (WebCore::HTMLElementEquivalent::valueIsPresentInStyle):
        (HTMLTextDecorationEquivalent):
        (WebCore::HTMLTextDecorationEquivalent::propertyExistsInStyle):
        (WebCore::HTMLTextDecorationEquivalent::valueIsPresentInStyle):
        (HTMLAttributeEquivalent):
        (WebCore::HTMLAttributeEquivalent::valueIsPresentInStyle):
        (WebCore::HTMLAttributeEquivalent::attributeValueAsCSSValue):
        (WebCore::EditingStyle::EditingStyle):
        (WebCore::getRGBAFontColor):
        (WebCore::EditingStyle::setProperty):
        (WebCore::EditingStyle::setStyle):
        (WebCore::EditingStyle::overrideWithStyle):
        (WebCore::EditingStyle::extractAndRemoveTextDirection):
        (WebCore::EditingStyle::removeStyleAddedByNode):
        (WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode):
        (WebCore::EditingStyle::triStateOfStyle):
        (WebCore::EditingStyle::conflictsWithInlineStyleOfElement):
        (WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):
        (WebCore::elementMatchesAndPropertyIsNotInInlineStyleDecl):
        (WebCore::EditingStyle::mergeStyle):
        (WebCore::styleFromMatchedRulesForElement):
        (WebCore::EditingStyle::mergeStyleFromRules):
        (WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
        (WebCore::removePropertiesInStyle):
        (WebCore::EditingStyle::removeStyleFromRulesAndContext):
        (WebCore::EditingStyle::removePropertiesInElementDefaultStyle):
        (WebCore::EditingStyle::forceInline):
        (WebCore::reconcileTextDecorationProperties):
        (WebCore::StyleChange::StyleChange):
        (WebCore::setTextDecorationProperty):
        (WebCore::StyleChange::extractTextStyles):
        (WebCore::diffTextDecorations):
        (WebCore::fontWeightIsBold):
        (WebCore::getTextAlignment):
        (WebCore::getPropertiesNotIn):
        (WebCore::getIdentifierValue):
        (WebCore::isTransparentColorValue):
        (WebCore::hasTransparentBackgroundColor):
        * editing/EditingStyle.h:
        (WebCore):
        (WebCore::EditingStyle::create):
        (EditingStyle):
        (WebCore::EditingStyle::style):
        (StyleChange):
        * editing/Editor.cpp:
        (WebCore::Editor::setBaseWritingDirection):
        (WebCore::Editor::applyEditingStyleToElement):
        * editing/EditorCommand.cpp:
        (WebCore::applyCommandToFrame):
        (WebCore::executeApplyStyle):
        (WebCore::executeToggleStyleInList):
        (WebCore::executeApplyParagraphStyle):
        (WebCore::executeMakeTextWritingDirectionLeftToRight):
        (WebCore::executeMakeTextWritingDirectionNatural):
        (WebCore::executeMakeTextWritingDirectionRightToLeft):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::copyTypingStyle):
        * editing/FrameSelection.h:
        (WebCore):
        * editing/RemoveCSSPropertyCommand.cpp:
        (WebCore::RemoveCSSPropertyCommand::doApply):
        (WebCore::RemoveCSSPropertyCommand::doUnapply):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
        * editing/ReplaceSelectionCommand.h:
        (WebCore):
        * editing/markup.cpp:
        (WebCore):
        (StyledMarkupAccumulator):
        (WebCore::StyledMarkupAccumulator::wrapWithStyleNode):
        (WebCore::StyledMarkupAccumulator::appendStyleNodeOpenTag):
        (WebCore::propertyMissingOrEqualToNone):
        * html/HTMLTableCellElement.cpp:
        (WebCore::HTMLTableCellElement::additionalAttributeStyle):
        * html/HTMLTableCellElement.h:
        (HTMLTableCellElement):
        * html/HTMLTableColElement.cpp:
        (WebCore::HTMLTableColElement::additionalAttributeStyle):
        * html/HTMLTableColElement.h:
        (HTMLTableColElement):
        * html/HTMLTableElement.cpp:
        (WebCore::leakBorderStyle):
        (WebCore::HTMLTableElement::additionalAttributeStyle):
        (WebCore::HTMLTableElement::createSharedCellStyle):
        (WebCore::HTMLTableElement::additionalCellStyle):
        (WebCore::leakGroupBorderStyle):
        (WebCore::HTMLTableElement::additionalGroupStyle):
        * html/HTMLTableElement.h:
        (HTMLTableElement):
        * html/HTMLTableSectionElement.cpp:
        (WebCore::HTMLTableSectionElement::additionalAttributeStyle):
        * html/HTMLTableSectionElement.h:
        (HTMLTableSectionElement):
        * html/ValidationMessage.cpp:
        (WebCore::adjustBubblePosition):
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::setFont):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlPanelElement::setPosition):
        (WebCore::MediaControlPanelElement::resetPosition):
        (WebCore::MediaControlPanelElement::makeOpaque):
        (WebCore::MediaControlPanelElement::makeTransparent):
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::TrackLimiterElement::create):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::buildArrayForAttributeStyles):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyle::setPropertyText):
        (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
        * page/DragController.cpp:
        (WebCore::DragController::concludeEditDrag):
        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::retrieveResourcesForCSSDeclaration):
        * page/PageSerializer.h:
        (WebCore):
        (PageSerializer):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::resize):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::isEmptyOrUnstyledAppleStyleSpan):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::SVGFontFaceElement):

2012-02-03  Jochen Eisinger  <jochen@chromium.org>

        Remove unneccesary canExecuteScripts check from v8 bindings, and correctly indeicate when we're about to execute a script
        https://bugs.webkit.org/show_bug.cgi?id=76704

        Reviewed by Adam Barth.

        Test: http/tests/security/isolatedWorld/sandboxed-iframe.html

        * bindings/v8/ScheduledAction.cpp:
        (WebCore::ScheduledAction::execute):
        * bindings/v8/V8EventListener.cpp:
        (WebCore::V8EventListener::callListenerFunction):
        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::callListenerFunction):
        * bindings/v8/V8Proxy.cpp:
        (WebCore::V8Proxy::handleOutOfMemory):
        (WebCore::toV8Context):

2012-02-03  Anders Carlsson  <andersca@apple.com>

        Add ScrollingTreeState class
        https://bugs.webkit.org/show_bug.cgi?id=77756

        Reviewed by Andreas Kling.

        Add a new ScrollingTreeState whose intent is to be a data container for the current
        scrolling tree state. the ScrollingCoordinator class will update it and periodically
        send over the new state to the ScrollingTree object on the scrolling thread.

        * WebCore.xcodeproj/project.pbxproj:
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::ScrollingCoordinator):
        * page/scrolling/ScrollingCoordinator.h:
        (WebCore):
        (ScrollingCoordinator):
        * page/scrolling/ScrollingTreeState.cpp: Added.
        (WebCore):
        (WebCore::ScrollingTreeState::create):
        (WebCore::ScrollingTreeState::ScrollingTreeState):
        (WebCore::ScrollingTreeState::~ScrollingTreeState):
        (WebCore::ScrollingTreeState::setViewportRect):
        (WebCore::ScrollingTreeState::setContentsSize):
        * page/scrolling/ScrollingTreeState.h: Added.
        (WebCore):
        (ScrollingTreeState):
        (WebCore::ScrollingTreeState::viewportRect):
        (WebCore::ScrollingTreeState::contentsSize):

2012-02-03  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=77691
        Fix PlatformScreen layering violation and PlatformScreenMac's incorrect use 
        of device scale

        Reviewed by Andy Estes.

        Make screenAvailableRect() and screenRect() take a Widget again instead of a 
        FrameView since taking a FrameView is a layering violation.
        * WebCore.exp.in:
        * platform/PlatformScreen.h:
        (WebCore):
        * platform/blackberry/PlatformScreenBlackBerry.cpp:
        (WebCore::screenAvailableRect):
        (WebCore::screenRect):
        * platform/chromium/PlatformScreenChromium.cpp:
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):
        * platform/chromium/PlatformSupport.h:
        (WebCore):
        (PlatformSupport):
        * platform/efl/PlatformScreenEfl.cpp:
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):
        * platform/gtk/PlatformScreenGtk.cpp:
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):
        * platform/qt/PlatformScreenQt.cpp:
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):
        * platform/win/PlatformScreenWin.cpp:
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):
        * platform/wx/ScreenWx.cpp:
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):

        It's wrong for the deviceScaleFactor to be taken into consideration here at 
        all.
        * platform/mac/PlatformScreenMac.mm:
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):
        (WebCore::toUserSpace):
        (WebCore::toDeviceSpace):

2012-02-03  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/10352073> Floating image leaves hole in previous column when wrapped to next column
        https://bugs.webkit.org/show_bug.cgi?id=77694

        Reviewed by Darin Adler.

        Tests: fast/dynamic/float-moved-downwards-for-pagination-expected.html
               fast/dynamic/float-moved-downwards-for-pagination.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::clearFloats): When determining which lines to dirty,
        also check for changes to the top edge of the float, which can happen when
        float gets pushed down by a pagination strut.

2012-02-03  Alexis Menard  <alexis.menard@openbossa.org>

        REGRESSION (r105401-105403): Blue flash on css border transition
        https://bugs.webkit.org/show_bug.cgi?id=77491

        Reviewed by Simon Fraser.

        The new blend function added with r105403 takes unsigned as parameters therefore
        we have to be careful to not overflow in case the to is less than from (animating
        from 400 to 0 for example).

        Test: animations/animation-border-overflow.html

        * platform/animation/AnimationUtilities.h:
        (WebCore::blend):

2012-02-03  Justin Novosad  <junov@chromium.org>

        [Chromium] ImageBufferSkia: remove unnecessary overload of flush in
        AcceleratedDeviceContext
        https://bugs.webkit.org/show_bug.cgi?id=77741

        Reviewed by Stephen White.

        Removing dead code.

        * platform/graphics/skia/ImageBufferSkia.cpp:
        (AcceleratedDeviceContext):

2012-02-03  Balazs Kelemen  <kbalazs@webkit.org>

        Speculative unreviewed build fix for Qt-Windows
        after http://trac.webkit.org/changeset/106659.

        * platform/graphics/texmap/TextureMapper.h:
        (WebCore::TextureMapper::platformCreateAccelerated):

2012-02-03  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r106654.
        http://trac.webkit.org/changeset/106654
        https://bugs.webkit.org/show_bug.cgi?id=77742

        triggers asserts on mac, win, gtk, qt debug bots (Requested by
        philn-tp on #webkit).

        * Modules/intents/IntentRequest.cpp:
        (WebCore::IntentRequest::create):
        * bindings/generic/ActiveDOMCallback.cpp:
        (WebCore::ActiveDOMCallback::ActiveDOMCallback):
        * dom/ActiveDOMObject.cpp:
        (WebCore::ActiveDOMObject::ActiveDOMObject):
        (WebCore::ActiveDOMObject::~ActiveDOMObject):
        * dom/ActiveDOMObject.h:
        (ActiveDOMObject):
        * dom/DocumentEventQueue.cpp:
        (WebCore::DocumentEventQueue::DocumentEventQueue):
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::ScriptExecutionContext):
        (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
        (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
        (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
        (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
        (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
        * dom/ScriptExecutionContext.h:
        (ScriptExecutionContext):
        * fileapi/DOMFileSystem.cpp:
        (WebCore::DOMFileSystem::create):
        * fileapi/FileReader.cpp:
        (WebCore):
        * fileapi/FileReader.h:
        (WebCore::FileReader::create):
        * fileapi/FileWriter.cpp:
        (WebCore):
        * fileapi/FileWriter.h:
        (WebCore::FileWriter::create):
        * history/CachedFrame.cpp:
        (WebCore::CachedFrame::CachedFrame):
        * html/HTMLAudioElement.cpp:
        (WebCore::HTMLAudioElement::create):
        * html/HTMLMarqueeElement.cpp:
        (WebCore::HTMLMarqueeElement::create):
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::create):
        * mediastream/PeerConnection.cpp:
        (WebCore::PeerConnection::create):
        * notifications/Notification.cpp:
        (WebCore::Notification::create):
        * notifications/NotificationCenter.cpp:
        * notifications/NotificationCenter.h:
        (WebCore::NotificationCenter::create):
        * page/DOMTimer.cpp:
        (WebCore::DOMTimer::install):
        (WebCore::DOMTimer::fired):
        * page/EventSource.cpp:
        (WebCore::EventSource::create):
        * page/SuspendableTimer.cpp:
        (WebCore::SuspendableTimer::SuspendableTimer):
        * storage/IDBDatabase.cpp:
        (WebCore::IDBDatabase::create):
        * storage/IDBRequest.cpp:
        (WebCore::IDBRequest::create):
        * storage/IDBTransaction.cpp:
        (WebCore::IDBTransaction::create):
        * webaudio/AudioContext.cpp:
        (WebCore::AudioContext::create):
        * websockets/WebSocket.cpp:
        * websockets/WebSocket.h:
        (WebCore::WebSocket::create):
        * workers/SharedWorker.cpp:
        (WebCore::SharedWorker::create):
        * workers/Worker.cpp:
        (WebCore::Worker::create):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::create):

2012-02-03  Kentaro Hara  <haraken@chromium.org>

        Add the "V8" prefix to V8 specific IDL attributes
        https://bugs.webkit.org/show_bug.cgi?id=77713

        Reviewed by Adam Barth.

        This patch adds the "V8" prefix to a V8 specific IDL attribute:
        [EnabledAtRuntime] => [V8EnabledAtRuntime]

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateImplementation):
        (GetRuntimeEnableFunctionName):

        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/V8/V8TestObj.cpp: Updated the run-bindings-tests results.
        (WebCore::ConfigureV8TestObjTemplate):

        * Modules/gamepad/NavigatorGamepad.idl:
        * dom/Clipboard.idl:
        * dom/Document.idl:
        * dom/Element.idl:
        * dom/MouseEvent.idl:
        * dom/ShadowRoot.idl:
        * html/HTMLInputElement.idl:
        * html/HTMLMediaElement.idl:
        * html/HTMLTrackElement.idl:
        * html/TextTrack.idl:
        * html/TextTrackCue.idl:
        * html/TextTrackCueList.idl:
        * html/shadow/HTMLContentElement.idl:
        * html/track/TextTrackList.idl:
        * html/track/TrackEvent.idl:
        * page/DOMWindow.idl:
        * page/History.idl:
        * page/Navigator.idl:
        * storage/DOMWindowSQLDatabase.idl:
        * webaudio/DOMWindowWebAudio.idl:
        * websockets/DOMWindowWebSocket.idl:
        * workers/WorkerContext.idl:
        * xml/XMLHttpRequest.idl:

2012-02-03  Alexei Filippov  <alexeif@chromium.org>

        Web Inspector: Retained size for classes is too conservative in heap profiler
        https://bugs.webkit.org/show_bug.cgi?id=77726

        Reviewed by Yury Semikhatsky.

        Makes retained size of all objects of particular class show correct value
        in Summary view of heap profiler.

        * inspector/front-end/DetailedHeapshotGridNodes.js:
        (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshot.prototype._buildAggregates):
        (WebInspector.HeapSnapshot.prototype._buildAggregates.forDominatedNodes):

2012-02-02  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Introduce "Copy XPath" popup menu item for DOM elements
        https://bugs.webkit.org/show_bug.cgi?id=77619

        Reviewed by Vsevolod Vlasov.

        XPath is optimized whenever an element has the "id" attribute.

        Test: inspector/elements/node-xpath.xhtml

        * English.lproj/localizedStrings.js:
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMNode.XPathStep):
        (WebInspector.DOMNode.XPathStep.prototype.toString):
        (WebInspector.DOMNode.prototype.copyXPath):
        (WebInspector.DOMNode.prototype.isXMLNode):
        (WebInspector.DOMNode.prototype.xPath):
        (WebInspector.DOMNode.prototype._xPathValue):
        (WebInspector.DOMNode.prototype._xPathIndex):
        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeElement.prototype._populateNodeContextMenu):

2012-02-03  Dana Jansens  <danakj@chromium.org>

        [Chromium] Use the current clip when marking paints as opaque
        https://bugs.webkit.org/show_bug.cgi?id=77582

        Reviewed by Stephen White.

        New unit test in PlatformContextSkiaTest.cpp

        * platform/graphics/skia/OpaqueRegionSkia.cpp:
        (WebCore::OpaqueRegionSkia::markRectAsOpaque):
        * platform/graphics/skia/PlatformContextSkia.h:
        (WebCore::PlatformContextSkia::canvas):

2012-02-03  Yury Semikhatsky  <yurys@chromium.org>

        inspector/debugger/pause-in-inline-script.html asserts in chromium debug
        https://bugs.webkit.org/show_bug.cgi?id=77663

        Make ASSERT in MainResourceLoader not fail if debugger hits breakpoint
        in the main resource inline script.

        Reviewed by Pavel Feldman.

        Test: inspector/debugger/pause-in-inline-script.html

        * bindings/js/ScriptDebugServer.h:
        (WebCore::ScriptDebugServer::isPaused):
        (ScriptDebugServer):
        * bindings/v8/ScriptDebugServer.h:
        (ScriptDebugServer):
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::didClearMainFrameWindowObject):
        (WebCore):
        (WebCore::InspectorDebuggerAgent::isPaused):
        * inspector/InspectorDebuggerAgent.h:
        (InspectorDebuggerAgent):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::isDebuggerPausedImpl):
        (WebCore):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        (WebCore::InspectorInstrumentation::isDebuggerPaused):
        (WebCore):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::didFinishLoading):

2012-02-03  Kentaro Hara  <haraken@chromium.org>

        Fix typo
        https://bugs.webkit.org/show_bug.cgi?id=77708

        Reviewed by Adam Roben.

        This patch fixes typos: [ObjCLegacyUnamedParameters] => [ObjCLegacyUnnamedParameters]

        No tests. No change in behavior.

        * css/CSSMediaRule.idl:
        * css/CSSPrimitiveValue.idl:
        * css/CSSStyleDeclaration.idl:
        * css/CSSStyleSheet.idl:
        * dom/CharacterData.idl:
        * dom/DOMImplementation.idl:
        * dom/Document.idl:
        * dom/Element.idl:
        * dom/Event.idl:
        * dom/EventTarget.idl:
        * dom/MouseEvent.idl:
        * dom/MutationEvent.idl:
        * dom/NamedNodeMap.idl:
        * dom/Node.idl:
        * dom/Range.idl:
        * dom/UIEvent.idl:
        * html/HTMLSelectElement.idl:
        * xml/XPathExpression.idl:

2012-02-03  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Qt][Texmap] Refactor TextureMapper API to use ImageBuffers when possible.
        https://bugs.webkit.org/show_bug.cgi?id=77148

        Reviewed by Martin Robinson.

        Removed TextureMapperQt, and instead created a TextureMapperImageBuffer class,
        which responds to an "Software" mode of TextureMapper, instead of creating subclasses
        of TextureMapper directly. This allows using the software fallback of TextureMapper by any
        sort.

        To make the ImageBuffer backend easier, content updates to BitmapTexture can now use either
        an image, or a raw data pointer. The raw data pointer is provided for performance reasons,
        as converting data to/from Image references in Qt generates unnecessary deep copies of the
        image data.

        Also, functions that use TransformationMatrix were added to GraphicsContext, to allow for
        3D transforms in cross platform code.
        After this patch everything renders the same. An additional bug report was created to allow
        ImageBuffer shallow image copies: https://bugs.webkit.org/show_bug.cgi?id=77689

        Covered extensively by existing tests, no behavioral changes.

        * Target.pri:
        * platform/graphics/GraphicsContext.cpp:
        * platform/graphics/GraphicsContext.h:
        (WebCore):
        (GraphicsContext):
        * platform/graphics/cairo/TextureMapperCairo.cpp:
        * platform/graphics/opengl/TextureMapperGL.cpp:
        (TextureMapperGLData):
        (BitmapTextureGL):
        (WebCore::BitmapTextureGL::BitmapTextureGL):
        (WebCore::TextureMapperGL::beginPainting):
        (WebCore::BitmapTextureGL::reset):
        (WebCore):
        (WebCore::swizzleBGRAToRGBA):
        (WebCore::BitmapTextureGL::updateContents):
        (WebCore::BitmapTextureGL::destroy):
        (WebCore::TextureMapperGL::bindSurface):
        (WebCore::TextureMapper::platformCreateAccelerated):
        * platform/graphics/opengl/TextureMapperGL.h:
        (TextureMapperGL):
        (WebCore::TextureMapperGL::accelerationMode):
        (WebCore):
        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore):
        (WebCore::GraphicsContext::get3DTransform):
        (WebCore::GraphicsContext::concat3DTransform):
        (WebCore::GraphicsContext::set3DTransform):
        * platform/graphics/qt/TextureMapperQt.cpp: Removed.
        * platform/graphics/qt/TextureMapperQt.h: Removed.
        * platform/graphics/texmap/TextureMapper.cpp:
        (WebCore):
        (BitmapTextureImageBuffer):
        (TextureMapperImageBuffer):
        * platform/graphics/texmap/TextureMapper.h:
        (WebCore::BitmapTexture::BitmapTexture):
        (BitmapTexture):
        (WebCore::BitmapTexture::bpp):
        (WebCore::BitmapTexture::isOpaque):
        (WebCore::TextureMapper::setGraphicsContext):
        (WebCore::TextureMapper::graphicsContext):
        (TextureMapper):
        (WebCore::TextureMapper::TextureMapper):
        (WebCore::TextureMapper::platformCreateAccelerated):
        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::renderContent):
        (WebCore::TextureMapperNode::setContentsTileBackBuffer):
        * platform/graphics/texmap/TextureMapperNode.h:
        (TextureMapperNode):

2012-01-27  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: console evaluation doesn't work on breakpoint in pages with CSP
        https://bugs.webkit.org/show_bug.cgi?id=77203

        Inspector console evaluation now works when debugger is paused in a page with
        content-security-policy prohibiting evals.

        Reviewed by Pavel Feldman.

        Test: inspector/debugger/eval-on-pause-blocked.html

        * bindings/js/JSInjectedScriptHostCustom.cpp:
        * bindings/js/ScriptState.cpp:
        (WebCore::evalEnabled):
        (WebCore):
        (WebCore::setEvalEnabled):
        * bindings/js/ScriptState.h:
        (WebCore):
        * bindings/v8/ScriptObject.h:
        (WebCore::ScriptObject::ScriptObject):
        * bindings/v8/ScriptState.cpp:
        (WebCore::evalEnabled):
        (WebCore):
        (WebCore::setEvalEnabled):
        * bindings/v8/ScriptState.h:
        (WebCore):
        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
        * inspector/InjectedScript.cpp:
        (WebCore::InjectedScript::makeCall):
        * inspector/InjectedScriptHost.idl:
        * inspector/InjectedScriptSource.js:
        (.):

2012-02-03  Rob Buis  <rbuis@rim.com>

        Upstream targetType usage on ResourceRequest for BlackBerry port
        https://bugs.webkit.org/show_bug.cgi?id=77649

        Reviewed by Antonio Gomes.

        Upstream bits that make use of targetType enum.

        * loader/PingLoader.cpp:
        (WebCore::PingLoader::loadImage):
        (WebCore::PingLoader::sendPing):
        (WebCore::PingLoader::reportContentSecurityPolicyViolation):
        * platform/network/blackberry/ResourceRequest.h:
        (ResourceRequest):
        (WebCore::ResourceRequest::targetType):
        (WebCore::ResourceRequest::setTargetType):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::createRequest):

2012-02-03  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        Ensure timers and other active DOM objects do not fire in suspended documents.
        https://bugs.webkit.org/show_bug.cgi?id=53733

        ScriptExecutionContext now remembers it has suspended active DOM objects
        and suspends all newly installed active DOM objects as well.

        All create-calls active DOM objects now calls the post constructor method
        suspendIfNeeded that updates the suspend state. It is post constructor
        because the suspend/resume functions are virtual and thus can not be called
        from constructors.

        Reviewed by Mihai Parparita.

        Test: fast/events/suspend-timers.html

        * Modules/intents/IntentRequest.cpp:
        (WebCore::IntentRequest::create):
        * bindings/generic/ActiveDOMCallback.cpp:
        (WebCore::ActiveDOMCallback::ActiveDOMCallback):
        * dom/ActiveDOMObject.cpp:
        (WebCore::ActiveDOMObject::ActiveDOMObject):
        (WebCore::ActiveDOMObject::~ActiveDOMObject):
        (WebCore::ActiveDOMObject::suspendIfNeeded):
        * dom/ActiveDOMObject.h:
        (WebCore::ActiveDOMObject::suspendIfNeededCalled):
        * dom/DocumentEventQueue.cpp:
        (WebCore::DocumentEventQueue::DocumentEventQueue):
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::ScriptExecutionContext):
        (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
        (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
        (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
        (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
        (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
        (WebCore::ScriptExecutionContext::suspendActiveDOMObjectIfNeeded):
        * dom/ScriptExecutionContext.h:
        (WebCore::ScriptExecutionContext::activeDOMObjectsAreSuspended):
        * fileapi/DOMFileSystem.cpp:
        (WebCore::DOMFileSystem::create):
        * fileapi/FileReader.cpp:
        (WebCore::FileReader::create):
        * fileapi/FileReader.h:
        * fileapi/FileWriter.cpp:
        (WebCore::FileWriter::create):
        * fileapi/FileWriter.h:
        * history/CachedFrame.cpp:
        (WebCore::CachedFrame::CachedFrame):
        * html/HTMLAudioElement.cpp:
        (WebCore::HTMLAudioElement::create):
        * html/HTMLMarqueeElement.cpp:
        (WebCore::HTMLMarqueeElement::create):
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::create):
        * mediastream/PeerConnection.cpp:
        (WebCore::PeerConnection::create):
        * notifications/Notification.cpp:
        (WebCore::Notification::create):
        * notifications/NotificationCenter.cpp:
        (WebCore::NotificationCenter::create):
        * notifications/NotificationCenter.h:
        * page/DOMTimer.cpp:
        (WebCore::DOMTimer::install):
        (WebCore::DOMTimer::fired):
        * page/EventSource.cpp:
        (WebCore::EventSource::create):
        * page/SuspendableTimer.cpp:
        (WebCore::SuspendableTimer::SuspendableTimer):
        * storage/IDBDatabase.cpp:
        (WebCore::IDBDatabase::create):
        * storage/IDBRequest.cpp:
        (WebCore::IDBRequest::create):
        * storage/IDBTransaction.cpp:
        (WebCore::IDBTransaction::create):
        * webaudio/AudioContext.cpp:
        (WebCore::AudioContext::create):
        * websockets/WebSocket.cpp:
        (WebCore::WebSocket::create):
        * websockets/WebSocket.h:
        * workers/SharedWorker.cpp:
        (WebCore::SharedWorker::create):
        * workers/Worker.cpp:
        (WebCore::Worker::create):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::create):

2012-02-03  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        Do not ASSERT on TouchStationary TouchPoint state.
        https://bugs.webkit.org/show_bug.cgi?id=77620

        Reviewed by Kenneth Rohde Christiansen.

        * page/EventHandler.cpp:
        (WebCore::eventNameForTouchPointState): Explicitly show that TouchStationary is asserted.
        (WebCore::EventHandler::handleTouchEvent):
            Remove TouchStationary from ASSERT. The value of HitTestRequest is restored to the
            value it should have if hittested, but is not used.

2012-02-03  Kentaro Hara  <haraken@chromium.org>

        Add the "ObjC" prefix to ObjC specific IDL attributes
        https://bugs.webkit.org/show_bug.cgi?id=77708

        Reviewed by Adam Barth.

        This patch adds the "ObjC" prefix to ObjC specific IDL attributes, as follows:

            [Polymorphic] => [ObjCPolymorphic]
            [OldStyleObjC] => [ObjCLegacyUnamedParameters]
            [UsesView] => [ObjCUseDefaultView] (Note: Renamed for clarification)

        No tests. No changes in behavior.

        * bindings/scripts/CodeGeneratorObjC.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * css/CSSMediaRule.idl:
        * css/CSSPrimitiveValue.idl:
        * css/CSSRule.idl:
        * css/CSSStyleDeclaration.idl:
        * css/CSSStyleSheet.idl:
        * css/CSSValue.idl:
        * css/StyleSheet.idl:
        * dom/CharacterData.idl:
        * dom/DOMImplementation.idl:
        * dom/Document.idl:
        * dom/Element.idl:
        * dom/Event.idl:
        * dom/EventTarget.idl:
        * dom/MouseEvent.idl:
        * dom/MutationEvent.idl:
        * dom/NamedNodeMap.idl:
        * dom/Node.idl:
        * dom/Range.idl:
        * dom/UIEvent.idl:
        * html/HTMLCollection.idl:
        * html/HTMLSelectElement.idl:
        * svg/SVGPathSeg.idl:
        * xml/XPathExpression.idl:

2012-02-03  MORITA Hajime  <morrita@google.com>

        TypingCommand should be prepared against detached document.
        https://bugs.webkit.org/show_bug.cgi?id=77216

        Reviewed by Ryosuke Niwa.

        Added null checks for document()->frame().

        No new tests. Just tighten guards for possible codepaths.

        * editing/TypingCommand.cpp:
        (WebCore::TypingCommand::markMisspellingsAfterTyping):
        (WebCore::TypingCommand::typingAddedToOpenCommand):
        (WebCore::TypingCommand::deleteKeyPressed):
        (WebCore::TypingCommand::forwardDeleteKeyPressed):

2012-02-03  Kentaro Hara  <haraken@chromium.org>

        Rename [DontEnum] IDL to [NotEnumerable] IDL
        https://bugs.webkit.org/show_bug.cgi?id=77710

        Reviewed by Adam Barth.

        [DontEnum] is a negation of [[Enumerable]] in the ECMAScript spec
        (8.6.1 of http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf).
        This patch renames [DontEnum] to [NotEnumerable].

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateAttributesHashTable):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateSingleBatchedAttribute):
        (GenerateImplementation):

        * css/WebKitCSSMatrix.idl:
        * dom/DOMCoreException.idl:
        * dom/Document.idl:
        * dom/Element.idl:
        * dom/EventException.idl:
        * dom/RangeException.idl:
        * fileapi/FileException.idl:
        * fileapi/OperationNotAllowedException.idl:
        * html/DOMTokenList.idl:
        * html/HTMLAnchorElement.idl:
        * html/HTMLBodyElement.idl:
        * html/HTMLFrameSetElement.idl:
        * html/HTMLInputElement.idl:
        * page/DOMSelection.idl:
        * page/DOMWindow.idl:
        * page/Location.idl:
        * storage/IDBDatabaseException.idl:
        * storage/Storage.idl:
        * svg/SVGElementInstance.idl:
        * svg/SVGException.idl:
        * workers/WorkerLocation.idl:
        * xml/XMLHttpRequestException.idl:
        * xml/XPathException.idl:

2012-02-03  Kentaro Hara  <haraken@chromium.org>

        Rename [InitializedByConstructor] IDL to [InitializedByEventConstructor] IDL
        https://bugs.webkit.org/show_bug.cgi?id=77711

        Reviewed by Adam Barth.

        [InitializedByConstructor] can be used only when [ConstructorTemplate=Event]
        is specified on the interface. This patch renames [InitializedByConstructor] to
        [InitializedByEventConstructor] for clarification.

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateConstructorDefinition):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateEventConstructorCallback):

        * bindings/scripts/test/TestEventConstructor.idl:
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp: Updated the run-bindings-tests results.
        (WebCore):

        * dom/BeforeLoadEvent.idl:
        * dom/CustomEvent.idl:
        * dom/ErrorEvent.idl:
        * dom/Event.idl:
        * dom/HashChangeEvent.idl:
        * dom/MessageEvent.idl:
        * dom/OverflowEvent.idl:
        * dom/PageTransitionEvent.idl:
        * dom/PopStateEvent.idl:
        * dom/ProgressEvent.idl:
        * dom/WebKitAnimationEvent.idl:
        * dom/WebKitTransitionEvent.idl:
        * html/canvas/WebGLContextEvent.idl:
        * html/track/TrackEvent.idl:
        * storage/StorageEvent.idl:
        * websockets/CloseEvent.idl:

2012-02-03  Kentaro Hara  <haraken@chromium.org>

        Add the "CPP" prefix to CPP specific IDL attributes
        https://bugs.webkit.org/show_bug.cgi?id=77707

        Reviewed by Adam Barth.

        This patch adds the "CPP" prefix to a CPP specific IDL attribute.
        Specifically, this patch renames [PureInterface] to [CPPPureInterface]

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorCPP.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * css/MediaQueryListListener.idl:
        * dom/EventListener.idl:
        * dom/EventTarget.idl:
        * dom/NodeFilter.idl:

2012-01-27  Alexander Pavlov  <apavlov@chromium.org>

        Implement touch event emulation in the WebCore layer
        https://bugs.webkit.org/show_bug.cgi?id=77105

        Reviewed by Ryosuke Niwa.

        This change essentially maps mouse events into single-touch events in the following way:
        - mousedown -> touchstart
        - mouseup -> touchend
        - mousemove -> touchmove (between mousedown and mouseup).

        Test: fast/events/touch/emulate-touch-events.html

        * page/EventHandler.cpp:
        (SyntheticTouchPoint): A synthetic touch point built from PlatformMouseEvent.
        (WebCore::SyntheticTouchPoint::SyntheticTouchPoint):
        (SyntheticSingleTouchEvent): A synthetic touch point event built from PlatformMouseEvent.
        (WebCore::SyntheticSingleTouchEvent::SyntheticSingleTouchEvent):
        (WebCore::EventHandler::handleMouseReleaseEvent): Invoke maybeDispatchSyntheticTouchEvent() and bail out if necessary.
        (WebCore::EventHandler::handleMousePressEvent): Invoke maybeDispatchSyntheticTouchEvent() and bail out if necessary.
        (WebCore::EventHandler::mouseMoved): Invoke maybeDispatchSyntheticTouchEvent() and bail out if necessary.
        (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled): Dispatch a synthetic touch event if necessary.
        * page/EventHandler.h: Added new method.
        * page/Settings.cpp:
        (WebCore::Settings::Settings): Added m_touchEventEmulationEnabled initializer.
        * page/Settings.h: Added m_touchEventEmulationEnabled, getter, and setter.
        (WebCore::Settings::setTouchEventEmulationEnabled): Added.
        (WebCore::Settings::isTouchEventEmulationEnabled): Added.
        * platform/PlatformTouchPoint.h:
        (WebCore::PlatformTouchPoint::PlatformTouchPoint): Unconditionally compile the parameterless ctor.
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::setTouchEventEmulationEnabled): Added for testing.
        * testing/InternalSettings.h: Added setTouchEventEmulationEnabled() for testing.
        * testing/InternalSettings.idl: Added setTouchEventEmulationEnabled() for testing.

2012-02-03  Kentaro Hara  <haraken@chromium.org>

        Remove [NoCPPCustom] IDL
        https://bugs.webkit.org/show_bug.cgi?id=77704

        Reviewed by Adam Barth.

        This patch removes [NoCPPCustom], by replacing [Custom, NoCPPCustom]
        in HTMLDocument.idl with [JSCCustom, V8Custom].

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorCPP.pm:
        (ShouldSkipType):
        * html/HTMLDocument.idl:

2012-02-03  Kentaro Hara  <haraken@chromium.org>

        Remove [LegacyParent] from CodeGeneratorGObject.pm, and rename it to [JSLegacyParent]
        https://bugs.webkit.org/show_bug.cgi?id=77706

        Reviewed by Adam Barth.

        This patch removes dead code about [LegacyParent] from CodeGeneratorGObject.pm,
        and renames [LegacyParent] to [JSLegacyParent].

        No tests. No changes in behavior.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (Generate):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GetParentClassName):
        (GenerateHeader):
        (GenerateImplementation):
        * page/DOMWindow.idl:
        * workers/WorkerContext.idl:

2012-02-03  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: preserve elements panel selection upon node drag'n'drop
        https://bugs.webkit.org/show_bug.cgi?id=77722

        Reviewed by Vsevolod Vlasov.

        Test: inspector/elements/move-node.html

        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMAgent.prototype._markRevision):
        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeOutline.prototype._ondrop):
        (WebInspector.ElementsTreeOutline.prototype._doMove.callback):
        (WebInspector.ElementsTreeOutline.prototype._doMove):

2012-02-03  Shinya Kawanaka  <shinyak@google.com>

       Reimplement DETAILS and SUMMARY using selector query.
        https://bugs.webkit.org/show_bug.cgi?id=75930

        Reviewed by Hajime Morita.

        DETAILS is reimplemented using content element and its fallback feature.
        We don't need to recreate DOM even if SUMMARY is removed from or added into DETAILS.

        No new tests, should be covered by existing tests.

        * html/HTMLDetailsElement.cpp:
        (WebCore::DetailsSummaryElement::fallbackSummary):
          Takes fallback element of content summary.
        (DetailsSummaryElement):
        (WebCore::DetailsSummaryElement::create):
          Creates a fallback element also.
        (WebCore):
        (WebCore::HTMLDetailsElement::create):
        (WebCore::HTMLDetailsElement::HTMLDetailsElement):
        (WebCore::HTMLDetailsElement::createShadowSubtree):
        (WebCore::HTMLDetailsElement::findMainSummary):
        (WebCore::HTMLDetailsElement::parseMappedAttribute):
        (WebCore::HTMLDetailsElement::childShouldCreateRenderer):
        (WebCore::HTMLDetailsElement::toggleOpen):
        * html/HTMLDetailsElement.h:
        (HTMLDetailsElement):
        * html/HTMLSummaryElement.cpp:
        (WebCore::HTMLSummaryElement::isMainSummary):

2012-02-03  Jochen Eisinger  <jochen@chromium.org>

        Crash when trying to add a timer to a detached document.
        https://bugs.webkit.org/show_bug.cgi?id=77692

        Reviewed by Alexey Proskuryakov.

        In http://webkit.org/b/77370, a timer is fired on a detached document.
        Since a document clears all timers when it is detached, and it
        shouldn't be possible to add a timer to a detached document, we crash
        if this should happen anyway. This will hopefully result in an easier
        to debug crash dump.

        * page/DOMTimer.cpp:
        (WebCore::DOMTimer::DOMTimer):

2012-02-03  Shinya Kawanaka  <shinyak@google.com>

        Stop calling Element::ensureShadowRoot in Internals.
        https://bugs.webkit.org/show_bug.cgi?id=77612

        Reviewed by Hajime Morita.

        We want to check a shadow root is built-in or created by users to support multiple shadow subtrees.
        But Element::ensureShadowRoot() makes it difficult, because it doesn't care about the returning shadow element
        is built-in or user generated, so let's remove Element::ensureShadowRoot().

        As a first step, this patch removes ensureShadowRoot() in Internals.

        No new tests, because no changes in behavior.

        * WebCore.exp.in:
        * testing/Internals.cpp:
        (WebCore::Internals::ensureShadowRoot):

2012-02-02  Alexei Filippov  <alexeif@chromium.org>

        Web Inspector: Always show percents together with counters in heap inspector.
        https://bugs.webkit.org/show_bug.cgi?id=77434

        Reviewed by Pavel Feldman.

        * inspector/front-end/DetailedHeapshotGridNodes.js:
        (WebInspector.HeapSnapshotGridNode.prototype._toPercentString):
        (WebInspector.HeapSnapshotGridNode.prototype._createValueCell):
        (WebInspector.HeapSnapshotGenericObjectNode.prototype.createCell):
        (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
        (WebInspector.HeapSnapshotConstructorNode.prototype.createCell):
        (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
        (WebInspector.HeapSnapshotDiffNode.prototype.get data):
        * inspector/front-end/DetailedHeapshotView.js:
        (WebInspector.HeapSnapshotContainmentDataGrid):
        (WebInspector.HeapSnapshotConstructorsDataGrid):
        (WebInspector.HeapSnapshotDiffDataGrid):
        (WebInspector.HeapSnapshotDominatorsDataGrid):
        (WebInspector.DetailedHeapshotView.prototype._mouseDownInContentsGrid):
        (WebInspector.DetailedHeapshotView.prototype.get _isShowingAsPercent):
        (WebInspector.DetailedHeapshotView.prototype._percentClicked):
        * inspector/front-end/heapProfiler.css:
        (.detailed-heapshot-view .data-grid span.percent-column):

2012-02-02  Matt Falkenhagen  <falken@chromium.org>

        Use content-language from http-equiv to set document locale and font
        https://bugs.webkit.org/show_bug.cgi?id=76701

        Reviewed by Darin Adler.

        So far, only content-language set through http-equiv is used; the HTTP Content-Language
        header is not yet supported.

        Tests: fast/text/content-language-case-insensitivity.html
               fast/text/content-language-mapped-to-webkit-locale.html
               fast/text/international/content-language-font-selection-expected.html
               fast/text/international/content-language-font-selection.html
               fast/text/international/content-language-with-subtags-expected.html
               fast/text/international/content-language-with-subtags.html

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::styleForDocument): Use content language when selecting initial font.
        * dom/Document.cpp:
        (WebCore::Document::setContentLanguage): Recalculate style so language is taken into account.
        (WebCore):
        * dom/Document.h:
        (Document):

2012-02-02  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r106620.
        http://trac.webkit.org/changeset/106620
        https://bugs.webkit.org/show_bug.cgi?id=77716

        It broke non ENABLE(3D_RENDERING) builds (Requested by
        Ossy_morning on #webkit).

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * platform/graphics/GraphicsContext.h:
        (WebCore):
        (GraphicsContext):
        * platform/graphics/cairo/TextureMapperCairo.cpp:
        (WebCore::TextureMapper::create):
        (WebCore):
        * platform/graphics/opengl/TextureMapperGL.cpp:
        (Entry):
        (DirectlyCompositedImageRepository):
        (WebCore::TextureMapperGLData::DirectlyCompositedImageRepository::findOrCreate):
        (WebCore::TextureMapperGLData::DirectlyCompositedImageRepository::deref):
        (WebCore::TextureMapperGLData::DirectlyCompositedImageRepository::DirectlyCompositedImageRepository):
        (WebCore::TextureMapperGLData::DirectlyCompositedImageRepository::~DirectlyCompositedImageRepository):
        (TextureMapperGLData):
        (BitmapTextureGL):
        (WebCore::BitmapTextureGL::isOpaque):
        (WebCore::BitmapTextureGL::pack):
        (WebCore::BitmapTextureGL::unpack):
        (WebCore::BitmapTextureGL::isPacked):
        (WebCore::BitmapTextureGL::BitmapTextureGL):
        (WebCore::TextureMapperGL::beginPainting):
        (WebCore::BitmapTextureGL::reset):
        (WebCore::BitmapTextureGL::beginPaint):
        (WebCore::BitmapTextureGL::endPaint):
        (WebCore):
        (WebCore::BitmapTextureGL::updateContents):
        (WebCore::BitmapTextureGL::updateRawContents):
        (WebCore::BitmapTextureGL::setContentsToImage):
        (WebCore::BitmapTextureGL::destroy):
        (WebCore::TextureMapperGL::bindSurface):
        * platform/graphics/opengl/TextureMapperGL.h:
        (TextureMapperGL):
        (WebCore::TextureMapperGL::allowSurfaceForRoot):
        (BGRA32PremultimpliedBuffer):
        (WebCore::BGRA32PremultimpliedBuffer::~BGRA32PremultimpliedBuffer):
        (WebCore):
        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
        * platform/graphics/qt/GraphicsContextQt.cpp:
        * platform/graphics/qt/TextureMapperQt.cpp: Added.
        (WebCore):
        (WebCore::BitmapTextureQt::destroy):
        (WebCore::BitmapTextureQt::reset):
        (WebCore::BitmapTextureQt::beginPaint):
        (WebCore::BitmapTextureQt::endPaint):
        (WebCore::BitmapTextureQt::updateContents):
        (WebCore::BitmapTextureQt::save):
        (WebCore::BitmapTextureQt::setContentsToImage):
        (WebCore::BitmapTextureQt::pack):
        (WebCore::BitmapTextureQt::unpack):
        (WebCore::TextureMapperQt::beginClip):
        (WebCore::TextureMapperQt::endClip):
        (WebCore::TextureMapperQt::viewportSize):
        (WebCore::TextureMapperQt::TextureMapperQt):
        (WebCore::TextureMapperQt::setGraphicsContext):
        (WebCore::TextureMapperQt::graphicsContext):
        (WebCore::TextureMapperQt::bindSurface):
        (WebCore::TextureMapperQt::drawTexture):
        (WebCore::TextureMapper::create):
        (WebCore::TextureMapperQt::createTexture):
        (WebCore::BitmapTextureQt::BitmapTextureQt):
        (WebCore::TextureMapperQt::beginPainting):
        (WebCore::TextureMapperQt::endPainting):
        (BGRA32PremultimpliedBufferQt):
        (WebCore::BGRA32PremultimpliedBufferQt::beginPaint):
        (WebCore::BGRA32PremultimpliedBufferQt::endPaint):
        (WebCore::BGRA32PremultimpliedBufferQt::data):
        (WebCore::BGRA32PremultimpliedBuffer::create):
        (WebCore::uidForImage):
        * platform/graphics/qt/TextureMapperQt.h: Added.
        (WebCore):
        (BitmapTextureQt):
        (WebCore::BitmapTextureQt::~BitmapTextureQt):
        (WebCore::BitmapTextureQt::size):
        (WebCore::BitmapTextureQt::isValid):
        (WebCore::BitmapTextureQt::sourceRect):
        (WebCore::BitmapTextureQt::isPacked):
        (WebCore::BitmapTextureQt::painter):
        (TextureMapperQt):
        (WebCore::TextureMapperQt::allowSurfaceForRoot):
        (WebCore::TextureMapperQt::initialize):
        (WebCore::TextureMapperQt::create):
        (WebCore::TextureMapperQt::currentPainter):
        * platform/graphics/texmap/TextureMapper.cpp:
        * platform/graphics/texmap/TextureMapper.h:
        (WebCore::BitmapTexture::BitmapTexture):
        (WebCore::BitmapTexture::allowOfflineTextureUpload):
        (BitmapTexture):
        (WebCore::BitmapTexture::pack):
        (WebCore::BitmapTexture::unpack):
        (WebCore::BitmapTexture::isPacked):
        (WebCore::BitmapTexture::updateRawContents):
        (WebCore::BitmapTexture::beginPaintMedia):
        (WebCore::BitmapTexture::save):
        (WebCore::BitmapTexture::lock):
        (WebCore::BitmapTexture::unlock):
        (WebCore::BitmapTexture::isLocked):
        (TextureMapper):
        (WebCore::TextureMapper::viewportSize):
        (WebCore::TextureMapper::setViewportSize):
        (WebCore::TextureMapper::allowPartialUpdates):
        (WebCore::TextureMapper::isOpenGLBacked):
        (WebCore::TextureMapper::setTransform):
        (WebCore::TextureMapper::transform):
        * platform/graphics/texmap/TextureMapperImageBuffer.cpp: Removed.
        * platform/graphics/texmap/TextureMapperImageBuffer.h: Removed.
        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::renderContent):
        (WebCore::TextureMapperNode::setContentsTileBackBuffer):
        * platform/graphics/texmap/TextureMapperNode.h:
        (TextureMapperNode):

2012-02-02  Keishi Hattori  <keishi@webkit.org>

        ColorInputType needs to use ensureInlineStyleDecl
        https://bugs.webkit.org/show_bug.cgi?id=77699

        Reviewed by Kent Tamura.

        Because WebCore internally should use the more specific CSSMutableStyleDeclaration
        http://trac.webkit.org/changeset/105739

        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::updateColorSwatch):

2012-02-02  Roland Steiner  <rolandsteiner@chromium.org>

        Simplify SelectorChecker::checkSelector and checkOneSelector
        https://bugs.webkit.org/show_bug.cgi?id=77697

        Make use of Element::previous/nextElementSibling.
        Made those methods inline.
        Simplify code in checkSelector and checkOneSelector, esp. for first/nth/nth-last/last/only-child implementations.

        Reviewed by Andreas Kling.

        No new tests. (refactoring)

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkSelector):
        (WebCore::SelectorChecker::checkOneSelector):
        * dom/Element.cpp:
        * dom/Element.h:
        (WebCore::Element::previousElementSibling):
        (WebCore):
        (WebCore::Element::nextElementSibling):

2012-02-02  Keishi Hattori  <keishi@webkit.org>

        ColorChooserClient is missing a virtual destructor
        https://bugs.webkit.org/show_bug.cgi?id=77698

        Reviewed by Kent Tamura.

        * platform/ColorChooserClient.h:
        (WebCore::ColorChooserClient::~ColorChooserClient): Added.

2012-02-02  Keishi Hattori  <keishi@webkit.org>

        Remove OVERRIDE from ColorInputType::valueAsColor
        https://bugs.webkit.org/show_bug.cgi?id=77701

        Reviewed by Kent Tamura.

        * html/ColorInputType.h:
        (WebCore::ColorInputType::valueAsColor):

2012-02-02  Bear Travis  <betravis@adobe.com>

        Support 'disabled' attribute on SVGStyleElement
        https://bugs.webkit.org/show_bug.cgi?id=52130

        Adding disabled property to SVGStyleElement, which
        mirrors the functionality added to HTMLStyleElement
        for DOM1. The disabled property reflects and sets
        the disabled state of its style sheet.

        Based off of patch for bug 25287

        Reviewed by Dirk Schulze.

        Test: svg/dom/SVGStyleElement/disable-svg-style-element.html

        * svg/SVGStyleElement.cpp:
        (WebCore::SVGStyleElement::disabled):
        (WebCore):
        (WebCore::SVGStyleElement::setDisabled):
        * svg/SVGStyleElement.h:
        (SVGStyleElement):
        * svg/SVGStyleElement.idl:

2012-02-02  Hayato Ito  <hayato@chromium.org>

        Make ShadowRoot interface inherit DocumentFragment interface in IDL.
        https://bugs.webkit.org/show_bug.cgi?id=77511

        Reviewed by Kentaro Hara.

        This patch contains only the change of IDL to isolate issues.
        Other changes, such as tests for querySelector of ShadowRoot, will be added in follow-up patches.

        No tests. No change in behavior.

        * dom/ShadowRoot.idl:

2012-02-02  Raymond Toy  <rtoy@google.com>

        Check parameters to biquad filters
        https://bugs.webkit.org/show_bug.cgi?id=71413

        Reviewed by Kenneth Russell.

        Tests added for each filter type and for the limiting cases for
        each filter type.

        * platform/audio/Biquad.cpp:
        (WebCore::Biquad::setLowpassParams):
        (WebCore::Biquad::setHighpassParams):
        (WebCore::Biquad::setLowShelfParams):
        (WebCore::Biquad::setHighShelfParams):
        (WebCore::Biquad::setPeakingParams):
        (WebCore::Biquad::setAllpassParams):
        (WebCore::Biquad::setNotchParams):
        (WebCore::Biquad::setBandpassParams):
        Check for invalid parameters and clip them to something sensible.
        Also check for the limiting cases and try to use the limiting form
        of the z-transform for the biquad.  Some issues cannot be
        consistently handled because the z-transform is not continuous as
        the parameters approach the limit.

2012-02-02  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Qt][Texmap] Refactor TextureMapper API to use ImageBuffers when possible.
        https://bugs.webkit.org/show_bug.cgi?id=77148

        Reviewed by Martin Robinson.

        Removed TextureMapperQt, and instead created a TextureMapperImageBuffer class,
        which responds to an "Software" mode of TextureMapper, instead of creating subclasses
        of TextureMapper directly. This allows using the software fallback of TextureMapper by any
        sort.

        To make the ImageBuffer backend easier, content updates to BitmapTexture can now use either
        an image, or a raw data pointer. The raw data pointer is provided for performance reasons,
        as converting data to/from Image references in Qt generates unnecessary deep copies of the
        image data.

        Also, functions that use TransformationMatrix were added to GraphicsContext, to allow for
        3D transforms in cross platform code.
        After this patch everything renders the same. An additional bug report was created to allow
        ImageBuffer shallow image copies: https://bugs.webkit.org/show_bug.cgi?id=77689

        Covered extensively by existing tests, no behavioral changes.

        * Target.pri:
        * platform/graphics/GraphicsContext.cpp:
        * platform/graphics/GraphicsContext.h:
        (WebCore):
        (GraphicsContext):
        * platform/graphics/cairo/TextureMapperCairo.cpp:
        * platform/graphics/opengl/TextureMapperGL.cpp:
        (TextureMapperGLData):
        (BitmapTextureGL):
        (WebCore::BitmapTextureGL::BitmapTextureGL):
        (WebCore::TextureMapperGL::beginPainting):
        (WebCore::BitmapTextureGL::reset):
        (WebCore):
        (WebCore::swizzleBGRAToRGBA):
        (WebCore::BitmapTextureGL::updateContents):
        (WebCore::BitmapTextureGL::destroy):
        (WebCore::TextureMapperGL::bindSurface):
        (WebCore::TextureMapper::platformCreateAccelerated):
        * platform/graphics/opengl/TextureMapperGL.h:
        (TextureMapperGL):
        (WebCore::TextureMapperGL::accelerationMode):
        (WebCore):
        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore):
        (WebCore::GraphicsContext::get3DTransform):
        (WebCore::GraphicsContext::concat3DTransform):
        (WebCore::GraphicsContext::set3DTransform):
        * platform/graphics/qt/TextureMapperQt.cpp: Removed.
        * platform/graphics/qt/TextureMapperQt.h: Removed.
        * platform/graphics/texmap/TextureMapper.cpp:
        (WebCore):
        (BitmapTextureImageBuffer):
        (TextureMapperImageBuffer):
        * platform/graphics/texmap/TextureMapper.h:
        (WebCore::BitmapTexture::BitmapTexture):
        (BitmapTexture):
        (WebCore::BitmapTexture::bpp):
        (WebCore::BitmapTexture::isOpaque):
        (WebCore::TextureMapper::setGraphicsContext):
        (WebCore::TextureMapper::graphicsContext):
        (TextureMapper):
        (WebCore::TextureMapper::TextureMapper):
        (WebCore::TextureMapper::platformCreateAccelerated):
        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::renderContent):
        (WebCore::TextureMapperNode::setContentsTileBackBuffer):
        * platform/graphics/texmap/TextureMapperNode.h:
        (TextureMapperNode):

2012-02-02  Adam Barth  <abarth@webkit.org>

        Rename checkNodeSecurity and allowsAccessFromFrame to have sensible names
        https://bugs.webkit.org/show_bug.cgi?id=75796

        Reviewed by Eric Seidel.

        As requested by Darin Adler, this patch renames these functions be
        clear that we're asking whether the access should be allowed rather
        than explicitly allowing the access.

        * bindings/generic/BindingSecurity.h:
        (BindingSecurity):
        (WebCore::::shouldAllowAccessToNode):
        (WebCore::::allowSettingFrameSrcToJavascriptUrl):
        * bindings/js/JSDOMBinding.cpp:
        (WebCore::shouldAllowAccessToNode):
        (WebCore::shouldAllowAccessToFrame):
        * bindings/js/JSDOMBinding.h:
        (WebCore):
        * bindings/js/JSHTMLFrameElementCustom.cpp:
        (WebCore::allowSettingJavascriptURL):
        * bindings/js/JSHistoryCustom.cpp:
        (WebCore::JSHistory::getOwnPropertySlotDelegate):
        (WebCore::JSHistory::getOwnPropertyDescriptorDelegate):
        (WebCore::JSHistory::putDelegate):
        (WebCore::JSHistory::deleteProperty):
        (WebCore::JSHistory::getOwnPropertyNames):
        * bindings/js/JSLocationCustom.cpp:
        (WebCore::JSLocation::getOwnPropertySlotDelegate):
        (WebCore::JSLocation::getOwnPropertyDescriptorDelegate):
        (WebCore::JSLocation::putDelegate):
        (WebCore::JSLocation::deleteProperty):
        (WebCore::JSLocation::getOwnPropertyNames):
        (WebCore::JSLocation::toStringFunction):
        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::canAccessFromCurrentOrigin):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertyDescriptorBody):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateFunctionCallback):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        (WebCore::JSTestActiveDOMObject::getOwnPropertyDescriptor):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjContentDocument):
        (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjInternal::contentDocumentAttrGetter):
        (WebCore::TestObjInternal::getSVGDocumentCallback):

2012-02-02  Kalev Lember  <kalevlember@gmail.com>

        [GTK] Make gtk+ symbols available to WidgetBackingStoreCairo.cpp
        https://bugs.webkit.org/show_bug.cgi?id=77679

        WidgetBackingStoreCairo.cpp uses GTK+ symbols, so we need it in
        webcoregtk_sources instead of webcore_sources.

        Reviewed by Martin Robinson.

        * GNUmakefile.list.am: Move WidgetBackingStoreCairo.cpp to webcoregtk.

2012-02-02  Shinya Kawanaka  <shinyak@google.com>

        StyleRecalc should occur when shadow root exists and light children are changed.
        https://bugs.webkit.org/show_bug.cgi?id=76262

        Reviewed by Hajime Morita.

        When light children is changed, the element included in HTMLContentElement may also be changed.
        So we have to recalculate inclusion of content element again.

        Test: fast/dom/shadow/shadow-contents-fallback-dynamic.html

        * dom/Element.cpp:
        (WebCore::Element::childrenChanged):

2012-02-02  Ami Fischman  <fischman@chromium.org>

        Avoid crashing renderer when GPU process dies by not caching textures between video frames.
        https://bugs.webkit.org/show_bug.cgi?id=77654

        Reviewed by James Robinson.

        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
        (WebCore::CCVideoLayerImpl::draw):

2012-02-02  Anders Carlsson  <andersca@apple.com>

        Add ScrollingTree class
        https://bugs.webkit.org/show_bug.cgi?id=77695

        Reviewed by Andreas Kling.

        * WebCore.xcodeproj/project.pbxproj:
        Add new files.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::ScrollingCoordinator):
        Create a scrolling tree.

        (WebCore::ScrollingCoordinator::~ScrollingCoordinator):
        Assert that the scrolling tree is null.

        (WebCore::ScrollingCoordinator::pageDestroyed):
        Null out the scrolling tree member variable and tell it to invalidate itself.

        * page/scrolling/ScrollingTree.cpp: Added.

        (WebCore::ScrollingTree::invalidate):
        Null out the scrolling coordinator, breaking the reference cycle between the scrolling
        coordinator and the scrolling tree.
    
        * page/scrolling/ScrollingTree.h: Added.

2012-02-02  Tim Dresser  <tdresser@chromium.org>

        Refactor plugin drawing to be more data driven
        https://bugs.webkit.org/show_bug.cgi?id=76715

        Reviewed by James Robinson.

        CCPluginLayerImpl no longer handles drawing itself, but produces a list of CCPluginDrawQuads.
        These quads are then drawn by LayerRendererChromium.

        CCLayerImpl::willDraw(LayerRendererChromium*) is called directly before appendQuads.
        This allows for CCLayerImpl objects to allocate textures before appendQuads is called.

        This is a refactor, so no new tests were added.
        Flash was tested manually on Linux and Mac.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::PluginProgramBinding::set):
        (PluginProgramBinding):
        (WebCore):
        (WebCore::TexStretchPluginProgramBinding::set):
        (TexStretchPluginProgramBinding):
        (WebCore::TexTransformPluginProgramBinding::set):
        (TexTransformPluginProgramBinding):
        (WebCore::LayerRendererChromium::drawPluginQuad):
        * platform/graphics/chromium/cc/CCLayerImpl.h:
        (WebCore::CCLayerImpl::willDraw):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
        * platform/graphics/chromium/cc/CCPluginDrawQuad.cpp:
        (WebCore::CCPluginDrawQuad::create):
        (WebCore::CCPluginDrawQuad::CCPluginDrawQuad):
        * platform/graphics/chromium/cc/CCPluginDrawQuad.h:
        (CCPluginDrawQuad):
        (WebCore::CCPluginDrawQuad::uvRect):
        (WebCore::CCPluginDrawQuad::textureId):
        (WebCore::CCPluginDrawQuad::flipped):
        (WebCore::CCPluginDrawQuad::ioSurfaceWidth):
        (WebCore::CCPluginDrawQuad::ioSurfaceHeight):
        (WebCore::CCPluginDrawQuad::ioSurfaceTextureId):
        * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
        (WebCore::CCPluginLayerImpl::willDraw):
        (WebCore::CCPluginLayerImpl::appendQuads):
        * platform/graphics/chromium/cc/CCPluginLayerImpl.h:
        (CCPluginLayerImpl):

2012-01-29  Pablo Flouret  <pablof@motorola.com>

        V8 idl code generator doesn't handle SerializedScriptValue attributes properly.
        https://bugs.webkit.org/show_bug.cgi?id=77295

        Reviewed by Kentaro Hara.

        Only the case of one (and only one) SerializedScriptValue attribute was
        handled, and it was deserialized eagerly in the constructor instead of
        generating getters/setters. This patch gets rid of that behavior and
        generates the getters and setters instead (similar to what the JSC
        generator does).
        Also handle the case of SSV attributes with [CachedAttribute]
        declaration, caching the deserialized value in a hidden attribute on the
        object.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateConstructorCallback):
        (GenerateNamedConstructorCallback):
        (GenerateSingleBatchedAttribute):
        (GenerateImplementation):
        (GenerateToV8Converters):
        (JSValueToNative):
        (NativeToJSValue):
        * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.cpp:
        (WebDOMTestSerializedScriptValueInterface::setValue):
        (WebDOMTestSerializedScriptValueInterface::readonlyValue):
        (WebDOMTestSerializedScriptValueInterface::cachedValue):
        (WebDOMTestSerializedScriptValueInterface::setCachedValue):
        (WebDOMTestSerializedScriptValueInterface::cachedReadonlyValue):
        * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.h:
        (WebDOMTestSerializedScriptValueInterface):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        (webkit_dom_test_serialized_script_value_interface_set_value):
        (webkit_dom_test_serialized_script_value_interface_get_readonly_value):
        (webkit_dom_test_serialized_script_value_interface_get_cached_value):
        (webkit_dom_test_serialized_script_value_interface_set_cached_value):
        (webkit_dom_test_serialized_script_value_interface_get_cached_readonly_value):
        (webkit_dom_test_serialized_script_value_interface_get_property):
        (webkit_dom_test_serialized_script_value_interface_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        ():
        (WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
        (WebCore):
        (WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
        (WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
        (WebCore::JSTestSerializedScriptValueInterface::put):
        (WebCore::setJSTestSerializedScriptValueInterfaceValue):
        (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
        (JSTestSerializedScriptValueInterface):
        (JSTestSerializedScriptValueInterfacePrototype):
        (WebCore):
        * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h:
        * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm:
        (-[DOMTestSerializedScriptValueInterface setValue:]):
        (-[DOMTestSerializedScriptValueInterface readonlyValue]):
        (-[DOMTestSerializedScriptValueInterface cachedValue]):
        (-[DOMTestSerializedScriptValueInterface setCachedValue:]):
        (-[DOMTestSerializedScriptValueInterface cachedReadonlyValue]):
        * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::TestSerializedScriptValueInterfaceInternal::valueAttrGetter):
        (TestSerializedScriptValueInterfaceInternal):
        (WebCore::TestSerializedScriptValueInterfaceInternal::valueAttrSetter):
        (WebCore::TestSerializedScriptValueInterfaceInternal::readonlyValueAttrGetter):
        (WebCore::TestSerializedScriptValueInterfaceInternal::cachedValueAttrGetter):
        (WebCore::TestSerializedScriptValueInterfaceInternal::cachedValueAttrSetter):
        (WebCore::TestSerializedScriptValueInterfaceInternal::cachedReadonlyValueAttrGetter):
        ():
        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
        (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
        (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):

2012-02-02  Adam Barth  <abarth@webkit.org>

        BMW Car Configuration Page doesn't work (Only manifests in Chromium)
        https://bugs.webkit.org/show_bug.cgi?id=77312

        Reviewed by Dimitri Glazkov.

        When we autogenerated the event factory, we missed the check for
        whether touch events were enabled at runtime:
        http://trac.webkit.org/changeset/97933/trunk/Source/WebCore/dom/Document.cpp

        This patch adds the check back.

        Unfortunately, there isn't a testing frame work for
        RuntimeEnabledFeatures.  The main difficulty is that these static bools
        need to be set when WebKit is initialized and can't be changed (which
        is why they're not part of WebCore::Settings).  To test them properly,
        we'd need a testing framework that booted up WebKit for each test.

        We could test this particular change (which doesn't need the bool to be
        constant through the runtime of WebKit), but that would create a
        sandtrap for future patches who might thing that this testing framework
        can really be used to test RuntimeEnabledFeatures.

        The net result is that Chromium is going to end up living with the
        non-default codepath for these settings being untested, which will lead
        to regressions like this one.  If we ened up with a bunch of these
        regressions, we'll likely end up with a testing framework similar to
        Chromium's browsers_tests, which create a fresh subprocess for each
        test.

        * dom/EventFactory.in:
        * dom/make_event_factory.pl:
        (defaultItemFactory):
        (generateImplementation):

2012-02-02  Justin Novosad  <junov@chromium.org>

        [Chromium] Use SkCanvas::flush in skia port
        https://bugs.webkit.org/show_bug.cgi?id=77463

        Reviewed by Stephen White.

        Code cleanup in skia port. Using SkCanvas::flush to remove
        unnecessary dependency on GrContext.  Removed unnecessary inclusions
        and forward declarations of GrContext in several source files.

        * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
        (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/LayerRendererChromium.cpp:
        * platform/graphics/chromium/LayerRendererChromium.h:
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
        * platform/graphics/chromium/cc/CCProxy.h:
        * platform/graphics/skia/PlatformContextSkia.cpp:

2012-02-02  Chris Marrin  <cmarrin@apple.com>

        Turn on CSS Filters on Windows
        https://bugs.webkit.org/show_bug.cgi?id=76667

        Turning on CSS_FILTERS flag for Windows and fixed a couple of resultant build errors

        Reviewed by Adele Peterson.

        * WebCore.vcproj/copyForwardingHeaders.cmd:
        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
        (PlatformCALayer::setFilters):
        (PlatformCALayer::filtersCanBeComposited):

2012-02-02  Jon Lee  <jonlee@apple.com>

        Clear shown notifications when context is no longer active
        https://bugs.webkit.org/show_bug.cgi?id=77363
        <rdar://problem/10568907>

        Reviewed by Darin Adler.

        * notifications/NotificationPresenter.h: Add new virtual function to clear notifications
        associated with a given execution context. By default the notifications are left alone, as
        before. Individual implementations can override to allow notifications to clear them.

        * notifications/NotificationCenter.cpp:
        (WebCore::NotificationCenter::disconnectFrame): When disconnecting the page from the frame, we
        call clearNotifications().
        * page/Frame.cpp:
        (WebCore::Frame::pageDestroyed): When the page is destroyed, tell the DOM window to reset notifications.

2012-02-02  Anders Carlsson  <andersca@apple.com>

        The overhang area layer should have a linen background
        https://bugs.webkit.org/show_bug.cgi?id=77670
        <rdar://problem/10797727>

        Reviewed by Andreas Kling.

        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinator::scrollByOnScrollingThread):
        Add an #ifdef so that scroll position clamping can be disabled. This will be
        removed once rubber-banding works properly.

        * platform/ScrollbarTheme.h:
        (WebCore::ScrollbarTheme::setUpOverhangAreasLayerContents):
        Add new empty function.

        * platform/mac/ScrollbarThemeMac.h:
        (ScrollbarThemeMac):
        * platform/mac/ScrollbarThemeMac.mm:
        (WebCore::linenBackgroundColor):
        Helper function for getting the CGColorRef that represents the linen background color.

        (WebCore::ScrollbarThemeMac::setUpOverhangAreasLayerContents):
        Set the linen background color as the overhang areas layer background color.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
        Call ScrollbarTheme::setUpOverhangAreasLayerContents.

2012-02-02  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r106566.
        http://trac.webkit.org/changeset/106566
        https://bugs.webkit.org/show_bug.cgi?id=77673

        Broke the Windows build (Requested by jessieberlin on
        #webkit).

        * WebCore.vcproj/copyForwardingHeaders.cmd:
        * platform/graphics/ca/win/PlatformCALayerWin.cpp:

2012-02-02  Tommy Widenflycht  <tommyw@google.com>

        [chromium] MediaStream API: Adding the embedding code for MediaStreamCenter
        https://bugs.webkit.org/show_bug.cgi?id=73130

        Reviewed by Darin Fisher.

        Tests for the Media Stream API will be provided by the bug 56587, pending enough landed code.

        * mediastream/UserMediaClient.h:
        (UserMediaClient):
        * mediastream/UserMediaRequest.cpp:
        (WebCore::UserMediaRequest::didCompleteQuery):
        * mediastream/UserMediaRequest.h:
        (UserMediaRequest):
        (WebCore::UserMediaRequest::audio):
        (WebCore::UserMediaRequest::video):
        (WebCore::UserMediaRequest::cameraPreferenceUser):
        (WebCore::UserMediaRequest::cameraPreferenceEnvironment):
        * platform/mediastream/MediaStreamCenter.cpp:
        (WebCore):
        (WebCore::MediaStreamCenter::queryMediaStreamSources):
        * platform/mediastream/MediaStreamCenter.h:
        (WebCore):
        (MediaStreamSourcesQueryClient):
        (MediaStreamCenter):

2012-02-02  Raymond Toy  <rtoy@google.com>

        Constant values to set "distanceModel" are undefined
        https://bugs.webkit.org/show_bug.cgi?id=74273

        Reviewed by Kenneth Russell.

        Tests: webaudio/distance-exponential.html
               webaudio/distance-inverse.html
               webaudio/distance-linear.html

        * webaudio/AudioPannerNode.h: Define enum for the new constants
        for the distance models.
        * webaudio/AudioPannerNode.idl: Define matching constants for the
        distance models.

2012-02-02  Raymond Toy  <rtoy@google.com>

        Illegal panner model values should throw an exception
        https://bugs.webkit.org/show_bug.cgi?id=77235

        Reviewed by Kenneth Russell.

        Modified existing panner-set-model test to catch exceptions.
        Debug build should not crash anymore.

        * webaudio/AudioPannerNode.cpp:
        (WebCore::AudioPannerNode::setPanningModel):  Throw exception for
        invalid model values.
        * webaudio/AudioPannerNode.h:
        (AudioPannerNode): Update declaration
        * webaudio/AudioPannerNode.idl: Setting panner model can throw
        exception. 

2012-02-02  Kentaro Hara  <haraken@chromium.org>

        Rename [ConvertUndefinedOrNullToNullString] to
        [TreatNullAs=EmptyString, TreatUndefinedAs=EmptyString]
        https://bugs.webkit.org/show_bug.cgi?id=77611

        Reviewed by Adam Barth.

        This patch renames [ConvertUndefinedOrNullToNullString] to
        [TreatNullAs=EmptyString, TreatUndefinedAs=EmptyString], according to the spec
        (http://dev.w3.org/2006/webapi/WebIDL/#TreatNullAs,
        http://dev.w3.org/2006/webapi/WebIDL/#TreatUndefinedAs).

        No tests. No changes in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (JSValueToNative):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GetNativeTypeFromSignature):
        * dom/DOMImplementation.idl:
        * dom/Document.idl:
        * fileapi/Blob.idl:
        * fileapi/DirectoryEntry.idl:
        * fileapi/DirectoryEntrySync.idl:
        * fileapi/Entry.idl:
        * fileapi/EntrySync.idl:
        * fileapi/WebKitBlobBuilder.idl:
        * html/HTMLButtonElement.idl:
        * html/HTMLCanvasElement.idl:
        * html/HTMLFieldSetElement.idl:
        * html/HTMLInputElement.idl:
        * html/HTMLKeygenElement.idl:
        * html/HTMLObjectElement.idl:
        * html/HTMLOutputElement.idl:
        * html/HTMLSelectElement.idl:
        * html/HTMLTextAreaElement.idl:
        * page/Console.idl:
        * page/DOMWindow.idl:

        * bindings/scripts/test/TestObj.idl: No changes in run-bindings-tests results.

2012-02-02  Anders Carlsson  <andersca@apple.com>

        NPAPI will not send mouse up events when mouse is outside plugin area
        https://bugs.webkit.org/show_bug.cgi?id=77657
        <rdar://problem/10160674>

        Reviewed by Andreas Kling.

        Export EventHandler::setCapturingMouseEventsNode.

        * WebCore.exp.in:

2012-02-02  Antti Koivisto  <antti@apple.com>

        Move remaining implementation from CSSStyleDeclaration to subclasses 
        https://bugs.webkit.org/show_bug.cgi?id=77621

        Reviewed by Andreas Kling.

        This leaves CSSStyleDeclaration a near-pure CSSOM interface.

        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        (WebCore::isCSSPropertyName):
        (WebCore::JSCSSStyleDeclaration::putDelegate):
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::parentRule):
        (WebCore):
        * css/CSSComputedStyleDeclaration.h:
        (CSSComputedStyleDeclaration):
        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
        (WebCore::CSSMutableStyleDeclaration::contextStyleSheet):
        (WebCore):
        (WebCore::CSSMutableStyleDeclaration::parentRule):
        * css/CSSMutableStyleDeclaration.h:
        (WebCore::CSSMutableStyleDeclaration::isInlineStyleDeclaration):
        (WebCore::CSSMutableStyleDeclaration::parentRuleInternal):
        (WebCore::CSSMutableStyleDeclaration::clearParentRule):
        (CSSMutableStyleDeclaration):
        (WebCore::CSSMutableStyleDeclaration::parentElement):
        (WebCore::CSSMutableStyleDeclaration::clearParentElement):
        (WebCore::CSSMutableStyleDeclaration::parentStyleSheet):
        * css/CSSParser.cpp:
        (WebCore::parseColorValue):
        (WebCore::parseSimpleLengthValue):
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseDeclaration):
        * css/CSSStyleDeclaration.cpp:
        (WebCore):
        * css/CSSStyleDeclaration.h:
        (CSSStyleDeclaration):
        (WebCore::CSSStyleDeclaration::parentStyleSheet):
        (WebCore::CSSStyleDeclaration::CSSStyleDeclaration):
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::setSelectorText):
                            
            Eliminate unnecessary call to CSSMutableStyleDeclaration::parentStyleSheet()

        * css/CSSStyleRule.h:
        (WebCore::CSSStyleRule::setDeclaration):
        * css/CSSStyleSelector.cpp:
        (WebCore::isInsideRegionRule):
        (WebCore::CSSStyleSelector::applyDeclaration):
        * css/WebKitCSSKeyframeRule.cpp:
        (WebCore::WebKitCSSKeyframeRule::setDeclaration):
        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::serializeFrame):
        (WebCore::PageSerializer::serializeCSSStyleSheet):
        (WebCore::PageSerializer::retrieveResourcesForCSSRule):
        (WebCore::PageSerializer::retrieveResourcesForCSSDeclaration):
        * page/PageSerializer.h:
        
            Eliminate unnecessary call to CSSMutableStyleDeclaration::parentStyleSheet()
        
        (WebCore):
        (PageSerializer):

2012-02-02  Chris Marrin  <cmarrin@apple.com>

        Turn on CSS Filters on Windows
        https://bugs.webkit.org/show_bug.cgi?id=76667

        Turning on CSS_FILTERS flag for Windows and fixed a couple of resultant build errors

        Reviewed by Adele Peterson.

        * WebCore.vcproj/copyForwardingHeaders.cmd:
        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
        (PlatformCALayer::setFilters):
        (PlatformCALayer::filtersCanBeComposited):

2012-02-02  Anders Carlsson  <andersca@apple.com>

        Move ScrollingThread to its own file
        https://bugs.webkit.org/show_bug.cgi?id=77652

        Reviewed by Sam Weinig.

        This just shuffles some classes around and makes ScrollingCoordinator call into ScrollingThread.
        Hopefully we'll be able to make ScrollingThread use the new WebCore::RunLoop class eventually.

        * WebCore.xcodeproj/project.pbxproj:
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::handleWheelEvent):
        * page/scrolling/ScrollingCoordinator.h:
        (ScrollingCoordinator):
        * page/scrolling/ScrollingThread.cpp: Added.
        (WebCore):
        (WebCore::ScrollingThread::ScrollingThread):
        (WebCore::ScrollingThread::isCurrentThread):
        (WebCore::ScrollingThread::dispatch):
        (WebCore::ScrollingThread::shared):
        (WebCore::ScrollingThread::createThreadIfNeeded):
        (WebCore::ScrollingThread::threadCallback):
        (WebCore::ScrollingThread::threadBody):
        (WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread):
        * page/scrolling/ScrollingThread.h: Added.
        (WebCore):
        (ScrollingThread):
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinator::scrollByOnScrollingThread):
        (WebCore::ScrollingCoordinator::updateMainFrameScrollLayerPositionOnScrollingThread):
        * page/scrolling/mac/ScrollingThreadMac.mm: Added.
        (WebCore):
        (WebCore::ScrollingThread::initializeRunLoop):
        (WebCore::ScrollingThread::wakeUpRunLoop):
        (WebCore::ScrollingThread::threadRunLoopSourceCallback):

2012-02-02  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r106551.
        http://trac.webkit.org/changeset/106551
        https://bugs.webkit.org/show_bug.cgi?id=77648

        Breaking mac and gtk tests due to font differences. (Requested
        by _pdr_ on #webkit).

        * platform/graphics/SVGGlyph.cpp:
        (WebCore::charactersWithArabicForm):
        * svg/SVGFontData.cpp:
        (WebCore::SVGFontData::applySVGGlyphSelection):
        * svg/SVGFontData.h:
        (SVGFontData):

2012-02-02  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [REGRESSION] Slow continuous DOM traversal with Up/Down keys
        https://bugs.webkit.org/show_bug.cgi?id=77643

        Reviewed by Pavel Feldman.

        Test: inspector/styles/updates-during-dom-traversal.html

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.prototype._executeRebuildUpdate):

2012-02-02  Claudio Saavedra  <csaavedra@igalia.com> and Martin Robinson  <mrobinson@igalia.com>

        [GTK] WebKitWebView won't work in a GtkOffscreenWindow
        https://bugs.webkit.org/show_bug.cgi?id=76911

        Reviewed by Philippe Normand.

        * platform/gtk/GtkUtilities.cpp:
        (WebCore::widgetIsOnscreenToplevelWindow): Added this helper.
        * platform/gtk/GtkUtilities.h:
        (WebCore): Added helper declaration.

2012-02-02  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        Update active and hover state on touch release.
        https://bugs.webkit.org/show_bug.cgi?id=77620

        Reviewed by Kenneth Rohde Christiansen.

        * rendering/HitTestRequest.h:
        (WebCore::HitTestRequest::move):
        (WebCore::HitTestRequest::release):
        (WebCore::HitTestRequest::touchEvent):
        (WebCore::HitTestRequest::mouseEvent):
        (WebCore::HitTestRequest::touchMove):
        (WebCore::HitTestRequest::touchRelease):
            Rename the enum values in HitTestRequest to be mouse/touch
            agnostic, and add value for recognizing touch events.
        * rendering/RenderFrameSet.cpp:
        (WebCore::RenderFrameSet::nodeAtPoint): Update for HitTestRequest rename.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hitTest): ditto
        (WebCore::RenderLayer::updateHoverActiveState): Reset hoverstate on touch release.
        * page/EventHandler.cpp:
        (WebCore::EventHandler::updateSelectionForMouseDrag): Update for HitTestRequest rename.
        (WebCore::EventHandler::handleMouseMoveEvent): ditto
        (WebCore::EventHandler::handleMouseReleaseEvent): ditto
        (WebCore::EventHandler::hoverTimerFired): ditto
        (WebCore::EventHandler::dragSourceEndedAt): ditto
        (WebCore::EventHandler::handleTouchEvent): Hittest touch release to reset
            active and hover states and add touch enum to all touch hittests.

2012-02-02  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: enable editing of selected rows on single click in elements panel.
        https://bugs.webkit.org/show_bug.cgi?id=77627

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeElement.prototype.onattach):
        (WebInspector.ElementsTreeElement.prototype.onselect):
        (WebInspector.ElementsTreeElement.prototype._mouseDown):
        * inspector/front-end/treeoutline.js:
        (TreeElement.prototype.selectOnMouseDown):
        (TreeElement.prototype.select):

2012-02-02  Philip Rogers  <pdr@google.com>

        Fix mirroring with SVG fonts
        https://bugs.webkit.org/show_bug.cgi?id=77067

        Reviewed by Nikolas Zimmermann.

        SVG fonts were incorrectly handling mirrored characters in bidi text.
        In this change I added the function createStringWithMirroredCharacters
        which handles mirroring the characters when selecting glyphs for SVG
        fonts. I also made a small cosmetic change in the function
        charactersWithArabicForm, changing the bool parameter "mirror" to "rtl"
        which better reflects what it actually does.

        Several new tests were added to test mirroring with SVG fonts in the
        presence of Arabic forms and non-BMP characters.

        Tests: svg/custom/glyph-selection-arabic-forms.svg
               svg/custom/glyph-selection-bidi-mirror.svg
               svg/custom/glyph-selection-non-bmp.svg

        * platform/graphics/SVGGlyph.cpp:
        (WebCore::charactersWithArabicForm):
        * svg/SVGFontData.cpp:
        (WebCore::SVGFontData::applySVGGlyphSelection):
        (WebCore::SVGFontData::createStringWithMirroredCharacters):
        * svg/SVGFontData.h:
        (SVGFontData):

2012-02-02  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: add experiment for single click styles editing.
        https://bugs.webkit.org/show_bug.cgi?id=77624

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertiesSection):
        (WebInspector.StylePropertyTreeElement.prototype.onattach):
        (WebInspector.StylePropertyTreeElement.prototype._mouseDown):
        (WebInspector.StylePropertyTreeElement.prototype._resetMouseDownElement):
        (WebInspector.StylePropertyTreeElement.prototype):
        (WebInspector.StylePropertyTreeElement.prototype.selectElement.context):

2012-02-02  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Make the tap highlighting work for all test cases
        https://bugs.webkit.org/show_bug.cgi?id=77626

        Reviewed by Simon Hausmann.

        Clean up of the current code to make it more generic. Now uses
        addFocusRingRects for finding the areas to highlight.

        Tested by current manual tests.

        * page/GestureTapHighlighter.cpp:
        (WebCore::GestureTapHighlighter::pathForNodeHighlight):

2012-02-02  Mario Sanchez Prada  <msanchez@igalia.com>

        [Gtk] atk_text_get_text_at_offset() sometimes fails to provide the correct line
        https://bugs.webkit.org/show_bug.cgi?id=72382

        Reviewed by Martin Robinson.

        Do not add unnecesary blanks at the end of a line of text.

        * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
        (textForRenderer): Do not just append a '\n' at the end of a line
        if the linebreak for that line was already considered.

2012-02-02  Raul Hudea  <rhudea@adobe.com>

        Regions should ignore the saved currentRenderFlowThread during repainting
        because if there are imbricated flow threads, it might end using the wrong one.

        [CSSRegions] Assert failure in RenderView::computeRectForRepaint
        https://bugs.webkit.org/show_bug.cgi?id=77430

        Reviewed by David Hyatt.

        Test: fast/regions/imbricated-flow-threads-crash.html

        * rendering/RenderFlowThread.cpp:
        (CurrentRenderFlowThreadDisabler):
        (WebCore::CurrentRenderFlowThreadDisabler::CurrentRenderFlowThreadDisabler):
        (WebCore::CurrentRenderFlowThreadDisabler::~CurrentRenderFlowThreadDisabler):
        (WebCore):
        (WebCore::RenderFlowThread::repaintRectangleInRegions):

2012-02-02  Kinuko Yasuda  <kinuko@chromium.org>

        Cleanup: Move chrome-specific filesystem type handling code (for FileSystem API) under chromium directory (re-landing r105395)
        https://bugs.webkit.org/show_bug.cgi?id=76551

        Reviewed by David Levin.

        Moved the implementation of crackFileSystemURL() and toURL() from
        WebCore/fileapi/DOMFileSystemBase into WebCore/platform/AsyncFileSystem
        so that each platform can extend/implement their behavior if necessary.

        No new tests as it has no functional changes.

        * fileapi/DOMFileSystemBase.cpp: Moved crackFileSystemURL() to AsyncFileSystem.
        * fileapi/DOMFileSystemBase.h:
        (DOMFileSystemBase):
        * fileapi/EntryBase.cpp: Moved toURL() to AsyncFileSystem.
        (WebCore::EntryBase::toURL):
        * page/DOMWindow.cpp: Made corresponding callsite changes.
        (WebCore::DOMWindow::webkitRequestFileSystem):
        (WebCore::DOMWindow::webkitResolveLocalFileSystemURL):
        * page/DOMWindow.h:
        * platform/AsyncFileSystem.cpp:
        (WebCore::AsyncFileSystem::isValidType): Added.
        * platform/AsyncFileSystem.h:
        (AsyncFileSystem):
        * workers/WorkerContext.cpp: Made corresponding callsite changes.
        (WebCore::WorkerContext::webkitRequestFileSystem):
        (WebCore::WorkerContext::webkitRequestFileSystemSync):
        (WebCore::WorkerContext::webkitResolveLocalFileSystemURL):
        (WebCore::WorkerContext::webkitResolveLocalFileSystemSyncURL):
        * workers/WorkerContext.h:

2012-02-02  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: pause on uncaugh exceptions state is not properly restored
        https://bugs.webkit.org/show_bug.cgi?id=77558

        'Pause on exceptions' state is now stored in InspectorState object so that it is
        properly restored on inspected process change.

        Reviewed by Vsevolod Vlasov.

        * inspector/InspectorDebuggerAgent.cpp:
        (DebuggerAgentState):
        (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
        (WebCore::InspectorDebuggerAgent::disable):
        (WebCore::InspectorDebuggerAgent::restore):
        (WebCore::InspectorDebuggerAgent::setPauseOnExceptions):
        (WebCore):
        (WebCore::InspectorDebuggerAgent::setPauseOnExceptionsImpl):
        * inspector/InspectorDebuggerAgent.h:
        (InspectorDebuggerAgent):

2012-02-02  Kentaro Hara  <haraken@chromium.org>

        The third argument of addEventListener/removeEventListener of PeerConnection should be optional
        https://bugs.webkit.org/show_bug.cgi?id=77606

        Reviewed by Adam Barth.

        This patch corrects a typo in PeerConnection.idl, i.e. [optional] => [Optional].

        Test: fast/mediastream/peerconnection-eventlistener-optional-argument.html

        * mediastream/PeerConnection.idl:

2012-02-02  Rakesh KN  <rakesh.kn@motorola.com>

        hidden attribute on <input type=file /> suppresses the file selection dialog
        https://bugs.webkit.org/show_bug.cgi?id=58208

        Reviewed by Ryosuke Niwa.

        We want to allow opening file dialog on hidden element when click() is called
        on the element. The behaviour is similar to Firefox and IE.

        Added manual test as the file dialog opens only on user gesture.

        * html/FileInputType.cpp:
        (WebCore::FileInputType::handleDOMActivateEvent):
        Removed renderer check as input can be hidden.

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

        [GStreamer] FFTFrame implementation
        https://bugs.webkit.org/show_bug.cgi?id=73545

        Reviewed by Chris Rogers.

        FFTFrame implementation based on GStreamer's FFT processing
        library.

        No new tests, existing WebAudio tests cover this.

        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * platform/audio/FFTFrame.h:
        * platform/audio/FFTFrameStub.cpp:
        * platform/audio/gstreamer/FFTFrameGStreamer.cpp: Added.
        (WebCore::FFTFrame::FFTFrame):
        (WebCore::FFTFrame::initialize):
        (WebCore::FFTFrame::cleanup):
        (WebCore::FFTFrame::~FFTFrame):
        (WebCore::FFTFrame::multiply):
        (WebCore::FFTFrame::doFFT):
        (WebCore::FFTFrame::doInverseFFT):
        (WebCore::FFTFrame::realData):
        (WebCore::FFTFrame::imagData):

2012-02-02  Kentaro Hara  <haraken@chromium.org>

        Rename [CheckFrameSecurity] and [SVGCheckSecurity] to [CheckAccessToNode]
        https://bugs.webkit.org/show_bug.cgi?id=77601

        Reviewed by Adam Barth.

        [CheckFrameSecurity] and [SVGCheckSecurity] have the same meaning; i.e. generate code
        to check allowAccessToNode() for a given attribute or method. This patch renames them
        to [CheckAccessToNode].

        No tests. No changes in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateFunctionCallback):
        * html/HTMLEmbedElement.idl:
        * html/HTMLFrameElement.idl:
        * html/HTMLIFrameElement.idl:
        * html/HTMLObjectElement.idl:

        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/V8/V8TestObj.cpp: Updated the test results.
        (WebCore):

2012-02-01  Kentaro Hara  <haraken@chromium.org>

        Rename [V8DisallowShadowing] to [V8Unforgeable]
        https://bugs.webkit.org/show_bug.cgi?id=77599

        Reviewed by Adam Barth.

        This patch renames [V8DisallowShadowing] to [V8Unforgeable], following the Web IDL
        spec (http://dev.w3.org/2006/webapi/WebIDL/#Unforgeable).

        No tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateSingleBatchedAttribute):
        (GenerateImplementation):
        * page/DOMWindow.idl:
        * page/Location.idl:

2012-02-01  Kentaro Hara  <haraken@chromium.org>

        Rename [ConvertNullToNullString] to [TreatNullAs=EmptyString]
        https://bugs.webkit.org/show_bug.cgi?id=77602

        Reviewed by Adam Barth.

        This patch renames [ConvertNullToNullString] to [TreatNullAs=EmptyString],
        according to the spec (http://dev.w3.org/2006/webapi/WebIDL/#TreatNullAs).

        No tests. No changes in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (JSValueToNative):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GetNativeTypeFromSignature):

        * css/CSSCharsetRule.idl:
        * css/CSSPageRule.idl:
        * css/CSSRule.idl:
        * css/CSSStyleDeclaration.idl:
        * css/CSSStyleRule.idl:
        * css/CSSValue.idl:
        * css/MediaList.idl:
        * css/WebKitCSSKeyframesRule.idl:
        * dom/Attr.idl:
        * dom/CharacterData.idl:
        * dom/DOMImplementation.idl:
        * dom/Document.idl:
        * dom/Element.idl:
        * dom/NamedNodeMap.idl:
        * dom/Node.idl:
        * dom/ProcessingInstruction.idl:
        * dom/ShadowRoot.idl:
        * html/HTMLAnchorElement.idl:
        * html/HTMLButtonElement.idl:
        * html/HTMLDocument.idl:
        * html/HTMLElement.idl:
        * html/HTMLFormElement.idl:
        * html/HTMLFrameElement.idl:
        * html/HTMLInputElement.idl:
        * html/HTMLMediaElement.idl:
        * html/HTMLOutputElement.idl:
        * html/HTMLScriptElement.idl:
        * html/HTMLSelectElement.idl:
        * html/HTMLTextAreaElement.idl:
        * html/HTMLTitleElement.idl:
        * html/canvas/CanvasRenderingContext2D.idl:
        * page/DOMWindow.idl:
        * storage/StorageEvent.idl:
        * svg/SVGAngle.idl:
        * svg/SVGElement.idl:
        * svg/SVGLength.idl:
        * svg/SVGScriptElement.idl:

        * bindings/scripts/test/TestObj.idl: No change in the run-bindings-tests results.

2012-02-01  Kentaro Hara  <haraken@chromium.org>

        Remove [GenerateConstructor] from IDL files
        https://bugs.webkit.org/show_bug.cgi?id=77598

        Reviewed by Adam Barth.

        [GenerateConstructor] is used in some IDL files but it is not implemented
        in code generators. I could not find any history about [GenerateConstructor]
        in code generators. This patch removes them from IDL files.

        Maybe we want to replace [GenerateConstructor] with [Constructor] eventually,
        but currently no tests are written for their constructors (e.g. "new DOMTokenList()").
        So simply removing them would make sense.

        No new tests. No change in behavior.

        * dom/DOMStringList.idl:
        * html/DOMSettableTokenList.idl:
        * html/DOMTokenList.idl:
        * svg/SVGFEConvolveMatrixElement.idl:
        * webaudio/AudioPannerNode.idl:

2012-02-01  Eric Carlson  <eric.carlson@apple.com>

        Consider user's preferred language when choosing text tracks
        https://bugs.webkit.org/show_bug.cgi?id=74121

        Reviewed by Alexey Proskuryakov.

        Tests: media/track/track-language-preference.html
               media/track/track-prefer-captions.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::loadTimerFired): configureTextTracks -> configureNewTextTracks.
        (WebCore::HTMLMediaElement::textTracksAreReady): Add more comments.
        (WebCore::HTMLMediaElement::textTrackModeChanged): Ditto.
        (WebCore::HTMLMediaElement::showingTrackWithSameKind): Minor restructuring.
        (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Renamed from userIsInterestedInThisTrack,
            don't consider user's language preference.
        (WebCore::HTMLMediaElement::configureTextTrackGroup): New, configure all tracks in a group, 
            considering user's kind and language preferences.
        (WebCore::HTMLMediaElement::configureNewTextTracks): New, configure all newly added tracks.
        * html/HTMLMediaElement.h:
        (WebCore::HTMLMediaElement::TrackGroup::TrackGroup):
        (TrackGroup):

        * platform/Language.cpp:
        (WebCore::canonicalLanguageIdentifier): New, create a canonicalized version of a language string.
        (WebCore::bestMatchingLanguage): New, return the language from the list that best matches the 
            specified language.
        (WebCore::preferredLanguageFromList): New, return the language in the specified list that best
            matches the user's language preference.
        * platform/Language.h:

        * testing/Internals.cpp:
        (WebCore::Internals::setShouldDisplayTrackType): New, allow DRT to set the track type preference.
        (WebCore::Internals::shouldDisplayTrackType): New, allow DRT to read the track type preference.
        * testing/Internals.h:
        * testing/Internals.idl:

2012-02-01  Hayato Ito  <hayato@chromium.org>

        Change class hierarycy so that ShadowRoot can inherit DocumentFragment.
        https://bugs.webkit.org/show_bug.cgi?id=76693

        Reviewed by Darin Adler.

        Make ShadowRoot inherit DocumentFragment so that it matches the class hierarchy of IDL in the spec.
        TreeScope becomes a separated class, which is now inherited by Document and ShadowRoot using multiple-inheritance.
        This patch is pre-requirement for coming IDL change.

        No tests. No change in behavior.

        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::~Document):
        (WebCore::Document::buildAccessKeyMap):
        (WebCore::Document::childrenChanged):
        (WebCore::Document::attach):
        (WebCore::Document::detach):
        * dom/Document.h:
        (Document):
        * dom/DocumentFragment.cpp:
        (WebCore::DocumentFragment::DocumentFragment):
        * dom/DocumentFragment.h:
        (DocumentFragment):
        * dom/DocumentOrderedMap.cpp:
        (WebCore::DocumentOrderedMap::get):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::ShadowRoot):
        (WebCore::ShadowRoot::~ShadowRoot):
        (WebCore::ShadowRoot::attach):
        * dom/ShadowRoot.h:
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::TreeScope):
        (WebCore::TreeScope::~TreeScope):
        (WebCore::TreeScope::setParentTreeScope):
        (WebCore::TreeScope::getImageMap):
        (WebCore::TreeScope::findAnchor):
        * dom/TreeScope.h:
        (WebCore):
        (WebCore::TreeScope::rootNode):
        (TreeScope):
        * dom/TreeScopeAdopter.cpp:
        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
        * page/DragController.cpp:
        (WebCore::asFileInput):
        * page/FocusController.cpp:
        (WebCore::ownerOfTreeScope):
        (WebCore::FocusController::nextFocusableNode):
        (WebCore::FocusController::previousFocusableNode):

2012-02-01  Benjamin Poulain  <bpoulain@apple.com>

        WorkerScriptController::evaluate() should not return anything
        https://bugs.webkit.org/show_bug.cgi?id=77587

        Reviewed by Adam Barth.

        Remove the return value from WorkerScriptController as it is
        (and should be) unused.

        * bindings/js/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate):
        * bindings/js/WorkerScriptController.h:
        (WorkerScriptController):
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate):
        * bindings/v8/WorkerScriptController.h:
        (WorkerScriptController):

2012-02-01  Kentaro Hara  <haraken@chromium.org>

        Remove [DelegatingPrototypeGetOwnPropertySlot], [HasCustomIndexGetter],
        [HasIndexSetter], [JSConstructorTemplate] and [NonEmpty] from code generators
        https://bugs.webkit.org/show_bug.cgi?id=77585

        Reviewed by Adam Barth.

        This patch removes [DelegatingPrototypeGetOwnPropertySlot], [HasCustomIndexGetter],
        [HasIndexSetter], [JSConstructorTemplate] and [NonEmpty] from code generators,
        since they are not used by no IDL files.

        No tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        (GetterExpression):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody):
        (GenerateGetOwnPropertyDescriptorBody):
        (GenerateHeader):
        (GenerateImplementation):
        (IsConstructable):
        (IsConstructorTemplate):

        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated the run-bindings-tests results.
        * bindings/scripts/test/CPP/WebDOMTestObj.h: Ditto.
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto.
        (webkit_dom_test_obj_set_property):
        (webkit_dom_test_obj_get_property):
        (webkit_dom_test_obj_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto.
        * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
        (WebCore):
        * bindings/scripts/test/JS/JSTestObj.h: Ditto.
        (WebCore):
        * bindings/scripts/test/ObjC/DOMTestObj.h: Ditto.
        * bindings/scripts/test/ObjC/DOMTestObj.mm: Ditto.
        * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
        (WebCore):

2012-02-01  Shinya Kawanaka  <shinyak@google.com>

        Select attribute of HTMLContentElement should be able be changed dynamically.
        https://bugs.webkit.org/show_bug.cgi?id=76261

        Reviewed by Hajime Morita.

        When select attribute is changed, the flag to recalc style is set.

        Test: fast/dom/shadow/content-element-select-dynamic.html

        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::parseMappedAttribute):
          Sets recalc style when select is changed.
        * html/shadow/HTMLContentElement.h:
        (HTMLContentElement):

2012-02-01  Kentaro Hara  <haraken@chromium.org>

        Remove [ImplementationUUID] and [InterfaceUUID] from html/canvas/*.idl
        https://bugs.webkit.org/show_bug.cgi?id=77589

        Reviewed by Adam Barth.

        [ImplementationUUID] and [InterfaceUUID] are used in html/canvas/*.idl,
        but they are not implemented in code generators and thus have no meaning.
        This patch removes them.

        No tests. No change in behavior.

        * html/canvas/CanvasGradient.idl:
        * html/canvas/CanvasPattern.idl: The file is now empty though.
        * html/canvas/CanvasRenderingContext.idl:
        * html/canvas/CanvasRenderingContext2D.idl:
        * html/canvas/WebGLRenderingContext.idl:

2012-02-01  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r106408.
        http://trac.webkit.org/changeset/106408
        https://bugs.webkit.org/show_bug.cgi?id=77592

        crashes in chromium mac release tests (Requested by japhet on
        #webkit).

        * platform/graphics/Region.cpp:
        * platform/graphics/Region.h:
        (Region):
        (Shape):

2012-02-01  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Texmap] Use glScissors for clipping in TextureMapperGL when possible
        https://bugs.webkit.org/show_bug.cgi?id=77575

        Reviewed by Martin Robinson.

        Maintain a clipping stack, that helps us use stencils in conjunction with scissors.
        We apply scissors when the clip region is rectalinear, and stencil when it's not.

        No behavior changes so no new tests.

        * platform/graphics/opengl/TextureMapperGL.cpp:
        (SharedGLData):
        (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
        (WebCore::TextureMapperGL::drawTexture):
        (WebCore::TextureMapperGL::bindSurface):
        (WebCore):
        (WebCore::scissorClip):
        (WebCore::TextureMapperGL::beginScissorClip):
        (WebCore::TextureMapperGL::endScissorClip):
        (WebCore::TextureMapperGL::beginClip):
        (WebCore::TextureMapperGL::endClip):
        * platform/graphics/opengl/TextureMapperGL.h:
        (TextureMapperGL):

2012-02-01  Anders Carlsson  <andersca@apple.com>

        Move the scrolling coordinator to page/scrolling
        https://bugs.webkit.org/show_bug.cgi?id=77590

        Reviewed by Dan Bernstein.

        Put scrolling related files in page/scrolling to avoid cluttering the page directory.

        * WebCore.xcodeproj/project.pbxproj:
        * page/scrolling/ScrollingCoordinator.cpp: Renamed from Source/WebCore/page/ScrollingCoordinator.cpp.
        * page/scrolling/ScrollingCoordinator.h: Renamed from Source/WebCore/page/ScrollingCoordinator.h.
        * page/scrolling/mac/ScrollingCoordinatorMac.mm: Renamed from Source/WebCore/page/mac/ScrollingCoordinatorMac.mm.

2012-02-01  Kentaro Hara  <haraken@chromium.org>

        Remove [ObjCPrefix], [V8ConstructorTemplate], [allowAccessToNode],
        [v8implname] and [v8referenceattr] from code generators
        https://bugs.webkit.org/show_bug.cgi?id=77588

        Reviewed by Adam Barth.

        This patch removes [ObjCPrefix], [V8ConstructorTemplate], [allowAccessToNode],
        [v8implname] and [v8referenceattr] from code generators, since they are not used
        by any IDL files.

        No tests. No changes in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (IsConstructable):
        (IsConstructorTemplate):
        (GenerateNormalAttrGetter):
        (GenerateFunctionCallString):

2012-02-01  Pablo Flouret  <pablof@motorola.com>

        Support targetOrigin = "/" in postMessage for sending messages to same origin as source document.
        https://bugs.webkit.org/show_bug.cgi?id=77580

        Reviewed by Adam Barth.

        No new tests. Modified http/tests/security/postMessage/target-origin.html
        to test this case as well.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::postMessage):

2012-02-01  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Avoid creating NamedNodeMap unnecessarily
        https://bugs.webkit.org/show_bug.cgi?id=77574

        Reviewed by Ryosuke Niwa.

        The method Element::attributes() was being used for multiple things in our
        codebase: (1) as the getter for NamedNodeMap exposed to DOM, (2) as a way to other WebCore
        code get the "attribute storage" (currently inside NamedNodeMap), and (3) as a way to
        get the attribute storage creating one if necessary.

        This commit separate the jobs in different functions:

        1) attributes() keeps being the DOM getter, and loses its boolean parameter.

        2) updatedAttributes() updates the invalid attributes and returns the attribute
        storage. If we don't have one, return 0.

        3) ensureUpdatedAttributes() updates the invalid attributes and forces the
        creation of attribute storage to return.

        There is also another way to get to the attribute storage currently, via
        attributeMap(), which doesn't update the attributes for possible changes in Style
        or SVG attributes.

        Note that the new functions are not available in Node class, so C++ code manipulating
        attributes should cast to Element.

        This separation also made easier to spot and fix some places where we do not
        need to create the attribute storage if it doesn't exist.

        No new tests, this commit shouldn't change the behavior of existing code.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOneSelector):
        * dom/DatasetDOMStringMap.cpp:
        (WebCore::DatasetDOMStringMap::getNames):
        (WebCore::DatasetDOMStringMap::item):
        (WebCore::DatasetDOMStringMap::contains):
        * dom/Document.cpp:
        (WebCore::Document::importNode):
        * dom/Element.cpp:
        (WebCore::Element::setAttribute):
        (WebCore::Element::hasAttributes):
        (WebCore::Element::setAttributeNode):
        (WebCore::Element::setAttributeNodeNS):
        (WebCore::Element::removeAttributeNode):
        (WebCore::Element::getAttributeNode):
        (WebCore::Element::getAttributeNodeNS):
        (WebCore::Element::hasAttribute):
        (WebCore::Element::hasAttributeNS):
        (WebCore::Element::normalizeAttributes):
        * dom/Element.h:
        (Element):
        (WebCore::Element::attributes):
        (WebCore::Element::ensureAttributeData):
        (WebCore::Element::ensureUpdatedAttributes):
        (WebCore::Element::updatedAttributes):
        (WebCore::Element::setAttributesFromElement):
        (WebCore::Element::ensureAttributeMap): Made const to be reused by ensureUpdatedAttributes().
        (WebCore::Element::updateInvalidAttributes):
        (WebCore):
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::mapsEquivalent): Having no attributes is equivalent to
        not having an attribute storage because the attribute storage is lazily created.
        * dom/Node.cpp:
        (WebCore::Node::isEqualNode): Do not force the creation of attribute storage to
        compare two nodes.
        (WebCore::Node::isDefaultNamespace): Use updatedAttributes(). Since we iterate
        using length, it's OK if the attribute storage is empty.
        (WebCore::Node::lookupNamespaceURI): Ditto.
        (WebCore::Node::lookupNamespacePrefix): Ditto.
        (WebCore::Node::compareDocumentPosition): Ditto.
        * editing/ApplyStyleCommand.cpp:
        (WebCore::hasNoAttributeOrOnlyStyleAttribute):
        (WebCore::isEmptyFontTag):
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::isRemovableBlock): Use isElementNode() explicitly
        to identify non-Element nodes, then use hasAttributes() if is Element.
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::highestVisuallyEquivalentDivBelowRoot):
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::appendElement): Do not create the attribute storage
        unnecessarily.
        * editing/htmlediting.cpp:
        (WebCore::areIdenticalElements): Do not create the attribute storage
        unnecessarily. Use mapsEquivalent() for comparing the attributes.
        * editing/markup.cpp:
        (WebCore::completeURLs): Do not create the attribute storage unnecessarily.
        (WebCore::StyledMarkupAccumulator::appendElement): Ditto.
        (WebCore::isPlainTextMarkup): hasAttributes() will avoid creating the attribute
        storage unnecessarily.
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::parametersForPlugin):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parametersForPlugin):
        * html/HTMLParamElement.cpp:
        (WebCore::HTMLParamElement::isURLAttribute): Do not create the attribute storage
        unnecessarily.
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement): Use
        ensureUpdatedAttributes() since we will add new attributes.
        (WebCore):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::buildArrayForAttributeStyles):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::setAttributesAsText):
        (WebCore::InspectorDOMAgent::performSearch):
        (WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
        * page/PageSerializer.cpp:
        (WebCore::isCharsetSpecifyingNode): Do not assume attributeMap will exist.
        * svg/properties/SVGAnimatedPropertySynchronizer.h: Use ensureUpdatedAttributes()
        since we will add new attributes.
        * xml/XPathFunctions.cpp:
        (WebCore::XPath::FunLang::evaluate): Do not create the attribute storage
        unnecessarily.
        * xml/XPathNodeSet.cpp:
        (WebCore::XPath::NodeSet::traversalSort):
        * xml/XPathStep.cpp:
        (WebCore::XPath::Step::nodesInAxis): Use isElementNode() instead of comparing
        nodeType() manually. Do not create the attribute storage unnecessarily.
        * xml/parser/XMLDocumentParserLibxml2.cpp:
        (WebCore::XMLDocumentParser::XMLDocumentParser): Do not create the attribute
        storage unnecessarily.
        * xml/parser/XMLDocumentParserQt.cpp:
        (WebCore::XMLDocumentParser::XMLDocumentParser): Ditto.
        * xml/parser/XMLTreeBuilder.cpp:
        (WebCore::XMLTreeBuilder::XMLTreeBuilder): Ditto.

2012-02-01  Adam Barth  <abarth@webkit.org>

        contentDispositionType misparses the Content-Disposition header in some obscure corner cases
        https://bugs.webkit.org/show_bug.cgi?id=77577

        Reviewed by Eric Seidel.

        The contentDispositionType extracts the disposition-type from the
        Content-Disposition header.  According to RFC 6266 (and previous RFCs),
        the disposition-type must be an RFC 2616 token.  Rather than enforce
        this general rule, we had special-cased some examples (including
        name=foo and filename=bar).  This patch generalizes our check to
        properly validate that the disposition-type is an RFC 2616 token.

        In conjunction with some other work in the Chromium network stack, this
        causes Chromium to pass the following tests:

          http://greenbytes.de/tech/tc2231/#inlonlyquoted
          http://greenbytes.de/tech/tc2231/#attonlyquoted

        Without this patch, these test cases neither trigger a navigation nor a
        download in Chromium.  This patch does not appear to cause any visible
        change in Safari.  (Safari passes these tests both before and after
        this patch.)

        * platform/network/HTTPParsers.cpp:
        (WebCore::isRFC2616Token):
        (WebCore::contentDispositionType):
            - This patch also adds a comment to
              filenameFromHTTPContentDisposition, which explains some of the
              was this function incorrectly implements the requirements in
              RFC 6266.  Resolving these issues is a subject for a future
              patch.
        * platform/network/HTTPParsers.h:

2012-02-01  Dan Bernstein  <mitz@apple.com>

        WebCore part of <rdar://problem/10442663> Paginated display does not respect page-break-{before,after}
        https://bugs.webkit.org/show_bug.cgi?id=77505

        Reviewed by Darin Adler.

        * page/Page.h:
        (WebCore::Page::Pagination::Pagination): Added initializer for the behavesLikeColumns member
        variable.
        (WebCore::Page::Pagination::operator==): Added comparison of behavesLikeColumns values.
        (Pagination): Added behavesLikeColumns member variable. When set to false (the default),
        paginated display respects the page-break-{before,after} properties rather than the
        column-break-{before,after} ones.
        * rendering/ColumnInfo.h:
        (WebCore::ColumnInfo::ColumnInfo): Added initializer for the m_paginationUnit member.
        (WebCore::ColumnInfo::paginationUnit): Added this getter.
        (WebCore::ColumnInfo::setPaginationUnit): Added this setter.
        (ColumnInfo): Added m_paginationUnit member. It defaults to Column.
        * rendering/LayoutState.h:
        (WebCore::LayoutState::isPaginatingColumns): Changed to check the pagination unit.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutBlock): Added code to set the pagination unit in the ColumnInfo.
        (WebCore::RenderBlock::paginationUnit): Added. The base class implementation returns Column.
        * rendering/RenderBlock.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::paginationUnit): Added this override that returns Page, unless
        this is the RenderView for the main frame and pagination is set to behave like columns.
        * rendering/RenderView.h:

2012-02-01  Florin Malita  <fmalita@google.com>

        Backgrounds in HTML inside foreignObject don't draw
        https://bugs.webkit.org/show_bug.cgi?id=23111

        Reviewed by Eric Seidel.

        Test: svg/foreignObject/body-background.svg

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintBackground):
        Tweak the <body> background inhibiting logic to allow drawing when the element is embedded in FOs.


2012-02-01  Gustavo Lima Chaves  <glima@profusion.mobi>

        Make one able to set the local storage (tracker) database dir's path
        https://bugs.webkit.org/show_bug.cgi?id=77006

        Reviewed by Darin Adler.

        There are no behavior changes with the diff, so no need for new tests.

        * storage/StorageTracker.cpp:
        (WebCore::StorageTracker::setDatabaseDirectoryPath):
        (WebCore):
        (WebCore::StorageTracker::databaseDirectoryPath):
        * storage/StorageTracker.h:
        (StorageTracker):

2012-02-01  Anders Carlsson  <andersca@apple.com>

        Fix Window build.

        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::LayerClient::platformCALayerDidCreateTiles):
        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerDidCreateTiles):

2012-02-01  John Yani  <vanuan@gmail.com>

        GetMIMEDescription should return const char *
        https://bugs.webkit.org/show_bug.cgi?id=77297

        Reviewed by Alexey Proskuryakov.

        No new tests. No change in behaviour.

        * plugins/blackberry/PluginPackageBlackBerry.cpp:
        (WebCore::PluginPackage::fetchInfo):
        * plugins/efl/PluginPackageEfl.cpp:
        (WebCore):
        (WebCore::PluginPackage::fetchInfo):
        * plugins/npapi.h:
        * plugins/npfunctions.h:
        * plugins/qt/PluginPackageQt.cpp:
        (WebCore::PluginPackage::fetchInfo):

2012-02-01  Timothy Hatcher  <timothy@apple.com>

        Consolidate duplicate "willHide" functions in DetailedHeapshotView.js to fix
        a syntax error in JSC and make the Inspector open again in Release builds.

        https://webkit.org/b/77424

        Reviewed by Brian Weinstein.

        * inspector/front-end/DetailedHeapshotView.js:
        (WebInspector.DetailedHeapshotView.prototype.willHide): Consolidated.
        (WebInspector.DetailedHeapshotView.prototype.willHide): Removed.

2012-02-01  Justin Novosad  <junov@chromium.org>

        [Chromium] Enable deferred canvas rendering in the skia port
        https://bugs.webkit.org/show_bug.cgi?id=76732

        Reviewed by Stephen White.

        No new tests: covered by existing canvas layout tests

        Adding a new setting to enable deferred 2d canvas rendering.
        Added support for deferred 2d canvas rendering in ImageBufferSkia
        and Canvas2DLayerChromium, mostly plumbing. Deffered rendering
        implementation is provided by skia (class SkDeferredCanvas).

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::shouldDefer):
        (WebCore):
        (WebCore::HTMLCanvasElement::createImageBuffer):
        * html/HTMLCanvasElement.h:
        (HTMLCanvasElement):
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        (WebCore::Settings::setAccelerated2dCanvasEnabled):
        (WebCore):
        (WebCore::Settings::setDeferred2dCanvasEnabled):
        * page/Settings.h:
        (Settings):
        (WebCore::Settings::deferred2dCanvasEnabled):
        * platform/graphics/ImageBuffer.h:
        (WebCore::ImageBuffer::create):
        (ImageBuffer):
        * platform/graphics/cairo/ImageBufferCairo.cpp:
        (WebCore::ImageBuffer::ImageBuffer):
        * platform/graphics/cg/ImageBufferCG.cpp:
        (WebCore::ImageBuffer::ImageBuffer):
        * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
        (WebCore::Canvas2DLayerChromium::Canvas2DLayerChromium):
        (WebCore):
        (WebCore::Canvas2DLayerChromium::setCanvas):
        (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/Canvas2DLayerChromium.h:
        (Canvas2DLayerChromium):
        * platform/graphics/qt/ImageBufferQt.cpp:
        (WebCore::ImageBuffer::ImageBuffer):
        * platform/graphics/skia/ImageBufferSkia.cpp:
        (AcceleratedDeviceContext):
        (WebCore::AcceleratedDeviceContext::AcceleratedDeviceContext):
        (WebCore::AcceleratedDeviceContext::prepareForDraw):
        (WebCore::AcceleratedDeviceContext::flush):
        (WebCore):
        (WebCore::createAcceleratedCanvas):
        (WebCore::ImageBuffer::ImageBuffer):
        * platform/graphics/wince/ImageBufferWinCE.cpp:
        (WebCore::ImageBuffer::ImageBuffer):
        * platform/graphics/wx/ImageBufferWx.cpp:
        (WebCore::ImageBuffer::ImageBuffer):

2012-02-01  Ryosuke Niwa  <rniwa@webkit.org>

        Gcc build fix after r106482.

        * platform/graphics/ca/GraphicsLayerCA.h:
        (GraphicsLayerCA):

2012-02-01  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=77383
        Add a different didFirstVisuallNonEmptyLayout heuristic to experiment with
        -and corresponding-
        <rdar://problem/10709560>

        Reviewed by Sam Weinig.

        The goal is to re-vamp didFirstVisuallyNonEmptyLayout to be more accurate. 
        This patch adds a new heuristic called didNewFirstVisuallNonEmptyLayout and 
        leaves the old one for the time being. That is temporary.

        The heuristic for didNewFirstVisuallNonEmptyLayout is to count relevant 
        painted RenderObjects on Page.
        * page/Page.cpp:
        (WebCore::Page::Page):
        (WebCore::Page::setPaintedObjectsCounterThreshold):
        (WebCore::Page::addRelevantRepaintedObject):
        * page/Page.h:
        (WebCore):
        (Page):
        (WebCore::Page::startCountingRepaintedObjects):
        * WebCore.exp.in:

        Start counting relevant painted RenderObjects on the page once the first 
        layout is complete.
        * page/FrameView.cpp:
        (WebCore::FrameView::performPostLayoutTasks):

        Machinery for firing didNewFirstVisuallNonEmptyLayout.
        * loader/EmptyClients.h:
        (WebCore::EmptyFrameLoaderClient::dispatchDidNewFirstVisuallyNonEmptyLayout):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::didNewFirstVisuallyNonEmptyLayout):
        (WebCore):
        * loader/FrameLoader.h:
        (FrameLoader):
        * loader/FrameLoaderClient.h:
        (WebCore::FrameLoaderClient::dispatchDidNewFirstVisuallyNonEmptyLayout):

        These RenderObjects are the ones that this api currently consider to be 
        relevant. If their repaint rects intersect with the viewRect, then they are 
        added to the relevant objects set on the Page.
        * rendering/InlineBox.cpp:
        (WebCore::InlineBox::paint):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paint):
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::paintReplaced):
        * rendering/RenderHTMLCanvas.cpp:
        (WebCore::RenderHTMLCanvas::paintReplaced):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::paintReplaced):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::paintReplaced):
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::paint):
        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::paintReplaced):
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::paintReplaced):

2012-02-01  Alexis Menard  <alexis.menard@openbossa.org>

        CSSStyleDeclaration.getPropertyPriority() fails for CSS shorthand properties with 'important' priority
        https://bugs.webkit.org/show_bug.cgi?id=49058

        Reviewed by Andreas Kling.

        CSSMutableStyleDeclaration::getPropertyPriority was not handling shorthands properly. Shorthands are
        not part of the property list of the style so we need to query the longhands which are the one added
        in the list. Only if the longhands have equal priority the shorthand priority is known. I also renamed
        getPropertyPriority (not the CSSOM exposed method) to something more consistent with WebKit naming guidelines.

        Test: fast/css/shorthand-priority.html

        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::propertyIsImportant):
        (WebCore::CSSMutableStyleDeclaration::addParsedProperty):
        (WebCore::CSSMutableStyleDeclaration::getPropertyPriority):
        * css/CSSMutableStyleDeclaration.h:
        (CSSMutableStyleDeclaration):
        * editing/EditingStyle.cpp:
        (WebCore::EditingStyle::extractAndRemoveTextDirection):
        (WebCore::EditingStyle::collapseTextDecorationProperties):
        (WebCore::EditingStyle::conflictsWithInlineStyleOfElement):
        (WebCore::setTextDecorationProperty):
        * editing/RemoveCSSPropertyCommand.cpp:
        (WebCore::RemoveCSSPropertyCommand::doApply):

2012-02-01  Ryosuke Niwa  <rniwa@webkit.org>

        Crash in EventHandler::updateDragAndDrop
        https://bugs.webkit.org/show_bug.cgi?id=77569

        Reviewed by Alexey Proskuryakov.

        Test: fast/events/remove-target-with-shadow-in-drag.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::updateDragAndDrop):

2012-02-01  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r106382.
        http://trac.webkit.org/changeset/106382
        https://bugs.webkit.org/show_bug.cgi?id=77571

        Causing chromium crashes in PNGImageDecoder (Requested by
        japhet on #webkit).

        * bindings/v8/V8Proxy.cpp:
        (WebCore::V8Proxy::evaluate):
        * page/Console.cpp:
        (WebCore::Console::time):
        (WebCore::Console::timeEnd):
        * platform/chromium/PlatformSupport.h:
        * platform/chromium/TraceEvent.h:
        (internal):
        (ScopeTracer):
        (WebCore::internal::ScopeTracer::ScopeTracer):
        (WebCore::internal::ScopeTracer::~ScopeTracer):

2012-02-01  Anders Carlsson  <andersca@apple.com>

        Reviewed by Darin Adler.

        Simplify the code that creates a new tile layer by getting a reference to the RetainPtr<WebTileLayer>&
        slot in the hash map and assign directly into it.

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::revalidateTiles):

2012-02-01  Anders Carlsson  <andersca@apple.com>

        Tile cache doesn't have an upper limit
        https://bugs.webkit.org/show_bug.cgi?id=77564
        <rdar://problem/10710744>

        Reviewed by Darin Adler.

        Cache enough tiles to cover 3x the visible height and 2x the visible width of the page,
        and drop tiles that are outside that area.

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
        Call GraphicsLayerClient::notifySyncRequired here, which will schedule a layer flush and ensure that
        the page layout is up to date before the new tiles are painted.

        * platform/graphics/ca/PlatformCALayerClient.h:
        Add platformCALayerDidCreateTiles member function.

        * platform/graphics/ca/mac/TileCache.h:
        Update for new/removed member functions and member variables.

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::TileCache):
        Initialize the tile revalidation timer.

        (WebCore::TileCache::tileCacheLayerBoundsChanged):
        If we don't have any tiles at all right now, revalidate the tiles immediately. Otherwise,
        schedule the revalidation timer.

        (WebCore::TileCache::setNeedsDisplayInRect):
        Return early if we have no tiles.

        (WebCore::TileCache::visibleRectChanged):
        Schedule tile revalidation.

        (WebCore::TileCache::rectForTileIndex):
        New helper function that returns the bounds rect of a tile given its tile index.

        (WebCore::TileCache::getTileIndexRangeForRect):
        Clamp the rect to the bounds of the tile cache layer.

        (WebCore::TileCache::scheduleTileRevalidation):
        Schedule the revalidation timer if it hasn't already been scheduled.

        (WebCore::TileCache::tileRevalidationTimerFired):
        Call revalidateTiles.

        (WebCore::TileCache::revalidateTiles):
        Compute the tile coverage rect and remove all tiles that are outside. Create new tiles for any
        parts of the tile coverage rect that don't have tiles already.

        (WebCore::TileCache::tileLayerAtIndex):
        Remove invalid assertions.

2012-02-01  Max Vujovic  <mvujovic@adobe.com>

        Add support for fixed and percent min-width on the table element for table-layout: auto to
        match Firefox and Opera's behavior.

        In FixedTableLayout.cpp, the computePreferredLogicalWidths method looks like it has
        issues based on the comment: "FIXME: This entire calculation is incorrect for both
        minwidth and maxwidth." (minwidth and maxwidth refer to the preferred widths, not the
        min-width and max-width styles). I have not implemented min-width for FixedTableLayout
        in this patch since it requires some more research around that comment.

        min-width and max-width on the table element was discussed on the www-style list:
        http://lists.w3.org/Archives/Public/www-style/2012Jan/0684.html

        min-width is not implemented on <table> for table-layout: auto
        https://bugs.webkit.org/show_bug.cgi?id=76553

        Reviewed by Julien Chaffraix.

        Test: fast/table/min-width.html

        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::computePreferredLogicalWidths):

            If the min or max preferred logical width is less than a fixed min width style, it is
            set to the fixed min width style. Like a percent width style, a percent min-width style
            does not affect the min or max preferred logical widths computed by the table layout
            algorithm. RenderTable's computeLogicalWidth method handles percent min-width styles.

            min-width for the table-layout: fixed case has been split out into this bug:
            https://bugs.webkit.org/show_bug.cgi?id=76948

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::computeLogicalWidth):

            If the RenderStyle's logical min width is defined and greater than the logical width
            calculation, this method sets the logical width to the logical min width.

        (WebCore::RenderTable::convertStyleWidthToComputedWidth):

            This new method generalizes and factors out logic from RenderTable::computeLogicalWidth
            that converted the width style to a computed value in the fixed and percent case.
            RenderTable::computeLogicalWidth now calls this method to determine the computed values
            for both the width style and the min-width style. In the future, it can also be used for
            the max-width style.

            Note that this method handles the special CSS table case, which requires borders and
            paddings to be included in the computed width calculation. This applies to all width
            styles, including width, min-width, and max-width. Before, this special case was handled
            in RenderTable::computeLogicalWidth.

        * rendering/RenderTable.h:

2012-02-01  Brian Salomon  <bsalomon@google.com>

        [SKIA/CHROMIUM] Perform getImageData format conversions using Skia
        https://bugs.webkit.org/show_bug.cgi?id=77553

        Reviewed by Stephen White.

        Many existing canvas tests exercise this functionality.

        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::getImageData):

2012-02-01  Nate Chapin  <japhet@chromium.org>

        preventDefault() in a mousedown in a subframe should not
        prevent the scrollbar from handling mouse movements if the
        cursor leaves the subframe.
        https://bugs.webkit.org/show_bug.cgi?id=73097

        Reviewed by Darin Adler.

        Test: fast/events/scroll-div-with-prevent-default-in-subframe.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent):

2012-02-01  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] editing/inserting/4960120-2.html flaky crash
        https://bugs.webkit.org/show_bug.cgi?id=76815

        Reviewed by Martin Robinson.

        Check if the node for the first parent object not ignoring
        accessibility is null before using it. This might happen with
        certain kind of accessibility objects, such as the root one (the
        scroller containing the webArea object as its only child).

        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
        (objectFocusedAndCaretOffsetUnignored): Add missing null check.

2012-02-01  Antti Koivisto  <antti@apple.com>

        Make CSSMappedAttributeDeclaration have CSSMutableStyleDeclaration instead of being one
        https://bugs.webkit.org/show_bug.cgi?id=77545

        Reviewed by Andreas Kling.

        This is the easiest path for eliminating the last remaining subclass of CSSMutableStyleDeclaration.
        
        On negative side this increases memory use of CSSMappedAttributeDeclaration by one ptr and refcount
        (it loses the vptr) in total.
        
        This is not meant to be the end state, just an intermediate refactoring step. CSSMappedAttributeDeclaration
        should clearly be renamed too but this patch doesn't do that. It might not exist in its current form
        much longer.

        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::setProperty):
        (WebCore::CSSMutableStyleDeclaration::merge):
        * css/CSSMutableStyleDeclaration.h:

            Remove protected section. No subclasses remain.        
            Rename setPropertyInternal() to setProperty(). All public methods here are internal.
        
        (CSSMutableStyleDeclaration):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseMappedAttributeValue):
        * dom/Attribute.cpp:
        (WebCore::Attribute::clone):
        * dom/Attribute.h:
        (Attribute):
        (WebCore::Attribute::decl):
        (WebCore::Attribute::mappedAttributeDeclaration):
        (WebCore::Attribute::setMappedAttributeDeclaration):
        (WebCore::Attribute::Attribute):
        * dom/CSSMappedAttributeDeclaration.cpp:
        (WebCore::CSSMappedAttributeDeclaration::setMappedImageProperty):
        (WebCore::CSSMappedAttributeDeclaration::setMappedProperty):
        (WebCore::CSSMappedAttributeDeclaration::removeMappedProperty):
        * dom/CSSMappedAttributeDeclaration.h:
        (CSSMappedAttributeDeclaration):
        (WebCore::CSSMappedAttributeDeclaration::declaration):
        (WebCore::CSSMappedAttributeDeclaration::CSSMappedAttributeDeclaration):
        
            Make CSSMutableStyleDeclaration a member instead of the base class.
        
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged):
        (WebCore::StyledElement::removeCSSProperty):
        (WebCore::StyledElement::addCSSProperty):
        (WebCore::StyledElement::addCSSImageProperty):
        (WebCore::StyledElement::addCSSLength):
        (WebCore::StyledElement::addCSSColor):
        (WebCore::StyledElement::createMappedDecl):
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::getPresentationAttribute):

2012-02-01  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        [Qt] Set all PlatformTouchPoint values possible from a QTouch event.
        https://bugs.webkit.org/show_bug.cgi?id=77442

        Reviewed by Kenneth Rohde Christiansen.

        * platform/qt/PlatformTouchPointQt.cpp:
        (WebCore::PlatformTouchPoint::PlatformTouchPoint):

2012-02-01  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py: move type builder code to dedicated InspectorTypeBuilder .h/.cpp
        https://bugs.webkit.org/show_bug.cgi?id=77471

        Reviewed by Yury Semikhatsky.

        Code is moved physically to other file -- generator is changed accrodingly.

        * inspector/CodeGeneratorInspector.py:
        (String):
        (provides):
        (typename):
        (Array):

2012-02-01  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: debugger reports wrong sources when paused in inline script on page reload
        https://bugs.webkit.org/show_bug.cgi?id=77548

        V8 returns treats each script source as ending with \n, now we take
        this into account when reporting script line count to the inspector
        front-end.

        Reviewed by Vsevolod Vlasov.

        Test: inspector/debugger/pause-in-inline-script.html

        * bindings/js/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::dispatchDidParseSource):
        * bindings/v8/DebuggerScript.js:

2012-02-01  Shinya Kawanaka  <shinyak@google.com>

        Content element should be able to be dynamically added/removed/replaced in a shadow tree.
        https://bugs.webkit.org/show_bug.cgi?id=76611

        Reviewed by Hajime Morita

        When a content element is added/removed/replaced in a shadow tree, we have to recreate
        the shadow tree to recalculate inclusions of content elements. Currently we didn't recalculate it
        when content element is removed. (When added, it is recalculated.)
        This patch enables us to recalcurate the shadow tree when content element is removed.

        Test: fast/dom/shadow/content-element-move.html

        * dom/Element.cpp:
        (WebCore::Element::attach):
          If a shadow root exists, attaches shadow tree before attaching child elements.
        * dom/ShadowRoot.cpp:
          Added a flag to recalculate shadow tree.
        (WebCore::ShadowRoot::ShadowRoot):
        (WebCore::ShadowRoot::recalcShadowTreeStyle):
          Recalculates light children and shadow tree.
        (WebCore::ShadowRoot::setNeedsReattachHostChildrenAndShadow):
        (WebCore::ShadowRoot::reattachHostChildrenAndShadow):
          Detaches shadow tree and host light children, and attaches them again.
        * dom/ShadowRoot.h:
        (WebCore::ShadowRoot::clearNeedsReattachHostChildrenAndShadow):
        (WebCore::ShadowRoot::needsReattachHostChildrenAndShadow):
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::attach):
          Does not need to detach included elements, because they are not attached in ContainerNode anymore.
        (WebCore::HTMLContentElement::detach):
          When a content element detached, reattaches a shadow tree.

2012-02-01  Peter Beverloo  <peter@chromium.org>

        getIntersectionList causes transforms to be recalculated in SVG
        https://bugs.webkit.org/show_bug.cgi?id=77179

        Reviewed by Nikolas Zimmermann.

        Introduce a local variable to store the element's local-to-parent
        transformation matrix in, removing the need for the const_cast and
        stopping us from modifying any matrices elsewhere.

        Test: svg/custom/intersection-list-transforms.svg

        * rendering/svg/RenderSVGModelObject.cpp:
        (WebCore::getElementCTM):

2012-02-01  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [InspectorIndexedDB] Add tests for database names and database structure requests.
        https://bugs.webkit.org/show_bug.cgi?id=77439

        Reviewed by Pavel Feldman.

        Tests: http/tests/inspector/indexeddb/database-names.html
               http/tests/inspector/indexeddb/database-structure.html

        * inspector/front-end/IndexedDBModel.js:
        (WebInspector.IndexedDBModel.prototype.refreshDatabase):

2012-01-31  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Scripts navigator becomes empty after "show folders" settings change.
        https://bugs.webkit.org/show_bug.cgi?id=77441

        Reviewed by Pavel Feldman.

        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.ScriptsNavigator.prototype._reset):
        * inspector/front-end/utilities.js:

2012-02-01  Shawn Singh  <shawnsingh@chromium.org>

        Fix the semantics of passing contentsVisible flag to GraphicsLayers
        https://bugs.webkit.org/show_bug.cgi?id=76975

        Reviewed by Simon Fraser.

        This patch is covered by existing tests, in particular
        compositing/visibility/layer-visible-content.html; its
        expectations are rebaselined.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

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

        Unreviewed, another GTK build fix after r106446.

        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        Restore webKitWebSrcGetProtocols as it was before r106446.

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

        Unreviewed, GTK build fix after r106446.

        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

2012-02-01  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r106432.
        http://trac.webkit.org/changeset/106432
        https://bugs.webkit.org/show_bug.cgi?id=77529

        it breaks tests (Requested by shinyak on #webkit).

        * dom/Element.cpp:
        (WebCore::Element::attach):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::recalcShadowTreeStyle):
        * dom/ShadowRoot.h:
        (ShadowRoot):
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::attach):
        (WebCore::HTMLContentElement::detach):

2012-02-01  Hayato Ito  <hayato@chromium.org>

        Remove unnecessary [OldStyleObjC] from ShadowRoot.idl.
        https://bugs.webkit.org/show_bug.cgi?id=77516

        Reviewed by Kentaro Hara.

        No new tests. No change in behavior.

        * dom/ShadowRoot.idl:

2012-01-26  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] 0.11 webkitwebsrc
        https://bugs.webkit.org/show_bug.cgi?id=77086

        Port the webkitwebsrc element to GStreamer 0.11 APIs.

        Reviewed by Gustavo Noronha Silva.

        No new tests, existing http media layout tests should cover this.

        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (webkit_web_src_class_init):

2012-01-31  Hans Wennborg  <hans@chromium.org>

        Speech Input: Report speech element rect relative to window rather than frame
        https://bugs.webkit.org/show_bug.cgi?id=76443

        Reviewed by Darin Fisher.

        When requesting speech input, report the speech element rect relative
        to the window rather than the frame. The embedder will typically use
        this position to show a bubble indicating that speech recognition is
        in progress.

        Test: fast/speech/bubble-position.html

        * html/shadow/TextControlInnerElements.cpp:
        (WebCore::InputFieldSpeechButtonElement::startSpeechInput):

2012-01-31  Andreas Kling  <awesomekling@apple.com>

        Make elements that don't have attributes smaller.
        <http://webkit.org/b/76876>

        Reviewed by Sam Weinig and Antti Koivisto.

        Move the inline style declaration from StyledElement to ElementAttributeData, since having
        an inline style declaration also implies having a style attribute on the element.
        This saves one CPU word per element that has no attributes.

        This reduces memory consumption by 412 kB (on 64-bit) when viewing the full
        HTML5 spec at <http://whatwg.org/c>.

        This was rolled out once because of a performance regression which has been averted this
        time around by adding an Element::ensureAttributeMap() so we can force creation of the
        NamedNodeMap without also serializing the inline style for the "style" attribute.

        * dom/Element.h:
        (Element):
        (WebCore::Element::ensureAttributeMap):
        (WebCore):
        * dom/ElementAttributeData.h:
        (ElementAttributeData):
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::ensureInlineStyleDecl):
        (WebCore):
        (WebCore::NamedNodeMap::destroyInlineStyleDecl):
        * dom/NamedNodeMap.h:
        (WebCore::NamedNodeMap::inlineStyleDecl):
        (NamedNodeMap):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::addSubresourceAttributeURLs):
        * dom/StyledElement.h:
        (WebCore::StyledElement::inlineStyleDecl):
        (WebCore::StyledElement::ensureInlineStyleDecl):
        (StyledElement):
        (WebCore::StyledElement::destroyInlineStyleDecl):

2012-01-31  Hayato Ito  <hayato@chromium.org>

        Add APIs, getElementsByXXX family, to ShadowRoot IDL.
        https://bugs.webkit.org/show_bug.cgi?id=77323

        Reviewed by Dimitri Glazkov.

        Add APIs (getElementById, getElemesntByTagName, getElementsByClassName and getElementsByTagNameNS)
        to ShadowRoot IDL.

        * dom/ShadowRoot.idl:

2012-01-31  Shinya Kawanaka  <shinyak@google.com>

        Content element should be able to be dynamically added/removed/replaced in a shadow tree.
        https://bugs.webkit.org/show_bug.cgi?id=76611

        Reviewed by Hajime Morita.

        When a content element is added/removed/replaced in a shadow tree, we have to recreate
        the shadow tree to recalculate inclusions of content elements. Currently we didn't recalculate it
        when content element is removed. (When added, it is recalculated.)
        This patch enables us to recalcurate the shadow tree when content element is removed.

        Test: fast/dom/shadow/content-element-move.html

        * dom/Element.cpp:
        (WebCore::Element::attach):
          If a shadow root exists, attaches shadow tree before attaching child elements.
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::recalcShadowTreeStyle):
          Recalculates light children and shadow tree.
        (WebCore::ShadowRoot::reattachHostChildrenAndShadow):
          Detaches shadow tree and host light children, and attaches them again.
        * dom/ShadowRoot.h:
          Added a flag to recalculate shadow tree.
        (WebCore::ShadowRoot::setNeedsShadowTreeStyleRecalc):
        (WebCore::ShadowRoot::clearNeedsShadowTreeStyleRecalc):
        (WebCore::ShadowRoot::needsShadowTreeStyleRecalc):
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::attach):
          Does not need to detach included elements, because they are not attached in ContainerNode anymore.
        (WebCore::HTMLContentElement::detach):
          When a content element detached, reattaches a shadow tree.

2012-01-31  Joe Thomas  <joethomas@motorola.com>

        https://bugs.webkit.org/show_bug.cgi?id=76801
        Listboxes incorrectly display contents when cleared and then re-populated.

        Whenever the number of items in the listbox is less than the size of listbox (number of visible items the listbox can accomodate),
        we set the listbox scroll-offset to zero. The scroll-offset of the Scrollbar should also be set to 0 so that when the listbox is re-populated,
        scrollbar position and the content inside the listbox are in sync.

        Reviewed by Andreas Kling.

        Tests: fast/forms/listbox-clear-restore.html

        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::computeLogicalHeight): Setting the scroll-offset of the Scrollbar to 0 when scrollbar is not needed.

2012-01-31  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed. Fix build break after r106373.

        * CMakeLists.txt:

2012-01-31  Adam Barth  <abarth@webkit.org>

        HTMLPreloadScanner should understand the <base> element
        https://bugs.webkit.org/show_bug.cgi?id=77231

        Reviewed by Eric Seidel.

        Previously, the HTMLPreloadScanner would ignore the <base> element when
        preloading resources.  If there was a <base> tag, this could cause the
        preload scanner to make a bunch of useless requests.

        This patch teaches the preload scanner to use <base> tags to better
        predict which URLs will be used by the document.

        Tests: fast/preloader/first-base-tag-scanned-wins.html
               fast/preloader/first-base-tag-wins.html
               fast/preloader/understands-base-tag.html

        * dom/Document.cpp:
        (WebCore::Document::completeURL):
        (WebCore):
        * dom/Document.h:
        (Document):
        (WebCore::Document::baseElementURL):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::HTMLNames::PreloadTask::PreloadTask):
        (WebCore::HTMLNames::PreloadTask::processAttributes):
        (WebCore::HTMLNames::PreloadTask::preload):
        (WebCore::HTMLNames::PreloadTask::baseElementHref):
        (PreloadTask):
        (WebCore::HTMLPreloadScanner::scan):
        (WebCore::HTMLPreloadScanner::processToken):
        (WebCore::HTMLPreloadScanner::updatePredictedBaseElementURL):
        (WebCore):
        * html/parser/HTMLPreloadScanner.h:
        (HTMLPreloadScanner):

2012-01-31  Raymond Liu  <raymond.liu@intel.com>

        Dynamic allocate AudioBus with required number of channels for AudioNodeInput
        https://bugs.webkit.org/show_bug.cgi?id=76516

        Reviewed by Kenneth Russell.

        No new tests required.

        * webaudio/AudioBasicProcessorNode.cpp:
        (WebCore::AudioBasicProcessorNode::checkNumberOfChannelsForInput):
        * webaudio/AudioChannelMerger.cpp:
        (WebCore::AudioChannelMerger::checkNumberOfChannelsForInput):
        * webaudio/AudioGainNode.cpp:
        (WebCore::AudioGainNode::checkNumberOfChannelsForInput):
        * webaudio/AudioNode.cpp:
        (WebCore::AudioNode::checkNumberOfChannelsForInput):
        * webaudio/AudioNode.h:
        * webaudio/AudioNodeInput.cpp:
        (WebCore::AudioNodeInput::AudioNodeInput):
        (WebCore::AudioNodeInput::updateInternalBus):
        (WebCore::AudioNodeInput::internalSummingBus):
        * webaudio/AudioNodeInput.h:

2012-01-31  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (WebKit2): event.keyCode is always zero when typing in Russian
        https://bugs.webkit.org/show_bug.cgi?id=77473
        <rdar://problem/10751357>

        Reviewed by Darin Adler.

        Test: platform/mac/fast/events/non-roman-key-code.html

        * WebCore.exp.in:
        * platform/mac/PlatformEventFactoryMac.h:
        * platform/mac/PlatformEventFactoryMac.mm:
        (WebCore::keyIdentifierForKeyEvent):
        (WebCore::windowsKeyCodeForKeyEvent):
        Export functions for reuse in WebKit2. I did not attempt any larger refactoring at this time.

2012-01-31  Gregg Tavares  <gman@google.com>

        Make WebGL put synthesized errors in the JS console
        https://bugs.webkit.org/show_bug.cgi?id=77267

        Reviewed by Kenneth Russell.

        No new functionality so no new tests.

        * html/canvas/WebGLCompressedTextures.cpp:
        (WebCore::WebGLCompressedTextures::validateCompressedTexFuncData):
        (WebCore::WebGLCompressedTextures::compressedTexImage2D):
        (WebCore::WebGLCompressedTextures::compressedTexSubImage2D):
        * html/canvas/WebGLCompressedTextures.h:
        (WebGLCompressedTextures):
        * html/canvas/WebGLDebugShaders.cpp:
        (WebCore::WebGLDebugShaders::getTranslatedShaderSource):
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::activeTexture):
        (WebCore::WebGLRenderingContext::attachShader):
        (WebCore::WebGLRenderingContext::bindAttribLocation):
        (WebCore::WebGLRenderingContext::checkObjectToBeBound):
        (WebCore::WebGLRenderingContext::bindBuffer):
        (WebCore::WebGLRenderingContext::bindFramebuffer):
        (WebCore::WebGLRenderingContext::bindRenderbuffer):
        (WebCore::WebGLRenderingContext::bindTexture):
        (WebCore::WebGLRenderingContext::blendEquation):
        (WebCore::WebGLRenderingContext::blendEquationSeparate):
        (WebCore::WebGLRenderingContext::blendFunc):
        (WebCore::WebGLRenderingContext::blendFuncSeparate):
        (WebCore::WebGLRenderingContext::bufferData):
        (WebCore::WebGLRenderingContext::bufferSubData):
        (WebCore::WebGLRenderingContext::checkFramebufferStatus):
        (WebCore::WebGLRenderingContext::clear):
        (WebCore::WebGLRenderingContext::compileShader):
        (WebCore::WebGLRenderingContext::compressedTexImage2D):
        (WebCore::WebGLRenderingContext::compressedTexSubImage2D):
        (WebCore::WebGLRenderingContext::copyTexImage2D):
        (WebCore::WebGLRenderingContext::copyTexSubImage2D):
        (WebCore::WebGLRenderingContext::createShader):
        (WebCore::WebGLRenderingContext::deleteObject):
        (WebCore::WebGLRenderingContext::depthRange):
        (WebCore::WebGLRenderingContext::detachShader):
        (WebCore::WebGLRenderingContext::disable):
        (WebCore::WebGLRenderingContext::disableVertexAttribArray):
        (WebCore::WebGLRenderingContext::validateWebGLObject):
        (WebCore::WebGLRenderingContext::drawArrays):
        (WebCore::WebGLRenderingContext::drawElements):
        (WebCore::WebGLRenderingContext::enable):
        (WebCore::WebGLRenderingContext::enableVertexAttribArray):
        (WebCore::WebGLRenderingContext::framebufferRenderbuffer):
        (WebCore::WebGLRenderingContext::framebufferTexture2D):
        (WebCore::WebGLRenderingContext::generateMipmap):
        (WebCore::WebGLRenderingContext::getActiveAttrib):
        (WebCore::WebGLRenderingContext::getActiveUniform):
        (WebCore::WebGLRenderingContext::getAttachedShaders):
        (WebCore::WebGLRenderingContext::getAttribLocation):
        (WebCore::WebGLRenderingContext::getBufferParameter):
        (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
        (WebCore::WebGLRenderingContext::getParameter):
        (WebCore::WebGLRenderingContext::getProgramParameter):
        (WebCore::WebGLRenderingContext::getProgramInfoLog):
        (WebCore::WebGLRenderingContext::getRenderbufferParameter):
        (WebCore::WebGLRenderingContext::getShaderParameter):
        (WebCore::WebGLRenderingContext::getShaderInfoLog):
        (WebCore::WebGLRenderingContext::getShaderSource):
        (WebCore::WebGLRenderingContext::getTexParameter):
        (WebCore::WebGLRenderingContext::getUniform):
        (WebCore::WebGLRenderingContext::getUniformLocation):
        (WebCore::WebGLRenderingContext::getVertexAttrib):
        (WebCore::WebGLRenderingContext::hint):
        (WebCore::WebGLRenderingContext::isEnabled):
        (WebCore::WebGLRenderingContext::linkProgram):
        (WebCore::WebGLRenderingContext::pixelStorei):
        (WebCore::WebGLRenderingContext::readPixels):
        (WebCore::WebGLRenderingContext::renderbufferStorage):
        (WebCore::WebGLRenderingContext::scissor):
        (WebCore::WebGLRenderingContext::shaderSource):
        (WebCore::WebGLRenderingContext::stencilFunc):
        (WebCore::WebGLRenderingContext::stencilFuncSeparate):
        (WebCore::WebGLRenderingContext::stencilMaskSeparate):
        (WebCore::WebGLRenderingContext::texImage2DBase):
        (WebCore::WebGLRenderingContext::texImage2DImpl):
        (WebCore::WebGLRenderingContext::texImage2D):
        (WebCore::WebGLRenderingContext::videoFrameToImage):
        (WebCore::WebGLRenderingContext::texParameter):
        (WebCore::WebGLRenderingContext::texSubImage2DBase):
        (WebCore::WebGLRenderingContext::texSubImage2DImpl):
        (WebCore::WebGLRenderingContext::texSubImage2D):
        (WebCore::WebGLRenderingContext::uniform1f):
        (WebCore::WebGLRenderingContext::uniform1fv):
        (WebCore::WebGLRenderingContext::uniform1i):
        (WebCore::WebGLRenderingContext::uniform1iv):
        (WebCore::WebGLRenderingContext::uniform2f):
        (WebCore::WebGLRenderingContext::uniform2fv):
        (WebCore::WebGLRenderingContext::uniform2i):
        (WebCore::WebGLRenderingContext::uniform2iv):
        (WebCore::WebGLRenderingContext::uniform3f):
        (WebCore::WebGLRenderingContext::uniform3fv):
        (WebCore::WebGLRenderingContext::uniform3i):
        (WebCore::WebGLRenderingContext::uniform3iv):
        (WebCore::WebGLRenderingContext::uniform4f):
        (WebCore::WebGLRenderingContext::uniform4fv):
        (WebCore::WebGLRenderingContext::uniform4i):
        (WebCore::WebGLRenderingContext::uniform4iv):
        (WebCore::WebGLRenderingContext::uniformMatrix2fv):
        (WebCore::WebGLRenderingContext::uniformMatrix3fv):
        (WebCore::WebGLRenderingContext::uniformMatrix4fv):
        (WebCore::WebGLRenderingContext::useProgram):
        (WebCore::WebGLRenderingContext::validateProgram):
        (WebCore::WebGLRenderingContext::vertexAttrib1f):
        (WebCore::WebGLRenderingContext::vertexAttrib1fv):
        (WebCore::WebGLRenderingContext::vertexAttrib2f):
        (WebCore::WebGLRenderingContext::vertexAttrib2fv):
        (WebCore::WebGLRenderingContext::vertexAttrib3f):
        (WebCore::WebGLRenderingContext::vertexAttrib3fv):
        (WebCore::WebGLRenderingContext::vertexAttrib4f):
        (WebCore::WebGLRenderingContext::vertexAttrib4fv):
        (WebCore::WebGLRenderingContext::vertexAttribPointer):
        (WebCore::WebGLRenderingContext::viewport):
        (WebCore::WebGLRenderingContext::forceLostContext):
        (WebCore::WebGLRenderingContext::loseContextImpl):
        (WebCore::WebGLRenderingContext::forceRestoreContext):
        (WebCore::WebGLRenderingContext::validateTextureBinding):
        (WebCore::WebGLRenderingContext::validateLocationLength):
        (WebCore::WebGLRenderingContext::validateSize):
        (WebCore::WebGLRenderingContext::validateString):
        (WebCore::WebGLRenderingContext::validateTexFuncFormatAndType):
        (WebCore::WebGLRenderingContext::validateTexFuncLevel):
        (WebCore::WebGLRenderingContext::validateTexFuncParameters):
        (WebCore::WebGLRenderingContext::validateTexFuncData):
        (WebCore::WebGLRenderingContext::validateDrawMode):
        (WebCore::WebGLRenderingContext::validateStencilSettings):
        (WebCore::WebGLRenderingContext::validateStencilFunc):
        (WebCore::WebGLRenderingContext::validateFramebufferFuncParameters):
        (WebCore::WebGLRenderingContext::validateBlendEquation):
        (WebCore::WebGLRenderingContext::validateBlendFuncFactors):
        (WebCore::WebGLRenderingContext::validateCapability):
        (WebCore::WebGLRenderingContext::validateUniformParameters):
        (WebCore::WebGLRenderingContext::validateUniformMatrixParameters):
        (WebCore::WebGLRenderingContext::validateBufferDataParameters):
        (WebCore::WebGLRenderingContext::validateHTMLImageElement):
        (WebCore::WebGLRenderingContext::vertexAttribfImpl):
        (WebCore::WebGLRenderingContext::vertexAttribfvImpl):
        (WebCore::WebGLRenderingContext::maybeRestoreContext):
        (WebCore):
        (WebCore::WebGLRenderingContext::synthesizeGLError):
        * html/canvas/WebGLRenderingContext.h:
        (WebGLRenderingContext):

2012-01-31  Raymond Liu  <raymond.liu@intel.com>

        Clean up m_processLock logic in AudioBasicProcessorNode and AudioGainNode
        https://bugs.webkit.org/show_bug.cgi?id=76772

        Reviewed by Kenneth Russell.

        No new tests required.

        * webaudio/AudioBasicProcessorNode.cpp:
        (WebCore::AudioBasicProcessorNode::process):
        (WebCore::AudioBasicProcessorNode::checkNumberOfChannelsForInput):
        * webaudio/AudioBasicProcessorNode.h:
        * webaudio/AudioGainNode.cpp:
        (WebCore::AudioGainNode::process):
        (WebCore::AudioGainNode::checkNumberOfChannelsForInput):
        * webaudio/AudioGainNode.h:
        (AudioGainNode):

2012-01-31  Adam Klein  <adamk@chromium.org>

        ProcessingInstruction should not be a ContainerNode
        https://bugs.webkit.org/show_bug.cgi?id=75141

        Reviewed by Darin Adler.

        Per the DOM spec, ProcessingInstruction can't have any children.
        And the WebCore behavior already matches the spec by always returning
        false for childTypeAllowed(). This change simplifies
        ProcessingInstruction's implementation by making it subclass Node
        instead of ContainerNode.

        Test: fast/dom/processing-instruction-appendChild-exceptions.xhtml

        * dom/ContainerNode.cpp: Moved dispatchBeforeLoadEvent up to Node.
        * dom/ContainerNode.h:
        * dom/Node.cpp:
        (WebCore::Node::dispatchBeforeLoadEvent): Moved up from ContainerNode
        since it's used both by ProcessingInstruction and various Element
        subclasses.
        * dom/Node.h:
        * dom/ProcessingInstruction.cpp:
        (WebCore::ProcessingInstruction::ProcessingInstruction): Call Node constructor.
        (WebCore::ProcessingInstruction::insertedIntoDocument): Call Node impl.
        (WebCore::ProcessingInstruction::removedFromDocument): ditto.
        (WebCore::ProcessingInstruction::finishParsingChildren): ditto.
        * dom/ProcessingInstruction.h:

2012-01-31  Matthew Delaney  <mdelaney@apple.com>

        Failing 2d.shadow.enable.off.2.html on Lion
        https://bugs.webkit.org/show_bug.cgi?id=77489

        Reviewed by Dan Bernstein.

        The canvas spec requires that shadows not be drawn under certain
        circumstances outlined here: http://www.whatwg.org/specs/web-apps/current-work/#shadows
        This patch adds in those checks which allows us to pass now (on Lion)
        the philip canvas test that was checking that constraint.

        No new tests. Unskipping the test on Lion that this patch fixes.

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::setAllAttributesToDefault):
        (WebCore::CanvasRenderingContext2D::setShadow):
        (WebCore::CanvasRenderingContext2D::applyShadow):
        (WebCore::CanvasRenderingContext2D::shouldDrawShadows):
        * html/canvas/CanvasRenderingContext2D.h:
        (CanvasRenderingContext2D):

2012-01-31  Anders Carlsson  <andersca@apple.com>

        TileCache::setNeedsDisplayInRect cleanup
        https://bugs.webkit.org/show_bug.cgi?id=77486

        Reviewed by Andreas Kling.

        * platform/graphics/ca/mac/TileCache.h:
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::setNeedsDisplayInRect):
        TileCache::tileLayerAtIndex can in the future return nil, so cope with that. Also, replace
        nested if statements with continue statements.

        (WebCore::TileCache::getTileIndexRangeForRect):
        Rename this to better indicate that it returns a range of indices.

2012-01-31  Dana Jansens  <danakj@chromium.org>

        Add contains() test to Region
        https://bugs.webkit.org/show_bug.cgi?id=72294

        Reviewed by Anders Carlsson.

        * platform/graphics/Region.cpp:
        (WebCore::Region::contains):
        (WebCore):
        * platform/graphics/Region.h:
        (Region):
        (Shape):
        (WebCore::operator==):
        (WebCore):

2012-01-31  Sami Kyostila  <skyostil@chromium.org>

        [chromium] Compositor debug borders are not scaled correctly
        https://bugs.webkit.org/show_bug.cgi?id=77468

        Use CCLayerImpl::contentBounds() instead of CCLayerImpl::bounds() to calculate debug
        border geometry so that the borders are properly scaled.

        Reviewed by James Robinson.

        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
        (WebCore::CCLayerImpl::appendDebugBorderQuad):

2012-01-31  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r106376.
        http://trac.webkit.org/changeset/106376
        https://bugs.webkit.org/show_bug.cgi?id=77481

        Broke WebGLLayerChromiumTest in webkit_unit_tests (Requested
        by kbr_google on #webkit).

        * platform/graphics/gpu/DrawingBuffer.cpp:
        (WebCore):
        (WebCore::DrawingBuffer::reset):

2012-01-31  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]Reduce the cases when the box style in region is computed
        https://bugs.webkit.org/show_bug.cgi?id=77446

        Reviewed by David Hyatt.

        Covered by existing region style tests.

        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::setRegionBoxesRegionStyle):
        (WebCore::RenderRegion::restoreRegionBoxesOriginalStyle):

2012-01-31  Anders Carlsson  <andersca@apple.com>

        Put tiles in a HashMap
        https://bugs.webkit.org/show_bug.cgi?id=77480

        Reviewed by Antti Koivisto.

        Put tiles in a hash map keyed off the tile index.

        * platform/graphics/ca/mac/TileCache.h:
        Shuffle member variables around so the order makes more sense.
        Add the tile map.

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::TileCache):
        Update member initializers.

        (WebCore::TileCache::setNeedsDisplayInRect):
        Call tileLayerAtIndex instead of tileLayerAtPosition.

        (WebCore::TileCache::setAcceleratesDrawing):
        (WebCore::TileCache::setTileDebugBorderWidth):
        (WebCore::TileCache::setTileDebugBorderColor):
        Iterate over the hash map instead of the sublayers.

        (WebCore::TileCache::resizeTileGrid):
        Add the created layers to the map.

        (WebCore::TileCache::tileLayerAtIndex):
        Rename from tileLayerAtPoint to better reflect that this member function
        returns a tile layer at the given index and not the given point.

2012-01-31  Antti Koivisto  <antti@apple.com>

        Make CSSOM style() return CSSStyleDeclaration*
        https://bugs.webkit.org/show_bug.cgi?id=77475

        Reviewed by Anders Carlsson

        CSSStyleRule::style() and some other places return CSSMutableStyleDeclaration. 
        They should return the plain CSSOM type instead.
        
        CSSMutableStyleDeclaration* should be available through non-CSSOM function.

        * css/CSSFontFaceRule.h:
        (WebCore::CSSFontFaceRule::style):
        (WebCore::CSSFontFaceRule::declaration):
        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule):
        * css/CSSStyleRule.h:
        (WebCore::CSSStyleRule::style):
        (WebCore::CSSStyleRule::declaration):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::styleForKeyframe):
        * css/WebKitCSSKeyframeRule.h:
        (WebCore):
        (WebCore::WebKitCSSKeyframeRule::style):
        (WebCore::WebKitCSSKeyframeRule::declaration):
        (WebKitCSSKeyframeRule):
        * editing/EditingStyle.cpp:
        (WebCore::styleFromMatchedRulesForElement):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::revalidateStyle):
        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::retrieveResourcesForCSSRule):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::parseMappedAttribute):
        (WebCore::SVGFontFaceElement::fontFamily):
        (WebCore::SVGFontFaceElement::rebuildFontFace):

2012-01-31  Scott Graham  <scottmg@chromium.org>

        [Chromium] Remove references to gyp cygwin build target
        https://bugs.webkit.org/show_bug.cgi?id=77253

        Reviewed by Julien Chaffraix.

        Target dependency is no longer required, it's done earlier in the
        build process.

        * WebCore.gyp/WebCore.gyp:

2012-01-31  Jon Lee  <jonlee@apple.com>

        Hidden form elements do not save their state prior to form submission
        https://bugs.webkit.org/show_bug.cgi?id=77391
        <rdar://problem/10563108>

        Reviewed by Brady Eidson.

        Test: fast/forms/state-restore-hidden.html

        * html/HiddenInputType.cpp: Teach hidden inputs to save and restore their state.
        (WebCore::HiddenInputType::saveFormControlState):
        (WebCore::HiddenInputType::restoreFormControlState):
        * html/HiddenInputType.h:
        (HiddenInputType):

2012-01-31  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: IDBCursor.update() should raise exception if key changed
        https://bugs.webkit.org/show_bug.cgi?id=76952

        Move the test from the async task to the synchronous call, per spec. Also re-ordered the tests
        done during the synchronous call and the asynchronous task to follow the spec order.

        Reviewed by Tony Chang.

        Tests: storage/indexeddb/cursor-update.html

        * storage/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::put): Added check during update() call, order checks per spec.
        (WebCore::IDBObjectStoreBackendImpl::putInternal): Move effective key calculation inline.
        * storage/IDBObjectStoreBackendImpl.h: Removed selectKeyForPut method.

2012-01-31  Anders Carlsson  <andersca@apple.com>

        Inform the tile cache whenever the visible rect changes
        https://bugs.webkit.org/show_bug.cgi?id=77470

        Reviewed by Andreas Kling.

        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::visibleRectChanged):
        Add empty function.

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::visibleRectChanged):
        Call through to the PlatformCALayer.

        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayer::visibleRectChanged):
        Call through to the underlying WebTileCacheLayer.

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::visibleRectChanged):
        Add empty stub.

        (WebCore::TileCache::visibleRect):
        Add new (currently unused) helper function that returns the visible rect of the
        tile cache layer.

        * platform/graphics/ca/mac/WebTileCacheLayer.h:
        * platform/graphics/ca/mac/WebTileCacheLayer.mm:
        (-[WebTileCacheLayer visibleRectChanged]):
        Call through to the TielCache object.

        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
        (PlatformCALayer::visibleRectChanged):
        Add stub.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::frameViewDidScroll):
        Call GraphicsLayer::visibleRectChanged.

2012-01-31  Antti Koivisto  <antti@apple.com>

        Remove CSSStyleDeclaration isElementStyleDeclaration bit
        https://bugs.webkit.org/show_bug.cgi?id=77460

        Reviewed by Andreas Kling.

        Inline style declaration is now the only type of style declaration with element parent.
        We can remove the bit and the associated logic.

        * bindings/js/JSDOMBinding.h:
        (WebCore::root):
        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
        (WebCore::CSSMutableStyleDeclaration::setNeedsStyleRecalc):
        * css/CSSMutableStyleDeclaration.h:
        (WebCore::CSSMutableStyleDeclaration::createInline):
        (CSSMutableStyleDeclaration):
        * css/CSSStyleDeclaration.cpp:
        (WebCore::CSSStyleDeclaration::CSSStyleDeclaration):
        (WebCore):
        (WebCore::CSSStyleDeclaration::parentStyleSheet):
        * css/CSSStyleDeclaration.h:
        (WebCore::CSSStyleDeclaration::parentRule):
        (WebCore::CSSStyleDeclaration::clearParentRule):
        (WebCore::CSSStyleDeclaration::parentElement):
        (WebCore::CSSStyleDeclaration::clearParentElement):
        (CSSStyleDeclaration):

2012-01-31  Dana Jansens  <danakj@chromium.org>

        [chromium] Compute occlusion during paint loop
        https://bugs.webkit.org/show_bug.cgi?id=76858

        Reviewed by James Robinson.

        New unit tests in TiledLayerChromiumTest.cpp, CCLayerTreeHostCommonTest.cpp, CCLayerTreeHostTest.cpp

        * platform/graphics/FloatRect.cpp:
        (WebCore::enclosedIntRect):
        (WebCore):
        * platform/graphics/FloatRect.h:
        (WebCore):
        * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
        (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/Canvas2DLayerChromium.h:
        (Canvas2DLayerChromium):
        * platform/graphics/chromium/ContentLayerChromium.cpp:
        (WebCore::ContentLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/ContentLayerChromium.h:
        (ContentLayerChromium):
        * platform/graphics/chromium/ImageLayerChromium.cpp:
        (WebCore::ImageLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/ImageLayerChromium.h:
        (ImageLayerChromium):
        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::contentToScreenSpaceTransform):
        (WebCore):
        (WebCore::LayerChromium::addSelfToOccludedScreenSpace):
        (WebCore::LayerChromium::isPaintedAxisAlignedInScreen):
        * platform/graphics/chromium/LayerChromium.h:
        (WebCore):
        (WebCore::LayerChromium::paintContentsIfDirty):
        (LayerChromium):
        * platform/graphics/chromium/RenderSurfaceChromium.h:
        (RenderSurfaceChromium):
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::addSelfToOccludedScreenSpace):
        * platform/graphics/chromium/TiledLayerChromium.h:
        (WebCore):
        ():
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::paintContentsIfDirty):
        (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
        (RenderSurfaceRegion):
        (WebCore):
        (WebCore::pushTargetRenderSurfaceRegion):
        (WebCore::popAndPushTargetRenderSurfaceRegion):
        (WebCore::CCLayerTreeHost::paintLayerContents):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore):
        ():
        * platform/graphics/chromium/cc/CCQuadCuller.cpp:

2012-01-31  John Bates  <jbates@google.com>

        [Chromium] Add chromium-style tracing support
        https://bugs.webkit.org/show_bug.cgi?id=76885

        Reviewed by Darin Fisher.

        This code enables WebKit trace events to pass through more data to the
        chromium platform tracing API and generally to use the full tracing
        API provided by chromium.

        * bindings/v8/V8Proxy.cpp:
        (WebCore::V8Proxy::evaluate): Replace old tracing API.
        * page/Console.cpp:
        (WebCore::Console::time): Replace old tracing API.
        (WebCore::Console::timeEnd): Replace old tracing API.
        * platform/chromium/PlatformSupport.h:
        * platform/chromium/TraceEvent.h:
        (WebCore::TraceEvent::TraceID::TraceID):
        (WebCore::TraceEvent::TraceID::data):
        (WebCore::TraceEvent::TraceStringWithCopy::TraceStringWithCopy):
        (WebCore::TraceEvent::TraceStringWithCopy::operator const char* ):
        (WebCore::TraceEvent::setTraceValue):
        (WebCore::TraceEvent::addTraceEvent):
        (WebCore::TraceEvent::TraceEndOnScopeClose::TraceEndOnScopeClose):
        (WebCore::TraceEvent::TraceEndOnScopeClose::~TraceEndOnScopeClose):
        (WebCore::TraceEvent::TraceEndOnScopeClose::initialize):
        (WebCore::TraceEvent::TraceEndOnScopeClose::addEventIfEnabled):
        (WebCore::TraceEvent::TraceEndOnScopeCloseThreshold::TraceEndOnScopeCloseThreshold):
        (WebCore::TraceEvent::TraceEndOnScopeCloseThreshold::~TraceEndOnScopeCloseThreshold):
        (WebCore::TraceEvent::TraceEndOnScopeCloseThreshold::initialize):
        (WebCore::TraceEvent::TraceEndOnScopeCloseThreshold::addEventIfEnabled):

2012-01-31  Ryosuke Niwa  <rniwa@webkit.org>

        Crash in DeleteSelectionCommand::handleGeneralDelete when attempting to delete the start block
        https://bugs.webkit.org/show_bug.cgi?id=77077

        Reviewed by Enrica Casucci.

        The crash was caused by a missing null check after removing the position out of the start block.
        Fixed the bug by adding an early return.

        Tests: editing/deleting/delete-start-block.html
               editing/selection/move-into-empty-root-inline-box.html

        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::handleGeneralDelete):

2012-01-31  Rafael Brandao  <rafael.lobo@openbossa.org>

        HTMLIsIndexElement should not expose HTMLInputElement properties
        https://bugs.webkit.org/show_bug.cgi?id=76095

        Reviewed by Eric Seidel.

        This is a buildfix for r106373.

        * DerivedSources.pri: Removed reference to HTMLIsIndexElement.idl

2012-01-31  Yongsheng Zhu  <yongsheng.zhu@intel.com>

        WebGL must allocate smaller drawing buffer when the allocation fails. 
        https://bugs.webkit.org/show_bug.cgi?id=76654

        Reviewed by Kenneth Russell.

        Test: fast/canvas/webgl/drawingbuffer-test.html

        * platform/graphics/gpu/DrawingBuffer.cpp:
        (WebCore):
        (WebCore::DrawingBuffer::create):
        (WebCore::DrawingBuffer::reset):

2012-01-25  Eric Seidel  <eric@webkit.org>

        HTMLIsIndexElement should not expose HTMLInputElement properties
        https://bugs.webkit.org/show_bug.cgi?id=76095

        Reviewed by Adam Barth.

        document.createElement("isindex") should produce an HTMLUnknownElement
        per the HTML5 spec.  The parser automagically translates <isindex> into
        a whole dom tree roughly representing what <isindex> used to do 15 years ago. :)

        This patch just removes our support for HTMLIsIndexElement.  The parser
        support was already in.  Having support for HTMLIsIndexElement was causing
        one of the IE TestCenter tests to fail.

        Test: fast/dom/HTMLIsIndexElement/prototype-chain.html

        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.order:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/gobject/GNUmakefile.am:
        * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
        (WebKit::createHTMLElementWrapper):
        * bindings/objc/DOM.mm:
        (WebCore::createElementClassMap):
        * bindings/objc/DOMHTML.h:
        * bindings/objc/PublicDOMInterfaces.h:
        * html/HTMLElementsAllInOne.cpp:
        * html/HTMLIsIndexElement.cpp: Removed.
        * html/HTMLIsIndexElement.h: Removed.
        * html/HTMLIsIndexElement.idl: Removed.
        * html/HTMLTagNames.in:
        * page/DOMWindow.idl:

2012-01-31  Alexis Menard  <alexis.menard@openbossa.org>

        Unreviewed include cleanup.

        Tested locally on Qt and Chromium port.

        * dom/Node.cpp:

2012-01-31  Arko Saha  <arko@motorola.com>

        The spec renamed addTrack() to addTextTrack().
        https://bugs.webkit.org/show_bug.cgi?id=77381

        Reviewed by Eric Carlson.

        Renamed addTrack() to addTextTrack().
        Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#media-elements

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::addTextTrack):
        * html/HTMLMediaElement.h:
        (WebCore::HTMLMediaElement::addTextTrack):
        * html/HTMLMediaElement.idl:

2012-01-31  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py: reimplement generated array types
        https://bugs.webkit.org/show_bug.cgi?id=77289

        Reviewed by Vsevolod Vlasov.

        Arrays are now rendered as a single template class. Its type-specific
        details are provided by an additional ArrayItemHelper class that is
        defined using C++ specialization technique.

        * inspector/CodeGeneratorInspector.py:
        (RawTypes.String):
        (RawTypes.String.get_array_item_raw_c_type_text):
        (RawTypes.Int):
        (RawTypes.Int.get_array_item_raw_c_type_text):
        (RawTypes.Number):
        (RawTypes.Number.get_array_item_raw_c_type_text):
        (RawTypes.Bool):
        (RawTypes.Bool.get_array_item_raw_c_type_text):
        (RawTypes.Object):
        (RawTypes.Object.get_array_item_raw_c_type_text):
        (RawTypes.Any):
        (RawTypes.Any.get_array_item_raw_c_type_text):
        (RawTypes.Array):
        (RawTypes.Array.get_array_item_raw_c_type_text):
        (RawTypes):
        (TypeBindings.create_type_declaration_.EnumBinding):
        (TypeBindings.create_type_declaration_.EnumBinding.get_array_item_c_type_text):
        (TypeBindings.create_type_declaration_.PlainString):
        (TypeBindings.create_type_declaration_.PlainString.get_array_item_c_type_text):
        (TypeBindings.create_type_declaration_.TypedefString):
        (TypeBindings.create_type_declaration_.TypedefString.get_array_item_c_type_text):
        (StructItemTraits):
        (get_array_item_c_type_text):
        (PlainObjectBinding):
        (PlainObjectBinding.get_array_item_c_type_text):
        (AdHocTypeContext):
        (AdHocTypeContext.get_type_name_fix):
        (AdHocTypeContext.add_type):
        (ArrayBinding):
        (ArrayBinding.resolve_inner):
        (ArrayBinding.resolve_inner.ResolveData):
        (ArrayBinding.request_user_runtime_cast):
        (ArrayBinding.request_internal_runtime_cast):
        (ArrayBinding.get_code_generator):
        (ArrayBinding.get_code_generator.CodeGenerator):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_forward_declaration):
        (ArrayBinding.get_code_generator.CodeGenerator.register_use):
        (ArrayBinding.get_code_generator.CodeGenerator.get_generate_pass_id):
        (ArrayBinding.get_validator_call_text):
        (ArrayBinding.get_in_c_type_text):
        (ArrayBinding.get_array_item_c_type_text):
        (ArrayBinding.get_setter_value_expression_pattern):
        (ArrayBinding.reduce_to_raw_type):
        (RawTypeBinding.get_array_item_c_type_text):
        (ArrayItemHelper):
        (typename):
        (ArrayOf):
        (Traits):

2012-01-31  Antti Koivisto  <antti@apple.com>

        Parent SVGFontFaceElements style declaration to the rule
        https://bugs.webkit.org/show_bug.cgi?id=77421

        Reviewed by Adam Roben.

        For some reason the declaration is parented to the element which adds a bunch of unnecessary special case code.
        The invalidation on mutation is done explicitly by SVGFontFaceElement so that is not affected. The declaration
        is not exposed so the change is not observable with a test.

        * css/CSSFontFaceRule.cpp:
        (WebCore::CSSFontFaceRule::~CSSFontFaceRule):
        * css/CSSMutableStyleDeclaration.h:
        (WebCore::CSSMutableStyleDeclaration::createInline):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::SVGFontFaceElement):
        (WebCore::SVGFontFaceElement::parseMappedAttribute):
        (WebCore::SVGFontFaceElement::fontFamily):
        (WebCore::SVGFontFaceElement::rebuildFontFace):
        * svg/SVGFontFaceElement.h:
        
            Remove the unnecessary m_styleDeclaration field, access through m_fontFaceRule instead.

2012-01-31  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Tap highlighting: Support better outlines for multiline inlines
        https://bugs.webkit.org/show_bug.cgi?id=77428

        Reviewed by Simon Hausmann.

        Covered by manual tests.

        Do not use the linesBoundingBox anymore but draw a custom path
        with rounded corners. Inlines are drawn as max 3 rects, first
        line rect, joined middle rect and the rect for the last line.

        * page/GestureTapHighlighter.cpp:
        * platform/graphics/Path.h: Make addBeziersForRoundedRect public.

2012-01-31  Alexei Filippov  <alexeif@chromium.org>

        Web Inspector: show sizes in bytes instead of KB, MB in heap profiler.
        https://bugs.webkit.org/show_bug.cgi?id=77199

        Reviewed by Pavel Feldman.

        * inspector/front-end/DetailedHeapshotGridNodes.js:
        (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
        (WebInspector.HeapSnapshotInstanceNode.prototype._enhanceData):
        (WebInspector.HeapSnapshotConstructorNode.prototype.get data):
        (WebInspector.HeapSnapshotDiffNode.prototype.get data):
        * inspector/front-end/UIUtils.js:
        (Number.withThousandsSeparator):

2012-01-26  Hans Wennborg  <hans@chromium.org>

        Speech Input: move MockSpeechInputClient into Chromium DumpRenderTree implementation
        https://bugs.webkit.org/show_bug.cgi?id=77083

        Reviewed by Darin Fisher.

        Remove SpeechInputClientMock. The mock is moving to the DumpRenderTree
        implementation.

        No new tests, just refactoring.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/mock/SpeechInputClientMock.cpp: Removed.
        * platform/mock/SpeechInputClientMock.h: Removed.

2012-01-31  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: boost protocol version to 1.0
        https://bugs.webkit.org/show_bug.cgi?id=77408

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector-1.0.json: Copied from Source/WebCore/inspector/Inspector.json.
        * inspector/Inspector.json:

2012-01-31  Roland Steiner  <rolandsteiner@chromium.org>

        <style scoped>: Improve shortcut code for cases where <style scoped> isn't used
        https://bugs.webkit.org/show_bug.cgi?id=77410

        Move shortcut from setupScopingElementStack(), do it at the calling sites instead
        (where a larger chunk of work can be skipped).

        Reviewed by Antti Koivisto.

        No new tests. (refactoring)

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::setupScopingElementStack): remove shortcut code
        (WebCore::CSSStyleSelector::pushParent): add shortcut code
        (WebCore::CSSStyleSelector::matchScopedAuthorRules): factor matching scoped rules out from matchAuthorRules
        (WebCore::CSSStyleSelector::matchAuthorRules): add shortcut code
        * css/CSSStyleSelector.h:
        (CSSStyleSelector): add matchScopedAuthorRules

2012-01-31  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: DOMDebugger.setEventListenerBreakpoint should accept regular DOM event names.
        https://bugs.webkit.org/show_bug.cgi?id=77409

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector.json:
        * inspector/InspectorDOMDebuggerAgent.cpp:
        (WebCore::InspectorDOMDebuggerAgent::setEventListenerBreakpoint):
        (WebCore):
        (WebCore::InspectorDOMDebuggerAgent::setInstrumentationBreakpoint):
        (WebCore::InspectorDOMDebuggerAgent::setBreakpoint):
        (WebCore::InspectorDOMDebuggerAgent::removeEventListenerBreakpoint):
        (WebCore::InspectorDOMDebuggerAgent::removeInstrumentationBreakpoint):
        (WebCore::InspectorDOMDebuggerAgent::removeBreakpoint):
        (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
        * inspector/InspectorDOMDebuggerAgent.h:
        (InspectorDOMDebuggerAgent):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::didInstallTimerImpl):
        (WebCore::InspectorInstrumentation::didRemoveTimerImpl):
        (WebCore::InspectorInstrumentation::willHandleEventImpl):
        (WebCore::InspectorInstrumentation::willFireTimerImpl):
        (WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        * inspector/front-end/BreakpointsSidebarPane.js:
        (WebInspector.EventListenerBreakpointsSidebarPane.prototype._setBreakpoint):
        (WebInspector.EventListenerBreakpointsSidebarPane.prototype._removeBreakpoint):

2012-01-31  Pablo Flouret  <pablof@motorola.com>

        Fix compilation errors on build-webkit --debug --no-workers on mac.
        https://bugs.webkit.org/show_bug.cgi?id=75869

        Reviewed by Adam Barth.

        * WebCore.exp.in:

2012-01-30  Konrad Piascik  <kpiascik@rim.com>

        Web Inspector: [BlackBerry] Add BlackBerry UA Strings to the Inspector's UA switcher
        https://bugs.webkit.org/show_bug.cgi?id=77343

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsScreen.prototype._createUserAgentSelectRowElement.get const):

2012-01-30  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: should be possible to step through all event listeners when event listener breakpoint is hit
        https://bugs.webkit.org/show_bug.cgi?id=77331

        Inspector instrumentation is called before and after each event handler invokation.
        In case inspector front-end is closed it is no-op, otherwise it may stop execution
        on an event listener breakpoint.

        Reviewed by Pavel Feldman.

        Test: inspector/debugger/step-through-event-listeners.html

        * dom/EventTarget.cpp:
        (WebCore::EventTarget::fireEventListeners):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::willDispatchEventImpl):
        (WebCore::InspectorInstrumentation::willHandleEventImpl):
        (WebCore):
        (WebCore::InspectorInstrumentation::didHandleEventImpl):
        (WebCore::InspectorInstrumentation::didDispatchEventImpl):
        (WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
        (WebCore::InspectorInstrumentation::didDispatchEventOnWindowImpl):
        * inspector/InspectorInstrumentation.h:
        (InspectorInstrumentation):
        (WebCore::InspectorInstrumentation::willHandleEvent):
        (WebCore):
        (WebCore::InspectorInstrumentation::didHandleEvent):

2011-01-30  Hayato Ito  <hayato@chromium.org>

        Attach light children after removing a shadow root.
        https://bugs.webkit.org/show_bug.cgi?id=74267

        Reviewed by Ryosuke Niwa.

        Tests: fast/dom/shadow/dynamically-created-shadow-root-expected.html
               fast/dom/shadow/dynamically-created-shadow-root.html:

        * dom/Element.cpp:
        (WebCore::Element::removeShadowRoot):

2012-01-30  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r106324.
        http://trac.webkit.org/changeset/106324
        https://bugs.webkit.org/show_bug.cgi?id=77406

        Broke CCLayerTreeHostTestLayerOcclusion.runMultiThread and
        runSingleThread (Requested by yuzo1 on #webkit).

        * platform/graphics/FloatRect.cpp:
        * platform/graphics/FloatRect.h:
        (WebCore):
        * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
        (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/Canvas2DLayerChromium.h:
        (WebCore):
        (Canvas2DLayerChromium):
        * platform/graphics/chromium/ContentLayerChromium.cpp:
        (WebCore::ContentLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/ContentLayerChromium.h:
        (WebCore):
        (ContentLayerChromium):
        * platform/graphics/chromium/ImageLayerChromium.cpp:
        (WebCore::ImageLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/ImageLayerChromium.h:
        (WebCore):
        (ImageLayerChromium):
        * platform/graphics/chromium/LayerChromium.cpp:
        * platform/graphics/chromium/LayerChromium.h:
        (WebCore):
        (WebCore::LayerChromium::paintContentsIfDirty):
        (LayerChromium):
        * platform/graphics/chromium/RenderSurfaceChromium.h:
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        * platform/graphics/chromium/TiledLayerChromium.h:
        (WebCore):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::paintContentsIfDirty):
        (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
        (WebCore::CCLayerTreeHost::paintLayerContents):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore):
        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
        (WebCore::enclosedIntRect):
        (WebCore):

2012-01-30  Raymond Liu  <raymond.liu@intel.com>

        Fix ASSERT fail within AudioBus::processWithGainFrom()
        https://bugs.webkit.org/show_bug.cgi?id=76685

        Reviewed by Daniel Bates.

        Test: webaudio/audionode-connect-order.html

        * webaudio/AudioBasicProcessorNode.cpp:
        (WebCore::AudioBasicProcessorNode::AudioBasicProcessorNode):

2012-01-30  Roland Steiner  <rolandsteiner@chromium.org>

        <style scoped>: Implement scoped stylesheets and basic application
        https://bugs.webkit.org/show_bug.cgi?id=73190

        Implementing support for <style scoped>:
        Add a vector stack to CSSStyleSelector that keeps track of encountered scoping elements. This is
        used for O(1) access to all relevant style sheets for a given element.
        Adapt matching of author style sheets to also consult appropriate scoped sheets.
        Finally, prevent style sharing from crossing into/out of scoped style boundaries.

        Reviewed by Antti Koivisto.

        Tests: fast/css/style-scoped/style-scoped-attach.html
               fast/css/style-scoped/style-scoped-basic.html
               fast/css/style-scoped/style-scoped-detach.html
               fast/css/style-scoped/style-scoped-remove-scoped.html
               fast/css/style-scoped/style-scoped-set-scoped.html

        * css/CSSStyleSelector.cpp:
        (RuleSet):
        (WebCore::CSSStyleSelector::CSSStyleSelector): add code for scoped style sheets
        (WebCore::CSSStyleSelector::collectFeatures): ditto
        (WebCore):
        (WebCore::CSSStyleSelector::determineScopingElement): determine whether an author sheet is scoped (and to which scope), or global
        (WebCore::CSSStyleSelector::scopedRuleSetForElement): returns the RuleSet for the <style scoped> contained by the passed-in element (if any), or 0
        (WebCore::CSSStyleSelector::appendAuthorStylesheets): add code for scoped style sheets
        (WebCore::CSSStyleSelector::setupScopingElementStack): determine scoping element ancestors of the given element
        (WebCore::CSSStyleSelector::pushParent): simplify and refactor SelectorChecker::pushParent, as code in CSStyleSelector needs partial access
        (WebCore::CSSStyleSelector::popParent): ditto
        (WebCore::CSSStyleSelector::sortAndTransferMatchedRules): helper function
        (WebCore::CSSStyleSelector::matchAuthorRules): use AuthorRuleSetIterator to iterate over all relevant RuleSets
        (WebCore::CSSStyleSelector::matchRules): adapt for scoped style rules
        (WebCore::CSSStyleSelector::matchAllRules): ditto
        (WebCore::CSSStyleSelector::locateCousinList): prevent style sharing across scope boundaries
        (WebCore::CSSStyleSelector::canShareStyleWithElement): ditto
        (WebCore::CSSStyleSelector::locateSharedStyle): ditto
        (WebCore::CSSStyleSelector::pseudoStyleForElement): changed call to matchAuthorRules
        (WebCore::CSSStyleSelector::styleForPage): add comment
        (WebCore::CSSStyleSelector::checkRegionStyle): add global scope parameter
        (WebCore::CSSStyleSelector::pseudoStyleRulesForElement): changed call to matchAuthorRules
        (WebCore::RuleSet::addRulesFromSheet): adapt for scoped style rules
        * css/CSSStyleSelector.h:
        (CSSStyleSelector):
        (WebCore::CSSStyleSelector::ScopeStackFrame::ScopeStackFrame): struct holding an Element pointer and a RuleSet pointer, to be used in a Vector
        (WebCore::CSSStyleSelector::scopingElementStackIsConsistent): returns if the last seen parent matches the passed-in element
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::setupParentStack): set up the parent stack (refactoring)
        (WebCore::SelectorChecker::pushParent): simplify and refactor
        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::popParent): ditto
        (WebCore::SelectorChecker::parentStackIsEmpty): ditto
        (WebCore::SelectorChecker::parentStackIsConsistent): make parameter const

2012-01-30  Dana Jansens  <danakj@chromium.org>

        [chromium] Compute occlusion during paint loop
        https://bugs.webkit.org/show_bug.cgi?id=76858

        Reviewed by James Robinson.

        New unit tests in TiledLayerChromiumTest.cpp, CCLayerTreeHostCommonTest.cpp, CCLayerTreeHostTest.cpp

        * platform/graphics/FloatRect.cpp:
        (WebCore::enclosedIntRect):
        (WebCore):
        * platform/graphics/FloatRect.h:
        (WebCore):
        * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
        (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/Canvas2DLayerChromium.h:
        (Canvas2DLayerChromium):
        * platform/graphics/chromium/ContentLayerChromium.cpp:
        (WebCore::ContentLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/ContentLayerChromium.h:
        (ContentLayerChromium):
        * platform/graphics/chromium/ImageLayerChromium.cpp:
        (WebCore::ImageLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/ImageLayerChromium.h:
        (ImageLayerChromium):
        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::contentToScreenSpaceTransform):
        (WebCore):
        (WebCore::LayerChromium::addSelfToOccludedScreenSpace):
        (WebCore::LayerChromium::isPaintedAxisAlignedInScreen):
        * platform/graphics/chromium/LayerChromium.h:
        (WebCore):
        (WebCore::LayerChromium::paintContentsIfDirty):
        (LayerChromium):
        * platform/graphics/chromium/RenderSurfaceChromium.h:
        (RenderSurfaceChromium):
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::addSelfToOccludedScreenSpace):
        * platform/graphics/chromium/TiledLayerChromium.h:
        (WebCore):
        ():
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::paintContentsIfDirty):
        (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
        (RenderSurfaceRegion):
        (WebCore):
        (WebCore::pushTargetRenderSurfaceRegion):
        (WebCore::popAndPushTargetRenderSurfaceRegion):
        (WebCore::CCLayerTreeHost::paintLayerContents):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore):
        ():
        * platform/graphics/chromium/cc/CCQuadCuller.cpp:

2012-01-30  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Add ElementAttributeData class to replace internal uses of NamedNodeMap
        https://bugs.webkit.org/show_bug.cgi?id=77233

        Reviewed by Andreas Kling.

        Move part of non-DOM functionality of NamedNodeMap into a separate class. This is
        the first step toward the goal of separating NamedNodeMap from internal attribute
        storage, as described in https://bugs.webkit.org/show_bug.cgi?id=75069.

        The internal attribute storage is exposed as attributeData() in Element, and when
        necessary (because it has no back pointer to Element) via methods in Element.

        No new tests. Except from setClass() change this is just moving the code, no new
        feature was added.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DOMAllInOne.cpp:
        * dom/Element.cpp:
        (WebCore::Element::idAttributeChanged):
        * dom/Element.h:
        (WebCore::Element::attributeData):
        (WebCore::Element::ensureAttributeData):
        (Element):
        (WebCore::Element::idForStyleResolution):
        * dom/ElementAttributeData.cpp: Added.
        (WebCore):
        (WebCore::ElementAttributeData::setClass): the only caller of this function
        already deal with the case when the element has no class, so don't do it here.
        * dom/ElementAttributeData.h: Added.
        (WebCore):
        (ElementAttributeData):
        (WebCore::ElementAttributeData::clearClass):
        (WebCore::ElementAttributeData::classNames):
        (WebCore::ElementAttributeData::idForStyleResolution):
        (WebCore::ElementAttributeData::setIdForStyleResolution):
        (WebCore::ElementAttributeData::ElementAttributeData):
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::clearAttributes):
        * dom/NamedNodeMap.h:
        (WebCore::NamedNodeMap::attributeData):
        (NamedNodeMap):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::classAttributeChanged):
        * dom/StyledElement.h:
        (WebCore::StyledElement::classNames):
        * html/ClassList.cpp:
        (WebCore::ClassList::classNames):

2012-01-30  Gregg Tavares  <gman@chromium.org>

        Add Plumming to get graphics error messages to JS Console
        https://bugs.webkit.org/show_bug.cgi?id=77238

        Reviewed by Kenneth Russell.

        No new tests. No change in behavior.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebGLRenderingContextErrorMessageCallback):
        (WebCore::WebGLRenderingContextErrorMessageCallback::WebGLRenderingContextErrorMessageCallback):
        (WebCore::WebGLRenderingContextErrorMessageCallback::onErrorMessage):
        (WebCore::WebGLRenderingContextErrorMessageCallback::~WebGLRenderingContextErrorMessageCallback):
        (WebCore):
        (WebCore::WebGLRenderingContext::create):
        (WebCore::WebGLRenderingContext::initializeNewContext):
        (WebCore::WebGLRenderingContext::~WebGLRenderingContext):
        * html/canvas/WebGLRenderingContext.h:
        (WebGLRenderingContext):
        * platform/graphics/GraphicsContext3D.h:
        (ErrorMessageCallback):
        (WebCore::GraphicsContext3D::ErrorMessageCallback::~ErrorMessageCallback):
        (GraphicsContext3D):
        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
        (WebCore::GraphicsContext3D::setErrorMessageCallback):
        (WebCore):
        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::setErrorMessageCallback):
        (WebCore):
        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3D::setErrorMessageCallback):
        (WebCore):

2012-01-30  Anders Carlsson  <andersca@apple.com>

        Simplify RenderLayerCompositor::frameViewDidScroll
        https://bugs.webkit.org/show_bug.cgi?id=77398

        Reviewed by Sam Weinig.

        Remove the scrollPosition parameter from RenderLayerCompositor::frameViewDidScroll; we can just get it
        from the associated FrameView object.

        * page/FrameView.cpp:
        (WebCore::FrameView::scrollPositionChanged):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
        Call frameViewDidScroll() here instead of setting the scroll layer position explicitly.

        (WebCore::RenderLayerCompositor::frameViewDidScroll):
        (WebCore::RenderLayerCompositor::ensureRootLayer):
        * rendering/RenderLayerCompositor.h:
        (RenderLayerCompositor):

2012-01-30  Pablo Flouret  <pablof@motorola.com>

        Don't select the next selectable index when deselecting an option in select elements with size set to a value greater than one.
        https://bugs.webkit.org/show_bug.cgi?id=76389

        Reviewed by Kent Tamura.

        This behavior matches the rest of the browsers.

        Test: fast/forms/select/option-selecting.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::optionSelectionStateChanged):

2012-01-30  Anders Carlsson  <andersca@apple.com>

        Scrollbars don't show when scrolling on the scrolling thread
        https://bugs.webkit.org/show_bug.cgi?id=77396
        <rdar://problem/10710736>

        Reviewed by Sam Weinig.

        Use ScrollAnimator::scrollToOffsetWithoutAnimation when updating the frame view scroll offset,
        since that function will end up invalidating the scrollbars correctly.

        * page/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::didUpdateMainFrameScrollPosition):

2012-01-30  Anders Carlsson  <andersca@apple.com>

        Show repaint counters in individual tiles
        https://bugs.webkit.org/show_bug.cgi?id=77390
        <rdar://problem/10767967>

        Reviewed by Darin Adler.

        * platform/graphics/ca/mac/TileCache.h:
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::setNeedsDisplayInRect):
        Make sure to invalidate the repaint counter rect if necessary.

        (WebCore::TileCache::drawLayer):
        Draw the repaint counter.

        (WebCore::TileCache::showRepaintCounter):
        New function that determines whether we should show repaint counters for the given tile cache.

        * platform/graphics/ca/mac/WebTileLayer.h:
        * platform/graphics/ca/mac/WebTileLayer.mm:
        (-[WebTileLayer incrementRepaintCount]):
        Add method for getting the repaint count.

2012-01-30  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/10778045> REGRESSION (r91935): text-combine fails
        https://bugs.webkit.org/show_bug.cgi?id=77373

        Reviewed by Darin Adler.

        Removed tests that were failing because of this bug from the Lion skipped
        list.

        * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
        (WebCore::GlyphPage::fill): Changed to use CTFontGetGlyphsForCharacters,
        rather than wkGetVerticalGlyphsForCharacters, for non-fullwidth fonts.

2012-01-30  Christopher Hutten-Czapski  <chutten@rim.com>

        BlackBerry - Support Proxy-Authenticate headers when a proxy is configured
        https://bugs.webkit.org/show_bug.cgi?id=77361

        Though we have a proxy configured, we might not have the auth
        credentials it requires. Support Proxy-Authenticate for that case.

        Reviewed by George Staikos.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::handleNotifyHeaderReceived):
        (WebCore::NetworkJob::handleAuthHeader):
        (WebCore::NetworkJob::sendRequestWithCredentials):
        * platform/network/blackberry/NetworkJob.h:
        * platform/network/blackberry/NetworkManager.cpp:
        (WebCore::NetworkManager::startJob):

2012-01-27  James Robinson  <jamesr@chromium.org>

        [chromium] Remove unnecessary retry logic in LayerRendererChromium initialization for accelerated painting
        https://bugs.webkit.org/show_bug.cgi?id=77247

        Reviewed by Kenneth Russell.

        The accelerate painting setting is done differently from other capability-dependent settings for no good reason,
        requiring that we retry initialization with different settings. For all other settings we set the capabilities
        bit to true if the setting is requested and if the required capabilities exist on the underlying context.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::create):
        (WebCore::LayerRendererChromium::initialize):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):

2012-01-30  Brady Eidson  <beidson@apple.com>

        <rdar://problem/10707072>
        Crashes in WebProcess at WebCore::Node::rendererIsNeeded

        Reviewed by Darin Adler.

        In specific circumstances a plugin element can be without a render style at the point in time where
        the page navigated and enters the page cache.

        When this is the cash, the element should not enter into the "custom style for renderer" mode and should
        instead use the default render style machinery.

        Test: plugins/crash-restoring-pluging-page-from-page-cache.html

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache): Only setHasCustomStyleForRenderer and 
          forceRecalc if there actually is a custom style to be used.
        (WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache): Only clearHasCustomStyleForRenderer if there
          actually was a custom style to be cleared.
        (WebCore::HTMLPlugInImageElement::customStyleForRenderer): This should only be called if there actually is a 
          custom style to be used. Otherwise the element would have to fallback to the "normal" RenderStyle which might
          not exist.

2012-01-30  Anders Carlsson  <andersca@apple.com>

        Show debug borders for individual tile cache tiles
        https://bugs.webkit.org/show_bug.cgi?id=77388

        Reviewed by Sam Weinig.

        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::updateDebugIndicators):
        Give tile cache tiles a thin dark blue border.

        * platform/graphics/ca/mac/TileCache.h:
        (WebCore::TileCache::tileDebugBorderWidth):
        (WebCore::TileCache::tileDebugBorderColor):
        Add getters and member variables for the tile debug border width and color.

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::TileCache):
        Initialize m_tileDebugBorderWidth.

        (WebCore::TileCache::setTileDebugBorderWidth):
        Update the border width of each tile layer.

        (WebCore::TileCache::setTileDebugBorderColor):
        Update the border color of each tile layer.

        (WebCore::TileCache::createTileLayer):
        Set the border color and border width.

        * platform/graphics/ca/mac/WebTileCacheLayer.h:
        * platform/graphics/ca/mac/WebTileCacheLayer.mm:
        (-[WebTileCacheLayer borderColor]):
        (-[WebTileCacheLayer setBorderColor:]):
        (-[WebTileCacheLayer borderWidth]):
        (-[WebTileCacheLayer setBorderWidth:]):
        Call through to the TileCache.

        * platform/graphics/mac/WebLayer.mm:
        (drawLayerContents):
        Don't draw the repaint counter for tile cache layers, each tile will maintain its own repaint counter.

2012-01-30  Rakesh KN  <rakesh.kn@motorola.com>

        single-file input elements should refuse multi-file drags
        https://bugs.webkit.org/show_bug.cgi?id=25913

        Reviewed by Eric Seidel.

        Refuse the multiple file drags onto a single file input element.

        No new tests: Covered by existing tests, updated the expected results.

        * page/DragController.cpp:
        (WebCore::DragController::tryDocumentDrag):
        Setting the dragSession.numberOfItemsToBeAccepted to 0 so that drag operation is none if the
        file input element under mouse is single input type and number of files dragged onto that
        input element are more than 1.

2012-01-30  Dana Jansens  <danakj@chromium.org>

        [chromium] Use region reported painted opaque for draw culling
        https://bugs.webkit.org/show_bug.cgi?id=76015

        Reviewed by James Robinson.

        New unit tests in CCTiledLayerImplTest.cpp, CCQuadCullerTest.cpp, CCLayerTreeHostImplTest.cpp

        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::setOpaque):
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (UpdatableTile):
        (WebCore::TiledLayerChromium::pushPropertiesTo):
        (WebCore::TiledLayerChromium::prepareToUpdateTiles):
        * platform/graphics/chromium/cc/CCDrawQuad.cpp:
        (WebCore::CCDrawQuad::opaqueRect):
        (WebCore):
        * platform/graphics/chromium/cc/CCDrawQuad.h:
        (CCDrawQuad):
        (WebCore::CCDrawQuad::needsBlending):
        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
        (WebCore::CCQuadCuller::cullOccludedQuads):
        * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp:
        (WebCore::CCSolidColorDrawQuad::CCSolidColorDrawQuad):
        * platform/graphics/chromium/cc/CCTileDrawQuad.cpp:
        (WebCore::CCTileDrawQuad::create):
        (WebCore::CCTileDrawQuad::CCTileDrawQuad):
        * platform/graphics/chromium/cc/CCTileDrawQuad.h:
        (CCTileDrawQuad):
        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
        (DrawableTile):
        (WebCore::DrawableTile::opaqueRect):
        (WebCore::DrawableTile::setOpaqueRect):
        (WebCore::CCTiledLayerImpl::appendQuads):
        (WebCore::CCTiledLayerImpl::pushTileProperties):
        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
        (CCTiledLayerImpl):

2012-01-30  Ryosuke Niwa  <rniwa@webkit.org>

        Crash in previousLinePosition when moving into a root inline box without leaves
        https://bugs.webkit.org/show_bug.cgi?id=76812

        Reviewed by Enrica Casucci.

        The crash was caused by us assuming that every root inline box has at least one leaf,
        which isn't true when we create inline boxes for an empty text run with margin, border, etc...

        Test: editing/selection/move-into-empty-root-inline-box.html

        * editing/visible_units.cpp:
        (WebCore::previousLinePosition):
        (WebCore::nextLinePosition):

2012-01-30  Levi Weintraub  <leviw@chromium.org>

        !m_insideRegionPaint assertion in RenderRegion.cpp is invalid
        https://bugs.webkit.org/show_bug.cgi?id=77372

        Reviewed by David Hyatt.

        Removing the !m_insideRegionPaint assertion that's in three functions in
        RenderRegion. It's triggering in numerous layout tests and isn't valid.

        No new tests as this just removes assertions.

        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::setRenderBoxRegionInfo):
        (WebCore::RenderRegion::takeRenderBoxRegionInfo):
        (WebCore::RenderRegion::removeRenderBoxRegionInfo):

2012-01-30  Adrienne Walker  <enne@google.com>

        [chromium] Always pre-reserve scrollbar and scroll corner textures
        https://bugs.webkit.org/show_bug.cgi?id=77251

        Reviewed by James Robinson.

        Add a flag to LayerChromium that says that a layer's textures should
        always be reserved. Prior to painting layers, find all layers marked
        as such and reserve their textures. This will prevent texture memory
        limits from being hit before the root layer's scrollbars are reserved
        and painted.

        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::LayerChromium):
        * platform/graphics/chromium/LayerChromium.h:
        (LayerChromium):
        (WebCore::LayerChromium::reserveTextures):
        (WebCore::LayerChromium::setAlwaysReserveTextures):
        (WebCore::LayerChromium::alwaysReserveTextures):
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::reserveTextures):
        * platform/graphics/chromium/TiledLayerChromium.h:
        ():
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::updateLayers):
        (WebCore::CCLayerTreeHost::reserveTextures):
        (WebCore):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        ():

2012-01-30  Beth Dakin  <bdakin@apple.com>

        Speculative 32-bit build-fix.

        * WebCore.exp.in:

2012-01-30  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]Add support for background-color in region styling
        https://bugs.webkit.org/show_bug.cgi?id=71488

        Reviewed by David Hyatt.

        Based on work by Alexandru Chiculita (achicu@adobe.com).
        Previous patches for region styling were touching RenderObject::style() method. After several attempts to avoid regressions
        (including caching of RenderObject::style() pointer in most used methods), we decided to attempt a different approach:
        Step1: before each region is repainted, we compute the style for each box that falls into the region
        Step2: before paint, we store the box original style
        Step3: paint the region contents using the style in region
        Step4: after paint is finished, we restore the box original style (and store the box style in region for future region paint)

        Tests for region styling are also enabled with this patch.

        * WebCore.exp.in:
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::clearRenderBoxCustomStyle):
        (WebCore::RenderFlowThread::setRegionRangeForBox):
        * rendering/RenderFlowThread.h:
        ():
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paint):
        (WebCore::RenderLayer::hitTest):
        * rendering/RenderObject.cpp:
        * rendering/RenderObject.h:
        (WebCore::RenderObject::style):
        (RenderObject):
        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::removeChildNode):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::RenderRegion):
        (WebCore::RenderRegion::setRegionBoxesRegionStyle):
        (WebCore):
        (WebCore::RenderRegion::restoreRegionBoxesOriginalStyle):
        (WebCore::RenderRegion::paintReplaced):
        (WebCore::RenderRegion::setRenderBoxRegionInfo):
        (WebCore::RenderRegion::takeRenderBoxRegionInfo):
        (WebCore::RenderRegion::removeRenderBoxRegionInfo):
        (WebCore::RenderRegion::renderBoxRegionStyle):
        (WebCore::RenderRegion::computeStyleInRegion):
        (WebCore::RenderRegion::clearBoxStyleInRegion):
        * rendering/RenderRegion.h:
        (RenderRegion):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::RenderView):
        * rendering/RenderView.h:
        (WebCore):
        (RenderView):

2012-01-30  Jessie Berlin  <jberlin@apple.com>

        WebCore build exceeds address space on 32-bit Windows builders (again).
        https://bugs.webkit.org/show_bug.cgi?id=77357

        Reviewed by Adam Roben.

        Add an Inspector All-In-One file, but only use it in Release and Production builds.
        This differs from our other All-In-One files, but it is a better approach because it makes
        debugging possible in the Debug configuration (the symbols will be in the correct .obj file
        for the original .cpp files).

        * WebCore.vcproj/WebCore.vcproj:
        Also, let VS have its way with the vcproj file.
        * inspector/InspectorAllInOne.cpp: Added.

2012-01-28  Matthew Delaney  <mdelaney@apple.com>

        Limit periodic flushing inside ImageBufferCG to just Lion
        https://bugs.webkit.org/show_bug.cgi?id=77353
        <rdar://problem/10328309>

        Reviewed by Chris Marrin.

        * platform/graphics/cg/ImageBufferCG.cpp:
        * platform/graphics/cg/ImageBufferDataCG.h:

2012-01-30  Tommy Widenflycht  <tommyw@google.com>

        Memory leak caused by PeerConnection add a NULL media stream
        https://bugs.webkit.org/show_bug.cgi?id=76150

        It was my missunderstanding that the IDL keyword [StrictTypeChecking] also protects against
        null or undefined arguments, it doesn't. Added checks for null pointers.

        Reviewed by Adam Barth.

        Test: fast/mediastream/peerconnection-addstream.html

        * mediastream/PeerConnection.cpp:
        (WebCore::PeerConnection::addStream):
        (WebCore::PeerConnection::removeStream):

2012-01-26  Andy Estes  <aestes@apple.com>

        [Windows] Optionally invert colors when drawing to a WebView's backing store.
        https://bugs.webkit.org/show_bug.cgi?id=77168

        Reviewed by Sam Weinig.

        * css/CSSPrimitiveValueMappings.h: Assert that CompositeDifference is
        not converted to a CSS value. Exposing a new compositing operation to
        CSS is outside the scope of this patch.
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        * platform/graphics/GraphicsTypes.h: Add CompositeDifference as a
        CompositeOperator. Also, remove an outdated comment.
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::setPlatformCompositeOperation): Map
        CompositeDifference to kCGBlendModeDifference.

2012-01-28  Matthew Delaney  <mdelaney@apple.com>

        Limit the shadow offset CG hack to just SL and Lion
        https://bugs.webkit.org/show_bug.cgi?id=77348
        <rdar://problem/10158016>

        Reviewed by Chris Marrin.

        No new tests, current tests cover this.

        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::setPlatformShadow):

2012-01-30  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=77263
        PlatformScreenMac should not rely on NSWindow for important bits of data

        Reviewed by Geoff Garen.

        The main problem is that we cannot rely on the NSWindow for information about 
        the deviceScaleFactor because we cannot access an NSWindow from within 
        WebCore for WebKit2 windows. Instead, we can fetch it from 
        WebCore::deviceScaleFactor(), but we need a Frame to call that. So 
        screenAvailableRect and screenRect both now take a FrameView* instead of a 
        Widget*. All existing call sites actually sent a FrameView in anyway, so this 
        is not a big change, but it does require touching a lot of platforms.
        * WebCore.exp.in:
        * platform/PlatformScreen.h:
        (WebCore):
        * platform/blackberry/PlatformScreenBlackBerry.cpp:
        (WebCore::screenAvailableRect):
        (WebCore::screenRect):
        * platform/chromium/PlatformScreenChromium.cpp:
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):
        * platform/chromium/PlatformSupport.h:
        (WebCore):
        (PlatformSupport):
        ():
        * platform/efl/PlatformScreenEfl.cpp:
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):
        * platform/gtk/PlatformScreenGtk.cpp:
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):
        * platform/qt/PlatformScreenQt.cpp:
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):
        * platform/win/PlatformScreenWin.cpp:
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):
        * platform/wx/ScreenWx.cpp:
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):

        The Mac-only functions toUserSpace() and toDeviceSpace() were also updated to 
        take a parameter for the deviceScaleFactor.
        * platform/mac/PlatformScreenMac.mm:
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):
        (WebCore::toUserSpace):
        (WebCore::toDeviceSpace):

2012-01-30  Antti Koivisto  <antti@apple.com>

        Kill CSSMutableStyleDeclarationConstIterator
        https://bugs.webkit.org/show_bug.cgi?id=77342

        Reviewed by Sam Weinig.

        CSSMutableStyleDeclaration is an array and should be iterated using an index. This simplifies the code.

        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::copyPropertiesFrom):
        (WebCore::CSSMutableStyleDeclaration::removeProperty):
        (WebCore::CSSMutableStyleDeclaration::setProperty):
        (WebCore::CSSMutableStyleDeclaration::setPropertyInternal):
        (WebCore::CSSMutableStyleDeclaration::parseDeclaration):
        (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
        (WebCore::CSSMutableStyleDeclaration::addParsedProperty):
        (WebCore::CSSMutableStyleDeclaration::merge):
        (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
        * css/CSSMutableStyleDeclaration.h:
        (WebCore):
        (WebCore::CSSMutableStyleDeclaration::createForSVGFontFaceElement):
        (CSSMutableStyleDeclaration):
        * css/CSSStyleDeclaration.cpp:
        (WebCore::CSSStyleDeclaration::CSSStyleDeclaration):
        * css/CSSStyleDeclaration.h:
        (CSSStyleDeclaration):
        ():
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::styleForKeyframe):
        (WebCore::CSSStyleSelector::applyDeclaration):
        * editing/EditingStyle.cpp:

2012-01-30  Michael Saboff  <msaboff@apple.com>

        Dromaeo tests call parseSimpleLengthValue() on 8 bit strings
        https://bugs.webkit.org/show_bug.cgi?id=76649

        Reviewed by Geoffrey Garen.

        No functionality change, therefore no new tests.

        Added 8 bit patch for parseSimpleLengthValue().

        * css/CSSParser.cpp:
        (WebCore::parseSimpleLengthValue):

2012-01-30  Michael Saboff  <msaboff@apple.com>

        WebCore decodeEscapeSequences unnecessarily converts 8 bit strings to 16 bit when decoding.
        https://bugs.webkit.org/show_bug.cgi?id=76648

        Reviewed by Geoffrey Garen.

        Using new overloaded append(String&, offset, length)  member to build result string.
        The new member properly handles 8/16 bit-ness of strings.

        Functionality not changed, therefore no new tests.

        * platform/text/DecodeEscapeSequences.h:
        (WebCore::decodeEscapeSequences):

2012-01-30  Pavel Feldman  <pfeldman@google.com>

        Not reviewed: follow up to r105625, use proper event categoty in inspector frontend.

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

2012-01-30  Parag Radke  <nrqv63@motorola.com>

        REGRESSION (r82580): Reproducible crash in CSSPrimitiveValue::computeLengthDouble
        https://bugs.webkit.org/show_bug.cgi?id=61989

        Reviewed by Simon Fraser.

        According to css3 specs when font-size is specified in 'rems' for an element implies the font-size
        of the root element. In this case as HTML element has a property 'display:none' and hence renderer 
        is NULL causes this crash.

        Test: fast/css/fontsize-unit-rems-crash.html

        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::computeLengthDouble):
        Added a null check for the root element's RenderStyle as it can be null in case of html has a property
        hidden or display:none.

2012-01-26  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        [Qt] WKTR: Use a software rendering pipiline when running tests.
        https://bugs.webkit.org/show_bug.cgi?id=76708

        Reviewed by Kenneth Rohde Christiansen.

        * platform/graphics/qt/TextureMapperQt.cpp: Allow setting the context to null.
        (WebCore::TextureMapperQt::setGraphicsContext):
        * platform/graphics/qt/TextureMapperQt.h:
        (WebCore::TextureMapperQt::initialize):

2012-01-27  Enrica Casucci  <enrica@apple.com>

        Remove all references to NSPasteboard objects from the Pasteboard
        class interface on Mac.
        https://bugs.webkit.org/show_bug.cgi?id=77261
        
        This is cleanup work needed as first step in the direction of
        removing access to NSPasteboard from the WebProcess.
        This way all access to the NSPasteboard object are internal to
        the class.
        Removed static methods taking NSPasteboard as paramenter and changed
        the constructor of the class to take the pasteboard name instead of
        the NSPasteboard object.

        Reviewed by Alexey Proskuryakov.

        No new tests. There is no change in behavior.

        * editing/Editor.cpp: Removed ununsed private method writeSelectionToPasteboard.
        (WebCore):
        * editing/Editor.h: Ditto.
        (Editor):
        ():
        * editing/mac/EditorMac.mm:
        (WebCore::Editor::writeSelectionToPasteboard):
        (WebCore::Editor::readSelectionFromPasteboard):
        * platform/Pasteboard.h:
        (Pasteboard):
        * platform/mac/ClipboardMac.mm:
        (WebCore::ClipboardMac::writeRange):
        (WebCore::ClipboardMac::writePlainText):
        (WebCore::ClipboardMac::writeURL):
        * platform/mac/DragDataMac.mm:
        (WebCore::DragData::asPlainText):
        (WebCore::DragData::asURL):
        (WebCore::DragData::asFragment):
        * platform/mac/PasteboardMac.mm:
        (WebCore::Pasteboard::generalPasteboard):
        (WebCore::Pasteboard::Pasteboard):
        (WebCore::Pasteboard::writeSelectionForTypes): Added.
        (WebCore::Pasteboard::writePlainText):
        (WebCore::Pasteboard::writeSelection):
        (WebCore::Pasteboard::writeURLForTypes): Added.
        (WebCore::Pasteboard::writeURL):
        (WebCore::Pasteboard::writeImage):

2012-01-29  Antti Koivisto  <antti@apple.com>

        Reduce non-CSSOM API of CSSStyleDeclaration
        https://bugs.webkit.org/show_bug.cgi?id=77299

        Reviewed by Andreas Kling.

        CSSStyleDeclaration should expose the CSSOM API only. Subclasses should expose the internal API only. 
        This will move us closer to being able to split the CSSOM API from the internal implementation.
        
        - Make CSSStyleDeclaration CSSOM functions virtual, internal functions non-virtual.
        - Move implementations to subclasses (CSSComputedStyleDeclaration, CSSMutableStyleDeclaration).
        - Make CSSOM functions in the subclasses private (making it harder to invoke them internally).
        - Switch a bunch of places to use internal API instead of CSSOM.

        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
        (WebCore::V8CSSStyleDeclaration::namedPropertyGetter):
        (WebCore::V8CSSStyleDeclaration::namedPropertySetter):
        
            Switch to *Internal versions of the CSSOM functions.
        
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore):
        (WebCore::CSSComputedStyleDeclaration::length):
        (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
        (WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
        
            Move copyPropertiesInSet to subclasses, devirtualize.
            
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        (WebCore::CSSComputedStyleDeclaration::getPropertyValue):
        (WebCore::CSSComputedStyleDeclaration::getPropertyPriority):
        (WebCore::CSSComputedStyleDeclaration::getPropertyShorthand):
        (WebCore::CSSComputedStyleDeclaration::isPropertyImplicit):
        (WebCore::CSSComputedStyleDeclaration::setProperty):
        (WebCore::CSSComputedStyleDeclaration::removeProperty):
        * css/CSSComputedStyleDeclaration.h:
        (CSSComputedStyleDeclaration):
        * css/CSSFontFaceRule.cpp:
        (WebCore::CSSFontFaceRule::cssText):
        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::length):
        (WebCore::CSSMutableStyleDeclaration::asText):
        (WebCore::CSSMutableStyleDeclaration::cssText):
        (WebCore):
        (WebCore::CSSMutableStyleDeclaration::getPropertyCSSValue):
        (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
        (WebCore::CSSMutableStyleDeclaration::getPropertyPriority):
        (WebCore::CSSMutableStyleDeclaration::getPropertyShorthand):
        (WebCore::CSSMutableStyleDeclaration::isPropertyImplicit):
        (WebCore::CSSMutableStyleDeclaration::setProperty):
        (WebCore::CSSMutableStyleDeclaration::removeProperty):
        (WebCore::CSSMutableStyleDeclaration::copyPropertiesInSet):
        
            Move copyPropertiesInSet to subclasses, devirtualize.
        
        (WebCore::CSSMutableStyleDeclaration::cssPropertyMatches):
        (WebCore::CSSMutableStyleDeclaration::removeEquivalentProperties):
        
            Move diff() to CSSMutableStyleDeclaration, rename to removeEquivalentProperties, switch to mutate
            this object instead of the argument object.
    
        * css/CSSMutableStyleDeclaration.h:
        (CSSMutableStyleDeclaration):
        (WebCore::CSSMutableStyleDeclaration::propertyCount):
        (WebCore::CSSMutableStyleDeclaration::isEmpty):
        (WebCore::CSSMutableStyleDeclaration::propertyAt):
        
            Expose properties and property count internally (iterator should be removed in favor of these).
        
        * css/CSSStyleDeclaration.cpp:
        (WebCore):
        * css/CSSStyleDeclaration.h:
        (CSSStyleDeclaration):
        (WebCore::CSSStyleDeclaration::getPropertyCSSValueInternal):
        (WebCore::CSSStyleDeclaration::getPropertyValueInternal):
        (WebCore::CSSStyleDeclaration::setPropertyInternal):
        
            Add *Internal versions of some CSSOM APIs to support some editing and bindings uses.
            These take propertyIDs instead of strings names.

        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::cssText):
        * css/CSSStyleSelector.cpp:
        (WebCore::leftToRightDeclaration):
        (WebCore::rightToLeftDeclaration):
        (WebCore::CSSStyleSelector::collectMatchingRulesForList):
        (WebCore::CSSStyleSelector::matchPageRulesForList):
        * css/WebKitCSSKeyframeRule.cpp:
        (WebCore::WebKitCSSKeyframeRule::cssText):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::updateStyleAttribute):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
        (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
        (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
        (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown):
        (WebCore::ApplyStyleCommand::addBlockStyle):
        (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
        * editing/EditingStyle.cpp:
        ():
        (WebCore::copyEditingProperties):
        (WebCore):
        (WebCore::propertyCSSValue):
        (WebCore::getRGBAFontColor):
        (WebCore::EditingStyle::overrideWithStyle):
        (WebCore::EditingStyle::removeStyleAddedByNode):
        (WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode):
        (WebCore::EditingStyle::triStateOfStyle):
        (WebCore::EditingStyle::styleIsPresentInComputedStyleOfNode):
        (WebCore::EditingStyle::prepareToApplyAt):
        (WebCore::removePropertiesInStyle):
        (WebCore::EditingStyle::removeStyleFromRulesAndContext):
        (WebCore::EditingStyle::removePropertiesInElementDefaultStyle):
        (WebCore::StyleChange::StyleChange):
        (WebCore::fontWeightIsBold):
        (WebCore::getPropertiesNotIn):
        (WebCore::getIdentifierValue):
        (WebCore::hasTransparentBackgroundColor):
        * editing/EditingStyle.h:
        
            Adapt to changes.
    
        (WebCore):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
        (WebCore::handleStyleSpansBeforeInsertion):
        (WebCore::ReplaceSelectionCommand::handleStyleSpans):
        * editing/mac/EditorMac.mm:
        (WebCore::styleForSelectionStart):
        * editing/markup.cpp:
        (WebCore::StyledMarkupAccumulator::appendStyleNodeOpenTag):
        (WebCore::StyledMarkupAccumulator::appendElement):
        * html/ImageDocument.cpp:
        (WebCore::ImageDocument::resizeImageToFit):
        (WebCore::ImageDocument::restoreImageSize):
        (WebCore::ImageDocument::windowSizeChanged):
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::setFont):
        * html/canvas/CanvasStyle.cpp:
        (WebCore::currentColor):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::revalidateStyle):
        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::retrieveResourcesForCSSDeclaration):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::isEmptyOrUnstyledAppleStyleSpan):
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::getPresentationAttribute):

2012-01-30  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: protocol validator should fail if one of response fields turns optional
        https://bugs.webkit.org/show_bug.cgi?id=76452

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector-0.1.json:
        * inspector/Inspector.json:
        * inspector/generate-inspector-protocol-version:
        (compare_commands):
        (compare_events):
        (compare_params_list):
        (compare_types):
        (self_test):

2012-01-30  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: keyboard navigation through comparison view in heap profiler should update retainers view
        https://bugs.webkit.org/show_bug.cgi?id=77326

        Keyboard navigation in the detailed heap snapshot view now updates retainers view.

        Reviewed by Pavel Feldman.

        * inspector/front-end/DataGrid.js: Added SelectedNode/DeselectedNode events to DataGrid.
        (WebInspector.DataGridNode.prototype.select):
        (WebInspector.DataGridNode.prototype.deselect):
        * inspector/front-end/DetailedHeapshotView.js:
        (WebInspector.DetailedHeapshotView.prototype._selectionChanged):
        (WebInspector.DetailedHeapshotView.prototype._setRetainmentDataGridSource):

2012-01-30  Yury Semikhatsky  <yurys@chromium.org>

        Unreviewed. Fix inspector front-end compilation.

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

2012-01-30  Roland Steiner  <rolandsteiner@chromium.org>

        Node::parentOrHostElement(): Node::shadowHost() already returns an Element*
        https://bugs.webkit.org/show_bug.cgi?id=77332

        Reviewed by Kent Tamura.

        No new tests. (simple refactoring)

        * dom/Node.cpp:
        (WebCore::Node::parentOrHostElement):

2012-01-30  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distcheck.

        * GNUmakefile.am: Add idl files in Source/WebCore/html/shadow/ to
        EXTRA_DIST.
        * GNUmakefile.list.am: Add missing files.

2012-01-27  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: TabbedEditorContainer should save open tabs.
        https://bugs.webkit.org/show_bug.cgi?id=76912

        Reviewed by Pavel Feldman.

        Test: inspector/tabbed-editors-history.html

        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
        (WebInspector.ScriptsPanel.prototype._reset):
        (WebInspector.ScriptsPanel.prototype._showFile):
        (WebInspector.ScriptsPanel.prototype._updateExecutionLine):
        (WebInspector.ScriptsPanel.prototype._editorSelected):
        (WebInspector.EditorContainer.prototype.uiSourceCodeAdded):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.showFile):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.reset):
        * inspector/front-end/TabbedEditorContainer.js:
        (WebInspector.TabbedEditorContainer):
        (WebInspector.TabbedEditorContainer.prototype.showFile):
        (WebInspector.TabbedEditorContainer.prototype._editorClosedByUserAction):
        (WebInspector.TabbedEditorContainer.prototype._editorSelectedByUserAction):
        (WebInspector.TabbedEditorContainer.prototype._updateHistory.tabIdToURL):
        (WebInspector.TabbedEditorContainer.prototype._updateHistory):
        (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
        (WebInspector.TabbedEditorContainer.prototype._tabClosed):
        (WebInspector.TabbedEditorContainer.prototype._tabSelected):
        (WebInspector.TabbedEditorContainer.prototype.reset):
        (WebInspector.TabbedEditorContainer.History):
        (WebInspector.TabbedEditorContainer.History.prototype.index):
        (WebInspector.TabbedEditorContainer.History.prototype.update):
        (WebInspector.TabbedEditorContainer.History.prototype.remove):
        (WebInspector.TabbedEditorContainer.History.prototype.save):
        * inspector/front-end/TabbedPane.js:
        (WebInspector.TabbedPane.prototype.appendTab):
        (WebInspector.TabbedPane.prototype.closeTab):
        (WebInspector.TabbedPane.prototype._innerCloseTab):
        (WebInspector.TabbedPane.prototype.closeAllTabs):
        (WebInspector.TabbedPane.prototype.lastOpenedTabIds):
        (WebInspector.TabbedPane.prototype._tabsSelectChanged):

2012-01-30  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Styles] Unable to paste and subsequently edit multiple properties in the Styles pane
        https://bugs.webkit.org/show_bug.cgi?id=77209

        Reviewed by Pavel Feldman.

        Check if the property value contains a ";" before kicking the freeflow text update.

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertyTreeElement.prototype):

2012-01-30  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Change Open Resource and Go To function shortcuts in scripts panel.
        https://bugs.webkit.org/show_bug.cgi?id=77321

        Reviewed by Pavel Feldman.

        * inspector/front-end/FilteredItemSelectionDialog.js:
        (WebInspector.JavaScriptOutlineDialog.createShortcut):
        (WebInspector.OpenResourceDialog.createShortcut):
        * inspector/front-end/ScriptsPanel.js:

2012-01-30  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: hide function popover in heap snapshot view before navigating to the function definition
        https://bugs.webkit.org/show_bug.cgi?id=77330

        Reviewed by Pavel Feldman.

        * inspector/front-end/DetailedHeapshotView.js:
        (WebInspector.DetailedHeapshotView.prototype.willHide):

2012-01-30  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>

        [BlackBerry] Credential backing store implementation
        https://bugs.webkit.org/show_bug.cgi?id=76761

        Reviewed by Antonio Gomes.

        Implemented credential backing store database and related
        operations in class CredentialBackingStore.

        * platform/network/blackberry/CredentialBackingStore.cpp:
        (WebCore::CredentialBackingStore::~CredentialBackingStore):
        (WebCore::CredentialBackingStore::open):
        (WebCore::CredentialBackingStore::close):
        (WebCore::CredentialBackingStore::addLogin):
        (WebCore::CredentialBackingStore::updateLogin):
        (WebCore::CredentialBackingStore::hasLogin):
        (WebCore::CredentialBackingStore::getLogin):
        (WebCore::CredentialBackingStore::removeLogin):
        (WebCore::CredentialBackingStore::clear):

2012-01-30  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        Only send resize events when layout size changes.
        https://bugs.webkit.org/show_bug.cgi?id=77212

        When using fixed layout the widget size is the size of content, therefore
        resize checks must check against layoutsize and not widget size.

        Reviewed by Kenneth Rohde Christiansen.

        Needs to be manual tests because the test framework does not currently
        support testing fixed layout.

        Tests: ManualTests/resize-events.html

        * page/FrameView.cpp:
        (WebCore::FrameView::layout):
        (WebCore::FrameView::performPostLayoutTasks):

2012-01-30  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: TimelinePanel does not respect InspectorFrontendHost.canSaveAs
        https://bugs.webkit.org/show_bug.cgi?id=77301

        Reviewed by Vsevolod Vlasov.

        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel.prototype._registerShortcuts):

2012-01-30  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Fix Clang build for real after r106218.

        * inspector/CodeGeneratorInspector.py:
        (Generator.go): Add virtual destructor to the ABCs.

2012-01-30  Shinya Kawanaka  <shinyak@google.com>

        No need to keep anonymous RenderBlock in DETAILS.
        https://bugs.webkit.org/show_bug.cgi?id=77322

        Reviewed by Hajime Morita.

        Anonymous RenderBlock of DETAILS element was not squashed when detaching them.
        However, it should be removed.

        No new tests. Should be covered by existing tests.

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

2012-01-30  Zoltan Herczeg  <zherczeg@webkit.org>

        Custom written CSS lexer
        https://bugs.webkit.org/show_bug.cgi?id=70107

        Rubber Stamped by Csaba Osztrogonác.

        Do not advance pointer at the end of input, just
        keep returning with END_TOKEN.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::lex):

2012-01-30  Shinya Kawanaka  <shinyak@google.com>

        The query selector for HTMLContentElement should follow the shadow dom spec.
        https://bugs.webkit.org/show_bug.cgi?id=75946

        Reviewed by Hajime Morita.

        Checks the query selector of HTMLContentElement is valid.
        If not valid, the selector won't match anything, and shows fallback element.

        Test: fast/dom/shadow/content-selector-query.html

        * html/shadow/ContentSelectorQuery.cpp:
        (WebCore::ContentSelectorQuery::ContentSelectorQuery):
        (WebCore::ContentSelectorQuery::isValidSelector):
        (WebCore::ContentSelectorQuery::matches):
          When a select query is not valid, any element won't be matched.
        (WebCore::validateSubSelector):
        (WebCore::validateSelector):
        (WebCore::ContentSelectorQuery::validateSelectorList):
          Validate selectors.
        * html/shadow/ContentSelectorQuery.h:
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::isSelectValid):
          Returns true if select attribute is valid.
        * html/shadow/HTMLContentElement.h:
        * testing/Internals.cpp:
        (WebCore::Internals::isValidContentSelect):
        * testing/Internals.h:
        * testing/Internals.idl:

2012-01-30  Hans Wennborg  <hans@chromium.org>

        Unreviewed, rolling out r106219.
        http://trac.webkit.org/changeset/106219
        https://bugs.webkit.org/show_bug.cgi?id=77083

        This broke Chromium's test_shell.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/mock/SpeechInputClientMock.cpp: Added.
        (WebCore):
        (WebCore::SpeechInputClientMock::SpeechInputClientMock):
        (WebCore::SpeechInputClientMock::setListener):
        (WebCore::SpeechInputClientMock::startRecognition):
        (WebCore::SpeechInputClientMock::stopRecording):
        (WebCore::SpeechInputClientMock::cancelRecognition):
        (WebCore::SpeechInputClientMock::addRecognitionResult):
        (WebCore::SpeechInputClientMock::clearResults):
        (WebCore::SpeechInputClientMock::timerFired):
        * platform/mock/SpeechInputClientMock.h: Added.
        (WebCore):
        (SpeechInputClientMock):

2012-01-30  Yury Semikhatsky  <yurys@chromium.org>

        Unreviewed. Clang build fix after r106218

        * inspector/CodeGeneratorInspector.py:

2012-01-30  ChangSeok Oh  <shivamidow@gmail.com>

        Make GraphicsContext3DPrivate of GTK port shareable.
        https://bugs.webkit.org/show_bug.cgi?id=77296

        Reviewed by Eric Seidel.

        GraphicsContext3DPrivate.cpp/h of GTK port look shareable with another port
        using glx backend for WebGL. For example, EFL port.
        Moved GraphicsContext3DPrivate.cpp and its header into Source/WebCore/platform/graphics/glx.

        No new tests required, because of no new feature.

        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * platform/graphics/glx/GraphicsContext3DPrivate.cpp: Renamed from Source/WebCore/platform/graphics/gtk/GraphicsContext3DPrivate.cpp.
        (sharedDisplay):
        (WebCore):
        (WebCore::activeGraphicsContexts):
        (WebCore::GraphicsContext3DPrivate::addActiveGraphicsContext):
        (WebCore::GraphicsContext3DPrivate::removeActiveGraphicsContext):
        (WebCore::GraphicsContext3DPrivate::cleanupActiveContextsAtExit):
        (WebCore::GraphicsContext3DPrivate::create):
        (WebCore::GraphicsContext3DPrivate::createPbufferContext):
        (WebCore::GraphicsContext3DPrivate::createPixmapContext):
        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
        (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
        (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
        * platform/graphics/glx/GraphicsContext3DPrivate.h: Renamed from Source/WebCore/platform/graphics/gtk/GraphicsContext3DPrivate.h.
        (WebCore):
        (GraphicsContext3DPrivate):

2012-01-26  Hans Wennborg  <hans@chromium.org>

        Speech Input: move MockSpeechInputClient into Chromium DumpRenderTree implementation
        https://bugs.webkit.org/show_bug.cgi?id=77083

        Reviewed by Darin Fisher.

        Remove SpeechInputClientMock. The mock is moving to the DumpRenderTree
        implementation.

        No new tests, just refactoring.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/mock/SpeechInputClientMock.cpp: Removed.
        * platform/mock/SpeechInputClientMock.h: Removed.

2012-01-30  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py: clean InspectorBackendDispatcher.h
        https://bugs.webkit.org/show_bug.cgi?id=77062

        Reviewed by Yury Semikhatsky.

        Code generator is changed. Now it generates InspectorBackendDispatcher
        as an abstract class so that implementation details could be fully
        hidden in .cpp file in a separate 'impl' class. This should make .h
        file more clear.
        Also new formal interfaces to domain agents are generated. This is an
        improvement over the current case when interfaces to agents are
        definen implicitly at calling sites.

        * inspector/CodeGeneratorInspector.py:
        (RawTypes):
        (RawTypes.OutputPassModel):
        (RawTypes.OutputPassModel.ByPointer):
        (RawTypes.OutputPassModel.ByPointer.get_argument_prefix):
        (RawTypes.OutputPassModel.ByPointer.get_parameter_type_suffix):
        (RawTypes.OutputPassModel.ByReference):
        (RawTypes.OutputPassModel.ByReference.get_argument_prefix):
        (RawTypes.OutputPassModel.ByReference.get_parameter_type_suffix):
        (RawTypes.BaseType.is_event_param_check_optional):
        (RawTypes.String):
        (RawTypes.String.get_output_pass_model):
        (RawTypes.String.is_heavy_value):
        (RawTypes.Int):
        (RawTypes.Int.get_output_pass_model):
        (RawTypes.Int.is_heavy_value):
        (RawTypes.Number):
        (RawTypes.Number.get_output_pass_model):
        (RawTypes.Number.is_heavy_value):
        (RawTypes.Bool.get_c_param_type):
        (RawTypes.Bool):
        (RawTypes.Bool.get_output_pass_model):
        (RawTypes.Bool.is_heavy_value):
        (RawTypes.Object):
        (RawTypes.Object.get_output_pass_model):
        (RawTypes.Object.is_heavy_value):
        (RawTypes.Any.get_c_initializer):
        (RawTypes.Any):
        (RawTypes.Any.get_output_pass_model):
        (RawTypes.Any.is_heavy_value):
        (RawTypes.Array):
        (RawTypes.Array.get_output_pass_model):
        (RawTypes.Array.is_heavy_value):
        (InspectorBackendDispatcherImpl):
        (void):
        (Generator):
        (Generator.go):
        (Generator.process_command):
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::connectFrontend):
        * inspector/WorkerInspectorController.cpp:
        (WebCore::WorkerInspectorController::connectFrontend):

2012-01-29  Zoltan Herczeg  <zherczeg@webkit.org>

        Custom written CSS lexer
        https://bugs.webkit.org/show_bug.cgi?id=70107

        Reviewed by Antti Koivisto and Oliver Hunt.

        This patch replaces the flex based CSS lexer to a
        new, custom written one. The new code is more
        than 2 times faster according to oprofile and CPU
        cycle counters.

        The code structure is quite straightforward: it choose
        the possible token group based on the first character
        and employ utility functions to parse the longer than
        one character long ones. Most of the utilities are inline
        to make the lexer fast.

        All build systems updated. Including removing the flex support.

        Existing tests cover this feature.

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gyp/scripts/action_maketokenizer.py: Removed.
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::CSSParser):
        (WebCore::CSSParser::setupParser):
        (WebCore::parseSimpleLengthValue):
        (WebCore::mightBeRGBA):
        (WebCore::mightBeRGB):
        ():
        (WebCore::isCSSLetter):
        (WebCore):
        (WebCore::isCSSEscape):
        (WebCore::isURILetter):
        (WebCore::isIdentifierStartAfterDash):
        (WebCore::isEqualToCSSIdentifier):
        (WebCore::checkAndSkipEscape):
        (WebCore::skipWhiteSpace):
        (WebCore::CSSParser::isIdentifierStart):
        (WebCore::CSSParser::checkAndSkipString):
        (WebCore::CSSParser::parseEscape):
        (WebCore::CSSParser::parseIdentifier):
        (WebCore::CSSParser::parseString):
        (WebCore::CSSParser::parseURI):
        (WebCore::CSSParser::parseUnicodeRange):
        (WebCore::CSSParser::parseNthChild):
        (WebCore::CSSParser::parseNthChildExtra):
        (WebCore::CSSParser::detectFunctionTypeToken):
        (WebCore::CSSParser::detectMediaQueryToken):
        (WebCore::CSSParser::detectNumberToken):
        (WebCore::CSSParser::detectDashToken):
        (WebCore::CSSParser::detectAtToken):
        (WebCore::CSSParser::lex):
        (WebCore::CSSParser::markSelectorListStart):
        (WebCore::CSSParser::markSelectorListEnd):
        (WebCore::CSSParser::markRuleBodyStart):
        (WebCore::CSSParser::markRuleBodyEnd):
        (WebCore::CSSParser::markPropertyStart):
        (WebCore::CSSParser::markPropertyEnd):
        * css/CSSParser.h:
        (WebCore::CSSParser::token):
        (CSSParser):
        ():
        * css/tokenizer.flex: Removed.

2012-01-29  Dale Curtis  <dalecurtis@chromium.org>

        Prepare WebCore.gyp for ffmpeg source transition.
        https://bugs.webkit.org/show_bug.cgi?id=77254

        We're migrating our ffmpeg repo from a set of patches living on top of
        a tarball to an actual git fork of upstream.  The paths have changed
        slightly.

        In order to not break the current build, we'll keep both paths around
        until the transition is complete.  Afterward the 'patched-ffmpeg' path
        will be removed.

        Reviewed by Tony Chang.

        No new tests. GYP change, if it doesn't work, nothing will compile.

        * WebCore.gyp/WebCore.gyp:

2012-01-29  Hayato Ito  <hayato@chromium.org>

        Add a ShadowRoot constructor as 'WebKitShadowRootConstructor', enabled by SHADOW_DOM flag.
        https://bugs.webkit.org/show_bug.cgi?id=76354

        Reviewed by Hajime Morita.

        We use vendor-prefixed name, 'WebKitShadowRoot', instead of 'ShadowRoot'
        since this is a feature under development.

        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::create):
        (WebCore):
        * dom/ShadowRoot.h:
        (WebCore):
        (ShadowRoot):
        * dom/ShadowRoot.idl:
        * page/DOMWindow.idl:

2012-01-29  Noel Gordon  <noel.gordon@gmail.com>

        [chromium] Use decoding swizzle only on libjpeg-turbo 1.1.90+
        https://bugs.webkit.org/show_bug.cgi?id=74286

        Reviewed by Kenneth Russell.

        No new tests. Covered by many existing tests: in particular 
            fast/images/*, fast/canvas/*,
            tables/mozilla/bugs/bug29314.html
            tables/mozilla/bugs/bug13169.html
            tables/mozilla/bugs/bug10565.html
            tables/mozilla/bugs/bug11026.html
            fast/repaint/backgroundSizeRepaint.html
            fast/repaint/block-layout-inline-children-replaced.html
            fast/repaint/clipped-relative.html
            fast/repaint/selected-replaced.html
            tables/mozilla/bugs/bug12908-1.html

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (rgbOutputColorSpace): Swizzle decode iff libjpeg-turbo is r732 or above.

2012-01-29  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r105999.
        http://trac.webkit.org/changeset/105999
        https://bugs.webkit.org/show_bug.cgi?id=77304

        Validating that this caused a performance regression in page
        load tests. (Requested by leviw on #webkit).

        * dom/NamedNodeMap.cpp:
        * dom/NamedNodeMap.h:
        (NamedNodeMap):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::updateStyleAttribute):
        (WebCore::StyledElement::createInlineStyleDecl):
        (WebCore):
        (WebCore::StyledElement::destroyInlineStyleDecl):
        (WebCore::StyledElement::ensureInlineStyleDecl):
        (WebCore::StyledElement::style):
        (WebCore::StyledElement::addSubresourceAttributeURLs):
        * dom/StyledElement.h:
        (WebCore::StyledElement::inlineStyleDecl):
        (StyledElement):

2012-01-29  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r106109.
        http://trac.webkit.org/changeset/106109
        https://bugs.webkit.org/show_bug.cgi?id=77302

        It made tests crash (Requested by Ossy_weekend on #webkit).

        * platform/graphics/qt/TextureMapperQt.cpp:
        (WebCore::TextureMapperQt::setGraphicsContext):
        * platform/graphics/qt/TextureMapperQt.h:
        (WebCore::TextureMapperQt::initialize):

2012-01-28  Alexander Færøy  <ahf@0x90.dk>

        [Qt] Remove references to CSSBorderImageValue.h in Target.pri
        https://bugs.webkit.org/show_bug.cgi?id=77277

        Reviewed by Antonio Gomes.

        CSSBorderImageValue.h was removed in r105502.

        * Target.pri:

2012-01-28  Julien Chaffraix  <jchaffraix@webkit.org>

        REGRESSION (r94016): Element with visibility:hidden but visible descendant may not be properly repainted
        https://bugs.webkit.org/show_bug.cgi?id=76126

        Reviewed by Simon Fraser.

        Tests: fast/layers/scroll-no-visible-content-but-visible-descendant-expected.html
               fast/layers/scroll-no-visible-content-but-visible-descendant.html

        The optimization missed out that if the current layer does not have some visible content
        (m_hasVisibleContent is false), a descendant could totally be visible and would need to
        have its repaint rectangles recomputed.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
        Bail out only if the layer doesn't have visible content AND no visible descendants.

2012-01-27  Chris Marrin  <cmarrin@apple.com>

        Get rid of TransformOperationList
        https://bugs.webkit.org/show_bug.cgi?id=77249

        Reviewed by Dan Bernstein.

        Changed fetchTransformOperationList to validateTransformOperations and got rid of separately generated list
        of transform operations. These are not needed, they are already available in the keyframe lists and they
        make it more difficult to add support for hardware animated filters. No behavior changes.


        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::validateTransformOperations):
        * platform/graphics/GraphicsLayer.h:
        (GraphicsLayer):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
        (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
        * platform/graphics/ca/GraphicsLayerCA.h:
        ():
        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::addAnimation):
        * platform/graphics/texmap/TextureMapperAnimation.cpp:
        (WebCore::applyTransformAnimation):
        (WebCore::TextureMapperAnimation::TextureMapperAnimation):
        (WebCore::TextureMapperAnimation::applyInternal):
        * platform/graphics/texmap/TextureMapperAnimation.h:
        (TextureMapperAnimation):

2012-01-27  Raymond Toy  <rtoy@google.com>

        AudioPannerNode::setPanningModel() does not update m_panningModel properly
        https://bugs.webkit.org/show_bug.cgi?id=66830

        Reviewed by Kenneth Russell.

        Test: webaudio/panner-set-model.html

        * webaudio/AudioPannerNode.cpp:
        (WebCore::AudioPannerNode::setPanningModel):  Update
        m_panningModel appropriately.  Also silently do nothing if the
        model is invalid.

2012-01-27  Chris Rogers  <crogers@google.com>

        HRTFPanner could have high-quality mode for smoother transitions
        https://bugs.webkit.org/show_bug.cgi?id=76470

        Reviewed by Kenneth Russell.

        * platform/audio/HRTFPanner.cpp:
        (WebCore):
        (WebCore::HRTFPanner::HRTFPanner):
        (WebCore::HRTFPanner::reset):
        (WebCore::HRTFPanner::calculateDesiredAzimuthIndexAndBlend):
        (WebCore::HRTFPanner::pan):
        * platform/audio/HRTFPanner.h:
        (HRTFPanner):
        ():

2012-01-27  Mike Lawther  <mikelawther@chromium.org>

        CSS calc parsing stage
        https://bugs.webkit.org/show_bug.cgi?id=57082

        This is the parsing stage of calc. The expressions are evaluated and 
        expression trees are generated. CSS values are not created yet - that
        will happen in a subsequent commit. 

        Reviewed by David Hyatt.

        No functional change - covered by existing tests in LayoutTests/css3/calc.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSCalculationValue.cpp: Added.
        (WebCore):
        (WebCore::unitCategory):
        (WebCore::CSSCalcValue::customCssText):
        (WebCore::CSSCalcExpressionNode::~CSSCalcExpressionNode):
        (CSSCalcPrimitiveValue):
        (WebCore::CSSCalcPrimitiveValue::create):
        (WebCore::CSSCalcPrimitiveValue::cssText):
        (WebCore::CSSCalcPrimitiveValue::CSSCalcPrimitiveValue):
        ():
        (CSSCalcBinaryOperation):
        (WebCore::CSSCalcBinaryOperation::create):
        (WebCore::CSSCalcBinaryOperation::CSSCalcBinaryOperation):
        (WebCore::checkDepthAndIndex):
        (CSSCalcExpressionNodeParser):
        (WebCore::CSSCalcExpressionNodeParser::parseCalc):
        (Value):
        (WebCore::CSSCalcExpressionNodeParser::operatorValue):
        (WebCore::CSSCalcExpressionNodeParser::parseValue):
        (WebCore::CSSCalcExpressionNodeParser::parseValueTerm):
        (WebCore::CSSCalcExpressionNodeParser::parseValueMultiplicativeExpression):
        (WebCore::CSSCalcExpressionNodeParser::parseAdditiveValueExpression):
        (WebCore::CSSCalcExpressionNodeParser::parseValueExpression):
        (WebCore::CSSCalcValue::create):
        * css/CSSCalculationValue.h: Added.
        (WebCore):
        ():
        (CSSCalcExpressionNode):
        (WebCore::CSSCalcExpressionNode::category):
        (WebCore::CSSCalcExpressionNode::isInt):
        (WebCore::CSSCalcExpressionNode::isZero):
        (WebCore::CSSCalcExpressionNode::CSSCalcExpressionNode):
        (CSSCalcValue):
        (WebCore::CSSCalcValue::category):
        (WebCore::CSSCalcValue::isInt):
        (WebCore::CSSCalcValue::CSSCalcValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::validCalculationUnit):
        (WebCore):
        (WebCore::CSSParser::validUnit):
        (WebCore::CSSParser::createPrimitiveNumericValue):
        (WebCore::CSSParser::parseValidPrimitive):
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseFillPositionComponent):
        (WebCore::CSSParser::parsedDouble):
        (WebCore::CSSParser::isCalculation):
        (WebCore::CSSParser::colorIntFromValue):
        (WebCore::CSSParser::parseColorParameters):
        (WebCore::CSSParser::parseHSLParameters):
        (WebCore::ShadowParseContext::ShadowParseContext):
        (WebCore::ShadowParseContext::commitLength):
        (WebCore::ShadowParseContext::commitStyle):
        (ShadowParseContext):
        (WebCore::CSSParser::parseShadow):
        (WebCore::BorderImageSliceParseContext::BorderImageSliceParseContext):
        (WebCore::BorderImageSliceParseContext::commitNumber):
        (WebCore::BorderImageSliceParseContext::commitBorderImageSlice):
        (BorderImageSliceParseContext):
        (WebCore::CSSParser::parseBorderImageSlice):
        (WebCore::BorderImageQuadParseContext::BorderImageQuadParseContext):
        (WebCore::BorderImageQuadParseContext::commitNumber):
        (WebCore::BorderImageQuadParseContext::commitBorderImageQuad):
        (BorderImageQuadParseContext):
        (WebCore::CSSParser::parseBorderImageQuad):
        (WebCore::CSSParser::parseCalculation):
        * css/CSSParser.h:
        ():
        (CSSParser):
        * css/CSSValue.cpp:
        (WebCore::CSSValue::cssText):
        (WebCore::CSSValue::destroy):
        * css/CSSValue.h:
        (WebCore::CSSValue::isCalculationValue):
        ():
        * css/SVGCSSParser.cpp:
        (WebCore::CSSParser::parseSVGValue):
        * platform/CalculationValue.cpp: Added.
        (WebCore):
        * platform/CalculationValue.h: Added.
        (WebCore):
        ():

2012-01-27  Anders Carlsson  <andersca@apple.com>

        WebTileLayers should honor the acceleratesDrawing flag
        https://bugs.webkit.org/show_bug.cgi?id=77242
        <rdar://problem/10622128>

        Reviewed by Dan Bernstein.

        * platform/graphics/ca/mac/TileCache.h:
        (WebCore::TileCache::acceleratesDrawing):
        Add getter.

        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::TileCache):
        Initialize m_acceleratesDrawing.

        (WebCore::TileCache::setAcceleratesDrawing):
        Set m_acceleratesDrawing and go through all tile layers and update the flag.

        (WebCore::TileCache::createTileLayer):
        Call -[CALayer setAcceleratesDrawing:] on the newly created layer.

        * platform/graphics/ca/mac/WebTileCacheLayer.mm:
        (-[WebTileCacheLayer setAcceleratesDrawing:]):
        (-[WebTileCacheLayer acceleratesDrawing]):
        Call through to the TileCache object.

2012-01-27  Raymond Toy  <rtoy@google.com>

        Round time to sample frame
        https://bugs.webkit.org/show_bug.cgi?id=76659

        Three major changes:

        1. Modify timeToSampleFrame to round the time to the sample frame
        and add support for Visual Studio to round the time in the same
        way as on gcc. (The issue is that Visual Studio uses x87
        instructions with 80-bit floats.)  This makes Visual Studio more
        consistent with the results with gcc.

        2. Change the current time variable from keeping time in seconds
        to keeping time in sample frames.  This minimizes rounding except
        when needed for the Javascript API.

        3. Update AudioBufferSourceNode::process to use samples (instead
        of time) as much as possible to reduce round-off effects.

        Reviewed by Kenneth Russell.

        Tests: Added note-grain-on test to exercise precise
        timing. Existing tests (gain and audiobuffersource-playbackrate)
        also cover some of these changes, and the equalpower panner test is
        modified to enable the tests for the offset of the impulses.

        * platform/audio/AudioUtilities.cpp:
        (WebCore::AudioUtilities::timeToSampleFrame): Moved from
        AudioParamTimeLine and slightly modified, and updated to round
        operations consistently.  Add special flags for Visual Studio to
        generate code with rounding that is consistent with gcc.
        * platform/audio/AudioUtilities.h: Declare new function.
        * webaudio/AudioBufferSourceNode.cpp:
        (WebCore::AudioBufferSourceNode::process): Use new functions to
        convert time to sample frame.  Update code to use integer
        arithmetic as much as possible.
        (WebCore::AudioBufferSourceNode::renderFromBuffer): Use
        timeToSampleFrame to convert time to sample frame.
        * webaudio/AudioContext.h: Define new currentSample method to get
        the current sample.
        * webaudio/AudioDestinationNode.cpp:
        (WebCore::AudioDestinationNode::provideInput): Use new function to
        convert sample frame to time.  Update
        * webaudio/AudioDestiationNode.h: Rename m_currentTime to
        m_currentSample, add method to return current Sample.  Update
        currentTime() method to compute time from the current sample.
        * webaudio/AudioParamTimeline.cpp:
        (WebCore::AudioParamTimeline::valuesForTimeRangeImpl): Remove
        timeToSampleFrame and use new function in AudioUtilities to
        convert time to sample frame.

2012-01-27  Adrienne Walker  <enne@google.com>

        [chromium] Don't ever skip drawing the non-composited content layer
        https://bugs.webkit.org/show_bug.cgi?id=77236

        Reviewed by James Robinson.

        Since the root layer has its textures potentially reserved last in a
        front-to-back iteration, don't ever skip drawing it if we can't
        reserve its textures. Instead, checkerboard and draw background color
        quads instead to fill the viewport. This behavior is tied to the
        backgroundFillsViewport setting.

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::prepareToUpdateTiles):
        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
        (WebCore::CCLayerTilingData::reset):
        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
        (WebCore::CCTiledLayerImpl::appendQuads):

2012-01-27  Martin Robinson  <mrobinson@igalia.com>

        Fix a warning in the GTK+ build.

        Reviewed by Gustavo Noronha Silva.

        No new tests. This should not change behavior.

        * plugins/gtk/PluginViewGtk.cpp:
        (WebCore::PluginView::platformStart): Use reinterpet_cast to convert X11 Windows into void pointers.

2012-01-27  Tien-Ren Chen  <trchen@chromium.org>

        [chromium] CCLayerTreeHostImpl minor code cleanup
        https://bugs.webkit.org/show_bug.cgi?id=77181

        Fix a typo in comments and group functions properly.
        Replace duplicated content size code with function.

        Reviewed by James Robinson.

        No new tests. No change in behavior.

        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
        (WebCore::CCLayerTreeHostImpl::contentSize):
        (WebCore):
        (WebCore::CCLayerTreeHostImpl::updateMaxScrollPosition):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
        (CCLayerTreeHostImpl):

2012-01-27  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed. Build fix, add missing header.

        * rendering/svg/SVGImageBufferTools.h:

2012-01-27  Victor Carbune  <victor@rosedu.org>

        Added the GenericEventQueue class in order to generalize asynchronous
        event dispatching in HTMLMediaElement.

        In order to support asynchronous events dispatched by HTMLTrackElement
        there is a need for a generalized implementation of an event queue to
        be used for both HTMLMediaElement and Text Tracks.

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

        Reviewed by Eric Carlson.

        No new tests. No new functionality, only refactoring.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:

        * dom/GenericEventQueue.cpp: Added. Implements the abstract class EventQueue.
        (WebCore::GenericEventQueue::GenericEventQueue):
        (WebCore::GenericEventQueue::~GenericEventQueue):
        (WebCore::GenericEventQueue::enqueueEvent): Append an event to the current
        pending event list.
        (WebCore::GenericEventQueue::cancelEvent): Removes an event from the current
        pending event list.
        (WebCore::GenericEventQueue::timerFired): Callback method when the timer fires.
        Dispatches all events that are currently pending.
        (WebCore::GenericEventQueue::close): Closes the event queue such that it cannot
        be used anymore.
        (WebCore::GenericEventQueue::cancelAllEvents): Removes all pending events.
        (WebCore::GenericEventQueue::hasPendingEvents): True if there are pending events.
        * dom/GenericEventQueue.h: Added.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        (WebCore::HTMLMediaElement::scheduleEvent): Refactored method to enqueue
        the scheduled event on the GenericEventQueue instance.
        (WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks): Ditto.
        (WebCore::HTMLMediaElement::hasPendingActivity): Ditto.
        (WebCore::HTMLMediaElement::dispatchEvent): This method is overriden
        to keep an evidence when a canPlay event is fired.
        * html/HTMLMediaElement.h:

2012-01-27  Martin Robinson  <mrobinson@igalia.com>

        Fix a warning in the GTK+ build.

        Reviewed by Gustavo Noronha Silva.

        No new tests. This should not change behavior.

        * plugins/gtk/PluginViewGtk.cpp:
        (WebCore::PluginView::platformStart): Use reinterpet_cast to convert X11 Windows into void pointers.

2012-01-27  Benjamin Poulain  <bpoulain@apple.com>

        Speed up the prefix matching of cssPropertyName()
        https://bugs.webkit.org/show_bug.cgi?id=77158

        Reviewed by Geoffrey Garen.

        This patch improves the performance by:
        -not checking the PropertyName with all 7 prefix
         (now, in the worse case, 2 prefixes are checked)
        -avoiding the conversion 8bits->16bits by using String::operator[]
         instead of ::characters()

        To avoid checking every prefix, the code branch based on the first
        characters of the propertyName.
        The remaining of the prefix is checked character by characters like before.

        When accessing CSS property, this gives a 13% improvement when there is no prefix.
        There is no performance regression for the matching of prefix, including for the first one
        of the previous matching code ("css").

        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        ():
        (WebCore::matchesCSSPropertyNamePrefix):
        (WebCore):
        (WebCore::getCSSPropertyNamePrefix):
        (WebCore::cssPropertyName):

2012-01-27  Ken Buchanan  <kenrb@chromium.org>

        Crash in updateFirstLetter() from unnecessary anonymous block
        https://bugs.webkit.org/show_bug.cgi?id=72675

        Reviewed by David Hyatt.

        There was a problem with anonymous blocks not getting removed when
        their only block flow siblings are removed if they also have non-block
        flow first-letter siblings (i.e. floats). This patch modifies
        RenderBlock::removeChild() to look for this situation and strip out
        unnecessary anonymous container blocks if it occurs.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::removeChild):
        (WebCore::RenderBlock::collapseAnonymousBoxChild): Added
        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::collapseAnonymousBoxChild): Added

2012-01-27  Fady Samuel  <fsamuel@chromium.org>

        Rename shouldLayoutFixedElementsRelativeToFrame and make it a setting
        https://bugs.webkit.org/show_bug.cgi?id=76459

        Reviewed by Darin Fisher.

        This should be a setting because it is independent of a particular frame and
        should be preserved even if the mainframe changes.

        Renamed (set)ShouldLayoutFixedElementsRelativeToFrame to 
        (set)FixedElementsLayoutRelativeToFrame due to the connotation
        the word "should" may have in this context: If set, 
        position:fixed elements will ALWAYS be laid out relative to the frame.


        * WebCore.exp.in:
        * page/FrameView.cpp:
        (WebCore::FrameView::reset):
        (WebCore::FrameView::scrollXForFixedPosition):
        (WebCore::FrameView::scrollYForFixedPosition):
        (WebCore::FrameView::fixedElementsLayoutRelativeToFrame):
        (WebCore):
        * page/FrameView.h:
        (FrameView):
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        (WebCore::Settings::setFixedElementsLayoutRelativeToFrame):
        (WebCore):
        * page/Settings.h:
        (Settings):
        (WebCore::Settings::fixedElementsLayoutRelativeToFrame):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::fixedElementLaysOutRelativeToFrame):
        (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
        (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
        * rendering/RenderBox.h:
        (RenderBox):
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::setFixedElementsLayoutRelativeToFrame):
        * testing/InternalSettings.h:
        (InternalSettings):
        * testing/InternalSettings.idl:

2012-01-27  Kentaro Hara  <haraken@chromium.org>

        Support the [Supplemental] IDL for constants
        https://bugs.webkit.org/show_bug.cgi?id=77228

        Reviewed by Adam Barth.

        We have supported the [Supplemental] IDL for attributes and methods.
        This patch supports it for constants.

        Test: bindings/scripts/test/TestSupplemental.idl

        * bindings/scripts/generate-bindings.pl:
        Supported [Supplemental] constants.
        Updated some comments.

        * bindings/scripts/test/TestSupplemental.idl:
        Added test cases for [Supplemental] constants.

        * bindings/scripts/test/CPP/WebDOMTestInterface.h: Updated the test results.
        * bindings/scripts/test/JS/JSTestInterface.cpp: Ditto.
        (WebCore::JSTestInterfacePrototype::getOwnPropertySlot):
        (WebCore::JSTestInterfacePrototype::getOwnPropertyDescriptor):
        (WebCore):
        (WebCore::jsTestInterfaceSUPPLEMENTAL_CONSTANT1):
        (WebCore::jsTestInterfaceSUPPLEMENTAL_CONSTANT2):
        * bindings/scripts/test/JS/JSTestInterface.h: Ditto.
        (WebCore):
        * bindings/scripts/test/ObjC/DOMTestInterface.h: Ditto.
        * bindings/scripts/test/V8/V8TestInterface.cpp: Ditto.
        (WebCore::ConfigureV8TestInterfaceTemplate):

2012-01-27  Anders Carlsson  <andersca@apple.com>

        When threaded scrolling is enabled for a FrameView, always put scrollbars in layers
        https://bugs.webkit.org/show_bug.cgi?id=77232
        <rdar://problem/10766708>

        Reviewed by Beth Dakin.

        * page/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView):
        * page/ScrollingCoordinator.h:
        Add a new helper function.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::shouldCompositeOverflowControls):
        Make this take a FrameView, check with the scrolling coordinator if the overflow controls should be composited.

        (WebCore::RenderLayerCompositor::requiresHorizontalScrollbarLayer):
        (WebCore::RenderLayerCompositor::requiresVerticalScrollbarLayer):
        (WebCore::RenderLayerCompositor::requiresScrollCornerLayer):
        Update for the change to make shouldCompositeOverflowControls take a FrameView.

2012-01-24  Vincent Scheib  <scheib@chromium.org>

        Pointer Lock: Implement pointer interface
        https://bugs.webkit.org/show_bug.cgi?id=75762

        Reviewed by Julien Chaffraix.

        Implement the navigator.pointer interface via a new
        PointerLockController class, as per
        http://dvcs.w3.org/hg/webevents/raw-file/default/mouse-lock.html.

        The implementation is being made in steps, the feature is still behind
        compile-time and run-time flags, 'webkit' prefixed, and not yet enabled
        in any browser. (Chromium has a developer flag required.) Follow-up
        work will include handling DOM elements being removed, making all
        callbacks asynchronous, iframe permissions (similar to Full Screen),
        etc.

        PointerLockController maintains state of which Element is the current
        lock target and the success and failure callbacks. ChromeClient has
        methods added to expose the required state change requests.

        Tests: pointer-lock/lock-already-locked.html
               pointer-lock/lock-fail-responses.html
               pointer-lock/mouse-event-delivery.html
               pointer-lock/pointerlocklost-event.html

        * WebCore.gypi:
        * dom/EventNames.h:
        * page/ChromeClient.h:
        (WebCore::ChromeClient::requestPointerLock):
        (WebCore::ChromeClient::requestPointerUnlock):
        (WebCore::ChromeClient::isPointerLocked):
        * page/Navigator.cpp:
        (WebCore::Navigator::webkitPointer):
        * page/Page.cpp:
        (WebCore::Page::Page):
        * page/Page.h:
        (WebCore::Page::pointerLockController):
        * page/PointerLock.cpp:
        (WebCore::PointerLock::PointerLock):
        (WebCore::PointerLock::create):
        (WebCore::PointerLock::lock):
        (WebCore::PointerLock::unlock):
        (WebCore::PointerLock::isLocked):
        * page/PointerLock.h:
        (WebCore::PointerLock::create):
        * page/PointerLockController.cpp: Added.
        (WebCore::PointerLockController::PointerLockController):
        (WebCore::PointerLockController::requestPointerLock):
        (WebCore::PointerLockController::requestPointerUnlock):
        (WebCore::PointerLockController::isLocked):
        (WebCore::PointerLockController::didAcquirePointerLock):
        (WebCore::PointerLockController::didNotAcquirePointerLock):
        (WebCore::PointerLockController::didLosePointerLock):
        (WebCore::PointerLockController::dispatchLockedMouseEvent):
        * page/PointerLockController.h: Copied from Source/WebCore/page/PointerLock.h.

2012-01-27  Abhishek Arya  <inferno@chromium.org>

        Crash in DocumentLoader::detachFromFrame.
        https://bugs.webkit.org/show_bug.cgi?id=62764

        Reviewed by Brady Eidson.

        r105556 didn't fix the crash because canceling the
        main resource loader blows away both the current
        document loader and frame underneath. Both protectors
        are also used in stopLoading() when m_mainResourceLoader->cancel()
        is called. Also, tested the fix under ASAN.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::detachFromFrame):

2012-01-27  Tony Chang  <tony@chromium.org>

        flexbox scrollbars don't take flex-direction into account
        https://bugs.webkit.org/show_bug.cgi?id=70772

        Reviewed by Darin Adler.

        This fixes a bug where we always used the logicalScrollbarHeight.
        For column flow, this was incorrect.

        Also fix a bug where we didn't include the trailing border+padding+scrollbar when computing the
        height of a column flow.

        Tests: css3/flexbox/cross-axis-scrollbar-expected.html
               css3/flexbox/cross-axis-scrollbar.html

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::crossAxisScrollbarExtent): Add a direction aware method for getting the scrollbar size.
        (WebCore):
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Use crossAxisScrollbarExtent.
        * rendering/RenderFlexibleBox.h:
        (RenderFlexibleBox):

2012-01-27  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebasedlined run-bindings-tests results.

        * bindings/scripts/test/CPP/WebDOMTestInterface.cpp:
        (WebDOMTestInterface::supplementalMethod1):
        (WebDOMTestInterface::supplementalMethod2):

2012-01-27  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Qt][WK2] Child layers appear in wrong position when scrolling
        https://bugs.webkit.org/show_bug.cgi?id=77063

        Reviewed by Simon Fraser.

        When using the delegatesScrolling mode in FrameView, the compositor doesn't need
        to control the special clip/scroll layers. Also, when we change that mode, we need to let
        the compositor reset its backing-stores and rebuild them without scrolling/clipping.

        This is tested by compositing tests, when run with Qt in touch mode.

        * page/FrameView.cpp:
        (WebCore::FrameView::delegatesScrollingDidChange):
        (WebCore):
        * page/FrameView.h:
        (FrameView):
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::setDelegatesScrolling):
        * platform/ScrollView.h:
        (WebCore::ScrollView::delegatesScrollingDidChange):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresScrollLayer):

2012-01-27  Thiago Marcos P. Santos  <tmpsantos@gmail.com>

        Removed unused method from CSSStyleSelector
        https://bugs.webkit.org/show_bug.cgi?id=77190

        Reviewed by Andreas Kling.

        * css/CSSStyleSelector.h:
        (CSSStyleSelector):

2012-01-27  Zeno Albisser  <zeno@webkit.org>

        [Qt][Mac] Build fails after adding ICU support (r105997).
        https://bugs.webkit.org/show_bug.cgi?id=77118

        Use SmareReplaceCF.cpp code path if platform Mac.

        Reviewed by Tor Arne Vestbø.

        * Target.pri:

2012-01-27  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: detailed heap snapshot: Replace (Native objects) root element
        with '(Detached DOM trees)' and '(Document DOM trees)'
        https://bugs.webkit.org/show_bug.cgi?id=77201

        I think it'd be nice to replace one group containing all native objects with
        separate groups for different types of native objects.

        Reviewed by Yury Semikhatsky.

        * bindings/v8/RetainedDOMInfo.cpp:
        (WebCore::RetainedDOMInfo::GetGroupLabel):
        (WebCore):
        * bindings/v8/RetainedDOMInfo.h:
        (RetainedDOMInfo):

2012-01-27  Nikolas Zimmermann  <nzimmermann@rim.com>

        <feImage> doesn't work with local references when using primitiveUnits="objectBoundingBox"
        https://bugs.webkit.org/show_bug.cgi?id=77205

        Reviewed by Antti Koivisto.

        Consider following testcase:
        <svg width="1000" height="500">
        <defs>
            <circle id="c" cx="50%" cy="50%" r="10%"/>
            <filter id="f" filterUnits="userSpaceOnUse" x="0" y="0" width="100" height="100" primitiveUnits="objectBoundingBox">
                <feImage xlink:href="#c"/>
            </filter>
        </defs>
        <rect width="100" height="100" filter="url(#f)"/>
        </svg>

        The <svg> has a viewport of 1000x50. The <circle> in the <defs> element is resolved as <circle cx="500" cy="250" r="79"/>,
        as the context for this element (looking at it isolated!) is the viewport of the <svg>. We then setup a 0x0 - 100x100 rect
        in user space, which gets filtered, by a filter, also defined in user space (for simplicity), but with primitiveUnits="objectBoundingBox".

        That means that the default subregion of the filter effect <feImage/> which has no inputs, is defined in the SVG 1.1 spec to be equal to
        the filter region, which is 0x0-100x100 in user space. This <feImage/> is supposed to produce a 100x100 image, containing a circle in the
        middle (aka. <circle cx="50" cy="50".../>), but it doesn't, as the <circle> it's trying to paint, is laid out at 500x250, and thus outside
        the 100x100 sized image buffer.

        So how to resolve this?
        The RenderSVGShape thats owned by the <circle> generates its Path value by calling cx().value(lengthContext) and the SVGLengthContext here
        resolves to the <svg>. That happens on _layout_. If we would want to change the SVGLengthContext in this case (what I originally planned!)
        to carry a custom 100x100 viewport, we'd need to relayout. Unfortunately this is not an option, as this would mean that
        SVGImageBufferTools::renderSubtreeToImageBuffer, would need to relayout its children first, but we produce the filter images when painting.
        This is very dangerous and has just recently been fixed so that SVGImageBufferTools can ASSERT(!item->needsLayout()) when painting the
        subtree to an image buffer.

        The only sane solution I see, that does not require relayouts, is to make a map between the <circle> bounding box in user space (500x250
        center point) to the filter primitive subregion space (here: 100x100 center point), and concat that transformation before painting the
        subtree to the image buffer. Of course this approach only works if all values of the <circle> are relative. If someone uses
        <circle id="c" cx="50%" cy="666"> the transformation that I'm looking for is undefined. We'd really need to create a new Path here, to
        resolve only cx against the new viewport, and not cy.

        Though in practice it turns out this is not a problem. All use cases of feImage + primitiveUnits="objectBoundingBox" link to elements
        that are completely defined in percentual values, as this is really the only thing which makes sense - otherwise you can always switch
        back to primtiveUnits="userSpaceOnUse". Anyhow, I'm going to fix all known wild-life test cases by my approach, and say we don't support
        using mixed length units when referencing those elements from feImages with primitiveUnits="objectBoundingBox".

        Adding lots of new testcases, trying all the different feImage modes.

        Tests: svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox.svg
               svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse.svg
               svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox.svg
               svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse.svg
               svg/filters/feImage-position.svg
               svg/filters/feImage-subregions-preseveAspectRatio-none-with-viewBox.svg
               svg/filters/feImage-subregions-preseveAspectRatio-none.svg
               svg/filters/feImage-subregions.svg

        * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
        (WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion): Reverse logic, simplifying the code a bit. Remove FEImage special cases (absoluteSubregion).
        * svg/SVGLengthContext.h: Make determineViewport() public, for use in FEImage.
        * svg/graphics/filters/SVGFEImage.cpp:
        (WebCore::FEImage::determineAbsolutePaintRect): Don't apply preserveAspectRatio transformation for local elements, it's not defined and breaks content.
        (WebCore::FEImage::platformApplySoftware): Figure out the absolute subregion by utilizing filterPrimitiveSubregion() as FETurbulence does.
                                                   Map between filter primitive subregion and target object space for primitiveUnits="objectBoundingBox" support on SVG element references.
        * svg/graphics/filters/SVGFEImage.h: Remove absoluteSubregion member & setter, it's no longer needed.

2012-01-26  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Scripts panel: fix event dispatching between FileSelector and EditorContainer.
        https://bugs.webkit.org/show_bug.cgi?id=77126

        Reviewed by Pavel Feldman.

        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded.get if):
        (WebInspector.ScriptsPanel.prototype._reset):
        (WebInspector.ScriptsPanel.prototype._showSourceLine):
        (WebInspector.ScriptsPanel.prototype._updateExecutionLine):
        (WebInspector.ScriptsPanel.prototype._editorClosed):
        (WebInspector.ScriptsPanel.prototype._editorSelected):
        (WebInspector.ScriptsPanel.FileSelector.prototype.revealUISourceCode):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype.revealUISourceCode):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._innerRevealUISourceCode):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._addOptionToFilesSelect.insertOrdered):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._addOptionToFilesSelect):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._goBack):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._goForward):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._filesSelectChanged):
        * inspector/front-end/TabbedEditorContainer.js:
        (WebInspector.TabbedEditorContainer):
        (WebInspector.TabbedEditorContainer.prototype._tabClosed):
        (WebInspector.TabbedEditorContainer.prototype._tabSelected):
        (WebInspector.TabbedEditorContainer.prototype.reset):

2012-01-27  Nikolas Zimmermann  <nzimmermann@rim.com>

        <feImage> DOM mutation problems
        https://bugs.webkit.org/show_bug.cgi?id=77198

        Reviewed by Antti Koivisto.

        Consider <feImage xlink:href="#rect"/>, where <rect> gets dynamically added to the tree.
        Currently <feImage> doesn't notice this, as it doesn't register itself pending on "#rect".

        Integrate <feImage> properly within the pending resources concept, fixing the bug.

        Tests: svg/filters/feImage-target-add-to-document.svg
               svg/filters/feImage-target-changes-id.svg
               svg/filters/feImage-target-id-change.svg
               svg/filters/feImage-target-reappend-to-document.svg
               svg/filters/feImage-target-remove-from-document.svg

        * svg/SVGFEImageElement.cpp: Rename invalidateImageResource to clearResourceReferences.
        (WebCore::SVGFEImageElement::~SVGFEImageElement): Call clearResourceReferences.
        (WebCore::SVGFEImageElement::clearResourceReferences): Remove any occurence of m_targetImage, it's no longer used.
        (WebCore::SVGFEImageElement::requestImageResource): requestImageResource is now called by buildPendingResource.
        (WebCore::SVGFEImageElement::buildPendingResource): Called whenever any element that we depend on gets resolved - now invalidates the <filter>.
        (WebCore::SVGFEImageElement::parseMappedAttribute): Don't start loading from parseMappedAttribute.
        (WebCore::SVGFEImageElement::svgAttributeChanged): Start loading from here, for consistency with SVGImageElement.
        (WebCore::SVGFEImageElement::insertedIntoDocument): Invoke buildPendingResource(), if we enter the tree.
        (WebCore::SVGFEImageElement::removedFromDocument): Clear m_cachedImage as soon as we get removed from the tree.
        (WebCore::SVGFEImageElement::build): Clean up this function, m_targetImage is no longer exist.
        * svg/SVGFEImageElement.h: Remove OwnPtr<ImageBuffer> m_targetImage, which is no longer used.

2012-01-26  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        [Qt] WKTR: Use a software rendering pipiline when running tests.
        https://bugs.webkit.org/show_bug.cgi?id=76708

        Reviewed by Kenneth Rohde Christiansen.

        * platform/graphics/qt/TextureMapperQt.cpp: Allow setting the context to null.
        (WebCore::TextureMapperQt::setGraphicsContext):
        * platform/graphics/qt/TextureMapperQt.h:
        (WebCore::TextureMapperQt::initialize):

2012-01-27  Branimir Lambov  <blambov@google.com>

        SVG filters incorrectly move elements
        https://bugs.webkit.org/show_bug.cgi?id=73643

        Reviewed by Nikolas Zimmermann.

        Fixes SVG image buffer creation to use the enclosing integer rect
        instead of unstable rounded coordinates with scaling which was causing
        animated images to jump around under filters. The image buffer was not 
        aligned on a pixel boundary, and thus the positions and sizes of anything
        drawn under that filter changed by 1-2 pixels compared to the same
        elements drawn without an intermediate buffer, or drawn with a buffer
        with a different target rectangle. 
        
        The change improves the positioning of clip paths, masks and filters.

        Tests: svg/clip-path/clip-in-clip.svg
               svg/clip-path/clipper-placement-issue.svg
               svg/filters/filter-placement-issue.svg

        * platform/graphics/filters/FETile.cpp:
        (WebCore::FETile::platformApplySoftware):
        * rendering/svg/RenderSVGResourceClipper.cpp:
        (WebCore::RenderSVGResourceClipper::applyClippingToContext):
        * rendering/svg/RenderSVGResourceFilter.cpp:
        (WebCore::RenderSVGResourceFilter::applyResource):
        * rendering/svg/RenderSVGResourceGradient.cpp:
        (WebCore::createMaskAndSwapContextForTextGradient):
        (WebCore::clipToTextMask):
        * rendering/svg/RenderSVGResourceMasker.cpp:
        (WebCore::RenderSVGResourceMasker::applyResource):
        (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
        * rendering/svg/RenderSVGResourcePattern.cpp:
        (WebCore::RenderSVGResourcePattern::createTileImage):
        * rendering/svg/SVGImageBufferTools.cpp:
        (WebCore::SVGImageBufferTools::createImageBuffer):
        (WebCore::SVGImageBufferTools::createImageBufferForPattern):
        (WebCore::SVGImageBufferTools::clipToImageBuffer):
        (WebCore::SVGImageBufferTools::clampedAbsoluteTargetRect):
        (WebCore::SVGImageBufferTools::clampedAbsoluteSize):
        * rendering/svg/SVGImageBufferTools.h:
        (WebCore::SVGImageBufferTools::calcImageBufferRect):

2012-01-25  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: should be possible to open function declaration from script popover
        https://bugs.webkit.org/show_bug.cgi?id=76913

        Added inferred/display function name and source location to the popover in scripts panel.
        Now when a function is hovered user can navigate to its definition.

        Reviewed by Pavel Feldman.

        Test: inspector/debugger/function-details.html

        * bindings/js/JSInjectedScriptHostCustom.cpp:
        (WebCore::JSInjectedScriptHost::functionDetails):
        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
        (WebCore::V8InjectedScriptHost::functionDetailsCallback):
        * inspector/InjectedScript.cpp:
        (WebCore::InjectedScript::getFunctionDetails):
        * inspector/InjectedScript.h:
        (InjectedScript):
        * inspector/InjectedScriptHost.idl:
        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/Inspector.json:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::getFunctionDetails):
        * inspector/InspectorDebuggerAgent.h:
        (InspectorDebuggerAgent):
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyFunctionLocation):
        * inspector/front-end/ObjectPopoverHelper.js:
        (WebInspector.ObjectPopoverHelper):
        (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover.showObjectPopover.):
        (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
        (WebInspector.ObjectPopoverHelper.prototype._onHideObjectPopover):
        * inspector/front-end/ObjectPropertiesSection.js:
        (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired):
        (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired.revealFunction):
        * inspector/front-end/RemoteObject.js:
        (WebInspector.RemoteObject):
        (WebInspector.RemoteObject.fromPayload):
        (WebInspector.RemoteObject.prototype.get functionName):
        * inspector/front-end/scriptsPanel.css:
        (.function-location-link):
        (.function-popover-title):
        (.function-popover-title .function-name):

2012-01-26  Noel Gordon  <noel.gordon@gmail.com>

        Remove FIXME: ColorProfile encapsulation as a Vector<char> works well 
        https://bugs.webkit.org/show_bug.cgi?id=77176

        Reviewed by Adam Barth.

        No new tests. No change in behavior.

        * platform/image-decoders/ImageDecoder.h:

2012-01-26  Matthew Delaney  <mdelaney@apple.com>

        ImageBuffer::draw should deep copy if drawing to an accelerated context
        https://bugs.webkit.org/show_bug.cgi?id=77185

        Reviewed by Simon Fraser.

        No new tests since any test for this issue would be flaky at best.

        * platform/graphics/cg/ImageBufferCG.cpp: Deep copy when drawing ourself into
            an accelerated context for both draw and drawPattern.
        (WebCore::ImageBuffer::draw):
        (WebCore::ImageBuffer::drawPattern):

2012-01-26  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed. Build fixes.
        - Remove some constructors not generated by CPP bindings
          from being added to CPP binding headers
        - Keyboard event fixes after modifier changes
        - Add stubs for Language and RunLoop platform methods

        * bindings/scripts/CodeGeneratorCPP.pm:
        (GetNamespaceForClass):
        (GenerateImplementation):
        * platform/mac/WebCoreSystemInterface.h:
        * platform/wx/KeyboardEventWx.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/wx/LanguageWx.cpp: Added.
        (WebCore):
        (WebCore::platformLanguage):
        (WebCore::platformUserPreferredLanguages):
        * platform/wx/RunLoopWx.cpp: Added.
        (WebCore):
        (WebCore::RunLoop::run):
        (WebCore::RunLoop::stop):
        (WebCore::RunLoop::RunLoop):
        (WebCore::RunLoop::~RunLoop):
        (WebCore::RunLoop::wakeUp):
        * storage/DOMWindowSQLDatabase.idl:
        * webaudio/DOMWindowWebAudio.idl:
        * websockets/DOMWindowWebSocket.idl:

2012-01-26  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r105486.
        http://trac.webkit.org/changeset/105486
        https://bugs.webkit.org/show_bug.cgi?id=77182

        This patch doesn't take web workers into account. (Requested
        by dave_levin on #webkit).

        * html/DOMURL.cpp:
        (WebCore::DOMURL::DOMURL):
        (WebCore::DOMURL::~DOMURL):
        (WebCore::DOMURL::contextDestroyed):
        (WebCore):
        (WebCore::DOMURL::createObjectURL):
        (WebCore::DOMURL::revokeObjectURL):
        * html/DOMURL.h:
        (WebCore::DOMURL::create):
        (DOMURL):
        * html/DOMURL.idl:
        * page/DOMWindow.cpp:
        (WebCore):
        (WebCore::DOMWindow::webkitURL):
        * page/DOMWindow.h:
        (DOMWindow):
        ():
        * page/DOMWindow.idl:
        * workers/WorkerContext.cpp:
        (WebCore):
        (WebCore::WorkerContext::webkitURL):
        (WebCore::WorkerContext::webkitRequestFileSystem):
        * workers/WorkerContext.h:
        (WorkerContext):
        ():
        * workers/WorkerContext.idl:

2012-01-26  Noel Gordon  <noel.gordon@gmail.com>

        Cleanup JPEGImageDecoder includes
        https://bugs.webkit.org/show_bug.cgi?id=77171

        Reviewed by Adam Barth.

        No new tests. Refactoring cleanup only.

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

2012-01-26  Tim Horton  <hortont424@gmail.com>

        3D transformed elements hide when showing the print dialog
        https://bugs.webkit.org/show_bug.cgi?id=45894
        <rdar://problem/7441593>

        Reviewed by Andy Estes.

        Suspend updates of the compositing layer tree while printing is taking place,
        preventing on-screen layers from moving to their print-mode positions.

        No new tests, as WebKitTestRunner doesn't support putting the document
        into printing mode.

        * page/FrameView.cpp:
        (WebCore::FrameView::syncCompositingStateForThisFrame):
        (WebCore::FrameView::paintContents):
        * platform/graphics/ca/LayerFlushScheduler.h:
        (WebCore::LayerFlushScheduler::isSuspended): Added.

2012-01-26  Pablo Flouret  <pablof@motorola.com>

        Fix bad code generated by the JSC idl code generator for [CachedAttribute] attributes
        https://bugs.webkit.org/show_bug.cgi?id=77165

        Reviewed by Oliver Hunt.

        Missing parameter in a call to deserialize() and using 'this' in the
        attribute accessor functions (which are static).

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        (NativeToJSValue):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjCachedAttribute1):
        (WebCore::jsTestObjCachedAttribute2):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::jsTestSerializedScriptValueInterfaceValue):

2012-01-26  W. James MacLean  <wjmaclean@chromium.org>

        [chromium] Allow modification of size of partially occluded quads during culling to reduce pixel overdraw.
        https://bugs.webkit.org/show_bug.cgi?id=76349

        Reviewed by James Robinson.

        Prior to this patch, draw culling either rejects a DrawQuad because it is completely
        occluded, or draws the entire quad (even if it is largely occluded). This patch
        attempts to reduce the number of pixels drawn by determining if a partially
        occluded DrawQuad can be resized to a smaller quad, based on what portion of the
        DrawQuad is actually visible, and performing that resizing where possible.

        Added cases to existing unit tests.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::drawTileQuad):
        * platform/graphics/chromium/cc/CCDrawQuad.cpp:
        (WebCore::CCDrawQuad::CCDrawQuad):
        * platform/graphics/chromium/cc/CCDrawQuad.h:
        (WebCore::CCDrawQuad::setQuadVisibleRect):
        (WebCore::CCDrawQuad::quadVisibleRect):
        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
        (WebCore::rectSubtractRegion):
        (WebCore::CCQuadCuller::cullOccludedQuads):

2012-01-26  Anders Carlsson  <andersca@apple.com>

        Scrollbars disappear when switching from legacy to overlay scrollbars
        https://bugs.webkit.org/show_bug.cgi?id=77166

        Reviewed by Dan Bernstein.

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::scrollbarStyleChanged):
        Call positionScrollbarLayers to make sure that the new scrollbar layers are positioned correctly.

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::updateScrollerStyle):
        Call ScrollbarThemeMac::setNewPainterForScrollbar after making the call to the scrollbar painter controller
        to set the horizontal or vertical imp, since setting the imp will reset the knob style.

2012-01-26  Adam Barth  <abarth@webkit.org>

        NULL ptr in WebCore::ContainerNode::parserAddChild
        https://bugs.webkit.org/show_bug.cgi?id=76258

        Reviewed by Eric Seidel.

        Test: fast/parser/nested-fragment-parser-crash.html

        We always need a parent element to attach to.  In crazy cases, we can
        have elements in the stack of open elements that are already detached
        from the DOM.  In those cases, they don't have a parent, so we aren't
        able to enforce the maximum DOM depth.  (Fortunately, they're not
        attached to the DOM anymore so we don't need to enforce the maximum DOM
        depth!)

        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::attachLater):
        (WebCore::HTMLConstructionSite::fosterParent):

2012-01-26  Cris Neckar  <cdn@chromium.org>

        The registration of schemes is currently racey as they are not registered from the main thread. 
        Getting rid of the assert that ensures that we are registering from the main thread until we can fix this.

        Thank you ap@webkit for helping us identify this.

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

        Reviewed by Adam Barth.

        * platform/SchemeRegistry.cpp:
        (WebCore::CORSEnabledSchemes):

2012-01-26  Anders Carlsson  <andersca@apple.com>

        We don't need to always repaint overlay scrollbars if they're in layers
        https://bugs.webkit.org/show_bug.cgi?id=77159

        Reviewed by Beth Dakin.

        If a scrollable area has overlay scrollbars we'll always invalidate both scrollbars, regardless of
        whether both scroll offsets actually change since they're translucent and we want to draw the new page
        contents underneath.
        
        However, if the scrollbars are painted into GraphicsLayers they'll be composited by the GPU, and so we don't
        need to repaint them unless the corresponding scroll offset actually changes (which is handled in Scrollbar::updateThumb).

        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::setScrollOffsetFromAnimation):

2012-01-26  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: WebCore::IDBKey objects are leaked
        https://bugs.webkit.org/show_bug.cgi?id=77114

        Reviewed by Tony Chang.

        Fixing memory leaks, no new tests.

        * storage/IDBKey.h:
        (WebCore::IDBKey::createInvalid):
        (WebCore::IDBKey::createNumber):
        (WebCore::IDBKey::createString):
        (WebCore::IDBKey::createDate):
        (WebCore::IDBKey::createArray):

2012-01-25  Cris Neckar  <cdn@chromium.org>

        Add a scheme registry for CORS requests. Allow simple CORS requests to be made to registered schemes.
        https://bugs.webkit.org/show_bug.cgi?id=77041

        Reviewed by Alexey Proskuryakov.

        * loader/DocumentThreadableLoader.cpp:
        (WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
        * platform/SchemeRegistry.cpp:
        (WebCore::CORSEnabledSchemes):
        (WebCore):
        (WebCore::SchemeRegistry::registerCORSEnabledScheme):
        (WebCore::SchemeRegistry::isCORSEnabledScheme):
        * platform/SchemeRegistry.h:
        (SchemeRegistry):

2012-01-26  Noel Gordon  <noel.gordon@gmail.com>

        File extension for webp files is .webp
        https://bugs.webkit.org/show_bug.cgi?id=76982

        Reviewed by Adam Barth.

        No new tests. No change in behavior.

        * platform/image-decoders/webp/WEBPImageDecoder.h:
        (WebCore::WEBPImageDecoder::filenameExtension):

2012-01-26  Alok Priyadarshi  <alokp@chromium.org>

        [chromium] Remove dead and unnecessary code related to LayerChromium::cleanupResources
        https://bugs.webkit.org/show_bug.cgi?id=77137

        Reviewed by James Robinson.

        No new test needed. Only removing dead code.

        * platform/graphics/chromium/LayerChromium.cpp:
        * platform/graphics/chromium/LayerChromium.h:
        (WebCore::LayerChromium::layerTreeHost):
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::setLayerTreeHost):

2012-01-26  Anders Carlsson  <andersca@apple.com>

        Move horizontal rubber-band checks to ScrollElasticityController::handleWheelEvent
        https://bugs.webkit.org/show_bug.cgi?id=77147

        Reviewed by Adam Roben.

        * platform/mac/ScrollAnimatorMac.h:
        (ScrollAnimatorMac):
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::handleWheelEvent):
        Always call ScrollElasticityController::handleWheelEvent, and only call didBeginScrollGesture and
        didEndScrollGesture if the event was actually handled.

        (WebCore::ScrollAnimatorMac::shouldRubberBandInDirection):
        Implement this.

        * platform/mac/ScrollElasticityController.h:
        * platform/mac/ScrollElasticityController.mm:
        (WebCore::ScrollElasticityController::handleWheelEvent):
        Check if we should rubber-band and return false if we shouldn't.

        (WebCore::ScrollElasticityController::shouldRubberBandInHorizontalDirection):
        Ask the client if we should rubber-band.

2012-01-19  James Robinson  <jamesr@chromium.org>

        [chromium] Remove setLayerTreeHost nonsense on lost context
        https://bugs.webkit.org/show_bug.cgi?id=76675

        Reviewed by Kenneth Russell.

        This code isn't needed any more. On a lost context event, we drop all TextureManager-managed textures through
        the proxy and no layer types need special lost context handling.

        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):

2012-01-26  Anders Carlsson  <andersca@apple.com>

        Simplify checking of whether we should rubberband horizontally
        https://bugs.webkit.org/show_bug.cgi?id=77141

        Reviewed by Adam Roben.

        Have a single check for horizontal rubber-banding in both directions. This is in preparation
        for moving this code into ScrollElasticityController.

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::shouldRubberBandInHorizontalDirection):
        (WebCore::ScrollAnimatorMac::handleWheelEvent):

2012-01-26  Scott Graham  <scottmg@chomium.org>

        Fix include path in gyp file for V8InternalSettings.h
        https://bugs.webkit.org/show_bug.cgi?id=77128

        Reviewed by Kent Tamura.

        * WebCore.gyp/WebCore.gyp:

2012-01-26  James Robinson  <jamesr@chromium.org>

        We shouldn't synchronously update styles on all documents after running script
        https://bugs.webkit.org/show_bug.cgi?id=46761

        Reviewed by Simon Fraser.

        Currently we call Document::updateStyleForAllDocuments() after invoking any event or timeout handler. This is
        slow since it iterates over the entire document tree and defeats our recalcStyle timer batching. It is
        unnecessary as any code that depends on styles or the render tree being up to date must call
        updateStyleIfNeeded() on the document it is accessing.

        The first reference I can find to this code is in r798 in the file WebCore/khtml/xml/domnode_impl.cpp. It's been
        cargo culted forward ever since.

        * bindings/ScriptControllerBase.cpp:
        (WebCore::ScriptController::executeScript):
        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::execute):
        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::ScriptController):
        (WebCore::ScriptController::executeScriptInWorld):
        * bindings/js/ScriptController.h:
        * bindings/v8/ScheduledAction.cpp:
        (WebCore::ScheduledAction::execute):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::ScriptController):
        * bindings/v8/ScriptController.h:
        * dom/ScriptElement.cpp:
        (WebCore::ScriptElement::executeScript):
        * inspector/InspectorClient.cpp:
        (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):

2012-01-26  Anders Carlsson  <andersca@apple.com>

        Get rid of ScrollElasticityController::beginScrollGesture()
        https://bugs.webkit.org/show_bug.cgi?id=77138

        Reviewed by Adam Roben.

        ScrollElasticityController::handleWheelEvent now checks if the wheel event phase is
        PlatformWheelEventPhaseBegan and sets up the gesture state if it is.

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::handleWheelEvent):
        * platform/mac/ScrollElasticityController.h:
        (ScrollElasticityController):
        * platform/mac/ScrollElasticityController.mm:
        (WebCore::ScrollElasticityController::handleWheelEvent):

2012-01-26  Anders Carlsson  <andersca@apple.com>

        Get rid of ScrollElasticityController::endScrollGesture()
        https://bugs.webkit.org/show_bug.cgi?id=77134

        Reviewed by Adam Roben.

        Just make ScrollElasticityController::handleWheelEvent call snapRubberBand if the wheel
        event phase is PlatformWheelEventPhaseEnded.

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::handleWheelEvent):
        * platform/mac/ScrollElasticityController.h:
        (ScrollElasticityController):
        * platform/mac/ScrollElasticityController.mm:
        (WebCore::ScrollElasticityController::handleWheelEvent):

2012-01-26  Abhishek Arya  <inferno@chromium.org>

        Crash in SVGSVGElement::currentViewBoxRect.
        https://bugs.webkit.org/show_bug.cgi?id=77121

        Reviewed by Nikolas Zimmermann.

        Symbols shouldn't be rendered. Revert the ASSERT
        from r105513 into a hard check.

        Test: svg/custom/symbol-viewport-element-crash.svg

        * svg/SVGLengthContext.cpp:
        (WebCore::SVGLengthContext::determineViewport):

2012-01-26  Anders Carlsson  <andersca@apple.com>

        Inline beginScrollGesture/endScrollGesture in handleWheelEvent
        https://bugs.webkit.org/show_bug.cgi?id=77133

        Reviewed by Andreas Kling.

        * platform/mac/ScrollAnimatorMac.h:
        (ScrollAnimatorMac):
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::handleWheelEvent):

2012-01-26  Anders Carlsson  <andersca@apple.com>

        No need to set m_haveScrolledSincePageLoad in beginScrollGesture
        https://bugs.webkit.org/show_bug.cgi?id=77132

        Reviewed by Andreas Kling.

        m_haveScrolledSincePageLoad is already set to true in handleWheelEvent so we don't need
        to set it to true again.

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::beginScrollGesture):

2012-01-26  Anders Carlsson  <andersca@apple.com>

        Simplify checking for whether we should rubberband or not when at the edge
        https://bugs.webkit.org/show_bug.cgi?id=77131

        Reviewed by Beth Dakin.

        We only need to check once if we're pinned at either edge whether we should rubber-band
        or not. Do this when the wheel event phase is PlatformWheelEventPhaseBegan. This lets us
        remove a bunch of code that would keep track of the current horizontal scroll direction.

        * platform/mac/ScrollAnimatorMac.h:
        (ScrollAnimatorMac):
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
        (WebCore::ScrollAnimatorMac::handleWheelEvent):
        (WebCore::ScrollAnimatorMac::beginScrollGesture):

2012-01-26  Eli Fidler  <efidler@rim.com>

        [JSC] Inspector instrumentation for JavaScript calls.
        https://bugs.webkit.org/show_bug.cgi?id=40119

        Reviewed by Geoffrey Garen.

        Covered by existing Chromium inspector tests

        * bindings/js/JSCallbackData.cpp:
        (WebCore::JSCallbackData::invokeCallback):
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::handleEvent):
        * bindings/js/JSMainThreadExecState.h:
        (WebCore::JSMainThreadExecState::instrumentedCall):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::willCallFunctionImpl):

2012-01-26  Mike Reed  <reed@google.com>

        Signal to skia to force A8 text from LCD output, but only when we have to disable LCD because we're in a layer
        https://bugs.webkit.org/show_bug.cgi?id=76547

        Reviewed by Stephen White.

        Existing tests should confirm nothing is broken. Antialiased text
        is disabled in layouttests, so they should be unaffected by the
        difference in antialiasing quality.

        * platform/graphics/skia/SkiaFontWin.cpp:
        (WebCore::setupPaintForFont):


2012-01-26  Anders Carlsson  <andersca@apple.com>

        Use PlatformWheelEvent::phase() to determine if a scroll gesture begins or ends
        https://bugs.webkit.org/show_bug.cgi?id=77127

        Reviewed by Beth Dakin.

        * platform/mac/ScrollAnimatorMac.h:
        (ScrollAnimatorMac):
        Remove handleGestureEvent.

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::handleWheelEvent):
        Look at the event phase to determine when to call didBeginGesture and didEndGesture.

2012-01-26  Benjamin Poulain  <benjamin@webkit.org>

        Using strncmp() for comparing scheme and port numbers is inefficient
        https://bugs.webkit.org/show_bug.cgi?id=75821

        Reviewed by Darin Adler.

        Replace the equal() function comparing 2 arbitrary strings by a template
        comparing the string to an array, character by character.

        This is only used for small strings: the schemes and the ports.

        * platform/KURL.cpp:
        (WebCore::equal):
        (WebCore::isDefaultPortForScheme):
        (WebCore::isNonFileHierarchicalScheme):
        (WebCore::isCanonicalHostnameLowercaseForScheme):

2012-01-26  Anders Carlsson  <andersca@apple.com>

        WebWheelEvent::Phase and PlatformWheelEvent::Phase declarations should match AppKit
        https://bugs.webkit.org/show_bug.cgi?id=77123

        Reviewed by Beth Dakin.

        * platform/PlatformWheelEvent.h:
        ():
        * platform/mac/PlatformEventFactoryMac.mm:
        (WebCore::phaseForEvent):

2012-01-26  Daniel Cheng  <dcheng@chromium.org>

        Revert code changes from r105800
        https://bugs.webkit.org/show_bug.cgi?id=77071

        The strings are already lowercased in EventHandler.cpp:findDropZone() so there's
        no need to call lower() again.

        Reviewed by Tony Chang.

        Covered by existing tests.

        * dom/Clipboard.cpp:
        (WebCore::Clipboard::hasDropZoneType):

2012-01-26  Stephen Chenney  <schenney@chromium.org>

        REGRESSION (r91125): Polyline tool in google docs is broken
        https://bugs.webkit.org/show_bug.cgi?id=65796

        Reviewed by Nikolas Zimmermann.

        It turns out that the CG problem is a design decision. The bounding code
        returns CGRectNull for cases where a bound is ill-defined, rather than the
        empty bound as expected.

        I'm also removing the workaround for isEmpty to get correct zero length paths.
        It is no longer necessary.

        Tested by existing layout tests.

        * platform/graphics/cg/PathCG.cpp: Removed path empty and path bound testing classes.
        (WebCore::Path::boundingRect): Added check for CGRectNull
        (WebCore::Path::fastBoundingRect): Added check for CGRectNull
        (WebCore::Path::strokeBoundingRect): Added check for CGRectNull
        (WebCore::Path::isEmpty): Reverted to former behavior, just using CGPathIsEmpty.
        (WebCore::Path::hasCurrentPoint): Reverted to former behavior, using isEmpty.
        (WebCore::Path::transform): Reverted to former behavior, using isEmpty.

2012-01-26  Andreas Kling  <awesomekling@apple.com>

        Refactor application of additional style attributes for table elements.
        <http://webkit.org/b/77095>

        Reviewed by Darin Adler.

        The primary purpose of this change is to reduce usage of CSSMappedAttributeDeclaration.
        Instead of using the mapped attribute decl table for additional table style, just use
        regular CSSMutableStyleDeclarations. We cache them all globally, except for the style
        that's shared between a table's cells. That one is cached per-table since it depends
        on the table's border and padding.

        * dom/CSSMappedAttributeDeclaration.cpp:
        (WebCore::CSSMappedAttributeDeclaration::~CSSMappedAttributeDeclaration):
        * dom/MappedAttributeEntry.h:

            Remove the concept of persistent CSSMappedAttributeDeclarations. The hunk in
            ~CSSMappedAttributeDeclaration was wildly wrong since it would leave stale pointers
            in the decl table, but unreachable since we always leaked one ref to those decls.

        * dom/StyledElement.h:
        (WebCore::StyledElement::additionalAttributeStyle):
        * html/HTMLTableCellElement.cpp:
        (WebCore::HTMLTableCellElement::additionalAttributeStyle):
        * html/HTMLTableCellElement.h:
        (HTMLTableCellElement):
        * html/HTMLTableColElement.cpp:
        (WebCore::HTMLTableColElement::additionalAttributeStyle):
        * html/HTMLTableColElement.h:
        (HTMLTableColElement):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::parseMappedAttribute):
        (WebCore::leakBorderStyle):
        (WebCore::HTMLTableElement::additionalAttributeStyle):
        (WebCore::HTMLTableElement::createSharedCellStyle):
        (WebCore::HTMLTableElement::additionalCellStyle):
        (WebCore::leakGroupBorderStyle):
        (WebCore::HTMLTableElement::additionalGroupStyle):
        * html/HTMLTableElement.h:
        (HTMLTableElement):
        * html/HTMLTableSectionElement.cpp:
        (WebCore::HTMLTableSectionElement::additionalAttributeStyle):
        * html/HTMLTableSectionElement.h:
        (HTMLTableSectionElement):

            Instead of collecting additional style decls into a vector, switch over to a
            "PassRefPtr<CSSMutableStyleDeclaration> additionalAttributeStyle()".
            All style declarations that can be reused for all elements are cached at the return
            sites, leaving only the shared table cell style which we cache on HTMLTableElement.
            Also removed the canHaveAdditionalAttributeStyleDecls() virtual since the default
            additionalAttributeStyle() will just return 0.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchAllRules):

            Updated for the new additional style conventions.

2012-01-26  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Scripts panel editor container should be based on UISourceCode objects, not SourceFrames.
        https://bugs.webkit.org/show_bug.cgi?id=77098

        Reviewed by Pavel Feldman.

        * inspector/front-end/ScriptsNavigator.js:
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype.setScriptSourceIsBeingEdited):
        (WebInspector.ScriptsPanel.prototype.get visibleView):
        (WebInspector.ScriptsPanel.prototype.viewForFile):
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced):
        (WebInspector.EditorContainer):
        (WebInspector.EditorContainer.prototype.get visibleView):
        (WebInspector.EditorContainer.prototype.showFile):
        (WebInspector.EditorContainer.prototype.setFileIsDirty):
        (WebInspector.EditorContainer.prototype.replaceFiles):
        (WebInspector.EditorContainer.prototype.reset):
        (WebInspector.EditorContainerDelegate):
        (WebInspector.EditorContainerDelegate.prototype.viewForFile):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype.replaceUISourceCodes):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.get visibleView):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.showFile):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.setFileIsDirty):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.replaceFiles):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.reset):
        * inspector/front-end/TabbedEditorContainer.js:
        (WebInspector.TabbedEditorContainer):
        (WebInspector.TabbedEditorContainer.prototype.get visibleView):
        (WebInspector.TabbedEditorContainer.prototype._titleForFile):
        (WebInspector.TabbedEditorContainer.prototype._tooltipForFile):
        (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
        (WebInspector.TabbedEditorContainer.prototype._tabClosed):
        (WebInspector.TabbedEditorContainer.prototype._tabSelected):
        (WebInspector.TabbedEditorContainer.prototype.replaceFiles.get if):
        (WebInspector.TabbedEditorContainer.prototype.replaceFiles):
        (WebInspector.TabbedEditorContainer.prototype.setFileIsDirty.get if):
        (WebInspector.TabbedEditorContainer.prototype.setFileIsDirty):
        (WebInspector.TabbedEditorContainer.prototype.reset):

2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>

        SVG + <object> tests are flakey
        https://bugs.webkit.org/show_bug.cgi?id=77099

        Reviewed by Andreas Kling.

        Bug 76447 changed the way RenderSVGRoot figures out its size. Previously RenderSVGRoot directly called out to the
        ownerRenderer (RenderEmbeddedObject) to compute its replaced size when embedded through eg. <object> element,
        which was quite hacky. It now relies on the ownerRenderers availableLogicalWidth/Height to be correctly set,
        which requires that the ownerRenderer is always laid out before the RenderSVGRoot and not the other way round.

        This is the source of current flakiness bugs.

        In trunk FrameView contains several special hacks, to layout the ownerRenderers view, after the RenderSVGRoots view
        finished layout. This worked without flakiness as RenderSVGRoot used to directly call computeReplacedLogicalWidth/Height
        on the ownerRenderer, which is now gone. Fortunately we can keep the new design, and can remove all hacks out of
        RenderSVGRoot/FrameView, if we can guarantee that the ownerRenderer FrameView is laid out before the RenderSVGRoot FrameView.

        This is a much less error-prone approach as the previous one. This lets us run nrwt --tolerance 0 -p svg -g again,
        without 100% reproducable failing svg/wicd tests. (There's still one unrelated error, before guard malloc mode passes fully).

        Test: svg/wicd/sizing-flakiness.html (Adjusted version of the rightsizing test, made to fail with trunk w/o this patch.)

        * page/FrameView.cpp: Remove m_inLayoutParentView.
        (WebCore::FrameView::FrameView): Remove no longer needed m_inLayoutParentView.
        (WebCore::FrameView::forceLayoutParentViewIfNeeded): Simplify, no need to call updateWidgetPositions anymore, nor to clear/query flags in RenderSVGRoot.
        (WebCore::FrameView::layout): Call forceLayoutParentViewIfNeeded() before laying out the embedded document, to guarantee the correct order.
        * page/FrameView.h:
        (FrameView): Remove m_inLayoutParentView.
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::RenderSVGRoot): Remove m_needsSizeNegotiationWithHostDocument.
        (WebCore::resolveLengthAttributeForSVG): Remove outcommented code, that went in by accident.
        (WebCore::RenderSVGRoot::layout): Remove m_needsSizeNegotiationWithHostDocument handling which is now incorrect and no longer needed.
        * rendering/svg/RenderSVGRoot.h:
        (RenderSVGRoot): Remove m_needsSizeNegotiationWithHostDocument + accessors.

2012-01-23  Andreas Kling  <awesomekling@apple.com>

        Make elements that don't have attributes smaller.
        <http://webkit.org/b/76876>

        Reviewed by Antti Koivisto.

        Move the inline style declaration from StyledElement to NamedNodeMap, since having
        an inline style declaration also implies having a style attribute on the element.
        This saves one CPU word per element that has no attributes.

        This reduces memory consumption by 412 kB (on 64-bit) when viewing the full
        HTML5 spec at <http://whatwg.org/c>.

        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::ensureInlineStyleDecl):
        (WebCore::NamedNodeMap::destroyInlineStyleDecl):
        (WebCore::NamedNodeMap::createInlineStyleDecl):
        * dom/NamedNodeMap.h:
        (WebCore::NamedNodeMap::inlineStyleDecl):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::updateStyleAttribute):
        (WebCore::StyledElement::addSubresourceAttributeURLs):
        * dom/StyledElement.h:
        (WebCore::StyledElement::inlineStyleDecl):
        (WebCore::StyledElement::ensureInlineStyleDecl):
        (WebCore::StyledElement::destroyInlineStyleDecl):

2012-01-26  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>

        [Qt] Use ICU if available
        https://bugs.webkit.org/show_bug.cgi?id=76821

        Reviewed by Simon Hausmann.

        Adding correct sources to a Qt 5 based build.

        No new tests, it's just a build dependency change.

        * Target.pri:

2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Fix mac build after r105988.

        * WebCore.exp.in:

2012-01-26  Nándor Huszka  <huszka.nandor@stud.u-szeged.hu>

        [WK2] WebKitTestRunner needs layoutTestController.setGeolocationPermission
        https://bugs.webkit.org/show_bug.cgi?id=42545

        Reviewed by Zoltan Herczeg.

        No need for new tests, there is no behavior change.

        Added a line to file which copies the forwarding headers.

        * WebCore.vcproj/copyForwardingHeaders.cmd:

2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Fix Qt build after r105978.

        * rendering/svg/RenderSVGResourceClipper.cpp: Add missing Frame/FrameView includes.
        * rendering/svg/RenderSVGResourceSolidColor.cpp: Ditto.
        * rendering/svg/SVGInlineTextBox.cpp: Ditto.
        * rendering/svg/SVGRenderSupport.cpp: Ditto.

2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Fix non-AllInOne builds after r105978.

        * rendering/svg/RenderSVGResource.cpp:

2012-01-26  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed inspector closure compilation fix.

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

2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Fix release builds after r105978.

        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::paintSelectionBackground): Remove unused variable.

2012-01-26  Kent Tamura  <tkent@chromium.org>

        Unreviewed, rolling out r105968.
        http://trac.webkit.org/changeset/105968
        https://bugs.webkit.org/show_bug.cgi?id=76995

        Incorrect behavior change

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setIndeterminate):

2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>

        crash in WebCore::RenderSVGContainer::paint
        https://bugs.webkit.org/show_bug.cgi?id=69714

        Reviewed by Dirk Schulze.

        When RenderSVGResourceClipper draws its children to a mask, it requires some special constraints:
        - fill-opacity/stroke-opacity/opacity forced to 1
        - masker/filter resources shouldn't be applied to the children
        - fill must be set to the initial fill paint server for all children (solid black)
        - stroke must be set to the initial stroke paint server for all children (none)

        This was achieved before by mutating the style of the children, which made them need a relayout.
        SVGImageBufferTools:renderSubtreeToImageBuffer thus needed to layout the children, if needed, before painting.

        This can be completly avoided, when changing RenderSVGResourceClipper to avoid style mutations.
        Introduce a new "PaintBehaviorRenderingSVGMask", and set the current FrameViews paintBehaviour to this
        state, before painting the subtree. This way we can detect that we're rendering a clip mask, without
        having to mutate the style of the children and without having to relayout.

        We can now ASSERT(!item->needsLayout()) in renderSubtreeToImageBuffer.

        Tests: svg/clip-path/clip-path-tspan-and-stroke.svg
               svg/custom/layout-loop.svg

        * rendering/PaintPhase.h:
        * rendering/svg/RenderSVGResource.cpp:
        (WebCore::requestPaintingResource):
        * rendering/svg/RenderSVGResourceClipper.cpp:
        (WebCore::RenderSVGResourceClipper::RenderSVGResourceClipper):
        (WebCore::RenderSVGResourceClipper::removeAllClientsFromCache):
        (WebCore::RenderSVGResourceClipper::removeClientFromCache):
        (WebCore::RenderSVGResourceClipper::applyClippingToContext):
        (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
        * rendering/svg/RenderSVGResourceClipper.h:
        * rendering/svg/RenderSVGResourceMasker.cpp:
        (WebCore::RenderSVGResourceMasker::applyResource):
        (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
        * rendering/svg/RenderSVGResourceMasker.h:
        * rendering/svg/RenderSVGResourcePattern.cpp:
        (WebCore::RenderSVGResourcePattern::createTileImage):
        * rendering/svg/RenderSVGResourceSolidColor.cpp:
        (WebCore::RenderSVGResourceSolidColor::applyResource):
        * rendering/svg/SVGImageBufferTools.cpp:
        (WebCore::SVGImageBufferTools::renderSubtreeToImageBuffer):
        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::paintSelectionBackground):
        (WebCore::SVGInlineTextBox::paint):
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::prepareToRenderSVGContent):

2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Try to fix Gtk build - JSShadowRoot.cpp can't be found, fix by looking for it in the derived sources.

        * GNUmakefile.list.am:

2012-01-24  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Improve user experience of advanced search panel closing.
        https://bugs.webkit.org/show_bug.cgi?id=76983

        Reviewed by Pavel Feldman.

        Added close button to search panel.
        Esc now closes the panel even when search filed has focus.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/AdvancedSearchController.js:
        (WebInspector.AdvancedSearchController.prototype.close):
        (WebInspector.SearchView):
        (WebInspector.SearchView.prototype._onKeyDown):
        (WebInspector.SearchView.prototype._closeButtonPressed):
        * inspector/front-end/inspector.css:
        (.search-view .search-panel):
        (.search-view .search-panel button.search-close-button):
        * inspector/front-end/inspector.js:
        (WebInspector._escPressed):
        (WebInspector.closeDrawerView):

2012-01-26  Joe Thomas  <joethomas@motorola.com>

        https://bugs.webkit.org/show_bug.cgi?id=76995.
        WebKit fails IETC :indeterminate and input type=radio test.

        As per the HTML spec http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#dom-input-indeterminate,
        only checkbox input type should respect the indeterminate state.
        Removed the support for indeterminate state for radio input types.

        Reviewed by Eric Seidel.

        Modified the existing test cases.

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setIndeterminate): Indeterminate state is supported only for checkbox input type.

2012-01-25  Daniel Cheng  <dcheng@chromium.org>

        [chromium] Fix ClipboardChromium::validateFilename to actually operate on extensions
        https://bugs.webkit.org/show_bug.cgi?id=76996

        As it turns out, we were always calling validateFilename on a data object with an empty
        extension. Now we call it on an actual extension so that it's sanitized.

        Reviewed by Tony Chang.

        Unit test: webkit_unit_tests --gtest_filter=ClipboardChromium.*

        * WebCore.gypi:
        * platform/chromium/ClipboardChromium.cpp:
        (WebCore::writeImageToDataObject):
        * platform/chromium/ClipboardChromium.h:
        (ClipboardChromium):
        * platform/chromium/ClipboardChromiumLinux.cpp: Removed.
        * platform/chromium/ClipboardChromiumPosix.cpp: Renamed from Source/WebCore/platform/chromium/ClipboardChromiumMac.cpp.
        (WebCore):
        (WebCore::isInvalidFileCharacter):
        (WebCore::ClipboardChromium::validateFilename):
        * platform/chromium/ClipboardChromiumWin.cpp:
        (WebCore):
        (WebCore::ClipboardChromium::validateFilename):

2012-01-25  James Robinson  <jamesr@chromium.org>

        [chromium] Rollout r100751, this mechanism does not work and is very slow
        https://bugs.webkit.org/show_bug.cgi?id=77055

        Unreviewed rollout of http://trac.webkit.org/changeset/100751. The refresh rate mechanism is not implemented,
        but it still triggers a very slow codepath and triggers races on some platforms.

        * platform/PlatformScreen.h:
        (WebCore):
        * platform/chromium/PlatformScreenChromium.cpp:
        * platform/chromium/PlatformSupport.h:
        (PlatformSupport):
        ():
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):
        (CCSettings):
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::initializeImplOnImplThread):

2012-01-25  Mark Rowe  <mrowe@apple.com>

        Reapply Daniel Bates's build fix from r105847 after the exact same issue was reintroduced in r105930.
        
        Attempt to fix Mac build after changeset <http://trac.webkit.org/changeset/105930>.
        (https://bugs.webkit.org/show_bug.cgi?id=75049)

        Don't include NotImplemented.h in KURL.h since NotImplemented.h includes Logging.h, which defines
        LOG_CHANNEL_PREFIX to be "Log". And this conflicts with the inclusion of WebKitLogging.h in
        WebHTMLView.mm (which would have defined LOG_CHANNEL_PREFIX to be "WebKitLog").

        * platform/KURL.h:
        (WebCore::KURL::innerURL):

2012-01-25  Eric Seidel  <eric@webkit.org>

        Unreviewed, rolling out r105940.
        http://trac.webkit.org/changeset/105940
        https://bugs.webkit.org/show_bug.cgi?id=76095

        Only half this change landed

        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:

2012-01-25  Mark Rowe  <mrowe@apple.com>

        Build in to an alternate location when USE_STAGING_INSTALL_PATH is set.

        <rdar://problem/10609417> Adopt USE_STAGING_INSTALL_PATH

        Reviewed by David Kilzer.

        * Configurations/WebCore.xcconfig: Define NORMAL_WEBCORE_FRAMEWORKS_DIR, which contains
        the path where WebCore is normally installed. Update WEBCORE_FRAMEWORKS_DIR to point to
        the staged frameworks directory when USE_STAGING_INSTALL_PATH is set. Define
        NORMAL_PRODUCTION_FRAMEWORKS_DIR, which contains the path where our public frameworks
        are normally installed. Update PRODUCTION_FRAMEWORKS_DIR to point to the staged frameworks
        directory when USE_STAGING_INSTALL_PATH is set. Always set the framework's install name
        based on the normal framework location. This prevents an incorrect install name from being
        used when installing in to the staged frameworks directory. Look for our other frameworks
        in the staged frameworks directory when USE_STAGING_INSTALL_PATH is set.

2012-01-25  Eric Seidel  <eric@webkit.org>

        "text" and "URL" legacy clipboard types should not be case sensitive
        https://bugs.webkit.org/show_bug.cgi?id=76947

        Reviewed by Adam Barth.

        This matches the HTML5 spec which says the first thing to do is to lowercase
        the type before comparing.
        I also removed the stripping of whitespace since that is not part of the modern spec (and no tests failed as a result of removal).
        Turns out we already had a test for case sensitivity, but it was disabled on Mac
        so I just re-enabled it and have added failing expectations for the parts
        of the test we still fail.

        * platform/mac/ClipboardMac.mm:
        (WebCore::cocoaTypeFromHTMLClipboardType):
        (WebCore::ClipboardMac::getData):

2012-01-25  Eric Seidel  <eric@webkit.org>

        HTMLIsIndexElement should not expose HTMLInputElement properties
        https://bugs.webkit.org/show_bug.cgi?id=76095

        Reviewed by Adam Barth.

        document.createElement("isindex") should produce an HTMLUnknownElement
        per the HTML5 spec.  The parser automagically translates <isindex> into
        a whole dom tree roughly representing what <isindex> used to do 15 years ago. :)

        This patch just removes our support for HTMLIsIndexElement.  The parser
        support was already in.  Having support for HTMLIsIndexElement was causing
        one of the IE TestCenter tests to fail.

        Test: fast/dom/HTMLIsIndexElement/prototype-chain.html

        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.order:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/gobject/GNUmakefile.am:
        * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
        (WebKit::createHTMLElementWrapper):
        * bindings/objc/DOM.mm:
        (WebCore::createElementClassMap):
        * bindings/objc/DOMHTML.h:
        * bindings/objc/PublicDOMInterfaces.h:
        * html/HTMLElementsAllInOne.cpp:
        * html/HTMLIsIndexElement.cpp: Removed.
        * html/HTMLIsIndexElement.h: Removed.
        * html/HTMLIsIndexElement.idl: Removed.
        * html/HTMLTagNames.in:
        * page/DOMWindow.idl:

2012-01-25  Eric Seidel  <eric@webkit.org>

        HTMLEmbedObject should match HTMLObjectElement by stopping any load when it is removed from beforeload
        https://bugs.webkit.org/show_bug.cgi?id=74360

        Reviewed by Adam Barth.

        Neither of these !renderer() checks is strictly necessary since requestObject()
        makes the same check.  However requestObject() asserts before it makes that
        check, so it makes sense to add the check to HTMLEmebedObject instead of
        removing the check from HTMLObjectElement.
        I also moved the protect RefPtr to before the beforeload dispatch since
        beforeload can remove the whole DOM element (as this test does) and
        thus I beleive the renderer() check could be checking free'd memory.

        Updated fast/dom/beforeload/remove-flash-in-beforeload-listener.html to test
        <embed> as well as <object>.

        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::updateWidget):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::updateWidget):

2012-01-25  Kent Tamura  <tkent@chromium.org>

        Move focus/blur handling code of HTMLInputElement to InputType
        https://bugs.webkit.org/show_bug.cgi?id=76984

        Reviewed by Dimitri Glazkov.

        No new tests. Just a refactoring.

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::handleFocusEvent):
        Move the code to PasswordInputType::handleFocusEvent().
        (WebCore::HTMLInputElement::handleBlurEvent):
        Move the code to TextFieldInputType::handleBlurEvent() and
        PasswordInputType::handleBlurEvent().
        * html/InputType.cpp:
        (WebCore::InputType::handleFocusEvent):
        * html/InputType.h:
        (InputType): Add handleFocusEvent().
        * html/PasswordInputType.cpp:
        (WebCore::PasswordInputType::handleFocusEvent):
        Move the code for type=password from HTMLInputElement::handleFocusEvent().
        (WebCore::PasswordInputType::handleBlurEvent):
        Move the code for tyep=password from HTMLInputElement::handleBlurEvent().
        * html/PasswordInputType.h:
        (PasswordInputType): Add handleFocusEvent() and handleBlurEvent().
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::handleBlurEvent):
        Move the code for text field types from HTMLInputElement::handleBlurEvent().
        * html/TextFieldInputType.h:
        (TextFieldInputType): Add handleBlurEvent().

2012-01-25  Adam Barth  <abarth@webkit.org>

        Node.cpp shouldn't duplicate QualifiedName parsing logic
        https://bugs.webkit.org/show_bug.cgi?id=76672

        Reviewed by Eric Seidel.

        I added this code out of ignorance that this logic already existed in
        Document.cpp.  In a future patch, we should consider moving it to
        QualifiedName.cpp.

        * dom/Node.cpp:
        (WebCore):
        (WebCore::Node::checkSetPrefix):

2012-01-25  Eric Seidel  <eric@webkit.org>

        Share more code between updateWidget implementations in HTMLEmbedElement and HTMLObjectElement
        https://bugs.webkit.org/show_bug.cgi?id=74340

        Reviewed by Adam Barth.

        I'm preparing to unify these two methods, and starting by sharing more code between them.

        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::updateWidget):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::updateWidget):
        * html/HTMLPlugInElement.cpp:
        (WebCore::HTMLPlugInElement::guardedDispatchBeforeLoadEvent):
        * html/HTMLPlugInElement.h:

2012-01-25  Eric Uhrhane  <ericu@chromium.org>

        Add full support for filesystem URLs.
        https://bugs.webkit.org/show_bug.cgi?id=75049

        Reviewed by Adam Barth.

        No new tests; existing layout tests cover the basic functionality, and
        the new functionality won't be there until Chromium adds it.  This patch
        merely enables that, without changing behavior.

        * fileapi/EntryBase.cpp:
        (WebCore::EntryBase::toURL): Add missing escaping of URL path.

        * page/SecurityOrigin.cpp:
        (WebCore::extractInnerURL): Use innerURL member, if it's populated.

        * platform/KURL.h:
        (WebCore::KURL::innerURL): Add innerURL member.

        * platform/KURLGoogle.cpp:
        (WebCore::KURLGooglePrivate::KURLGooglePrivate):
        (WebCore::KURLGooglePrivate::operator=):
        Add copy constructor and operator=, which are now needed since
        m_innerURL needs special handling.
        (WebCore::KURLGooglePrivate::setUtf8):
        (WebCore::KURLGooglePrivate::setAscii):
        Add calls to initInnerURL.
        (WebCore::KURLGooglePrivate::initInnerURL):
        Add method to init/copy m_innerURL.
        (WebCore::KURLGooglePrivate::copyTo):
        Handle m_innerURL during copies.
        (WebCore::encodeWithURLEscapeSequences):
        Unescape %2F ['/'] in paths; it's much more readable, and it's safe.

        * platform/KURLGooglePrivate.h:
        (WebCore::KURLGooglePrivate::innerURL): Add accessor for new m_innerURL.

2012-01-25  Daniel Cheng  <dcheng@chromium.org>

        [chromium] Refactor Clipboard invalidate for DataTransferItem/DataTransferItemList into a wrapper
        https://bugs.webkit.org/show_bug.cgi?id=76993

        We want to unify the backing data store for ClipboardChromium and DataTransferItems. For
        that, we want use a similar representation to DataTransferItem list inside
        ChromiumDataObject.  However, since ChromiumDataObject should be valid in scopes where
        Clipboard is not (e.g. default drag processing), we need to separate the clipboard
        invalidation logic into a wrapper class.

        Reviewed by Tony Chang.

        Covered by existing tests.

        * platform/chromium/ClipboardChromium.cpp:
        ():
        (WebCore::ClipboardChromium::items):
        * platform/chromium/DataTransferItemChromium.cpp:
        (WebCore::DataTransferItemChromium::getAsString):
        * platform/chromium/DataTransferItemListChromium.cpp:
        (WebCore::DataTransferItemListChromium::length):
        (WebCore::DataTransferItemListChromium::item):
        (WebCore::DataTransferItemListChromium::deleteItem):
        (WebCore::DataTransferItemListChromium::clear):
        (WebCore::DataTransferItemListChromium::add):

2012-01-25  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Texmap] Divide TextureMapperNode.cpp to 3 files.
        https://bugs.webkit.org/show_bug.cgi?id=76660

         Reviewed by Kenneth Rohde Christiansen.

         Split the animation part of TextureMapperNode out to a separate file, called
         TextureMapperAnimation.
         Provide a clean interface for that class, that allows separating the internals of the scene
         painting from the internals of the animation interpolation.

         No new tests. Existing animation tests cover this.

         * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::addAnimation):
        (WebCore::GraphicsLayerTextureMapper::pauseAnimation):
        (WebCore::GraphicsLayerTextureMapper::removeAnimation):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (GraphicsLayerTextureMapper):
        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::syncCompositingStateSelf):
        (WebCore::TextureMapperNode::descendantsOrSelfHaveRunningAnimations):
        (WebCore::TextureMapperNode::syncAnimations):
        (WebCore::TextureMapperNode::syncAnimationsRecursively):
        (WebCore::TextureMapperNode::syncCompositingState):
        * platform/graphics/texmap/TextureMapperNode.h:
        (TextureMapperNode):

2012-01-25  Hajime Morita  <morrita@google.com>

        ENABLE_SHADOW_DOM should be available via build-webkit --shadow-dom
        https://bugs.webkit.org/show_bug.cgi?id=76863

        Reviewed by Dimitri Glazkov.

        Added a feature flag.

        No tests, it's a behid flag configuration change.

        * CMakeLists.txt:
        * Configurations/FeatureDefines.xcconfig:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:

2012-01-25  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r105906.
        http://trac.webkit.org/changeset/105906
        https://bugs.webkit.org/show_bug.cgi?id=77038

        Breaks compositing/visibility/layer-visible-content.html and
        compositing/visibility/visibility-image-layers-dynamic.html
        (Requested by leviw|gardening on #webkit).

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

2012-01-25  Mike Fenton  <mifenton@rim.com>

        Page Up and Page Down mappings are backwards on BlackBerry port.
        https://bugs.webkit.org/show_bug.cgi?id=77021

        Fix Page Up and Page Down mappings as they are reversed.

        Reviewed by Antonio Gomes.

        * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
        (WebCore::keyIdentifierForBlackBerryCharacter):
        (WebCore::windowsKeyCodeForBlackBerryCharacter):

2012-01-25  Hajime Morita  <morrita@google.com>

        <content> should create HTMLContentElement object
        https://bugs.webkit.org/show_bug.cgi?id=76439

        Reviewed by Dimitri Glazkov.

        - Added HTMLContentElement.idl which has @select attribute.
        - Added "content" element.

        Both are behind ENABLE_SHADOW_DOM.

        Tests: fast/dom/shadow/content-element-api.html
               fast/dom/shadow/content-element-outside-shadow.html

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * html/HTMLTagNames.in:
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::contentTagName):
        (WebCore):
        (WebCore::HTMLContentElement::create):
        * html/shadow/HTMLContentElement.h:
        (HTMLContentElement):
        * html/shadow/HTMLContentElement.idl: Added.

2012-01-25  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r105828.
        http://trac.webkit.org/changeset/105828
        https://bugs.webkit.org/show_bug.cgi?id=77036

        Caused many crashes in ClusterFuzz and PerformanceTests
        (Requested by inferno-sec on #webkit).

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::removeChild):
        * rendering/RenderBlock.h:
        (RenderBlock):

2012-01-25  Shawn Singh  <shawnsingh@chromium.org>

        Fix the semantics of passing contentsVisible flag to GraphicsLayers
        https://bugs.webkit.org/show_bug.cgi?id=76975

        Reviewed by Simon Fraser.

        This patch is covered by existing tests, in particular
        compositing/visibility/layer-visible-content.html; its
        expectations are rebaselined.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

2012-01-25  Tony Chang  <tony@chromium.org>

        support overflow:auto and overflow:scroll in new flexbox
        https://bugs.webkit.org/show_bug.cgi?id=76953

        Reviewed by David Hyatt.

        Tests: css3/flexbox/flexbox-overflow-auto-expected.html
               css3/flexbox/flexbox-overflow-auto.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::addLayoutOverflow): In the case of reverse flexboxen, we can overflow up or to the left (like horizontal-bt or rtl content).
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock): Call updateScrollInfoAfterLayout() to add overflow scrollbars.
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): In row-reverse, offset the start of the content by the scrollbar.
        (WebCore::RenderFlexibleBox::layoutColumnReverse): In column-reverse, offset the start of the content by the scrollbar.
        * rendering/RenderFlexibleBox.h:
        (RenderFlexibleBox): Make isHorizontalFlow public.
        * rendering/style/RenderStyle.h:
        (WebCore::RenderStyleBitfields::isReverseFlexDirection): Convenience method.

2012-01-25  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r105885.
        http://trac.webkit.org/changeset/105885
        https://bugs.webkit.org/show_bug.cgi?id=77027

        Causes assertions in Position. (Requested by leviw|gardening
        on #webkit).

        * dom/Position.cpp:
        (WebCore::Position::upstream):
        (WebCore::Position::downstream):
        * dom/PositionIterator.cpp:
        * dom/PositionIterator.h:
        (PositionIterator):
        * editing/htmlediting.cpp:
        (WebCore::nextCandidate):
        (WebCore::nextVisuallyDistinctCandidate):
        (WebCore::previousCandidate):
        (WebCore::previousVisuallyDistinctCandidate):

2012-01-25  Alexis Menard  <alexis.menard@openbossa.org>

        border-image should be implemented like a shorthand.
        https://bugs.webkit.org/show_bug.cgi?id=76697

        Reviewed by Tony Chang.

        Make sure that border-image is implemented like a shorthand : when we parse
        it we set the correct value to its longhands. The code was not doing it
        previously as we inherited the old implementation of -webkit-border-image which
        is not a shorthand but a regular property. It will then increase
        style.length for a given element as we now expand the longhands.
        The behavior stays the same for -webkit-border-image.

        Test: fast/css/border-image-style-length.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::BorderImageParseContext::BorderImageParseContext):
        (WebCore::BorderImageParseContext::commitWebKitBorderImage):
        (WebCore::BorderImageParseContext::commitBorderImage):
        (BorderImageParseContext):
        (WebCore::BorderImageParseContext::commitBorderImageProperty):
        (WebCore::CSSParser::parseBorderImage):
        * css/CSSParser.h:
        ():
        * css/CSSPropertyLonghand.cpp:
        (WebCore::initShorthandMap):
        * css/CSSStyleApplyProperty.cpp:
        ():
        (WebCore::ApplyPropertyExpanding::applyInheritValue):
        (WebCore::ApplyPropertyExpanding::applyInitialValue):
        (WebCore::ApplyPropertyExpanding::applyValue):
        (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::mapNinePieceImage):
        * page/animation/AnimationBase.cpp:
        (WebCore::AnimationBase::ensurePropertyMap):
        (WebCore::addShorthandProperties):
        * rendering/style/RenderStyle.h:
        (WebCore::RenderStyleBitfields::borderImageSlices):
        (WebCore::RenderStyleBitfields::borderImageWidth):
        (WebCore::RenderStyleBitfields::borderImageOutset):
        (RenderStyleBitfields):
        (WebCore::RenderStyleBitfields::setBorderImageSlices):
        (WebCore::RenderStyleBitfields::setBorderImageWidth):
        (WebCore::RenderStyleBitfields::setBorderImageOutset):

2012-01-23  MORITA Hajime  <morrita@google.com>

        [Refactoring][Internals] Should have InternalSettings
        https://bugs.webkit.org/show_bug.cgi?id=76424

        Reviewed by Kent Tamura.

        This change extracted setting related method from window.internals
        to window.internals.settings object.
        - Invoked Internals::reset() in the constructor to employ Document object.
        - Moved setting and configuration related Internals methods to
          newly introduced InternalSettings object.

        No new tests, covered by existing tests.

        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * WebCore.vcproj/WebCoreTestSupport.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * testing/InternalSettings.cpp: Added.
        (WebCore::InternalSettings::create):
        (WebCore::InternalSettings::~InternalSettings):
        (WebCore::InternalSettings::InternalSettings):
        (WebCore::InternalSettings::settings):
        (WebCore::InternalSettings::document):
        (WebCore::InternalSettings::page):
        (WebCore::InternalSettings::setInspectorResourcesDataSizeLimits):
        (WebCore::InternalSettings::setForceCompositingMode):
        (WebCore::InternalSettings::setAcceleratedFiltersEnabled):
        (WebCore::InternalSettings::setEnableCompositingForFixedPosition):
        (WebCore::InternalSettings::setEnableCompositingForScrollableFrames):
        (WebCore::InternalSettings::setAcceleratedDrawingEnabled):
        (WebCore::InternalSettings::setEnableScrollAnimator):
        (WebCore::InternalSettings::setZoomAnimatorTransform):
        (WebCore::InternalSettings::setZoomParameters):
        (WebCore::InternalSettings::setMockScrollbarsEnabled):
        (WebCore::InternalSettings::setPasswordEchoEnabled):
        (WebCore::InternalSettings::setPasswordEchoDurationInSeconds):
        (WebCore::InternalSettings::setShouldLayoutFixedElementsRelativeToFrame):
        (WebCore::InternalSettings::setUnifiedTextCheckingEnabled):
        (WebCore::InternalSettings::unifiedTextCheckingEnabled):
        (WebCore::InternalSettings::pageScaleFactor):
        (WebCore::InternalSettings::setPageScaleFactor):
        (WebCore::InternalSettings::setPerTileDrawingEnabled):
        * testing/InternalSettings.h: Added.
        * testing/InternalSettings.idl: Added.
        * testing/Internals.cpp:
        (WebCore::Internals::create):
        (WebCore::Internals::Internals):
        (WebCore::Internals::reset):
        * testing/Internals.h:
        (WebCore::Internals::settings):
        * testing/Internals.idl:
        * testing/js/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::injectInternalsObject):
        * testing/v8/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::injectInternalsObject):

2012-01-25  Alexis Menard  <alexis.menard@openbossa.org>

        border-image should not crash when the source is not specified.
        https://bugs.webkit.org/show_bug.cgi?id=77001

        Reviewed by Andreas Kling.

        This bug was introduced by r105502 but was exposed by r105738.
        The image-source of a border-image is not mandatory therefore it
        may happen that you have no value set for it. WebCore::createBorderImageValue
        was wrongly assuming that the image is always set. This problem also required a bit
        of refactoring in CSSStyleSelector::mapNinePieceImage to take into account that
        the image could be optional (just like other properties).

        Test: fast/css/border-image-null-image-crash.html

        * css/CSSBorderImage.cpp:
        (WebCore::createBorderImageValue):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::mapNinePieceImage):

2012-01-25  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        [Qt] Implement tap feedback respecting -webkit-tap-highlight-color
        https://bugs.webkit.org/show_bug.cgi?id=76914

        Reviewed by Simon Hausmann.

        Implement highlighting of dom nodes with a rounded rect, respecting
        the color of -webkit-tap-highlight-color and any transform applied
        to the element.

        Tested with manual test.

        * Target.pri:
        * page/GestureTapHighlighter.cpp: Added.
        (WebCore::GestureTapHighlighter::pathForNodeHighlight):
        * page/GestureTapHighlighter.h: Added.

2012-01-25  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Need to distinguish key paths that don't yield value vs. yield invalid key
        https://bugs.webkit.org/show_bug.cgi?id=76487

        Implement the precondition checks for IDBObjectStore.add/put operations: raise an error
        if there is a key generator (autoIncrement) and the path yields a value and the value
        is not a valid key; raise an error if any of the index key paths yield a value which
        is not a valid key.

        Reviewed by Tony Chang.

        Tests: storage/indexeddb/keypath-edges.html
               storage/indexeddb/objectstore-basics.html

        * storage/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::put):

2012-01-25  Yong Li  <yoli@rim.com>

        https://bugs.webkit.org/show_bug.cgi?id=65377
        Skip the entire node when it is right to do so, instead of stepping
        through every character, so we save CPU time on checking every position
        unnecessarily.

        Reviewed by Darin Adler.

        Test: perf/selection-skip-hidden-node.html

        * dom/Position.cpp:
        (WebCore::Position::upstream):
        (WebCore::Position::downstream):
        * dom/PositionIterator.cpp:
        (WebCore::PositionIterator::moveToLeafNodeStart):
        (WebCore::PositionIterator::moveToLeafNodeEnd):
        * dom/PositionIterator.h:
        * editing/htmlediting.cpp:
        (WebCore::nextCandidate):
        (WebCore::nextVisuallyDistinctCandidate):
        (WebCore::previousCandidate):
        (WebCore::previousVisuallyDistinctCandidate):

2012-01-25  Kaustubh Atrawalkar  <kaustubh@motorola.com>

        Remove unnecessary member variable from PluginView.
        https://bugs.webkit.org/show_bug.cgi?id=76909

        Reviewed by Adam Roben.

        No new tests needed.

        * plugins/PluginView.cpp:
        (WebCore::PluginView::getURLNotify):
        (WebCore::PluginView::getURL):
        (WebCore::PluginView::PluginView):
        (WebCore::PluginView::handlePost):
        (WebCore::PluginView::getValueForURL):
        (WebCore::PluginView::setValueForURL):
        * plugins/PluginView.h:

2012-01-25  Yael Aharon  <yael.aharon@nokia.com>

        [Qt] Build fix when using force_static_libs_as_shared
        https://bugs.webkit.org/show_bug.cgi?id=76832

        Reviewed by Simon Hausmann.

        Add a dependency on QtWidgets, when compiling against Qt5.

        No new tests. This is a build fix.

        * Target.pri:

2012-01-25  Sami Kyostila  <skyostil@chromium.org>

        Clipping of render layer boundaries does not take page scale into account
        https://bugs.webkit.org/show_bug.cgi?id=76850

        Reviewed by Simon Fraser.

        When inserting render layers into the compositor's overlap map, the
        layer boundaries are clipped against any potential parent clip rects.
        The clip rects are given in CSS coordinates, while the render layer
        boundaries are in scaled CSS coordinates, so the result is incorrect.
        This patch scales the clip rects before calculating the intersection.

        Test: compositing/overflow/overflow-scaled-descendant-overlapping.html

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::addToOverlapMap):

2012-01-25  Stephen Chenney  <schenney@chromium.org>

        Linecaps wrong for zero length lines
        https://bugs.webkit.org/show_bug.cgi?id=71820

        Reviewed by Nikolas Zimmermann.

        Total reworking of the method used to draw zero-length linecaps for
        SVG. This patch works for all zero length sub-paths.

        Tests: svg/stroke/zero-length-path-linecap-rendering.svg
               svg/stroke/zero-length-subpaths-linecap-rendering.svg

        * rendering/svg/RenderSVGShape.cpp: Significant refactoring to enable
          new implementation and clarify code.
        (WebCore::RenderSVGShape::createShape):
        (WebCore::RenderSVGShape::strokeContains):
        (WebCore::RenderSVGShape::shouldStrokeZeroLengthSubpath):
        (WebCore::RenderSVGShape::zeroLengthSubpathRect):
        (WebCore::RenderSVGShape::zeroLengthLinecapPath):
        (WebCore::RenderSVGShape::nonScalingStrokePath):
        (WebCore::RenderSVGShape::setupNonScalingStrokeTransform):
        (WebCore::RenderSVGShape::fillShape):
        (WebCore::RenderSVGShape::strokePath):
        (WebCore::RenderSVGShape::fillAndStrokePath):
        (WebCore::RenderSVGShape::updateCachedBoundaries):
        (WebCore::RenderSVGShape::processZeroLengthSubpaths):
        * rendering/svg/RenderSVGShape.h: Declarations for new methods.
        * rendering/svg/SVGSubpathData.h: Class for finding zero length subpaths.
        * svg/SVGPathBuilder.h: Fix typos
        * svg/SVGPathConsumer.h: Fix typos
        * svg/SVGPathSegListBuilder.h: Fix typos
        * svg/SVGPathTraversalStateBuilder.h: Fix typos

2012-01-23  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: show memory counter graphs in timeline panel
        https://bugs.webkit.org/show_bug.cgi?id=76843

        Timeline panel is extended with several graphs depicting total node count,
        number of DOM groups and event listeners. This feature is hidden behind
        experimental setting.

        Reviewed by Pavel Feldman.

        * English.lproj/localizedStrings.js:
        * inspector/Inspector.json:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::setDomCountersEnabled):
        (WebCore::InspectorTimelineAgent::didCallFunction):
        (WebCore::InspectorTimelineAgent::didDispatchEvent):
        (WebCore::InspectorTimelineAgent::didWriteHTML):
        (WebCore::InspectorTimelineAgent::didFireTimer):
        (WebCore::InspectorTimelineAgent::didEvaluateScript):
        (WebCore::InspectorTimelineAgent::setHeapSizeStatistic):
        (WebCore::InspectorTimelineAgent::collectDomCounters):
        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
        * inspector/InspectorTimelineAgent.h:
        (WebCore::InspectorTimelineAgent::create):
        * inspector/TimelineRecordFactory.cpp:
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel):
        (WebInspector.MemoryStatistics):
        (WebInspector.MemoryStatistics.prototype.setTopPosition):
        (WebInspector.MemoryStatistics.prototype.setSidebarWidth):
        (WebInspector.MemoryStatistics.prototype._sidebarResized):
        (WebInspector.MemoryStatistics.prototype._updateSize):
        (WebInspector.MemoryStatistics.prototype._updateSidebarSize):
        (WebInspector.MemoryStatistics.prototype._createCounterSidebarElement):
        (WebInspector.MemoryStatistics.prototype.addTimlineEvent):
        (WebInspector.MemoryStatistics.prototype._draw.getGroupCount):
        (WebInspector.MemoryStatistics.prototype._draw.getNodeCount):
        (WebInspector.MemoryStatistics.prototype._draw.getListenerCount):
        (WebInspector.MemoryStatistics.prototype._draw):
        (WebInspector.MemoryStatistics.prototype._calculateVisibleIndexes):
        (WebInspector.MemoryStatistics.prototype._onMouseOver):
        (WebInspector.MemoryStatistics.prototype._refreshCurrentValues):
        (WebInspector.MemoryStatistics.prototype.visible):
        (WebInspector.MemoryStatistics.prototype.show):
        (WebInspector.MemoryStatistics.prototype.refresh):
        (WebInspector.MemoryStatistics.prototype.hide):
        (WebInspector.MemoryStatistics.prototype._setVerticalClip):
        (WebInspector.MemoryStatistics.prototype._calculateXValues):
        (WebInspector.MemoryStatistics.prototype._drawPolyline):
        (WebInspector.MemoryStatistics.prototype._drawBottomBound):
        (WebInspector.MemoryStatistics.prototype._clear):
        (WebInspector.TimelinePanel.prototype._startSplitterDragging):
        (WebInspector.TimelinePanel.prototype._splitterDragging):
        (WebInspector.TimelinePanel.prototype._endSplitterDragging):
        (WebInspector.TimelinePanel.prototype._setSplitterPosition):
        (WebInspector.TimelinePanel.prototype.get statusBarItems):
        (WebInspector.TimelinePanel.prototype._createStatusbarButtons):
        (WebInspector.TimelinePanel.prototype._toggleMemoryStatistics):
        (WebInspector.TimelinePanel.prototype._onTimelineEventRecorded):
        (WebInspector.TimelinePanel.prototype.sidebarResized):
        (WebInspector.TimelinePanel.prototype._refresh):
        * inspector/front-end/timelinePanel.css:
        (#timeline-memory-splitter):
        (#memory-counters-graph):
        (#memory-graphs-container):
        (#memory-graphs-container .split-view-contents):
        (.timeline-marker):
        (.memory-counter-sidebar-info):
        (.memory-counter-sidebar-info.bottom-border-visible):

2012-01-25  Joseph Pecoraro  <pecoraro@apple.com>

        <http://webkit.org/b/76941> Web Inspector: Remove Unused InspectorFrontendHost.search Stub

        Reviewed by Pavel Feldman.

        * inspector/front-end/InspectorFrontendHostStub.js:

2012-01-25  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed inspector style fix.

        * inspector/front-end/tabbedPane.css:
        (.tabbed-pane-header-tab-close-button):
        (select.tabbed-pane-header-tabs-drop-down-select):

2012-01-25  Pablo Flouret  <pablof@motorola.com>

        Fix incorrect behavior in HTMLCollection.prototype.item().
        https://bugs.webkit.org/show_bug.cgi?id=74468

        Reviewed by Adam Barth.

        HTMLCollection.prototype.item("someString") was falling back to
        .namedItem("someString"), which is wrong per spec. Also align the
        handling of various other types of objects passed as the argument with
        the spec and the rest of the browsers.

        Test: fast/dom/collection-item.html

        * bindings/js/JSHTMLCollectionCustom.cpp: Remove custom implementation of item().
        * bindings/v8/custom/V8HTMLCollectionCustom.cpp: Ditto.
        * html/HTMLCollection.idl: Remove [Custom] in item(), it's not needed.

2012-01-25  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r105858.
        http://trac.webkit.org/changeset/105858
        https://bugs.webkit.org/show_bug.cgi?id=77004

        It made many tests crash on Qt (Requested by Ossy on #webkit).

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::addAnimation):
        (WebCore::GraphicsLayerTextureMapper::pauseAnimation):
        (WebCore::GraphicsLayerTextureMapper::removeAnimation):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (GraphicsLayerTextureMapper):
        * platform/graphics/texmap/TextureMapperAnimation.cpp: Removed.
        * platform/graphics/texmap/TextureMapperAnimation.h: Removed.
        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::syncCompositingStateSelf):
        (WebCore::TextureMapperNode::descendantsOrSelfHaveRunningAnimations):
        (WebCore::normalizedAnimationValue):
        (WebCore):
        (WebCore::TextureMapperNode::applyOpacityAnimation):
        (WebCore::solveEpsilon):
        (WebCore::solveCubicBezierFunction):
        (WebCore::solveStepsFunction):
        (WebCore::applyTimingFunction):
        (WebCore::TextureMapperNode::applyTransformAnimation):
        (WebCore::TextureMapperNode::applyAnimationFrame):
        (WebCore::TextureMapperNode::applyAnimation):
        (WebCore::TextureMapperNode::hasOpacityAnimation):
        (WebCore::TextureMapperNode::hasTransformAnimation):
        (WebCore::TextureMapperNode::syncAnimations):
        (WebCore::TextureMapperNode::syncAnimationsRecursively):
        (WebCore::TextureMapperNode::syncCompositingState):
        (WebCore::TextureMapperAnimation::TextureMapperAnimation):
        * platform/graphics/texmap/TextureMapperNode.h:
        (TextureMapperAnimation):
        (WebCore::TextureMapperAnimation::create):
        (WebCore):
        (TextureMapperNode):

2012-01-25  Kenichi Ishibashi  <bashi@chromium.org>

        fast/text/unicode-variation-selector.html doesn't pass on Lion
        https://bugs.webkit.org/show_bug.cgi?id=76041

        Reviewed by Dan Bernstein.

        Consumes non-BMP marks in advanceByCombiningCharacterSequence() to take into
        account Ideographic variation selectors (these are non-BMP marks).

        No new tests. fast/text/unicode-variation-selector.html should pass on Lion.

        * platform/graphics/mac/ComplexTextController.cpp:
        (WebCore::advanceByCombiningCharacterSequence): Use Unicode code point
        to iterate the loop which consumes marks.

2012-01-25  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: DetailedHeapSnapshot: adjust node name cell format for the retainers tree.
        https://bugs.webkit.org/show_bug.cgi?id=76989

        Reviewed by Pavel Feldman.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/DetailedHeapshotGridNodes.js:
        (WebInspector.HeapSnapshotGenericObjectNode.prototype._createObjectCell):
        (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
        (WebInspector.HeapSnapshotObjectNode):
        (WebInspector.HeapSnapshotObjectNode.prototype._prefixObjectCell):
        (WebInspector.HeapSnapshotObjectNode.prototype._postfixObjectCell):
        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshotEdgesProvider.prototype._serialize):

2012-01-25  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [InspectorIndexedDB] Pass Database, object stores and indexes meta information to frontend.
        https://bugs.webkit.org/show_bug.cgi?id=76711

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector.json:
        * inspector/InspectorIndexedDBAgent.cpp:
        (WebCore):
        (WebCore::assertDocument):
        (WebCore::assertIDBFactory):
        (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
        (WebCore::InspectorIndexedDBAgent::requestDatabase):
        * inspector/InspectorIndexedDBAgent.h:
        (InspectorIndexedDBAgent):
        * inspector/front-end/IndexedDBModel.js:
        (WebInspector.IndexedDBModel):
        (WebInspector.IndexedDBModel.prototype._frameDetached):
        (WebInspector.IndexedDBModel.prototype._reset):
        (WebInspector.IndexedDBModel.prototype._originAddedToFrame):
        (WebInspector.IndexedDBModel.prototype._originRemovedFromFrame):
        (WebInspector.IndexedDBModel.prototype._originRemoved):
        (WebInspector.IndexedDBModel.prototype._updateOriginDatabaseNames):
        (WebInspector.IndexedDBModel.prototype._databaseRemoved):
        (WebInspector.IndexedDBModel.prototype._loadDatabaseNamesForFrame):
        (WebInspector.IndexedDBModel.prototype._loadDatabase):
        (WebInspector.IndexedDBModel.Frame):
        (WebInspector.IndexedDBModel.Database):
        (WebInspector.IndexedDBModel.ObjectStore):
        (WebInspector.IndexedDBModel.ObjectStoreIndex):
        (WebInspector.IndexedDBRequestManager.prototype._databaseNamesLoaded):
        (WebInspector.IndexedDBRequestManager.prototype.requestDatabase.innerCallback):
        (WebInspector.IndexedDBRequestManager.prototype.requestDatabase):
        (WebInspector.IndexedDBRequestManager.prototype._databaseLoaded):
        (WebInspector.IndexedDBRequestManager.prototype._frameDetached):
        (WebInspector.IndexedDBRequestManager.prototype._databaseRemoved):
        (WebInspector.IndexedDBRequestManager.prototype._reset):
        (WebInspector.IndexedDBRequestManager.DatabaseRequest):
        (WebInspector.IndexedDBDispatcher.prototype.databaseNamesLoaded):
        (WebInspector.IndexedDBDispatcher.prototype.databaseLoaded):

2012-01-25  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py: add optional runtime validator
        https://bugs.webkit.org/show_bug.cgi?id=76676

        Reviewed by Yury Semikhatsky.

        Generator algorithm is redone significantly.

        * inspector/CodeGeneratorInspector.py:
        (RawTypes.BaseType):
        (RawTypes.BaseType.request_raw_internal_runtime_cast):
        (RawTypes.BaseType.generate_validate_method_impl):
        (RawTypes):
        (RawTypes.generate_validate_methods):
        (RawTypes.String):
        (RawTypes.String.generate_validate_method):
        (RawTypes.String.get_raw_validator_call_text):
        (RawTypes.Int):
        (RawTypes.Int.generate_validate_method):
        (RawTypes.Int.get_raw_validator_call_text):
        (RawTypes.Number):
        (RawTypes.Number.generate_validate_method):
        (RawTypes.Number.get_raw_validator_call_text):
        (RawTypes.Bool):
        (RawTypes.Bool.generate_validate_method):
        (RawTypes.Bool.get_raw_validator_call_text):
        (RawTypes.Object):
        (RawTypes.Object.generate_validate_method):
        (RawTypes.Object.get_raw_validator_call_text):
        (RawTypes.Any):
        (RawTypes.Any.generate_validate_method):
        (RawTypes.Any.get_raw_validator_call_text):
        (RawTypes.Array):
        (RawTypes.Array.generate_validate_method):
        (RawTypes.Array.get_raw_validator_call_text):
        (TypeBindings.create_named_type_declaration.Helper):
        (TypeBindings.create_ad_hoc_type_declaration.Helper):
        (TypeBindings.create_type_declaration_.EnumBinding):
        (TypeBindings.create_type_declaration_.EnumBinding.resolve_inner):
        (TypeBindings.create_type_declaration_.EnumBinding.request_user_runtime_cast):
        (TypeBindings.create_type_declaration_.EnumBinding.request_internal_runtime_cast):
        (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator):
        (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.generate_type_builder):
        (TypeBindings.create_type_declaration_.EnumBinding.get_validator_call_text):
        (TypeBindings.create_type_declaration_.EnumBinding.get_in_c_type_text):
        (TypeBindings.create_type_declaration_.PlainString):
        (TypeBindings.create_type_declaration_.PlainString.resolve_inner):
        (TypeBindings.create_type_declaration_.PlainString.request_user_runtime_cast):
        (TypeBindings.create_type_declaration_.PlainString.request_internal_runtime_cast):
        (TypeBindings.create_type_declaration_.PlainString.get_validator_call_text):
        (TypeBindings.create_type_declaration_.TypedefString):
        (TypeBindings.create_type_declaration_.TypedefString.resolve_inner):
        (TypeBindings.create_type_declaration_.TypedefString.request_user_runtime_cast):
        (TypeBindings.create_type_declaration_.TypedefString.request_internal_runtime_cast):
        (TypeBindings.create_type_declaration_.TypedefString.get_code_generator.CodeGenerator.generate_type_builder):
        (TypeBindings.create_type_declaration_.TypedefString.get_validator_call_text):
        (TypeBindings.create_type_declaration_.TypedefString.get_in_c_type_text):
        (TypeBindings.create_type_declaration_.ClassBinding):
        (TypeBindings.create_type_declaration_.ClassBinding.resolve_inner):
        (TypeBindings.create_type_declaration_.ClassBinding.resolve_inner.PropertyData):
        (TypeBindings.create_type_declaration_.ClassBinding.resolve_inner.ResolveData):
        (TypeBindings.create_type_declaration_.ClassBinding.request_user_runtime_cast):
        (TypeBindings.create_type_declaration_.ClassBinding.request_internal_runtime_cast):
        (TypeBindings.create_type_declaration_.ClassBinding.get_code_generator):
        (TypeBindings.create_type_declaration_.ClassBinding.get_code_generator.CodeGenerator.generate_type_builder):
        (get_validator_call_text):
        (get_in_c_type_text):
        (AdHocTypeContextImpl):
        (AdHocTypeContextImpl.__init__):
        (AdHocTypeContextImpl.get_type_name_fix):
        (AdHocTypeContextImpl.get_type_name_fix.NameFix):
        (AdHocTypeContextImpl.get_type_name_fix.NameFix.output_comment):
        (AdHocTypeContextImpl.add_type):
        (PlainObjectBinding):
        (PlainObjectBinding.resolve_inner):
        (PlainObjectBinding.request_user_runtime_cast):
        (PlainObjectBinding.request_internal_runtime_cast):
        (PlainObjectBinding.get_validator_call_text):
        (ArrayBinding):
        (ArrayBinding.resolve_inner):
        (ArrayBinding.resolve_inner.AdHocTypeContext):
        (ArrayBinding.resolve_inner.AdHocTypeContext.get_type_name_fix):
        (ArrayBinding.resolve_inner.AdHocTypeContext.get_type_name_fix.NameFix):
        (ArrayBinding.resolve_inner.AdHocTypeContext.get_type_name_fix.NameFix.output_comment):
        (ArrayBinding.resolve_inner.AdHocTypeContext.add_type):
        (ArrayBinding.resolve_inner.ResolveData):
        (ArrayBinding.request_user_runtime_cast):
        (ArrayBinding.request_internal_runtime_cast):
        (ArrayBinding.get_code_generator):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder):
        (ArrayBinding.get_validator_call_text):
        (ArrayBinding.get_in_c_type_text):
        (RawTypeBinding.resolve_inner):
        (RawTypeBinding):
        (RawTypeBinding.request_user_runtime_cast):
        (RawTypeBinding.request_internal_runtime_cast):
        (RawTypeBinding.get_validator_call_text):
        (TypeData.get_name):
        (TypeData):
        (TypeData.get_domain_name):
        (resolve_param_type):
        (NeedRuntimeCastRequest):
        (NeedRuntimeCastRequest.__init__):
        (NeedRuntimeCastRequest.acknowledge):
        (NeedRuntimeCastRequest.is_acknowledged):
        (resolve_all_types):
        (resolve_all_types.ForwardListener):
        (resolve_all_types.ForwardListener.add_type_data):
        (resolve_all_types.ResolveContext):
        (Generator):
        (Generator.go):
        (Generator.process_event):
        (Generator.process_event.AdHocTypeContext):
        (Generator.process_event.AdHocTypeContext.add_type):
        (Generator.process_event.EventForwardListener):
        (Generator.process_event.EventForwardListener.add_type_data):
        (Generator.process_event.EventResolveContext):
        (Generator.process_event.EventGenerateContext):
        (Generator.process_types.GenerateContext):
        (Generator.process_types.create_type_builder_caller.call_type_builder):
        (Generator.process_types.generate_forward_callback):
        * inspector/InspectorValues.h:
        (WebCore::InspectorObject::size):

2012-01-25  Anton Muhin  <antonm@chromium.org>

        Unreview manual revert of r105843.

        * fileapi/EntryBase.cpp:
        (WebCore::EntryBase::toURL):
        * page/SecurityOrigin.cpp:
        (WebCore::extractInnerURL):
        * platform/KURL.h:
        (KURL):
        * platform/KURLGoogle.cpp:
        (WebCore):
        (WebCore::KURLGooglePrivate::setUtf8):
        (WebCore::KURLGooglePrivate::setAscii):
        (WebCore::KURLGooglePrivate::initProtocolIsInHTTPFamily):
        (WebCore::KURLGooglePrivate::copyTo):
        (WebCore::encodeWithURLEscapeSequences):
        * platform/KURLGooglePrivate.h:
        (KURLGooglePrivate):

2012-01-25  Noel Gordon  <noel.gordon@gmail.com>

        Use maximum image dimension definition from libwebp
        https://bugs.webkit.org/show_bug.cgi?id=76980

        Reviewed by Kent Tamura.

        No new tests, no change in behavior.

        * platform/image-encoders/skia/WEBPImageEncoder.cpp:
        (WebCore::encodePixels): s/WEBP_MAX_DIMENSION/WEBPImageEncoder::MaximumImageDimension/
        * platform/image-encoders/skia/WEBPImageEncoder.h:
        (): Remove local definition of the maximum webp image dimension

2012-01-25  Noel Gordon  <noel.gordon@gmail.com>

        JPEGDecoder should use imageDecoder colorProfile helpers
        https://bugs.webkit.org/show_bug.cgi?id=76968
        
        Reviewed by Adam Barth.

        No new tests. Cover by existing tests, in particular:
          fast/images/ycbcr-with-cmyk-color-profile.html
          fast/images/gray-scale-jpeg-with-color-profile.html
          fast/images/cmyk-jpeg-with-color-profile.html
          fast/images/color-jpeg-with-color-profile.html

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: white-space removals via Xcode.
        (WebCore::readColorProfile):  Use ImageDecoder.h color profile helper routines.
        (WebCore::JPEGImageReader::JPEGImageReader):
        (WebCore::JPEGImageReader::decode):

2012-01-25  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Texmap] Divide TextureMapperNode.cpp to 3 files.
        https://bugs.webkit.org/show_bug.cgi?id=76660

        Reviewed by Kenneth Rohde Christiansen.

        Split the animation part of TextureMapperNode out to a separate file, called
        TextureMapperAnimation.
        Provide a clean interface for that class, that allows separating the internals of the scene
        painting from the internals of the animation interpolation.

        No new tests. Existing animation tests cover this.

        * GNUmakefile.list.am: Added new TextureMapper-related files.
        * Target.pri: Added new TextureMapper-related files.
        * WebCore.gypi: Added new TextureMapper-related files.
        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::addAnimation):
        (WebCore::GraphicsLayerTextureMapper::pauseAnimation):
        (WebCore::GraphicsLayerTextureMapper::removeAnimation):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        * platform/graphics/texmap/TextureMapperAnimation.cpp: Added.
        * platform/graphics/texmap/TextureMapperAnimation.h: Added.
        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::syncCompositingStateSelf):
        (WebCore::TextureMapperNode::descendantsOrSelfHaveRunningAnimations):
        (WebCore::TextureMapperNode::syncAnimations):
        (WebCore::TextureMapperNode::syncAnimationsRecursively):
        (WebCore::TextureMapperNode::syncCompositingState):
        * platform/graphics/texmap/TextureMapperNode.h:

2012-01-25  Roland Steiner  <rolandsteiner@chromium.org>

        <style scoped>: Implement registering of <style scoped> with the scoping element
        https://bugs.webkit.org/show_bug.cgi?id=67790

        Implement registering of a <style> element with its parent element if the 'scoped' attribute is set.
        Update the registration whenever the 'scoped' attribute is changed,
        or the <style> element eneters or leaves the tree.

        Also, extend windows.internals to allow for testing of the registration ref-counting.

        Reviewed by Dimitri Glazkov.

        Test: fast/css/style-scoped/registering.html

        * WebCore.exp.in:
        * dom/Element.cpp:
        (WebCore::Element::hasScopedHTMLStyleChild):
        (WebCore::Element::numberOfScopedHTMLStyleChildren):
        (WebCore::Element::registerScopedHTMLStyleChild):
        (WebCore::Element::unregisterScopedHTMLStyleChild):
        * dom/Element.h:
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::ElementRareData):
        (WebCore::ElementRareData::registerScopedHTMLStyleChild):
        (WebCore::ElementRareData::unregisterScopedHTMLStyleChild):
        (WebCore::ElementRareData::hasScopedHTMLStyleChild):
        (WebCore::ElementRareData::numberOfScopedHTMLStyleChildren):
        * html/HTMLStyleElement.cpp:
        (WebCore::HTMLStyleElement::HTMLStyleElement):
        (WebCore::HTMLStyleElement::~HTMLStyleElement):
        (WebCore::HTMLStyleElement::parseMappedAttribute):
        (WebCore::HTMLStyleElement::registerWithScopingNode):
        (WebCore::HTMLStyleElement::unregisterWithScopingNode):
        (WebCore::HTMLStyleElement::insertedIntoDocument):
        (WebCore::HTMLStyleElement::removedFromDocument):
        (WebCore::HTMLStyleElement::willRemove):
        * html/HTMLStyleElement.h:
        * testing/Internals.cpp:
        (WebCore::Internals::numberOfScopedHTMLStyleChildren):
        * testing/Internals.h:
        * testing/Internals.idl:

2012-01-24  Daniel Bates  <dbates@webkit.org>

        Attempt to fix Mac build after changeset <http://trac.webkit.org/changeset/105843>
        (https://bugs.webkit.org/show_bug.cgi?id=75049)

        Don't include NotImplemented.h in KURL.h since NotImplemented.h includes Logging.h, which defines
        LOG_CHANNEL_PREFIX to be "Log". And this conflicts with the inclusion of WebKitLogging.h in
        WebHTMLView.mm (which would have defined LOG_CHANNEL_PREFIX to be "WebKitLog").

        * platform/KURL.h:
        (WebCore::KURL::innerURL):

2012-01-24  Vangelis Kokkevis  <vangelis@chromium.org>

        [chromium] Ignore m_skipsDraw in TiledLayerChromium::drawsContent()
        https://bugs.webkit.org/show_bug.cgi?id=76735

        This is to add skipped layers to their RenderSurface's layer list so that they
        are considered in the next update. Without this change, m_skipsDraw = false sticks
        with the layer for the remainder of its lifetime.

        Reviewed by James Robinson.

        Tests: Unit test (TiledLayerChromiumTest.cpp)

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::drawsContent):
        * platform/graphics/chromium/TiledLayerChromium.h:
        (WebCore::TiledLayerChromium::skipsDraw):

2012-01-24  Kentaro Hara  <haraken@chromium.org>

        Invalidate r105697, r105766, r105809 and r105805
        https://bugs.webkit.org/show_bug.cgi?id=76970

        Reviewed by Adam Barth.

        I've been trying to stop rebuilding .h/.cpp files generated by
        unchanged IDLs (bug 76836), but the approach was wrong.
        This patch invalidates patches committed in r105697, r105766,
        r105809 and r105805.

        In r105697, r105766, r105809 and r105805, I modified CodeGenerator*.pm
        so that they overwrite .h/.cpp files only when the bytes differ.
        By this fix, we were able to stop rebuilding .h/.cpp files that are not
        changed. However, the fix has made generate-bindings.pl run for almost
        all IDLs every time. The reason is as follows:

        (0) Assume that there are A.idl, B.idl and C.idl.

        (1) Modify A.idl.
        (2) First build.
        (3) supplemental_dependency.tmp is updated.
        (4) generate-bindings.pl runs for A.idl, B.idl and C.idl.
        (5) A.h and A.cpp are updated. B.h, B.cpp, C.h and C.cpp are not updated.

        (6) Second build.
        (7) Since B.h, B.cpp, C.h and C.cpp are older than supplemental_dependency.tmp, generate-bindings.pl runs for B.idl and C.idl.
        (8) B.h, B.cpp, C.h and C.cpp are not updated.

        (9) Third build.
        (10) Since B.h, B.cpp, C.h and C.cpp are older than supplemental_dependency.tmp, generate-bindings.pl runs for B.idl and C.idl.
        (11) B.h, B.cpp, C.h and C.cpp are not updated.
        ...

        We should fix the bug somehow, but how to fix it is not obvious.
        For the time being, this patch invalidates r105697, r105766, r105809
        and r105805.

        No tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        (UpdateFile):
        * bindings/scripts/CodeGeneratorCPP.pm:
        (WriteData):
        * bindings/scripts/CodeGeneratorJS.pm:
        (WriteData):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (WriteData):
        * bindings/scripts/CodeGeneratorV8.pm:
        (WriteData):

2012-01-24  Eric Uhrhane  <ericu@chromium.org>

        Add full support for filesystem URLs.
        https://bugs.webkit.org/show_bug.cgi?id=75049

        Reviewed by Adam Barth.

        No new tests; existing layout tests cover the basic functionality, and
        the new functionality won't be there until Chromium adds it.  This patch
        merely enables that, without changing behavior.

        * fileapi/EntryBase.cpp:
        (WebCore::EntryBase::toURL): Add missing escaping of URL path.

        * page/SecurityOrigin.cpp:
        (WebCore::extractInnerURL): Use innerURL member, if it's populated.

        * platform/KURL.h:
        (WebCore::KURL::innerURL): Add innerURL member.

        * platform/KURLGoogle.cpp:
        (WebCore::KURLGooglePrivate::KURLGooglePrivate):
        (WebCore::KURLGooglePrivate::operator=):
        Add copy constructor and operator=, which are now needed since
        m_innerURL needs special handling.
        (WebCore::KURLGooglePrivate::setUtf8):
        (WebCore::KURLGooglePrivate::setAscii):
        Add calls to initInnerURL.
        (WebCore::KURLGooglePrivate::initInnerURL):
        Add method to init/copy m_innerURL.
        (WebCore::KURLGooglePrivate::copyTo):
        Handle m_innerURL during copies.
        (WebCore::encodeWithURLEscapeSequences):
        Unescape %2F ['/'] in paths; it's much more readable, and it's safe.

        * platform/KURLGooglePrivate.h:
        (WebCore::KURLGooglePrivate::innerURL): Add accessor for new m_innerURL.

2012-01-24  Ken Buchanan  <kenrb@chromium.org>

        Crash in updateFirstLetter() from unnecessary anonymous block
        https://bugs.webkit.org/show_bug.cgi?id=72675

        Reviewed by David Hyatt.

        There was a problem with anonymous blocks not getting removed when
        their only block flow siblings are removed if they also have non-block
        flow first-letter siblings (i.e. floats). This patch modifies
        RenderBlock::removeChild() to look for this situation and strip out
        unnecessary anonymous container blocks if it occurs.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::removeChild):
        (WebCore::RenderBlock::collapseAnonymousBoxChild): Added
        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::collapseAnonymousBoxChild): Added

2012-01-24  Daniel Cheng  <dcheng@chromium.org>

        [chromium] event.dataTransfer.types should not return "Text" or "URL"
        https://bugs.webkit.org/show_bug.cgi?id=76218

        Per the spec, "Text" and "URL" are special values handled for IE compatibility reasons in
        dataTransfer.setData() and dataTransfer.getData(). These values should not be exposed
        elsewhere.

        Reviewed by Tony Chang.

        Test: fast/events/dropzone-005.html

        * platform/chromium/ChromiumDataObject.cpp:
        (WebCore::ChromiumDataObject::types):
        (WebCore::ChromiumDataObject::getData):
        * platform/chromium/DragDataChromium.cpp:
        (WebCore::DragData::containsURL):
        (WebCore::DragData::asURL):
        (WebCore::DragData::canSmartReplace):

2012-01-24  Daniel Cheng  <dcheng@chromium.org>

        Make DataTransferItemList::length() const.
        https://bugs.webkit.org/show_bug.cgi?id=76946

        Just a const-correctness change.

        Reviewed by Tony Chang.

        No new tests since no functionality changed.

        * dom/DataTransferItemList.h:
        (DataTransferItemList):
        * platform/chromium/DataTransferItemListChromium.cpp:
        (WebCore::DataTransferItemListChromium::length):
        * platform/chromium/DataTransferItemListChromium.h:
        (DataTransferItemListChromium):
        * platform/qt/DataTransferItemListQt.cpp:
        (WebCore::DataTransferItemListQt::length):
        * platform/qt/DataTransferItemListQt.h:
        (DataTransferItemListQt):

2012-01-24  Tony Chang  <tony@chromium.org>

        REGRESSION(r103245): can't scroll left/up using scrollbar controls of overflowing elements
        https://bugs.webkit.org/show_bug.cgi?id=76317

        Reviewed by Darin Adler.

        Test: scrollbars/scroll-rtl-or-bt-layer.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateScrollInfoAfterLayout): Call scrollToOffsetWithoutAnimation since we're always
        scrolling to the just computed offset.

2012-01-24  Mark Rowe  <mrowe@apple.com>

        Fix all of the builds after r105812.

        * loader/EmptyClients.h: Move the #include in to the correct #if.

2012-01-24  Dmitry Lomov  <dslomov@google.com>

        [Chromium][V8] DOMWindow::postMessage crashes if window disassociated with frame.
        https://bugs.webkit.org/show_bug.cgi?id=76944.

        Reviewed by David Levin.

        * bindings/v8/V8Proxy.cpp:
        (WebCore::V8Proxy::retrieveWindowForCallingContext):
        * bindings/v8/V8Proxy.h:
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::handlePostMessageCallback):

2012-01-24  Geoffrey Garen  <ggaren@apple.com>

        Updated bindings test expectations after my last patch.

        Not reviewed.

        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        (WebCore::JSTestEventConstructorConstructor::constructJSTestEventConstructor):
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
        (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
        (WebCore::setJSTestInterfaceSupplementalStr2):
        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::setJSTestObjStringAttr):
        (WebCore::setJSTestObjStringAttrWithGetterException):
        (WebCore::setJSTestObjStringAttrWithSetterException):
        (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
        (WebCore::jsTestObjPrototypeFunctionAddEventListener):
        (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
        (WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
        * bindings/scripts/test/JS/JSTestOverridingNameGetter.cpp:
        (WebCore::jsTestOverridingNameGetterPrototypeFunctionAnotherFunction):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):

2012-01-24  Greg Billock  <gbillock@google.com>

        Change dispatchIntent API to pure virtual in FrameLoaderClient.

        The Windows compiler needs this to deal with the forward declaration
        of WebCore::IntentRequest.
        https://bugs.webkit.org/show_bug.cgi?id=76940

        Reviewed by Adam Barth.

        * loader/EmptyClients.h:
        (WebCore::EmptyFrameLoaderClient::dispatchIntent):
        * loader/FrameLoaderClient.h:

2012-01-24  Kentaro Hara  <haraken@chromium.org>

        CodeGeneratorJS.pm should overwrite the output .h/.cpp
        only if the bytes differ
        https://bugs.webkit.org/show_bug.cgi?id=76922

        Reviewed by Darin Adler.

        This is one of steps to stop rebuilding .h/.cpp files
        generated by unchanged IDLs (bug 76836).
        This patch makes a change on CodeGeneratorJS.pm so that
        it overwrites the output .h/.cpp only if the bytes differ.

        No tests. No change in behavior.
        I manually confirmed that when I add a new attribute to Element.idl,
        the time-stamps of unrelated JS*.h and JS*.cpp do not change.

        * bindings/scripts/CodeGeneratorJS.pm:
        (WriteData): Used UpdateFileIfChanged().

2012-01-24  Kentaro Hara  <haraken@chromium.org>

        CodeGeneratorCPP.pm should overwrite the output .h/.cpp
        only if the bytes differ
        https://bugs.webkit.org/show_bug.cgi?id=76926

        Reviewed by Adam Barth.

        This is one of steps to stop rebuilding .h/.cpp files
        generated by unchanged IDLs (bug 76836).
        This patch makes a change on CodeGeneratorCPP.pm so that
        it overwrites the output .h/.cpp only if the bytes differ.

        No tests. No change in behavior.
        Manually confirm that when you add a new attribute to Element.idl,
        the time-stamps of unrelated WebDOM*.h and WebDOM*.cpp do not change.

        * bindings/scripts/CodeGeneratorCPP.pm:
        (WriteData): Used UpdateFileIfChanged().

2012-01-24  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r105238.
        http://trac.webkit.org/changeset/105238
        https://bugs.webkit.org/show_bug.cgi?id=76943

        Remove the assert text hack as it served its purpose.
        (Requested by dave_levin on #webkit).

        * dom/ActiveDOMObject.cpp:
        (WebCore::ContextDestructionObserver::ContextDestructionObserver):
        (WebCore::ContextDestructionObserver::~ContextDestructionObserver):
        (WebCore::ActiveDOMObject::ActiveDOMObject):
        (WebCore::ActiveDOMObject::~ActiveDOMObject):
        * storage/DatabaseSync.cpp:
        (WebCore::DatabaseSync::openDatabaseSync):
        (WebCore::DatabaseSync::~DatabaseSync):
        (WebCore::DatabaseSync::changeVersion):
        (WebCore::DatabaseSync::runTransaction):

2012-01-24  Kentaro Hara  <haraken@chromium.org>

        [Refactoring] In CodeGeneratorGObject.pm, merge
        GeneratePrivateHeader() into WriteData()
        https://bugs.webkit.org/show_bug.cgi?id=76923

        Reviewed by Adam Barth.

        This patch merges GeneratePrivateHeader() into WriteData(),
        so that all code to output .h/.cpp is managed by WriteData(),
        just like other CodeGenerator*.pm does.

        No tests. No change in behavior.
        Confirm that GTK/GObject build passes.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (Generate):
        (WriteData): Copied GeneratePrivateHeader() to here.
        Removed $hasLegacyParen, $hasRealParent and $hasParent
        since they are not used.
        (GenerateInterface):

2012-01-24  Daniel Cheng  <dcheng@chromium.org>

        dropzone does not normalize type strings
        https://bugs.webkit.org/show_bug.cgi?id=76925

        Per the HTML spec, we are supposed to normalize types during dropzone processing by
        lowercasing them.

        Reviewed by Tony Chang.

        Tests: fast/events/dropzone-002.html

        * dom/Clipboard.cpp:
        (WebCore::Clipboard::hasDropZoneType):

2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        Don't expose functions for the ATK interfaces in header files.

        Expose only the initialization function for each interface, and
        use the generic functions from ATK interfaces where needed.

        * accessibility/gtk/WebKitAccessibleInterfaceAction.cpp:
        (webkitAccessibleActionDoAction): Made this function static.
        (webkitAccessibleActionGetNActions): Ditto.
        (webkitAccessibleActionGetDescription): Ditto.
        (webkitAccessibleActionGetKeybinding): Ditto.
        (webkitAccessibleActionGetName): Ditto.
        (webkitAccessibleActionInterfaceInit): Moved to the bottom.
        * accessibility/gtk/WebKitAccessibleInterfaceAction.h: Removed all
        functions but the one for initializing the interface from here.

        * accessibility/gtk/WebKitAccessibleInterfaceComponent.cpp:
        (webkitAccessibleComponentRefAccessibleAtPoint): Made this function static.
        (webkitAccessibleComponentGetExtents): Ditto.
        (webkitAccessibleComponentGrabFocus): Ditto.
        (webkitAccessibleComponentInterfaceInit): Moved to the bottom.
        * accessibility/gtk/WebKitAccessibleInterfaceComponent.h: Removed all
        functions but the one for initializing the interface from here.

        * accessibility/gtk/WebKitAccessibleInterfaceDocument.cpp:
        (webkitAccessibleDocumentGetAttributeValue): Made this function static.
        (webkitAccessibleDocumentGetAttributes): Ditto.
        (webkitAccessibleDocumentGetLocale): Ditto.
        (webkitAccessibleDocumentInterfaceInit): Moved to the bottom.
        * accessibility/gtk/WebKitAccessibleInterfaceDocument.h: Removed all
        functions but the one for initializing the interface from here.

        * accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp:
        (webkitAccessibleEditableTextSetRunAttributes): Made this function static.
        (webkitAccessibleEditableTextSetTextContents): Ditto.
        (webkitAccessibleEditableTextInsertText): Ditto.
        (webkitAccessibleEditableTextCopyText): Ditto.
        (webkitAccessibleEditableTextCutText): Ditto.
        (webkitAccessibleEditableTextDeleteText): Ditto.
        (webkitAccessibleEditableTextPasteText): Ditto.
        (webkitAccessibleEditableTextInterfaceInit): Moved to the bottom.
        * accessibility/gtk/WebKitAccessibleInterfaceEditableText.h: Removed all
        functions but the one for initializing the interface from here.

        * accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
        (webkitAccessibleHyperlinkImplGetHyperlink): Made this function static.
        (webkitAccessibleHyperlinkImplInterfaceInit): Moved to the bottom.
        * accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.h: Removed all
        functions but the one for initializing the interface from here.

        * accessibility/gtk/WebKitAccessibleInterfaceHypertext.cpp:
        (webkitAccessibleHypertextGetLink): Made this function static.
        (webkitAccessibleHypertextGetNLinks): Ditto.
        (webkitAccessibleHypertextGetLinkIndex): Ditto.
        (webkitAccessibleHypertextInterfaceInit): Moved to the bottom.
        * accessibility/gtk/WebKitAccessibleInterfaceHypertext.h: Removed all
        functions but the one for initializing the interface from here.

        * accessibility/gtk/WebKitAccessibleInterfaceImage.cpp:
        (webkitAccessibleImageGetImagePosition): Made this function static.
        (webkitAccessibleImageGetImageDescription): Ditto.
        (webkitAccessibleImageGetImageSize): Ditto.
        (webkitAccessibleImageInterfaceInit): Moved to the bottom.
        * accessibility/gtk/WebKitAccessibleInterfaceImage.h: Removed all
        functions but the one for initializing the interface from here.

        * accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp:
        (webkitAccessibleSelectionAddSelection): Made this function static.
        (webkitAccessibleSelectionClearSelection): Ditto.
        (webkitAccessibleSelectionRefSelection): Ditto.
        (webkitAccessibleSelectionGetSelectionCount): Ditto.
        (webkitAccessibleSelectionIsChildSelected): Ditto.
        (webkitAccessibleSelectionRemoveSelection): Ditto.
        (webkitAccessibleSelectionSelectAllSelection): Ditto.
        (webkitAccessibleSelectionInterfaceInit): Moved to the bottom.
        * accessibility/gtk/WebKitAccessibleInterfaceSelection.h: Removed all
        functions but the one for initializing the interface from here.

        * accessibility/gtk/WebKitAccessibleInterfaceTable.cpp:
        (webkitAccessibleTableRefAt): Made this function static.
        (webkitAccessibleTableGetIndexAt): Ditto.
        (webkitAccessibleTableGetColumnAtIndex): Ditto.
        (webkitAccessibleTableGetRowAtIndex): Ditto.
        (webkitAccessibleTableGetNColumns): Ditto.
        (webkitAccessibleTableGetNRows): Ditto.
        (webkitAccessibleTableGetColumnExtentAt): Ditto.
        (webkitAccessibleTableGetRowExtentAt): Ditto.
        (webkitAccessibleTableGetColumnHeader): Ditto.
        (webkitAccessibleTableGetRowHeader): Ditto.
        (webkitAccessibleTableGetCaption): Ditto.
        (webkitAccessibleTableGetColumnDescription): Ditto.
        (webkitAccessibleTableGetRowDescription): Ditto.
        (webkitAccessibleTableInterfaceInit): Moved to the bottom.
        * accessibility/gtk/WebKitAccessibleInterfaceTable.h: Removed all
        functions but the one for initializing the interface from here.

        * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
        (textForRenderer): Made this function static.
        (textForObject): Ditto.
        (webkitAccessibleTextGetText): Ditto.
        (webkitAccessibleTextGetTextAfterOffset): Ditto.
        (webkitAccessibleTextGetTextAtOffset): Ditto.
        (webkitAccessibleTextGetTextBeforeOffset): Ditto.
        (webkitAccessibleTextGetCharacterAtOffset): Ditto.
        (webkitAccessibleTextGetCaretOffset): Ditto.
        (webkitAccessibleTextGetRunAttributes): Ditto.
        (webkitAccessibleTextGetDefaultAttributes): Ditto.
        (webkitAccessibleTextGetCharacterExtents): Ditto.
        (webkitAccessibleTextGetRangeExtents): Ditto.
        (webkitAccessibleTextGetCharacterCount): Ditto.
        (webkitAccessibleTextGetOffsetAtPoint): Ditto.
        (webkitAccessibleTextGetNSelections): Ditto.
        (webkitAccessibleTextGetSelection): Ditto.
        (webkitAccessibleTextAddSelection): Ditto.
        (webkitAccessibleTextSetSelection): Ditto.
        (webkitAccessibleTextRemoveSelection): Ditto.
        (webkitAccessibleTextSetCaretOffset): Ditto.
        (webkitAccessibleTextInterfaceInit): Moved to the bottom.
        * accessibility/gtk/WebKitAccessibleInterfaceText.h: Removed all
        functions but the one for initializing the interface from here.

        * accessibility/gtk/WebKitAccessibleInterfaceValue.cpp:
        (webkitAccessibleValueGetCurrentValue): Made this function static.
        (webkitAccessibleValueGetMaximumValue): Ditto.
        (webkitAccessibleValueGetMinimumValue): Ditto.
        (webkitAccessibleValueSetCurrentValue): Ditto.
        (webkitAccessibleValueGetMinimumIncrement): Ditto.
        (webkitAccessibleValueInterfaceInit): Moved to the bottom.
        * accessibility/gtk/WebKitAccessibleInterfaceValue.h: Removed all
        functions but the one for initializing the interface from here.

        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
        (webkitAccessibleGetName): Replace call to
        webkitAccessibleTextGetText with atk_text_get_text.

2012-01-24  James Robinson  <jamesr@chromium.org>

        [chromium] Add null check for ContentLayerChromium::m_delegate back to ContentLayerChromium::drawsContent()
        https://bugs.webkit.org/show_bug.cgi?id=76887

        Reviewed by Dimitri Glazkov.

        A ContentLayerChromium's m_delegate pointer is nulled out when its owning GraphicsLayerChromium is destroyed.
        It's possible in some circumstances for this to happen during painting. The null check for this pointer was
        erroneously removed from the base class TiledLayerChromium in r105460.

        No new tests since we don't know how to reproduce this sort of layer mutation during paint (not for lack of
        trying!). Fix based on crash reports from the field.

        * platform/graphics/chromium/ContentLayerChromium.cpp:
        (WebCore::ContentLayerChromium::drawsContent):
        * platform/graphics/chromium/ContentLayerChromium.h:

2012-01-16  Robert Hogan  <robert@webkit.org>

        REGRESSION (r102040): Wrong column widths when row has colspan and unwrappable text
        https://bugs.webkit.org/show_bug.cgi?id=74874

        Reviewed by Julien Chaffraix.

        Tests: fast/css/min-width-with-spanned-cell-fixed.html
               fast/css/min-width-with-spanned-cell.html

        A cell with unwrappable text must be as wide as the text is long. If it is a colspan in a table whose
        columns are all percent and the width of the span cell is wider than the cells it spans in any other 
        row then it will squeeze those cells beyond the width required to display their contents.

        To fix this ensure that the squeezing of cells within a span respects the minimum width determined by
        their contents. The squeezing remains for fixed layout tables as per FF and Opera.

        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::calcEffectiveLogicalWidth):

2012-01-24  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Split the MediaStream track list into audio/video specific ones.
        https://bugs.webkit.org/show_bug.cgi?id=76614

        The latest draft of the WebRTC standard have split the MediaStream combined track list
        into audio/video specific ones.

        Reviewed by Darin Fisher.

        Tests for the Media Stream API will be provided by the bug 56587, pending enough landed code.

        * mediastream/LocalMediaStream.cpp:
        (WebCore::LocalMediaStream::create):
        (WebCore::LocalMediaStream::LocalMediaStream):
        * mediastream/LocalMediaStream.h:
        * mediastream/MediaStream.cpp:
        (WebCore::processTrackList):
        (WebCore::MediaStream::create):
        (WebCore::MediaStream::MediaStream):
        * mediastream/MediaStream.h:
        (WebCore::MediaStream::audioTracks):
        (WebCore::MediaStream::videoTracks):
        * mediastream/MediaStream.idl:
        * mediastream/MediaStreamTrack.cpp:
        (WebCore::MediaStreamTrack::create):
        (WebCore::MediaStreamTrack::MediaStreamTrack):
        (WebCore::MediaStreamTrack::kind):
        (WebCore::MediaStreamTrack::label):
        (WebCore::MediaStreamTrack::enabled):
        (WebCore::MediaStreamTrack::setEnabled):
        (WebCore::MediaStreamTrack::component):
        * mediastream/MediaStreamTrack.h:
        * mediastream/UserMediaClient.h:
        * mediastream/UserMediaRequest.cpp:
        (WebCore::UserMediaRequest::mediaStreamSourcesQueryCompleted):
        (WebCore::UserMediaRequest::succeed):
        * mediastream/UserMediaRequest.h:
        * platform/mediastream/MediaStreamCenter.cpp:
        (WebCore::MediaStreamCenter::queryMediaStreamSources):
        (WebCore::MediaStreamCenter::didSetMediaStreamTrackEnabled):
        * platform/mediastream/MediaStreamCenter.h:
        * platform/mediastream/MediaStreamDescriptor.h:
        (WebCore::MediaStreamDescriptor::create):
        (WebCore::MediaStreamDescriptor::numberOfAudioComponents):
        (WebCore::MediaStreamDescriptor::audioComponent):
        (WebCore::MediaStreamDescriptor::numberOfVideoComponents):
        (WebCore::MediaStreamDescriptor::videoComponent):
        (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):

2012-01-24  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r105738.
        http://trac.webkit.org/changeset/105738
        https://bugs.webkit.org/show_bug.cgi?id=76930

        caused fast/css/getComputedStyle/computed-style-border-
        image.html to crash (Requested by kling on #webkit).

        * dom/NamedNodeMap.cpp:
        * dom/NamedNodeMap.h:
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::updateStyleAttribute):
        (WebCore::StyledElement::createInlineStyleDecl):
        (WebCore::StyledElement::destroyInlineStyleDecl):
        (WebCore::StyledElement::ensureInlineStyleDecl):
        (WebCore::StyledElement::style):
        (WebCore::StyledElement::addSubresourceAttributeURLs):
        * dom/StyledElement.h:
        (WebCore::StyledElement::inlineStyleDecl):

2012-01-24  Parag Radke  <nrqv63@motorola.com>

        REGRESSION (r73385): Marquee with behavior="alternate" is not working
        https://bugs.webkit.org/show_bug.cgi?id=64230

        Reviewed by Simon Fraser.

        This patch gives correct content width for marquee, which computes
        correct start position to scroll marquee.

        Test: fast/html/marquee-alternate.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computePreferredLogicalWidths):
        We need(style()->marqueeBehavior() != MALTERNATE) check as we always need the marquee's 
        actual content width to compute the initial/end position in case of 'MALTERNATE'.
        So we need to calculate the logical width in Alternate case even if fixed width is specified
        as content has to animate between renderBox().right().x() - contentWidth() and 
        renderBox().left().x() + contentWidth().
        
        * rendering/RenderMarquee.cpp:
        (WebCore::RenderMarquee::computePosition):
        Using PreferredLogicalWidth in place of LayoutOverflow for calculating correct content width.

2012-01-24  Andreas Kling  <awesomekling@apple.com>

        RenderInline: Skip caching the computed line height.
        <http://webkit.org/b/76929>

        Reviewed by David Hyatt.

        Stop caching the computed line height on RenderInline and make retrieving it from
        RenderStyle slightly cheaper, freeing up 4 bytes per RenderInline instance.
        This appears to be mostly performance neutral, I don't get more than the occasional
        sample hit when instrumenting heavier web pages.

        This reduces memory consumption by 228 kB (both 32/64-bit) when viewing the full
        HTML5 spec at <http://whatwg.org/c>.

        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::RenderInline):
        (WebCore::RenderInline::styleDidChange):
        (WebCore::RenderInline::lineHeight):
        * rendering/RenderInline.h:
        * rendering/style/RenderStyle.h:
        (WebCore::RenderStyle::computedLineHeight):

            Optimize computedLineHeight() to mitigate some of the damage of calling
            it more often.

2012-01-24  Abhishek Arya  <inferno@chromium.org>

        Crash when rendering -webkit-column-span.
        https://bugs.webkit.org/show_bug.cgi?id=73265

        Reviewed by David Hyatt.

        This patch addresses 2 problems causing crashes in multi-column layout
        1. Trying to render -webkit-column-span for :before, :after caused
           re-entrancy in updateBeforeAfterContent while working on splitFlow.
        2. Cloning a block which has its :before, :after content not added yet,
           caused issues because cloneBlock will definitely have its :before,
           :after content created when setStyle() is called. So, we would
           overwrite cloneBlock with a wrong childrenInline value.

        Tests: fast/multicol/clone-block-children-inline-mismatch-crash.html
               fast/multicol/span/generated-child-split-flow-crash.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::clone):
        (WebCore::RenderBlock::columnsBlockForSpanningElement):

2012-01-22  Robert Hogan  <robert@webkit.org>

        Incorrect positioning of floating pseudo-elements in table captions
        https://bugs.webkit.org/show_bug.cgi?id=76664

        Reviewed by Julien Chaffraix.

        Tests: fast/table/caption-encloses-overhanging-float-expected.html
               fast/table/caption-encloses-overhanging-float.html

        Allow table captions to expand and enclose overhanging floats. When performing
        layout on a caption ensure that its logical top is set so that it does not mistakenly
        conclude that floats in a previous sibling are intruding into it when they're not.

        Mostly diagnosed by Abhishek Arya.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::expandsToEncloseOverhangingFloats): add table captions to the list
         that can enclosed overhanging floats.
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::layoutCaption): use the best available approximation of the caption's logical
         top offset before laying it out.
        (WebCore::RenderTable::layout):
        * rendering/RenderTable.h:

2012-01-24  Kentaro Hara  <haraken@chromium.org>

        In CodeGeneratorV8.pm, overwrite the output .h/.cpp
        only if the bytes differ
        https://bugs.webkit.org/show_bug.cgi?id=76920

        Reviewed by Darin Adler.

        This is one of steps to stop rebuilding .h/.cpp files
        generated by unchanged IDLs (bug 76836).
        This patch makes a change on CodeGeneratorV8.pm so that
        it overwrites the output .h/.cpp only if the bytes differ.

        No tests. No change in behavior.
        I manually confirmed that when I add a new attribute to Element.idl,
        the time-stamps of unrelated V8*.h and V8*.cpp do not change.

        * bindings/scripts/CodeGeneratorV8.pm:
        (WriteData): Used UpdateFileIfChanged().

2012-01-24  Kentaro Hara  <haraken@chromium.org>

        [Refactoring] Remove finish() from all CodeGenerator*.pm
        https://bugs.webkit.org/show_bug.cgi?id=76918

        Reviewed by Darin Adler.

        Now finish() is empty in all CodeGenerator*.pm. This patch removes them.

        No tests. No change in behavior.

        * bindings/scripts/CodeGenerator.pm:
        (ProcessDocument):
        * bindings/scripts/CodeGeneratorCPP.pm:
        * bindings/scripts/CodeGeneratorGObject.pm:
        * bindings/scripts/CodeGeneratorJS.pm:
        * bindings/scripts/CodeGeneratorObjC.pm:
        * bindings/scripts/CodeGeneratorV8.pm:

2012-01-24  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: incorrect highlight position when searching in console
        https://bugs.webkit.org/show_bug.cgi?id=76837

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
        (WebInspector.ConsoleMessageImpl.prototype.clearHighlight):
        (WebInspector.ConsoleMessageImpl.prototype.highlightSearchResults):
        (WebInspector.ConsoleMessageImpl.prototype._highlightSearchResultsInElement):
        (WebInspector.ConsoleMessageImpl.prototype.matchesRegex):

2012-01-23  Simon Fraser  <simon.fraser@apple.com>

        Show layer borders for scrollbar layers
        https://bugs.webkit.org/show_bug.cgi?id=76888

        Reviewed by Beth Dakin.
        
        When compositing layer borders are showing, show the borders
        for scrollbars layers. This reduces confusion about whether scrollbars
        are rendering into their own layers.
        
        Requires a new parameter to two GraphicsLayerClient methods.

        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::showDebugBorders):
        (WebCore::GraphicsLayer::showRepaintCounter):
        * platform/graphics/GraphicsLayerClient.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::showDebugBorders):
        (WebCore::RenderLayerBacking::showRepaintCounter):
        * rendering/RenderLayerBacking.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::showDebugBorders):
        (WebCore::RenderLayerCompositor::showRepaintCounter):
        * rendering/RenderLayerCompositor.h:

2012-01-24  David Levin  <levin@chromium.org>

        [windows] Convert usage of GetDC to HWndDC Part 3.
        https://bugs.webkit.org/show_bug.cgi?id=76889

        Reviewed by Adam Roben.

        No new functionality so no new tests.

        * platform/graphics/win/UniscribeController.cpp:
        (WebCore::UniscribeController::shapeAndPlaceItem): Simple replacement.
        (WebCore::UniscribeController::shape): Use the delayed allocation.
        * platform/win/PopupMenuWin.cpp:
        (WebCore::PopupMenuWin::paint): Fix a dc leak and use the dellayed allocation.

2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        Fix coding style in the ATK AccessibilityObject wrapper.

        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
        (webkitAccessibleGetName):
        (webkitAccessibleGetDescription):
        (webkitAccessibleGetParent):
        (webkitAccessibleGetNChildren):
        (webkitAccessibleRefChild):
        (webkitAccessibleGetIndexInParent):
        (webkitAccessibleGetAttributes):
        (atkRole):
        (webkitAccessibleGetRole):
        (setAtkStateSetFromCoreObject):
        (webkitAccessibleRefStateSet):
        (webkitAccessibleRefRelationSet):
        (webkitAccessibleInit):
        (webkitAccessibleFinalize):
        (webkit_accessible_class_init):

2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        Cleanup the list of includes in WebKitAccessibleWrapperAtk.cpp.

        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Removes
        'include' lines that are no longer needed after the refactor.

2012-01-24  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [EFL] Remove CookieJarEfl.cpp
        https://bugs.webkit.org/show_bug.cgi?id=76916

        Reviewed by Gustavo Noronha Silva.

        CookieJarEfl.cpp has not been used for years -- we either need
        CookieJarCurl or CookieJarSoup depending on the chosen network
        backend.

        No new tests, just an unused file being removed.

        * WebCore.gypi: Remove reference to CookieJarEfl.cpp.
        * platform/efl/CookieJarEfl.cpp: Removed.

2012-01-24  Abhishek Arya  <inferno@chromium.org>

        Crash when accessing removed parent in InlineTextBox.
        https://bugs.webkit.org/show_bug.cgi?id=72982

        Reviewed by James Robinson.

        The crash happens because:
        1. We add heading element(h1) before the span element(span1),
           causing splitflow on the anonymous block containing BeforeText,
           span1(and SpanText) and AfterText.
        2. span1 moves to the cloneBlock (continuation).
        3. Our anonymous block and cloneBlock are both marked for layout,
           however we still have a copy of our lineboxes with its childs
           as the textboxes belonging to SpanText.
        4. Our anonymous block only child BeforeText is getting removed,
           so we dont have any children anymore and we delete our lineboxes,
           leaving behind the children textboxes belonging to SpanText.
        5. SpanText is getting destroyed, so it tries to inform removed
           parent lineboxes causing the crash.

        Test: fast/block/block-remove-child-delete-line-box-crash.html

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

2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        New files for the implementation of the AtkTable interface,
        containing the related code from WebKitAccessibleWrapperAtk.cpp.

        * accessibility/gtk/WebKitAccessibleInterfaceTable.cpp: Added.
        (core):
        (cell):
        (cellIndex):
        (cellAtIndex):
        (webkitAccessibleTableInterfaceInit):
        (webkitAccessibleTableRefAt):
        (webkitAccessibleTableGetIndexAt):
        (webkitAccessibleTableGetColumnAtIndex):
        (webkitAccessibleTableGetRowAtIndex):
        (webkitAccessibleTableGetNColumns):
        (webkitAccessibleTableGetNRows):
        (webkitAccessibleTableGetColumnExtentAt):
        (webkitAccessibleTableGetRowExtentAt):
        (webkitAccessibleTableGetColumnHeader):
        (webkitAccessibleTableGetRowHeader):
        (webkitAccessibleTableGetCaption):
        (webkitAccessibleTableGetColumnDescription):
        (webkitAccessibleTableGetRowDescription):
        * accessibility/gtk/WebKitAccessibleInterfaceTable.h: Added.
        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
        related to the implementation of the AtkTable interface.

        Add new files to build files.

        * GNUmakefile.list.am: Add WebKitAccessibleInterfaceTable.[h|cpp].
        * WebCore.gypi: Ditto.

2012-01-24  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Scripts panel tabbed editor container should have gray background when there are no open tabs.
        https://bugs.webkit.org/show_bug.cgi?id=76903

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/TabbedPane.js:
        (WebInspector.TabbedPane.prototype._updateTabElements):
        * inspector/front-end/tabbedPane.css:
        (.tabbed-pane-content.has-no-tabs):

2012-01-24  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: OpenResourceDialog should work when there are no open tabs in scripts panel.
        https://bugs.webkit.org/show_bug.cgi?id=76907

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/FilteredItemSelectionDialog.js:
        (WebInspector.OpenResourceDialog.install):
        * inspector/front-end/ScriptsPanel.js:

2012-01-24  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py: put TypeBuilder namespace in a separate sources
        https://bugs.webkit.org/show_bug.cgi?id=76868

        Reviewed by Yury Semikhatsky.

        Configurations of (hopefully) all build systems are fixed.

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/CodeGeneratorInspector.py:
        (dash_to_camelcase):
        (InspectorFrontend_h):
        (InspectorBackendDispatcher_h):

2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        New files for the implementation of the AtkText interface,
        containing the related code from WebKitAccessibleWrapperAtk.cpp.

        * accessibility/gtk/WebKitAccessibleInterfaceText.cpp: Added.
        (core):
        (textForRenderer):
        (textForObject):
        (getGailTextUtilForAtk):
        (getPangoLayoutForAtk):
        (baselinePositionForRenderObject):
        (getAttributeSetForAccessibilityObject):
        (compareAttribute):
        (attributeSetDifference):
        (accessibilityObjectLength):
        (getAccessibilityObjectForOffset):
        (getRunAttributesFromAccesibilityObject):
        (textExtents):
        (getSelectionOffsetsForObject):
        (webkitAccessibleTextInterfaceInit):
        (webkitAccessibleTextGetText):
        (webkitAccessibleTextGetTextAfterOffset):
        (webkitAccessibleTextGetTextAtOffset):
        (webkitAccessibleTextGetTextBeforeOffset):
        (webkitAccessibleTextGetCharacterAtOffset):
        (webkitAccessibleTextGetCaretOffset):
        (webkitAccessibleTextGetRunAttributes):
        (webkitAccessibleTextGetDefaultAttributes):
        (webkitAccessibleTextGetCharacterExtents):
        (webkitAccessibleTextGetRangeExtents):
        (webkitAccessibleTextGetCharacterCount):
        (webkitAccessibleTextGetOffsetAtPoint):
        (webkitAccessibleTextGetNSelections):
        (webkitAccessibleTextGetSelection):
        (webkitAccessibleTextAddSelection):
        (webkitAccessibleTextRemoveSelection):
        (webkitAccessibleTextSetSelection):
        (webkitAccessibleTextSetCaretOffset):
        * accessibility/gtk/WebKitAccessibleInterfaceText.h: Added.

        Move common function selectionBelongsToObject out from the wrapper
        to the utility file, used from WebKitAccessibleInterfaceText.cpp.

        * accessibility/gtk/WebKitAccessibleUtil.cpp:
        (selectionBelongsToObject): Taken from WebKitAccessibleWrapperAtk.cpp.
        * accessibility/gtk/WebKitAccessibleUtil.h:
        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove local
        implementation of selectionBelongsToObject, and the code related
        to the implementation of the AtkText interface.
        (webkit_accessible_get_name): Update call to the former function
        webkit_accessible_text_get_text and use the new function name.
        (webkit_accessible_table_get_column_description): Ditto.
        (webkit_accessible_table_get_row_description): Ditto.

        Add new files to build files.

        * GNUmakefile.list.am: Add WebKitAccessibleInterfaceText.[h|cpp].
        * WebCore.gypi: Ditto.

2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        New files for the implementation of the AtkValue interface,
        containing the related code from WebKitAccessibleWrapperAtk.cpp.

        * accessibility/gtk/WebKitAccessibleInterfaceValue.cpp: Added.
        (core):
        (webkitAccessibleValueInterfaceInit):
        (webkitAccessibleValueGetCurrentValue):
        (webkitAccessibleValueGetMaximumValue):
        (webkitAccessibleValueGetMinimumValue):
        (webkitAccessibleValueSetCurrentValue):
        (webkitAccessibleValueGetMinimumIncrement):
        * accessibility/gtk/WebKitAccessibleInterfaceValue.h: Added.
        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
        related to the implementation of the AtkValue interface.

        Add new files to build files.

        * GNUmakefile.list.am: Add WebKitAccessibleInterfaceValue.[h|cpp].
        * WebCore.gypi: Ditto.

2012-01-24  Antti Koivisto  <antti@apple.com>

        Reduce internal use of CSSStyleDeclaration base class
        https://bugs.webkit.org/show_bug.cgi?id=76904

        Reviewed by Andreas Kling.

        Internally WebCore should use the more specific CSSMutableStyleDeclaration and CSSComputedStyleDeclaration types.
        The CSSStyleDeclaration base should be used in the DOM API functions only. This will make it easier to separate 
        internal style sheet implementation from the DOM in the future.
        
        - Switch CSSStyleDeclaration -> CSSMutableStyleDeclaration where feasible
        - Use StyledElement::ensureInlineStyleDecl() instead of Element::style() (which is a DOM API function)
        - Remove Attribute::style() which looks like a DOM API function but is not exposed.

        * css/CSSMutableStyleDeclaration.h:
        (WebCore::CSSMutableStyleDeclaration::getPropertyCSSValue):
        * dom/Attr.h:
        (WebCore::Attr::style):
        * dom/Attribute.h:
        * editing/EditingStyle.cpp:
        (WebCore::HTMLElementEquivalent::propertyExistsInStyle):
        (WebCore::HTMLElementEquivalent::valueIsPresentInStyle):
        (WebCore::HTMLTextDecorationEquivalent::propertyExistsInStyle):
        (WebCore::HTMLTextDecorationEquivalent::valueIsPresentInStyle):
        (WebCore::HTMLAttributeEquivalent::valueIsPresentInStyle):
        * editing/Editor.cpp:
        (WebCore::Editor::applyEditingStyleToElement):
        * editing/markup.cpp:
        (WebCore::StyledMarkupAccumulator::wrapWithStyleNode):
        (WebCore::StyledMarkupAccumulator::appendStyleNodeOpenTag):
        (WebCore::propertyMissingOrEqualToNone):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::buildArrayForAttributeStyles):
        * page/DragController.cpp:
        (WebCore::DragController::concludeEditDrag):
        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::serializeFrame):
        (WebCore::PageSerializer::retrieveResourcesForCSSDeclaration):
        * page/PageSerializer.h:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::resize):
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::getPresentationAttribute):

2012-01-23  Andreas Kling  <awesomekling@apple.com>

        Make elements that don't have attributes smaller.
        <http://webkit.org/b/76876>

        Reviewed by Antti Koivisto.

        Move the inline style declaration from StyledElement to NamedNodeMap, since having
        an inline style declaration also implies having a style attribute on the element.
        This saves one CPU word per element that has no attributes.

        This reduces memory consumption by 412 kB (on 64-bit) when viewing the full
        HTML5 spec at <http://whatwg.org/c>.

        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::ensureInlineStyleDecl):
        (WebCore::NamedNodeMap::destroyInlineStyleDecl):
        (WebCore::NamedNodeMap::createInlineStyleDecl):
        * dom/NamedNodeMap.h:
        (WebCore::NamedNodeMap::inlineStyleDecl):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::updateStyleAttribute):
        (WebCore::StyledElement::addSubresourceAttributeURLs):
        * dom/StyledElement.h:
        (WebCore::StyledElement::inlineStyleDecl):
        (WebCore::StyledElement::ensureInlineStyleDecl):
        (WebCore::StyledElement::destroyInlineStyleDecl):

2012-01-24  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Qt][WK2] Qt's cross-process AC copies images excessively when updating tiles.
        https://bugs.webkit.org/show_bug.cgi?id=76877

        Reviewed by Kenneth Rohde Christiansen.

        Add BitmapTexture::updateRawContents(), which allows uploading image data to a texture
        without changing its format or swizzling RGB. The data has to be in the texture's native
        format.

        No new tests, this affects performance on all existing tests.

        * platform/graphics/opengl/TextureMapperGL.cpp:
        (WebCore::BitmapTextureGL::updateRawContents):
        * platform/graphics/qt/TextureMapperQt.cpp:
        * platform/graphics/texmap/TextureMapper.h:
        (WebCore::BitmapTexture::updateRawContents):
        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::setContentsTileBackBuffer):
        * platform/graphics/texmap/TextureMapperNode.h:

2012-01-24  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: inspector/debugger/dom-breakpoints.html started to fail after r105642
        https://bugs.webkit.org/show_bug.cgi?id=76908

        Reviewed by Yury Semikhatsky.

        * css/CSSMutableStyleDeclaration.cpp:

2012-01-24  Csaba Osztrogonác  <ossy@webkit.org>

        [Refactoring] Make finish() of CodeGeneratorJS.pm empty
        https://bugs.webkit.org/show_bug.cgi?id=76846

        Reviewed by Tor Arne Vestbø.

        * bindings/scripts/CodeGeneratorJS.pm: Warning fix after r105683.
        (WriteData):

2012-01-24  Andras Becsi  <andras.becsi@nokia.com>

        [Qt] Fix the build with the newes Qt5 hashes
        https://bugs.webkit.org/show_bug.cgi?id=76657

        Reviewed by Simon Hausmann.

        No new tests needed.

        * platform/graphics/cairo/OpenGLShims.cpp:
        (WebCore::getProcAddress): Adopt API changes.

2012-01-24  Ádám Kallai  <Kallai.Adam@stud.u-szeged.hu>

        [Qt] Incremental build problem.
        https://bugs.webkit.org/show_bug.cgi?id=74687

        It is necessary to set mathattrs.in dependency for generating MathMLNames.cpp file.

        Reviewed by Csaba Osztrogonác.

        * DerivedSources.pri:
        I added missing depend.

2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        New files for the implementation of the AtkSelection interface,
        containing the related code from WebKitAccessibleWrapperAtk.cpp.

        * accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp: Added.
        (core):
        (listObjectForSelection):
        (optionFromList):
        (optionFromSelection):
        (webkitAccessibleSelectionInterfaceInit):
        (webkitAccessibleSelectionAddSelection):
        (webkitAccessibleSelectionClearSelection):
        (webkitAccessibleSelectionRefSelection):
        (webkitAccessibleSelectionGetSelectionCount):
        (webkitAccessibleSelectionIsChildSelected):
        (webkitAccessibleSelectionRemoveSelection):
        (webkitAccessibleSelectionSelectAllSelection):
        * accessibility/gtk/WebKitAccessibleInterfaceSelection.h: Added.
        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
        related to the implementation of the AtkSelection interface.

        Add new files to build files.

        * GNUmakefile.list.am: Add WebKitAccessibleInterfaceSelection.[h|cpp].
        * WebCore.gypi: Ditto.

2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        New files for the implementation of the AtkImage interface,
        containing the related code from WebKitAccessibleWrapperAtk.cpp.

        * accessibility/gtk/WebKitAccessibleInterfaceImage.cpp: Added.
        (core):
        (webkitAccessibleImageInterfaceInit):
        (webkitAccessibleImageGetImagePosition):
        (webkitAccessibleImageGetImageDescription):
        (webkitAccessibleImageGetImageSize):
        * accessibility/gtk/WebKitAccessibleInterfaceImage.h: Added.
        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
        related to the implementation of the AtkImage interface.

        Add new files to build files.

        * GNUmakefile.list.am: Add WebKitAccessibleInterfaceImage.[h|cpp].
        * WebCore.gypi: Ditto.

2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        New files for the implementation of the AtkHypertext interface,
        containing the related code from WebKitAccessibleWrapperAtk.cpp.

        * accessibility/gtk/WebKitAccessibleInterfaceHypertext.cpp: Added.
        (core):
        (webkitAccessibleHypertextInterfaceInit):
        (webkitAccessibleHypertextGetLink):
        (webkitAccessibleHypertextGetNLinks):
        (webkitAccessibleHypertextGetLinkIndex):
        * accessibility/gtk/WebKitAccessibleInterfaceHypertext.h: Added.
        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
        related to the implementation of the AtkHypertext interface.

        Add new files to build files.

        * GNUmakefile.list.am: Add WebKitAccessibleInterfaceHypertext.[h|cpp].
        * WebCore.gypi: Ditto.

2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        New files for the implementation of the AtkHyperlinkImpl interface,
        containing the related code from WebKitAccessibleWrapperAtk.cpp.

        * accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.cpp: Added.
        (webkitAccessibleHyperlinkImplInterfaceInit):
        (webkitAccessibleHyperlinkImplGetHyperlink):
        * accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.h: Added.
        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
        related to the implementation of the AtkHyperlinkImpl interface.
        (webkit_accessible_class_init):

        Add new files to build files.

        * GNUmakefile.list.am: Add WebKitAccessibleInterfaceHyperlinkImpl.[h|cpp].
        * WebCore.gypi: Ditto.

2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        New files for the implementation of the AtkEditableText interface,
        containing the related code from WebKitAccessibleWrapperAtk.cpp.

        * accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp: Added.
        (core):
        (webkitAccessibleEditableTextInterfaceInit):
        (webkitAccessibleEditableTextSetRunAttributes):
        (webkitAccessibleEditableTextSetTextContents):
        (webkitAccessibleEditableTextInsertText):
        (webkitAccessibleEditableTextCopyText):
        (webkitAccessibleEditableTextCutText):
        (webkitAccessibleEditableTextDeleteText):
        (webkitAccessibleEditableTextPasteText):
        * accessibility/gtk/WebKitAccessibleInterfaceEditableText.h: Added.
        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
        related to the implementation of the AtkEditableText interface.

        Add new files to build files.

        * GNUmakefile.list.am: Add WebKitAccessibleInterfaceEditableText.[h|cpp].
        * WebCore.gypi: Ditto.

2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        New files for the implementation of the AtkDocument interface,
        containing the related code from WebKitAccessibleWrapperAtk.cpp.

        * accessibility/gtk/WebKitAccessibleInterfaceDocument.cpp: Added.
        (core):
        (documentAttributeValue):
        (webkitAccessibleDocumentInterfaceInit):
        (webkitAccessibleDocumentGetAttributeValue):
        (webkitAccessibleDocumentGetAttributes):
        (webkitAccessibleDocumentGetLocale):
        * accessibility/gtk/WebKitAccessibleInterfaceDocument.h: Added.

        Move common function addAttributeToSet() out from the wrapper to
        the utility file, used from WebKitAccessibleInterfaceDocument.cpp.

        * accessibility/gtk/WebKitAccessibleUtil.cpp:
        (addToAtkAttributeSet): Taken from WebKitAccessibleWrapperAtk.cpp.
        * accessibility/gtk/WebKitAccessibleUtil.h:
        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove local
        implementation of addAttributeToSet, as well as all the code related
        to the implementation of the AtkDocument interface.

        Add new files to build files.

        * GNUmakefile.list.am: Add WebKitAccessibleInterfaceDocument.[h|cpp].
        * WebCore.gypi: Ditto.

2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        New files for the implementation of the AtkComponent interface,
        containing the related code from WebKitAccessibleWrapperAtk.cpp.

        * accessibility/gtk/WebKitAccessibleInterfaceComponent.cpp: Added.
        (core):
        (atkToContents):
        (webkitAccessibleComponentInterfaceInit):
        (webkitAccessibleComponentRefAccessibleAtPoint):
        (webkitAccessibleComponentGetExtents):
        (webkitAccessibleComponentGrabFocus):
        * accessibility/gtk/WebKitAccessibleInterfaceComponent.h: Added.

        Move common function contentsToAtk() out from the wrapper to the
        utility file, used from WebKitAccessibleInterfaceComponent.cpp.

        * accessibility/gtk/WebKitAccessibleUtil.cpp:
        (contentsRelativeToAtkCoordinateType): Taken from WebKitAccessibleWrapperAtk.cpp.
        * accessibility/gtk/WebKitAccessibleUtil.h:
        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove local
        implementation of contentsToAtk, as well as all the code related
        to the implementation of the AtkComponent interface.

        Add new files to build files.

        * GNUmakefile.list.am: Add WebKitAccessibleInterfaceComponent.[h|cpp].
        * WebCore.gypi: Ditto.

2012-01-24  Kentaro Hara  <haraken@chromium.org>

        [Refactoring] Makes finish() of CodeGeneratorV8.pm empty
        https://bugs.webkit.org/show_bug.cgi?id=76841

        Reviewed by Adam Barth.

        This is one of steps to stop rebuilding .h/.cpp files
        generated by unchanged IDLs (bug 76836).

        As refactoring, we are planning to remove finish() from
        all CodeGenerators. This patch makes finish() of
        CodeGeneratorV8.pm empty.

        No new tests. No change in behavior.

        * bindings/scripts/CodeGeneratorV8.pm:
        (finish): Made it empty. We will remove finish() after
        making finish() of all CodeGenerators empty.
        (GenerateInterface): Modified to call WriteData().
        (WriteData): Simple code refactoring.
        Removed if(defined $IMPL).
        Removed if(defined $HEADER).
        $IMPL -> IMPL.
        $HEADER -> HEADER.

2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>

        Unreviewed build fix for GTK after r105698.

        * bindings/js/JSPeerConnectionCustom.cpp:
        (WebCore::JSPeerConnectionConstructor::constructJSPeerConnection):

2012-01-24  Kent Tamura  <tkent@chromium.org>

        Fix build erros on Mac by r105706.
        https://bugs.webkit.org/show_bug.cgi?id=76763

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::compressedTexImage2D): Removed unused argument names.
        (WebCore::WebGLRenderingContext::compressedTexSubImage2D): ditto.

2012-01-23  Kent Tamura  <tkent@chromium.org>

        Introduce RadioButtonGroup class to keep track of the group members and required state
        https://bugs.webkit.org/show_bug.cgi?id=74909

        Reviewed by Darin Adler.

        RadioButtonGroup contains a set of member radio buttons in the group,
        and "required" status of the group. This helps implementing correct
        radio button validity, and improving performance of updating validity
        status of radio buttons.

        This change fixes the following bugs:
        - A radio button should be "required" if one of a member of the same
          group has the "required" attribute.
          https://bugs.webkit.org/show_bug.cgi?id=76365
        - :invalid style is not applied when a checked radio button is removed
          from its radio group
          https://bugs.webkit.org/show_bug.cgi?id=74914
        - Loading a page with N radio buttons in a group takes O(N^2) time.

        Tests: fast/forms/radio/radio-live-validation-style.html
               perf/adding-radio-buttons.html

        * dom/CheckedRadioButtons.cpp:
        (WebCore::RadioButtonGroup::isEmpty):
        (WebCore::RadioButtonGroup::isRequired):
        (WebCore::RadioButtonGroup::checkedButton):
        (WebCore::RadioButtonGroup::RadioButtonGroup):
        (WebCore::RadioButtonGroup::create):
        (WebCore::RadioButtonGroup::isValid):
        (WebCore::RadioButtonGroup::setCheckedButton):
        (WebCore::RadioButtonGroup::add):
        (WebCore::RadioButtonGroup::updateCheckedState):
        (WebCore::RadioButtonGroup::requiredAttributeChanged):
        (WebCore::RadioButtonGroup::remove):
        (WebCore::RadioButtonGroup::setNeedsValidityCheckForAllButtons):
        Add RadioButtonGroup class. It keeps track of pointers to member radio
        buttons and required status of the group in addition to the checked
        radio button pointer.

        (WebCore::CheckedRadioButtons::CheckedRadioButtons):
        (WebCore::CheckedRadioButtons::~CheckedRadioButtons):
        Define empty constructor and destructor in order to avoid exposing
        RadioButtonGroup class.

        (WebCore::CheckedRadioButtons::addButton):
        (WebCore::CheckedRadioButtons::updateCheckedState):
        (WebCore::CheckedRadioButtons::requiredAttributeChanged):
        (WebCore::CheckedRadioButtons::checkedButtonForGroup):
        (WebCore::CheckedRadioButtons::isInRequiredGroup):
        (WebCore::CheckedRadioButtons::removeButton):
        Change the HashMap member of this class so that it maps a group name to
        a RadioButtonGroup object. These functions just get a RadioButtonGroup
        object and call a corresponding member function of RadioButtonGroup.

        * dom/CheckedRadioButtons.h: Update declarations.

        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::parseMappedAttribute):
        (WebCore::HTMLFormControlElement::requiredAttributeChanged):
        Move a part of parseMappedAttribute() into requiredAttributeChanged().
        * html/HTMLFormControlElement.h: Add requiredAttributeChanged().
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::valueMissing):
        Move required check code to InputType::valueMissing implementations.
        RadioInputType needs special handling for checking required state.
        readOnly() and disabled() are unnecessary because willValidate() checks them.
        (WebCore::HTMLInputElement::setChecked):
        Call new function CheckedRadioButtons::updateCheckedState() instead of
        removeButton() and updateCheckedRadioButtons().
        (WebCore::HTMLInputElement::requiredAttributeChanged):
        Override this to call CheckedRadioButtons::requiredAttributeChanged().
        * html/HTMLInputElement.h: Add requiredAttributeChanged().
        * html/RadioInputType.cpp:
        (WebCore::RadioInputType::valueMissing):
        Check required state by CheckedRadioButtons::isInRequiredGroup().
        * html/RadioInputType.h: Remove attach().

        * html/CheckboxInputType.cpp:
        (WebCore::CheckboxInputType::valueMissing):
          Move required check from HTMLInputElement::valueMissing().
        * html/FileInputType.cpp:
        (WebCore::FileInputType::valueMissing): ditto.
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::valueMissing): ditto.

2012-01-24  Noel Gordon  <noel.gordon@gmail.com>

        [chromium] PNG image with CMYK ICC color profile renders color-inverted and squashed
        https://bugs.webkit.org/show_bug.cgi?id=76804

        Reviewed by Adam Barth.

        Use color profiles for PNG images only if their embedded color profile is from an RGB
        color space input device.

        Test: fast/images/rgb-png-with-cmyk-color-profile.html

        * platform/image-decoders/ImageDecoder.h:
        (WebCore::ImageDecoder::rgbColorProfile): Return true if the profile has an RGB color space.
        (WebCore::ImageDecoder::inputDeviceColorProfile): Return true if the profile is from an input device.
        * platform/image-decoders/png/PNGImageDecoder.cpp:
        (WebCore::readColorProfile): Ignore PNG image embedded color profile unless the profile
        comes from an RGB color space input device.
        (WebCore::PNGImageDecoder::headerAvailable): Minor white-space removals courtesy Xcode.

2012-01-23  Pavel Podivilov  <podivilov@chromium.org>

        Web Inspector: fix sticky DOM breakpoints.
        https://bugs.webkit.org/show_bug.cgi?id=64437

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/DOMBreakpointsSidebarPane.js:
        (WebInspector.DOMBreakpointsSidebarPane.prototype._inspectedURLChanged):

2012-01-24  Gregg Tavares  <gman@google.com>

        Expose WebGL texture compression methods on WebGLRenderingContext
        https://bugs.webkit.org/show_bug.cgi?id=76763

        Reviewed by Kenneth Russell.

        Test: fast/canvas/webgl/compressed-tex-image.html

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::compressedTexImage2D):
        (WebCore::WebGLRenderingContext::compressedTexSubImage2D):
        * html/canvas/WebGLRenderingContext.h:
        * html/canvas/WebGLRenderingContext.idl:

2012-01-24  Kenichi Ishibashi  <bashi@chromium.org>

        [V8] Add Uint8ClampedArray support
        https://bugs.webkit.org/show_bug.cgi?id=76803

        Reviewed by Kenneth Russell.

        No new tests. fast/js/script-tests/dfg-uint8clampedarray.js should pass on chromium port.

        * WebCore.gypi: Added required files.
        * bindings/scripts/CodeGeneratorV8.pm:
        (IsTypedArrayType): Added Uint8ClampedArray.
        * bindings/v8/SerializedScriptValue.cpp: Added the tag for Uint8ClampedArray.
        (WebCore::V8ObjectMap::Writer::writeArrayBufferView): Appends the tag when buffer is Uint8ClampedArray.
        (WebCore::V8ObjectMap::Reader::readArrayBufferView): Creates Uint8ClampedArray instance when the tag represents Uint8ClampedArray.
        * bindings/v8/custom/V8ArrayBufferViewCustomScript.js:
        * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp: Added.
        (WebCore::V8Uint8ClampedArray::constructorCallback):
        (WebCore::V8Uint8ClampedArray::setCallback):
        (WebCore::toV8):
        * page/Crypto.cpp: Added isUnsignedByteClampedArray() call to isIntegerArray().
        * page/DOMWindow.idl: Removed ifdefs.
        * workers/WorkerContext.idl: Added Uint8ArrayConstructor.

2012-01-24  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed build fix for GTK Debug build after r105698.

        * bindings/js/JSNavigatorCustom.cpp:
        (WebCore::JSNavigator::webkitGetUserMedia):

2012-01-23  Scott Graham  <scottmg@chromium.org>

        Avoid spurious rebuilds on vs2010 due to DerivedSources not existing
        https://bugs.webkit.org/show_bug.cgi?id=76873

        Reviewed by Adam Barth.

        * WebCore.gyp/WebCore.gyp:

2012-01-23  Geoffrey Garen  <ggaren@apple.com>

        JSValue::toString() should return a JSString* instead of a UString
        https://bugs.webkit.org/show_bug.cgi?id=76861

        Reviewed by Gavin Barraclough.

        Mechanical changes to call value() after calling toString(), to
        convert from "JS string" (JSString*) to "C++ string" (UString), since
        toString() no longer returns a "C++ string".

        * bindings/js/IDBBindingUtilities.cpp:
        (WebCore::createIDBKeyFromValue):
        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        (WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):
        * bindings/js/JSClipboardCustom.cpp:
        (WebCore::JSClipboard::clearData):
        (WebCore::JSClipboard::getData):
        * bindings/js/JSCustomXPathNSResolver.cpp:
        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
        * bindings/js/JSDOMBinding.cpp:
        (WebCore::valueToStringWithNullCheck):
        (WebCore::valueToStringWithUndefinedOrNullCheck):
        (WebCore::reportException):
        * bindings/js/JSDOMFormDataCustom.cpp:
        (WebCore::JSDOMFormData::append):
        * bindings/js/JSDOMStringMapCustom.cpp:
        (WebCore::JSDOMStringMap::putDelegate):
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::setLocation):
        (WebCore::JSDOMWindow::open):
        (WebCore::JSDOMWindow::addEventListener):
        (WebCore::JSDOMWindow::removeEventListener):
        * bindings/js/JSDeviceMotionEventCustom.cpp:
        (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
        * bindings/js/JSDeviceOrientationEventCustom.cpp:
        (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
        * bindings/js/JSDictionary.cpp:
        (WebCore::JSDictionary::convertValue):
        * bindings/js/JSDocumentCustom.cpp:
        (WebCore::JSDocument::setLocation):
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::handleEvent):
        * bindings/js/JSHTMLAllCollectionCustom.cpp:
        (WebCore::callHTMLAllCollection):
        (WebCore::JSHTMLAllCollection::item):
        (WebCore::JSHTMLAllCollection::namedItem):
        * bindings/js/JSHTMLCanvasElementCustom.cpp:
        (WebCore::JSHTMLCanvasElement::getContext):
        * bindings/js/JSHTMLCollectionCustom.cpp:
        (WebCore::JSHTMLCollection::item):
        (WebCore::JSHTMLCollection::namedItem):
        * bindings/js/JSHTMLDocumentCustom.cpp:
        (WebCore::documentWrite):
        * bindings/js/JSHTMLInputElementCustom.cpp:
        (WebCore::JSHTMLInputElement::setSelectionDirection):
        (WebCore::JSHTMLInputElement::setSelectionRange):
        * bindings/js/JSInspectorFrontendHostCustom.cpp:
        (WebCore::JSInspectorFrontendHost::showContextMenu):
        * bindings/js/JSJavaScriptCallFrameCustom.cpp:
        (WebCore::JSJavaScriptCallFrame::evaluate):
        * bindings/js/JSLocationCustom.cpp:
        (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::assign):
        * bindings/js/JSMessageEventCustom.cpp:
        (WebCore::handleInitMessageEvent):
        * bindings/js/JSSQLTransactionCustom.cpp:
        (WebCore::JSSQLTransaction::executeSql):
        * bindings/js/JSSQLTransactionSyncCustom.cpp:
        (WebCore::JSSQLTransactionSync::executeSql):
        * bindings/js/JSSharedWorkerCustom.cpp:
        (WebCore::JSSharedWorkerConstructor::constructJSSharedWorker):
        * bindings/js/JSStorageCustom.cpp:
        (WebCore::JSStorage::putDelegate):
        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::JSWebGLRenderingContext::getExtension):
        * bindings/js/JSWebSocketCustom.cpp:
        (WebCore::JSWebSocketConstructor::constructJSWebSocket):
        (WebCore::JSWebSocket::send):
        (WebCore::JSWebSocket::close):
        * bindings/js/JSWorkerContextCustom.cpp:
        (WebCore::JSWorkerContext::importScripts):
        * bindings/js/JSWorkerCustom.cpp:
        (WebCore::JSWorkerConstructor::constructJSWorker):
        * bindings/js/JSXMLHttpRequestCustom.cpp:
        (WebCore::JSXMLHttpRequest::open):
        (WebCore::JSXMLHttpRequest::send):
        * bindings/js/JSXSLTProcessorCustom.cpp:
        (WebCore::JSXSLTProcessor::setParameter):
        (WebCore::JSXSLTProcessor::getParameter):
        (WebCore::JSXSLTProcessor::removeParameter):
        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::create):
        * bindings/js/ScriptEventListener.cpp:
        (WebCore::eventListenerHandlerBody):
        * bindings/js/ScriptValue.cpp:
        (WebCore::ScriptValue::toString):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateEventListenerCall):
        (JSValueToNative):
        (GenerateConstructorDefinition):
        * bridge/c/c_utility.cpp:
        (JSC::Bindings::convertValueToNPVariant):
        * bridge/jni/jni_jsobject.mm:
        (JavaJSObject::convertValueToJObject):
        * bridge/jni/jsc/JNIUtilityPrivate.cpp:
        (JSC::Bindings::convertArrayInstanceToJavaArray):
        (JSC::Bindings::convertValueToJValue):
        * bridge/jni/jsc/JavaFieldJSC.cpp:
        (JavaField::dispatchValueFromInstance):
        (JavaField::valueFromInstance):
        (JavaField::dispatchSetValueToInstance):
        (JavaField::setValueToInstance):
        * bridge/jni/jsc/JavaInstanceJSC.cpp:
        (JavaInstance::invokeMethod):
        * testing/js/JSInternalsCustom.cpp:
        (WebCore::JSInternals::setUserPreferredLanguages):

2012-01-23  Kentaro Hara  <haraken@chromium.org>

        In CodeGeneratorObjC.pm, overwrite the output .h/.mm
        only if the bytes differ
        https://bugs.webkit.org/show_bug.cgi?id=76874

        Reviewed by Adam Barth.

        This is one of steps to stop rebuilding .h/.cpp/.mm files
        generated by unchanged IDLs (bug 76836).
        This patch makes a change on CodeGeneratorObjC.pm so that
        it overwrites the output .h/.mm only if the bytes differ.

        No tests. No change in behavior.
        I manually confirmed that when I add a new attribute to Element.idl,
        the time-stamps of unrelated DOM*.h and DOM*.mm do not change.

        * bindings/scripts/CodeGenerator.pm:
        (UpdateFileIfChanged): Added. This method writes data to a file
        only if the data is different from the data in the current file.
        * bindings/scripts/CodeGeneratorObjC.pm:
        (WriteData): Used UpdateFileIfChanged().

2012-01-23  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION: Downloaded file name fallback encodings are not set correctly
        https://bugs.webkit.org/show_bug.cgi?id=76862

        Reviewed by Adam Barth.

        Tests: http/tests/download/default-encoding.html
               http/tests/download/form-submission-result.html
               http/tests/download/inherited-encoding.html
               http/tests/download/literal-utf-8.html

        * loader/DocumentWriter.cpp:
        * loader/DocumentWriter.h:
        Removed deprecatedFrameEncoding. Due to changes in Document::encoding behavior, it can now
        be used in its place.

        * loader/FrameLoader.cpp: (WebCore::FrameLoader::addExtraFieldsToRequest): Instead of hunting
        down a correct loader (and active one is not always correct any more), just use opening document's
        encoding.

2012-01-23  Ojan Vafai  <ojan@chromium.org>

        Implement flex-pack:distribute
        https://bugs.webkit.org/show_bug.cgi?id=76864

        Reviewed by Tony Chang.

        See http://dev.w3.org/csswg/css3-flexbox/#flex-pack.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator EFlexPack):
        * css/CSSValueKeywords.in:
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::initialPackingOffset):
        (WebCore::packingSpaceBetweenChildren):
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
        (WebCore::RenderFlexibleBox::layoutColumnReverse):
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleFlexibleBoxData.h:

2012-01-23  Luke Macpherson   <macpherson@chromium.org>

        Implement CSS clip property in CSSStyleApplyProperty.
        https://bugs.webkit.org/show_bug.cgi?id=74913

        Reviewed by Andreas Kling.

        No new tests / refactoring only.

        * css/CSSPrimitiveValue.h:
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::convertToLength):
        This new function aims to provide a single call for converting many CSSPrimitiveValue
        values to Lengths. It is templated to allow the caller to specify which conversions
        are appropriate depending on the context in which the value is used.
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyClip::convertToLength):
        (WebCore::ApplyPropertyClip::applyInheritValue):
        (WebCore::ApplyPropertyClip::applyInitialValue):
        (WebCore::ApplyPropertyClip::applyValue):
        (WebCore::ApplyPropertyClip::createHandler):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):

2012-01-23  Tom Sepez  <tsepez@chromium.org>

        decodeEscapeSequences() not correct for some encodings (GBK, Big5, ...).
        https://bugs.webkit.org/show_bug.cgi?id=71316

        Reviewed by Daniel Bates.

        Pass trailing unescaped bytes into the character set decoder to get correct
        results in the presence of encodings which re-use ASCII values in sequences.
        
        Tests: http/tests/navigation/anchor-frames-gbk.html
               http/tests/security/xssAuditor/iframe-onload-GBK-char.html
               http/tests/security/xssAuditor/img-onerror-GBK-char.html
               http/tests/security/xssAuditor/script-tag-Big5-char-twice-url-encode-16bit-unicode.html
               http/tests/security/xssAuditor/script-tag-Big5-char-twice-url-encode.html
               http/tests/security/xssAuditor/script-tag-Big5-char.html
               http/tests/security/xssAuditor/script-tag-Big5-char2.html

        * platform/text/DecodeEscapeSequences.h:
        (WebCore::Unicode16BitEscapeSequence::findInString):
        (WebCore::Unicode16BitEscapeSequence::findEndOfRun):
        (WebCore::Unicode16BitEscapeSequence::decodeRun):
        (WebCore::URLEscapeSequence::findInString):
        (WebCore::URLEscapeSequence::findEndOfRun):
        (WebCore::URLEscapeSequence::decodeRun):
        (WebCore::decodeEscapeSequences):

2012-01-23  Adam Barth  <abarth@webkit.org>

        Fix a build break in a clean compile of the Chromium port (at least
        reported by tbreisacher).

        * css/CSSStyleDeclaration.cpp:

2012-01-23  Zan Dobersek  <zandobersek@gmail.com>

        [GTK] editing/deleting/5408255.html results are incorrect
        https://bugs.webkit.org/show_bug.cgi?id=53644

        Reviewed by Martin Robinson.

        When the WEBKIT_TOP_LEVEL environment variable is set, resources
        should be loaded from the source tree to which the variable is
        pointing. This approach is used when performing testing on the
        Gtk port.

        No new tests, changes cause one test to pass.

        * platform/graphics/gtk/ImageGtk.cpp:
        (getPathToImageResource): Also make changes to the resource path
        construction code on Windows.
        (WebCore::Image::loadPlatformResource):

2012-01-23  Julien Chaffraix  <jchaffraix@webkit.org>

        Crash in WebCore::RenderTableSection::rowLogicalHeightChanged
        https://webkit.org/b/76842

        Reviewed by Darin Adler.

        Test: fast/table/crash-section-logical-height-changed-needsCellRecalc.html

        The issue was that we would access our section's structure when it was dirty.

        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::rowLogicalHeightChanged):
        Bail out if we need cells recalculation as our internal structure is not up-to-date
        and we will recompute all the rows' heights as part of the recomputation anyway.

2012-01-23  Kentaro Hara  <haraken@chromium.org>

        [Refactoring] Make finish() of CodeGeneratorJS.pm empty
        https://bugs.webkit.org/show_bug.cgi?id=76846

        Reviewed by Adam Barth.

        This is one of steps to stop rebuilding .h/.cpp files generated
        by unchanged IDLs (bug 76836).

        As a refactoring, we are planning to remove finish() from all
        CodeGenerators. In this bug, we make finish() of CodeGeneratorJS.pm
        empty.

        No new tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (finish): Made it empty. We will remove finish() after
        making finish() of all CodeGenerators empty.
        (GenerateInterface): Modified to call WriteData().
        (WriteData): Simple code refactoring.
        Removed if(defined $IMPL).
        Removed if(defined $HEADER).
        Removed if(defined $DEPS).
        $IMPL -> IMPL.
        $HEADER -> HEADER.
        $DEPS -> DEPS.

2012-01-23  Shawn Singh  <shawnsingh@chromium.org>

        [chromium] updateRect is incorrect when contentBounds != bounds
        https://bugs.webkit.org/show_bug.cgi?id=72919

        Reviewed by James Robinson.

        Unit test added to TiledLayerChromiumTest.cpp

        The m_updateRect member in LayerChromium types is used to track
        what was painted for that layer. For tiled layers (especially
        image layers), the updateRect was being given with respect to the
        size of the content, rather than the size of the layer. This patch
        adds a conversion so that updateRect is always with respect to the
        layer size, so that damage tracking will work correctly in those
        cases.

        * platform/graphics/chromium/LayerChromium.h:
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::updateCompositorResources):

2012-01-23  Konrad Piascik  <kpiascik@rim.com>

        Web Inspector: Make "Copy as HTML" use the same copy functions as other copy methods.
        https://bugs.webkit.org/show_bug.cgi?id=76706

        Reviewed by Pavel Feldman.

        Changed DOMAgent.copyNode to call getOuterHTML and use the callback function to
        return the text to InspectorFrontendHost.copyText.  This will make all copy
        functions use the same code path.

        Not testable.

        * inspector/Inspector.json:
        * inspector/InspectorDOMAgent.cpp:
        * inspector/InspectorDOMAgent.h:
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMNode.prototype.copyNode.copy):
        (WebInspector.DOMNode.prototype.copyNode):

2012-01-23  Luke Macpherson   <macpherson@chromium.org>

        Make zoom multiplier float instead of double to match RenderStyle::effectiveZoom etc. and thus avoid unnecessary precision conversions.
        https://bugs.webkit.org/show_bug.cgi?id=69490

        Reviewed by Andreas Kling.

        Covered by existing tests.

        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::computeLength):
        Use float multiplier instead of double.
        (WebCore::CSSPrimitiveValue::computeLengthDouble):
        Use float multiplier instead of double.
        * css/CSSPrimitiveValue.h:
        Change type signatures of computeLength template prototype.

2012-01-23  Priit Laes  <plaes@plaes.org>

        [GTK][PATCH] More build silencing with (AM_V_...)
        https://bugs.webkit.org/show_bug.cgi?id=76791

        Reviewed by Gustavo Noronha Silva.

        * GNUmakefile.am: Silence is golden...

2012-01-23  Arko Saha  <nghq36@motorola.com>

        MicroData: Remove ExceptionCode& from setAttribute() call.
        https://bugs.webkit.org/show_bug.cgi?id=76695

        Reviewed by Hajime Morita.

        Changeset http://trac.webkit.org/changeset/103296 removed unused
        ExceptionCode& argument from Element::setAttribute(QualifiedName).
        Hence updating all calls to setAttribute() method in MicroData code.

        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::setItemValueText):
        * html/HTMLAreaElement.cpp:
        (WebCore::HTMLAreaElement::setItemValueText):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::setItemValueText):
        * html/HTMLIFrameElement.cpp:
        (WebCore::HTMLIFrameElement::setItemValueText):
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::setItemValueText):
        * html/HTMLLinkElement.cpp:
        (WebCore::HTMLLinkElement::setItemValueText):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::setItemValueText):
        * html/HTMLMetaElement.cpp:
        (WebCore::HTMLMetaElement::setItemValueText):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::setItemValueText):
        * html/HTMLSourceElement.cpp:
        (WebCore::HTMLSourceElement::setItemValueText):
        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::setItemValueText):

2012-01-23  Hayato Ito  <hayato@chromium.org>

        Fix crash when a focused node is removed while in processing focusin event.
        https://bugs.webkit.org/show_bug.cgi?id=76656

        Reviewed by Dimitri Glazkov.

        Test: fast/events/focus-remove-focuesed-node.html

        * dom/Document.cpp:
        (WebCore::Document::setFocusedNode):

2012-01-23  David Levin  <levin@chromium.org>

        [windows] Convert usages of GetDC to HWndDC Part 1.
        https://bugs.webkit.org/show_bug.cgi?id=76744

        Reviewed by Adam Roben.

        No new functionality so no new tests.

        * platform/graphics/win/FontCacheWin.cpp:
        (WebCore::FontCache::getFontDataForCharacters): Changed GetDC to HWndDC
        and removed ReleaseDC.
        (WebCore::createGDIFont): Ditto.
        (WebCore::FontCache::getTraitsInFamily): Ditto.
        * platform/graphics/win/FontPlatformDataWin.cpp:
        (WebCore::FontPlatformData::FontPlatformData): Ditto.
        * platform/graphics/win/SimpleFontDataCGWin.cpp:
        (WebCore::SimpleFontData::platformInit): Ditto.
        * platform/graphics/win/SimpleFontDataWin.cpp:
        (WebCore::SimpleFontData::initGDIFont): Ditto.
        (WebCore::SimpleFontData::containsCharacters): Ditto.
        (WebCore::SimpleFontData::determinePitch): Ditto.
        (WebCore::SimpleFontData::boundsForGDIGlyph): Ditto.
        (WebCore::SimpleFontData::widthForGDIGlyph): Ditto.
        (WebCore::SimpleFontData::scriptFontProperties): Ditto.
        * platform/win/CursorWin.cpp:
        (WebCore::createSharedCursor): Ditto.
        * platform/win/DragImageCGWin.cpp:
        (WebCore::scaleDragImage): Ditto.
        (WebCore::createDragImageFromImage): Ditto.
        * platform/win/DragImageWin.cpp:
        (WebCore::createDragImageForLink): Ditto.
        * platform/win/PasteboardWin.cpp:
        (WebCore::Pasteboard::writeImage): Ditto.

2012-01-23  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Scrollbars do not respect the has-backward-stepper and has-forward-stepper properties
        https://bugs.webkit.org/show_bug.cgi?id=76747

        Reviewed by Gustavo Noronha Silva.

        No new tests. Regressions are covered by existing tests, but testing
        different GTK+ theme configurations is not possible yet.

        * platform/gtk/ScrollbarThemeGtk.cpp:
        (WebCore::ScrollbarThemeGtk::backButtonRect): If there is no back stepper, return an empty rect.
        (WebCore::ScrollbarThemeGtk::forwardButtonRect): If there is no forward stepper, return an empty rect.
        (WebCore::ScrollbarThemeGtk::trackRect): Adjust track rect calculation to account for when there is
        no steppers.
        * platform/gtk/ScrollbarThemeGtk.h: New members describing whether there are primary steppers.
        * platform/gtk/ScrollbarThemeGtk2.cpp:
        (WebCore::ScrollbarThemeGtk::updateThemeProperties): Look at the theme to determine if there
        are primary foward and back steppers.
        * platform/gtk/ScrollbarThemeGtk3.cpp:
        (WebCore::ScrollbarThemeGtk::updateThemeProperties): Ditto.

2012-01-23  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r105396): drag state is not cleared after each drag
        https://bugs.webkit.org/show_bug.cgi?id=76878

        Reviewed by Alexey Proskuryakov.

        Revert a part of r105396 that made performDragAndDrop not call clearDragState
        when the default action was not prevented since it caused a regression.

        I'm pretty certain always calling clearDragState in performDragAndDrop is wrong
        but I can't think of a test case where this becomes a problem at the moment.
        Since this area is not well tested, revert the change instead of making further
        changes to the code base.

        Tests: fast/events/clear-drag-state.html
               fast/events/clear-edit-drag-state.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::performDragAndDrop):

2012-01-23  Thiago Marcos P. Santos  <tmpsantos@gmail.com>

        Fixed typo in exception messages
        https://bugs.webkit.org/show_bug.cgi?id=76710

        Reviewed by Alexey Proskuryakov.

        * dom/DOMCoreException.cpp:
        * fileapi/FileException.cpp:
        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::openTransactionAndPreflight):
        (WebCore::SQLTransaction::postflightAndCommit):
        * xml/XMLHttpRequestException.cpp:

2012-01-18  David Levin  <levin@chromium.org>

        Allow delayed DC allocation in HWndDC.
        https://bugs.webkit.org/show_bug.cgi?id=76737

        Reviewed by Adam Roben.

        No new functionality exposed so no new tests.

        * platform/win/HWndDC.h: Changed this slightly to allow
        for allocating a window DC after the initial creation since
        this pattern occurrs in several places so this makes it easy to
        replace them in an upcoming change.
        (WebCore::HWndDC::HWndDC):
        (WebCore::HWndDC::~HWndDC):
        (WebCore::HWndDC::setHWnd):
        (WebCore::HWndDC::clear):

2012-01-23  Arko Saha  <nghq36@motorola.com>

        MicroData: Compilation error while building Webkit with --microdata.
        https://bugs.webkit.org/show_bug.cgi?id=76703

        Reviewed by Hajime Morita.

        * dom/MicroDataItemList.cpp:
        (WebCore::MicroDataItemList::MicroDataItemList):
        (WebCore::MicroDataItemList::~MicroDataItemList):
        * dom/MicroDataItemList.h:
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::properties):
        * html/HTMLPropertiesCollection.cpp:
        (WebCore::HTMLPropertiesCollection::create):
        (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
        * html/HTMLPropertiesCollection.h:

2012-01-13  David Levin  <levin@chromium.org>

        [chromium] Convert uses of GetDC to HWndDC.
        https://bugs.webkit.org/show_bug.cgi?id=76290

        Reviewed by Dmitry Titov.

        * platform/graphics/chromium/FontCacheChromiumWin.cpp:
        (WebCore::createFontIndirectAndGetWinName):
        (WebCore::fontContainsCharacter):
        (WebCore::FontCache::getLastResortFallbackFont):
        (WebCore::FontCache::getTraitsInFamily):
        * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
        (WebCore::FontPlatformData::scriptFontProperties):
        * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
        (WebCore::FontMap::getAscent):
        (WebCore::FontMap::getSpaceGlyph):
        * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
        (WebCore::fillBMPGlyphs):
        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::determinePitch):
        (WebCore::SimpleFontData::platformWidthForGlyph):
        * platform/graphics/chromium/UniscribeHelper.cpp:
        (WebCore::UniscribeHelper::EnsureCachedDCCreated):
        * rendering/RenderThemeChromiumWin.cpp:
        (WebCore::systemFontSize):
        (WebCore::pointsToPixels):

2012-01-23  Joe Thomas  <joethomas@motorola.com>

        https://bugs.webkit.org/show_bug.cgi?id=75799
        Calling intersectsNode on a detached range should throw.

        INVALID_STATE_ERR exception should be thrown if intersectsNode is called on a detached Range.

        Reviewed by Darin Adler.

        Test: fast/dom/Range/range-intersectsNode-exception.html

        * dom/Range.cpp:
        (WebCore::Range::intersectsNode): Throwing INVALID_STATE_ERR exception if the range is detached.

2012-01-23  Daniel Cheng  <dcheng@chromium.org>

        Convert DataTransferItem/DataTransferItemList back into an interface class
        https://bugs.webkit.org/show_bug.cgi?id=76856

        When Qt implemented the DataTransferItemList, a lot of logic was moved into the shared
        classes since Chromium/Qt happened to implement it the same way. Now that I want to do some
        refactoring/cleanup work to better implement DataTransferItemList in Chromium, we won't
        share the same data anymore so it doesn't make sense to keep that code in a common location.

        Reviewed by David Levin.

        Covered by existing tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DataTransferItem.cpp:
        * dom/DataTransferItem.h:
        * dom/DataTransferItemList.cpp: Removed.
        * dom/DataTransferItemList.h:
        * platform/chromium/ClipboardChromium.cpp:
        (WebCore::ClipboardChromium::mayUpdateItems):
        * platform/chromium/DataTransferItemChromium.cpp:
        (WebCore::DataTransferItemChromium::create):
        (WebCore::DataTransferItemChromium::DataTransferItemChromium):
        (WebCore::DataTransferItemChromium::getAsString):
        (WebCore::DataTransferItemChromium::getAsFile):
        (WebCore::DataTransferItemChromium::clipboardChromium):
        * platform/chromium/DataTransferItemChromium.h:
        (WebCore::DataTransferItemChromium::kind):
        (WebCore::DataTransferItemChromium::type):
        * platform/chromium/DataTransferItemListChromium.cpp:
        (WebCore::DataTransferItemListChromium::DataTransferItemListChromium):
        * platform/chromium/DataTransferItemListChromium.h:
        * platform/qt/DataTransferItemListQt.cpp:
        (WebCore::DataTransferItemListQt::DataTransferItemListQt):
        (WebCore::DataTransferItemListQt::length):
        (WebCore::DataTransferItemListQt::item):
        (WebCore::DataTransferItemListQt::deleteItem):
        (WebCore::DataTransferItemListQt::clear):
        (WebCore::DataTransferItemListQt::add):
        * platform/qt/DataTransferItemListQt.h:
        * platform/qt/DataTransferItemQt.cpp:
        (WebCore::DataTransferItemQt::create):
        (WebCore::DataTransferItemQt::DataTransferItemQt):
        (WebCore::DataTransferItemQt::getAsString):
        (WebCore::DataTransferItemQt::getAsFile):
        * platform/qt/DataTransferItemQt.h:
        (WebCore::DataTransferItemQt::kind):
        (WebCore::DataTransferItemQt::type):

2012-01-23  Andreas Kling  <awesomekling@apple.com>

        Unreviewed buildfix for ENABLE(MUTATION_OBSERVERS) following r105642.

        * css/CSSMutableStyleDeclaration.cpp:

2012-01-23  Philip Rogers  <pdr@google.com>

        Update uniteIfNonZero to use isZero.
        https://bugs.webkit.org/show_bug.cgi?id=76637

        Reviewed by Darin Adler.

        No new tests. (I found no existing codepath that would be affected by
        this change but I think this change is still valuable in preventing
        future bugs.)

        * platform/graphics/FloatRect.cpp:
        (WebCore::FloatRect::uniteIfNonZero):

        The following change is a minor followup to
        https://bugs.webkit.org/show_bug.cgi?id=76177#c12 and is not directly
        related to the rest of this patch.
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::computeContainerBoundingBoxes):

2012-01-23  Antti Koivisto  <antti@apple.com>

        Eliminate CSSElementStyleDeclaration
        https://bugs.webkit.org/show_bug.cgi?id=76848

        Reviewed by Andreas Kling.

        CSSElementStyleDeclaration has little functionality. It can merge with CSSMutableStyleDeclaration simplifying the code.
        
        Having an element parent is mutually exclusive with having a css rule parent. We can keep them in a union. This also
        shrinks all inline style declarations by one pointer.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSDOMBinding.h:
        (WebCore::root):
        * css/CSSAllInOne.cpp:
        * css/CSSElementStyleDeclaration.cpp: Removed.
        * css/CSSElementStyleDeclaration.h: Removed.
        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::setNeedsStyleRecalc):
        * css/CSSMutableStyleDeclaration.h:
        (WebCore::CSSMutableStyleDeclaration::createInline):
        (WebCore::CSSMutableStyleDeclaration::createForSVGFontFaceElement):
        (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
        * css/CSSStyleDeclaration.cpp:
        (WebCore::CSSStyleDeclaration::CSSStyleDeclaration):
        (WebCore::CSSStyleDeclaration::parentStyleSheet):
        
            Merge the CSSElementStyleDeclaration::styleSheet() logic here.
        
        * css/CSSStyleDeclaration.h:
        (WebCore::CSSStyleDeclaration::parentRule):
        (WebCore::CSSStyleDeclaration::clearParentRule):
        (WebCore::CSSStyleDeclaration::parentElement):
        (WebCore::CSSStyleDeclaration::clearParentElement):
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::setSelectorText):
        
            CSSStyleRule's style declaration can't have isElementStyleDeclaration set, the dead code can be removed.
            This is asserted in setDeclaration() and again implicitly in the destructor (by clearParentRule()).
        
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::createInlineStyleDecl):
        (WebCore::StyledElement::destroyInlineStyleDecl):
        (WebCore::StyledElement::ensureInlineStyleDecl):
        (WebCore::StyledElement::copyNonAttributeProperties):
        * dom/StyledElement.h:
        (WebCore::StyledElement::inlineStyleDecl):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
        (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
        * editing/DeleteButtonController.cpp:
        (WebCore::DeleteButtonController::createDeletionUI):
        * html/ValidationMessage.cpp:
        (WebCore::adjustBubblePosition):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlPanelElement::setPosition):
        (WebCore::MediaControlPanelElement::resetPosition):
        (WebCore::MediaControlPanelElement::makeOpaque):
        (WebCore::MediaControlPanelElement::makeTransparent):
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::TrackLimiterElement::create):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::SVGFontFaceElement):

2012-01-23  Benjamin Poulain  <bpoulain@apple.com>

        Use OVERRIDE for PopupMenuClient's implementations
        https://bugs.webkit.org/show_bug.cgi?id=76774

        Reviewed by Darin Adler.

        * rendering/RenderMenuList.h: Also sort the methods to the same
        order as PopupMenuClient.
        * rendering/RenderTextControlSingleLine.h:

2012-01-23  Xianzhu Wang  <wangxianzhu@chromium.org>

        Basic enhancements to StringBuilder
        https://bugs.webkit.org/show_bug.cgi?id=67081

        These changes are because we explicitly disallowed StringBuilder's
        copy constructor and assignment operator, and the change of return
        type of StringBuilder::toString().

        Reviewed by Darin Adler.

        No new tests. All layout tests and unit tests should run as before.

        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::setUpCookiesForQuickTime):
        * svg/SVGPathStringBuilder.h:
        (WebCore::SVGPathStringBuilder::cleanup):

2012-01-23  W. James MacLean  <wjmaclean@chromium.org>

        [chromium] Add WebSolidColorLayer interface to draw non-textured color layers from Aura.
        https://bugs.webkit.org/show_bug.cgi?id=75732

        Reviewed by James Robinson.

        Add WebSolidColorLayer to paint solid-color layers without a backing texture.

        Test: unit test for CCSolidColorLayerImpl.

        * WebCore.gypi:
        * platform/graphics/chromium/SolidColorLayerChromium.cpp: Added.
        (WebCore::SolidColorLayerChromium::createCCLayerImpl):
        (WebCore::SolidColorLayerChromium::create):
        (WebCore::SolidColorLayerChromium::SolidColorLayerChromium):
        (WebCore::SolidColorLayerChromium::~SolidColorLayerChromium):
        * platform/graphics/chromium/SolidColorLayerChromium.h: Added.
        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp: Added.
        (WebCore::CCSolidColorLayerImpl::CCSolidColorLayerImpl):
        (WebCore::CCSolidColorLayerImpl::~CCSolidColorLayerImpl):
        (WebCore::CCSolidColorLayerImpl::quadTransform):
        (WebCore::CCSolidColorLayerImpl::appendQuads):
        * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h: Added.
        (WebCore::CCSolidColorLayerImpl::create):
        (WebCore::CCSolidColorLayerImpl::layerTypeAsString):

2012-01-23  Antti Koivisto  <antti@apple.com>

        Attempt to fix Qt build.
    
        Not reviewed.

        * css/CSSElementStyleDeclaration.cpp:
        * css/CSSElementStyleDeclaration.h:
        (WebCore::CSSElementStyleDeclaration::createForSVGFontFaceElement):

2012-01-23  Andreas Kling  <awesomekling@apple.com>

        Move m_rootEditableElementForSelectionOnMouseDown off of HTMLAnchorElement.
        <http://webkit.org/b/76833>

        Reviewed by Antti Koivisto.

        Move HTMLAnchorElement::m_rootEditableElementForSelectionOnMouseDown to a rare
        data-style hashmap, effectively shrinking HTMLAnchorElement by one CPU word.

        The pointer is only used during interactive event handling, so it shouldn't have
        any noticeable effects on web performance.

        This reduces memory consumption by 256 kB (on 64-bit) when viewing the full
        HTML5 spec at <http://whatwg.org/c>.

        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::HTMLAnchorElement):
        (WebCore::HTMLAnchorElement::~HTMLAnchorElement):
        (WebCore::HTMLAnchorElement::defaultEventHandler):
        (WebCore::HTMLAnchorElement::treatLinkAsLiveForEventType):
        (WebCore::rootEditableElementMap):
        (WebCore::HTMLAnchorElement::rootEditableElementForSelectionOnMouseDown):
        (WebCore::HTMLAnchorElement::setRootEditableElementForSelectionOnMouseDown):
        * html/HTMLAnchorElement.h:

2012-01-23  Antti Koivisto  <antti@apple.com>

        Eliminate CSSElementStyleDeclaration subclasses
        https://bugs.webkit.org/show_bug.cgi?id=76827

        Reviewed by Andreas Kling.

        CSSInlineStyleDeclaration and FontFaceStyleDeclaration serve no real purpose.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSElementStyleDeclaration.cpp:
        (WebCore::CSSElementStyleDeclaration::createForSVGFontFaceElement):
        (WebCore::CSSElementStyleDeclaration::styleSheet):
        * css/CSSElementStyleDeclaration.h:
        (WebCore::CSSElementStyleDeclaration::createInline):
        (WebCore::toCSSElementStyleDeclaration):
        * css/CSSInlineStyleDeclaration.h: Removed.
        * css/CSSMutableStyleDeclaration.cpp:
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::createInlineStyleDecl):
        (WebCore::StyledElement::ensureInlineStyleDecl):
        (WebCore::StyledElement::copyNonAttributeProperties):
        * dom/StyledElement.h:
        (WebCore::StyledElement::inlineStyleDecl):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
        (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
        * editing/DeleteButtonController.cpp:
        (WebCore::DeleteButtonController::createDeletionUI):
        * html/ValidationMessage.cpp:
        (WebCore::adjustBubblePosition):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlPanelElement::setPosition):
        (WebCore::MediaControlPanelElement::resetPosition):
        (WebCore::MediaControlPanelElement::makeOpaque):
        (WebCore::MediaControlPanelElement::makeTransparent):
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::TrackLimiterElement::create):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::SVGFontFaceElement):

2012-01-23  Pavel Feldman  <pfeldman@google.com>

        Not reviewed: annotate inspector's js so that it compiled.

        * inspector/front-end/ElementsTreeOutline.js:
        * inspector/front-end/TextPrompt.js:
        (WebInspector.TextPrompt.SuggestBox.prototype.upKeyPressed):
        (WebInspector.TextPrompt.SuggestBox.prototype.downKeyPressed):

2012-01-23  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] fix WebAudio build after r105431
        https://bugs.webkit.org/show_bug.cgi?id=76819

        Reviewed by Martin Robinson.

        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
        (WebCore::copyGstreamerBuffersToAudioChannel): Use mutableData()
        when copying.
        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
        (webKitWebAudioSrcLoop): Drop constness when setting the buffer
        data pointer.

2012-01-23  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: add touch events to the event listeners list.
        https://bugs.webkit.org/show_bug.cgi?id=76830

        Reviewed by Yury Semikhatsky.

        * English.lproj/localizedStrings.js:
        * inspector/InjectedScriptSource.js:
        (.):
        * inspector/front-end/BreakpointsSidebarPane.js:
        (WebInspector.EventListenerBreakpointsSidebarPane):

2012-01-23  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: inspector close button is missing in the dock-to-right mode.
        https://bugs.webkit.org/show_bug.cgi?id=76829

        Reviewed by Timothy Hatcher.

        * inspector/front-end/inspector.js:
        (WebInspector.set attached):
        (WebInspector.get _setCompactMode):

2012-01-23  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: IndexedDBModel should keep track of requests sent to the backend.
        https://bugs.webkit.org/show_bug.cgi?id=76705

        Reviewed by Pavel Feldman.

        * inspector/Inspector.json:
        * inspector/InspectorIndexedDBAgent.cpp:
        (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
        * inspector/InspectorIndexedDBAgent.h:
        * inspector/front-end/IndexedDBModel.js:
        (WebInspector.IndexedDBModel):
        (WebInspector.IndexedDBModel.prototype._frameDetached):
        (WebInspector.IndexedDBModel.prototype._reset):
        (WebInspector.IndexedDBModel.prototype._loadDatabaseNamesForFrame):
        (WebInspector.IndexedDBRequestManager):
        (WebInspector.IndexedDBRequestManager.prototype.requestDatabaseNamesForFrame.innerCallback):
        (WebInspector.IndexedDBRequestManager.prototype.requestDatabaseNamesForFrame):
        (WebInspector.IndexedDBRequestManager.prototype._databaseNamesLoaded):
        (WebInspector.IndexedDBRequestManager.prototype._requestId):
        (WebInspector.IndexedDBRequestManager.prototype._frameDetached):
        (WebInspector.IndexedDBRequestManager.prototype._reset):
        (WebInspector.IndexedDBRequestManager.DatabasesForFrameRequest):
        (WebInspector.IndexedDBDispatcher):
        (WebInspector.IndexedDBDispatcher.prototype.databaseNamesLoaded):

2012-01-23  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: Inspecting an element inside an iframe no longer works
        https://bugs.webkit.org/show_bug.cgi?id=76808

        Reviewed by Timothy Hatcher.

        Test: http/tests/inspector/inspect-element.html

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::innerParentNode):
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMNode.prototype.getChildNodes.mycallback):
        (WebInspector.DOMNode.prototype.getChildNodes):
        (WebInspector.DOMNode.prototype._setChildrenPayload):
        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeOutline.prototype._selectedNodeChanged):

2012-01-23  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: response.bodySize in HAR is invalid (negative) for cached resources
        https://bugs.webkit.org/show_bug.cgi?id=76823

        Reviewed by Yury Semikhatsky.

        - fix response.bodySize for cached resources;
        Also some drive-by fixes:
        - pretty-print HAR when exported
        - proper annotation for JSON.stringify()
        - de-obfuscate a piece of code in TimelinePanel

        * inspector/front-end/HAREntry.js:
        (WebInspector.HAREntry.prototype.get responseBodySize):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._exportAll):
        (WebInspector.NetworkLogView.prototype._exportResource):

2012-01-23  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        New files for the implementation of the AtkAction interface,
        containing the related code from WebKitAccessibleWrapperAtk.cpp.

        * accessibility/gtk/WebKitAccessibleInterfaceAction.cpp: Added.
        (core):
        (webkitAccessibleActionInterfaceInit):
        (webkitAccessibleActionDoAction):
        (webkitAccessibleActionGetNActions):
        (webkitAccessibleActionGetDescription):
        (webkitAccessibleActionGetKeybinding):
        (webkitAccessibleActionGetName):
        * accessibility/gtk/WebKitAccessibleInterfaceAction.h: Added.

        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
        related to the implementation of the AtkAction interface.

        Add new files to build files.

        * GNUmakefile.list.am: Add WebKitAccessibleInterfaceAction.[h|cpp].
        * WebCore.gypi: Ditto.

2012-01-23  Nikolas Zimmermann  <nzimmermann@rim.com>

        SVG animation repaint issue with image and dynamic clipPath
        https://bugs.webkit.org/show_bug.cgi?id=76559

        Reviewed by Zoltan Herczeg.

        Based on patch by Kelly Norton <knorton@google.com>. I extended the patch
        to correctly handle relative length resolution as well.

        RenderSVGImage doesn't react on setNeedsBoundariesUpdate() calls
        and thus fails to update its boundaries in some cases.

        The logic is also inconsistent, compared to the other renderers.
        Fix that properly, by reusing the method used in RenderSVGViewportContainer.
        Call calculateImageViewport() immediately, after initializing the LayoutRepainter.
        Previously we resolved the image viewport in RenderSVGImage::updateFromElement. This is
        wrong, as it queries the frameRect() of the RenderSVGRoot in a state, where the renderer
        still needs layout, leading to wrong results.

        I turned Kellys manual testcase into a predictable test, see svg/repaint/image-with-clip-path.svg
        Relative sized image handling is tested in svg/custom/relative-sized-image.xhtml now.

        Tests: svg/custom/relative-sized-image.xhtml
               svg/repaint/image-with-clip-path.svg

        * rendering/svg/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::RenderSVGImage):
        (WebCore::RenderSVGImage::updateImageViewport):
        (WebCore::RenderSVGImage::layout):
        * rendering/svg/RenderSVGImage.h:
        (WebCore::RenderSVGImage::setNeedsBoundariesUpdate):
        * svg/SVGImageElement.cpp:
        (WebCore::SVGImageElement::svgAttributeChanged):

2012-01-23  Nikolas Zimmermann  <nzimmermann@rim.com>

        <feImage> has problems referencing local elements
        https://bugs.webkit.org/show_bug.cgi?id=76800

        Reviewed by Zoltan Herczeg.

        <feImage> referencing local elements are currently rendered into an ImageBuffer
        by SVGFEImageElement, using the local coordinates of the referenced renderer.

        This approach is buggy and should be avoided, by moving the rendering fully
        into SVGFEImage, which takes care of respecting the correct transformations.

        This fixes <feImage> + local references, which currently breaks two tests in trunk.
        Covered by existing tests.

        * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
        (WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion):
        * svg/SVGFEImageElement.cpp:
        (WebCore::SVGFEImageElement::build):
        * svg/graphics/filters/SVGFEImage.cpp:
        (WebCore::FEImage::FEImage):
        (WebCore::FEImage::createWithImage):
        (WebCore::FEImage::createWithIRIReference):
        (WebCore::FEImage::determineAbsolutePaintRect):
        (WebCore::FEImage::referencedRenderer):
        (WebCore::FEImage::platformApplySoftware):
        (WebCore::FEImage::externalRepresentation):
        * svg/graphics/filters/SVGFEImage.h:
        (WebCore::FEImage::~FEImage):
        * svg/graphics/filters/SVGFilter.h:
        (WebCore::SVGFilter::absoluteTransform):

2012-01-23  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Fix Mac build, by exporting a new symbol.

        * WebCore.exp.in:

2012-01-23  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        Move common function returnString() from the wrapper and
        hyperlink implementations to a new utility file.

        * accessibility/gtk/WebKitAccessibleUtil.cpp: Added.
        (returnString): Taken from WebKitAccessibleWrapperAtk.cpp and
        WebKitAccessibleHyperlink.cpp
        * accessibility/gtk/WebKitAccessibleUtil.h: Added.

        * accessibility/gtk/WebKitAccessibleHyperlink.cpp: Remove local
        implementation of returnString.
        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Ditto.

        Add new files to build files.

        * GNUmakefile.list.am: Add WebKitAccessibleUtil.[h|cpp].
        * WebCore.gypi: Ditto.

2012-01-23  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        Fix typo in class struct (parent class field had the wrong type),
        fix coding style issues and update date in headers.

        * accessibility/gtk/WebKitAccessibleHyperlink.cpp:
        * accessibility/gtk/WebKitAccessibleHyperlink.h:

2012-01-23  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        Rename WebKitAccessible's public functions to follow WebKit's
        coding style and update callers.

        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
        (webkitAccessibleNew): Renamed from webkit_accessible_new.
        (webkitAccessibleGetAccessibilityObject): Likewise.
        (webkitAccessibleDetach):Likewise.
        (webkitAccessibleGetFocusedElement): Likewise.
        * accessibility/gtk/WebKitAccessibleWrapperAtk.h:

        Update calls to WebKitAccessible's public functions.

        * accessibility/gtk/AXObjectCacheAtk.cpp:
        (WebCore::AXObjectCache::detachWrapper): Update call.
        (WebCore::AXObjectCache::attachWrapper): Ditto.
        * accessibility/gtk/WebKitAccessibleHyperlink.cpp:
        (core): Update call.

2012-01-19  Kenichi Ishibashi  <bashi@chromium.org>

        WebKit fails IETC composition event types
        https://bugs.webkit.org/show_bug.cgi?id=76690

        Reviewed by Ryosuke Niwa.

        Dispatches at least one compositionupdate event.
        The spec(*) says that a composition session includes one or more
        compositionupdate event(s).
        Other major browsers (Firefox and IE) don't populate the data attribute
        of the compositionstart event, but we set the given text in the data
        attribute to minimize the effect of this change.

        (*) http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html#events-compositionevents

        Updated existing test: fast/fast/events/ime-composition-events-001.html.

        * editing/Editor.cpp:
        (WebCore::Editor::setComposition):

2012-01-22  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Refactor GTK's accessibilitity code to be more modular
        https://bugs.webkit.org/show_bug.cgi?id=76783

        Reviewed by Martin Robinson.

        Rename the file for the ATK AccessibilityObject wrapper to be more
        coherent with the rest of the files in the same directory.

        * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Renamed from
        Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp.
        (fallbackObject):
        (returnString):
        (core):
        (webkit_accessible_get_name):
        (webkit_accessible_get_description):
        (setAtkRelationSetFromCoreObject):
        (isRootObject):
        (atkParentOfRootObject):
        (webkit_accessible_get_parent):
        (getNChildrenForTable):
        (webkit_accessible_get_n_children):
        (getChildForTable):
        (webkit_accessible_ref_child):
        (getIndexInParentForCellInRow):
        (webkit_accessible_get_index_in_parent):
        (addAttributeToSet):
        (webkit_accessible_get_attributes):
        (atkRole):
        (webkit_accessible_get_role):
        (selectionBelongsToObject):
        (isTextWithCaret):
        (setAtkStateSetFromCoreObject):
        (webkit_accessible_ref_state_set):
        (webkit_accessible_ref_relation_set):
        (webkit_accessible_init):
        (webkit_accessible_finalize):
        (webkit_accessible_class_init):
        (webkit_accessible_get_type):
        (webkit_accessible_action_do_action):
        (webkit_accessible_action_get_n_actions):
        (webkit_accessible_action_get_description):
        (webkit_accessible_action_get_keybinding):
        (webkit_accessible_action_get_name):
        (atk_action_interface_init):
        (listObjectForSelection):
        (optionFromList):
        (optionFromSelection):
        (webkit_accessible_selection_add_selection):
        (webkit_accessible_selection_clear_selection):
        (webkit_accessible_selection_ref_selection):
        (webkit_accessible_selection_get_selection_count):
        (webkit_accessible_selection_is_child_selected):
        (webkit_accessible_selection_remove_selection):
        (webkit_accessible_selection_select_all_selection):
        (atk_selection_interface_init):
        (utf8Substr):
        (convertUniCharToUTF8):
        (textForRenderer):
        (textForObject):
        (webkit_accessible_text_get_text):
        (getGailTextUtilForAtk):
        (getPangoLayoutForAtk):
        (webkit_accessible_text_get_text_after_offset):
        (webkit_accessible_text_get_text_at_offset):
        (webkit_accessible_text_get_text_before_offset):
        (webkit_accessible_text_get_character_at_offset):
        (webkit_accessible_text_get_caret_offset):
        (baselinePositionForRenderObject):
        (getAttributeSetForAccessibilityObject):
        (compareAttribute):
        (attributeSetDifference):
        (accessibilityObjectLength):
        (getAccessibilityObjectForOffset):
        (getRunAttributesFromAccesibilityObject):
        (webkit_accessible_text_get_run_attributes):
        (webkit_accessible_text_get_default_attributes):
        (textExtents):
        (webkit_accessible_text_get_character_extents):
        (webkit_accessible_text_get_range_extents):
        (webkit_accessible_text_get_character_count):
        (webkit_accessible_text_get_offset_at_point):
        (getSelectionOffsetsForObject):
        (webkit_accessible_text_get_n_selections):
        (webkit_accessible_text_get_selection):
        (webkit_accessible_text_add_selection):
        (webkit_accessible_text_set_selection):
        (webkit_accessible_text_remove_selection):
        (webkit_accessible_text_set_caret_offset):
        (atk_text_interface_init):
        (webkit_accessible_editable_text_set_run_attributes):
        (webkit_accessible_editable_text_set_text_contents):
        (webkit_accessible_editable_text_insert_text):
        (webkit_accessible_editable_text_copy_text):
        (webkit_accessible_editable_text_cut_text):
        (webkit_accessible_editable_text_delete_text):
        (webkit_accessible_editable_text_paste_text):
        (atk_editable_text_interface_init):
        (contentsToAtk):
        (atkToContents):
        (webkit_accessible_component_ref_accessible_at_point):
        (webkit_accessible_component_get_extents):
        (webkit_accessible_component_grab_focus):
        (atk_component_interface_init):
        (webkit_accessible_image_get_image_position):
        (webkit_accessible_image_get_image_description):
        (webkit_accessible_image_get_image_size):
        (atk_image_interface_init):
        (cell):
        (cellIndex):
        (cellAtIndex):
        (webkit_accessible_table_ref_at):
        (webkit_accessible_table_get_index_at):
        (webkit_accessible_table_get_column_at_index):
        (webkit_accessible_table_get_row_at_index):
        (webkit_accessible_table_get_n_columns):
        (webkit_accessible_table_get_n_rows):
        (webkit_accessible_table_get_column_extent_at):
        (webkit_accessible_table_get_row_extent_at):
        (webkit_accessible_table_get_column_header):
        (webkit_accessible_table_get_row_header):
        (webkit_accessible_table_get_caption):
        (webkit_accessible_table_get_column_description):
        (webkit_accessible_table_get_row_description):
        (atk_table_interface_init):
        (webkitAccessibleHypertextGetLink):
        (webkitAccessibleHypertextGetNLinks):
        (webkitAccessibleHypertextGetLinkIndex):
        (atkHypertextInterfaceInit):
        (webkitAccessibleHyperlinkImplGetHyperlink):
        (atkHyperlinkImplInterfaceInit):
        (documentAttributeValue):
        (webkit_accessible_document_get_attribute_value):
        (webkit_accessible_document_get_attributes):
        (webkit_accessible_document_get_locale):
        (atk_document_interface_init):
        (webkitAccessibleValueGetCurrentValue):
        (webkitAccessibleValueGetMaximumValue):
        (webkitAccessibleValueGetMinimumValue):
        (webkitAccessibleValueSetCurrentValue):
        (webkitAccessibleValueGetMinimumIncrement):
        (atkValueInterfaceInit):
        (GetAtkInterfaceTypeFromWAIType):
        (getInterfaceMaskFromObject):
        (getUniqueAccessibilityTypeName):
        (getAccessibilityTypeFromObject):
        (webkit_accessible_new):
        (webkit_accessible_get_accessibility_object):
        (webkit_accessible_detach):
        (webkit_accessible_get_focused_element):
        (objectFocusedAndCaretOffsetUnignored):
        * accessibility/gtk/WebKitAccessibleWrapperAtk.h: Renamed from
        Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.h.

        Update the include for the AccessibilityObject wrapper header.

        * accessibility/gtk/AXObjectCacheAtk.cpp: Update include.
        * accessibility/gtk/WebKitAccessibleHyperlink.cpp: Ditto.
        * accessibility/gtk/WebKitAccessibleHyperlink.h: Ditto.
        * editing/gtk/FrameSelectionGtk.cpp:

        Update filename for the ATK wrapper in build files.

        * GNUmakefile.list.am: Updated.
        * WebCore.gypi: Updated.

2012-01-20  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: PageAgent.open() dosen't belong to the protocol.
        https://bugs.webkit.org/show_bug.cgi?id=74790

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector.json:
        * inspector/InspectorFrontendClient.h:
        * inspector/InspectorFrontendClientLocal.cpp:
        (WebCore::InspectorFrontendClientLocal::openInNewTab):
        * inspector/InspectorFrontendClientLocal.h:
        * inspector/InspectorFrontendHost.cpp:
        (WebCore::InspectorFrontendHost::openInNewTab):
        * inspector/InspectorFrontendHost.h:
        * inspector/InspectorFrontendHost.idl:
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::navigate):
        * inspector/InspectorPageAgent.h:
        * inspector/front-end/ImageView.js:
        (WebInspector.ImageView.prototype._openInNewTab):
        * inspector/front-end/InspectorFrontendHostStub.js:
        (.WebInspector.InspectorFrontendHostStub.prototype.openInNewTab):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkDataGridNode.prototype._openInNewTab):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.FrameResourceTreeElement.prototype.ondblclick):
        * inspector/front-end/inspector.js:
        (WebInspector.openResource):

2012-01-23  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: DetailedHeapSnapshot: Replace the list of retainers with the expandable tree (to get rid of cycles)
        https://bugs.webkit.org/show_bug.cgi?id=76813

        Reviewed by Pavel Feldman.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/DetailedHeapshotGridNodes.js:
        (WebInspector.HeapSnapshotObjectNode):
        * inspector/front-end/DetailedHeapshotView.js:
        (WebInspector.HeapSnapshotContainmentDataGrid.prototype.setDataSource):
        (WebInspector.HeapSnapshotRetainmentDataGrid):
        (WebInspector.HeapSnapshotRetainmentDataGrid.prototype.reset):
        (WebInspector.DetailedHeapshotView.prototype._startRetainersHeaderDragging):
        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshot.prototype.createRetainingEdgesProvider):
        (WebInspector.HeapSnapshotEdgesProvider):
        * inspector/front-end/HeapSnapshotProxy.js:
        (WebInspector.HeapSnapshotProxy.prototype.createEdgesProvider):
        (WebInspector.HeapSnapshotProxy.prototype.createRetainingEdgesProvider):

2012-01-20  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: HAR pageref attributes are wrong and inconsistent with pages array
        https://bugs.webkit.org/show_bug.cgi?id=76398

        Reviewed by Pavel Feldman.

        - introduce a notion of LoadPage;
        - move page load times to LoadPage;
        - associate network resources with LoadPage;
        - export pages for all available resoruces to HAR, not just the last page;
        - use page ids, not document URLs in HAR entries to refer to pages;
        - use page URL as a title field of a HAR page;

        * inspector/front-end/AuditsPanel.js:
        (WebInspector.AuditsPanel):
        * inspector/front-end/HAREntry.js:
        (WebInspector.HAREntry.prototype.build):
        (WebInspector.HAREntry.prototype.get responseCompression):
        (WebInspector.HARLog.prototype._buildPages):
        (WebInspector.HARLog.prototype._convertPage):
        (WebInspector.HARLog.prototype._pageEventTime):
        * inspector/front-end/NetworkLog.js:
        (WebInspector.NetworkLog):
        (WebInspector.NetworkLog.prototype._mainFrameNavigated):
        (WebInspector.NetworkLog.prototype._onResourceStarted):
        (WebInspector.Page):
        (WebInspector.Page.prototype.get id):
        (WebInspector.Page.prototype.get url):
        (WebInspector.Page.prototype.get contentLoadTime):
        (WebInspector.Page.prototype.set contentLoadTime):
        (WebInspector.Page.prototype.get loadTime):
        (WebInspector.Page.prototype.set loadTime):
        (WebInspector.Page.prototype.get startTime):
        (WebInspector.Page.prototype._bindResource):
        * inspector/front-end/NetworkManager.js:
        (WebInspector.NetworkDispatcher.prototype.requestServedFromMemoryCache):
        * inspector/front-end/Resource.js:
        (WebInspector.Resource.prototype.get page):
        (WebInspector.Resource.prototype.set page):
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.ResourceTreeFrame):
        (WebInspector.ResourceTreeFrame.prototype.get page):
        (WebInspector.PageDispatcher.prototype.domContentEventFired):
        (WebInspector.PageDispatcher.prototype.loadEventFired):

2012-01-22  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] ATK text-caret-moved and text-selection-changed events not being emitted
        https://bugs.webkit.org/show_bug.cgi?id=76069

        Reviewed by Martin Robinson.

        Fix bug introduced with patch for Bug 72830.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::isDescendantOfObject): New function,
        to check if an accessibility object is a descendant of other object.
        (WebCore::AccessibilityObject::isAncestorOfObject): New function,
        to check if an accessibility object is an ancestor of other object.
        * accessibility/AccessibilityObject.h:

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (webkit_accessible_text_get_caret_offset): Make sure to pass the
        right reference object to objectFocusedAndCaretOffsetUnignored.
        (objectFocusedAndCaretOffsetUnignored): Use positionBeforeNode
        instead of firstPositionInNode for calculating the begining of the
        range used to calculate the offsets. Ensure that the reference
        object is never a descendant of the actual object being returned.

        * editing/gtk/FrameSelectionGtk.cpp:
        (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
        Pass the right accessibility object associated with the current
        selection to objectFocusedAndCaretOffsetUnignored.

2012-01-21  David Reveman  <reveman@chromium.org>

        [Chromium] Incremental texture updates are not atomic.
        https://bugs.webkit.org/show_bug.cgi?id=72672

        Reviewed by Adam Barth.

        Use a new set of textures for each commit when incremental
        texture updates are enabled.

        This patch is tested by the following unit test:
        - CCLayerTreeHostTestAtomicCommit.runMultiThread

        * platform/graphics/chromium/ManagedTexture.cpp:
        (WebCore::ManagedTexture::ManagedTexture):
        (WebCore::ManagedTexture::steal):
        * platform/graphics/chromium/ManagedTexture.h:
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::prepareToUpdateTiles):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::initialize):
        (WebCore::CCLayerTreeHost::commitComplete):
        (WebCore::CCLayerTreeHost::deleteTextureAfterCommit):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):
        * platform/graphics/chromium/cc/CCProxy.h:
        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
        (WebCore::CCSingleThreadProxy::partialTextureUpdateCapability):
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
        (WebCore::CCThreadProxy::partialTextureUpdateCapability):
        * platform/graphics/chromium/cc/CCThreadProxy.h:

2012-01-21  Pablo Flouret  <pablof@motorola.com>

        Add .url attribute alongside .URL in EventSource and WebSocket to comply with the specs but not break existing usage.
        https://bugs.webkit.org/show_bug.cgi?id=40899

        Reviewed by Adam Barth.

        Tests: fast/eventsource/eventsource-url-attribute.html
               http/tests/websocket/tests/hixie76/url-attribute.html
               http/tests/websocket/tests/hybi/url-attribute.html

        * page/EventSource.idl:
        * websockets/WebSocket.idl:

2012-01-21  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r105564.
        http://trac.webkit.org/changeset/105564
        https://bugs.webkit.org/show_bug.cgi?id=76792

        Does not compile on Chromium Mac (Requested by abarth on
        #webkit).

        * platform/graphics/chromium/ManagedTexture.cpp:
        * platform/graphics/chromium/ManagedTexture.h:
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::prepareToUpdateTiles):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::initialize):
        (WebCore::CCLayerTreeHost::commitComplete):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):
        * platform/graphics/chromium/cc/CCProxy.h:
        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
        * platform/graphics/chromium/cc/CCThreadProxy.h:

2012-01-20  Chris Marrin  <cmarrin@apple.com>

        Implement hardware accelerated Brightness and contrast filters
        https://bugs.webkit.org/show_bug.cgi?id=75521
        https://bugs.webkit.org/show_bug.cgi?id=76719

        Reviewed by Simon Fraser.

        Implemented hardware accelerated brightness and contrast filters. This also fixes
        the bug where grayscale filter was accidentally never getting hardware accelerated.
        It also complies with proposed spec changes for the brightness filter to be additive 
        rather than multiplicative, according to https://bugs.webkit.org/show_bug.cgi?id=76719. 
        Had to make both fixes in the same patch because I had to change the allowed brightness
        values for the hardware version, so I had to change the software version as well.

        Tests: css3/filters/effect-brightness-hw.html
               css3/filters/effect-contrast-hw.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseBuiltinFilterArguments):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::createFilterOperations):
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayer::setFilters):
        (PlatformCALayer::filtersCanBeComposited):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::build):

2012-01-21  Nikolas Zimmermann  <nzimmermann@rim.com>

        <feImage> ignores preserveAspectRatio="none"
        https://bugs.webkit.org/show_bug.cgi?id=76780

        Reviewed by Antti Koivisto.

        preserveAspectRatio="none" was ignored in SVGFEImage. It always called transformRect() w/o checking
        whether it was supposed to transform the rect or not - move code from RenderSVGImage right into
        transformRect(), to do nothing if preserveAspectRatio="none" was given.

        Test: svg/filters/feImage-preserveAspectratio.svg

        * rendering/svg/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::paint):
        * svg/SVGPreserveAspectRatio.cpp:
        (WebCore::SVGPreserveAspectRatio::transformRect):

2012-01-21  Jochen Eisinger  <jochen@chromium.org>

        history.replaceState should update the HistoryItem to use a GET method if previously non-GET (POST)
        https://bugs.webkit.org/show_bug.cgi?id=76721

        Reviewed by Mihai Parparita.

        Tests: http/tests/history/replacestate-post-to-get-2.html
               http/tests/history/replacestate-post-to-get.html

        * loader/HistoryController.cpp:
        (WebCore::HistoryController::replaceState):

2012-01-21  Florin Malita  <fmalita@google.com>

        Null dereference in SVGDocumentExtensions::removePendingResource when updating <use>'s href
        https://bugs.webkit.org/show_bug.cgi?id=69284

        Reviewed by Nikolas Zimmermann.

        Test: svg/custom/use-crash-pending-resource.svg

        The crash is caused by assumptions in SVGUseElement that xlink:href is the only
        pending resource. This patch adds support for dealing with multiple pending resources.

        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::registerResource):
        * svg/SVGDocumentExtensions.cpp:
        (WebCore::SVGDocumentExtensions::hasPendingResource):
        (WebCore::SVGDocumentExtensions::isElementPendingResources):
        (WebCore::SVGDocumentExtensions::isElementPendingResource):
        (WebCore::SVGDocumentExtensions::removePendingResourceForElement):
        * svg/SVGDocumentExtensions.h:
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
        (WebCore::SVGStyledElement::clearHasPendingResourcesIfPossible):
        Renamed SVGDocumentExtensions::hasPendingResources -> Renamed SVGDocumentExtensions::hasPendingResource.
        Renamed SVGDocumentExtensions::isElementInPendingResources -> SVGDocumentExtensions::isElementPendingResources.
        Added support for querying and removing pending resources for a specific element.

        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::svgAttributeChanged):
        (WebCore::SVGUseElement::buildPendingResource):
        Refactored to support multiple pending resources.

2012-01-21  Stephen Chenney  <schenney@chromium.org>

        REGRESSION (Safari 5.0.5 - ToT): crash in SVG test http://dev.w3.org/SVG/profiles/1.1F2/test/harness/htmlObjectApproved/animate-elem-39-t.html
        https://bugs.webkit.org/show_bug.cgi?id=64671

        Reviewed by Nikolas Zimmermann.

        No new tests. This change is to fix crashes in existing tests.

        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::beginListChanged): If the new begin time is
        later than the current end time, and the event time is also after then
        end time (but we have not yet updated to that time) and the animation
        is active, we need to make the animation inactive explicitly.

2012-01-21  Benjamin Poulain  <bpoulain@apple.com>

        PopupMenuClient::multiple() should be const
        https://bugs.webkit.org/show_bug.cgi?id=76771

        Reviewed by Kent Tamura.

        * platform/PopupMenuClient.h:
        (WebCore::PopupMenuClient::multiple):
        * rendering/RenderMenuList.cpp:
        (WebCore::RenderMenuList::multiple):
        * rendering/RenderMenuList.h:

2012-01-20  Mark Pilgrim  <pilgrim@chromium.org>

        Switch indexeddb to use supplemental IDL for DOMWindow
        https://bugs.webkit.org/show_bug.cgi?id=76723

        Reviewed by Adam Barth.

        No new tests required, all existing tests pass.

        * Modules/indexeddb: Added.
        * Modules/indexeddb/DOMWindowIndexedDatabase.cpp: Added. webkitIndexedDB() method previously in DOMWindow.cpp
        (WebCore::DOMWindowIndexedDatabase::DOMWindowIndexedDatabase):
        (WebCore::DOMWindowIndexedDatabase::~DOMWindowIndexedDatabase):
        (WebCore::DOMWindowIndexedDatabase::webkitIndexedDB):
        * Modules/indexeddb/DOMWindowIndexedDatabase.h: Added.
        * Modules/indexeddb/DOMWindowIndexedDatabase.idl: Added. attributes previously in DOMWindow.idl
        * WebCore.gyp/WebCore.gyp: add Modules/indexeddb/ directory
        * WebCore.gypi: add Modules/indexeddb/*
        * page/DOMWindow.cpp: remove webkitIndexedDB() method, add accessor methods for m_idbFactory
        (WebCore::DOMWindow::getIDBFactory):
        (WebCore::DOMWindow::setIDBFactory):
        * page/DOMWindow.h:
        * page/DOMWindow.idl:

2012-01-20  David Levin  <levin@chromium.org>

        Allow isContextThread to be called while in ~ScriptExecutionContext.
        https://bugs.webkit.org/show_bug.cgi?id=76756

        Reviewed by Adam Barth.

        It is possible for objects to get torn down or get called from ~ScriptExecutionContext
        and in turn call isContextThread. The resulting behavior is undefined. This change defines
        the behavior. I don't know of any places that do this but I have a test that is rarely
        failing due to isContextThread being false. This is my best guess as to why, and I
        don't see a reason to try to avoid calling isContextThread at this point.

        No new functionality exposed so no new tests.

        * dom/ScriptExecutionContext.h:
        (WebCore::ScriptExecutionContext::isContextThread):

2012-01-20  Alexandre Elias  <aelias@google.com>

        [chromium] Write unit tests for compositor-thread zooming
        https://bugs.webkit.org/show_bug.cgi?id=71529

        Reviewed by James Robinson.

        Add unit tests for pinch zoom and page scale animation.  Includes
        small cleanups in CCLayerTreeHostImpl for testability.

        * platform/graphics/chromium/cc/CCInputHandler.h:
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
        (WebCore::CCLayerTreeHostImpl::setViewportSize):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:

2012-01-20  David Reveman  <reveman@chromium.org>

        [Chromium] Incremental texture updates are not atomic.
        https://bugs.webkit.org/show_bug.cgi?id=72672

        Reviewed by James Robinson.

        Use a new set of textures for each commit when incremental
        texture updates are enabled.

        This patch is tested by the following unit test:
        - CCLayerTreeHostTestAtomicCommit.runMultiThread

        * platform/graphics/chromium/ManagedTexture.cpp:
        (WebCore::ManagedTexture::ManagedTexture):
        (WebCore::ManagedTexture::steal):
        * platform/graphics/chromium/ManagedTexture.h:
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::prepareToUpdateTiles):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::initialize):
        (WebCore::CCLayerTreeHost::commitComplete):
        (WebCore::CCLayerTreeHost::deleteTextureAfterCommit):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):
        * platform/graphics/chromium/cc/CCProxy.h:
        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
        (WebCore::CCSingleThreadProxy::partialTextureUpdateCapability):
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):
        (WebCore::CCThreadProxy::partialTextureUpdateCapability):
        * platform/graphics/chromium/cc/CCThreadProxy.h:

2012-01-20  Chris Rogers  <crogers@google.com>

        De-zippering incorrectly snaps to target gain
        https://bugs.webkit.org/show_bug.cgi?id=76741

        Reviewed by Kenneth Russell.

        * platform/audio/AudioBus.cpp:

2012-01-20  Dana Jansens  <danakj@chromium.org>

        [chromium] Partially filled pixels do not occlude pixels below them.
        https://bugs.webkit.org/show_bug.cgi?id=76658

        Reviewed by James Robinson.

        Test: compositing/culling/tile-occlusion-boundaries.html

        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
        (WebCore::enclosedIntRect):
        (WebCore::CCQuadCuller::cullOccludedQuads):

2012-01-20  Ami Fischman  <fischman@chromium.org>

        Small cleanup of {get,put}CurrentFrame for  WebMediaPlayerClientImpl/CCVideoLayerImpl.
        https://bugs.webkit.org/show_bug.cgi?id=76332

        Reviewed by James Robinson.

        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
        (WebCore::CCVideoLayerImpl::draw):

2012-01-20  Brady Eidson  <beidson@apple.com>

        <rdar://problem/9328684> and https://bugs.webkit.org/show_bug.cgi?id=62764
        Frequent crashes due to null frame below ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache

        Reviewed by Sam Weinig.

        No way to reproduce without special malloc debugging and that doesn't even reproduce on all platforms.  So still no test.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::detachFromFrame): Protect m_frame for the duration of this method.

2012-01-20  Alexey Proskuryakov  <ap@apple.com>

        WebCore should not send invalid URLs to client createWindow methods.
        https://bugs.webkit.org/show_bug.cgi?id=39017

        Unreviewed test fix.

        * page/DOMWindow.cpp: (WebCore::DOMWindow::createWindow): Let empty URLs through.

2012-01-20  Sam Weinig  <sam@webkit.org>

        Make WebCore RunLoop work for WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=76739

        Reviewed by Anders Carlsson.

        * platform/RunLoop.cpp:
        Specialize RunLoop initialization for Mac, where it can happen on any thread.
        
        * platform/RunLoop.h:
        Add RunLoop constructor that takes a CFRunLoopRef on the mac for initializing
        the main thread.

        * platform/mac/RunLoopMac.mm:
        (WebCore::RunLoop::initializeMainRunLoop):
        Add new implementation that can work from any thread (and multiple threads at the
        same time if necessary).

        (WebCore::RunLoop::current):
        Treat the main thread specially, not storing it in thread specific data.

        (WebCore::RunLoop::main):
        Copy main accessor since it needs access to the file static.

        (WebCore::RunLoop::RunLoop):
        Add constructor which takes a CFRunLoopRef.

2012-01-20  Tim Horton  <timothy_horton@apple.com>

        Crash in RenderSVGResourceContainer::markAllClientsForInvalidation
        https://bugs.webkit.org/show_bug.cgi?id=76606
        <rdar://problem/10720970>

        Reviewed by Dirk Schulze.

        Notify SVGResourcesCache and superclass when RenderSVGInline is about
        to be destroyed, preventing a crash.

        Test: svg/custom/crash-inline-container-client.html

        * rendering/svg/RenderSVGInline.cpp:
        (WebCore::RenderSVGInline::willBeDestroyed):
        * rendering/svg/RenderSVGInline.h:

2012-01-20  Alexey Proskuryakov  <ap@apple.com>

        WebCore should not send invalid URLs to client createWindow methods.
        https://bugs.webkit.org/show_bug.cgi?id=39017

        Reviewed by Sam Weinig.

        Test: fast/dom/window/open-invalid-url.html

        * page/DOMWindow.cpp: (WebCore::DOMWindow::createWindow): Bail out early for invalid URLs.

2012-01-20  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Remove unused variable in RenderReplaced after r105513
        https://bugs.webkit.org/show_bug.cgi?id=76742

        Reviewed by Daniel Bates.

        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::computeReplacedLogicalWidth):
        (WebCore::RenderReplaced::computeReplacedLogicalHeight):

2012-01-20  Jonathan Backer  <backer@chromium.org>

        [chromium] Plumb damage from accelerated canvas 2D.
        https://bugs.webkit.org/show_bug.cgi?id=76728

        Reviewed by Kenneth Russell.

        * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
        (WebCore::Canvas2DLayerChromium::contentChanged):

2012-01-20  Julien Chaffraix  <jchaffraix@webkit.org>

        Crash in RenderTable::borderBefore
        https://bugs.webkit.org/show_bug.cgi?id=75215

        Reviewed by David Hyatt.

        Test: fast/table/crash-beforeBorder-dirty-section.html

        This is a regression from r97661 that added some calls to get the object's borders but tables are a
        special case and they may need to recompute some sections' pointers.

        The whole sections' pointers lazy recomputation logic is unfortunately far from being bullet proof and
        this change is only a mitigation for the current crash.

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::borderBefore):
        (WebCore::RenderTable::borderAfter):
        Make sure we recompute our sections. The change was made here to avoid hitting the
        path used inside the table code (ie outerBorder{Before|After}) that shouldn't be
        affected.

        * rendering/RenderTable.h:
        (WebCore::RenderTable::topSection):
        Added an ASSERT to catch more bad use in the future.

2012-01-20  Marc-Andre Decoste  <mad@chromium.org>

        Add proper offset to position right click to simulate a context menu invocation.
        https://bugs.webkit.org/show_bug.cgi?id=76421

        Reviewed by Ojan Vafai.

        Manual tests only because DRT doesn't support context menu key.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::sendContextMenuEventForKey):

2012-01-20  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r105426.
        http://trac.webkit.org/changeset/105426
        https://bugs.webkit.org/show_bug.cgi?id=76726

        Might have caused a 20% regression in the PLT (Requested by
        abarth|gardener on #webkit).

        * rendering/RenderObject.h:
        (WebCore::RenderObject::style):

2012-01-20  Sadrul Habib Chowdhury  <sadrul@chromium.org>

        [chromium] Revert a couple of changes in fileapi/ that break tests in chromeos.
        https://bugs.webkit.org/show_bug.cgi?id=76718

        Reviewed by Darin Fisher.

        * fileapi/BlobURL.cpp:
        (WebCore::BlobURL::getIdentifier):
        (WebCore::BlobURL::createBlobURL):
        * fileapi/BlobURL.h:
        (WebCore::BlobURL::blobProtocol):
        * fileapi/DOMFileSystemBase.cpp:
        (WebCore::DOMFileSystemBase::crackFileSystemURL):
        * fileapi/DOMFileSystemBase.h:
        * fileapi/EntryBase.cpp:
        (WebCore::EntryBase::toURL):
        * fileapi/FileWriter.cpp:
        (WebCore::FileWriter::write):
        (WebCore::FileWriter::truncate):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::webkitRequestFileSystem):
        * page/DOMWindow.h:
        * platform/AsyncFileSystem.cpp:
        * platform/AsyncFileSystem.h:
        * workers/WorkerContext.cpp:
        (WebCore::WorkerContext::webkitRequestFileSystem):
        (WebCore::WorkerContext::webkitRequestFileSystemSync):

2012-01-20  Tim Dresser  <tdresser@chromium.org>

        Refactor canvas drawing to be more data driven
        https://bugs.webkit.org/show_bug.cgi?id=76635

        CCCanvasLayerImpl no longer handles drawing itself, but produces a list of CCCanvasDrawQuads.
        These quads are then drawn by LayerRendererChromium.

        This is a refactor, so no new tests were added.

        Reviewed by James Robinson.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::drawCanvasQuad):
        * platform/graphics/chromium/cc/CCCanvasDrawQuad.cpp:
        (WebCore::CCCanvasDrawQuad::create):
        (WebCore::CCCanvasDrawQuad::CCCanvasDrawQuad):
        * platform/graphics/chromium/cc/CCCanvasDrawQuad.h:
        (WebCore::CCCanvasDrawQuad::textureId):
        (WebCore::CCCanvasDrawQuad::hasAlpha):
        (WebCore::CCCanvasDrawQuad::premultipliedAlpha):
        * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
        (WebCore::CCCanvasLayerImpl::appendQuads):
        * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:

2012-01-19  Abhishek Arya  <inferno@chromium.org>

        Crash in xsltParseGlobalVariable.
        https://bugs.webkit.org/show_bug.cgi?id=75978

        Reviewed by Andreas Kling.

        The code missed to reset the stylesheet pointer after we fail
        to compile the XSLT stylesheet. As a result, the stylesheet gets
        reused with a removed document in the next transformToFragment call.

        Test: fast/xsl/xslt-transform-to-fragment-crash.html

        * xml/XSLTProcessorLibxslt.cpp:
        (WebCore::XSLTProcessor::transformToString):

2012-01-20  Nikolas Zimmermann  <nzimmermann@rim.com>

        REGRESSION (r98852): apple.com navigation bar is broken under full-page zoom
        https://bugs.webkit.org/show_bug.cgi?id=76249

        Reviewed by Andreas Kling.

        Fix regression with full-page zoom & border-image. paintNinePieceImage() expects local, unzoomed coordinates.
        Restore the behaviour as it was before r98852, fixing the regression.

        Test: fast/borders/scaled-border-image.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintNinePieceImage):

2012-01-20  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegion]Expose DOM interface for WebKitCSSRegionRule
        https://bugs.webkit.org/show_bug.cgi?id=73985

        Reviewed by Antti Koivisto.

        Start by exposing the interface and the cssRules attribute of type CSSRuleList.
        Test: fast/regions/webkit-region-rule.html

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSCSSRuleCustom.cpp:
        (WebCore::toJS):
        * bindings/objc/DOMCSS.mm:
        (kitClass):
        * bindings/v8/custom/V8CSSRuleCustom.cpp:
        (WebCore::toV8):
        * css/WebKitCSSRegionRule.cpp:
        * css/WebKitCSSRegionRule.h:
        * css/WebKitCSSRegionRule.idl:
        * page/DOMWindow.idl:

2012-01-20  Nikolas Zimmermann  <nzimmermann@rim.com>

        Differentiate between SVG/CSS width/height attributes/properties
        https://bugs.webkit.org/show_bug.cgi?id=76447

        Reviewed by Antti Koivisto.

        Remove a gazillion of hacks out of our SVG implementation, by correctly differentiating between the
        SVG width/height attributes and the CSS width/height properties. They need to be treated independently
        when handling the intrinsic size negotiation, according to both CSS 2.1 & SVG 1.1 2nd Edition specs.

        Fixes several bugs in the LayoutTests/svg/custom/*object*sizing tests, we now match Opera perfectly. FF still has some bugs, and IE9 as well.

        * css/svg.css: Remove hardcoded, width/height: 100% on <svg>.
        * rendering/RenderBox.h:
        (WebCore::RenderBox::computeIntrinsicRatioInformation): Make 'intrinsicRatio' a float, and add 'intrinsicSize' as seperated FloatSize, to avoid confusion.
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions): Add forgotton case for percentage intrinsic sizes, that lead to workarounds in other places, that can now be removed.
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::computeReplacedLogicalWidth): Directly use imageHasRelativeWidth/Height(), it does differentiate between SVG/CSS width/height attributes/properties now.
        (WebCore::RenderImage::computeIntrinsicRatioInformation): Adapt to 'intrinsicRatio' argument change.
        * rendering/RenderImage.h: Ditto.
        * rendering/RenderReplaced.cpp: Refactor existing code, break out firstContainingBlockWithLogicalWidth/hasReplacedLogicalWidth/hasReplacedLogicalHeight/hasAutoHeightOrContainingBlockWithAutoHeight.
        (WebCore::firstContainingBlockWithLogicalWidth): Refactored.
        (WebCore::RenderReplaced::hasReplacedLogicalWidth): Refactored, and exported, so SVGSVGElement::widthAttributeEstablishesViewport() can use it.
        (WebCore::hasAutoHeightOrContainingBlockWithAutoHeight): Refactored.
        (WebCore::RenderReplaced::hasReplacedLogicalHeight): Refactored, and exported, so SVGSVGElement::heightAttributeEstablishesViewport() can use it.
        (WebCore::RenderReplaced::computeReplacedLogicalWidth): Adapt to 'intrinsicRatio' changes ('intrinsicSize' is now decoupled from it). Refactor so that RenderSVGRoot can directly use it as well!
        (WebCore::RenderReplaced::computeReplacedLogicalHeight): Ditto.
        * rendering/RenderReplaced.h:
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation): Only determine the intrinsic size & ratio using the SVG width/height attributes, not the CSS width/height properties, as it's specified.
        (WebCore::resolveLengthAttributeForSVG): Helper function for computeReplacedLogicalWidth/Height, that scales Length values that come from SVG width/height attributes.
        (WebCore::RenderSVGRoot::computeReplacedLogicalWidth): Finally remove home-brewn size computation logic - it can be fully shared with RenderReplaced now that we inherit from it.
        (WebCore::RenderSVGRoot::computeReplacedLogicalHeight): Ditto.
        * rendering/svg/RenderSVGRoot.h:
        * rendering/svg/RenderSVGViewportContainer.h:
        (WebCore::RenderSVGViewportContainer::viewport): Export viewport() for easier length resolution.
        * svg/SVGLengthContext.cpp:
        (WebCore::SVGLengthContext::determineViewport): Finally clean up this hell, and make it easy to understand. Only need to resolve lengths against either RenderSVGRoot or RenderSVGViewportContainer now.
        * svg/SVGSVGElement.cpp: 
        (WebCore::SVGSVGElement::viewport): Remove wrong code and disable this. Its not used, and we have no test coverage for it. Its current implementation didn't make any sense.
        (WebCore::SVGSVGElement::parseMappedAttribute): Remove hacks mapping SVG width/height attributes to CSS properties.
        (WebCore::SVGSVGElement::svgAttributeChanged): Ditto.
        (WebCore::SVGSVGElement::localCoordinateSpaceTransform): Refactored.
        (WebCore::SVGSVGElement::currentViewBoxRect): Ditto.
        (WebCore::SVGSVGElement::currentViewportSize): Ditto.
        (WebCore::SVGSVGElement::widthAttributeEstablishesViewport): Main logic determining if the SVG or CSS properties establish the viewport -  a direct transliteration from the spec.
        (WebCore::SVGSVGElement::heightAttributeEstablishesViewport): Ditto.
        (WebCore::SVGSVGElement::intrinsicWidth): Helper.
        (WebCore::SVGSVGElement::intrinsicHeight): Ditto.
        * svg/SVGSVGElement.h:
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::size): Cleanup code.
        (WebCore::SVGImage::hasRelativeWidth): Added, avoids hacks in RenderBoxModelObject.
        (WebCore::SVGImage::hasRelativeHeight): Ditto.
        (WebCore::SVGImage::computeIntrinsicDimensions): Make use of new SVGSVGElement::computeIntrinsicDimensions.
        * svg/graphics/SVGImage.h:

2012-01-20  Sami Kyostila  <skyostil@chromium.org>

        window.innerWidth/Height should not include page scale
        https://bugs.webkit.org/show_bug.cgi?id=76555

        The DOM attributes window.innerWidth and window.innerHeight should be in
        CSS pixels instead of device pixels. Currently the text zoom factor is
        cancelled out when calculating these values, but the same also needs to
        be done for the page scale.

        There is an additional subtlety concerning frames/iframes since their
        visible content rectangle is already in (unscaled) CSS pixels. By using
        Frame::frameScaleFactor() we avoid unnecessarily cancelling out the page
        scale factor in this case.

        Reviewed by Kenneth Rohde Christiansen.

        Tests: fast/dom/iframe-inner-size-scaling.html
               fast/dom/window-inner-size-scaling.html

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::innerHeight):
        (WebCore::DOMWindow::innerWidth):

2012-01-20  Kinuko Yasuda  <kinuko@chromium.org>

        Add DataTransferItems support for drag-and-drop'ed files and texts
        https://bugs.webkit.org/show_bug.cgi?id=76367

        Reviewed by Tony Chang.

        Per http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#the-datatransfer-interface
        the new interface should also support drag-and-dropped files and texts in
        addition to pasted texts/images.  The user apps should also be able to add
        texts/files to the drag store by calling event.dataTransfer.items.add().

        This patch adds drag-and-drop'ed items support in DataTransferItem and
        DataTransferItemList so that they work for dropped files and texts (as well as
        the copy-pasted texts/images).

        This patch also adds customized toJS()/toV8() code to Blob/File javascript
        binding so that the JS code can get either Blob or File underlying object
        where the API returns Blob. This change is necessary since we return Blob
        from DataTransferItem.getAsFile() for pasted images but want to return File
        for dropped files.

        Tests: editing/pasteboard/data-transfer-items-drag-drop-file.html
               editing/pasteboard/data-transfer-items-drag-drop-string.html

        * GNUmakefile.list.am: Added entries for the new {JS,V8}BlobCustom.
        * Target.pri: Ditto.
        * UseJSC.cmake: Ditto.
        * WebCore.gypi: Ditto.
        * bindings/js/JSBindingsAllInOne.cpp: Ditto.
        * bindings/js/JSBlobCustom.cpp: Added toJS custom code that returns File or
        Blob depending on the return value of isFile().
        (WebCore::toJS):
        * bindings/v8/custom/V8BlobCustom.cpp: Added toV8 custom code.
        (WebCore::toV8):
        * dom/DataTransferItem.h: Added a new create() method which takes File.
        * dom/DataTransferItemList.cpp: Added add(File) method.
        (WebCore::DataTransferItemList::add):
        * dom/DataTransferItemList.h: Ditto.
        * dom/DataTransferItemList.idl: Ditto.
        * fileapi/Blob.idl: Added CustomToJS for toJS/toV8.
        * platform/chromium/ClipboardChromium.cpp: Added code for drag-and-drop'ed items.
        (WebCore::ClipboardChromium::items): Revised.
        (WebCore::ClipboardChromium::mayUpdateItems): Added.
        (WebCore::ClipboardChromium::isStorageUpdated): Added.
        * platform/chromium/ClipboardChromium.h:
        * platform/chromium/DataTransferItemChromium.cpp: Added a new constructor that
        takes File and updated getAsFile() to make it support dropped files.
        (WebCore::DataTransferItem::create):
        (WebCore::DataTransferItemChromium::DataTransferItemChromium):
        (WebCore::DataTransferItemChromium::getAsFile):
        * platform/chromium/DataTransferItemChromium.h:
        * platform/chromium/DataTransferItemListChromium.cpp:
        (WebCore::DataTransferItemListChromium::addInternalItem):
        * platform/chromium/DataTransferItemListChromium.cpp: Added overrides implementation for m_item accessors to make them reflect the changes in the owner clipboard.
        (WebCore::DataTransferItemListChromium::length):
        (WebCore::DataTransferItemListChromium::item):
        (WebCore::DataTransferItemListChromium::deleteItem):
        (WebCore::DataTransferItemListChromium::clear):
        (WebCore::DataTransferItemListChromium::add):
        (WebCore::DataTransferItemListChromium::mayUpdateItems): Added.
        * platform/qt/DataTransferItemQt.cpp: Added a new constructor that takes File and updated
        getAsFile() to make it support dropped files.
        (WebCore::DataTransferItem::create):
        (WebCore::DataTransferItemQt::DataTransferItemQt):
        (WebCore::DataTransferItemQt::getAsFile):
        * platform/qt/DataTransferItemQt.h:

2012-01-20  Alexis Menard  <alexis.menard@openbossa.org>

        remove CSSBorderImageValue
        https://bugs.webkit.org/show_bug.cgi?id=75563

        Reviewed by Tony Chang.

        Remove CSSBorderImageValue as border-image is a shorthand therefore we don't
        need a dedicated CSS class type for it. CSSBorderImageValue was here for
        -webkit-border-image which is not a shorthand. This is the first step to move border-image
        close to a correct shorthand implementation while keeping -webkit-border-image being a regular
        CSS property.

        No new tests : It's a refactor, existing tests should cover it.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.order:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSAllInOne.cpp:
        * css/CSSBorderImage.cpp: Added.
        (WebCore::createBorderImageValue):
        * css/CSSBorderImage.h: Added.
        * css/CSSBorderImageValue.cpp: Removed.
        * css/CSSBorderImageValue.h: Removed.
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::valueForNinePieceImage):
        * css/CSSParser.cpp:
        (WebCore::BorderImageParseContext::commitBorderImage):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::mapNinePieceImage):
        * css/CSSValue.cpp:
        (WebCore::CSSValue::addSubresourceStyleURLs):
        (WebCore::CSSValue::cssText):
        (WebCore::CSSValue::destroy):
        * css/CSSValue.h:

2012-01-20  Hayato Ito  <hayato@chromium.org>

        Add ShadowRoot.idl which is enabled by newly introduced SHADOW_DOM flag.
        https://bugs.webkit.org/show_bug.cgi?id=76353

        Reviewed by Hajime Morita.

        Add ShadowRoot.idl, which is enabled only on chromium port since this is
        under development feature.
        ShadowRoot.idl contains minimum API so that we can test it.
        Other APIs should be added on other changes so that we can isolate issues.

        Test: fast/dom/shadow/shadow-root-js-api.html

        * WebCore.gypi:
        * bindings/generic/RuntimeEnabledFeatures.cpp:
        * bindings/generic/RuntimeEnabledFeatures.h:
        (WebCore::RuntimeEnabledFeatures::shadowDOMEnabled):
        (WebCore::RuntimeEnabledFeatures::setShadowDOMEnabled):
        * dom/ShadowRoot.h:
        (WebCore::ShadowRoot::host):
        * dom/ShadowRoot.idl: Added.
        * testing/Internals.cpp:
        (WebCore::Internals::ensureShadowRoot):
        (WebCore::Internals::shadowRoot):
        * testing/Internals.h:
        * testing/Internals.idl:

2012-01-19  Kent Tamura  <tkent@chromium.org>

        Change LocalizedNumber interface
        https://bugs.webkit.org/show_bug.cgi?id=76613

        Reviewed by Hajime Morita.

        Change the functions of LocalizedNumber from:
          double parseLocalizedNumber(const String&);
          String formatLocalizedNumber(double, unsigned fractionDigits);
        To:
          String convertToLocalizedNumber(const String&, usnigned fractionDigits);
          String convertFromLocalizedNumber(const String&);
        in order that we can avoid conversion from/to a double value.

        The fractionDigits argumetn of convertToLocalizedNumber() will be
        removed in the future.  We need it because we'd like to recycle the old
        functions to implement new functions for now and functions in
        LocalizedNumber can't call functions in HTMLParserIdioms.cpp.

        No new tests because the change doesn't make any behavior change.

        * html/NumberInputType.cpp:
        (WebCore::NumberInputType::visibleValue):
        Use convertToLocalizedNumber.
        (WebCore::NumberInputType::convertFromVisibleValue):
        Use convertFromLocalizedNumber.
        (WebCore::NumberInputType::isAcceptableValue): ditto.
        * platform/text/LocalizedNumber.h:
        Remove parseLocalizedNumber and formatLocalizedNumber, and
        introduce convertToLocalizedNumber and convertFromLocalizedNumber.
        * platform/text/LocalizedNumberICU.cpp:
        (WebCore::parseLocalizedNumber): Make this static.
        (WebCore::formatLocalizedNumber): Make this static.
        (WebCore::convertToLocalizedNumber): Implement this with formatLocalizedNumber.
        (WebCore::convertFromLocalizedNumber): Implement this with parseLocalizedNumber.
        * platform/text/LocalizedNumberNone.cpp:
        (WebCore::convertToLocalizedNumber):
        Implement this as a function returning the input string.
        (WebCore::convertFromLocalizedNumber): ditto.
        * platform/text/mac/LocalizedNumberMac.mm:
        (WebCore::parseLocalizedNumber): Make this static.
        (WebCore::formatLocalizedNumber): Make this static.
        (WebCore::convertToLocalizedNumber): Implement this with formatLocalizedNumber.
        (WebCore::convertFromLocalizedNumber): Implement this with parseLocalizedNumber.

2012-01-19  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: problem with Ctrl - <arrows> shortcuts in Scripts panel
        https://bugs.webkit.org/show_bug.cgi?id=76622

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/InspectorView.js:
        (WebInspector.InspectorView.prototype._keyDown):
        * inspector/front-end/TextViewer.js:
        (WebInspector.TextViewer.prototype.set readOnly):
        (WebInspector.TextViewer.prototype._cancelEditing):
        (WebInspector.TextViewer.prototype.wasShown):
        (WebInspector.TextViewer.prototype.willHide):
        * inspector/front-end/UIUtils.js:
        (WebInspector.isInEditMode):
        * inspector/front-end/inspector.js:
        (WebInspector.documentKeyDown):

2012-01-19  Kaustubh Atrawalkar  <kaustubh@motorola.com> & Erik Arvidsson  <arv@chromium.org>

        Migrate createObjectURL & revokeObjectURL to static (Class) methods.
        https://bugs.webkit.org/show_bug.cgi?id=74386

        Reviewed by Adam Barth.

        Test: fast/dom/DOMURL/check-instanceof-domurl-functions.html
        Already Existing -
            fast/files/revoke-blob-url.html
            fast/dom/window-domurl-crash.html
            fast/files/apply-blob-url-to-img.html
            fast/files/create-blob-url-crash.html
            fast/files/workers/inline-worker-via-blob-url.html

        * html/DOMURL.cpp: Added HashMap for local static objects.
        (WebCore::PublicURLManager::PublicURLManager):
        (WebCore::PublicURLManager::contextDestroyed):
        (WebCore::PublicURLManager::blobURLs):
        (WebCore::PublicURLManager::streamURLs):
        (WebCore::publicURLManagerMap):
        (WebCore::publicURLManager):
        (WebCore::publicBlobURLs):
        (WebCore::publicStreamURLs):
        (WebCore::DOMURL::createObjectURL): Changed to static.
        (WebCore::DOMURL::revokeObjectURL): ditto.
        * html/DOMURL.h:
        (WebCore::DOMURL::create):
        (WebCore::DOMURL::~DOMURL):
        (WebCore::DOMURL::DOMURL):
        * html/DOMURL.idl:
        * page/DOMWindow.cpp: Removed object initialization for DOMURL.
        * page/DOMWindow.h: ditto.
        * page/DOMWindow.idl: ditto.
        * workers/WorkerContext.cpp: ditto.
        * workers/WorkerContext.h: ditto.
        * workers/WorkerContext.idl: ditto.

2012-01-20  Alexandru Chiculita  <achicu@adobe.com>

        CSS Shaders: Add a Settings flag to enable/disable CSS Shaders at runtime
        https://bugs.webkit.org/show_bug.cgi?id=76444
        
        Added setCSSCustomFilterEnabled/isCSSCustomFilterEnabled that is false by default.
        I've enabled it by default on Apple Mac, to make sure there's no behavior change. Anyway, CSS shaders need
        WebGL enabled, so it ends up being disabled by default.

        Reviewed by Nikolas Zimmermann.

        Test: css3/filters/effect-custom-disabled.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseFilter):
            Do not parse the custom() function when shaders are disabled.
            
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
            Do not overwrite the old style->filter() if parsing fails.
            
        (WebCore::CSSStyleSelector::createFilterOperations):
            Do not continue if one custom() filter fails to parse.
            
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h:
        (WebCore::Settings::setCSSCustomFilterEnabled):
        (WebCore::Settings::isCSSCustomFilterEnabled):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::isCSSCustomFilterEnabled):
        (WebCore::FilterEffectRenderer::build):
            Avoid creating the filter when shaders are disabled. It may happen to get here if shaders were disabled between parsing and rendering.
        
2012-01-19  Shinya Kawanaka  <shinyak@google.com>

        Node::canHaveLightChildRendererWithShadow is not used anywhere.
        https://bugs.webkit.org/show_bug.cgi?id=76627

        Reviewed by Darin Adler.

        Since Node::canHaveLightChildRendererWithShadow is not overriden anywhere, and it returns always false.
        We can remove it.

        No new tests, because no change in behavior.

        * dom/Node.h:
        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::shouldCreateRenderer):

2012-01-19  Kinuko Yasuda  <kinuko@chromium.org>

        Cleanup: make constant variable names in fileapi/ conform to WebKit's coding guideline
        https://bugs.webkit.org/show_bug.cgi?id=76625

        Reviewed by David Levin.

        No new tests as this patch has no functional changes.

        * fileapi/BlobURL.cpp:
        (WebCore::BlobURL::getIdentifier):
        (WebCore::BlobURL::createBlobURL):
        * fileapi/BlobURL.h:
        * fileapi/FileWriter.cpp:
        (WebCore::FileWriter::write):
        (WebCore::FileWriter::truncate):
        * platform/AsyncFileSystem.cpp:
        (WebCore::AsyncFileSystem::crackFileSystemURL):
        (WebCore::AsyncFileSystem::toURL):
        (WebCore::AsyncFileSystem::isAvailable):
        * platform/AsyncFileSystem.h:

2012-01-18  Sam Weinig  <sam@webkit.org>

        Move RunLoop to WebCore/platform
        https://bugs.webkit.org/show_bug.cgi?id=76471

        Reviewed by Anders Carlsson.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        Add newly moved files.

        * platform/RunLoop.cpp: Moved from Source/WebKit2/Platform/RunLoop.cpp.
        * platform/RunLoop.h: Moved from Source/WebKit2/Platform/RunLoop.h.
        * platform/gtk/RunLoopGtk.cpp: Moved from Source/WebKit2/Platform/gtk/RunLoopGtk.cpp.
        * platform/mac/RunLoopMac.mm: Moved from Source/WebKit2/Platform/mac/RunLoopMac.mm.
        * platform/qt/RunLoopQt.cpp: Moved from Source/WebKit2/Platform/qt/RunLoopQt.cpp.
        * platform/win/RunLoopWin.cpp: Moved from Source/WebKit2/Platform/win/RunLoopWin.cpp.
        Move the files.

2012-01-19  Pablo Flouret  <pablof@motorola.com>

        Fix inconsistent text selection behavior with option-shift-left/right/up/down.
        https://bugs.webkit.org/show_bug.cgi?id=75652

        Reviewed by Enrica Casucci.

        On Mac, selecting backwards by word, line or paragraph from the middle
        of some text, and then going forward leaves the caret back in the middle
        with no selection, instead of directly selecting to the other end of the
        word/line/paragraph (Unix/Windows behavior). Fix this by adding a new
        editing behavior to control whether the selection should go across the
        initial position of the caret directly or not in situations like the one
        outlined above.

        Test: editing/selection/selection-extend-should-not-move-across-caret-on-mac.html

        * editing/EditingBehavior.h:
        (WebCore::EditingBehavior::shouldExtendSelectionByWordOrLineAcrossCaret):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::modify):

2012-01-19  Simon Fraser  <simon.fraser@apple.com>

        Regression (r98735): Video chat moles in Gmail render incorrectly on Mac OS
        https://bugs.webkit.org/show_bug.cgi?id=75682

        Reviewed by James Robinson.
        
        RenderLayerBacking::isSimpleContainerCompositingLayer() gave incorret
        results in the case where the layer itself was visibility:hidden, but
        where it had visible, non-composited descendant layers.
        
        Fix by breaking RenderLayerBacking::hasVisibleNonCompositingDescendants()
        into two methods, one that tests for renderers in this layer which
        render stuff (and are thus affected by visibility on this layer), and
        another which walks descendant, non-composited layers looking for those
        which are visible.
        
        Removed an early return in the "renderObject->node()->isDocumentNode()"
        clause, because we want to run the same code that we run for non-document
        nodes.

        Test: compositing/visibility/layer-visible-content.html

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
        (WebCore::RenderLayerBacking::containsNonEmptyRenderers):
        (WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers):
        * rendering/RenderLayerBacking.h:

2012-01-19  Alexandre Elias  <aelias@google.com>

        [chromium] Draw gutter quads outside root content layer
        https://bugs.webkit.org/show_bug.cgi?id=76328

        Reviewed by James Robinson.

        Add new layer property "backgroundCoversViewport".  If the content
        layers don't fully cover the render surface, this code calculates the
        difference between the root clip rect and the root content layer and
        draws up to four background-color quads in exactly the area that would
        be undrawn.

        Test: CCTiledLayerImplTest::backgroundCoversViewport

        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::LayerChromium):
        (WebCore::LayerChromium::setBackgroundCoversViewport):
        (WebCore::LayerChromium::pushPropertiesTo):
        * platform/graphics/chromium/LayerChromium.h:
        (WebCore::LayerChromium::backgroundCoversViewport):
        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
        (WebCore::CCLayerImpl::CCLayerImpl):
        (WebCore::CCLayerImpl::setBackgroundCoversViewport):
        * platform/graphics/chromium/cc/CCLayerImpl.h:
        (WebCore::CCLayerImpl::backgroundCoversViewport):
        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
        (WebCore::CCTiledLayerImpl::appendQuads):

2012-01-19  Cary Clark  <caryclark@google.com>

        [Skia Mac] Match style of platform error underline for misspellings
        https://bugs.webkit.org/show_bug.cgi?id=76556

        Reviewed by Stephen White.

        Add Darwin-specific code in Skia to draw the error underline so that
        it matches the CoreGraphics style.

        Many existing layout tests inadvertantly trigger the misspelling
        underline by including the word 'foo' in an editable field. Those
        tests are temporarily suppressed separately in an edit to
        test_expectations.txt.

        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::GraphicsContext::drawLineForTextChecking):

2012-01-19  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Texmap] TextureMapper creates two many big intermediate surfaces
        https://bugs.webkit.org/show_bug.cgi?id=76336

        Reviewed by Simon Hausmann.

        The following has been done to optimize surface allocation:
        1. Instead of using a viewport-size surface, use a surface in the size of the layer's
           bounding rect and apply the transform after the content has been rendered into it.
        2. Avoid generating intermediate surface for occasions where they're not necessary,
           such as nested reflections without opacity.
        3. Releasing of textures from the pool is now implicit, based on refCount.
        4. Do not use intermediate surfaces for preserve-3d layers. This is in alignment with
           other ports.

        Tests in LayoutTests/compositing/masks and LayoutTests/compositing/reflection cover this.

        * platform/graphics/texmap/TextureMapper.cpp:
        (WebCore::TextureMapper::acquireTextureFromPool):
        * platform/graphics/texmap/TextureMapper.h:
        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::paintSelf):
        (WebCore::TextureMapperNode::paintSelfAndChildren):
        (WebCore::TextureMapperNode::intermediateSurfaceRect):
        (WebCore::TextureMapperNode::shouldPaintToIntermediateSurface):
        (WebCore::TextureMapperNode::isVisible):
        (WebCore::TextureMapperNode::paintSelfAndChildrenWithReplica):
        (WebCore::TextureMapperNode::paintRecursive):
        (WebCore::TextureMapperNode::syncCompositingStateSelf):
        (WebCore::TextureMapperNode::syncCompositingState):
        * platform/graphics/texmap/TextureMapperNode.h:
        (WebCore::TextureMapperPaintOptions::TextureMapperPaintOptions):

2012-01-19  Eric Seidel  <eric@webkit.org>

        Assertion failure in WebCore::HTMLFrameElementBase::insertedIntoDocument()
        https://bugs.webkit.org/show_bug.cgi?id=50312

        Reviewed by Alexey Proskuryakov.

        Removed the ASSERT and updated the comment.

        Test: fast/frames/assert-on-insertedIntoDocument.html

        * html/HTMLFrameElementBase.cpp:
        (WebCore::HTMLFrameElementBase::insertedIntoDocument):

2012-01-19  James Robinson  <jamesr@chromium.org>

        [chromium] Remove CCLayerDelegate, add ContentLayerDelegate for painting
        https://bugs.webkit.org/show_bug.cgi?id=76663

        Reviewed by Kenneth Russell.

        CCLayerDelegate used to be an interface with a half-dozen callbacks on it, but now it has only one call -
        paintContents() - and that one call is only valid for one subclass of LayerChromium, ContentLayerChromium. This
        removes the CCLayerDelegate pointer from LayerChromium and adds a ContentLayerDelegate for the paint call.

        The majority of the code changes in this patch are removing the nil parameter from various places that construct
        LayerChromium instances. Also tightens the type of GraphicsLayerChromium::m_layer to ContentLayerChromium.

        Refactoring/removing dead code, so no new tests.

        * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
        (WebCore::Canvas2DLayerChromium::Canvas2DLayerChromium):
        * platform/graphics/chromium/CanvasLayerChromium.cpp:
        (WebCore::CanvasLayerChromium::CanvasLayerChromium):
        * platform/graphics/chromium/CanvasLayerChromium.h:
        * platform/graphics/chromium/ContentLayerChromium.cpp:
        (WebCore::ContentLayerPainter::create):
        (WebCore::ContentLayerPainter::ContentLayerPainter):
        (WebCore::ContentLayerChromium::create):
        (WebCore::ContentLayerChromium::ContentLayerChromium):
        * platform/graphics/chromium/ContentLayerChromium.h:
        (WebCore::ContentLayerDelegate::~ContentLayerDelegate):
        (WebCore::ContentLayerChromium::clearDelegate):
        * platform/graphics/chromium/DrawingBufferChromium.cpp:
        (WebCore::DrawingBuffer::platformLayer):
        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::~GraphicsLayerChromium):
        (WebCore::GraphicsLayerChromium::setContentsToImage):
        (WebCore::GraphicsLayerChromium::setContentsToCanvas):
        (WebCore::GraphicsLayerChromium::setContentsToMedia):
        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
        * platform/graphics/chromium/GraphicsLayerChromium.h:
        * platform/graphics/chromium/ImageLayerChromium.cpp:
        (WebCore::ImageLayerChromium::create):
        (WebCore::ImageLayerChromium::ImageLayerChromium):
        * platform/graphics/chromium/ImageLayerChromium.h:
        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::create):
        (WebCore::LayerChromium::LayerChromium):
        * platform/graphics/chromium/LayerChromium.h:
        * platform/graphics/chromium/PluginLayerChromium.cpp:
        (WebCore::PluginLayerChromium::create):
        (WebCore::PluginLayerChromium::PluginLayerChromium):
        * platform/graphics/chromium/PluginLayerChromium.h:
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::TiledLayerChromium):
        (WebCore::TiledLayerChromium::drawsContent):
        * platform/graphics/chromium/TiledLayerChromium.h:
        * platform/graphics/chromium/VideoLayerChromium.cpp:
        (WebCore::VideoLayerChromium::create):
        (WebCore::VideoLayerChromium::VideoLayerChromium):
        * platform/graphics/chromium/VideoLayerChromium.h:
        * platform/graphics/chromium/WebGLLayerChromium.cpp:
        (WebCore::WebGLLayerChromium::create):
        (WebCore::WebGLLayerChromium::WebGLLayerChromium):
        * platform/graphics/chromium/WebGLLayerChromium.h:

2012-01-19  Greg Billock  <gbillock@google.com>

        [Coverity] Fix uninitialized constructor defects in .../html
        https://bugs.webkit.org/show_bug.cgi?id=74965

        Reviewed by Simon Fraser.

        Test: fast/canvas/script-tests/canvas-webkitLineDash.js

        * html/HTMLFormCollection.cpp:
        (WebCore::HTMLFormCollection::HTMLFormCollection):
        * html/StepRange.cpp:
        (WebCore::StepRange::StepRange):
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::State::State):
        * html/canvas/CanvasStyle.h:
        (WebCore::CanvasStyle::CMYKAValues::CMYKAValues):
        * html/canvas/WebGLGetInfo.cpp:
        (WebCore::WebGLGetInfo::WebGLGetInfo):
        * html/parser/CSSPreloadScanner.cpp:
        (WebCore::CSSPreloadScanner::CSSPreloadScanner):
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::WebVTTParser):

2012-01-19  Alexandru Chiculita  <achicu@adobe.com>

        CSS Shaders: Remove the setTimeout from the layout tests
        https://bugs.webkit.org/show_bug.cgi?id=76535

        Reviewed by Tony Chang.

        We had setTimeout on old tests because the snapshot picture was taken too early, before the shaders were loaded.
        The problem was that the RenderLayer was notified that the shader was loaded only after the onload event was triggered,
        so a simple setTimeout(0) would have fixed the issue, but better than that would be to to always call CachedResource::data 
        in CachedShader::data, which notifies the load earlier (before onload).

        No new tests, just removed the setTimeout from old ones.

        * loader/cache/CachedShader.cpp:
        (WebCore::CachedShader::data):

2012-01-19  Min Qin  <qinmin@google.com>

        Improve touch handling performance by reusing the hitTest result
        https://bugs.webkit.org/show_bug.cgi?id=75506

        Reviewed by Adam Barth.

        This is a performance optimization and should not cause behavior changes. Existing tests should cover it.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleTouchEvent):

2012-01-19  Jon Lee  <jonlee@apple.com>

        Add text-overflow support that allows placeholder and value text to show an ellipsis when not focused
        https://bugs.webkit.org/show_bug.cgi?id=76118
        <rdar://problem/9271742>

        Reviewed by Dan Bernstein.

        Tests: fast/css/text-overflow-input-focus-placeholder-expected.html
               fast/css/text-overflow-input-focus-placeholder.html
               fast/css/text-overflow-input-focus-value-expected.html
               fast/css/text-overflow-input-focus-value.html
               fast/css/text-overflow-input.html

        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::styleDidChange): When the style of the text control
        changes, we update the text overflow property of the placeholder.
        (WebCore::RenderTextControlSingleLine::createInnerTextStyle): When the style of the text control
        changes, we update the text overflow property of the inner text block.
        (WebCore::RenderTextControlSingleLine::textShouldBeTruncated): The text of the value and placeholder should
        only contain the ellipsis if the input's text-overflow property is set to ellipsis, and the input is not focused.
        * rendering/RenderTextControlSingleLine.h:

2012-01-19  Mark Hahnenberg  <mhahnenberg@apple.com>

        Implement a new allocator for backing stores
        https://bugs.webkit.org/show_bug.cgi?id=75181

        Reviewed by Filip Pizlo.

        No new tests.

        Added forwarding header for new CheckedBoolean used in the bump allocator.

        * ForwardingHeaders/wtf/CheckedBoolean.h: Added.

2012-01-13  Ryosuke Niwa  <rniwa@webkit.org>

        Crash in CompositeEditCommand::ensureComposition
        https://bugs.webkit.org/show_bug.cgi?id=76207

        Reviewed by Chang Shu.

        The crash was caused by TypingCommand not kept alive when new editing commands are executed
        during adding more typings to the open last typing command since m_lastEditCommand is replaced
        by the new command. Fixed the bug by keeping them alive a little longer with RefPtr.

        Test: editing/execCommand/editing-command-while-executing-typing-command-crash.html

        * editing/FrameSelection.cpp:
        (WebCore::shouldStopBlinkingDueToTypingCommand):
        (WebCore::FrameSelection::updateAppearance):
        * editing/TypingCommand.cpp:
        (WebCore::TypingCommand::deleteSelection):
        (WebCore::TypingCommand::deleteKeyPressed):
        (WebCore::TypingCommand::forwardDeleteKeyPressed):
        (WebCore::TypingCommand::insertText):
        (WebCore::TypingCommand::insertLineBreak):
        (WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):
        (WebCore::TypingCommand::insertParagraphSeparator):
        (WebCore::TypingCommand::lastTypingCommandIfStillOpenForTyping):
        (WebCore::TypingCommand::closeTyping):
        * editing/TypingCommand.h:

2012-01-19  Andreas Kling  <awesomekling@apple.com>

        Unreviewed debug build fix.

        Remove ASSERT that the cached match is cacheable (we don't store that flag anymore.)

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::findFromMatchedDeclarationCache):

2012-01-19  Robert Hogan  <robert@webkit.org>

        Fix Debug build after r105433

        Unreviewed, build fix.

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::recalcCollapsedBorders):

2012-01-19  Andreas Kling  <awesomekling@apple.com>

        CSSStyleSelector: Factor 'isCacheable' flag out of MatchedResult.
        <http://webkit.org/b/76376>

        Reviewed by Antti Koivisto.

        Break up the MatchResult struct into MatchResult and MatchRanges. The matched
        declaration cache only needs the ranges, so we save 4 bytes per entry.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchAllRules):
        (WebCore::CSSStyleSelector::matchUARules):
        (WebCore::CSSStyleSelector::pseudoStyleForElement):
        (WebCore::CSSStyleSelector::pseudoStyleRulesForElement):
        (WebCore::operator==):
        (WebCore::operator!=):
        (WebCore::CSSStyleSelector::findFromMatchedDeclarationCache):
        (WebCore::CSSStyleSelector::addToMatchedDeclarationCache):
        (WebCore::CSSStyleSelector::applyMatchedDeclarations):
        * css/CSSStyleSelector.h:
        (WebCore::CSSStyleSelector::MatchRanges::MatchRanges):
        (WebCore::CSSStyleSelector::MatchResult::MatchResult):

2012-01-19  Eric Carlson  <eric.carlson@apple.com>

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

        Reviewed by Darin Adler.

        Notify the media element when tracks are added to and removed from a document instead of
        a tree because we don't want to trigger loading unless a track element is in the document.

        Test: media/track/track-delete-during-setup.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::trackWasRemoved): Renamed from trackWillBeRemoved because it is
            now called after removal.
        * html/HTMLMediaElement.h:

        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::insertedIntoDocument): Was insertedIntoTree. Use this instead
            because we care about when a track is inserted and removed from a document, not a tree.
        (WebCore::HTMLTrackElement::removedFromDocument): Ditto.
        * html/HTMLTrackElement.h:

2012-01-18  Robert Hogan  <robert@webkit.org>

        Hit ASSERTION FAILED: table()->collapseBorders() on techcrunch.com
        https://bugs.webkit.org/show_bug.cgi?id=76405

        Reviewed by Julien Chaffraix.

        Tests: fast/css/nested-table-with-collapsed-borders.html

        Change recalcCollapsedBorders() so that it only collects border values for the current
        table. Calculating the borders for nested tables was wrong as well as wasting cycles, though it would never
        have impacted rendering since a cell only paints the borders that match its own.

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::recalcCollapsedBorders):

2012-01-18  Jer Noble  <jer.noble@apple.com>

        Make WebAudio API const-correct.
        https://bugs.webkit.org/show_bug.cgi?id=76573

        Reviewed by Daniel Bates.

        No new tests; no net change in functionality, so covered by existing tests.

        The non-const data() accessor was renamed mutableData() to expose const-correctness
        bugs during compile time:
        * platform/audio/AudioChannel.h:
        (WebCore::AudioChannel::mutableData):

        The following functions were made const correct:
        * platform/audio/AudioArray.h:
        (WebCore::AudioArray::copyToRange):
        * platform/audio/AudioBus.h:
        (WebCore::AudioBus::createBufferFromRange):
        (WebCore::AudioBus::createBySampleRateConverting):
        (WebCore::AudioBus::createByMixingToMono):
        * platform/audio/FFTConvolver.cpp:
        (WebCore::FFTConvolver::process):
        * platform/audio/FFTConvolver.h:
        * platform/audio/FFTFrame.cpp:
        (WebCore::FFTFrame::doPaddedFFT):
        (WebCore::FFTFrame::doFFT):
        * platform/audio/FFTFrame.h:
        * platform/audio/ReverbConvolverStage.cpp:
        (WebCore::ReverbConvolverStage::ReverbConvolverStage):
        (WebCore::ReverbConvolverStage::process):
        * platform/audio/ReverbConvolverStage.h:
        * platform/audio/ReverbInputBuffer.cpp:
        (WebCore::ReverbInputBuffer::write):
        * platform/audio/ReverbInputBuffer.h:
        * platform/audio/SincResampler.cpp:
        (WebCore::SincResampler::process):
        * platform/audio/SincResampler.h:
        * platform/audio/ZeroPole.cpp:
        (WebCore::ZeroPole::process):
        * platform/audio/ZeroPole.h:
        * platform/audio/AudioBus.cpp:
        (WebCore::AudioBus::channelByType):
        * platform/audio/AudioBus.h:
        (WebCore::AudioBus::gain):
        * platform/audio/AudioDSPKernelProcessor.cpp:
        (WebCore::AudioDSPKernelProcessor::process):
        * platform/audio/AudioDSPKernelProcessor.h:
        * platform/audio/AudioProcessor.h:
        * platform/audio/DynamicsCompressor.cpp:
        (WebCore::DynamicsCompressor::process):
        * platform/audio/DynamicsCompressor.h:
        * platform/audio/DynamicsCompressorKernel.cpp:
        (WebCore::DynamicsCompressorKernel::process):
        * platform/audio/DynamicsCompressorKernel.h:
        * platform/audio/EqualPowerPanner.cpp:
        (WebCore::EqualPowerPanner::pan):
        * platform/audio/EqualPowerPanner.h:
        * platform/audio/HRTFElevation.h:
        (WebCore::HRTFElevation::numberOfAzimuths):
        * platform/audio/HRTFPanner.cpp:
        (WebCore::HRTFPanner::pan):
        * platform/audio/HRTFPanner.h:
        * platform/audio/Panner.h:
        * platform/audio/Reverb.cpp:
        (WebCore::Reverb::process):
        * platform/audio/Reverb.h:
        * platform/audio/ReverbConvolver.cpp:
        (WebCore::ReverbConvolver::process):
        * platform/audio/ReverbConvolver.h:
        * platform/audio/ffmpeg/FFTFrameFFMPEG.cpp:
        (WebCore::FFTFrame::doFFT):
        * platform/audio/mkl/FFTFrameMKL.cpp:
        (WebCore::FFTFrame::doFFT):

        The following functions were modified to use the renamed mutableData() accessor:
        * platform/audio/AudioBus.cpp:
        (WebCore::AudioBus::processWithGainFromMonoStereo):
        (WebCore::AudioBus::copyWithSampleAccurateGainValuesFrom):
        * platform/audio/AudioChannel.cpp:
        (WebCore::AudioChannel::scale):
        (WebCore::AudioChannel::copyFrom):
        (WebCore::AudioChannel::copyFromRange):
        (WebCore::AudioChannel::sumFrom):
        * platform/audio/AudioDSPKernelProcessor.cpp:
        (WebCore::AudioDSPKernelProcessor::process):
        * platform/audio/AudioResampler.cpp:
        (WebCore::AudioResampler::process):
        * platform/audio/DynamicsCompressor.cpp:
        (WebCore::DynamicsCompressor::process):
        * platform/audio/EqualPowerPanner.cpp:
        (WebCore::EqualPowerPanner::pan):
        * platform/audio/HRTFKernel.cpp:
        (WebCore::extractAverageGroupDelay):
        (WebCore::HRTFKernel::HRTFKernel):
        (WebCore::HRTFKernel::createImpulseResponse):
        * platform/audio/HRTFPanner.cpp:
        (WebCore::HRTFPanner::pan):
        * platform/audio/MultiChannelResampler.cpp:
        (WebCore::MultiChannelResampler::process):
        * platform/audio/Reverb.cpp:
        (WebCore::Reverb::process):
        * platform/audio/ReverbConvolver.cpp:
        (WebCore::ReverbConvolver::ReverbConvolver):
        (WebCore::ReverbConvolver::process):
        * platform/audio/mac/AudioFileReaderMac.cpp:
        (WebCore::AudioFileReader::createBus):
        * platform/audio/mac/FFTFrameMac.cpp:
        (WebCore::FFTFrame::doFFT):
        * webaudio/AudioBufferSourceNode.cpp:
        (WebCore::AudioBufferSourceNode::process):
        (WebCore::AudioBufferSourceNode::renderFromBuffer):
        * webaudio/BiquadProcessor.cpp:
        (WebCore::BiquadProcessor::process):
        * webaudio/JavaScriptAudioNode.cpp:
        (WebCore::JavaScriptAudioNode::process):
        * webaudio/OfflineAudioDestinationNode.cpp:
        (WebCore::OfflineAudioDestinationNode::render):
        * webaudio/RealtimeAnalyser.cpp:
        (WebCore::RealtimeAnalyser::writeInput):
        * webaudio/WaveShaperProcessor.cpp:
        (WebCore::WaveShaperProcessor::process):

2012-01-19  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed, inspector closure compilation fix.

        * inspector/front-end/ScriptsPanel.js:
        * inspector/front-end/TabbedEditorContainer.js:

2012-01-19  David Hyatt  <hyatt@apple.com>

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

        Before landing support for centering, fix the keyword value to match the latest draft.
        The new keyword is "contain" instead of "bounds."

        Revised the existing parsing tests to reflect the updated value.

        Reviewed by Dan Bernstein.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator LineGridSnap):
        * css/CSSValueKeywords.in:
        * rendering/style/RenderStyleConstants.h:

2012-01-19  Joi Sigurdsson  <joi@chromium.org>

        Enable use of precompiled headers in Chromium port on Windows.

        Bug 76381 - Use precompiled headers in Chromium port on Windows
        https://bugs.webkit.org/show_bug.cgi?id=76381

        Reviewed by Tony Chang.

        No new tests needed; if the change builds and existing tests pass
        that should provide enough coverage.

        * WebCore.gyp/WebCore.gyp: Include WinPrecompile.gypi.

2012-01-19  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Switching tabs in TabbedEditorContainer should reveal selected script in navigator.
        https://bugs.webkit.org/show_bug.cgi?id=76636

        Reviewed by Pavel Feldman.

        Renamed FileSelector's ScriptSelected event into FileSelected, added EditorSelected
        event to EditorContainer.
        Renamed _showSourceFrame into _showFile.
        Made _uiSourceCodeRemoved reuse _removeSourceFrame.

        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.ScriptsNavigator.prototype.scriptSelected):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
        (WebInspector.ScriptsPanel.prototype._showAndRevealInFileSelector):
        (WebInspector.ScriptsPanel.prototype._editorSelected):
        (WebInspector.ScriptsPanel.prototype._fileSelected):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._goBack):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._goForward):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._filesSelectChanged):
        * inspector/front-end/TabbedEditorContainer.js:
        (WebInspector.TabbedEditorContainer):
        (WebInspector.TabbedEditorContainer.prototype._tabSelected):

2012-01-19  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]Add support for background-color in region styling
        https://bugs.webkit.org/show_bug.cgi?id=71488

        Reviewed by David Hyatt.

        This patch enables region styling again. The region styling tests were also added back. 
        With the improvements from https://bugs.webkit.org/show_bug.cgi?id=76265, hopefully we will not see the same 3% regressions
        in performance.

        * rendering/RenderObject.h:
        (WebCore::RenderObject::style):

2012-01-16  Jer Noble  <jer.noble@apple.com>

        Crash at WebCore::MediaControlRootElement::makeOpaque + 97
        https://bugs.webkit.org/show_bug.cgi?id=76391

        Reviewed by John Sullivan.

        No new tests; Speculative fix for crash.

        Crash report data suggests this crash is occurring as the document is being
        closed.  Check the nullity of document()->page() before deref-ing.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlPanelElement::makeOpaque):

2012-01-19  Ken Buchanan <kenrb@chromium.org>

        Layout Test fast/text/international/spaces-combined-in-vertical-text.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=75787

        Reviewed by Simon Fraser.

        This is a tweak to my patch in r104322. On some platforms
        RenderCombineText::combineText() can abort early during inline
        iteration, causing this loop in skipLeadingWhitespace to spin,
        hence the layout test timeouts. This patch accounts for that
        condition and makes the loop iteration more robust.

        No new test because this is fixing a failure on an existing test.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):

2012-01-19  Jer Noble  <jer.noble@apple.com>

        HRTFPanner not rendering correctly on mac port
        https://bugs.webkit.org/show_bug.cgi?id=76397

        Reviewed by Eric Carlson.

        No new tests; HRTF results are currently not testable.

        Re-generate the Composite.wav file from its constituent azimuth & elevation files.

        * platform/audio/resources/Composite.wav:

2012-01-19  David Hyatt  <hyatt@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=76577
        
        Fix crash when nested line grids are used. Make sure to bail out if no line grid
        is found rather than crashing.

        Reviewed by Dan Bernstein.

        Added fast/line-grid/line-grid-nested.html.

        * rendering/LayoutState.cpp:
        (WebCore::LayoutState::establishLineGrid):

2012-01-18  Enrica Casucci  <enrica@apple.com>

        editingAttributedStringFromRange in WebHTMLConverter does not handle NSUnderlineStyleAttributeName.
        https://bugs.webkit.org/show_bug.cgi?id=76588
        <rdar://problem/9325183>

        Reviewed by Dan Bernstein.

        Added TestWebKitAPI test.

        * platform/mac/HTMLConverter.mm:
        (+[WebHTMLConverter editingAttributedStringFromRange:]):

2012-01-18  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Implement screen resolution emulation backend
        https://bugs.webkit.org/show_bug.cgi?id=76532

        Reviewed by Pavel Feldman.

        The emulation affects [min-|max-]device-(width|height) media queries, window.screen.(width|height),
        and window.inner(Width|Height).

        Test: inspector/styles/override-screen-size.html

        * css/MediaQueryEvaluator.cpp:
        (WebCore::device_heightMediaFeatureEval): Apply device-height override if necessary.
        (WebCore::device_widthMediaFeatureEval): Apply device-width override if necessary.
        * inspector/Inspector.json:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::InspectorCSSAgent):
        (WebCore::InspectorCSSAgent::startSelectorProfiler):
        (WebCore::InspectorCSSAgent::stopSelectorProfilerImpl):
        (WebCore::InspectorCSSAgent::willMatchRule):
        (WebCore::InspectorCSSAgent::didMatchRule):
        (WebCore::InspectorCSSAgent::willProcessRule):
        (WebCore::InspectorCSSAgent::didProcessRule):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::applyScreenWidthOverrideImpl):
        (WebCore::InspectorInstrumentation::applyScreenHeightOverrideImpl):
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::applyScreenWidthOverride):
        (WebCore::InspectorInstrumentation::applyScreenHeightOverride):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::InspectorPageAgent):
        (WebCore::InspectorPageAgent::restore):
        (WebCore::InspectorPageAgent::disable):
        (WebCore::InspectorPageAgent::setScreenSizeOverride):
        (WebCore::InspectorPageAgent::applyScreenWidthOverride):
        (WebCore::InspectorPageAgent::applyScreenHeightOverride):
        (WebCore::InspectorPageAgent::updateFrameViewFixedLayout):
        (WebCore::InspectorPageAgent::clearFrameViewFixedLayout):
        (WebCore::InspectorPageAgent::setFrameViewFixedLayout):
        * inspector/InspectorPageAgent.h:
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::innerHeight): Apply height override if necessary.
        (WebCore::DOMWindow::innerWidth): Apply width override if necessary.
        * page/Screen.cpp:
        (WebCore::Screen::height): Apply height override if necessary.
        (WebCore::Screen::width): Apply width override if necessary.

2012-01-18  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        [Qt] Handle the layers visible rect calculation on the web process.
        https://bugs.webkit.org/show_bug.cgi?id=74720

        Reviewed by Noam Rosenthal.

        Remove all visible rect calculation related code from TextureMapperNode.

        * platform/graphics/texmap/TextureMapperNode.cpp:
        * platform/graphics/texmap/TextureMapperNode.h:

2012-01-19  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Improve focus switching in scripts panel.
        https://bugs.webkit.org/show_bug.cgi?id=76628

        Reviewed by Pavel Feldman.

        * inspector/front-end/Dialog.js:
        (WebInspector.Dialog.prototype._hide):
        * inspector/front-end/FilteredItemSelectionDialog.js:
        (WebInspector.FilteredItemSelectionDialog.prototype.onEnter):
        (WebInspector.JavaScriptOutlineDialog.prototype.selectItem):
        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.ScriptsNavigator.prototype.get defaultFocusedElement):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._showSourceLine):

2012-01-19  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Add isSelfOrAnsector and isSelfOrDescendant methods to utilities.
        https://bugs.webkit.org/show_bug.cgi?id=76618

        Added isSelfOrAncestor, isSelfOrDescendant and WebInspector.restoreFocusFromElement methods.

        Reviewed by Pavel Feldman.

        * inspector/front-end/Drawer.js:
        * inspector/front-end/HelpScreen.js:
        (WebInspector.HelpScreen.prototype._onBlur):
        * inspector/front-end/MetricsSidebarPane.js:
        (WebInspector.MetricsSidebarPane.prototype._handleKeyDown):
        * inspector/front-end/Popover.js:
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype.showUISourceCode):
        * inspector/front-end/StylesSidebarPane.js:
        ():
        * inspector/front-end/TextPrompt.js:
        (WebInspector.TextPrompt.prototype.detach):
        (WebInspector.TextPrompt.prototype.isCaretAtEndOfPrompt):
        * inspector/front-end/TextViewer.js:
        (WebInspector.TextEditorMainPanel.prototype._updateSelectionOnStartEditing):
        (WebInspector.TextEditorMainPanel.prototype._handleDOMUpdates):
        * inspector/front-end/UIUtils.js:
        (WebInspector.startEditing.cleanUpAfterEditing):
        (WebInspector.restoreFocusFromElement):
        * inspector/front-end/utilities.js:
        (Element.prototype.isInsertionCaretInside):
        ():

2012-01-19  Andreas Kling  <awesomekling@apple.com>

        DynamicNodeList: Simplify internal Caches object.
        <http://webkit.org/b/76600>

        Reviewed by Ryosuke Niwa.

        Move m_caches from DynamicSubtreeNodeList and ChildNodeList up into DynamicNodeList.
        Remove the inheritance from RefCounted and store it simply as "Caches m_caches"
        This avoids one heap allocation per DynamicNodeList. Also reordered the Caches members
        to pack slightly better on 64-bit.

        * dom/ChildNodeList.cpp:
        (WebCore::ChildNodeList::ChildNodeList):
        (WebCore::ChildNodeList::length):
        (WebCore::ChildNodeList::item):
        * dom/ChildNodeList.h:
        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
        (WebCore::DynamicSubtreeNodeList::length):
        (WebCore::DynamicSubtreeNodeList::itemForwardsFromCurrent):
        (WebCore::DynamicSubtreeNodeList::itemBackwardsFromCurrent):
        (WebCore::DynamicSubtreeNodeList::item):
        * dom/DynamicNodeList.h:
        (WebCore::DynamicNodeList::invalidateCache):
        * dom/Node.cpp:
        (WebCore::NodeRareData::clearChildNodeListCache):

2012-01-19  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: TabbedPane closeAllTabs does not close all tabs.
        https://bugs.webkit.org/show_bug.cgi?id=76624

        Reviewed by Pavel Feldman.

        * inspector/front-end/ScriptsPanel.js:
        * inspector/front-end/TabbedPane.js:
        (WebInspector.TabbedPane.prototype.closeAllTabs):

2012-01-18  Rob Buis  <rbuis@rim.com>

        image/pjpeg not supported for decoding on BlackBerry platform
        https://bugs.webkit.org/show_bug.cgi?id=76595

        Reviewed by Antonio Gomes.

        Add image/pjpeg as one of the supported types for image decoding on BlackBerry platform.

        * platform/MIMETypeRegistry.cpp:
        (WebCore::initializeSupportedImageMIMETypes):

2012-01-19  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r105402.
        http://trac.webkit.org/changeset/105402
        https://bugs.webkit.org/show_bug.cgi?id=76623

        Layout test problems (Requested by WildFox on #webkit).

        * css/svg.css:
        (svg):
        * rendering/RenderBox.h:
        (WebCore::RenderBox::computeIntrinsicRatioInformation):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::computeReplacedLogicalWidth):
        (WebCore::RenderImage::computeIntrinsicRatioInformation):
        * rendering/RenderImage.h:
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::computeReplacedLogicalWidth):
        (WebCore::RenderReplaced::logicalHeightIsAuto):
        (WebCore::RenderReplaced::computeReplacedLogicalHeight):
        * rendering/RenderReplaced.h:
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation):
        (WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
        (WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
        * rendering/svg/RenderSVGRoot.h:
        * rendering/svg/RenderSVGViewportContainer.h:
        * svg/SVGLengthContext.cpp:
        (WebCore::SVGLengthContext::determineViewport):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::viewport):
        (WebCore::SVGSVGElement::parseMappedAttribute):
        (WebCore::updateCSSForAttribute):
        (WebCore::SVGSVGElement::svgAttributeChanged):
        (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
        (WebCore::SVGSVGElement::currentViewBoxRect):
        * svg/SVGSVGElement.h:
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::size):
        (WebCore::SVGImage::computeIntrinsicDimensions):
        * svg/graphics/SVGImage.h:

2012-01-19  Alexis Menard  <alexis.menard@openbossa.org>

        Strange Result for getComputedStyle on borderWidth set in em
        https://bugs.webkit.org/show_bug.cgi?id=18294

        Reviewed by Tony Chang.

        BorderValue stores its width on a 12 bits unsigned. This patch 
        increase it to 27. The patch also modify the way to set the 
        width or to get it, we now use a unsigned rather than a short.

        Test: fast/css/border-width-large.html

        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::computeLength):
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * page/animation/AnimationBase.cpp:
        (WebCore::blendFunc):
        (WebCore::AnimationBase::ensurePropertyMap):
        * platform/animation/AnimationUtilities.h:
        (WebCore::blend):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::adjustStyle):
        * rendering/style/BorderData.h:
        (WebCore::BorderData::borderLeftWidth):
        (WebCore::BorderData::borderRightWidth):
        (WebCore::BorderData::borderTopWidth):
        (WebCore::BorderData::borderBottomWidth):
        * rendering/style/BorderValue.h:
        (WebCore::BorderValue::width):
        * rendering/style/RenderStyle.cpp:
        * rendering/style/RenderStyle.h:
        (WebCore::RenderStyleBitfields::borderLeftWidth):
        (WebCore::RenderStyleBitfields::borderRightWidth):
        (WebCore::RenderStyleBitfields::borderTopWidth):
        (WebCore::RenderStyleBitfields::borderBottomWidth):
        (WebCore::RenderStyleBitfields::setBorderLeftWidth):
        (WebCore::RenderStyleBitfields::setBorderRightWidth):
        (WebCore::RenderStyleBitfields::setBorderTopWidth):
        (WebCore::RenderStyleBitfields::setBorderBottomWidth):
        (WebCore::RenderStyleBitfields::initialBorderWidth):
        (WebCore::RenderStyleBitfields::initialColumnRuleWidth):
        (WebCore::RenderStyleBitfields::initialOutlineWidth):

2012-01-18  Nikolas Zimmermann  <nzimmermann@rim.com>

        Differentiate between SVG/CSS width/height attributes/properties
        https://bugs.webkit.org/show_bug.cgi?id=76447

        Reviewed by Antti Koivisto.

        Remove a gazillion of hacks out of our SVG implementation, by correctly differentiating between the
        SVG width/height attributes and the CSS width/height properties. They need to be treated independently
        when handling the intrinsic size negotiation, according to both CSS 2.1 & SVG 1.1 2nd Edition specs.

        Fixes several bugs in the LayoutTests/svg/custom/*object*sizing tests, we now match Opera perfectly. FF still has some bugs, and IE9 as well.

        * css/svg.css: Remove hardcoded, width/height: 100% on <svg>.
        * rendering/RenderBox.h:
        (WebCore::RenderBox::computeIntrinsicRatioInformation): Make 'intrinsicRatio' a float, and add 'intrinsicSize' as seperated FloatSize, to avoid confusion.
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions): Add forgotton case for percentage intrinsic sizes, that lead to workarounds in other places, that can now be removed.
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::computeReplacedLogicalWidth): Directly use imageHasRelativeWidth/Height(), it does differentiate between SVG/CSS width/height attributes/properties now.
        (WebCore::RenderImage::computeIntrinsicRatioInformation): Adapt to 'intrinsicRatio' argument change.
        * rendering/RenderImage.h: Ditto.
        * rendering/RenderReplaced.cpp: Refactor existing code, break out firstContainingBlockWithLogicalWidth/hasReplacedLogicalWidth/hasReplacedLogicalHeight/hasAutoHeightOrContainingBlockWithAutoHeight.
        (WebCore::firstContainingBlockWithLogicalWidth): Refactored.
        (WebCore::RenderReplaced::hasReplacedLogicalWidth): Refactored, and exported, so SVGSVGElement::widthAttributeEstablishesViewport() can use it.
        (WebCore::hasAutoHeightOrContainingBlockWithAutoHeight): Refactored.
        (WebCore::RenderReplaced::hasReplacedLogicalHeight): Refactored, and exported, so SVGSVGElement::heightAttributeEstablishesViewport() can use it.
        (WebCore::RenderReplaced::computeReplacedLogicalWidth): Adapt to 'intrinsicRatio' changes ('intrinsicSize' is now decoupled from it). Refactor so that RenderSVGRoot can directly use it as well!
        (WebCore::RenderReplaced::computeReplacedLogicalHeight): Ditto.
        * rendering/RenderReplaced.h:
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation): Only determine the intrinsic size & ratio using the SVG width/height attributes, not the CSS width/height properties, as it's specified.
        (WebCore::resolveLengthAttributeForSVG): Helper function for computeReplacedLogicalWidth/Height, that scales Length values that come from SVG width/height attributes.
        (WebCore::RenderSVGRoot::computeReplacedLogicalWidth): Finally remove home-brewn size computation logic - it can be fully shared with RenderReplaced now that we inherit from it.
        (WebCore::RenderSVGRoot::computeReplacedLogicalHeight): Ditto.
        * rendering/svg/RenderSVGRoot.h:
        * rendering/svg/RenderSVGViewportContainer.h:
        (WebCore::RenderSVGViewportContainer::viewport): Export viewport() for easier length resolution.
        * svg/SVGLengthContext.cpp:
        (WebCore::SVGLengthContext::determineViewport): Finally clean up this hell, and make it easy to understand. Only need to resolve lengths against either RenderSVGRoot or RenderSVGViewportContainer now.
        * svg/SVGSVGElement.cpp: 
        (WebCore::SVGSVGElement::viewport): Remove wrong code and disable this. Its not used, and we have no test coverage for it. Its current implementation didn't make any sense.
        (WebCore::SVGSVGElement::parseMappedAttribute): Remove hacks mapping SVG width/height attributes to CSS properties.
        (WebCore::SVGSVGElement::svgAttributeChanged): Ditto.
        (WebCore::SVGSVGElement::localCoordinateSpaceTransform): Refactored.
        (WebCore::SVGSVGElement::currentViewBoxRect): Ditto.
        (WebCore::SVGSVGElement::currentViewportSize): Ditto.
        (WebCore::SVGSVGElement::widthAttributeEstablishesViewport): Main logic determining if the SVG or CSS properties establish the viewport -  a direct transliteration from the spec.
        (WebCore::SVGSVGElement::heightAttributeEstablishesViewport): Ditto.
        (WebCore::SVGSVGElement::intrinsicWidth): Helper.
        (WebCore::SVGSVGElement::intrinsicHeight): Ditto.
        * svg/SVGSVGElement.h:
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::size): Cleanup code.
        (WebCore::SVGImage::hasRelativeWidth): Added, avoids hacks in RenderBoxModelObject.
        (WebCore::SVGImage::hasRelativeHeight): Ditto.
        (WebCore::SVGImage::computeIntrinsicDimensions): Make use of new SVGSVGElement::computeIntrinsicDimensions.
        * svg/graphics/SVGImage.h:

2012-01-19  Ryosuke Niwa  <rniwa@webkit.org>

        drop event isn't fired for contentEditable in edit drag
        https://bugs.webkit.org/show_bug.cgi?id=57185

        Reviewed by Adam Barth.

        Dispatch drop and dragend events after edit drag per HTML5 spec:
        http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#drag-and-drop-processing-model

        There are two major differences between the spec and WebKit's new behavior:

        While the spec says we have to insert the dragged contents immediately after dispatching drop event
        and delete the source in the default event handler of dragend event, doing so in WebKit is extremely
        difficult because of the way we manage the selection. Instead, we continue to delete the source
        and insert the dragged contents immediately after the drop event; this behavior matches that of Firefox 9.

        When the dragged contents and the destination of the move is in the same text node, ReplaceSelectionCommand
        may end up replacing it with a new text node. But this removal causes a problem when EventHandler uses
        the node to dispatch dragend event because the node is "orphaned" from its parent at that point. To mitigate
        this issue, we update the dragState's m_dragSrc when the node is orphaned by the edit drag. While this behavior
        may differ from the spec and other browsers, not delivering dragend to the editing host seems strictly worse than
        dispatching it at the slightly wrong target.

        Tests: fast/events/moving-text-should-fire-drop-and-dragend-events-2.html
               fast/events/moving-text-should-fire-drop-and-dragend-events.html

        * page/DragController.cpp:
        (WebCore::DragController::performDrag): Dispatch drop event even when m_isHandlingDrag is true as long
        as DragDestinationActionDHTML is an acceptable action.
        (WebCore::DragController::concludeEditDrag): Call updateDragStateAfterEditDragIfNeeded after inserting
        the dragged contents. This is necessary when ReplaceSelectionCommand or MoveSelectionCommand modifies
        the source node while inserting the dragged contents.
        * page/EventHandler.cpp:
        (WebCore::EventHandler::performDragAndDrop): Clear the drag state only if drop event's default action
        was prevented so that we dispatch dragevent event later.
        (WebCore::EventHandler::updateDragStateAfterEditDragIfNeeded): Update dragState's m_dragSrc when the node
        is orphaned. See above for the rationale.
        * page/EventHandler.h:

2012-01-18  Kinuko Yasuda  <kinuko@chromium.org>

        Cleanup: Move chrome-specific filesystem type handling code (for FileSystem API) under chromium directory
        https://bugs.webkit.org/show_bug.cgi?id=76551

        Reviewed by Darin Fisher.

        Moved the implementation of crackFileSystemURL() and toURL() from
        WebCore/fileapi/DOMFileSystemBase into WebCore/platform/AsyncFileSystem
        so that each platform can extend/implement their behavior if necessary.

        No new tests since this patch has no functionality changes. (Existing
        tests should pass)

        * fileapi/DOMFileSystemBase.cpp: Moved the implementation of
        crackFileSystemURL() to AsyncFileSystem
        (WebCore::DOMFileSystemBase::crackFileSystemURL):
        * fileapi/DOMFileSystemBase.h:
        * fileapi/EntryBase.cpp: Moved the implementation of toURL() to AsyncFileSystem
        (WebCore::EntryBase::toURL):
        * page/DOMWindow.cpp: Removed chrome-specific type handling code.
        (WebCore::DOMWindow::webkitRequestFileSystem):
        * page/DOMWindow.h: Removed chrome-specific filesystem type
        (EXTERNAL).
        * platform/AsyncFileSystem.cpp: Added default implementation of toURL() and crackFileSystemURL()
        (WebCore::AsyncFileSystem::toURL):
        (WebCore::AsyncFileSystem::crackFileSystemURL):
        * platform/AsyncFileSystem.h:
        * workers/WorkerContext.cpp: Removed chrome-specific type handling code.
        (WebCore::WorkerContext::webkitRequestFileSystem):
        (WebCore::WorkerContext::webkitRequestFileSystemSync):

2012-01-19  Mihnea Ovidenie  <mihnea@adobe.com>

        Cache RenderStyle pointer as a method to avoid performance regression for region styling
        https://bugs.webkit.org/show_bug.cgi?id=76265

        Reviewed by David Hyatt.

        No new tests since this is just refactoring.
        When region styling was enabled in https://bugs.webkit.org/show_bug.cgi?id=71488,
        it introduced a performance regression due to the change of RenderObject::style() method.
        This patch tries to avoid a new performance regression when region styling will be enabled again.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::MarginInfo::MarginInfo):
        (WebCore::RenderBlock::styleWillChange):
        (WebCore::RenderBlock::layoutBlock):
        (WebCore::RenderBlock::layoutBlockChildren):
        (WebCore::RenderBlock::layoutBlockChild):
        (WebCore::RenderBlock::computePreferredLogicalWidths):
        (WebCore::getBorderPaddingMargin):
        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
        (WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::willBeDestroyed):
        (WebCore::RenderBox::styleWillChange):
        (WebCore::RenderBox::styleDidChange):
        (WebCore::RenderBox::updateBoxModelInfoFromStyle):
        (WebCore::RenderBox::computeRectForRepaint):
        (WebCore::RenderBox::computeLogicalWidthInRegion):
        (WebCore::RenderBox::computeLogicalWidthUsing):
        (WebCore::RenderBox::computeLogicalHeight):
        (WebCore::RenderBox::computePercentageLogicalHeight):
        (WebCore::RenderBox::computePositionedLogicalHeight):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::styleWillChange):
        (WebCore::RenderBoxModelObject::updateBoxModelInfoFromStyle):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::styleDidChange):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::styleDidChange):
        (WebCore::RenderText::computePreferredLogicalWidths):

2012-01-19  Kazuhiro Inaba  <kinaba@chromium.org>

        [Chromium] Random characters got rendered as empty boxes or with incorrect glyphs even when a font is present
        https://bugs.webkit.org/show_bug.cgi?id=76508

        Reviewed by Kent Tamura.

        Wrapped GetGlyphIndices() API calls so that when they failed we trigger font
        loading outside the sandbox and retry the call.

        No new auto tests since the bug involves the system's occasional cache behavior
        and thus there's no reliable way to reproduce and test the situation.

        * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
        (WebCore::getGlyphIndices):
        GDI call wrapper ensuring fonts to be loaded.
        (WebCore::initSpaceGlyph):
        Changed to use the wrapper function.
        (WebCore::fillBMPGlyphs):
        Changed to use the wrapper function.
        Introduced scoped HDC management by HWndDC.
        (WebCore::GlyphPage::fill):

2012-01-19  Adam Barth  <abarth@webkit.org>

        createAttributeNS should understand that "xmlns" is allowed in the http://www.w3.org/2000/xmlns/
        https://bugs.webkit.org/show_bug.cgi?id=76579

        Reviewed by Eric Seidel.

        This patch cleans up a tiny corner case involving the (somewhat
        magical) xmlns attribute that we uncovered when working on
        setAttributeNS.

        Tests: fast/dom/Document/createAttributeNS-namespace-err.html

        * dom/Document.cpp:
        (WebCore::Document::importNode):
        (WebCore::Document::hasValidNamespaceForElements):
        (WebCore::Document::hasValidNamespaceForAttributes):
        (WebCore::Document::createElementNS):
        (WebCore::Document::createAttributeNS):
        * dom/Document.h:
        * dom/Element.cpp:
        (WebCore::Element::setAttributeNS):

2012-01-19  Roland Steiner  <rolandsteiner@chromium.org>

        Unreviewed build fix for DEBUG: remove comparison of an unsigned variable with '>= 0' in ASSERT.

        No new tests. (no functionality change)

        * webaudio/AudioNodeOutput.cpp:
        (WebCore::AudioNodeOutput::AudioNodeOutput):

2012-01-18  Li Yin  <li.yin@intel.com>

        [v8] Low efficiency of writing long string from web application to plugin.
        https://bugs.webkit.org/show_bug.cgi?id=76592

        The efficiency will be improved by 300 times in the best case, when the
        size of string reaches 1MB.

        Reviewed by Adam Barth.

        * bindings/v8/V8NPUtils.cpp:
        (WebCore::convertV8ObjectToNPVariant):

2012-01-18  Adam Barth  <abarth@webkit.org>

        Assigning to Element.prefix should throw exception when using illegal characters
        https://bugs.webkit.org/show_bug.cgi?id=76589

        Reviewed by Eric Seidel.

        This patch fixes a FIXME and implements the INVALID_CHARACTER_ERR
        exception described in
        http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-NodeNSPrefix

        Tests: fast/dom/Element/prefix-setter-exception.html

        * dom/Node.cpp:
        (WebCore::isValidNameStartCharacter):
        (WebCore::isValidNameCharacter):
        (WebCore::hasInvalidValidNameCharacters):
        (WebCore::Node::checkSetPrefix):

2012-01-18  Shinya Kawanaka  <shinyak@google.com>

        ShadowContent query should be able to have fallback elements.
        https://bugs.webkit.org/show_bug.cgi?id=75306

        Reviewed by Hajime Morita.

        When no elements are selected by a shadow content element selector query,
        light children are selected as a fallback elements.

        Test: fast/dom/shadow/shadow-contents-fallback.html

        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::NodeRenderingContext):
          Considers fallback phase. When no elements are chosen, the phase is set to 'fallback'.
        (WebCore::NodeRenderingContext::nextRenderer):
          Takes fallback phase into account.
        (WebCore::NodeRenderingContext::previousRenderer): ditto.
        * dom/NodeRenderingContext.h:
        * html/shadow/HTMLContentElement.cpp:
        (WebCore::HTMLContentElement::attach):
          Calculates inclusions before attaching light children.
        * html/shadow/HTMLContentElement.h:
        (WebCore::HTMLContentElement::hasInclusion):

2012-01-18  Kent Tamura  <tkent@chromium.org>

        REGRESSION(r100111): A 'change' event does not fire when a mouse drag
        occurs to switch elements in a listbox <select>
        https://bugs.webkit.org/show_bug.cgi?id=76244

        Reviewed by Hajime Morita.

        Test: fast/forms/select/listbox-drag-in-non-multiple.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::updateSelectedState):
        Do not update m_activeSelectionState for non-multiple <select>.
        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
        Use setActiveSelection*Index() and updateListBoxSelection(true) instead
        of updateSelectedState() because updateSelectedState() updates
        m_lastOnChangeSelection and will prevent the mouseup handler from
        dispatching 'change' event.
        We should not call listBoxOnChange() in the mousemove handler in order
        to align the behavior of IE and Firefox.

2012-01-18  Eric Seidel  <eric@webkit.org>

        setAttributeNS should comply with the obscure rules of DOM2, just like createAttributeNS and createElementNS do
        https://bugs.webkit.org/show_bug.cgi?id=76143

        Reviewed by Adam Barth.

        Test: fast/dom/Element/setAttributeNS-namespace-err.html

        * dom/Element.cpp:
        (WebCore::Element::setAttributeNS):

2012-01-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r105376.
        http://trac.webkit.org/changeset/105376
        https://bugs.webkit.org/show_bug.cgi?id=76601

        Roll 76493 back in after discussion with jsbell (Requested by
        rolandsteiner on #webkit).

        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::injectIDBKeyIntoSerializedValue):

2012-01-18  Ian Vollick  <vollick@chromium.org>

        [chromium] Create a base-class CCAnimation to represent compositor animations
        https://bugs.webkit.org/show_bug.cgi?id=73233

        Adds a kernel for running animations on the chromium compositor
        thread.

        Reviewed by Kenneth Russell.

        * WebCore.gypi:
        * platform/graphics/chromium/cc/CCActiveAnimation.cpp: Added.
        (WebCore::CCActiveAnimation::CCActiveAnimation):
        (WebCore::CCActiveAnimation::setRunState):
        (WebCore::CCActiveAnimation::isFinishedAt):
        (WebCore::CCActiveAnimation::trimTimeToCurrentIteration):
        * platform/graphics/chromium/cc/CCActiveAnimation.h: Added.
        (WebCore::CCActiveAnimation::create):
        (WebCore::CCActiveAnimation::~CCActiveAnimation):
        (WebCore::CCActiveAnimation::group):
        (WebCore::CCActiveAnimation::targetProperty):
        (WebCore::CCActiveAnimation::runState):
        (WebCore::CCActiveAnimation::iterations):
        (WebCore::CCActiveAnimation::setIterations):
        (WebCore::CCActiveAnimation::startTime):
        (WebCore::CCActiveAnimation::setStartTime):
        (WebCore::CCActiveAnimation::isFinished):
        (WebCore::CCActiveAnimation::animationCurve):
        * platform/graphics/chromium/cc/CCAnimationCurve.cpp: Added.
        (WebCore::CCAnimationCurve::toFloatAnimationCurve):
        (WebCore::CCAnimationCurve::toTransformAnimationCurve):
        * platform/graphics/chromium/cc/CCAnimationCurve.h: Added.
        (WebCore::CCAnimationCurve::~CCAnimationCurve):
        (WebCore::CCFloatAnimationCurve::~CCFloatAnimationCurve):
        (WebCore::CCFloatAnimationCurve::type):
        (WebCore::CCTransformAnimationCurve::~CCTransformAnimationCurve):
        (WebCore::CCTransformAnimationCurve::type):
        * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.cpp: Added.
        (WebCore::CCLayerAnimationControllerImpl::create):
        (WebCore::CCLayerAnimationControllerImpl::CCLayerAnimationControllerImpl):
        (WebCore::CCLayerAnimationControllerImpl::animate):
        (WebCore::CCLayerAnimationControllerImpl::add):
        (WebCore::CCLayerAnimationControllerImpl::getActiveAnimation):
        (WebCore::CCLayerAnimationControllerImpl::hasActiveAnimation):
        (WebCore::CCLayerAnimationControllerImpl::startAnimationsWaitingForNextTick):
        (WebCore::CCLayerAnimationControllerImpl::startAnimationsWaitingForStartTime):
        (WebCore::CCLayerAnimationControllerImpl::startAnimationsWaitingForTargetAvailability):
        (WebCore::CCLayerAnimationControllerImpl::resolveConflicts):
        (WebCore::CCLayerAnimationControllerImpl::purgeFinishedAnimations):
        (WebCore::CCLayerAnimationControllerImpl::tickAnimations):
        * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.h: Added.
        (WebCore::CCLayerAnimationControllerImplClient::~CCLayerAnimationControllerImplClient):

2012-01-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r105331.
        http://trac.webkit.org/changeset/105331
        https://bugs.webkit.org/show_bug.cgi?id=76599

        May have broken Chromium InjectIDBKey browser_test (Requested
        by rolandsteiner on #webkit).

        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::injectIDBKeyIntoSerializedValue):

2012-01-18  Raymond Liu  <raymond.liu@intel.com>

        Remove some unused code in AudioContext
        https://bugs.webkit.org/show_bug.cgi?id=76506

        Reviewed by Kenneth Russell.

        No new tests required.

        * webaudio/AudioContext.cpp:
        (WebCore::AudioContext::constructCommon):
        (WebCore::AudioContext::uninitialize):
        * webaudio/AudioContext.h:

2012-01-18  Raymond Liu  <raymond.liu@intel.com>

        Only create AudioBus with required number of channels for AudioNodeOutput
        https://bugs.webkit.org/show_bug.cgi?id=76417

        Reviewed by Kenneth Russell.

        No new tests required.

        * webaudio/AudioNodeOutput.cpp:
        (WebCore::AudioNodeOutput::AudioNodeOutput):
        (WebCore::AudioNodeOutput::setNumberOfChannels):
        (WebCore::AudioNodeOutput::updateInternalBus):
        (WebCore::AudioNodeOutput::updateNumberOfChannels):
        (WebCore::AudioNodeOutput::pull):
        * webaudio/AudioNodeOutput.h:

2012-01-18  Andreas Kling  <awesomekling@apple.com>

        Cache and reuse the NodeList returned by Node::childNodes().
        <http://webkit.org/b/76591>

        Reviewed by Ryosuke Niwa.

        Instead of only caching the DynamicNodeList::Caches for .childNodes on NodeRareData,
        cache the full ChildNodeList object. Lifetime management is left to wrappers who
        invalidate the cached (raw) pointer via Node::removeCachedChildNodeList(), called
        from ~ChildNodeList().

        This is a slight behavior change, in that Node.childNodes === Node.childNodes will
        now be true. This matches the behavior of both Firefox and Opera.

        This reduces memory consumption by 192 kB (on 32-bit) when viewing the full
        HTML5 spec at <http://whatwg.org/c>

        Test: fast/dom/gc-9.html
              fast/dom/node-childNodes-idempotence.html

        * dom/Node.cpp:
        (WebCore::Node::childNodes):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::NodeRareData):
        (WebCore::NodeRareData::childNodeList):
        (WebCore::NodeRareData::setChildNodeList):

            Only construct one ChildNodeList per Node and store it on NodeRareData for
            retrieval across childNodes() calls.

        * dom/ChildNodeList.h:
        (WebCore::ChildNodeList::create):
        * dom/ChildNodeList.cpp:
        (WebCore::ChildNodeList::ChildNodeList):

            Construct the Caches at creation instead of passing it to the constructor.

        (WebCore::ChildNodeList::reset):

            Added, resets the internal cache.

        (WebCore::ChildNodeList::~ChildNodeList):

            Call Node::removeCachedChildNodeList().

        * dom/DynamicNodeList.cpp:
        * dom/DynamicNodeList.h:

            Have DynamicNodeList (and subclasses) respond "true" to isDynamicNodeList().
            Previously only DynamicSubtreeNodeList (and subclasses) were doing this.
            Without it, JSC may GC our ChildNodeLists prematurely (due to NodeList's
            isReachableFromOpaqueRoots() implementation checking isDynamicNodeList().)

        * dom/Node.h:
        * dom/Node.cpp:
        (WebCore::Node::removeCachedChildNodeList):

            Added for ~ChildNodeList() to remove the pointer to itself from the Node.

        (WebCore::NodeRareData::clearChildNodeListCache):

            Call ChildNodeList::reset().

2012-01-18  James Robinson  <jamesr@chromium.org>

        Unreviewed, rolling out r105366.
        http://trac.webkit.org/changeset/105366
        https://bugs.webkit.org/show_bug.cgi?id=76015

        Breaks CCLayerTreeHostImplTest unit test

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::pushPropertiesTo):
        (WebCore::TiledLayerChromium::prepareToUpdateTiles):
        * platform/graphics/chromium/cc/CCDrawQuad.h:
        (WebCore::CCDrawQuad::drawsOpaque):
        (WebCore::CCDrawQuad::needsBlending):
        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
        (WebCore::CCQuadCuller::cullOccludedQuads):
        * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp:
        (WebCore::CCSolidColorDrawQuad::CCSolidColorDrawQuad):
        * platform/graphics/chromium/cc/CCTileDrawQuad.cpp:
        (WebCore::CCTileDrawQuad::create):
        (WebCore::CCTileDrawQuad::CCTileDrawQuad):
        * platform/graphics/chromium/cc/CCTileDrawQuad.h:
        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
        (WebCore::CCTiledLayerImpl::appendQuads):
        (WebCore::CCTiledLayerImpl::syncTextureId):
        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:

2012-01-18  Thiago Marcos P. Santos  <tmpsantos@gmail.com>

        Save two ID checks on CSS Min/Width property validation
        https://bugs.webkit.org/show_bug.cgi?id=76565

        The same validation is done again in the next case statement. Check for
        CSSValueIntrinsic and CSSValueMinIntrinsic was done twice when the value
        is a number.

        Reviewed by Andreas Kling.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):

2012-01-18  Dana Jansens  <danakj@chromium.org>

        [chromium] Use region reported painted opaque for draw culling
        https://bugs.webkit.org/show_bug.cgi?id=76015

        Reviewed by James Robinson.

        New unit tests in CCQuadCullerTest.cpp and CCTiledLayerImplTest.cpp

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::pushPropertiesTo):
        (WebCore::TiledLayerChromium::prepareToUpdateTiles):
        * platform/graphics/chromium/cc/CCDrawQuad.h:
        (WebCore::CCDrawQuad::opaqueRect):
        (WebCore::CCDrawQuad::needsBlending):
        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
        (WebCore::CCQuadCuller::cullOccludedQuads):
        * platform/graphics/chromium/cc/CCTileDrawQuad.cpp:
        (WebCore::CCTileDrawQuad::create):
        (WebCore::CCTileDrawQuad::CCTileDrawQuad):
        * platform/graphics/chromium/cc/CCTileDrawQuad.h:
        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
        (WebCore::DrawableTile::opaqueRect):
        (WebCore::DrawableTile::setOpaqueRect):
        (WebCore::CCTiledLayerImpl::appendQuads):
        (WebCore::CCTiledLayerImpl::pushTileProperties):
        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:

2012-01-18  Victoria Kirst  <vrk@chromium.org>

        HTMLMediaElement should fire 'progress' event before 'idle' if it was previously loading
        https://bugs.webkit.org/show_bug.cgi?id=76568

        Reviewed by Eric Carlson.

        This fires a progress event when going from a non-empty state to idle,
        for the same reason that a progress event is fired when going from a
        non-idle state to loaded. Also consolidated logic in a single helper method.

        No new tests because the decision of if/when a user agent sets the network state
        to idle is up to the user agent in this scenario.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::setNetworkState):
        (WebCore::HTMLMediaElement::changeNetworkStateFromLoadingToIdle):
        * html/HTMLMediaElement.h:

2012-01-18  Jon Lee  <jonlee@apple.com>

        [WK2] Sync call for notifications permissions causes flashes on gmail.com
        https://bugs.webkit.org/show_bug.cgi?id=76570
        <rdar://problem/10647155>

        Reviewed by Anders Carlsson and Sam Weinig.

        * WebCore.exp.in: Export SecurityOrigin::toString().

        Add runtime setting to enable/disable notifications.

        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h: Add new bit for whether notifications are enabled.
        (WebCore::Settings::setNotificationsEnabled):
        (WebCore::Settings::notificationsEnabled):

2012-01-18  Eric Carlson  <eric.carlson@apple.com>

        Provide access to user's list of preferred languages
        https://bugs.webkit.org/show_bug.cgi?id=76138

        Reviewed by Timothy Hatcher.

        No new tests, tested by fast/harness/user-preferred-language.html.

        * platform/mac/Language.mm:
        (WebCore::platformUserPreferredLanguages): Don't over-release a the CFStrings returned by 
            CFLocaleCopyPreferredLanguages.

2012-01-18  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Implement create-intermediate-objects semantics when injecting values via keyPaths
        https://bugs.webkit.org/show_bug.cgi?id=76493

        Reviewed by Tony Chang.

        Tests: storage/indexeddb/objectstore-autoincrement.html

        * bindings/v8/IDBBindingUtilities.cpp:
        (WebCore::injectIDBKeyIntoSerializedValue):

2012-01-18  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Invalid keys yielded by key paths should raise exceptions, not error callbacks
        https://bugs.webkit.org/show_bug.cgi?id=76075

        Reviewed by Tony Chang.

        Tests: storage/indexeddb/objectstore-basics.html

        * storage/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::put):

2012-01-18  Dana Jansens  <danakj@chromium.org>

        [chromium] Fix compile error from bug #76211
        https://bugs.webkit.org/show_bug.cgi?id=76575

        Reviewed by James Robinson.

        No new tests. Fixing compile only.

        * platform/graphics/chromium/ImageLayerChromium.cpp:
        (WebCore::ImageLayerTextureUpdater::prepareToUpdate):

2012-01-18  Adam Barth  <abarth@webkit.org>

        REGRESSION (r104000): AdBlock extension fails to load/function
        https://bugs.webkit.org/show_bug.cgi?id=75554

        Reviewed by Andy Estes.

        Previously, we would claim the documentElement was available before
        we'd actually attached it to the DOM (which we now do via the
        attachment queue).  This issue was noted in the code with a FIXME
        comment, but there was no test coverage for the issue.  This patch
        resolves the FIXME and adds a test.

        Test: userscripts/document-element-available-at-start.html

        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):

2012-01-18  Eric Carlson  <eric.carlson@apple.com>

        Provide access to user's list of preferred languages
        https://bugs.webkit.org/show_bug.cgi?id=76138

        Reviewed by Alexey Proskuryakov.

        Test: fast/harness/user-preferred-language.html

        * WebCore.exp.in: Export the new functions.
        * WebCore.order: Ditto.

        * Target.pri: Include new files.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCoreTestSupport.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.

        * platform/Language.cpp:
        (WebCore::defaultLanguage): Return userPreferredLanguages[0].
        (WebCore::preferredLanguagesOverride): New, return the languages override.
        (WebCore::overrideUserPreferredLanguages): New, set the languages override.
        (WebCore::userPreferredLanguages): New, return the languages array.
        * platform/Language.h:

        * platform/blackberry/LocalizedStringsBlackBerry.cpp:
        (WebCore::platformLanguage): Renamed from platformDefaultLanguage, now static.
        (WebCore::platformUserPreferredLanguages): New.

        * platform/chromium/LanguageChromium.cpp:
        (WebCore::platformLanguage): Renamed from platformDefaultLanguage, now static.
        (WebCore::platformUserPreferredLanguages): New.

        * platform/efl/LanguageEfl.cpp:
        (WebCore::platformLanguage): Renamed from platformDefaultLanguage, now static.
        (WebCore::platformUserPreferredLanguages): New.

        * platform/gtk/LanguageGtk.cpp:
        (WebCore::platformLanguage): Renamed from platformDefaultLanguage, now static.
        (WebCore::platformUserPreferredLanguages): New.

        * platform/mac/Language.mm:
        (+[WebLanguageChangeObserver _webkit_languagePreferencesDidChange]): Flag the user languages
            as invalid.
        (WebCore::platformLanguage): Removed.
        (WebCore::platformUserPreferredLanguages): New, return the list of user preferred languages.

        * platform/qt/LanguageQt.cpp:
        (WebCore::platformLanguage): Renamed from platformDefaultLanguage, now static.
        (WebCore::platformUserPreferredLanguages): New.

        * platform/win/LanguageWin.cpp:
        (WebCore::platformLanguage): Renamed from platformDefaultLanguage, now static.
        (WebCore::platformUserPreferredLanguages): New.

        * testing/Internals.cpp:
        (WebCore::Internals::userPreferredLanguages): New, return the platform's user preferred languages.
        (WebCore::Internals::setUserPreferredLanguages): New, override the user's preferred languages.
        * testing/Internals.h:
        * testing/Internals.idl: Add userPreferredLanguages.

        * testing/js/JSInternalsCustom.cpp:
        (WebCore::JSInternals::userPreferredLanguages): New.
        (WebCore::JSInternals::setUserPreferredLanguages): New.

        * testing/v8/V8InternalsCustom.cpp:
        (WebCore::V8Internals::userPreferredLanguagesAccessorGetter): New.
        (WebCore::V8Internals::userPreferredLanguagesAccessorSetter): New.

2012-01-18  Dana Jansens  <danakj@chromium.org>

        [chromium] Enable tracking opaque region in Skia graphics context, return it from LayerTextureUpdater
        https://bugs.webkit.org/show_bug.cgi?id=76211

        Reviewed by James Robinson.

        New unit tests in LayerTextureUpdaterTest.cpp

        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
        (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::prepareToUpdate):
        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
        * platform/graphics/chromium/ContentLayerChromium.cpp:
        (WebCore::ContentLayerChromium::createTextureUpdater):
        * platform/graphics/chromium/LayerTextureUpdater.h:
        (WebCore::LayerTextureUpdater::prepareToUpdate):
        * platform/graphics/chromium/PlatformCanvas.h:
        (WebCore::PlatformCanvas::Painter::skiaContext):
        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp:
        (WebCore::SkPictureCanvasLayerTextureUpdater::SkPictureCanvasLayerTextureUpdater):
        (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
        (WebCore::SkPictureCanvasLayerTextureUpdater::setOpaque):
        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h:
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::prepareToUpdateTiles):

2012-01-18  Tim Dresser  <tdresser@chromium.org>

        [chromium] Refactor canvas, plugin, and video drawing to be more data-driven
        https://bugs.webkit.org/show_bug.cgi?id=76274

        Reviewed by James Robinson.

        This is the first step in refactoring canvas, plugin, and video drawing.
        The CCCustomLayerDrawQuad implementation has been copied to CCCanvasDrawQuad, CCPluginDrawQuad and CCVideoDrawQuad.
        All references to CustomLayer have been removed.

        As this is a refactor, no new tests were added. CCLayerTreeHostImplTest.blendingOffWhenDrawingOpaqueLayers was modified to
        no longer test culling.

        * WebCore.gypi:
        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::drawQuad):
        (WebCore::LayerRendererChromium::drawCanvasQuad):
        (WebCore::LayerRendererChromium::drawVideoQuad):
        (WebCore::LayerRendererChromium::drawPluginQuad):
        * platform/graphics/chromium/LayerRendererChromium.h:
        * platform/graphics/chromium/cc/CCCanvasDrawQuad.cpp: Copied from Source/WebCore/platform/graphics/chromium/cc/CCCustomLayerDrawQuad.cpp.
        (WebCore::CCCanvasDrawQuad::create):
        (WebCore::CCCanvasDrawQuad::CCCanvasDrawQuad):
        * platform/graphics/chromium/cc/CCCanvasDrawQuad.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCCustomLayerDrawQuad.h.
        (WebCore::CCCanvasDrawQuad::layer):
        * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
        (WebCore::CCCanvasLayerImpl::appendQuads):
        * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
        * platform/graphics/chromium/cc/CCDrawQuad.cpp:
        (WebCore::CCDrawQuad::toCanvasDrawQuad):
        (WebCore::CCDrawQuad::toVideoDrawQuad):
        (WebCore::CCDrawQuad::toPluginDrawQuad):
        * platform/graphics/chromium/cc/CCDrawQuad.h:
        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
        (WebCore::CCLayerImpl::appendQuads):
        * platform/graphics/chromium/cc/CCPluginDrawQuad.cpp: Copied from Source/WebCore/platform/graphics/chromium/cc/CCCustomLayerDrawQuad.cpp.
        (WebCore::CCPluginDrawQuad::create):
        (WebCore::CCPluginDrawQuad::CCPluginDrawQuad):
        * platform/graphics/chromium/cc/CCPluginDrawQuad.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCCustomLayerDrawQuad.h.
        (WebCore::CCPluginDrawQuad::layer):
        * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
        (WebCore::CCPluginLayerImpl::appendQuads):
        * platform/graphics/chromium/cc/CCPluginLayerImpl.h:
        * platform/graphics/chromium/cc/CCQuadCuller.cpp:
        * platform/graphics/chromium/cc/CCVideoDrawQuad.cpp: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCCustomLayerDrawQuad.cpp.
        (WebCore::CCVideoDrawQuad::create):
        (WebCore::CCVideoDrawQuad::CCVideoDrawQuad):
        * platform/graphics/chromium/cc/CCVideoDrawQuad.h: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCCustomLayerDrawQuad.h.
        (WebCore::CCVideoDrawQuad::layer):
        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
        (WebCore::CCVideoLayerImpl::appendQuads):
        * platform/graphics/chromium/cc/CCVideoLayerImpl.h:

2012-01-18  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Unsafe cross origin access errors should show stack trace in console.
        https://bugs.webkit.org/show_bug.cgi?id=73099

        Reviewed by Pavel Feldman.

        Test: http/tests/inspector/console-cross-origin-iframe-logging.html

        * bindings/v8/V8Proxy.cpp:
        (WebCore::V8Proxy::reportUnsafeAccessTo):
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::addConsoleMessage):
        * dom/ScriptExecutionContext.h:
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::shouldAllowNavigation):
        * page/Console.cpp:
        (WebCore::Console::addMessage):
        * page/Console.h:
        * page/DOMWindow.cpp:
        (WebCore::PostMessageTimer::PostMessageTimer):
        (WebCore::PostMessageTimer::stackTrace):
        (WebCore::DOMWindow::postMessage):
        (WebCore::DOMWindow::postMessageTimerFired):
        (WebCore::DOMWindow::printErrorMessage):

2012-01-18  Pablo Flouret  <pablof@motorola.com>

        Add [CallWith] support for attributes in JSC/V8 idl code generators.
        Part of https://bugs.webkit.org/show_bug.cgi?id=76035

        Reviewed by Adam Barth.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        (GenerateAttributeCallWith):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):
        (GenerateAttributeCallWith):
        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
        (WebDOMTestObj::withScriptStateAttribute):
        (WebDOMTestObj::setWithScriptStateAttribute):
        (WebDOMTestObj::withScriptExecutionContextAttribute):
        (WebDOMTestObj::setWithScriptExecutionContextAttribute):
        (WebDOMTestObj::withScriptStateAttributeRaises):
        (WebDOMTestObj::setWithScriptStateAttributeRaises):
        (WebDOMTestObj::withScriptExecutionContextAttributeRaises):
        (WebDOMTestObj::setWithScriptExecutionContextAttributeRaises):
        * bindings/scripts/test/CPP/WebDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (webkit_dom_test_obj_get_with_script_state_attribute):
        (webkit_dom_test_obj_set_with_script_state_attribute):
        (webkit_dom_test_obj_get_with_script_execution_context_attribute):
        (webkit_dom_test_obj_set_with_script_execution_context_attribute):
        (webkit_dom_test_obj_get_with_script_state_attribute_raises):
        (webkit_dom_test_obj_set_with_script_state_attribute_raises):
        (webkit_dom_test_obj_get_with_script_execution_context_attribute_raises):
        (webkit_dom_test_obj_set_with_script_execution_context_attribute_raises):
        (webkit_dom_test_obj_set_property):
        (webkit_dom_test_obj_get_property):
        (webkit_dom_test_obj_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjWithScriptStateAttribute):
        (WebCore::jsTestObjWithScriptExecutionContextAttribute):
        (WebCore::jsTestObjWithScriptStateAttributeRaises):
        (WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
        (WebCore::setJSTestObjWithScriptStateAttribute):
        (WebCore::setJSTestObjWithScriptExecutionContextAttribute):
        (WebCore::setJSTestObjWithScriptStateAttributeRaises):
        (WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
        * bindings/scripts/test/JS/JSTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        (-[DOMTestObj withScriptStateAttribute]):
        (-[DOMTestObj setWithScriptStateAttribute:]):
        (-[DOMTestObj withScriptExecutionContextAttribute]):
        (-[DOMTestObj setWithScriptExecutionContextAttribute:]):
        (-[DOMTestObj withScriptStateAttributeRaises]):
        (-[DOMTestObj setWithScriptStateAttributeRaises:]):
        (-[DOMTestObj withScriptExecutionContextAttributeRaises]):
        (-[DOMTestObj setWithScriptExecutionContextAttributeRaises:]):
        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjInternal::withScriptStateAttributeAttrGetter):
        (WebCore::TestObjInternal::withScriptStateAttributeAttrSetter):
        (WebCore::TestObjInternal::withScriptExecutionContextAttributeAttrGetter):
        (WebCore::TestObjInternal::withScriptExecutionContextAttributeAttrSetter):
        (WebCore::TestObjInternal::withScriptStateAttributeRaisesAttrGetter):
        (WebCore::TestObjInternal::withScriptStateAttributeRaisesAttrSetter):
        (WebCore::TestObjInternal::withScriptExecutionContextAttributeRaisesAttrGetter):
        (WebCore::TestObjInternal::withScriptExecutionContextAttributeRaisesAttrSetter):

2012-01-18  Tim Horton  <timothy_horton@apple.com>

        [CG] Rasterized scaling of transformed SVG shapes with gradient fill and -webkit-svg-shadow applied
        https://bugs.webkit.org/show_bug.cgi?id=76482
        <rdar://problem/10415483>

        Reviewed by Simon Fraser.

        Scale the CGLayer used when filling or stroking a shadowed path or rect with
        a gradient in GraphicsContextCG. Previously, the CGLayer was created and rendered
        into at the untransformed size of the shape, leading to pixelation when it was
        then scaled up and drawn into the destination.

        Add AffineTransform::mapSize() to map a size through a transformation.

        Test: svg/custom/transform-with-shadow-and-gradient.svg

        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::fillPath):
        (WebCore::GraphicsContext::strokePath):
        (WebCore::GraphicsContext::fillRect):
        (WebCore::GraphicsContext::strokeRect):
        * platform/graphics/transforms/AffineTransform.cpp:
        (WebCore::AffineTransform::mapSize): Added.
        * platform/graphics/transforms/AffineTransform.h:

2012-01-18  Dominic Mazzoni  <dmazzoni@google.com>

        Accessibility: Chromium needs methods to scroll an object into view or to a specific location.
        https://bugs.webkit.org/show_bug.cgi?id=73460

        Reviewed by Chris Fleizach.

        Tests: platform/chromium/accessibility/scroll-to-global-point-main-window.html
               platform/chromium/accessibility/scroll-to-global-point-nested.html
               platform/chromium/accessibility/scroll-to-global-point-iframe.html
               platform/chromium/accessibility/scroll-to-global-point-iframe-nested.html
               platform/chromium/accessibility/scroll-to-make-visible-div-overflow.html
               platform/chromium/accessibility/scroll-to-make-visible-iframe.html
               platform/chromium/accessibility/scroll-to-make-visible-main-window.html
               platform/chromium/accessibility/scroll-to-make-visible-nested.html
               platform/chromium/accessibility/scroll-to-make-visible-with-subfocus.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::computeBestScrollOffset):
        (WebCore::AccessibilityObject::scrollToMakeVisible):
        (WebCore::AccessibilityObject::scrollToMakeVisibleWithSubFocus):
        (WebCore::AccessibilityObject::scrollToGlobalPoint):
        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::getScrollableAreaIfScrollable):
        (WebCore::AccessibilityObject::scrollTo):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::getScrollableAreaIfScrollable):
        (WebCore::AccessibilityRenderObject::scrollTo):
        * accessibility/AccessibilityRenderObject.h:
        * accessibility/AccessibilityScrollView.cpp:
        (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
        (WebCore::AccessibilityScrollView::scrollTo):
        * accessibility/AccessibilityScrollView.h:

2012-01-17  Alexey Proskuryakov  <ap@apple.com>

        file:// doesn't work as base URL
        https://bugs.webkit.org/show_bug.cgi?id=76496

        Reviewed by Darin Adler.

        Test: fast/url/degenerate-file-base.html

        * platform/KURL.cpp: (WebCore::KURL::parse): Handle degenerate file URLs properly.

2012-01-18  Ilya Tikhonovsky  <loislo@chromium.org>

        [chromium] Web Inspector: highlight DOM nodes from detached DOM trees.
        https://bugs.webkit.org/show_bug.cgi?id=76545

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/DetailedHeapshotGridNodes.js:
        (WebInspector.HeapSnapshotGenericObjectNode):
        (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshotNode.prototype.get isNativeRoot):
        (WebInspector.HeapSnapshotNode.prototype.get isDetachedDOMTree):
        (WebInspector.HeapSnapshot.prototype._init):
        (WebInspector.HeapSnapshot.prototype._markDetachedDOMTreeNodes):
        (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):
        (WebInspector.HeapSnapshot.prototype._calculateFlags):
        * inspector/front-end/heapProfiler.css:
        (.detached-dom-tree-node):

2012-01-18  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: there should be a way to set HTML for given frame.
        https://bugs.webkit.org/show_bug.cgi?id=76548

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector.json:
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::setDocumentContent):
        * inspector/InspectorPageAgent.h:
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMModelResourceBinding.prototype.setContent.callbackWrapper):
        (WebInspector.DOMModelResourceBinding.prototype.setContent):

2012-01-18  Sergio Villar Senin  <svillar@igalia.com>

        [GTK] [regression] A couple of tests failing after r105253
        https://bugs.webkit.org/show_bug.cgi?id=76549

        Reviewed by Gustavo Noronha Silva.

        Fixes a regression added by r105253. The method that
        RenderThemeGtk needs to overwrite is popsMenuBySpaceOrReturn()
        instead of popsMenuByArrowKeys().

        No new tests as it's already covered by
        fast/forms/select-popup-pagekeys.html and
        fast/forms/select/menulist-onchange-fired-with-key-up-down.html
        that started to fail after the revision mentioned above.

        * platform/gtk/RenderThemeGtk.h:
        (WebCore::RenderThemeGtk::popsMenuBySpaceOrReturn):

2012-01-18  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: omit compression field in HAR entries for resources coming from cache
        https://bugs.webkit.org/show_bug.cgi?id=76543

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/HAREntry.js:
        (WebInspector.HAREntry.prototype._buildContent):
        (WebInspector.HAREntry.prototype.get responseCompression):

2012-01-18  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]Fix region style code in CSSStyleSelector
        https://bugs.webkit.org/show_bug.cgi?id=76453

        Reviewed by Antti Koivisto.

        Follow up after comments in https://bugs.webkit.org/show_bug.cgi?id=76064.
        With the new approach, the css rule specificity is correctly taken into account
        when applying the region style rule.
        No new tests, the region style tests are still disabled.

        * css/CSSStyleSelector.cpp:
        (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
        (WebCore::CSSStyleSelector::CSSStyleSelector):
        (WebCore::CSSStyleSelector::addMatchedDeclaration):
        (WebCore::CSSStyleSelector::collectMatchingRules):
        (WebCore::CSSStyleSelector::collectMatchingRulesForRegion):
        (WebCore::CSSStyleSelector::matchRules):
        (WebCore::CSSStyleSelector::collectMatchingRulesForList):
        (WebCore::CSSStyleSelector::matchAllRules):
        (WebCore::CSSStyleSelector::styleForElement):
        (WebCore::CSSStyleSelector::pseudoStyleForElement):
        (WebCore::CSSStyleSelector::checkRegionStyle):
        (WebCore::CSSStyleSelector::checkRegionSelector):
        (WebCore::RuleData::RuleData):
        (WebCore::RuleSet::RuleSet):
        (WebCore::RuleSet::addRule):
        (WebCore::RuleSet::addRegionRule):
        (WebCore::RuleSet::addRulesFromSheet):
        (WebCore::isInsideRegionRule):
        (WebCore::CSSStyleSelector::applyDeclaration):
        (WebCore::CSSStyleSelector::applyDeclarations):
        (WebCore::CSSStyleSelector::isValidRegionStyleProperty):
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSStyleSelector.h:

2012-01-17  Jer Noble  <jer.noble@apple.com>

        Mac fails to fire an 'error' event for a <video> <source> having an URL with no file extension
        https://bugs.webkit.org/show_bug.cgi?id=76494

        Reviewed by Eric Carlson.

        No new tests; fixes compositing/video/video-with-invalid-source.html. Modified 
        media/video-source-error-no-candidate.html to check error condition.

        When we run out of media engines for a given resource, inform the media player client
        that resource loading failed by calling mediaPlayerResourceNotSupported().

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaPlayerResourceNotSupported):
        * html/HTMLMediaElement.h:
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::loadWithNextMediaEngine):
        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayerClient::mediaPlayerResourceNotSupported):

2012-01-18  Alexandru Chiculita  <achicu@adobe.com>

        CSS Shaders: Parse float parameters for the custom() filter syntax
        https://bugs.webkit.org/show_bug.cgi?id=76253

        Reviewed by Nikolas Zimmermann.

        Custom CSS filters allow passing parameters from CSS to the underlying rendering technology (in this case WebGL Shaders).
        This patch adds support for parameters of types float, vec2, vec3 and vec4.

        https://dvcs.w3.org/hg/FXTF/raw-file/tip/custom/index.html#feCustomParamsAttribute

        Tests: css3/filters/effect-custom-combined-missing.html
               css3/filters/effect-custom-parameters.html

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
            Added CustomFilterParameter.h, CustomFilterNumberParameter.h and CustomFilterOperation.cpp to the projects.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::valueForCustomFilterNumberParameter):
        (WebCore::CSSComputedStyleDeclaration::valueForCustomFilterParameter):
        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
            Added the computed parameters in alphabetic order (CustomFilterOperation always keeps the parameters sorted).
        * css/CSSComputedStyleDeclaration.h:
        * css/CSSStyleSelector.cpp:
        (WebCore::sortParametersByNameComparator):
        (WebCore::CSSStyleSelector::parseCustomFilterNumberParamter):
        (WebCore::CSSStyleSelector::parseCustomFilterParameterList):
        (WebCore::CSSStyleSelector::createCustomFilterOperation):
            Added parsing for float, vec2, vec3 and vec4. The values are space separated.

        * css/CSSStyleSelector.h:
        * platform/graphics/filters/CustomFilterNumberParameter.h: Added.
        (WebCore::CustomFilterNumberParameter::create):
        (WebCore::CustomFilterNumberParameter::size):
        (WebCore::CustomFilterNumberParameter::valueAt):
        (WebCore::CustomFilterNumberParameter::addValue):
        (WebCore::CustomFilterNumberParameter::CustomFilterNumberParameter):

        * platform/graphics/filters/CustomFilterOperation.cpp: Added.
        (WebCore::CustomFilterOperation::CustomFilterOperation):
        (WebCore::CustomFilterOperation::~CustomFilterOperation):
            Moved constructor and destructor in CustomFilterOperation.cpp to avoid including CustomFilterParameter everywhere.
        (WebCore::CustomFilterOperation::hasSortedParameterList):
            Debug runtime check that we always have parameters in alphabetic order.

        * platform/graphics/filters/CustomFilterOperation.h:
        (WebCore::CustomFilterOperation::create):
        (WebCore::CustomFilterOperation::parameters):
            Just added the parameters list. Not using a map, but keeping the items sorted by name. We need them sorted
            to make it easy and fast to merge two CustomFilterOperations during animations.

        * platform/graphics/filters/CustomFilterParameter.h: Added.
        (WebCore::CustomFilterParameter::~CustomFilterParameter):
        (WebCore::CustomFilterParameter::parameterType):
        (WebCore::CustomFilterParameter::name):
        (WebCore::CustomFilterParameter::CustomFilterParameter):
        * platform/graphics/filters/CustomFilterShader.cpp:
        (WebCore::CustomFilterShader::uniformLocationByName):
        * platform/graphics/filters/CustomFilterShader.h:

        * platform/graphics/filters/FECustomFilter.cpp:
        (WebCore::FECustomFilter::FECustomFilter):
        (WebCore::FECustomFilter::create):
        (WebCore::FECustomFilter::platformApplySoftware):
        (WebCore::FECustomFilter::bindProgramNumberParameters):
        (WebCore::FECustomFilter::bindProgramParameters):
            Added code that maps the parameters from CSS to WebGL.
        (WebCore::FECustomFilter::bindProgramAndBuffers):
        * platform/graphics/filters/FECustomFilter.h:

        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::build):
            Fixed a case when the filter was not created, letting the filter add itself as a source of its own. 
            Also added a test case for this particular case: css3/filters/effect-custom-combined-missing.html.

2012-01-18  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: resource tree model leaks frames
        https://bugs.webkit.org/show_bug.cgi?id=76533

        Reviewed by Pavel Feldman.

        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.ResourceTreeModel.prototype._frameDetached):
        (WebInspector.ResourceTreeModel.prototype._removeFrame):
        (WebInspector.ResourceTreeFrame.prototype._removeChildFrame):

2012-01-17  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Enable support for Open Script dialog based on FilteredItemSelectionDialog.
        https://bugs.webkit.org/show_bug.cgi?id=76466

        Reviewed by Pavel Feldman.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/FilteredItemSelectionDialog.js:
        (WebInspector.JavaScriptOutlineDialog.createShortcut):
        (WebInspector.OpenResourceDialog.filterOutEmptyURLs):
        (WebInspector.OpenResourceDialog):
        (WebInspector.OpenResourceDialog.install):
        (WebInspector.OpenResourceDialog._show):
        (WebInspector.OpenResourceDialog.createShortcut):
        (WebInspector.OpenResourceDialog.prototype.itemTitleAt):
        (WebInspector.OpenResourceDialog.prototype.itemKeyAt):
        (WebInspector.OpenResourceDialog.prototype.itemsCount):
        (WebInspector.OpenResourceDialog.prototype.requestItems):
        (WebInspector.OpenResourceDialog.prototype.selectItem):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype.showUISourceCode):

2012-01-18  Pavel Feldman  <pfeldman@google.com>

        Not reviewed: follow up to r105262, fixing front-end compilation.

        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMDocument):
        (WebInspector.DOMModelResourceBinding.prototype.setContent.setOuterHTML):

2012-01-17  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: track HTML revisions when editing DOM and / or upon free flow edits.
        https://bugs.webkit.org/show_bug.cgi?id=76457

        Reviewed by Yury Semikhatsky.

        Test: inspector/elements/set-html-via-resource.html

        * inspector/DOMEditor.cpp:
        (WebCore::DOMEditor::patchNode):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::getOuterHTML):
        (WebCore::InspectorDOMAgent::setOuterHTML):
        (WebCore::InspectorDOMAgent::buildObjectForNode):
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMNode):
        (WebInspector.DOMNode.prototype.setNodeName):
        (WebInspector.DOMNode.prototype.setNodeValue):
        (WebInspector.DOMNode.prototype.setAttribute):
        (WebInspector.DOMNode.prototype.setAttributeValue):
        (WebInspector.DOMNode.prototype.removeAttribute):
        (WebInspector.DOMNode.prototype.getChildNodes.mycallback):
        (WebInspector.DOMNode.prototype.getChildNodes):
        (WebInspector.DOMNode.prototype.setOuterHTML):
        (WebInspector.DOMNode.prototype.removeNode):
        (WebInspector.DOMNode.prototype.moveTo):
        (WebInspector.DOMDocument):
        (WebInspector.DOMAgent):
        (WebInspector.DOMAgent.prototype._setDocument):
        (WebInspector.DOMAgent.prototype._buildHighlightConfig):
        (WebInspector.DOMAgent.prototype._markRevision):
        (WebInspector.DOMAgent.prototype._captureDOM.callback):
        (WebInspector.DOMAgent.prototype._captureDOM):
        (WebInspector.DOMModelResourceBinding.prototype.setContent):
        (WebInspector.DOMModelResourceBinding.prototype.setContent.setOuterHTML):
        (WebInspector.DOMModelResourceBinding.prototype.setContent.withDocument):
        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeElement.prototype._attributeEditingCommitted):

2012-01-18  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: Popover does not disappear, causes debugger failure.
        https://bugs.webkit.org/show_bug.cgi?id=71363

        Reviewed by Pavel Feldman.

        This is a work-around simple enough for a merge. The real fix would
        be to get TextViewer to manage the highlight on its own, so it's not
        accidently removed while re-building DOM for the text chunk.

        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame.prototype._onHidePopover):

2012-01-18  Shinya Kawanaka  <shinyak@google.com>

        Unreviewed build fix.
        https://bugs.webkit.org/show_bug.cgi?id=76525

        Removed missing build headers.

        * WebCore.xcodeproj/project.pbxproj:

2012-01-18  Jun Mukai  <mukai@chromium.org>

        Use RenderTheme in HTMLSelectElement instead of #defines.
        <http://webkit.org/b/76519>

        Reviewed by Kent Tamura.

        Tests: no new tests because of no behavioral changes.

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::platformHandleKeydownEvent):
        (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
        * platform/gtk/RenderThemeGtk.h:
        (WebCore::RenderThemeGtk::popsMenuByArrowKeys):
        * rendering/RenderTheme.h:
        (WebCore::RenderTheme::popsMenuByArrowKeys):
        (WebCore::RenderTheme::popsMenuBySpaceOrReturn):
        * rendering/RenderThemeChromiumLinux.h:
        (WebCore::RenderThemeChromiumLinux::popsMenuBySpaceOrReturn):
        * rendering/RenderThemeMac.h:
        (WebCore::RenderThemeMac::popsMenuByArrowKeys):

2012-01-18  Abhishek Arya  <inferno@chromium.org>

        Crash in FrameView::forceLayoutParentViewIfNeeded.        
        https://bugs.webkit.org/show_bug.cgi?id=76309

        Reviewed by Nikolas Zimmermann.

        updateWidgetPositions can blow away the owning renderer
        and its frameview, so need to protect it with refptr.

        Test: svg/dom/parent-view-layout-crash.html

        * page/FrameView.cpp:
        (WebCore::FrameView::forceLayoutParentViewIfNeeded):

2012-01-18  Shinya Kawanaka  <shinyak@google.com>

        Move ShadowContentElement from dom/ to html/ and make ShadowContentElement subclass of HTMLElement.
        https://bugs.webkit.org/show_bug.cgi?id=76241

        Reviewed by Dimitri Glazkov.

        Renamed ShadowContentElement to HTMLContentElement, and move it from dom/ to html/.
        Also, ShadowInclusionSelector and ShadowContentSelectorQuery are renamed to
        Content InclusionSelector and ContentSelectorQuery respectively.

        No new tests, because no change in behavior.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DOMAllInOne.cpp:
        * dom/NodeRenderingContext.cpp:
        (WebCore::nextRendererOf):
        (WebCore::previousRendererOf):
        (WebCore::firstRendererOf):
        (WebCore::lastRendererOf):
        (WebCore::NodeRenderingContext::nextRenderer):
        (WebCore::NodeRenderingContext::previousRenderer):
        * dom/NodeRenderingContext.h:
        (WebCore::NodeRenderingContext::includer):
        * dom/ShadowRoot.cpp:
        (WebCore::ShadowRoot::includerFor):
        (WebCore::ShadowRoot::inclusions):
        (WebCore::ShadowRoot::ensureInclusions):
        * dom/ShadowRoot.h:
        * html/HTMLDetailsElement.cpp:
        (WebCore::DetailsContentElement::DetailsContentElement):
        (WebCore::DetailsSummaryElement::DetailsSummaryElement):
        * html/HTMLElementsAllInOne.cpp:
        * html/HTMLSummaryElement.cpp:
        (WebCore::SummaryContentElement::SummaryContentElement):
        * html/shadow/ContentInclusionSelector.cpp: Renamed from Source/WebCore/dom/ShadowInclusionSelector.cpp.
        (WebCore::ShadowInclusion::append):
        (WebCore::ShadowInclusion::unlink):
        (WebCore::ShadowInclusionList::ShadowInclusionList):
        (WebCore::ShadowInclusionList::~ShadowInclusionList):
        (WebCore::ShadowInclusionList::find):
        (WebCore::ShadowInclusionList::clear):
        (WebCore::ShadowInclusionList::append):
        (WebCore::ContentInclusionSelector::ContentInclusionSelector):
        (WebCore::ContentInclusionSelector::~ContentInclusionSelector):
        (WebCore::ContentInclusionSelector::select):
        (WebCore::ContentInclusionSelector::unselect):
        (WebCore::ContentInclusionSelector::findFor):
        (WebCore::ContentInclusionSelector::didSelect):
        (WebCore::ContentInclusionSelector::willSelectOver):
        * html/shadow/ContentInclusionSelector.h: Renamed from Source/WebCore/dom/ShadowInclusionSelector.h.
        (WebCore::ShadowInclusion::includer):
        (WebCore::ShadowInclusion::content):
        (WebCore::ShadowInclusion::next):
        (WebCore::ShadowInclusion::previous):
        (WebCore::ShadowInclusion::ShadowInclusion):
        (WebCore::ShadowInclusion::create):
        (WebCore::ShadowInclusionList::first):
        (WebCore::ShadowInclusionList::last):
        (WebCore::ShadowInclusionList::isEmpty):
        (WebCore::ShadowInclusionSet::add):
        (WebCore::ShadowInclusionSet::remove):
        (WebCore::ShadowInclusionSet::isEmpty):
        (WebCore::ShadowInclusionSet::Translator::hash):
        (WebCore::ShadowInclusionSet::Translator::equal):
        (WebCore::ShadowInclusionSet::Hash::hash):
        (WebCore::ShadowInclusionSet::Hash::equal):
        (WebCore::ShadowInclusionSet::find):
        (WebCore::ContentInclusionSelector::hasCandidates):
        * html/shadow/ContentSelectorQuery.cpp: Renamed from Source/WebCore/dom/ShadowContentSelectorQuery.cpp.
        (WebCore::ContentSelectorQuery::ContentSelectorQuery):
        (WebCore::ContentSelectorQuery::matches):
        * html/shadow/ContentSelectorQuery.h: Renamed from Source/WebCore/dom/ShadowContentSelectorQuery.h.
        * html/shadow/HTMLContentElement.cpp: Renamed from Source/WebCore/dom/ShadowContentElement.cpp.
        (WebCore::HTMLContentElement::create):
        (WebCore::HTMLContentElement::HTMLContentElement):
        (WebCore::HTMLContentElement::~HTMLContentElement):
        (WebCore::HTMLContentElement::attach):
        (WebCore::HTMLContentElement::detach):
        (WebCore::HTMLContentElement::select):
        (WebCore::HTMLContentElement::setSelect):
        * html/shadow/HTMLContentElement.h: Renamed from Source/WebCore/dom/ShadowContentElement.h.
        (WebCore::HTMLContentElement::inclusions):
        (WebCore::HTMLContentElement::isContentElement):
        (WebCore::HTMLContentElement::rendererIsNeeded):
        (WebCore::HTMLContentElement::createRenderer):
        (WebCore::toHTMLContentElement):
        * testing/Internals.cpp:
        (WebCore::Internals::createContentElement):
        * testing/Internals.h:
        * testing/Internals.idl:

2012-01-17  Nikolas Zimmermann  <nzimmermann@rim.com>

        RenderSVGRoot should inherit from RenderReplaced
        https://bugs.webkit.org/show_bug.cgi?id=76446

        Reviewed by Zoltan Herczeg.

        Let RenderSVGRoot inherit from RenderReplaced, instead of faking RenderReplaced, by inherting from RenderBox
        and calling setReplaced(true) in the constructor. The outermost <svg> element is a replaced element in the
        sense of CSS, and thus this is just a logical move. It fixes some issues where the <svg> root appeared
        as selection leaf, covered by existing tests.

        It allows us to simplify the painting, as outlines, etc. are painted by RenderReplaced now.
        While I was it, speed up the local to border box computations by caching the result.

        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::paint):
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::RenderSVGRoot):
        (WebCore::RenderSVGRoot::layout):
        (WebCore::RenderSVGRoot::paintReplaced):
        (WebCore::RenderSVGRoot::willBeDestroyed):
        (WebCore::RenderSVGRoot::styleWillChange):
        (WebCore::RenderSVGRoot::styleDidChange):
        (WebCore::RenderSVGRoot::updateFromElement):
        (WebCore::RenderSVGRoot::buildLocalToBorderBoxTransform):
        (WebCore::RenderSVGRoot::localToParentTransform):
        (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
        (WebCore::RenderSVGRoot::mapLocalToContainer):
        (WebCore::RenderSVGRoot::nodeAtPoint):
        * rendering/svg/RenderSVGRoot.h:
        (WebCore::RenderSVGRoot::canHaveChildren):
        (WebCore::RenderSVGRoot::canBeSelectionLeaf):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::setupInitialView):

2012-01-17  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r105244.
        http://trac.webkit.org/changeset/105244
        https://bugs.webkit.org/show_bug.cgi?id=76518

        broke Chromium Mac (Requested by rolandsteiner on #webkit).

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::checkboxOrRadioValue):
        * accessibility/AccessibilityObject.h:
        * accessibility/AccessibilityRenderObject.cpp:
        * accessibility/AccessibilityRenderObject.h:
        * accessibility/AccessibilityScrollView.cpp:
        * accessibility/AccessibilityScrollView.h:

2012-01-17  Hajime Morrita  <morrita@chromium.org>

        [Internals] Should be able to access corresponding Document object.
        https://bugs.webkit.org/show_bug.cgi?id=76425

        Reviewed by Adam Barth.

        - Allow FrameDestructionObserver to re-setting the Frame reference.
        - Make Internals a subclass of FrameDestructionObserver.

        Since Internals::reset() is called for each test, we can access
        the acive Frame object during the test. The frame reference will be
        used by coming changes.

        No new tests. Covered by existing tests.

        * WebCore.exp.in:
        * page/FrameDestructionObserver.cpp:
        (WebCore::FrameDestructionObserver::FrameDestructionObserver):
        (WebCore::FrameDestructionObserver::~FrameDestructionObserver):
        (WebCore::FrameDestructionObserver::observe):
        * page/FrameDestructionObserver.h:
        * testing/Internals.cpp:
        (WebCore::Internals::Internals):
        (WebCore::Internals::reset):
        * testing/Internals.h:

2012-01-17  Dominic Mazzoni  <dmazzoni@google.com>

        Accessibility: Chromium needs methods to scroll an object into view or to a specific location.
        https://bugs.webkit.org/show_bug.cgi?id=73460

        Reviewed by Chris Fleizach.

        Tests: platform/chromium/accessibility/scroll-to-global-point-main-window.html
               platform/chromium/accessibility/scroll-to-global-point-nested.html
               platform/chromium/accessibility/scroll-to-make-visible-div-overflow.html
               platform/chromium/accessibility/scroll-to-make-visible-iframe.html
               platform/chromium/accessibility/scroll-to-make-visible-main-window.html
               platform/chromium/accessibility/scroll-to-make-visible-nested.html
               platform/chromium/accessibility/scroll-to-make-visible-with-subfocus.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::computeBestScrollOffset):
        (WebCore::AccessibilityObject::scrollToMakeVisible):
        (WebCore::AccessibilityObject::scrollToMakeVisibleWithSubFocus):
        (WebCore::AccessibilityObject::scrollToGlobalPoint):
        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::getScrollableAreaIfScrollable):
        (WebCore::AccessibilityObject::scrollTo):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::getScrollableAreaIfScrollable):
        (WebCore::AccessibilityRenderObject::scrollTo):
        * accessibility/AccessibilityRenderObject.h:
        * accessibility/AccessibilityScrollView.cpp:
        (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
        (WebCore::AccessibilityScrollView::scrollTo):
        * accessibility/AccessibilityScrollView.h:

2012-01-17  Joe Thomas  <joethomas@motorola.com>

        https://bugs.webkit.org/show_bug.cgi?id=75089
        Access-Control-Request-Headers value should be lowercase

        Access-Control-Request-Headers is used when issuing a preflight request to let the server know
        the HTTP headers that will be used when the actual request is made.
        As per the W3C specification, Access-Control-Request-Headers value should be set in lowercase.

        Reviewed by Alexey Proskuryakov.

        Test: http/tests/xmlhttprequest/access-control-preflight-request-header-lowercase.html

        * loader/CrossOriginAccessControl.cpp:
        (WebCore::createAccessControlPreflightRequest): setting Access-Control-Request-Headers value to lowercase

2012-01-17  Hayato Ito  <hayato@chromium.org>

        Clean EventContext and move phase-tweaking logic to EventDispatcher.
        https://bugs.webkit.org/show_bug.cgi?id=76414

        Reviewed by Dimitri Glazkov.

        No tests. No change in behavior.

        * dom/EventContext.cpp:
        (WebCore::EventContext::handleLocalEvents):
        * dom/EventContext.h:
        (WebCore::EventContext::currentTargetSameAsTarget):
        * dom/EventDispatcher.cpp:
        (WebCore::EventDispatcher::dispatchEvent):

2012-01-17  David Levin  <levin@chromium.org>

        Need to figure out which assert is firing when worker-read-blob-async.html fails.
        https://bugs.webkit.org/show_bug.cgi?id=76503

        Reviewed by Adam Barth.

        No new functionality exposed so no new tests.

        This is just a quick and dirty way to make these asserts unique
        to expose which one of them is firing on a machine that doesn't have a
        good stack trace.

        * dom/ActiveDOMObject.cpp:
        (WebCore::ContextDestructionObserver::ContextDestructionObserver):
        (WebCore::ContextDestructionObserver::~ContextDestructionObserver):
        (WebCore::ActiveDOMObject::ActiveDOMObject):
        (WebCore::ActiveDOMObject::~ActiveDOMObject):
        * storage/DatabaseSync.cpp:
        (WebCore::DatabaseSync::openDatabaseSync):
        (WebCore::DatabaseSync::~DatabaseSync):
        (WebCore::DatabaseSync::changeVersion):
        (WebCore::DatabaseSync::runTransaction):

2012-01-17  Matthew Delaney  <mdelaney@apple.com>

        On post-Lion releases, preserve the Lion behavior where WebKit explicitly calls -setGeometryFlipped on the hosting layer for applications that were linked on Lion or earlier.
        <rdar://problem/10692025>

        Reviewed by Simon Fraser.

        * platform/mac/WebCoreSystemInterface.h: Added in new function for checking if linked-on-or-before Lion.
        * platform/mac/WebCoreSystemInterface.mm: Ditto.

2012-01-17  Yongsheng Zhu  <yongsheng.zhu@intel.com>

        Clear 'm_size' of DrawingBuffer in the 'clear' function
        https://bugs.webkit.org/show_bug.cgi?id=76239

        Reviewed by Kenneth Russell.
        
        Clear the resources of DrawingBuffer but don't clear 'm_size'. This makes
        's_currentResourceUsePixels' is not calculated correctly.

        * platform/graphics/gpu/DrawingBuffer.cpp:
        (WebCore::DrawingBuffer::clear):

2012-01-17  Philip Rogers  <pdr@google.com>

        Fix getBBox for perpendicular paths
        https://bugs.webkit.org/show_bug.cgi?id=76177

        Reviewed by Darin Adler.

        Test: svg/custom/getBBox-perpendicular-path.svg

        * platform/graphics/FloatRect.cpp:
        (WebCore::FloatRect::unite):
        (WebCore::FloatRect::uniteEvenIfEmpty):
        (WebCore::FloatRect::uniteIfNonZero):
        * platform/graphics/FloatRect.h:
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::computeContainerBoundingBoxes):

2012-01-17  Kenneth Russell  <kbr@google.com>

        [chromium] Apply color profiles in more cases
        https://bugs.webkit.org/show_bug.cgi?id=76498

        Reviewed by Stephen White.

        Not adding new tests, as application of the color profile is not
        guaranteed for images used as textures in WebGL. Ran existing
        WebGL layout tests; all pass.

        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
        (WebCore::ImageFrame::setStatus):

2012-01-17  Nate Chapin  <japhet@chromium.org>

        Ensure we don't cancel revalidation of a CachedResource
        in the middle of successful revalidation.
        It's more reliable to enforce this in CachedResource than in
        SubresourceLoader.
        https://bugs.webkit.org/show_bug.cgi?id=75713

        Reviewed by Adam Barth.

        No new test, the buggy case requires a non-stubbed window.print().

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didReceiveResponse):
        (WebCore::SubresourceLoader::didFinishLoading):
        * loader/SubresourceLoader.h:
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::CachedResource):
        (WebCore::CachedResource::clearResourceToRevalidate):
        (WebCore::CachedResource::switchClientsToRevalidatedResource):
        * loader/cache/CachedResource.h:

2012-01-17  Stephen Chenney  <schenney@chromium.org>

        NULL ptr in WebCore::RenderSVGInlineText::localCaretRect
        https://bugs.webkit.org/show_bug.cgi?id=75851

        Reviewed by Ryosuke Niwa.

        Added a check for null box in localCaretRect, to match test in other
        implementations. Adding a manual test because the crash is not reproducible
        in DRT.

        Test: ManualTests/svg-modify-deleted-selection.svg

        * rendering/svg/RenderSVGInlineText.cpp:
        (WebCore::RenderSVGInlineText::localCaretRect):

2012-01-17  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Uint8ClampedArray support
        https://bugs.webkit.org/show_bug.cgi?id=74455

        Reviewed by Filip Pizlo.

        Test: fast/js/dfg-uint8clampedarray.html

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * ForwardingHeaders/wtf/Uint8ClampedArray.h: Added.
        * GNUmakefile.list.am:
        * Target.pri:
        * UseJSC.cmake:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSBindingsAllInOne.cpp:
        * bindings/js/JSDOMWindowCustom.cpp:
        * bindings/js/JSUint8ClampedArrayCustom.cpp: Added.
        (WebCore::JSUint8ClampedArray::indexSetter):
        (WebCore::toJS):
        (WebCore::JSUint8ClampedArray::set):
        (WebCore::JSUint8ClampedArrayConstructor::constructJSUint8ClampedArray):
        * bindings/scripts/CodeGeneratorJS.pm:
        (IsTypedArrayType):
        (GenerateHeader):
        * html/canvas/Uint8ClampedArray.idl: Added.
        * page/DOMWindow.idl:

2012-01-17  Abhishek Arya  <inferno@chromium.org>

        Crash in in WebCore::EventHandler::mouseMoved.
        https://bugs.webkit.org/show_bug.cgi?id=76462

        Reviewed by Ryosuke Niwa.

        handleMouseMoveEvent call in EventHandler::mouseMoved can
        blow away the frame from underneath. Protect it with a frameview
        refptr.        

        Test: fast/events/mouse-moved-remove-frame-crash.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::mouseMoved):

2012-01-17  Sam Weinig  <sam@webkit.org>

        Add helper macro for forward declaring objective-c classes
        https://bugs.webkit.org/show_bug.cgi?id=76485

        Reviewed by Anders Carlsson.

        * accessibility/AccessibilityObject.h:
        * bindings/js/ScriptController.h:
        * bridge/objc/objc_utility.h:
        * page/DragClient.h:
        * page/EditorClient.h:
        * platform/AutodrainedPool.h:
        * platform/ContextMenuItem.h:
        * platform/Cursor.h:
        * platform/DragData.h:
        * platform/DragImage.h:
        * platform/KURL.h:
        * platform/Pasteboard.h:
        * platform/PlatformKeyboardEvent.h:
        * platform/PlatformMenuDescription.h:
        * platform/PlatformScreen.h:
        * platform/SharedBuffer.h:
        * platform/Widget.h:
        * platform/cf/SchedulePair.h:
        * platform/graphics/BitmapImage.h:
        * platform/graphics/FontPlatformData.h:
        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/GraphicsLayer.h:
        * platform/graphics/Icon.h:
        * platform/graphics/Image.h:
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/ca/PlatformCAAnimation.h:
        * platform/graphics/ca/mac/TileCache.h:
        * platform/graphics/mac/ColorMac.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
        * platform/graphics/mac/MediaPlayerProxy.h:
        * platform/mac/ClipboardMac.h:
        * platform/mac/LocalCurrentGraphicsContext.h:
        * platform/mac/PasteboardHelper.h:
        * platform/mac/PopupMenuMac.h:
        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/WebCoreSystemInterface.h:
        * platform/network/ResourceHandle.h:
        * platform/network/ResourceHandleClient.h:
        * platform/network/ResourceHandleInternal.h:
        * platform/network/cf/AuthenticationChallenge.h:
        * platform/network/cf/ResourceError.h:
        * platform/network/cf/ResourceRequest.h:
        * platform/network/cf/ResourceResponse.h:
        * rendering/RenderThemeMac.h:
        Deploy OBJC_CLASS for a little code reduction.

2012-01-17  Andreas Kling  <awesomekling@apple.com>

        SpaceSplitString: Share equivalent string piece vectors.
        <http://webkit.org/b/76458>

        Reviewed by Antti Koivisto.

        Make SpaceSplitStringData ref-counted and cache them in a hashmap to reduce memory
        usage and avoid redundant string splitting work.  This reduces memory consumption
        by 618 kB (on 64-bit) when viewing the full HTML5 spec at <http://whatwg.org/c>

        * dom/SpaceSplitString.h:

            Add the source string to SpaceSplitStringData so we have a key for uncaching
            in the destructor. Also bumped the vector's inline size from 2 to 4.

        * dom/SpaceSplitString.cpp:
        (WebCore::sharedDataMap):
        (WebCore::SpaceSplitStringData::create):
        (WebCore::SpaceSplitStringData::createUnique):
        (WebCore::SpaceSplitStringData::SpaceSplitStringData):
        (WebCore::SpaceSplitString::SpaceSplitString):
        (WebCore::SpaceSplitString::set):
        (WebCore::SpaceSplitStringData::createVector):

            Added create helpers for SpaceSplitStringData. Moved case folding from
            createVector() to create(AtomicString). Added a hash map for caching
            AtomicString -> SpaceSplitStringData.

        (WebCore::SpaceSplitStringData::~SpaceSplitStringData):

            Remove the SpaceSplitStringData from the sharedDataMap().

        * dom/SpaceSplitString.cpp:
        (WebCore::SpaceSplitString::ensureUnique):

            Added, detaches from the shared SpaceSplitStringData if necessary.

        (WebCore::SpaceSplitStringData::add):
        (WebCore::SpaceSplitStringData::remove):

            Assert that add() and remove() are only used on unique SpaceSplitStringData.

        (WebCore::SpaceSplitString::add):
        (WebCore::SpaceSplitString::remove):

            Call ensureUnique() to potentially detach from a shared SpaceSplitStringData
            before making modifications.

        * dom/SpaceSplitString.cpp:
        (WebCore::SpaceSplitStringData::containsAll):

            Added gratuitous fast path for containsAll(*this).

2012-01-12  David Hyatt  <hyatt@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=76197
        
        Implementation of baseline grid alignment. This patch implements line grid tracking in the layout state,
        and also implements the snapping of lines to baselines. It works with normal flow, positioning and floats and
        with pagination, as long as the grid is inside the pagination context and not outside.

        Reviewed by Simon Fraser.

        Added a bunch of new tests in fast/line-grid.

        * WebCore.xcodeproj/project.pbxproj:
        * rendering/InlineFlowBox.h:
        (WebCore::InlineFlowBox::setHasTextChildren):
        * rendering/LayoutState.cpp:
        (WebCore::LayoutState::LayoutState):
        (WebCore::LayoutState::propagateLineGridInfo):
        (WebCore::LayoutState::establishLineGrid):
        * rendering/LayoutState.h:
        (WebCore::LayoutState::LayoutState):
        (WebCore::LayoutState::pageLogicalHeight):
        (WebCore::LayoutState::currentLineGrid):
        (WebCore::LayoutState::currentLineGridOffset):
        (WebCore::LayoutState::layoutOffset):
        (WebCore::LayoutState::needsBlockDirectionLocationSetBeforeLayout):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutBlockChildren):
        (WebCore::RenderBlock::layoutPositionedObjects):
        (WebCore::RenderBlock::insertFloatingObject):
        (WebCore::RenderBlock::positionNewFloats):
        (WebCore::RenderBlock::pageLogicalTopForOffset):
        (WebCore::RenderBlock::adjustLinePositionForPagination):
        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::lineGridBox):
        (WebCore::RenderBlock::setLineGridBox):
        (WebCore::RenderBlock::RenderBlockRareData::RenderBlockRareData):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::layoutInlineChildren):
        (WebCore::RenderBlock::layoutLineGridBox):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::regionLogicalTopForLine):
        * rendering/RenderFlowThread.h:
        * rendering/RenderView.h:
        (WebCore::RenderView::pushLayoutState):
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::alignBoxesInBlockDirection):
        (WebCore::RootInlineBox::lineGridSnapAdjustment):
        * rendering/RootInlineBox.h:

2012-01-17  Tim Horton  <timothy_horton@apple.com>

        -webkit-cross-fade doesn't respect background-size
        https://bugs.webkit.org/show_bug.cgi?id=74902
        <rdar://problem/10605289>

        Reviewed by Simon Fraser.

        CrossfadeGeneratedImage should report its intrinsic size, instead of
        improperly conforming to the size of its container.

        Test: css3/images/cross-fade-background-size.html

        * platform/graphics/CrossfadeGeneratedImage.h:
        (WebCore::CrossfadeGeneratedImage::setContainerSize):
        (WebCore::CrossfadeGeneratedImage::usesContainerSize):
        (WebCore::CrossfadeGeneratedImage::hasRelativeWidth):
        (WebCore::CrossfadeGeneratedImage::hasRelativeHeight):
        (WebCore::CrossfadeGeneratedImage::size):

2012-01-17  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Refactor JavaScriptOutlineDialog: extract FilteredItemSelectionDialog and reuse DialogDelegate.
        https://bugs.webkit.org/show_bug.cgi?id=76455

        Reviewed by Yury Semikhatsky.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.sh:
        * inspector/front-end/Dialog.js:
        (WebInspector.Dialog):
        (WebInspector.Dialog.prototype._hide):
        * inspector/front-end/FilteredItemSelectionDialog.js: Added.
        (WebInspector.FilteredItemSelectionDialog):
        (WebInspector.FilteredItemSelectionDialog.prototype.position):
        (WebInspector.FilteredItemSelectionDialog.prototype.focus):
        (WebInspector.FilteredItemSelectionDialog.prototype.willHide):
        (WebInspector.FilteredItemSelectionDialog.prototype.onEnter):
        (WebInspector.FilteredItemSelectionDialog.prototype.get _itemsLoaded):
        (WebInspector.FilteredItemSelectionDialog.prototype._createItemElement):
        (WebInspector.FilteredItemSelectionDialog.prototype._hideItemElement):
        (WebInspector.FilteredItemSelectionDialog.prototype._itemElementVisible):
        (WebInspector.FilteredItemSelectionDialog.prototype._showItemElement):
        (WebInspector.FilteredItemSelectionDialog.prototype._checkItemAt):
        (WebInspector.FilteredItemSelectionDialog.prototype._createSearchRegExp):
        (WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
        (WebInspector.FilteredItemSelectionDialog.prototype._onKeyDown):
        (WebInspector.FilteredItemSelectionDialog.prototype._scheduleFilter):
        (WebInspector.FilteredItemSelectionDialog.prototype._updateSelection):
        (WebInspector.FilteredItemSelectionDialog.prototype._onMouseMove):
        (WebInspector.FilteredItemSelectionDialog.prototype._onScroll):
        (WebInspector.FilteredItemSelectionDialog.prototype._highlightItems):
        (WebInspector.FilteredItemSelectionDialog.prototype._clearHighlight):
        (WebInspector.FilteredItemSelectionDialog.prototype._clearElementHighlight.changes.this._elementHighlightChanges.get if):
        (WebInspector.FilteredItemSelectionDialog.prototype._clearElementHighlight):
        (WebInspector.FilteredItemSelectionDialog.prototype._highlightItem.get var):
        (WebInspector.FilteredItemSelectionDialog.prototype._highlightItem):
        (WebInspector.FilteredItemSelectionDialog.prototype._itemElementInViewport):
        (WebInspector.SelectionDialogContentProvider):
        (WebInspector.SelectionDialogContentProvider.prototype.itemTitleAt):
        (WebInspector.SelectionDialogContentProvider.prototype.itemKeyAt):
        (WebInspector.SelectionDialogContentProvider.prototype.itemsCount):
        (WebInspector.SelectionDialogContentProvider.prototype.requestItems):
        (WebInspector.SelectionDialogContentProvider.prototype.selectItem):
        (WebInspector.JavaScriptOutlineDialog):
        (WebInspector.JavaScriptOutlineDialog.didAddChunk):
        (WebInspector.JavaScriptOutlineDialog.install):
        (WebInspector.JavaScriptOutlineDialog._show):
        (WebInspector.JavaScriptOutlineDialog.createShortcut):
        (WebInspector.JavaScriptOutlineDialog.prototype.itemTitleAt):
        (WebInspector.JavaScriptOutlineDialog.prototype.itemKeyAt):
        (WebInspector.JavaScriptOutlineDialog.prototype.itemsCount):
        (WebInspector.JavaScriptOutlineDialog.prototype.requestItems):
        (WebInspector.JavaScriptOutlineDialog.prototype.selectItem):
        (WebInspector.JavaScriptOutlineDialog.prototype._appendItemElements):
        * inspector/front-end/JavaScriptOutlineDialog.js: Removed.
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/filteredItemSelectionDialog.css: Renamed from Source/WebCore/inspector/front-end/javaScriptOutlineDialog.css.
        (.js-outline-dialog > input):
        (.js-outline-dialog > div.progress):
        (.js-outline-dialog > div.container):
        (.js-outline-dialog > .container > div.item):
        (.js-outline-dialog > .container > div.item.selected):
        (.js-outline-dialog > .container > div.item > span.highlight):
        * inspector/front-end/inspector.html:

2012-01-17  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py: start using typedefs
        https://bugs.webkit.org/show_bug.cgi?id=76382

        Reviewed by Yury Semikhatsky.

        Generator is patched accordingly.

        * inspector/CodeGeneratorInspector.py:
        (EnumConstants.get_enum_constant_code):
        (TypeBuilderPass):
        (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator):
        (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.get_generate_pass_id):
        (TypeBindings.create_type_declaration_):
        (TypeBindings.create_type_declaration_.PlainString):
        (TypeBindings.create_type_declaration_.PlainString.get_code_generator):
        (TypeBindings.create_type_declaration_.PlainString.reduce_to_raw_type):
        (TypeBindings.create_type_declaration_.PlainString.get_setter_value_expression_pattern):
        (TypeBindings.create_type_declaration_.PlainString.get_in_c_type_text):
        (TypeBindings.create_type_declaration_.TypedefString):
        (TypeBindings.create_type_declaration_.TypedefString.get_code_generator):
        (TypeBindings.create_type_declaration_.TypedefString.get_code_generator.CodeGenerator):
        (TypeBindings.create_type_declaration_.TypedefString.get_code_generator.CodeGenerator.generate_type_builder):
        (TypeBindings.create_type_declaration_.TypedefString.get_code_generator.CodeGenerator.generate_type_builder.String):
        (TypeBindings.create_type_declaration_.TypedefString.get_code_generator.CodeGenerator.register_use):
        (TypeBindings.create_type_declaration_.TypedefString.get_code_generator.CodeGenerator.get_generate_pass_id):
        (TypeBindings.create_type_declaration_.TypedefString.reduce_to_raw_type):
        (TypeBindings.create_type_declaration_.TypedefString.get_setter_value_expression_pattern):
        (TypeBindings.create_type_declaration_.TypedefString.get_in_c_type_text):
        (get_generate_pass_id):
        (ArrayBinding.get_code_generator.CodeGenerator):
        (ArrayBinding.get_code_generator.CodeGenerator.get_generate_pass_id):
        (Generator.process_types.create_type_builder_caller):
        (Generator.process_types.create_type_builder_caller.call_type_builder):
        (Generator.process_types):

2012-01-11  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: provide basic information about DOM character data size
        https://bugs.webkit.org/show_bug.cgi?id=76059

        Memory agent allows to estimate size of DOM character data and size of WebCore
        strings held by JavaScript objects.

        Reviewed by Pavel Feldman.

        * bindings/js/ScriptProfiler.h:
        (WebCore::ScriptProfiler::visitExternalJSStrings):
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::visitExternalJSStrings):
        * bindings/v8/ScriptProfiler.h:
        * bindings/v8/V8Binding.cpp:
        (WebCore::WebCoreStringResource::visitStrings):
        (WebCore::V8BindingPerIsolateData::visitJSExternalStrings):
        * bindings/v8/V8Binding.h:
        * inspector/DOMWrapperVisitor.h:
        * inspector/Inspector.json:
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::CharacterDataStatistics::DOMTreeStatistics::DOMTreeStatistics):
        (WebCore::CharacterDataStatistics::DOMTreeStatistics::collectNodeStatistics):
        (WebCore::CharacterDataStatistics::CounterVisitor::CounterVisitor):
        (WebCore::CharacterDataStatistics::CounterVisitor::domGroups):
        (WebCore::CharacterDataStatistics::CounterVisitor::strings):
        (WebCore::CharacterDataStatistics::CounterVisitor::visitNode):
        (WebCore::CharacterDataStatistics::CounterVisitor::visitJSExternalString):
        (WebCore::InspectorMemoryAgent::getDOMNodeCount):
        * inspector/InspectorMemoryAgent.h:

2012-01-17  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Dialogs style and DialogDelegate interface fixes.
        https://bugs.webkit.org/show_bug.cgi?id=76449

        Reviewed by Pavel Feldman.

        * inspector/front-end/Dialog.js:
        (WebInspector.Dialog):
        (WebInspector.Dialog.currentInstance):
        (WebInspector.Dialog.show):
        (WebInspector.Dialog.hide):
        (WebInspector.Dialog.prototype._hide):
        (WebInspector.Dialog.prototype._onGlassPaneFocus):
        (WebInspector.Dialog.prototype._onFocus):
        (WebInspector.Dialog.prototype._position):
        (WebInspector.Dialog.prototype._onKeyDown):
        (WebInspector.DialogDelegate.prototype.wasShown):
        (WebInspector.DialogDelegate.prototype.position):
        (WebInspector.DialogDelegate.prototype.focus):
        (WebInspector.DialogDelegate.prototype.onEnter):
        (WebInspector.DialogDelegate.prototype.willHide):
        * inspector/front-end/GoToLineDialog.js:
        (WebInspector.GoToLineDialog):
        (WebInspector.GoToLineDialog.prototype.focus):
        (WebInspector.GoToLineDialog.prototype._onGoClick):
        (WebInspector.GoToLineDialog.prototype._applyLineNumber):
        (WebInspector.GoToLineDialog.prototype.onEnter):
        * inspector/front-end/dialog.css:
        (.dialog):

2012-01-17  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: ConsoleMessage.cpp and InspectorResourceAgent.cpp doesn't conform to Inspector.json
        https://bugs.webkit.org/show_bug.cgi?id=76403

        A couple of protocol fixes.

        Reviewed by Pavel Feldman.

        * inspector/ConsoleMessage.cpp: return 'log' in case some unsupported value is passed.
        We cannot omit that return statement as GCC would complain on missing return statement
        despite all enum values are listed.
        (WebCore::messageTypeValue):
        * inspector/Inspector-0.1.json: fixed v0.1 protocol definition.
        * inspector/Inspector.json: made CachedResource.response field optional.

2012-01-17  Ilya Tikhonovsky  <loislo@chromium.org>

        [Chromium] Web Inspector: remove "Document DOM tree" class and "Detached DOM tree" from the Summary view.
        https://bugs.webkit.org/show_bug.cgi?id=76450

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshot.prototype._buildAggregates):

2012-01-17  Nikolas Zimmermann  <nzimmermann@rim.com>

        Large SVG text layout performance regression in r81168
        https://bugs.webkit.org/show_bug.cgi?id=65711

        Reviewed by Zoltan Herczeg.

        Final patch fixing the performance regression from r81168 plus giving us more performance we ever had.
        The testcase attached to bug 65711 creates 200 tspans as <text> children, and modifies just the first <tspan>s
        content periodically using a timer. It ran with <3 FPS in release builds before, and now at around 60 FPS,
        where the most dominant code path remaining is CG painting text. Still theres room to optimize further, as
        Intruments shows.

        Historically we rebuilt all SVGTextLayoutAttributes stored in the RenderSVGInlineText, whenever any
        children of the <text> subtree changed, in any way. This lead to a recomputation of the x/y/dx/dy/rotate
        value lists, for the whole tree, a recreation of the line box tree and finally a measurement of all characters
        in the subtree.

        This patch, and its previous patches preparing this, introduces progressive relayout for the SVG text subtree.
        DOM tree mutations, x/y/dx/dy/rotate value lists changes, and measuring-all-characters are now strictly decoupled.

        #1) x/y/dx/dy/rotate list changes:
        The x/y/dx/dy/rotate lists are only ever rebuilt, if they change or upon the initial RenderSVGText layout.
        This information is now cached in the so-called SVGCharacterDataMap, in each of the SVGTextLayoutAttributes,
        associated with a specific RenderSVGInlineText.

        #2) DOM tree mutations:
        If a new RenderSVGInlineText gets added to the tree, we have to create SVGTextLayoutAttributes for the new
        renderer, measure its characters, and cache the information in the attributes. Adding a new renderer to
        a SVG <text> subtree can affect the positioning of the previous and next sibling in the tree, due the
        whitespace merging logic. Example:

        <text y="50" x="50 100 150">A<tspan></tspan> C</text>:
        RenderSVGText {text} at (50,36) size 111x18 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 12x18
            chunk 1 text run 1 at (50.00,50.00) startOffset 0 endOffset 1 width 12.00: "A"
          RenderSVGTSpan {tspan} at (0,0) size 0x0
          RenderSVGInlineText {#text} at (50,0) size 61x18
            chunk 1 text run 1 at (100.00,50.00) startOffset 0 endOffset 1 width 4.00: " "
            chunk 1 text run 1 at (150.00,50.00) startOffset 0 endOffset 1 width 11.00: "C"

        <text y="50" x="50 100 150">A<tspan>B</tspan> C</text>:
        RenderSVGText {text} at (50,36) size 115x18 contains 1 chunk(s)
          RenderSVGInlineText {#text} at (0,0) size 12x18
            chunk 1 text run 1 at (50.00,50.00) startOffset 0 endOffset 1 width 12.00: "A"
          RenderSVGTSpan {tspan} at (0,0) size 11x18
            RenderSVGInlineText {#text} at (50,0) size 11x18
              chunk 1 text run 1 at (100.00,50.00) startOffset 0 endOffset 1 width 11.00: "B"
          RenderSVGInlineText {#text} at (100,0) size 15x18
            chunk 1 text run 1 at (150.00,50.00) startOffset 0 endOffset 2 width 15.00: " C"

        Its obvious that adding a #text node as child to the <tspan> potentially affects the next & previous
        siblings in the DOM tree. Take extra care of these possibilities, by properly remeasuring not only
        the newly added renderer, but also the previous & next siblings layout attributes.

        Mutation of text nodes, or removal of text/tspan elements from the tree is handled in the same way.

        #3) Measuring the text subtree:
        Don't cache the metrics information in the SVGRootInlineBox, as it doesn't survive relayouts (RenderSVGText::layout).
        They're stored in the SVGTextLayoutAttributes, and will be updated if the underlying text content changes.

        Tests: svg/text/append-text-node-to-tspan.html
               svg/text/modify-text-node-in-tspan.html
               svg/text/remove-text-node-from-tspan.html

        * rendering/svg/RenderSVGInline.cpp:
        (WebCore::RenderSVGInline::addChild):
        * rendering/svg/RenderSVGInline.h:
        * rendering/svg/RenderSVGInlineText.cpp:
        (WebCore::RenderSVGInlineText::willBeDestroyed):
        (WebCore::RenderSVGInlineText::setTextInternal):
        (WebCore::RenderSVGInlineText::styleDidChange):
        * rendering/svg/RenderSVGInlineText.h:
        (WebCore::RenderSVGInlineText::layoutAttributes):
        * rendering/svg/RenderSVGText.cpp:
        (WebCore::recursiveUpdateLayoutAttributes):
        (WebCore::RenderSVGText::layoutAttributesChanged):
        (WebCore::findPreviousAndNextAttributes):
        (WebCore::RenderSVGText::layoutAttributesWillBeDestroyed):
        (WebCore::RenderSVGText::textDOMChanged):
        (WebCore::RenderSVGText::layout):
        (WebCore::RenderSVGText::addChild):
        (WebCore::recursiveCollectLayoutAttributes):
        (WebCore::RenderSVGText::rebuildLayoutAttributes):
        * rendering/svg/RenderSVGText.h:
        (WebCore::RenderSVGText::layoutAttributes):
        * rendering/svg/SVGRootInlineBox.cpp:
        (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
        (WebCore::findFirstAndLastAttributesInVector):
        (WebCore::reverseInlineBoxRangeAndValueListsIfNeeded):
        (WebCore::SVGRootInlineBox::reorderValueLists):
        * rendering/svg/SVGRootInlineBox.h:
        * rendering/svg/SVGTextLayoutAttributes.h:
        * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
        (WebCore::SVGTextLayoutAttributesBuilder::rebuildMetricsForWholeTree):
        * rendering/svg/SVGTextLayoutEngine.cpp:
        (WebCore::SVGTextLayoutEngine::SVGTextLayoutEngine):
        (WebCore::SVGTextLayoutEngine::currentLogicalCharacterAttributes):
        (WebCore::SVGTextLayoutEngine::currentLogicalCharacterMetrics):
        (WebCore::SVGTextLayoutEngine::currentVisualCharacterMetrics):
        (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
        * rendering/svg/SVGTextLayoutEngine.h:
        (WebCore::SVGTextLayoutEngine::layoutAttributes):
        * rendering/svg/SVGTextMetrics.h:
        * rendering/svg/SVGTextMetricsBuilder.cpp:
        (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
        * rendering/svg/SVGTextQuery.cpp:
        (WebCore::SVGTextQuery::modifyStartEndPositionsRespectingLigatures):
        * svg/SVGTextContentElement.cpp:
        (WebCore::SVGTextContentElement::childrenChanged):

2012-01-11  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [TextPrompt] Autocomplete adds unwanted text that's hard to remove
        https://bugs.webkit.org/show_bug.cgi?id=76058

        Reviewed by Pavel Feldman.

        As per the results of a war room:
        - Auto-suggest only after user typing (avoid showing suggestions when navigating through the user input.)
        - Do not select the first item if the suggest box is shown at the end of prompt (to allow Enter to commit the input.)
        - Only show grayed autocompletion at the end of prompt (otherwise show a suggest box with the first item selected.)
        - Grayed autocompletion can only be accepted with the End or Right keys.
        - Enter can accept a selected suggestion item from the list, without committing the input.
        - Retain the CSS model editing behavior as close to the existing one as possible.
        - Enable PageUp/PageDown to navigate the suggest box items.

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertyTreeElement.prototype):
        ():
        * inspector/front-end/TextPrompt.js:
        (WebInspector.TextPrompt.prototype.set text):
        (WebInspector.TextPrompt.prototype._removeSuggestionAids):
        (WebInspector.TextPrompt.prototype._selectStart.moveBackIfOutside):
        (WebInspector.TextPrompt.prototype._selectStart):
        (WebInspector.TextPrompt.prototype.onKeyDown):
        (WebInspector.TextPrompt.prototype.acceptAutoComplete):
        (WebInspector.TextPrompt.prototype.complete):
        (WebInspector.TextPrompt.prototype._completionsReady):
        (WebInspector.TextPrompt.prototype.isCaretAtEndOfPrompt):
        (WebInspector.TextPrompt.prototype.tabKeyPressed):
        (WebInspector.TextPrompt.prototype.downKeyPressed):
        (WebInspector.TextPrompt.prototype.pageUpKeyPressed):
        (WebInspector.TextPrompt.prototype.pageDownKeyPressed):
        (WebInspector.TextPrompt.SuggestBox.prototype._onNextItem):
        (WebInspector.TextPrompt.SuggestBox.prototype._onPreviousItem):
        (WebInspector.TextPrompt.SuggestBox.prototype.updateSuggestions):
        (WebInspector.TextPrompt.SuggestBox.prototype._updateItems):
        (WebInspector.TextPrompt.SuggestBox.prototype._canShowBox):
        (WebInspector.TextPrompt.SuggestBox.prototype._rememberRowCountPerViewport):
        (WebInspector.TextPrompt.SuggestBox.prototype._completionsReady):
        (WebInspector.TextPrompt.SuggestBox.prototype.pageUpKeyPressed):
        (WebInspector.TextPrompt.SuggestBox.prototype.pageDownKeyPressed):
        (WebInspector.TextPrompt.SuggestBox.prototype.enterKeyPressed):

2012-01-17  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: CSS backend doesn't conform to Inspector.json
        https://bugs.webkit.org/show_bug.cgi?id=76402

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector.json:
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::buildObjectForStyle):

2012-01-17  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Add the mediaStream constructor
        https://bugs.webkit.org/show_bug.cgi?id=76436

        Adding support for creating a MediaStream using a collection of MediaStreamTracks.

        Reviewed by Adam Barth.

        Tests for the Media Stream API will be provided by the bug 56587, pending enough landed code.

        * mediastream/MediaStream.cpp:
        (WebCore::MediaStream::create):
        * mediastream/MediaStream.h:
        * mediastream/MediaStream.idl:
        * mediastream/MediaStreamTrack.cpp:
        (WebCore::MediaStreamTrack::component):
        * mediastream/MediaStreamTrack.h:
        * platform/mediastream/MediaStreamCenter.cpp:
        (WebCore::MediaStreamCenter::didConstructMediaStream):
        * platform/mediastream/MediaStreamCenter.h:

2012-01-17  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: IDBIndex.get/getKey should yield undefined, not an error
        https://bugs.webkit.org/show_bug.cgi?id=76116

        Pass an undefined value (for IDBIndex.get()) or a null key
        (for IDBIndex.getKey()) back as the result, rather than raising
        an exception.

        Reviewed by Adam Barth.

        Tests: storage/indexeddb/index-basics.html
               storage/indexeddb/cursor-index-delete.html
               storage/indexeddb/duplicates.html

        * storage/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::getInternal):
        * storage/IDBRequest.cpp:
        (WebCore::IDBRequest::onSuccess):

2012-01-17  Luke Macpherson   <macpherson@chromium.org>

        Remove references to CSSPrimitiveValue::primitiveType().
        https://bugs.webkit.org/show_bug.cgi?id=76363

        Reviewed by Hajime Morita.

        No new tests / refactoring only.

        Goal is to remove primitiveType() completely. Only code left using it after this patch is in SVG.
        I've introduced some abstractions in CSSPrimitiveValue for time and angles to reduce duplicated code elsewhere.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseColor):
        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::computeDegrees):
        * css/CSSPrimitiveValue.h:
        (WebCore::CSSPrimitiveValue::isAngle):
        (WebCore::CSSPrimitiveValue::isAttr):
        (WebCore::CSSPrimitiveValue::isCounter):
        (WebCore::CSSPrimitiveValue::isFontIndependentLength):
        (WebCore::CSSPrimitiveValue::isLength):
        (WebCore::CSSPrimitiveValue::isPx):
        (WebCore::CSSPrimitiveValue::isRect):
        (WebCore::CSSPrimitiveValue::isRGBColor):
        (WebCore::CSSPrimitiveValue::isShape):
        (WebCore::CSSPrimitiveValue::isTime):
        (WebCore::CSSPrimitiveValue::computeTime):
        * css/CSSStyleSelector.cpp:
        (WebCore::convertToLength):
        (WebCore::createGridTrackBreadth):
        (WebCore::CSSStyleSelector::applyProperty):
        (WebCore::CSSStyleSelector::mapFillSize):
        (WebCore::CSSStyleSelector::mapFillXPosition):
        (WebCore::CSSStyleSelector::mapFillYPosition):
        (WebCore::CSSStyleSelector::mapAnimationDelay):
        (WebCore::CSSStyleSelector::mapAnimationDuration):
        (WebCore::CSSStyleSelector::mapNinePieceImageSlice):
        (WebCore::CSSStyleSelector::mapNinePieceImageQuad):
        (WebCore::CSSStyleSelector::colorFromPrimitiveValue):
        (WebCore::CSSStyleSelector::createTransformOperations):
        (WebCore::CSSStyleSelector::createCustomFilterOperation):
        (WebCore::CSSStyleSelector::createFilterOperations):
        * css/MediaQueryEvaluator.cpp:
        (WebCore::parseAspectRatio):
        (WebCore::numberValue):
        (WebCore::computeLength):
        * editing/EditingStyle.cpp:
        (WebCore::cssValueToRGBA):
        (WebCore::EditingStyle::extractFontSizeDelta):
        (WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
        (WebCore::isCSSValueLength):
        (WebCore::hasTransparentBackgroundColor):

2012-01-16  Hajime Morrita  <morrita@chromium.org>

        [Internals] member varaibles should follow naming convention.
        https://bugs.webkit.org/show_bug.cgi?id=76426

        Reviewed by Kent Tamura.

        No new tests. Just a rename.

        * testing/Internals.cpp:
        (WebCore::Internals::Internals):
        (WebCore::Internals::setPasswordEchoEnabled):
        (WebCore::Internals::setPasswordEchoDurationInSeconds):
        (WebCore::Internals::reset):
        * testing/Internals.h:

2012-01-16  Hayato Ito  <hayato@chromium.org>

        Implement multiple AT_TARGET event dispatching in regard to shadow tree.
        https://bugs.webkit.org/show_bug.cgi?id=76217

        Reviewed by Dimitri Glazkov.

        The original motivation is to fix the regression: Event.eventPhase is not set to 2
        (at target) when handling dblclick event in <input> element.
        Since the issue is not specific to <input> element, but general one, this patch fixes
        the regression by adapting a living draft spec of shadow DOM.
        This won't break a compatibility if there is no shadow boundaries in event dispatching.
        See the following shadow dom spec how multiple AT_TARGET events work.
        http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#event-dispatch

        * dom/EventContext.cpp:
        (WebCore::EventContext::handleLocalEvents):

2012-01-16  Jason Liu  <jason.liu@torchmobile.com.cn>

        platformRequest(QNX) need to get the conditional information from ResourceRequest.
        https://bugs.webkit.org/show_bug.cgi?id=75216

        Reviewed by George Staikos.

        Pass the isConditional() flag in ResourceRequest to the QNX platform's network request.
        QNX platform's network needs this flag to determine whether to use disk-cache.

        * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
        (ResourceRequest::initializePlatformRequest):

2012-01-16  Robert Hogan  <robert@webkit.org>

        Heap-use-after-free in WebCore::RenderBlock::selectionGaps
        https://bugs.webkit.org/show_bug.cgi?id=75013

        Reviewed by David Hyatt.

        Test: fast/table/multiple-captions-crash3.html
              fast/table/multiple-captions-crash4.html
              fast/table/multiple-captions-crash5.html

        When a child float is removed, the parent needs to ensure any reference to the
        child is also removed from the floating objects list in any sibling block that 
        it intruded into.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::markSiblingsWithFloatsForLayout):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):

2012-01-16  Enrica Casucci  <enrica@apple.com>

        REGRESSION: r102553 Autocorrection bubble doesn't show up
        https://bugs.webkit.org/show_bug.cgi?id=76408
        <rdar://problem/10644746>

        Prior to r102553 Editor::markAllMisspellingsAndBadGrammarInRanges() used to pass its
        textCheckingOptions directly to markAndReplaceFor(). Now a request object is used,
        but, when the object is created, the TextCheckingTypeShowCorrectionPanel flag is dropped.
        
        Reviewed by Darin Adler.

        * editing/Editor.cpp:
        (WebCore::Editor::resolveTextCheckingTypeMask): Add TextCheckingTypeShowCorrectionPanel to
        the returned checkingTypes when appropriate.

2012-01-16  Jon Lee  <jonlee@apple.com>

        Build fix for r105086.

        * Configurations/FeatureDefines.xcconfig:
        * notifications/NotificationCenter.idl: change to use ENABLE_TEXT_NOTIFICATIONS_ONLY, which is only defined on Mac platform.

2012-01-16  Andreas Kling  <awesomekling@apple.com>

        Fix typo in StyledElement::mappedAttributeCount().
        <http://webkit.org/b/76393>

        Rubber-stamped by Antti Koivisto.

        * dom/StyledElement.h:
        (WebCore::StyledElement::mappedAttributeCount): Less &&, more ?:

2012-01-16  Jon Lee  <jonlee@apple.com>

        Build fix for r105086.

        * notifications/NotificationCenter.idl: expand ENABLE macro for .idl.

2012-01-16  Antti Koivisto  <antti@apple.com>

        Cache CSSStyleSelector::Features in RuleSets
        https://bugs.webkit.org/show_bug.cgi?id=76337

        Reviewed by Andreas Kling.

        Currently whenever the style selector is updated we go through all the applicable rules and
        collect the used features again. We should keep the features around as part of the RuleSets
        and update them incrementally. Collecting the features will then be just a matter of taking
        the union of all features used by the RuleSets.
        
        This is 1-2% CPU time reduction (engadget, nytimes) due less time spent in feature collection.
        
        This also simplifies the code by removing the need to cache the default style sheet features
        separately. 

        * css/CSSStyleSelector.cpp:
        
            Remove the global siblingRulesInDefaultStyle and uncommonAttributeRulesInDefaultStyle RuleSets.
            These are now part of the cached features of the defaultStyle.
        
        (WebCore::RuleSet::features):
        
            Add a field for caching the features.
        
        (WebCore::makeRuleSet):
        (WebCore::CSSStyleSelector::collectFeatures):
        
            Unify the features of all RuleSets.
            Create RuleSets for sibling and uncommon attribute lookups at the end.
        
        (WebCore::CSSStyleSelector::appendAuthorStylesheets):
        (WebCore::CSSStyleSelector::Features::add):
        (WebCore::ensureDefaultStyleSheetsForElement):
        (WebCore::CSSStyleSelector::locateSharedStyle):
        (WebCore::collectFeaturesFromSelector):
        (WebCore::collectFeaturesFromRuleData):
        (WebCore::RuleSet::addToRuleSet):
        (WebCore::RuleSet::addRule):
        
            Collect the features when adding the rules rather than as a separate pass through all the rules.
        
        * css/CSSStyleSelector.h:
        (WebCore::CSSStyleSelector::usesSiblingRules):
        (WebCore::CSSStyleSelector::RuleSelectorPair::RuleSelectorPair):
        
            Use Vector instead of a RuleSet for sibling and uncommon attribute selectors so unifying
            Features is simpler.

2012-01-16  Simon Fraser  <simon.fraser@apple.com>

        Huge filter area cause hangs and malloc failures
        https://bugs.webkit.org/show_bug.cgi?id=75711

        Reviewed by Dean Jackson.
        
        Filtering an element with a child that had a huge negative text-indent
        was extremely slow, because transparencyClipBox() returned a huge rect.
        
        Add a method, paintingExtent(), that wraps transparencyClipBox()
        and intersects it with the paintDirtyRect to constrain the size
        of the rect used for filters and transparency layers.

        Transparency layer extent is not testable in layout tests.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintingExtent):
        (WebCore::RenderLayer::beginTransparencyLayers): Floating point literals are required
        to avoid ambiguous constructor call.
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::paintLayerContents):
        * rendering/RenderLayer.h:

2012-01-16  Simon Fraser  <simon.fraser@apple.com>

        Borders and box masks behave incorrectly with overlapping offsets
        https://bugs.webkit.org/show_bug.cgi?id=76137

        Reviewed by Dean Jackson.
        
        There are some correct behaviors for -webkit-mask-box-image where
        parts of the mask are missing (when the sum of the slice sizes is
        greater than one dimension of the image). To render correctly
        in these cases, always use a transparency layer when rendering
        the mask.

        Test: fast/backgrounds/mask-box-image.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintMaskImages):

2012-01-16  Simon Fraser  <simon.fraser@apple.com>

        Filtered element with composited content beneath it must be composited
        https://bugs.webkit.org/show_bug.cgi?id=76322

        Reviewed by Dean Jackson.
        
        If a RenderLayer has a filter effect, and a composited descendant, then
        that layer must also be composited so that the filter is applied via
        the compositing system, rather than via painting (otherwise the filter
        will not affect the descendant).

        Test: css3/filters/filtered-compositing-descendant.html

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingWhenDescendantsAreCompositing):

2012-01-16  Andreas Kling  <awesomekling@apple.com>

        Fix assertion failure in mappedAttributesEquivalent().
        <http://webkit.org/b/76393>

        Rubber-stamped by Antti Koivisto.

        The assertion that two mapped attributes with matching name/value will always
        have the exact same decl() was wrong, so make it a proper check once again.

        * css/CSSStyleSelector.cpp:
        (WebCore::mappedAttributesEquivalent):

2012-01-16  Jon Lee  <jonlee@apple.com>

        Remove HTML notifications support on Mac
        https://bugs.webkit.org/show_bug.cgi?id=76401
        <rdar://problem/10589881>

        Reviewed by Sam Weinig.

        * notifications/NotificationCenter.idl:

2012-01-16  xueqing huang  <huangxueqing@baidu.com>

        Add offline web applications API applicationCache.abort.
        https://bugs.webkit.org/show_bug.cgi?id=76270

        Reviewed by Alexey Proskuryakov.

        Tests:
        http/tests/appcache/abort-cache-onchecking.html
        http/tests/appcache/abort-cache-onchecking-manifest-404.html
        http/tests/appcache/abort-cache-onchecking-resource-404.html
        http/tests/appcache/abort-cache-ondownloading.html
        http/tests/appcache/abort-cache-ondownloading-manifest-404.html
        http/tests/appcache/abort-cache-ondownloading-resource-404.html
        http/tests/appcache/abort-cache-onprogress.html

        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::abort):
        * loader/appcache/ApplicationCacheGroup.h:
        * loader/appcache/ApplicationCacheHost.cpp:
        (WebCore::ApplicationCacheHost::abort):
        * loader/appcache/ApplicationCacheHost.h:
        * loader/appcache/DOMApplicationCache.cpp:
        (WebCore::DOMApplicationCache::abort):
        * loader/appcache/DOMApplicationCache.h:
        * loader/appcache/DOMApplicationCache.idl:

2012-01-16  Andreas Kling  <awesomekling@apple.com>

        Remove caching of mapped attribute count on NamedNodeMap.
        <http://webkit.org/b/76393>

        Reviewed by Antti Koivisto.

        Stop caching the mapped attribute count on Element's attribute map, effectively
        shrinking NamedNodeMap by one CPU word. The price we pay is always walking over
        the map in matchAllRules(), even if it has no mapped attribute styles.

        This reduces memory consumption by 605 kB (on 64-bit) when viewing the full
        HTML5 spec at <http://whatwg.org/c>

        * css/CSSStyleSelector.cpp:
        (WebCore::mappedAttributesEquivalent):

            Moved here from NamedNodeMap::mappedMapsEquivalent() to accomodate the only
            user under the added assumption that the two attribute maps have the same
            number of mapped attributes.

        (WebCore::CSSStyleSelector::matchAllRules):

            We don't have NamedNodeMap::hasMappedAttributes() at our convenience any
            more so walk the attribute map (if there is one) looking for styles to add.

        (WebCore::CSSStyleSelector::canShareStyleWithElement):

            Compare the elements' mapped attribute counts at an earlier time. This is
            slightly more expensive but we used to do it near the end anyway and this
            ends up rejecting elements that can't share style before doing a lot of
            semi-expensive checks.

        * dom/StyledElement.h:
        (WebCore::StyledElement::mappedAttributeCount):
        * dom/NamedNodeMap.h:
        (WebCore::NamedNodeMap::mappedAttributeCount):
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::clearAttributes):

            Remove NamedNodeMap::m_mappedAttributeCount and add a function that walks
            the attribute map counting the attributes that have a decl().

        * dom/NamedNodeMap.h:
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged):

            Remove declAdded()/declRemoved() callbacks.

2012-01-16  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix.

        Added necessary header files to VectorMath.cpp to fix Chromium compile error.

        * platform/audio/VectorMath.cpp:

2011-12-12  Jer Noble  <jer.noble@apple.com>

        WebAudio: Optimize AudioChannel::maxAbsValue().
        https://bugs.webkit.org/show_bug.cgi?id=74359

        Reviewed by Eric Carlson.

        No new tests; optimization of existing code, so covered by existing test cases.

        * platform/audio/AudioChannel.cpp:
        (WebCore::AudioChannel::maxAbsValue): Replace implementation with optimized vector math 
            operation.
        * platform/audio/VectorMath.cpp:
        (WebCore::VectorMath::vmaxmgv): Vector math operation for determining maximum
            magnitude in a vector.
        * platform/audio/VectorMath.h:

2012-01-16  Joe Thomas  <joethomas@motorola.com>

        https://bugs.webkit.org/show_bug.cgi?id=41210
        Cross Origin XMLHttpRequest can not expose headers indicated in Access-Control-Expose-Headers HTTP Response Header

        Parsing the "Access-Control-Expose-Headers" in the XMLHTTPRequest response header.
        If the custom response-header is part of Access-Control-Expose-Headers, then consider that custom response-header as a valid one.

        Reviewed by Alexey Proskuryakov.

        Test: http/tests/xmlhttprequest/access-control-response-with-expose-headers.html

        * loader/CrossOriginAccessControl.cpp:
        (WebCore::parseAccessControlExposeHeadersAllowList):  parsing logic of Access-Control-Expose-Headers
        * loader/CrossOriginAccessControl.h:
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::getAllResponseHeaders): checking whether the custom response-header is part of "Access-Control-Expose-Headers"
        (WebCore::XMLHttpRequest::getResponseHeader):  checking whether the custom response-header is part of "Access-Control-Expose-Headers"

2012-01-16  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: timeline record bars may overlap with the records column
        https://bugs.webkit.org/show_bug.cgi?id=76387

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/timelinePanel.css:
        (#timeline-container .split-view-sidebar-left):

2012-01-13  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: styles sidebar rendering is broken
        https://bugs.webkit.org/show_bug.cgi?id=76065

        Reviewed by Pavel Feldman.

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertiesSection):
        * inspector/front-end/elementsPanel.css:
        (.styles-section .header .subtitle):
        (.styles-section .properties):

2012-01-16  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Inremental build problem revealed by https://bugs.webkit.org/show_bug.cgi?id=74455

        Reviewed by Tor Arne Vestbø.

        * DerivedSources.pri: supplemental_dependency.tmp must depends on idl files too.

2012-01-16  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: do not merge iframes into a single DOM hierarchy.
        https://bugs.webkit.org/show_bug.cgi?id=76383

        Reviewed by Timothy Hatcher.

        * inspector/DOMEditor.h:
        * inspector/Inspector.json:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::unbind):
        (WebCore::InspectorDOMAgent::buildObjectForNode):
        (WebCore::InspectorDOMAgent::innerFirstChild):
        (WebCore::InspectorDOMAgent::innerParentNode):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel.prototype.setRuleSelector.callback):
        (WebInspector.CSSStyleModel.prototype.setRuleSelector):
        (WebInspector.CSSStyleModel.prototype.addRule.callback):
        (WebInspector.CSSStyleModel.prototype.addRule):
        (WebInspector.CSSStyleModel.prototype._ownerDocumentId):
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMNode):
        (WebInspector.DOMNode.prototype.getChildNodes):
        (WebInspector.DOMNode.prototype._insertChild):
        (WebInspector.DOMNode.prototype._setChildrenPayload):
        (WebInspector.DOMDocument):
        (WebInspector.DOMAgent.prototype._setDetachedRoot):
        * inspector/front-end/ElementsTreeOutline.js:

2012-01-16  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: setCurrentFocusElement should not update selection when focus is moved to text field or text area.
        https://bugs.webkit.org/show_bug.cgi?id=76384

        Reviewed by Timothy Hatcher.

        * inspector/front-end/JavaScriptOutlineDialog.js:
        (WebInspector.JavaScriptOutlineDialog):
        * inspector/front-end/UIUtils.js:
        (WebInspector._isTextEditingElement):
        (WebInspector.setCurrentFocusElement):

2012-01-16  Nikolas Zimmermann  <nzimmermann@rim.com>

        Large SVG text layout performance regression in r81168
        https://bugs.webkit.org/show_bug.cgi?id=65711

        Reviewed by Zoltan Herczeg.

        Enable simple code path in SVGTextMetricsBuilder, allowing fast-measurement of simple text.
        This affects the geometry of several <text> elements, thus several tests need rebaselining.

        * rendering/svg/SVGTextMetricsBuilder.cpp:
        (WebCore::SVGTextMetricsBuilder::advance):
        (WebCore::SVGTextMetricsBuilder::advanceComplexText):

2012-01-16  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py: generate array types.
        https://bugs.webkit.org/show_bug.cgi?id=75284

        Reviewed by Yury Semikhatsky.

        New classes are generated for ecah array type instance. Some includes
        and ifdefs are fixed.

        * inspector/CodeGeneratorInspector.py:
        (ArrayBinding):
        (ArrayBinding.get_code_generator):
        (ArrayBinding.get_code_generator.CodeGenerator):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder.AdHocTypeContext):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder.AdHocTypeContext.get_type_name_fix):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder.AdHocTypeContext.get_type_name_fix.NameFix):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder.AdHocTypeContext.get_type_name_fix.NameFix.output_comment):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder.AdHocTypeContext.call_generate_type_builder):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_forward_declaration):
        (ArrayBinding.get_code_generator.CodeGenerator.register_use):
        (ArrayBinding.get_in_c_type_text):
        (ArrayBinding.get_setter_value_expression_pattern):
        (ArrayBinding.reduce_to_raw_type):
        (RawTypeBinding):
        (RawTypeBinding.__init__):
        (RawTypeBinding.get_code_generator):
        (RawTypeBinding.get_in_c_type_text):
        (RawTypeBinding.get_setter_value_expression_pattern):
        (RawTypeBinding.reduce_to_raw_type):
        (TypeData.__init__):
        (TypeData.get_binding):
        * inspector/ConsoleMessage.cpp:
        * inspector/InspectorValues.h:

2012-01-15  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: editing body multiplies head
        https://bugs.webkit.org/show_bug.cgi?id=62272

        Reviewed by Yury Semikhatsky.

        Test: inspector/elements/set-outer-html-body.html

        * inspector/DOMEditor.cpp:
        (WebCore::DOMEditor::patchDocument):
        (WebCore::DOMEditor::patchNode):
        (WebCore::DOMEditor::innerPatchChildren):
        (WebCore::DOMEditor::insertBefore):
        * inspector/DOMEditor.h:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::setOuterHTML):

2012-01-16  Nikolas Zimmermann  <nzimmermann@rim.com>

        Large SVG text layout performance regression in r81168
        https://bugs.webkit.org/show_bug.cgi?id=65711

        Reviewed by Zoltan Herczeg.

        Change the way we store x/y/dx/dy/rotate values for a <text> element and its ancestors.

        SVGTextLayoutAttributesBuilder used to hold a Vector<float> for x/y/dx/dy/rotate, each as big
        as the whole text subtree length. For each character, that has an absolute position, or rotation
        the value was stored in this list. For all other characters a special empty value marker was stored.

        This is highly inefficient, and is now replaced with a HashMap<unsigned, SVGCharacterData> where
        SVGCharacterData is a struct, holding float x/y/dx/dy/rotate. The code is now optimized for the
        common case, where only a few characters actually specify such values, eg:
        <text x="50" y="90">looooong text<tspan x="50" y="30">abc</tspan></text>.

        NOTE: There are still some inefficiencies in this patch (especially the copying of SVGTextLayoutAttributes).
        To keep the patch size smaller, I decided to fix this in another patch, and only fix the memory issue with this patch.

        This reduces the memory consumption from 35MB to 10MB on the attached testcase in bug 65711.

        Doesn't affect any test, yet. A follow-up commit will enable the usage of the simple code path, using WidthIterator,
        in SVGTextMetricsBuilder, which will result in several layout test changes, because of geometry changes.

        * rendering/svg/RenderSVGInlineText.cpp:
        (WebCore::RenderSVGInlineText::RenderSVGInlineText):
        (WebCore::RenderSVGInlineText::characterStartsNewTextChunk):
        * rendering/svg/RenderSVGInlineText.h:
        (WebCore::RenderSVGInlineText::layoutAttributes):
        * rendering/svg/RenderSVGText.cpp:
        (WebCore::RenderSVGText::layout):
        (WebCore::recursiveCollectLayoutAttributes):
        (WebCore::RenderSVGText::rebuildLayoutAttributes):
        * rendering/svg/RenderSVGText.h:
        * rendering/svg/SVGRootInlineBox.cpp:
        (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
        (WebCore::SVGRootInlineBox::layoutCharactersInTextBoxes):
        (WebCore::SVGRootInlineBox::closestLeafChildForPosition):
        (WebCore::swapItemsInLayoutAttributes):
        (WebCore::findFirstAndLastAttributesInVector):
        (WebCore::reverseInlineBoxRangeAndValueListsIfNeeded):
        * rendering/svg/SVGTextLayoutAttributes.cpp:
        (WebCore::SVGTextLayoutAttributes::clear):
        (WebCore::dumpSVGCharacterDataMapValue):
        (WebCore::SVGTextLayoutAttributes::dump):
        * rendering/svg/SVGTextLayoutAttributes.h:
        (WebCore::SVGTextLayoutAttributes::characterDataMap):
        * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
        (WebCore::SVGTextLayoutAttributesBuilder::SVGTextLayoutAttributesBuilder):
        (WebCore::SVGTextLayoutAttributesBuilder::buildLayoutAttributesForTextRenderer):
        (WebCore::SVGTextLayoutAttributesBuilder::buildLayoutAttributesForWholeTree):
        (WebCore::SVGTextLayoutAttributesBuilder::rebuildMetricsForTextRenderer):
        (WebCore::SVGTextLayoutAttributesBuilder::rebuildMetricsForWholeTree):
        (WebCore::SVGTextLayoutAttributesBuilder::buildLayoutAttributesIfNeeded):
        (WebCore::processRenderSVGInlineText):
        (WebCore::SVGTextLayoutAttributesBuilder::collectTextPositioningElements):
        (WebCore::SVGTextLayoutAttributesBuilder::buildLayoutAttributes):
        (WebCore::updateCharacterData):
        (WebCore::SVGTextLayoutAttributesBuilder::fillCharacterDataMap):
        * rendering/svg/SVGTextLayoutAttributesBuilder.h:
        (WebCore::SVGTextLayoutAttributesBuilder::clearTextPositioningElements):
        * rendering/svg/SVGTextLayoutEngine.cpp:
        (WebCore::SVGTextLayoutEngine::updateRelativePositionAdjustmentsIfNeeded):
        (WebCore::SVGTextLayoutEngine::currentLogicalCharacterAttributes):
        (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
        * rendering/svg/SVGTextLayoutEngine.h:
        (WebCore::SVGTextLayoutEngine::layoutAttributes):
        * rendering/svg/SVGTextMetricsBuilder.cpp:
        (WebCore::SVGTextMetricsBuilder::advance):
        (WebCore::SVGTextMetricsBuilder::advanceComplexText):
        (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
        * rendering/svg/SVGTextQuery.cpp:
        (WebCore::SVGTextQuery::modifyStartEndPositionsRespectingLigatures):

2012-01-15  Andreas Kling  <awesomekling@apple.com>

        CSSCanvasValue can't be renamed, enforce this at compile-time.
        <http://webkit.org/b/76352>

        Reviewed by Antti Koivisto.

        Have the CSSCanvasValue constructor take the name as an argument instead of
        having a setName() that's only called from one place in CSSParser.

        * css/CSSCanvasValue.h:
        (WebCore::CSSCanvasValue::create):
        (WebCore::CSSCanvasValue::CSSCanvasValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseCanvas):

2012-01-16  Andreas Kling  <awesomekling@apple.com>

        CSSStyleSelector: Dodge parser when creating default LTR/RTL declarations.
        <http://webkit.org/b/76374>

        Reviewed by Antti Koivisto.

        Pass CSSValueLtr/CSSValueRtl directly to setProperty() instead of parsing "ltr"/"rtl".

        * css/CSSStyleSelector.cpp:
        (WebCore::leftToRightDeclaration):
        (WebCore::rightToLeftDeclaration):

2012-01-16  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distcheck.

        * GNUmakefile.list.am: Add missing files.

2012-01-16  Roland Steiner  <rolandsteiner@chromium.org>

        CSSStyleSelector constructor and appendAuthorStylesheets() contain duplicated code
        https://bugs.webkit.org/show_bug.cgi?id=76043

        Re-use appendAuthorStylesheets() from within CSSStyleSelector constructor.

        Reviewed by Antti Koivisto.

        No new tests. (refactoring)

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::CSSStyleSelector):
        * css/StyleSheetList.h:
        (WebCore::StyleSheetList::vector):

2012-01-16  Shinya Kawanaka  <shinyak@google.com>

        [crash] Renderer crashes when spell checking a disabled input field.
        https://bugs.webkit.org/show_bug.cgi?id=75941

        Reviewed by Hajime Morita.

        We confirm the selection is editable before replacing text.

        Tests: ManualTests/editing-disabled-node-replace-crash.html

        * editing/Editor.cpp:
        (WebCore::Editor::replaceSelectionWithFragment):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::doApply):

2012-01-16  Pablo Flouret  <pablof@motorola.com>

        Fix compilation errors on build-webkit --debug --no-svg --no-svg-fonts --no-svg-dom-objc-bindings on mac.
        https://bugs.webkit.org/show_bug.cgi?id=75865

        Reviewed by Hajime Morita.

        * WebCore.exp.in:
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyDisplay::isValidDisplayValue):
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::setContainerSizeForRenderer):
        (WebCore::CachedImage::imageSizeForRenderer):
        * platform/graphics/FontFastPath.cpp:
        (WebCore::Font::drawGlyphBuffer):
        * rendering/FilterEffectRenderer.cpp:
        * svg/SVGElementInstance.idl:

2012-01-16  Pablo Flouret  <pablof@motorola.com>

        Compilation error on build-webkit --debug --no-request-animation-frame on mac.
        https://bugs.webkit.org/show_bug.cgi?id=75875

        Reviewed by Hajime Morita.

        * dom/Document.cpp:
        (WebCore::Document::windowScreenDidChange):

2012-01-16  Csaba Osztrogonác  <ossy@webkit.org>

        Web Inspector: Fix GoToLineDialog and extract common dialog functionality.
        https://bugs.webkit.org/show_bug.cgi?id=69341

        Unreviewed trivial buildfix/typo fix after r105043.

        * inspector/front-end/WebKit.qrc:

2011-10-11  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Fix GoToLineDialog and extract common dialog functionality.
        https://bugs.webkit.org/show_bug.cgi?id=69341

        Fixed dialog: in old implementation dialog never hides if you press mouse button
        on Go button and release it somewhere else.
        Dialog functionality extracted to be used for search dialog.

        Reviewed by Pavel Feldman.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.sh:
        * inspector/front-end/Dialog.js: Added.
        (WebInspector.Dialog):
        (WebInspector.Dialog.show):
        (WebInspector.Dialog.prototype._hide):
        (WebInspector.Dialog.prototype._onFocus):
        (WebInspector.Dialog.prototype._doFocus):
        (WebInspector.Dialog.prototype._position):
        (WebInspector.Dialog.prototype._onKeyDown):
        (WebInspector.Dialog.prototype._onClick):
        (WebInspector.DialogDelegate):
        (WebInspector.DialogDelegate.prototype.get defaultFocusedElement):
        (WebInspector.DialogDelegate.prototype.get okButton):
        (WebInspector.DialogDelegate.prototype.onAction):
        * inspector/front-end/GoToLineDialog.js:
        (WebInspector.GoToLineDialog):
        (WebInspector.GoToLineDialog._show):
        (WebInspector.GoToLineDialog.prototype.get defaultFocusedElement):
        (WebInspector.GoToLineDialog.prototype.get okButton):
        (WebInspector.GoToLineDialog.prototype.onAction):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/dialog.css: Renamed from Source/WebCore/inspector/front-end/goToLineDialog.css.
        (.dialog-glass-pane):
        (.dialog):
        (.dialog-contents):
        (.go-to-line-dialog input):
        (.go-to-line-dialog button):
        (.go-to-line-dialog button:active):
        * inspector/front-end/inspector.html:

2012-01-16  Jochen Eisinger  <jochen@chromium.org>

        ScriptRunner should also keep references to pending async scripts
        https://bugs.webkit.org/show_bug.cgi?id=76350

        Reviewed by Adam Barth.

        The CachedResourceLoader only keeps a raw pointer to a ScriptElement.
        If an async ScriptElement is removed from the document before it is
        executed, it might be garbage collected before the script is loaded, so
        it's never run.

        By making the ScriptRunner keep an explicit reference to the
        ScriptElement while it's loading (as is done for sync ScriptElements),
        we can guarantee that the ScriptElement lives until it is executed.

        No more flaky timeouts: http/tests/misc/async-script.html:

        * dom/ScriptElement.cpp:
        (WebCore::ScriptElement::prepareScript):
        (WebCore::ScriptElement::notifyFinished):
        * dom/ScriptRunner.cpp:
        (WebCore::ScriptRunner::~ScriptRunner):
        (WebCore::ScriptRunner::queueScriptForExecution):
        (WebCore::ScriptRunner::notifyScriptReady):
        * dom/ScriptRunner.h:
        (WebCore::ScriptRunner::hasPendingScripts):

2012-01-16  Renata Hodovan  <reni@webkit.org>

        Unreviewed build fix; added WebCore.exp.in changes lost in r105036.

        * WebCore.exp.in:

2012-01-15  Xinchao He  <xinchao.he@intel.com>

        Add DeviceOrientationEvent.absolute
        https://bugs.webkit.org/show_bug.cgi?id=51742

        Reviewed by Darin Fisher.

        This patch add the DeviceOrientationEvent.absolute to follow the
        latest w3c device orientation event spec.
        http://www.w3.org/TR/orientation-event/


        * bindings/js/JSDeviceOrientationEventCustom.cpp:
        (WebCore::JSDeviceOrientationEvent::absolute):
        (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
        * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
        (WebCore::V8DeviceOrientationEvent::absoluteAccessorGetter):
        (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
        * dom/DeviceOrientation.cpp:
        (WebCore::DeviceOrientation::create):
        (WebCore::DeviceOrientation::DeviceOrientation):
        (WebCore::DeviceOrientation::absolute):
        (WebCore::DeviceOrientation::canProvideAbsolute):
        * dom/DeviceOrientation.h:
        * dom/DeviceOrientationEvent.idl:

2012-01-15  Luke Macpherson   <macpherson@chromium.org>

        Remove external references to CSSPrimitiveValue::UnitTypes enum.
        https://bugs.webkit.org/show_bug.cgi?id=76229

        Reviewed by Darin Adler.

        No new tests / refactoring only.

        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule):
        * css/CSSGradientValue.cpp:
        (WebCore::CSSGradientValue::addStops):
        (WebCore::positionFromValue):
        (WebCore::CSSGradientValue::isCacheable):
        (WebCore::CSSRadialGradientValue::resolveRadius):
        (WebCore::CSSRadialGradientValue::createGradient):
        * css/CSSPrimitiveValue.h:
        (WebCore::CSSPrimitiveValue::isUnitTypeLength):
        (WebCore::CSSPrimitiveValue::isFontRelativeLength):
        (WebCore::CSSPrimitiveValue::isIdent):
        (WebCore::CSSPrimitiveValue::isNumber):
        (WebCore::CSSPrimitiveValue::isPercentage):
        (WebCore::CSSPrimitiveValue::isString):
        (WebCore::CSSPrimitiveValue::isURI):
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyLength::applyValue):
        (WebCore::ApplyPropertyBorderRadius::applyValue):
        (WebCore::ApplyPropertyFontSize::applyValue):
        (WebCore::ApplyPropertyCursor::applyValue):
        (WebCore::ApplyPropertyPageSize::applyValue):
        (WebCore::ApplyPropertyTextEmphasisStyle::applyValue):
        (WebCore::ApplyPropertyZoom::applyValue):

2012-01-15  Pablo Flouret  <pablof@motorola.com>

        Fix compilation errors on build-webkit --debug --no-video on mac.
        https://bugs.webkit.org/show_bug.cgi?id=75867

        Reviewed by Philippe Normand.

        - Some exported HTMLMediaElement symbols were guarded by FULLSCREEN_API
          feature instead of VIDEO.
        - Unused parameter warning in CanvasRenderingContext::wouldTaintOrigin().
        - RenderThemeMac::shouldShowPlaceholderWhenFocused() implementation
          wrongly guarded by VIDEO feature.

        * WebCore.exp.in:
        * html/canvas/CanvasRenderingContext.cpp:
        (WebCore::CanvasRenderingContext::wouldTaintOrigin):
        * rendering/RenderThemeMac.mm:

2012-01-15  Andreas Kling  <awesomekling@apple.com>

        CSSParser: Fix failing assertion below BorderImageQuadParseContext.
        <http://webkit.org/b/76346> and <rdar://problem/10584969>

        Reviewed by Antti Koivisto.

        No longer asserts: fast/borders/inline-mask-overlay-image-outset-vertical-rl.html

        * css/CSSParser.cpp:
        (WebCore::BorderImageSliceParseContext::commitBorderImageSlice):
        (WebCore::BorderImageQuadParseContext::commitBorderImageQuad):

            Clone CSSValues by copying the RefPtrs instead of going through
            the CSSValuePool's create-from-double factory. This prevents an
            assertion when the incoming value is CSSValueAuto.

2011-08-30  Robert Hogan  <robert@webkit.org>

        <embed> width and height properties propagate to parent object node
        https://bugs.webkit.org/show_bug.cgi?id=17688

        Reviewed by Eric Seidel.

        Test: fast/images/embed-does-not-propagate-dimensions-to-object-ancestor.html

        WebKit seems to have inherited this behaviour from KHTML. When the width/height
        of an <embed> element is set, it propagates the values up to any parent <object>
        element. There doesn't seem to be any good reason for this and it is not consistent
        with the behaviour of Firefox and Opera.

        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::insertedIntoDocument):
        (WebCore::HTMLEmbedElement::attributeChanged): Removed
        * html/HTMLEmbedElement.h:
        (WebCore::HTMLEmbedElement::attributeChanged): Removed

2011-12-30  Robert Hogan  <robert@webkit.org>

        compareBorders() is called too often during painting
        https://bugs.webkit.org/show_bug.cgi?id=73349

        Reviewed by Julien Chaffraix.

        Collapsed borders are re-calculated every time they are painted.
        This is unnecessary, they only change with the layout or style so calculate and
        cache them whenever the layout or style changes and use the cached values when
        painting. The cache is stored in the table section so that the memory footprint
        of a table is only increased when it has collapsing borders.

        The gain in performance here consists of skipping collapsed border computation
        during painting. The only path that incurs a small performance penalty is the 
        additional get/set on the cache when a collapsed border is computed. This penalty only applies
        during style change, layout, or when the width of the table is calculated. The computed
        border value is not stored in the cache when it has been calculated without its color
        for borderHalfStart and co., so that code path is unaffected by this change.

        No new tests, covered by existing collapsed border tests.

        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::willBeDestroyed): remove entries from collapsed border cache
        (WebCore::RenderTableCell::collapsedStartBorder):
         Compute, and also cache if the full border including color was computed. 
        (WebCore::RenderTableCell::computeCollapsedStartBorder):
        (WebCore::RenderTableCell::collapsedEndBorder): ditto
        (WebCore::RenderTableCell::computeCollapsedEndBorder):
        (WebCore::RenderTableCell::collapsedBeforeBorder): ditto
        (WebCore::RenderTableCell::computeCollapsedBeforeBorder):
        (WebCore::RenderTableCell::collapsedAfterBorder): ditto
        (WebCore::RenderTableCell::computeCollapsedAfterBorder):
        (WebCore::RenderTableCell::cachedCollapsedLeftBorder):
         Inline the function since it is only called in paintCollapsedBorders and remove
         includeColor as a parameter. Move the call to the table's style to the caller rather
         than call it 4 times in a row. Use the cached border values directly.
        (WebCore::RenderTableCell::cachedCollapsedRightBorder): ditto
        (WebCore::RenderTableCell::cachedCollapsedTopBorder): ditto
        (WebCore::RenderTableCell::cachedCollapsedBottomBorder): ditto
        (WebCore::RenderTableCell::paintCollapsedBorders):
         This function always uses the collapsed border cache now.
        * rendering/RenderTableCell.h:
         Make the collapsed border functions private.
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::removeCachedCollapsedBorders): The cache is deleted by the HashMap
         since it is the only owner of the cached item.
        (WebCore::RenderTableSection::setCachedCollapsedBorder):
        (WebCore::RenderTableSection::cachedCollapsedBorder):
         This will assert if there is no cached collapsed border for the side of the 
         cell requested by the caller.
        * rendering/RenderTableSection.h:
         HashMap wouldn't let me use CollapsedBorderSide in the key value for the cache
         so use int instead.

2012-01-14  David Levin  <levin@chromium.org>

        HWndDC should be in platform/win instead of wtf.
        https://bugs.webkit.org/show_bug.cgi?id=76314

        Reviewed by Sam Weinig.

        No new functionality, so no new tests.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * platform/win/HWndDC.h: Renamed from Source/JavaScriptCore/wtf/win/HWndDCWin.h.
        I also made the class non-copyable.
        (WebCore::HWndDC::HWndDC):
        (WebCore::HWndDC::~HWndDC):
        (WebCore::HWndDC::operator HDC):

2012-01-14  Adam Treat  <atreat@rim.com>

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

        Take a page from the Gtk and Qt ports and quiet these logs unless they
        are explicitly enabled via environment variable.

        Reviewed by George Staikos.

        * platform/blackberry/LoggingBlackBerry.cpp:
        (WebCore::initializeLoggingChannelsIfNecessary):

2011-11-09  Robert Hogan  <robert@webkit.org>

        CSS 2.1 failure: outline-color-applies-to* tests fail
        https://bugs.webkit.org/show_bug.cgi?id=71944

        Reviewed by Julien Chaffraix.

        Paint the outline color for row, row-group, header-group and footer-group
        elements.

        Tests: css2.1/20110323/outline-color-applies-to-001.htm
               css2.1/20110323/outline-color-applies-to-002.htm
               css2.1/20110323/outline-color-applies-to-003.htm
               css2.1/20110323/outline-color-applies-to-004.htm
               css2.1/20110323/outline-color-applies-to-005.htm
               css2.1/20110323/outline-color-applies-to-006.htm
               css2.1/20110323/outline-color-applies-to-007.htm
               css2.1/20110323/outline-color-applies-to-008.htm
               css2.1/20110323/outline-color-applies-to-009.htm
               css2.1/20110323/outline-color-applies-to-010.htm
               (There is no outline-color-applies-to-011.htm in the test suite.)
               css2.1/20110323/outline-color-applies-to-012.htm
               css2.1/20110323/outline-color-applies-to-013.htm
               css2.1/20110323/outline-color-applies-to-014.htm
               css2.1/20110323/outline-color-applies-to-015.htm
               fast/css/outline-color-self-painting-row.htm

        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::paintOutlineForRowIfNeeded): Wrapper function for painting the outline for the row.
         This is used by RenderTableSection::paintObject and RenderTableRow::paint
        (WebCore::RenderTableRow::paint): For rows with a self-painting layer, paint the outline. Tested by
         fast/css/outline-color-self-painting-row.htm.
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::paint): Paint the outline for header-group, row-group and footer-groups.
        (WebCore::RenderTableSection::paintObject): When iterating through the cells paint the outline of rows as required.
        Doing it here avoids the need to walk the RenderTableSection's tree separately elsewhere.

2012-01-14  Simon Fraser  <simon.fraser@apple.com>

        Unmatched transparency layer begin/end on a filtered element with an opacity ancestor
        https://bugs.webkit.org/show_bug.cgi?id=76329

        Reviewed by Dan Bernstein.

        When doing a paint with painting disabled on the GraphicsContext, as we do
        for updating control tints, or computing text rectangles on Find, do not
        apply filter effects. This is both a performance gain, and fixes an issue
        with mismatched begin/end transparency layers.
        
        Manual test:
            ManualTests/filters/opacity-above-filter.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayerContents):

2012-01-13  Ojan Vafai  <ojan@chromium.org>

        Implement flex-align
        https://bugs.webkit.org/show_bug.cgi?id=75782

        Reviewed by Tony Chang.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        Intentially gets computed style for flex-item-align:auto wrong.
        Will fix this in a followup patch.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::sizesToIntrinsicLogicalWidth):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::flexAlignForChild):
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
        (WebCore::RenderFlexibleBox::alignChildren):
        * rendering/style/RenderStyle.h:
        (WebCore::RenderStyleBitfields::flexAlign):
        (WebCore::RenderStyleBitfields::setFlexAlign):
        (WebCore::RenderStyleBitfields::initialFlexAlign):
        (WebCore::RenderStyleBitfields::initialFlexItemAlign):
        * rendering/style/StyleFlexibleBoxData.cpp:
        (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
        (WebCore::StyleFlexibleBoxData::operator==):
        * rendering/style/StyleFlexibleBoxData.h:

2012-01-13  Brent Fulgham  <bfulgham@webkit.org>

        [Windows, WinCairo] Build correction after r104919.

        * WebCore.vcproj/WebCore.vcproj: Exclude ShadowContentSelectorQuery.cpp
          from the build, since it is built as part of DOMAllInOne.cpp.

2012-01-13  Vincent Scheib  <scheib@chromium.org>

        Pointer Lock: Change isLocked() from operator to attribute isLocked
        https://bugs.webkit.org/show_bug.cgi?id=76311

        Reviewed by Adam Barth.

        This patch implements the recent Mouse Lock Specification update
        changing navigator.pointer.isLocked() to .isLocked.

        Test pointer-lock/pointer-lock-api.html updated to new spec.

        * page/PointerLock.idl:

2012-01-13  Raymond Toy  <rtoy@google.com>

        noteOn, noteGrainOn and noteOff idl should take doubles
        https://bugs.webkit.org/show_bug.cgi?id=76073

        Reviewed by Adam Barth.

        Existing audiobuffersource-playbackrate and gain tests cover the
        noteOn and noteOff changes.

        * webaudio/AudioBufferSourceNode.idl: noteOn, noteGrainOn, and
        noteOff take doubles.

2012-01-13  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=71230
        Clicking where the overlay scroll track would be should not scroll the page
        -and corresponding-
        <rdar://problem/9585424>

        Reviewed by Alexey Proskuryakov.

        These new functions indicate whether the scrollbar should participate in hit 
        testing. Non-overlay scrollbars always should, so they return true. Overlay 
        scrollbars consult the animator, which checks the current alpha. 
        * platform/ScrollAnimator.h:
        (WebCore::ScrollAnimator::shouldScrollbarParticipateInHitTesting):
        * platform/Scrollbar.cpp:
        (WebCore::Scrollbar:: shouldParticipateInHitTesting):
        * platform/Scrollbar.h:
        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac:: shouldScrollbarParticipateInHitTesting):

        In these hit-testing functions, only hit-test when the scrollbar should 
        participate.
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::scrollbarAtPoint):
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::nodeAtPoint):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hitTestOverflowControls):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::isPointInOverflowControl):

2012-01-13  Dan Bernstein  <mitz@apple.com>

        REGRESSION: svg/custom/use-instanceRoot-event-listeners.xhtml & svg/custom/pointer-events-invalid-fill.svg broken on the Bots
        https://bugs.webkit.org/show_bug.cgi?id=76254

        Reviewed by Anders Carlsson.

        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::beginLoadTimerFired): Added a call to
        CachedResourceLoader::loadDone() after decrementing the request count. This allows the
        frame loader to see that the request count is zero and dispatch didFinishLoad. 

2012-01-13  Jer Noble  <jer.noble@apple.com>

        WebAudio: Optimize calculateNormalizationScale().
        https://bugs.webkit.org/show_bug.cgi?id=74372

        Reviewed by Eric Carlson.

        No new tests; optimization of existing code, so covered by existing test cases.

        * platform/audio/Reverb.cpp:
        (WebCore::calculateNormalizationScale): Replace implementation with optimized vector
            math operation.
        (WebCore::Reverb::Reverb):
        * platform/audio/VectorMath.cpp:
        (WebCore::VectorMath::vsvesq): Vector math operation for squared sum of elements.
        * platform/audio/VectorMath.h:

2012-01-13  Nico Weber  <thakis@chromium.org>

        Remove a unused variable.
        https://bugs.webkit.org/show_bug.cgi?id=76307

        Reviewed by James Robinson.

        * platform/mac/ScrollElasticityController.mm:
        (WebCore::ScrollElasticityController::snapRubberBandTimerFired):

2012-01-13  Nate Chapin  <japhet@chromium.org>

        Revert most of the multipart changes in
        http://trac.webkit.org/changeset/104756.
        https://bugs.webkit.org/show_bug.cgi?id=76297

        Reviewed by Alexey Proskuryakov.

        http/tests/multipart/invalid-image-data.html
        should stop asserting on chromium win dbg.

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didReceiveResponse):
        (WebCore::SubresourceLoader::didReceiveData):
        (WebCore::SubresourceLoader::sendDataToResource):

2011-01-13  Jer Noble  <jer.noble@apple.com>

        WebAudio: Use float instead of double values for gain operations.
        https://bugs.webkit.org/show_bug.cgi?id=74345

        Reviewed by Sam Weinig.

        No new tests; optimization of existing code, so covered by existing test cases.

        The following functions now take or operate on floats instead of doubles:
        (WebCore::AudioBus::scale):
        (WebCore::AudioBus::processWithGainFrom):
        (WebCore::AudioBus::copyWithGainFrom):
        (WebCore::AudioBus::sumWithGainFrom):
        * platform/audio/AudioBus.h:
        (WebCore::AudioBus::setGain):
        (WebCore::AudioBus::gain):
        * platform/audio/AudioChannel.cpp:
        (WebCore::AudioChannel::scale):
        * platform/audio/AudioChannel.h:
        * webaudio/AudioBufferSourceNode.cpp:
        (WebCore::AudioBufferSourceNode::process):
        * webaudio/AudioBufferSourceNode.h:
        * webaudio/AudioGainNode.h:
        * webaudio/AudioPannerNode.h:

2012-01-13  Greg Billock  <gbillock@google.com>

        Don't use pending activity notification in IntentRequest
        https://bugs.webkit.org/show_bug.cgi?id=76302

        Reviewed by Adam Barth.

        * Modules/intents/IntentRequest.cpp:
        (WebCore::IntentRequest::IntentRequest):
        (WebCore::IntentRequest::postResult):
        (WebCore::IntentRequest::postFailure):

2012-01-13  Raymond Toy  <rtoy@google.com>

        EQUALPOWER panner incorrectly computes gain
        https://bugs.webkit.org/show_bug.cgi?id=75767

        Reviewed by Kenneth Russell.

        Layout test added.

        * platform/audio/EqualPowerPanner.cpp:
        (WebCore::EqualPowerPanner::pan):  Correct the formula.

2012-01-13  Ojan Vafai  <ojan@chromium.org>

        Unreviewed, rolling out r104972.
        http://trac.webkit.org/changeset/104972
        https://bugs.webkit.org/show_bug.cgi?id=75782

        Broke some tests

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::sizesToIntrinsicLogicalWidth):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
        (WebCore::RenderFlexibleBox::alignChildren):
        * rendering/style/RenderStyle.h:
        (WebCore::RenderStyleBitfields::initialFlexItemAlign):
        * rendering/style/StyleFlexibleBoxData.cpp:
        (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
        (WebCore::StyleFlexibleBoxData::operator==):
        * rendering/style/StyleFlexibleBoxData.h:

2012-01-13  Anders Carlsson  <andersca@apple.com>

        -[WebTileCacheLayer setNeedsDisplay] doesn't trigger invalidation
        https://bugs.webkit.org/show_bug.cgi?id=76299

        Reviewed by Simon Fraser.

        Override -[WebTileCacheLayer setNeedsDisplay] and call TileCache::setNeedsDisplay from there,
        instead of ending up with a huge rectangle in TileCache::setNeedsDisplayInRect which causes our
        tile computation logic to fail due to integer overflow when converting from CGFloats to ints.

        * platform/graphics/ca/mac/TileCache.h:
        * platform/graphics/ca/mac/TileCache.mm:
        (WebCore::TileCache::setNeedsDisplay):
        * platform/graphics/ca/mac/WebTileCacheLayer.mm:
        (-[WebTileCacheLayer setNeedsDisplay]):

2012-01-12  Ojan Vafai  <ojan@chromium.org>

        Implement flex-align
        https://bugs.webkit.org/show_bug.cgi?id=75782

        Reviewed by Tony Chang.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        Not 100% sure about this, but I think the computed value of
        flex-item-align needs to take the parent's flex-align into
        account for computed auto values.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::sizesToIntrinsicLogicalWidth):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::flexAlign):
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
        (WebCore::RenderFlexibleBox::alignChildren):
        * rendering/style/RenderStyle.h:
        (WebCore::RenderStyleBitfields::flexAlign):
        (WebCore::RenderStyleBitfields::setFlexAlign):
        (WebCore::RenderStyleBitfields::initialFlexAlign):
        (WebCore::RenderStyleBitfields::initialFlexItemAlign):
        * rendering/style/StyleFlexibleBoxData.cpp:
        (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
        (WebCore::StyleFlexibleBoxData::operator==):
        * rendering/style/StyleFlexibleBoxData.h:

2012-01-13  Simon Fraser  <simon.fraser@apple.com>

        Rename GraphicsContext* argument in various RenderLayer methods
        https://bugs.webkit.org/show_bug.cgi?id=76283

        Reviewed by James Robinson/Anders Carlsson.

        Rename the GraphicsContext* parameter "p" in various RenderLayer
        methods to "context". "p" was a historical name from when it was
        called Painter.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::beginTransparencyLayers):
        (WebCore::RenderLayer::paint):
        (WebCore::RenderLayer::paintOverlayScrollbars):
        (WebCore::RenderLayer::restoreClip):
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::paintLayerContentsAndReflection):
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::paintList):

2012-01-13  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]Add back region style code removed in r104036
        https://bugs.webkit.org/show_bug.cgi?id=76064

        Reviewed by David Hyatt.

        No new tests. The region style tests are still skipped. A follow up patch will enable
        both region style for background-color and region style tests.

        * WebCore.exp.in:
        * css/CSSStyleSelector.cpp:
        (WebCore::RuleData::useInRegionStyle):
        (WebCore::CSSStyleSelector::CSSStyleSelector):
        (WebCore::CSSStyleSelector::addMatchedDeclaration):
        (WebCore::CSSStyleSelector::matchRules):
        (WebCore::CSSStyleSelector::matchAllRules):
        (WebCore::CSSStyleSelector::initForRegionStyling):
        (WebCore::CSSStyleSelector::initRegionRules):
        (WebCore::CSSStyleSelector::styleForElement):
        (WebCore::CSSStyleSelector::pseudoStyleForElement):
        (WebCore::RuleData::RuleData):
        (WebCore::RuleSet::RuleSet):
        (WebCore::RuleSet::addToRuleSet):
        (WebCore::CSSStyleSelector::applyDeclarations):
        (WebCore::isValidRegionStyleProperty):
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSStyleSelector.h:
        (WebCore::CSSStyleSelector::setRegionForStyling):
        (WebCore::CSSStyleSelector::regionForStyling):
        (WebCore::CSSStyleSelector::applyPropertyToRegionStyle):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::clearRenderObjectCustomStyle):
        (WebCore::RenderFlowThread::setRegionRangeForBox):
        * rendering/RenderFlowThread.h:
        * rendering/RenderLayer.cpp:
        (WebCore::CurrentRenderRegionMaintainer::CurrentRenderRegionMaintainer):
        (WebCore::CurrentRenderRegionMaintainer::~CurrentRenderRegionMaintainer):
        (WebCore::RenderLayer::paint):
        (WebCore::RenderLayer::hitTest):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::styleInRegion):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::canHaveRegionStyle):
        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::removeChildNode):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::renderObjectRegionStyle):
        (WebCore::RenderRegion::computeStyleInRegion):
        (WebCore::RenderRegion::clearObjectStyleInRegion):
        * rendering/RenderRegion.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::RenderView):
        * rendering/RenderView.h:
        (WebCore::RenderView::currentRenderRegion):
        (WebCore::RenderView::setCurrentRenderRegion):

2012-01-13  Kenneth Russell  <kbr@google.com>

        Unreviewed build fix; added project.pbxproj changes lost in r104954.
        https://bugs.webkit.org/show_bug.cgi?id=75906

        * WebCore.xcodeproj/project.pbxproj:

2012-01-13  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        TextureMapper: Extract layer transform logic to a LayerTransform class.
        https://bugs.webkit.org/show_bug.cgi?id=76291

        Reviewed by Noam Rosenthal.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * platform/graphics/texmap/LayerTransform.cpp: Added.
        (WebCore::LayerTransform::LayerTransform):
        (WebCore::LayerTransform::setPosition):
        (WebCore::LayerTransform::setSize):
        (WebCore::LayerTransform::setAnchorPoint):
        (WebCore::LayerTransform::setFlattening):
        (WebCore::LayerTransform::setLocalTransform):
        (WebCore::LayerTransform::setChildrenTransform):
        (WebCore::LayerTransform::combined):
        (WebCore::LayerTransform::combinedForChildren):
        (WebCore::LayerTransform::combineTransforms):
        (WebCore::LayerTransform::combineTransformsForChildren):
        * platform/graphics/texmap/LayerTransform.h: Added.
        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::setTransform):
        (WebCore::TextureMapperNode::computeTransformsRecursive):
        (WebCore::TextureMapperNode::collectVisibleContentsRects):
        (WebCore::TextureMapperNode::paintSelf):
        (WebCore::TextureMapperNode::compareGraphicsLayersZValue):
        (WebCore::TextureMapperNode::paintSelfAndChildren):
        (WebCore::TextureMapperNode::paintReflection):
        (WebCore::TextureMapperNode::syncCompositingStateSelf):
        * platform/graphics/texmap/TextureMapperNode.h:
        (WebCore::TextureMapperNode::TextureMapperNode):

2012-01-13  Kenneth Russell  <kbr@google.com>

        Unreviewed, build fix for unused argument warning after r104954.
        https://bugs.webkit.org/show_bug.cgi?id=75906

        Also fixed up somebody's bad merge in Source/WebCore/ChangeLog.

        * html/canvas/WebGLObject.cpp:
        (WebCore::WebGLObject::WebGLObject):

2012-01-13  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [soup] Initialize m_soupFlags in all ResourceResponse constructors.

        Rubber-stamped by Gustavo Noronha Silva.

        m_soupFlags was being initialized in two of the three ResourceResponse
        constructors, causing some trouble in
        FrameLoaderClient::dispatchDidReceiveResponse (ports which use
        ResourceRequest::setSoupMessageFlags with the response's unitialized
        flags).

        * platform/network/soup/ResourceResponse.h:
        (WebCore::ResourceResponse::ResourceResponse):

2012-01-13  Alexey Proskuryakov  <ap@apple.com>

        CFURLRef to KURL conversion shouldn't turn raw paths into file URLs
        https://bugs.webkit.org/show_bug.cgi?id=76251

        Reviewed by Dan Bernstein.

        * platform/cf/KURLCFNet.cpp: (WebCore::KURL::KURL): Removed the offending code.

2012-01-13  Konrad Piascik  <kpiascik@rim.com>

        Web Inspector: Disconnecting the front-end does not disable profiling.
        https://bugs.webkit.org/show_bug.cgi?id=76213

        Reviewed by Pavel Feldman.

        Not testable.

        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::clearFrontend):

2012-01-13  Andreas Kling  <awesomekling@apple.com>

        JSC/DOM bindings: Reduce HandleHeap churn in cacheWrapper().
        <http://webkit.org/b/76271>

        Reviewed by Darin Adler.

        Use JSC::Weak::swap() to move JSDOMWrappers into the DOMWrapperWorld's wrapper map.
        This avoids invoking the JSC::Weak copy constructor and associated HandleHeap churn.

        * bindings/js/JSDOMBinding.h:
        (WebCore::cacheWrapper):

2012-01-13  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [InspectorIndexedDB] Add InspectorIndexedDBAgent and IndexedDBModel, pass database names to inspector.
        https://bugs.webkit.org/show_bug.cgi?id=76264

        Reviewed by Pavel Feldman.

        * CMakeLists.txt:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/CodeGeneratorInspector.py:
        * inspector/Inspector.json:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorIndexedDBAgent.cpp: Added.
        (WebCore::InspectorIndexedDBAgent::FrontendProvider::create):
        (WebCore::InspectorIndexedDBAgent::FrontendProvider::~FrontendProvider):
        (WebCore::InspectorIndexedDBAgent::FrontendProvider::frontend):
        (WebCore::InspectorIndexedDBAgent::FrontendProvider::clearFrontend):
        (WebCore::InspectorIndexedDBAgent::FrontendProvider::FrontendProvider):
        (WebCore::InspectorIndexedDBAgent::InspectorIndexedDBAgent):
        (WebCore::InspectorIndexedDBAgent::~InspectorIndexedDBAgent):
        (WebCore::InspectorIndexedDBAgent::setFrontend):
        (WebCore::InspectorIndexedDBAgent::clearFrontend):
        (WebCore::InspectorIndexedDBAgent::restore):
        (WebCore::InspectorIndexedDBAgent::enable):
        (WebCore::InspectorIndexedDBAgent::disable):
        (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
        * inspector/InspectorIndexedDBAgent.h: Added.
        (WebCore::InspectorIndexedDBAgent::create):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::buildObjectForFrame):
        * inspector/compile-front-end.sh:
        * inspector/front-end/IndexedDBModel.js: Added.
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.ResourceTreeFrame):
        (WebInspector.ResourceTreeFrame.prototype.get securityOrigin):
        (WebInspector.ResourceTreeFrame.prototype._navigate):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:

2012-01-13  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r104935.
        http://trac.webkit.org/changeset/104935
        https://bugs.webkit.org/show_bug.cgi?id=76277

        Breaks AppleWin compilation (Requested by vsevik on #webkit).

        * CMakeLists.txt:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/CodeGeneratorInspector.py:
        * inspector/Inspector.json:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorIndexedDBAgent.cpp: Removed.
        * inspector/InspectorIndexedDBAgent.h: Removed.
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::buildObjectForFrame):
        * inspector/compile-front-end.sh:
        * inspector/front-end/IndexedDBModel.js: Removed.
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.ResourceTreeFrame):
        (WebInspector.ResourceTreeFrame.prototype._navigate):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:

2012-01-13  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [InspectorIndexedDB] Add InspectorIndexedDBAgent and IndexedDBModel, pass database names to inspector.
        https://bugs.webkit.org/show_bug.cgi?id=76264

        Reviewed by Pavel Feldman.

        * CMakeLists.txt:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/CodeGeneratorInspector.py:
        * inspector/Inspector.json:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorIndexedDBAgent.cpp: Added.
        (WebCore::InspectorIndexedDBAgent::FrontendProvider::create):
        (WebCore::InspectorIndexedDBAgent::FrontendProvider::~FrontendProvider):
        (WebCore::InspectorIndexedDBAgent::FrontendProvider::frontend):
        (WebCore::InspectorIndexedDBAgent::FrontendProvider::clearFrontend):
        (WebCore::InspectorIndexedDBAgent::FrontendProvider::FrontendProvider):
        (WebCore::InspectorIndexedDBAgent::InspectorIndexedDBAgent):
        (WebCore::InspectorIndexedDBAgent::~InspectorIndexedDBAgent):
        (WebCore::InspectorIndexedDBAgent::setFrontend):
        (WebCore::InspectorIndexedDBAgent::clearFrontend):
        (WebCore::InspectorIndexedDBAgent::restore):
        (WebCore::InspectorIndexedDBAgent::enable):
        (WebCore::InspectorIndexedDBAgent::disable):
        (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
        * inspector/InspectorIndexedDBAgent.h: Added.
        (WebCore::InspectorIndexedDBAgent::create):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::buildObjectForFrame):
        * inspector/compile-front-end.sh:
        * inspector/front-end/IndexedDBModel.js: Added.
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.ResourceTreeFrame):
        (WebInspector.ResourceTreeFrame.prototype.get securityOrigin):
        (WebInspector.ResourceTreeFrame.prototype._navigate):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:

2012-01-13  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Fix build when using TextureMapper with OpenGL/ES
        https://bugs.webkit.org/show_bug.cgi?id=76268

        Reviewed by Tor Arne Vestbø.

        * WebCore.pri: When the texture mapper uses OpenGL/ES, then it also relies on the
        availability of libEGL by using eglGetCurrentContext(). In that case we need to link against
        libEGL.

2012-01-13  Jochen Eisinger  <jochen@chromium.org>

        Don't artifically keep IDBDatabase objects alive if there are no references to it.
        https://bugs.webkit.org/show_bug.cgi?id=75859

        Originally, this code was added to keep the IDBDatabase object alive
        even if no reference from JavaScript to the object existed, because
        running transactions could still send events for this database
        connection. Meanwhile, transactions are marked as active DOM objects
        during their lifetime, and they keep a RefPtr to the IDBDatabase
        object, so this hack is no longer required.

        Reviewed by Tony Gentilcore.

        Test: storage/indexeddb/delete-closed-database-object.html

        * storage/IDBDatabase.cpp:
        * storage/IDBDatabase.h:

2012-01-12  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        TextureMapper: Do the node transform computation when painting.
        https://bugs.webkit.org/show_bug.cgi?id=74721

        Reviewed by Noam Rosenthal.

        The transform of the node tree was built during the syncCompositingState
        step. This would cause an ASSERT with QWebView, trying to use a dirty transform
        state since the rootTextureMapperNode in QWebFramePrivate::renderCompositedLayers
        doesn't run the sync step after getting the world transform set.

        This moves the transform computation from the sync to the paint step to
        prevent making sure that the sync step has been run on all nodes before painting.

        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::computeTransformsRecursive):
        (WebCore::TextureMapperNode::computeTiles):
        Remove an unused variable.
        (WebCore::TextureMapperNode::paint):
        (WebCore::TextureMapperNode::syncAnimationsRecursively):
        (WebCore::TextureMapperNode::syncCompositingState):
        * platform/graphics/texmap/TextureMapperNode.h:

2012-01-12  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        TextureMapper: Simplify transform manipulations.
        https://bugs.webkit.org/show_bug.cgi?id=74719

        Reviewed by Noam Rosenthal.

        - Make sure that the replica node has a complete transform and
          use it directly instead of keeping a copy in the source.
        - Apply the origin and position translation only once, on the
          target and descendants transforms.
        - Use to2dTransform() on !preserves3D layers instead of doing
          the flattening manually.
        - Remove mentions of perspective as this is handled by WebCore
          through the children transform.
        - Apply the inverse target transform on the replica only where it
          is needed in paintReflection since it uses the full transform in paintSelf.
        - Merge the base and local transforms.

        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::setTransform):
        (WebCore::TextureMapperNode::computeTransformsSelf):
        (WebCore::TextureMapperNode::computeAllTransforms):
        (WebCore::TextureMapperNode::paintSelf):
        (WebCore::TextureMapperNode::paintReflection):
        * platform/graphics/texmap/TextureMapperNode.h:

2012-01-12  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        TextureMapper: Fix the fillsForward transform adjustment in syncAnimations.
        https://bugs.webkit.org/show_bug.cgi?id=76184

        Reviewed by Noam Rosenthal.

        Also make the intention clearer by using setTransform and setOpacity.

        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::syncAnimations):

2012-01-13  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed inspector scripts navigator style fixes.

        * inspector/front-end/scriptsPanel.css:
        (#scripts-editor-container-tabbed-pane .tabbed-pane-header-tab):

2012-01-13  Jochen Eisinger  <jochen@chromium.org>

        Once we prepared a script element for execution, execute it, even if the script element was meanwhile removed from the dom tree.
        https://bugs.webkit.org/show_bug.cgi?id=76083

        Reviewed by Adam Barth.

        This bug was caught by the following IE Test Center test:

        http://samples.msdn.microsoft.com/ietestcenter/HTML5/show_async_test.htm?11_RemovingAsyncScript

        Test: http/tests/misc/async-script-removed.html
              http/tests/misc/async-script.html

        * dom/ScriptElement.cpp:
        * dom/ScriptElement.h:
        * dom/ScriptRunner.cpp:
        (WebCore::ScriptRunner::queueScriptForExecution):
        * html/HTMLScriptElement.cpp:
        * html/HTMLScriptElement.h:
        * svg/SVGScriptElement.cpp:
        * svg/SVGScriptElement.h:

2012-01-12  Nikolas Zimmermann  <nzimmermann@rim.com>

        Large SVG text layout performance regression in r81168
        https://bugs.webkit.org/show_bug.cgi?id=65711

        Reviewed by Antti Koivisto.

        Finish SVGTextMetricsBuilder introduction, tested in my local svg-text-performance branch.
        SVGTextMetricsBuilder has two public methods:
        a) SVGTextMetricsBuilder::measureTextRenderer(RenderSVGInlineText*)
           It will be used exclusively for non-initial, incremental layout changes. Once the inital
           text layout ran, any mutation of eg. a child text node of a <tspan>, will only trigger
           a rebuild of the layout attributes associated with the passed in renderer.

        b) SVGTextMetricsBuilder::buildMetricsAndLayoutAttributes(RenderSVGText*, RenderSVGInlineText* stopAtLeaf, SVGCharacterDataMap& allCharactersMap)
           stopAtLeaf=0:
           This carries out the initial layout phase. It measures all characters of the whole <text> subtree, and stores the SVGTextMetrics for each character
           in the SVGTextLayoutAttributes, stored in the RenderSVGInlineText object. It requires a SVGCharacterDataMap allCharactersMap as input argument,
           which contains a HashMap<unsigned, {float x, y, dx, dy, rotate}>, which maps each character position to a set of x/y/dx/dy/rotate values.
           The SVGCharacterDataMap living in SVGTextLayoutAttributes will be filled, from the global "allCharactersMap", so that each RenderSVGInlineText only
           stores the positioning information for its children, if any.

           Note: SVGTextMetricsBuilder is not yet deployed, so this talks about the design, once everything is landed.

           stopAtLeaf!=0:
           This is never used for the initial layout phase. If the initial layout is done, and eg. a <tspan> is added to the <text> subtree, we no longer
           need to rebuild the metrics map & layout attributes for the whole tree, but only for the desired <tspan>, and its previous/next sibling, if present
           (which may be affected by the inclusion of another node inbetween them).

        SVGTextMetricsBuilder is now finished, and will be used in the next patch chunk.
        Doesn't affect any tests yet.

        * rendering/svg/SVGTextLayoutAttributes.h:
        (WebCore::SVGTextLayoutAttributes::clear):
        (WebCore::SVGCharacterData::SVGCharacterData):
        * rendering/svg/SVGTextMetricsBuilder.cpp:
        (WebCore::SVGTextMetricsBuilder::SVGTextMetricsBuilder):
        (WebCore::SVGTextMetricsBuilder::currentCharacterStartsSurrogatePair):
        (WebCore::SVGTextMetricsBuilder::advance):
        (WebCore::SVGTextMetricsBuilder::advanceSimpleText):
        (WebCore::SVGTextMetricsBuilder::advanceComplexText):
        (WebCore::SVGTextMetricsBuilder::initializeMeasurementWithTextRenderer):
        (WebCore::MeasureTextData::MeasureTextData):
        (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
        (WebCore::SVGTextMetricsBuilder::walkTree):
        (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
        (WebCore::SVGTextMetricsBuilder::buildMetricsAndLayoutAttributes):
        * rendering/svg/SVGTextMetricsBuilder.h:

2012-01-13  Pavel Feldman  <pfeldman@google.com>

        Not reviewed: Fixing Win builders.

        * inspector/DOMEditor.cpp:
        (WebCore::DOMEditor::diff):

2012-01-13  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        [EFL] Add 'Copy Image Address' to context menu.
        https://bugs.webkit.org/show_bug.cgi?id=76153

        Reviewed by Andreas Kling.

        Enables 'Copy Image Address' option to context menu in WebKit-EFL as it is enabled in GTK and QT ports.

        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::contextMenuItemSelected):
        (WebCore::ContextMenuController::populate):
        (WebCore::ContextMenuController::checkOrEnableIfNeeded):
        * platform/ContextMenuItem.h:
        * platform/LocalizationStrategy.h:
        * platform/LocalizedStrings.cpp:
        * platform/LocalizedStrings.h:
        * platform/efl/LocalizedStringsEfl.cpp:
        (WebCore::contextMenuItemTagCopyImageUrlToClipboard):

2012-01-13  Pavel Feldman  <pfeldman@google.com>

        Not reviewed: 32bit build fix.

        * inspector/DOMEditor.cpp:
        * inspector/DOMEditor.h:

2012-01-13  Mario Sanchez Prada  <msanchez@igalia.com>

        Unreviewed, rolling out r104905.
        http://trac.webkit.org/changeset/104905
        https://bugs.webkit.org/show_bug.cgi?id=76267

        This patch broke tests in the GTK 64bit Debug bot (Requested
        by msanchez on #webkit).

        * editing/gtk/FrameSelectionGtk.cpp:
        (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):

2012-01-13  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: make HTML editing preserve node identity when node nesting level changes.
        https://bugs.webkit.org/show_bug.cgi?id=76183

        Reviewed by Yury Semikhatsky.

        Test: inspector/elements/set-outer-html-2.html

        * inspector/DOMEditor.cpp:
        (WebCore::DOMEditor::patchDocument):
        (WebCore::DOMEditor::patchNode):
        (WebCore::DOMEditor::innerPatchHTMLElement):
        (WebCore::DOMEditor::innerPatchNode):
        (WebCore::DOMEditor::diff):
        (WebCore::DOMEditor::innerPatchChildren):
        (WebCore::DOMEditor::createDigest):
        (WebCore::DOMEditor::insertBefore):
        (WebCore::DOMEditor::removeChild):
        (WebCore::DOMEditor::markNodeAsUsed):
        (WebCore::DOMEditor::dumpMap):
        * inspector/DOMEditor.h:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::setOuterHTML):

2012-01-13  Shinya Kawanaka  <shinyak@google.com>

        ShadowContentElement should be able to use query.
        https://bugs.webkit.org/show_bug.cgi?id=75302

        Reviewed by Hajime Morita.

        This patch introduces a selector to query elements in ShadowContentElement.
        This can be used instead of ShadowContentElement::shouldInclude in more sophisticated ways.

        Tests: fast/dom/shadow/shadow-contents-select-expected.html
               fast/dom/shadow/shadow-contents-select.html

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DOMAllInOne.cpp:
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorDataList::SelectorDataList):
          Extracted from SelectorQueryto share codes with ShadowContentSelectorQuery.
        (WebCore::SelectorDataList::initialize):
        (WebCore::SelectorDataList::matches):
        (WebCore::SelectorDataList::queryAll):
        (WebCore::SelectorDataList::queryFirst):
        (WebCore::SelectorDataList::canUseIdLookup):
        (WebCore::SelectorDataList::execute):
        (WebCore::SelectorQuery::SelectorQuery):
        (WebCore::SelectorQuery::queryAll):
        (WebCore::SelectorQuery::queryFirst):
        * dom/SelectorQuery.h:
        (WebCore::SelectorDataList::size):
        * dom/ShadowContentElement.cpp:
        (WebCore::ShadowContentElement::select):
        (WebCore::ShadowContentElement::setSelect):
        * dom/ShadowContentElement.h:
        * dom/ShadowContentSelectorQuery.cpp: Added.
        (WebCore::ShadowContentSelectorQuery::ShadowContentSelectorQuery):
        (WebCore::ShadowContentSelectorQuery::matches):
          Returns true if Node is matched by the query.
        * dom/ShadowContentSelectorQuery.h: Copied from Source/WebCore/dom/ShadowContentElement.h.
        * dom/ShadowInclusionSelector.cpp:
        (WebCore::ShadowInclusionSelector::select):
        * dom/ShadowInclusionSelector.h:
        * html/HTMLAttributeNames.in:
        * html/HTMLDetailsElement.cpp:
        (WebCore::summaryQuerySelector):
        (WebCore::DetailsContentElement::DetailsContentElement): Re-implemented using query.
        (WebCore::DetailsSummaryElement::DetailsSummaryElement): ditto.

2012-01-13  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Detailed heap snapshot. _calculateFlags is too slow on a large heap snapshot.
        https://bugs.webkit.org/show_bug.cgi?id=76252

        _calculateFlags speed is about 10k edges per second.
        It requires 150sec for the snapshot with 1.5m edges.
        The root of problem is var node = list.shift();
        shift() is not effective in term of memory and cpu.
        In our case it can be replaced with pop().
        Now the function works 40 times faster.

        Drive by change: if statement was reformatted a bit for better readability.

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshot.prototype._calculateFlags):

2012-01-13  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Chromium] JavaScriptOutlineDialog fails to open
        https://bugs.webkit.org/show_bug.cgi?id=76259

        Reviewed by Yury Semikhatsky.

        * WebCore.gypi:

2012-01-13  Kentaro Hara  <haraken@chromium.org>

        text-decorations should not be propagated to floating, absolutely or fixed
        positioned decendants
        https://bugs.webkit.org/show_bug.cgi?id=18611

        Reviewed by Darin Adler.

        Previously text-decorations were propagated to all child elements,
        but they should not be propagated to out-of-flow descendants,
        i.e. floating, absolutely or fixed positioned elements.

        The spec says "text decorations are not propagated to any out-of-flow descendants":
        http://www.w3.org/TR/2011/WD-css3-text-20110901/#decoration

        Test: fast/css/text-decoration-in-descendants.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::getTextDecorationColors):

2012-01-13  Kent Tamura  <tkent@chromium.org>

        REGRESSION (r104668): Crash in HTMLFormElement destructor if the
        document contains radio groups with the identical name.
        https://bugs.webkit.org/show_bug.cgi?id=76206

        Reviewed by Darin Adler.

        Test: fast/forms/radio/radio-group-document-destruction.html

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::~HTMLInputElement):
        setForm(0) may register this to a document-level radio button group.
        We need to unregister this from the group because
        Document::checkedRadioButtons() is still accessible from other objects.

2012-01-13  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] ATK text-caret-moved and text-selection-changed events not being emitted
        https://bugs.webkit.org/show_bug.cgi?id=76069

        Reviewed by Martin Robinson.

        Fix bug introduced with patch for Bug 72830.

        * editing/gtk/FrameSelectionGtk.cpp:
        (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
        Pass the right accessibility object associated with the current
        selection to objectFocusedAndCaretOffsetUnignored.

2012-01-13  Alexandru Chiculita  <achicu@adobe.com>

        Refactor RenderLayerBacking::paintIntoLayer and RenderLayer::paintLayer()/paintLayerContents() to avoid duplicate code
        https://bugs.webkit.org/show_bug.cgi?id=75983

        Reviewed by Simon Fraser.

        No new tests, just merging two duplicate methods.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayer):
            This method is used only in non-composited mode, so I've moved the check for composited mode much earlier.

        (WebCore::RenderLayer::paintLayerContentsAndReflection):
            Also used just in non-composited mode, it will draw the reflection and then just call paintLayerContents.

        (WebCore::RenderLayer::paintLayerContents):
            Old method, that is now used by both composited and non-composited mode. I've added 3 more flags used to render the
            Graphics layers: Background, Foreground and Mask.

        * rendering/RenderLayer.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::paintIntoLayer):
            Removed all the code and delegated the work to RenderLayer::paintLayerContents.

2012-01-12  Gavin Barraclough  <barraclough@apple.com>

        Clean up putDirect (part 2)
        https://bugs.webkit.org/show_bug.cgi?id=76232

        Reviewed by Sam Weinig.

        Rename putWithAttributes to putDirectVirtual.

        * bindings/js/JSDOMWindowShell.cpp:
        (WebCore::JSDOMWindowShell::putDirectVirtual):
        * bindings/js/JSDOMWindowShell.h:

2012-01-12  MORITA Hajime  <morrita@google.com>

        [Chromium] JSExportMacros.h should be visible.
        https://bugs.webkit.org/show_bug.cgi?id=76147

        Reviewed by Tony Chang.

        No new tests. No behavior change.

        * config.h:

2012-01-12  ChangSeok Oh  <shivamidow@gmail.com>

        Split GraphicsContext3DOpenGL into several files
        https://bugs.webkit.org/show_bug.cgi?id=75462

        Reviewed by Kenneth Russell.

        Split GraphicsContext3DOpenGL.cpp into three files, GraphicsContext3DOpenGLCommon.cpp,
        GraphicsContext3DOpenGL.cpp & GraphicsContext3DOpenGLES.cpp so that makes gles support possible
        for WebGL etc. Most of common APIs between gl and gles are in GraphicsContext3DOpenGLCommon.cpp.
        The other gl and gles specific APIs are placed apart in GraphicsContext3DOpenGL.cpp &
        GraphicsContext3DOpenGLES.cpp

        No new tests required.

        * GNUmakefile.list.am: Added GraphicsContext3DOpenGLCommon.cpp
        * Target.pri: Added GraphicsContext3DOpenGLCommon.cpp
        * WebCore.gypi: Added GraphicsContext3DOpenGLCommon.cpp
        * WebCore.xcodeproj/project.pbxproj: Added GraphicsContext3DOpenGLCommon.cpp
        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
        (WebCore::GraphicsContext3D::readPixels):
        (WebCore::GraphicsContext3D::renderbufferStorage):
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: Copied from Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGL.cpp.
        (WebCore::GraphicsContext3D::validateAttributes):
        (WebCore::GraphicsContext3D::isResourceSafe):
        (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
        (WebCore::GraphicsContext3D::paintCompositedResultsToCanvas):
        (WebCore::GraphicsContext3D::paintRenderingResultsToImageData):
        (WebCore::GraphicsContext3D::getInternalFramebufferSize):
        (WebCore::GraphicsContext3D::activeTexture):
        (WebCore::GraphicsContext3D::attachShader):
        (WebCore::GraphicsContext3D::bindAttribLocation):
        (WebCore::GraphicsContext3D::bindBuffer):
        (WebCore::GraphicsContext3D::bindRenderbuffer):
        (WebCore::GraphicsContext3D::bindTexture):
        (WebCore::GraphicsContext3D::blendColor):
        (WebCore::GraphicsContext3D::blendEquation):
        (WebCore::GraphicsContext3D::blendEquationSeparate):
        (WebCore::GraphicsContext3D::blendFunc):
        (WebCore::GraphicsContext3D::blendFuncSeparate):
        (WebCore::GraphicsContext3D::bufferData):
        (WebCore::GraphicsContext3D::bufferSubData):
        (WebCore::GraphicsContext3D::checkFramebufferStatus):
        (WebCore::GraphicsContext3D::clearColor):
        (WebCore::GraphicsContext3D::clear):
        (WebCore::GraphicsContext3D::clearDepth):
        (WebCore::GraphicsContext3D::clearStencil):
        (WebCore::GraphicsContext3D::colorMask):
        (WebCore::GraphicsContext3D::compileShader):
        (WebCore::GraphicsContext3D::cullFace):
        (WebCore::GraphicsContext3D::depthFunc):
        (WebCore::GraphicsContext3D::depthMask):
        (WebCore::GraphicsContext3D::depthRange):
        (WebCore::GraphicsContext3D::detachShader):
        (WebCore::GraphicsContext3D::disable):
        (WebCore::GraphicsContext3D::disableVertexAttribArray):
        (WebCore::GraphicsContext3D::drawArrays):
        (WebCore::GraphicsContext3D::drawElements):
        (WebCore::GraphicsContext3D::enable):
        (WebCore::GraphicsContext3D::enableVertexAttribArray):
        (WebCore::GraphicsContext3D::finish):
        (WebCore::GraphicsContext3D::flush):
        (WebCore::GraphicsContext3D::framebufferRenderbuffer):
        (WebCore::GraphicsContext3D::framebufferTexture2D):
        (WebCore::GraphicsContext3D::frontFace):
        (WebCore::GraphicsContext3D::generateMipmap):
        (WebCore::GraphicsContext3D::getActiveAttrib):
        (WebCore::GraphicsContext3D::getAttachedShaders):
        (WebCore::GraphicsContext3D::getAttribLocation):
        (WebCore::GraphicsContext3D::getContextAttributes):
        (WebCore::GraphicsContext3D::getError):
        (WebCore::GraphicsContext3D::getString):
        (WebCore::GraphicsContext3D::hint):
        (WebCore::GraphicsContext3D::isBuffer):
        (WebCore::GraphicsContext3D::isEnabled):
        (WebCore::GraphicsContext3D::isFramebuffer):
        (WebCore::GraphicsContext3D::isProgram):
        (WebCore::GraphicsContext3D::isRenderbuffer):
        (WebCore::GraphicsContext3D::isShader):
        (WebCore::GraphicsContext3D::isTexture):
        (WebCore::GraphicsContext3D::lineWidth):
        (WebCore::GraphicsContext3D::linkProgram):
        (WebCore::GraphicsContext3D::pixelStorei):
        (WebCore::GraphicsContext3D::polygonOffset):
        (WebCore::GraphicsContext3D::releaseShaderCompiler):
        (WebCore::GraphicsContext3D::sampleCoverage):
        (WebCore::GraphicsContext3D::scissor):
        (WebCore::GraphicsContext3D::shaderSource):
        (WebCore::GraphicsContext3D::stencilFunc):
        (WebCore::GraphicsContext3D::stencilFuncSeparate):
        (WebCore::GraphicsContext3D::stencilMask):
        (WebCore::GraphicsContext3D::stencilMaskSeparate):
        (WebCore::GraphicsContext3D::stencilOp):
        (WebCore::GraphicsContext3D::stencilOpSeparate):
        (WebCore::GraphicsContext3D::texParameterf):
        (WebCore::GraphicsContext3D::texParameteri):
        (WebCore::GraphicsContext3D::uniform1f):
        (WebCore::GraphicsContext3D::uniform1fv):
        (WebCore::GraphicsContext3D::uniform2f):
        (WebCore::GraphicsContext3D::uniform2fv):
        (WebCore::GraphicsContext3D::uniform3f):
        (WebCore::GraphicsContext3D::uniform3fv):
        (WebCore::GraphicsContext3D::uniform4f):
        (WebCore::GraphicsContext3D::uniform4fv):
        (WebCore::GraphicsContext3D::uniform1i):
        (WebCore::GraphicsContext3D::uniform1iv):
        (WebCore::GraphicsContext3D::uniform2i):
        (WebCore::GraphicsContext3D::uniform2iv):
        (WebCore::GraphicsContext3D::uniform3i):
        (WebCore::GraphicsContext3D::uniform3iv):
        (WebCore::GraphicsContext3D::uniform4i):
        (WebCore::GraphicsContext3D::uniform4iv):
        (WebCore::GraphicsContext3D::uniformMatrix2fv):
        (WebCore::GraphicsContext3D::uniformMatrix3fv):
        (WebCore::GraphicsContext3D::uniformMatrix4fv):
        (WebCore::GraphicsContext3D::useProgram):
        (WebCore::GraphicsContext3D::validateProgram):
        (WebCore::GraphicsContext3D::vertexAttrib1f):
        (WebCore::GraphicsContext3D::vertexAttrib1fv):
        (WebCore::GraphicsContext3D::vertexAttrib2f):
        (WebCore::GraphicsContext3D::vertexAttrib2fv):
        (WebCore::GraphicsContext3D::vertexAttrib3f):
        (WebCore::GraphicsContext3D::vertexAttrib3fv):
        (WebCore::GraphicsContext3D::vertexAttrib4f):
        (WebCore::GraphicsContext3D::vertexAttrib4fv):
        (WebCore::GraphicsContext3D::vertexAttribPointer):
        (WebCore::GraphicsContext3D::viewport):
        (WebCore::GraphicsContext3D::getBooleanv):
        (WebCore::GraphicsContext3D::getBufferParameteriv):
        (WebCore::GraphicsContext3D::getFloatv):
        (WebCore::GraphicsContext3D::getFramebufferAttachmentParameteriv):
        (WebCore::GraphicsContext3D::getProgramiv):
        (WebCore::GraphicsContext3D::getProgramInfoLog):
        (WebCore::GraphicsContext3D::getRenderbufferParameteriv):
        (WebCore::GraphicsContext3D::getShaderiv):
        (WebCore::GraphicsContext3D::getShaderInfoLog):
        (WebCore::GraphicsContext3D::getShaderSource):
        (WebCore::GraphicsContext3D::getTexParameterfv):
        (WebCore::GraphicsContext3D::getTexParameteriv):
        (WebCore::GraphicsContext3D::getUniformfv):
        (WebCore::GraphicsContext3D::getUniformiv):
        (WebCore::GraphicsContext3D::getUniformLocation):
        (WebCore::GraphicsContext3D::getVertexAttribfv):
        (WebCore::GraphicsContext3D::getVertexAttribiv):
        (WebCore::GraphicsContext3D::getVertexAttribOffset):
        (WebCore::GraphicsContext3D::texSubImage2D):
        (WebCore::GraphicsContext3D::compressedTexImage2D):
        (WebCore::GraphicsContext3D::compressedTexSubImage2D):
        (WebCore::GraphicsContext3D::createBuffer):
        (WebCore::GraphicsContext3D::createFramebuffer):
        (WebCore::GraphicsContext3D::createProgram):
        (WebCore::GraphicsContext3D::createRenderbuffer):
        (WebCore::GraphicsContext3D::createShader):
        (WebCore::GraphicsContext3D::createTexture):
        (WebCore::GraphicsContext3D::deleteBuffer):
        (WebCore::GraphicsContext3D::deleteFramebuffer):
        (WebCore::GraphicsContext3D::deleteProgram):
        (WebCore::GraphicsContext3D::deleteRenderbuffer):
        (WebCore::GraphicsContext3D::deleteShader):
        (WebCore::GraphicsContext3D::deleteTexture):
        (WebCore::GraphicsContext3D::synthesizeGLError):
        (WebCore::GraphicsContext3D::markContextChanged):
        (WebCore::GraphicsContext3D::markLayerComposited):
        (WebCore::GraphicsContext3D::layerComposited):
        (WebCore::GraphicsContext3D::getExtensions):
        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp: Added.
        (WebCore::GraphicsContext3D::readRenderingResults):
        (WebCore::GraphicsContext3D::reshape):
        (WebCore::GraphicsContext3D::prepareTexture):
        (WebCore::GraphicsContext3D::bindFramebuffer):
        (WebCore::GraphicsContext3D::copyTexImage2D):
        (WebCore::GraphicsContext3D::copyTexSubImage2D):
        (WebCore::GraphicsContext3D::getActiveUniform):
        (WebCore::GraphicsContext3D::readPixels):
        (WebCore::GraphicsContext3D::renderbufferStorage):
        (WebCore::GraphicsContext3D::getIntegerv):
        (WebCore::GraphicsContext3D::texImage2D):

2012-01-12  Wei James  <james.wei@intel.com>

        Add vsma in VectorMath to handle vector scale multiply and add and use it in AudioBus
        https://bugs.webkit.org/show_bug.cgi?id=75835

        When summing a audio bus, the source is multiplied with the scale and
        then summed into the destination bus. Add this function to fulfill it.

        Reviewed by Kenneth Russell.

        * platform/audio/AudioBus.cpp:
        * platform/audio/VectorMath.cpp:
        (WebCore::VectorMath::vsma):
        * platform/audio/VectorMath.h:

2012-01-12  James Simonsen  <simonjam@chromium.org>

        Web Inspector: [Chomium] Resources loaded with 304 status code have receiving time of 15000 days in network panel.
        https://bugs.webkit.org/show_bug.cgi?id=76176

        Reviewed by Nate Chapin.

        No new tests. Can't trigger this with inspector tests. Will add one when the Resource Timing API is in.

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didReceiveResponse): Use monotonic time.

2012-01-12  Alexey Proskuryakov  <ap@apple.com>

        NSURL to KURL conversion shouldn't turn raw paths into file URLs
        https://bugs.webkit.org/show_bug.cgi?id=76234

        Reviewed by Darin Adler.

        * platform/mac/KURLMac.mm: (WebCore::KURL::KURL): Removed this code.

2012-01-12  Anders Carlsson  <andersca@apple.com>

        Create a GraphicsLayer for the overhang areas if threaded scrolling is enabled
        https://bugs.webkit.org/show_bug.cgi?id=76220

        Reviewed by Simon Fraser.

        * page/FrameView.cpp:
        Remove PLATFORM(CHROMIUM) #ifdefs.

        * page/FrameView.h:
        Ditto.

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::wheelEvent):
        Ditto.

        * platform/ScrollableArea.h:
        Ditto.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
        Ditto.

        (WebCore::RenderLayerCompositor::requiresOverhangAreasLayer):
        Make this return true if we have a scrolling coordinator.

        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
        Remove PLATFORM(CHROMIUM) #ifdefs. Fix a bug the overhang layer was being added above the clip layer.

        (WebCore::RenderLayerCompositor::destroyRootLayer):
        Remove PLATFORM(CHROMIUM) #ifdefs.
        
        * rendering/RenderLayerCompositor.h:
        Ditto.

2012-01-12  Kenichi Ishibashi  <bashi@chromium.org>

        Move SimpleFontDataSkia.cpp to Source/WebCore/platform/graphics/skia
        https://bugs.webkit.org/show_bug.cgi?id=76155

        Reviewed by Tony Chang.

        No new tests. No behavior change.

        * PlatformBlackBerry.cmake:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * platform/graphics/skia/SimpleFontDataSkia.cpp: Renamed from Source/WebCore/platform/graphics/harfbuzz/SimpleFontDataSkia.cpp.
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::platformCharWidthInit):
        (WebCore::SimpleFontData::platformDestroy):
        (WebCore::SimpleFontData::createScaledFontData):
        (WebCore::SimpleFontData::smallCapsFontData):
        (WebCore::SimpleFontData::emphasisMarkFontData):
        (WebCore::SimpleFontData::containsCharacters):
        (WebCore::SimpleFontData::determinePitch):
        (WebCore::SimpleFontData::platformBoundsForGlyph):
        (WebCore::SimpleFontData::platformWidthForGlyph):

2012-01-12  Benjamin Poulain  <bpoulain@apple.com>

        A Frame with frame flattening can be stuck in a state in which performPostLayoutTasks() is never executed
        https://bugs.webkit.org/show_bug.cgi?id=76154

        Reviewed by Beth Dakin.

        In a frame with inSubframeLayoutWithFrameFlattening == true, if
        -m_hasPendingPostLayoutTasks == true
        -FrameView::unscheduleRelayout() is executed
        -->the timer m_postLayoutTasksTimer is stopped
        -->no timer is scheduled due to m_hasPendingPostLayoutTasks == true && inSubframeLayoutWithFrameFlattening == true

        This patch revert the handling of the postLayoutTasks to its state prior to r66552.

        The timer itself is used as the only state to know if post layout tasks are scheduled.

        For the case without frame flattening:
        -Prior to this patch, when FrameView::unscheduleRelayout() was executed, the postLayoutTasksTimer was killed,
        and the post layout tasks would be executed during the next layout().
        -After this patch, the post layout tasks stay scheduled and are executed on the next event loop if layout()
        was not invoked before.

        * page/FrameView.cpp:
        (WebCore::FrameView::FrameView):
        (WebCore::FrameView::~FrameView):
        (WebCore::FrameView::reset):
        (WebCore::FrameView::layout):
        (WebCore::FrameView::unscheduleRelayout):
        (WebCore::FrameView::flushAnyPendingPostLayoutTasks):
        (WebCore::FrameView::performPostLayoutTasks):
        * page/FrameView.h:

2012-01-12  Yongjun Zhang  <yongjun_zhang@apple.com>

        Reviewed by Benjamin Poulain.

        https://bugs.webkit.org/show_bug.cgi?id=75991
        Make the code in MemoryPressureHandler::respondToMemoryPressure shareable.

        Move memory pressure handling code inside a new function (releaseMemory) so that
        we could shared it between mac and iOS.

        * Configurations/WebCore.xcconfig: add MemoryPressureHandlerMac.mm into iOS build.
        * platform/MemoryPressureHandler.h:
        * platform/mac/MemoryPressureHandlerMac.mm:
        (WebCore::MemoryPressureHandler::respondToMemoryPressure):
        (WebCore::MemoryPressureHandler::releaseMemory):

2012-01-12  Eric Seidel  <eric@webkit.org>

        Refactor DOMImplementation.hasFeature logic into helper functions.
        https://bugs.webkit.org/show_bug.cgi?id=76212

        Reviewed by Adam Barth.

        This patch should not have any behavior change.  The goal was
        to move our feature detection towards a more modular architecture
        (as that seems to be the current trend in webkit).  In a future
        patch we could easily move the SVG feature detection into the
        SVG directory, for example.  I've also added a list of all the
        Event3 features (currently commented out) which makes it obvious
        how many we're missing.

        * dom/DOMImplementation.cpp:
        (WebCore::isSVG10Feature):
        (WebCore::isSVG11Feature):
        (WebCore::isEvents2Feature):
        (WebCore::isEvents3Feature):
        (WebCore::DOMImplementation::hasFeature):

2012-01-12  Adam Barth  <abarth@webkit.org>

        NodeIterator loses track of the reference node when the reference node is removed from the document (IETC ni_removeReferenceNode)
        https://bugs.webkit.org/show_bug.cgi?id=76146

        Reviewed by Eric Seidel.

        In the case where we're removing the reference node we can end up with
        the wrong reference node.  This patch makes sure we traverse outside of
        the removed node's subtree.

        This bug was caught by the following IE Test Center test:

        http://samples.msdn.microsoft.com/ietestcenter/domtraversal/showdomtraversaltest.htm?ni_removeReferenceNode

        Our new behavior also match Firefox.

        I experimented a bit with adding ASSERT_NOT_REACHED to various branches
        in NodeIterator::updateForNodeRemoval, and it seems our test coverage
        for this function is relatively poor.  In the future, we should
        consider adding more tests for this complicated function.

        Test: fast/dom/node-iterator-reference-node-removed.html

        * dom/NodeIterator.cpp:
        (WebCore::NodeIterator::updateForNodeRemoval):

2012-01-12  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Throw exception if IDBCursor.continue() called with key equal to current
        https://bugs.webkit.org/show_bug.cgi?id=76100

        The fix for https://bugs.webkit.org/show_bug.cgi?id=74213 missed the "or equal" clause
        in the spec.

        Reviewed by Tony Chang.

        Test: storage/indexeddb/cursor-continue.html

        * storage/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::continueFunction):

2012-01-12  Jon Lee  <jonlee@apple.com>

        Setting value on a select element to a non existing option value should clear selection
        https://bugs.webkit.org/show_bug.cgi?id=67233
        <rdar://problem/10057159>

        Reviewed by Darin Adler.

        Test: fast/forms/select/setting-to-invalid-value.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::setValue): Clear the selection in the cases where we cannot
        find an option with the specified value. The spec states to clear the selectedness of all
        options first. To avoid calling setSelectedIndex() multiple times, we clear the selected
        option(s) only when don't find the appropriate option.

        Also, correct the sentence style of a comment.

2012-01-12  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix after r104858.

        NSDataReadingMappedIfSafe is not defined on <= 10.6.  Use NSDataReadingMapped on that platform instead.

        * platform/audio/mac/AudioBusMac.mm:
        (WebCore::AudioBus::loadPlatformResource):

2012-01-12  Dana Jansens  <danakj@chromium.org>

        [skia] Track a simple opaque area when painting via PlatformContextSkia and save in LayerTextureUpdater
        https://bugs.webkit.org/show_bug.cgi?id=74352

        Reviewed by Stephen White.

        New unit tests in PlatformContextSkiaTest.cpp

        * WebCore.gypi:
        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::GraphicsContext::clearRect):
        (WebCore::GraphicsContext::drawConvexPolygon):
        (WebCore::GraphicsContext::drawEllipse):
        (WebCore::drawOuterPath):
        (WebCore::drawInnerPath):
        (WebCore::GraphicsContext::drawFocusRing):
        (WebCore::GraphicsContext::drawLine):
        (WebCore::GraphicsContext::drawLineForTextChecking):
        (WebCore::GraphicsContext::drawLineForText):
        (WebCore::GraphicsContext::fillPath):
        (WebCore::GraphicsContext::fillRect):
        (WebCore::GraphicsContext::fillRoundedRect):
        (WebCore::GraphicsContext::strokeArc):
        (WebCore::GraphicsContext::strokePath):
        (WebCore::GraphicsContext::strokeRect):
        * platform/graphics/skia/ImageSkia.cpp:
        (WebCore::paintSkBitmap):
        * platform/graphics/skia/OpaqueRegionSkia.cpp: Added.
        (WebCore::OpaqueRegionSkia::OpaqueRegionSkia):
        (WebCore::OpaqueRegionSkia::~OpaqueRegionSkia):
        (WebCore::OpaqueRegionSkia::asRect):
        (WebCore::xfermodeIsOpaque):
        (WebCore::xfermodePreservesOpaque):
        (WebCore::paintIsOpaque):
        (WebCore::OpaqueRegionSkia::didDrawRect):
        (WebCore::OpaqueRegionSkia::didDrawPath):
        (WebCore::OpaqueRegionSkia::didDrawPoints):
        (WebCore::OpaqueRegionSkia::didDrawBounded):
        (WebCore::OpaqueRegionSkia::didDraw):
        (WebCore::OpaqueRegionSkia::didDrawUnbounded):
        (WebCore::OpaqueRegionSkia::markRectAsOpaque):
        (WebCore::OpaqueRegionSkia::markRectAsNonOpaque):
        * platform/graphics/skia/OpaqueRegionSkia.h: Added.
        * platform/graphics/skia/PlatformContextSkia.cpp:
        (WebCore::PlatformContextSkia::PlatformContextSkia):
        (WebCore::PlatformContextSkia::clippedToImage):
        (WebCore::PlatformContextSkia::drawRect):
        (WebCore::PlatformContextSkia::paintSkPaint):
        (WebCore::PlatformContextSkia::didDrawRect):
        (WebCore::PlatformContextSkia::didDrawPath):
        (WebCore::PlatformContextSkia::didDrawPoints):
        (WebCore::PlatformContextSkia::didDrawBounded):
        * platform/graphics/skia/PlatformContextSkia.h:
        (WebCore::PlatformContextSkia::setTrackOpaqueRegion):
        (WebCore::PlatformContextSkia::opaqueRegion):

2012-01-12  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=76209
        Support expanded scrollbars
        -and corresponding-
        <rdar://problem/10527734>

        Reviewed by Sam Weinig.

        All this really requires is leaving the proper amount of space for the 
        expanded width.
        * platform/mac/NSScrollerImpDetails.h:
        * platform/mac/ScrollbarThemeMac.mm:
        (WebCore::supportsExpandedScrollbars):
        (WebCore::ScrollbarThemeMac::scrollbarThickness):

2011-12-12  Jer Noble  <jer.noble@apple.com>

        WebAudio: Enable USE_CONCATENATED_IMPULSE_RESPONSES on Mac port.
        https://bugs.webkit.org/show_bug.cgi?id=74328

        Reviewed by Eric Carlson.

        No new tests; no net change in functionality.

        * WebCore.xcodeproj/project.pbxproj: Added SincResampler class, Composite.wav to the project.
            Removed IRC_*.wav resources from the project.
        * platform/audio/AudioBus.cpp:
        (WebCore::AudioBus::createBySampleRateConverting): Uncommented this function
        * platform/audio/AudioBus.h:
        * platform/audio/HRTFElevation.cpp:

2011-12-12  Jer Noble  <jer.noble@apple.com>

        WebAudio: AudioBus::loadPlatformResource should mmap file on Mac port.
        https://bugs.webkit.org/show_bug.cgi?id=74326

        Reviewed by Darin Adler.

        No new tests; no net change in functionality.

        Use NSDataReadingMappedIfSafe when reading platform audio file data.

        * platform/audio/mac/AudioBusMac.mm:
        (WebCore::AudioBus::loadPlatformResource):

2011-12-12  Jer Noble  <jer.noble@apple.com>

        WebAudio: Use Logging instead of printf.
        https://bugs.webkit.org/show_bug.cgi?id=74322

        Reviewed by Darin Adler.

        No new tests; no net change in functionality.

        Add a new WebCoreLogLevel for WebAudio, and use this new log level instead of 
        printf statements in webaudio classes.

        * platform/Logging.cpp:
        (WebCore::getChannelFromName):
        * platform/Logging.h:
        * platform/mac/LoggingMac.mm:
        (WebCore::InitializeLoggingChannelsIfNecessary):
        * platform/audio/FFTFrame.cpp:
        (WebCore::FFTFrame::print):
        * webaudio/DefaultAudioDestinationNode.cpp:
        (WebCore::DefaultAudioDestinationNode::initialize):

2012-01-12  Anders Carlsson  <andersca@apple.com>

        Make ScrollElasticityController members private
        https://bugs.webkit.org/show_bug.cgi?id=76208

        Reviewed by Andreas Kling.

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::endScrollGesture):
        Call ScrollElasticityController::endScrollGesture.

        * platform/mac/ScrollElasticityController.h:
        Make members private.

        * platform/mac/ScrollElasticityController.mm:
        (WebCore::ScrollElasticityController::endScrollGesture):
        Call snapRubberBand.

        (WebCore::ScrollElasticityController::snapRubberBandTimerFired):
        Call stopSnapRubberbandTimer.

2012-01-12  Anders Carlsson  <andersca@apple.com>

        Move wheel event handling to ScrollElasticityController::handleWheelEvent
        https://bugs.webkit.org/show_bug.cgi?id=76205

        Reviewed by Andreas Kling.

        Move the code in ScrollAnimatorMac::smoothScrollWithEvent to ScrollElasticityController::handleWheelEvent and
        change ScrollAnimatorMac::handleWheelEvent to just call ScrollElasticityController::handleWheelEvent.
        This means that we'll not set m_haveScrolledSincePageLoad = true anymore (we used to set it in ScrollAnimatorMac::smoothScrollWithEvent),
        but we already set it to true in ScrollAnimatorMac::handleWheelEvent so it already had no effect.

        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::handleWheelEvent):
        * platform/mac/ScrollElasticityController.h:
        * platform/mac/ScrollElasticityController.mm:
        (WebCore::elasticDeltaForReboundDelta):
        (WebCore::scrollWheelMultiplier):
        (WebCore::ScrollElasticityController::handleWheelEvent):

2012-01-12  Simon Fraser  <simon.fraser@apple.com>

        Borders and box masks behave incorrectly with overlapping offsets
        https://bugs.webkit.org/show_bug.cgi?id=76137

        Reviewed by Dave Hyatt.
        
        When border-image-slice sizes add up to more than the height or width
        of the border-image, the middle sections should not be rendered, per spec.
        
        Test: fast/borders/border-image-slice-constrained.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintNinePieceImage):

2012-01-12  Anders Carlsson  <andersca@apple.com>

        Make all calls to pinnedInDirection go through the ScrollElasticityController
        https://bugs.webkit.org/show_bug.cgi?id=76204

        Reviewed by Andreas Kling.

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):

2012-01-12  Stephen White  <senorblanco@chromium.org>

        [chromium] Re-enable Skia feColorMatrix filter implementation.
        https://bugs.webkit.org/show_bug.cgi?id=76186

        This code was landed in http://trac.webkit.org/changeset/104566 and
        partially reverted in http://trac.webkit.org/changeset/104632 due
        to problems with the Windows Shared builder.  Those problems have
        been fixed in r3006, since rolled into Chrome.

        Reviewed by Kenneth Russell.

        Covered by SVG feColorMatrix tests.

        * WebCore.gypi:
        * platform/graphics/filters/FEColorMatrix.h:

2012-01-12  Anders Carlsson  <andersca@apple.com>

        Add allowsHorizontalStretching and allowsVerticalStretching to ScrollElasticityControllerClient
        https://bugs.webkit.org/show_bug.cgi?id=76202

        Reviewed by Andreas Kling.

        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::allowsVerticalStretching):
        (WebCore::ScrollAnimatorMac::allowsHorizontalStretching):
        (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
        * platform/mac/ScrollElasticityController.h:

2012-01-12  Anders Carlsson  <andersca@apple.com>

        Move snapRubberBand to ScrollElasticityController
        https://bugs.webkit.org/show_bug.cgi?id=76200

        Reviewed by Andreas Kling.

        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
        (WebCore::ScrollAnimatorMac::endScrollGesture):
        * platform/mac/ScrollElasticityController.h:
        * platform/mac/ScrollElasticityController.mm:
        (systemUptime):
        (WebCore::ScrollElasticityController::snapRubberBand):

2012-01-12  Antti Koivisto  <antti@apple.com>

        REGRESSION(r104060): Setting user stylesheet may leave CSSStyleSelector with stale rule pointers 
        https://bugs.webkit.org/show_bug.cgi?id=76191

        Reviewed by Andreas Kling.
        
        Setting the user style sheet frees the existing user style sheet data structures. The code
        in Document::updatePageGroupUserSheets then relies on styleSelectorChanged to clear the
        style selector so it is not left with stale pointers. However under certain conditions
        involving pending stylesheets it may bail out quickly without clearing.
        
        Document::styleSelectorChanged has to take care that it never leaves the style selector stale
        even when bailing out early.

        Test: fast/css/user-stylesheet-crash.html

        * dom/Document.cpp:
        (WebCore::Document::styleSelectorChanged):

2012-01-12  Nat Duca  <nduca@chromium.org>

        [chromium] Turn off FrameRateController timesource when it is not needed
        https://bugs.webkit.org/show_bug.cgi?id=76149

        Reviewed by James Robinson.

        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h:
        (WebCore::CCDelayBasedTimeSource::active):
        * platform/graphics/chromium/cc/CCFrameRateController.cpp:
        (WebCore::CCFrameRateController::setActive):
        (WebCore::CCFrameRateController::onTimerTick):
        * platform/graphics/chromium/cc/CCFrameRateController.h:
        * platform/graphics/chromium/cc/CCScheduler.cpp:
        (WebCore::CCScheduler::CCScheduler):
        (WebCore::CCScheduler::setVisible):
        (WebCore::CCScheduler::processScheduledActions):
        * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
        (WebCore::CCSchedulerStateMachine::vsyncCallbackNeeded):
        * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
        * platform/graphics/chromium/cc/CCTimeSource.h:

2012-01-12  Anders Carlsson  <andersca@apple.com>

        Move snapRubberBandTimerFired to ScrollElasticityController
        https://bugs.webkit.org/show_bug.cgi?id=76196

        Reviewed by Andreas Kling.

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
        * platform/mac/ScrollElasticityController.h:
        * platform/mac/ScrollElasticityController.mm:
        (WebCore::elasticDeltaForTimeDelta):
        (WebCore::roundTowardZero):
        (WebCore::roundToDevicePixelTowardZero):
        (WebCore::ScrollElasticityController::snapRubberBandTimerFired):

2012-01-12  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Raise NON_TRANSIENT_ERR when invalid mode specified for transaction
        https://bugs.webkit.org/show_bug.cgi?id=76072

        Spec was updated to detail what should be thrown: http://www.w3.org/Bugs/Public/show_bug.cgi?id=11406

        Reviewed by Tony Chang.

        Tests: storage/indexeddb/transaction-basics.html

        * storage/IDBDatabase.cpp:
        (WebCore::IDBDatabase::transaction):

2012-01-12  Anders Carlsson  <andersca@apple.com>

        Remove the last non-ScrollElasticityController call from ScrollAnimatorMac::snapRubberBandTimerFired
        https://bugs.webkit.org/show_bug.cgi?id=76193

        Reviewed by Andreas Kling.

        Use ScrollElasticityControllerClient::immediateScrollBy for the final scroll before the rubber-band timer stops.

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):

2011-09-26  Jer Noble  <jer.noble@apple.com>

        Emit an error event when a request to enter full-screen is rejected.
        https://bugs.webkit.org/show_bug.cgi?id=62320

        Reviewed by Eric Carlson.

        Tests: fullscreen/full-screen-request-rejected.html
               fullscreen/full-screen-request-removed.html

        When a request to enter full-screen is rejected, emit an event 
        (webkitfullscreenerror) in response.  But emit the event during the next
        trip through the run-loop, like the webkitfullscreenchange event, and so a new
        timer and queue are necessary.

        * dom/Document.cpp:
        (WebCore::Document::requestFullScreenForElement): Emit the error event
            if the request does not pass all our requirements.
        * dom/Document.h: Add new ivars.
        * dom/Document.idl: Add support for setting an onfullscreenerror attribute.
        * dom/Element.h: Ditto.
        * dom/Element.idl: Ditto.
        * dom/EventNames.h: Add the name for the error event.

2012-01-12  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=76133
        ScrollAnimatorMac::mouseEnteredScrollbar() and mouseExitedScrollbar() should 
        only do stuff for legacy scrollbars
        -and corresponding-
        <rdar://problem/10603290>

        Reviewed by Sam Weinig.

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::mouseEnteredScrollbar):
        (WebCore::ScrollAnimatorMac::mouseExitedScrollbar):

2012-01-12  Dan Bernstein  <mitz@apple.com>

        When generating derived sources, use the same compiler that is used to compile WebCore.

        Fixes <http://webkit.org/b/76189>
        [mac] When compiling WebCore with clang, llvm-gcc is used to generate derived sources

        Reviewed by Mark Rowe.

        * DerivedSources.make: Changed to use the CC environment variable instead of hardcoded gcc.
        * WebCore.xcodeproj/project.pbxproj: Set the CC environment variable, if not already set,
        according to TARGET_GCC_VERSION. CC is used by DerivedSources.make and some of the perl
        scripts it invokes.

2012-01-12  Pierre Rossi  <pierre.rossi@gmail.com>

        [Qt] Unreviewed build fix after r104828.

        * platform/qt/RenderThemeQtMobile.cpp:
        (WebCore::StylePainterMobile::findComboButton):

2012-01-12  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r104829.
        http://trac.webkit.org/changeset/104829
        https://bugs.webkit.org/show_bug.cgi?id=76188

        it broke qt-minimal (Requested by loislo1 on #webkit).

        * inspector/CodeGeneratorInspector.py:
        (CodeGenerator):
        (CodeGenerator.generate_type_builder):
        (CodeGenerator.generate_type_builder.AdHocTypeContext):
        (CodeGenerator.generate_type_builder.AdHocTypeContext.get_type_name_fix):
        (CodeGenerator.generate_type_builder.AdHocTypeContext.get_type_name_fix.NameFix):
        (CodeGenerator.generate_type_builder.AdHocTypeContext.get_type_name_fix.NameFix.output_comment):
        (CodeGenerator.generate_type_builder.AdHocTypeContext.call_generate_type_builder):
        (CodeGenerator.register_use):
        (RawTypesBinding):
        (RawTypesBinding.get_code_generator):
        (RawTypesBinding.get_in_c_type_text):
        (RawTypesBinding.get_setter_value_expression_pattern):
        (RawTypesBinding.reduce_to_raw_type):
        (TypeData.__init__):
        * inspector/InspectorValues.h:

2012-01-12  Pavel Podivilov  <podivilov@chromium.org>

        Web Inspector: [JSC] //@ sourceURL is not respected.
        https://bugs.webkit.org/show_bug.cgi?id=65532

        Reviewed by Pavel Feldman.

        Test: inspector/debugger/source-url-comment.html

        * bindings/js/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::dispatchDidParseSource):
        * inspector/ContentSearchUtils.cpp:
        (WebCore::ContentSearchUtils::findMagicComment):
        (WebCore::ContentSearchUtils::findSourceURL):
        (WebCore::ContentSearchUtils::findSourceMapURL):
        * inspector/ContentSearchUtils.h:

2012-01-12  Csaba Osztrogonác  <ossy@webkit.org>

        [Qt] Unreviewed trivial buildfix after r104828.

        * platform/qt/RenderThemeQtMobile.cpp:
        (WebCore::StylePainterMobile::findComboButton):

2012-01-12  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py: generate array types.
        https://bugs.webkit.org/show_bug.cgi?id=75284

        Reviewed by Yury Semikhatsky.

        New classes are generated for ecah array type instance.

        * inspector/CodeGeneratorInspector.py:
        (ArrayBinding):
        (ArrayBinding.get_code_generator):
        (ArrayBinding.get_code_generator.CodeGenerator):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder.AdHocTypeContext):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder.AdHocTypeContext.get_type_name_fix):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder.AdHocTypeContext.get_type_name_fix.NameFix):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder.AdHocTypeContext.get_type_name_fix.NameFix.output_comment):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder.AdHocTypeContext.call_generate_type_builder):
        (ArrayBinding.get_code_generator.CodeGenerator.generate_forward_declaration):
        (ArrayBinding.get_code_generator.CodeGenerator.register_use):
        (ArrayBinding.get_in_c_type_text):
        (ArrayBinding.get_setter_value_expression_pattern):
        (ArrayBinding.reduce_to_raw_type):
        (RawTypeBinding):
        (RawTypeBinding.__init__):
        (RawTypeBinding.get_code_generator):
        (RawTypeBinding.get_in_c_type_text):
        (RawTypeBinding.get_setter_value_expression_pattern):
        (RawTypeBinding.reduce_to_raw_type):
        (TypeData.__init__):
        (TypeData.get_binding):
        * inspector/InspectorValues.h:

2012-01-12  Pierre Rossi  <pierre.rossi@gmail.com>

        [Qt] Avoid string operations in mobile theme's caching mechanism
        https://bugs.webkit.org/show_bug.cgi?id=75010

        The string operations constantly performed in the mobile theme
        to fetch or put controls in the pixmap cache can be pretty expensive.
        The new mechanism harnesses the QPixmapCache::Key API instead.

        Reviewed by Kenneth Rohde Christiansen.

        No new tests, internal refactoring.

        * platform/qt/RenderThemeQtMobile.cpp:
        (WebCore::qHash):
        (WebCore::StylePainterMobile::findCachedControl):
        (WebCore::StylePainterMobile::insertIntoCache):
        (WebCore::StylePainterMobile::findCheckBox):
        (WebCore::StylePainterMobile::drawRadio):
        (WebCore::StylePainterMobile::findRadio):
        (WebCore::StylePainterMobile::drawMultipleComboButton):
        (WebCore::StylePainterMobile::drawSimpleComboButton):
        (WebCore::StylePainterMobile::getButtonImageSize):
        (WebCore::StylePainterMobile::findComboButton):
        (WebCore::StylePainterMobile::findLineEdit):
        (WebCore::StylePainterMobile::findPushButton):
        (WebCore::StylePainterMobile::drawComboBox):
        (WebCore::StylePainterMobile::drawProgress):
        (WebCore::StylePainterMobile::drawSliderThumb):
        (WebCore::RenderThemeQtMobile::paintTextField):
        (WebCore::RenderThemeQtMobile::paintMenuList):
        * platform/qt/RenderThemeQtMobile.h:
        (WebCore::KeyIdentifier::KeyIdentifier):
        (WebCore::KeyIdentifier::operator==):

2012-01-12  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r104805.
        http://trac.webkit.org/changeset/104805
        https://bugs.webkit.org/show_bug.cgi?id=76180

        Breaks apple win compilation. (Requested by vsevik on
        #webkit).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DOMAllInOne.cpp:
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorQuery::SelectorQuery):
        (WebCore::SelectorQuery::queryAll):
        (WebCore::SelectorQuery::queryFirst):
        (WebCore::SelectorQuery::canUseIdLookup):
        (WebCore::SelectorQuery::execute):
        * dom/SelectorQuery.h:
        * dom/ShadowContentElement.cpp:
        (WebCore::ShadowContentElement::create):
        (WebCore::ShadowContentElement::ShadowContentElement):
        (WebCore::ShadowContentElement::shouldInclude):
        * dom/ShadowContentElement.h:
        * dom/ShadowContentSelectorQuery.cpp: Removed.
        * dom/ShadowContentSelectorQuery.h: Removed.
        * dom/ShadowInclusionSelector.cpp:
        (WebCore::ShadowInclusionSelector::select):
        * dom/ShadowInclusionSelector.h:
        * html/HTMLDetailsElement.cpp:
        (WebCore::DetailsContentElement::DetailsContentElement):
        (WebCore::DetailsContentElement::shouldInclude):
        (WebCore::DetailsSummaryElement::DetailsSummaryElement):
        (WebCore::DetailsSummaryElement::shouldInclude):
        * html/HTMLSummaryElement.cpp:
        (WebCore::SummaryContentElement::SummaryContentElement):
        * testing/Internals.cpp:
        (WebCore::Internals::createShadowContentElement):
        * testing/Internals.h:
        * testing/Internals.idl:

2012-01-12  Zoltan Herczeg  <zherczeg@webkit.org>

        Fix turbulence bug when stitch tiles enabled and rendered in parallel
        https://bugs.webkit.org/show_bug.cgi?id=76042

        Reviewed by Nikolas Zimmermann.

        The width / height / wrap members are used by all threads
        in the same time. The patch makes them local for all threads.

        Fixes the layout fails in svg/dynamic-updates/SVGFETurbulence*

        * platform/graphics/filters/FETurbulence.cpp:
        (WebCore::FETurbulence::noise2D):
        (WebCore::Noise::if):
        (WebCore::FETurbulence::calculateTurbulenceValueForPoint):
        (WebCore::FETurbulence::fillRegion):
        * platform/graphics/filters/FETurbulence.h:
        (WebCore::FETurbulence::PaintingData::PaintingData):
        (WebCore::FETurbulence::StitchData::StitchData):

2012-01-12  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: performance: restore 'log 300 messages into console' test.
        https://bugs.webkit.org/show_bug.cgi?id=76170

        It was removed in order of transition from layout tests to perf tests.

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/ConsoleView.js:
        (WebInspector.ConsoleView.prototype._scheduleScrollIntoView.scrollIntoView):
        (WebInspector.ConsoleView.prototype._scheduleScrollIntoView):

2012-01-12  Hans Wennborg  <hans@chromium.org>

        Speech input: Send text to correct element even if focus has changed
        https://bugs.webkit.org/show_bug.cgi?id=76071

        Reviewed by Steve Block.

        Make sure that the text from speech input ends up in the correct
        element even if focus has changed since the user clicked on it.

        Test: fast/speech/change-focus.html

        * html/shadow/TextControlInnerElements.cpp:
        (WebCore::InputFieldSpeechButtonElement::setRecognitionResult):

2012-01-10  Pavel Podivilov  <podivilov@chromium.org>

        Web Inspector: make source urls relative to source map url.
        https://bugs.webkit.org/show_bug.cgi?id=75968

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/CompilerSourceMapping.js:
        (WebInspector.ClosureCompilerSourceMapping):
        (WebInspector.ClosureCompilerSourceMapping.prototype._parseMap):
        (WebInspector.ClosureCompilerSourceMapping.prototype._canonicalizeURL):

2012-01-12  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Fix WebKit build after r104803, by setting ScriptCallStack.h role to private.

        * WebCore.xcodeproj/project.pbxproj:

2012-01-12  Shinya Kawanaka  <shinyak@google.com>

        ShadowContentElement should be able to use query.
        https://bugs.webkit.org/show_bug.cgi?id=75302

        Reviewed by Hajime Morita.

        This patch introduces a selector to query elements in ShadowContentElement.
        This can be used instead of ShadowContentElement::shouldInclude in more sophisticated ways.

        Tests: fast/dom/shadow/shadow-contents-select-expected.html
               fast/dom/shadow/shadow-contents-select.html

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DOMAllInOne.cpp:
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorDataList::SelectorDataList):
          Extracted from SelectorQueryto share codes with ShadowContentSelectorQuery.
        (WebCore::SelectorDataList::initialize):
        (WebCore::SelectorDataList::matches):
        (WebCore::SelectorDataList::queryAll):
        (WebCore::SelectorDataList::queryFirst):
        (WebCore::SelectorDataList::canUseIdLookup):
        (WebCore::SelectorDataList::execute):
        (WebCore::SelectorQuery::SelectorQuery):
        (WebCore::SelectorQuery::queryAll):
        (WebCore::SelectorQuery::queryFirst):
        * dom/SelectorQuery.h:
        (WebCore::SelectorDataList::size):
        * dom/ShadowContentElement.cpp:
        (WebCore::selectAttr):
        (WebCore::ShadowContentElement::create):
        (WebCore::ShadowContentElement::ShadowContentElement):
        (WebCore::ShadowContentElement::select):
        * dom/ShadowContentElement.h:
        * dom/ShadowContentSelectorQuery.cpp: Added.
        (WebCore::ShadowContentSelectorQuery::ShadowContentSelectorQuery):
        (WebCore::ShadowContentSelectorQuery::matches):
          Returns true if Node is matched by the query.
        * dom/ShadowContentSelectorQuery.h: Copied from Source/WebCore/dom/ShadowContentElement.h.
        * dom/ShadowInclusionSelector.cpp:
        (WebCore::ShadowInclusionSelector::select):
        * dom/ShadowInclusionSelector.h:
        * html/HTMLDetailsElement.cpp:
        (WebCore::summaryQuerySelector):
        (WebCore::DetailsContentElement::DetailsContentElement): Re-implemented using query.
        (WebCore::DetailsSummaryElement::DetailsSummaryElement): ditto.
        * html/HTMLSummaryElement.cpp:
        (WebCore::SummaryContentElement::SummaryContentElement):
        * testing/Internals.cpp:
        (WebCore::Internals::createShadowContentElement):
        * testing/Internals.h:
        * testing/Internals.idl:

2012-01-11  Vsevolod Vlasov  <vsevik@chromium.org>

        Make default console messages line numbers consistent.
        https://bugs.webkit.org/show_bug.cgi?id=74075

        Reviewed by Pavel Feldman.

        Added default values for Console::addMessage sourceURL, lineNumber and
        callStack parameters, moved lineNumber after sourceURL.
        Made virtual method ScriptExecutionContext::addMessage private
        Added default values to ScriptExecutionContext::AddConsoleMessage sourceURL, lineNumber and
        callStack parameters, moved lineNumber after sourceURL.
        Reorder ScriptExecutionContext::logExceptionToConsole parameters, move lineNumber after sourceURL.
        Reordered sourceURL and lineNumber parameters in inspector methods.
        Made all calls to Console::addMessage() pass 0 as lineNumber by default (i.e. when line number is unknown / irrelevant).
        Unset line numbers are not printed to console in QT now.

        * bindings/js/JSCustomXPathNSResolver.cpp:
        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):
        * dom/Document.cpp:
        (WebCore::Document::logExceptionToConsole):
        (WebCore::Document::addMessage):
        * dom/Document.h:
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask):
        (WebCore::ScriptExecutionContext::reportException):
        (WebCore::ScriptExecutionContext::addConsoleMessage):
        * dom/ScriptExecutionContext.h:
        * dom/UIEvent.cpp:
        (WebCore::UIEvent::warnDeprecatedLayerXYUsage):
        * dom/ViewportArguments.cpp:
        (WebCore::reportViewportWarning):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::validateInteractively):
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::printWarningToConsole):
        * inspector/ConsoleMessage.cpp:
        (WebCore::ConsoleMessage::ConsoleMessage):
        * inspector/ConsoleMessage.h:
        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::enable):
        (WebCore::InspectorConsoleAgent::addMessageToConsole):
        (WebCore::InspectorConsoleAgent::stopTiming):
        (WebCore::InspectorConsoleAgent::count):
        (WebCore::InspectorConsoleAgent::resourceRetrievedByXMLHttpRequest):
        * inspector/InspectorConsoleAgent.h:
        * inspector/InspectorConsoleInstrumentation.h:
        (WebCore::InspectorInstrumentation::addMessageToConsole):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
        * inspector/InspectorInstrumentation.h:
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::addProfileFinishedMessageToConsole):
        (WebCore::InspectorProfilerAgent::addStartProfilingMessageToConsole):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::checkIfDisplayInsecureContent):
        (WebCore::FrameLoader::checkIfRunInsecureContent):
        (WebCore::FrameLoader::reportLocalLoadFailed):
        (WebCore::FrameLoader::shouldAllowNavigation):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::didReceiveResponse):
        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::didReceiveResponse):
        (WebCore::ApplicationCacheGroup::didFinishLoading):
        (WebCore::ApplicationCacheGroup::didFail):
        (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
        (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
        (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::printAccessDeniedMessage):
        * page/Console.cpp:
        (WebCore::Console::addMessage):
        (WebCore::Console::groupEnd):
        * page/Console.h:
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::postMessageTimerFired):
        (WebCore::DOMWindow::printErrorMessage):
        * storage/AbstractDatabase.cpp:
        (WebCore::AbstractDatabase::logErrorMessage):
        * svg/SVGDocumentExtensions.cpp:
        (WebCore::reportMessage):
        * websockets/WebSocket.cpp:
        (WebCore::WebSocket::connect):
        * websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::fail):
        (WebCore::WebSocketChannel::didFailSocketStream):
        * workers/DefaultSharedWorkerRepository.cpp:
        (WebCore::postConsoleMessageTask):
        (WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject):
        * workers/SharedWorkerContext.cpp:
        (WebCore::SharedWorkerContext::logExceptionToConsole):
        * workers/SharedWorkerContext.h:
        * workers/WorkerContext.cpp:
        (WebCore::WorkerContext::logExceptionToConsole):
        (WebCore::WorkerContext::addMessage):
        (WebCore::WorkerContext::addMessageToWorkerConsole):
        * workers/WorkerContext.h:
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::postConsoleMessageTask):
        * xml/XSLTProcessorLibxslt.cpp:
        (WebCore::XSLTProcessor::parseErrorFunc):
        * xml/XSLTProcessorQt.cpp:
        (WebCore::XSLTMessageHandler::handleMessage):

2012-01-12  Mihnea Ovidenie  <mihnea@adobe.com>

        Add RenderStyle::isPositioned() helper method
        https://bugs.webkit.org/show_bug.cgi?id=75959

        Reviewed by Tony Chang.

        No new tests since this is refactoring of existing code.
        Replace (style()->position() == AbsolutePosition || style()->position() == FixedPosition) 
        with (style()->isPositioned()).
        Replace (style()->position() != AbsolutePosition && style()->position() != FixedPosition) 
        with (!style()->isPositioned()).

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::updateBoxModelInfoFromStyle):
        (WebCore::RenderBox::offsetFromContainer):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::computeRectForRepaint):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::markContainingBlocksForLayout):
        (WebCore::RenderObject::setPreferredLogicalWidthsDirty):
        (WebCore::RenderObject::invalidateContainerPreferredLogicalWidths):
        * rendering/style/RenderStyle.h:
        (WebCore::RenderStyleBitfields::isPositioned):

2012-01-11  KwangHyuk Kim  <hyuki.kim@samsung.com>

        [EFL] Rename parameter and variable name 'r' to 'rect' in IntRectEfl.cpp.
        https://bugs.webkit.org/show_bug.cgi?id=76140

        Reviewed by Andreas Kling.

        No new tests : Just for change of parameter and variable name.

        * platform/graphics/efl/IntRectEfl.cpp:
        (WebCore::IntRect::IntRect):
        (WebCore::IntRect::operator Eina_Rectangle):

2012-01-11  Shinya Kawanaka  <shinyak@google.com>

        QuerySelector should not have side effect.
        https://bugs.webkit.org/show_bug.cgi?id=75298

        Reviewed by Antti Koivisto.

        Since SelectorChecker is not collecting-rules-only mode, it may set some flags in render styles
        if some pseudo types (e.g. first-of-type) are used.

        No new tests. Covered by existing tests.

        * dom/SelectorQuery.cpp:
        (WebCore::SelectorQuery::SelectorQuery):
          Made collecting rules only.

2012-01-11  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/10679035> Implement font-variant-ligatures: {no-}common-ligatures
        https://bugs.webkit.org/show_bug.cgi?id=76103

        Reviewed by Sam Weinig.

        Tests: fast/css/parsing-font-variant-ligatures.html
               fast/text/font-variant-ligatures-expected.html
               fast/text/font-variant-ligatures.html

        Added support for all font-variant-ligatures values in the style system and in
        FontDescription, and made the {no-}common-ligatures value keywords control basic ligatures.
        The {no-}{discretionary,historical}-ligatures keywords have no effect on rendering at this
        time.

        font-variant-ligatures was not made part of the font shorthand property.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Added code to handle
        font-variant-ligatures.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue): Added code to handle font-variant-ligatures.
        (WebCore::CSSParser::parseFontVariantLigatures): Added. Parses font-variant-ligatures.
        * css/CSSParser.h:
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty): Added font-variant-ligatures to the set of
        inherited properties.
        * css/CSSPropertyNames.in: Added -webkit-font-variant-ligatures.
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyFontVariantLigatures::applyInheritValue): Added. Copies
        {common,discretionary,historical}LigaturesState from the parent style font description.
        (WebCore::ApplyPropertyFontVariantLigatures::applyInitialValue): Added. Sets
        {common,discretionary,historical}LigaturesState to normal.
        (WebCore::ApplyPropertyFontVariantLigatures::applyValue): Added.
        (WebCore::ApplyPropertyFontVariantLigatures::createHandler): Added.
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty): Added a handler for
        font-variant-ligatures.
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyDeclaration): Updated for the number of properties that
        affect the font.
        (WebCore::CSSStyleSelector::applyProperty): Added CSSPropertyWebkitFontVariantLigatures to
        the switch statement, which needs to list all values in SVG-disabled builds.
        * css/CSSValueKeywords.in: Added the value keywords
        {no-}{common,discretionary,historical}-ligatures.
        * platform/graphics/Font.h:
        (WebCore::Font::typesettingFeatures): Changed to enable ligatures if common ligatures are
        enabled in the font description, disable them if they are disabled, and leave them to the
        default (determined by the text-rendering property) if they are in the normal state.
        * platform/graphics/FontDescription.h:
        (WebCore::FontDescription::FontDescription): Added initializers.
        (WebCore::FontDescription::commonLigaturesState): Added this accessor.
        (WebCore::FontDescription::discretionaryLigaturesState): Ditto.
        (WebCore::FontDescription::historicalLigaturesState): Ditto.
        (WebCore::FontDescription::setCommonLigaturesState): Ditto.
        (WebCore::FontDescription::setDiscretionaryLigaturesState): Ditto.
        (WebCore::FontDescription::setHistoricalLigaturesState): Ditto.
        (WebCore::FontDescription::operator==): Updated to compare the ligatures state members.

2012-01-11  Adrienne Walker  <enne@google.com>

        Repaint all graphics layers when their renderer offset changes
        https://bugs.webkit.org/show_bug.cgi?id=75730

        Reviewed by Simon Fraser.

        In RenderLayerBacking, only the main graphics layer gets repainted
        when the offset changes. If the offset on other graphics layers (e.g.
        the foreground layer) changes, they should get repainted as well.

        Test: compositing/geometry/foreground-offset-change.html

        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::setOffsetFromRenderer):
        (WebCore::GraphicsLayer::paintGraphicsLayerContents):
        * platform/graphics/GraphicsLayer.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        (WebCore::RenderLayerBacking::paintContents):

2012-01-11  Scott Violet  <sky@google.com>

        [chromium] TiledLayerChromium drops invalidates that occur during
        LayerTextureUpdater::prepareToUpdate
        https://bugs.webkit.org/show_bug.cgi?id=76067

        Reviewed by James Robinson.

        Test coverage in TiledLayerChromiumTest.

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::prepareToUpdateTiles):

2012-01-11  Kentaro Hara  <haraken@chromium.org>

        [JSC] Remove redundant arguments from [Supplemental] custom methods
        https://bugs.webkit.org/show_bug.cgi?id=76127

        Reviewed by Adam Barth.

        Since in JSC a callback of custom methods is non-static, we do not need
        to pass a pointer of an implementation object.

        Before (JSTestInterface.cpp):
            JSValue jsTestInterfaceSupplementalStr3(ExecState* exec, JSValue slotBase, ...)
            {
                JSTestInterface* castedThis = static_cast<JSTestInterface*>(asObject(slotBase));
                TestInterface* impl = static_cast<TestInterface*>(castedThis->impl());
                return castedThis->supplementalStr3(impl, exec);
            }

        After (JSTestInterface.cpp):
            JSValue jsTestInterfaceSupplementalStr3(ExecState* exec, JSValue slotBase, ...)
            {
                JSTestInterface* castedThis = static_cast<JSTestInterface*>(asObject(slotBase));
                 return castedThis->supplementalStr3(exec);  // JSTestInterface knows 'impl'.
            }

        Tests: bindings/scripts/test/TestInterface.idl
               http/tests/websocket/tests/*
               webaudio/*

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader): Previously when we specify [CustomGetter, CustomSetter], the header for
        the custom setter was not generated. This patch fixes the bug.
        (GenerateImplementation):

        * bindings/js/JSDOMWindowWebAudioCustom.cpp: Removed redundant DOMWindow* from webkitAudioContext().
        (WebCore::JSDOMWindow::webkitAudioContext):
        * bindings/js/JSDOMWindowWebSocketCustom.cpp: Removed redundant DOMWindow* from webSocket().
        (WebCore::JSDOMWindow::webSocket):

        * bindings/scripts/test/JS/JSTestInterface.cpp: Updated the test result.
        (WebCore::jsTestInterfaceSupplementalStr3):
        (WebCore::setJSTestInterfaceSupplementalStr3):
        * bindings/scripts/test/JS/JSTestInterface.h: Ditto.

2012-01-11  Adam Barth  <abarth@webkit.org>

        iframe sandbox doesn't block autofocus (IETC automatic-feature-block-autofocus-form-control)
        https://bugs.webkit.org/show_bug.cgi?id=76120

        Reviewed by Eric Seidel.

        Test: fast/forms/no-autofocus-in-sandbox.html

        * html/HTMLFormControlElement.cpp:
        (WebCore::shouldAutofocus):
            - The HTML5 spec says that we shouldn't autofocus elements when the
              automatic features are sandboxed.

2012-01-11  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=75904
        WebKit 1: Scrollbar uiStateTransitionProgress requires tracking the mouse all 
        the time
        -and corresponding-
        <rdar://problem/10498816>

        Reviewed by Darin Adler.

        This patch gets rid of the optional parameter called onlyUpdateScrollbars for 
        mouseMoved() and instead moves that functionality into its own function 
        called passMouseMovedEventToScrollbars().
        * WebCore.exp.in:
        * page/EventHandler.cpp:
        (WebCore::EventHandler::mouseMoved):
        (WebCore::EventHandler::passMouseMovedEventToScrollbars):
        * page/EventHandler.h:
        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::passMouseMovedEventToScrollbars):

2012-01-11  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Methods should throw TRANSACTION_INACTIVE_ERR when transaction is completed/aborted
        https://bugs.webkit.org/show_bug.cgi?id=76108

        Updated IDBDatabaseException error codes to match spec (the pre-DOM4 version),
        including updated description strings, and changed relevant store and index 
        methods to raise the expected exception type now that it is detailed in the spec.

        Reviewed by Tony Chang.

        Tests: storage/indexeddb/transaction-basics.html

        * storage/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::continueFunction):
        (WebCore::IDBCursorBackendImpl::prefetchContinue):
        * storage/IDBDatabaseException.cpp:
        * storage/IDBDatabaseException.h:
        * storage/IDBDatabaseException.idl:
        * storage/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::openCursor):
        (WebCore::IDBIndexBackendImpl::openKeyCursor):
        (WebCore::IDBIndexBackendImpl::count):
        (WebCore::IDBIndexBackendImpl::get):
        (WebCore::IDBIndexBackendImpl::getKey):
        * storage/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::get):
        (WebCore::IDBObjectStoreBackendImpl::put):
        (WebCore::IDBObjectStoreBackendImpl::deleteFunction):
        (WebCore::IDBObjectStoreBackendImpl::clear):
        (WebCore::IDBObjectStoreBackendImpl::createIndex):
        (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
        (WebCore::IDBObjectStoreBackendImpl::openCursor):
        (WebCore::IDBObjectStoreBackendImpl::count):

2012-01-11  Kentaro Hara  <haraken@chromium.org>

        Implement the [Supplemental] IDL for custom methods
        https://bugs.webkit.org/show_bug.cgi?id=76036

        Reviewed by Adam Barth.

        We have implemented the [Supplemental] IDL for non-custom methods in bug 75944.
        This patch implements it for custom methods. This patch modifies only CodeGeneratorV8.pm,
        since CodeGeneratorJS.pm requires no change and other code generators
        do not support custom methods.

        Test: bindings/scripts/test/TestSupplemental.idl

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):

        * bindings/scripts/test/TestSupplemental.idl: Added a custom method with the [Supplemental] IDL.

        * bindings/scripts/test/JS/JSTestInterface.cpp: Updated the test result.
        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod3):
        * bindings/scripts/test/JS/JSTestInterface.h: Ditto.
        * bindings/scripts/test/ObjC/DOMTestInterface.h: Ditto.
        * bindings/scripts/test/ObjC/DOMTestInterface.mm: Ditto.
        (-[DOMTestInterface supplementalMethod3]):
        * bindings/scripts/test/V8/V8TestInterface.cpp: Ditto.

2011-12-21  Shaw Andy  <andy.shaw@digia.com>

        Fix build issue on Windows when Qt is configured with -ltcg
        https://bugs.webkit.org/show_bug.cgi?id=75003

        Rubber-stamped by Simon Hausmann.

        * WebCore.pri:

2012-01-09  Avi Drissman  <avi@chromium.org>

        https://bugs.webkit.org/show_bug.cgi?id=75860
        [Chromium Mac] no background is drawn for input elements

        Reviewed by Eric Seidel.

        Reverts r104240 for Chromium. Unfortunately the code that uses Cocoa
        API misbehaves when built with the 10.5 SDK, so we use SPI. For now.

        * rendering/RenderThemeChromiumMac.h:
        * rendering/RenderThemeChromiumMac.mm:
        (WebCore::RenderThemeChromiumMac::paintTextField):

2012-01-11  Adam Barth  <abarth@webkit.org>

        iframe sandbox doesn't block videos from autoplaying (IETC automatic-feature-block-autoplay-video)
        https://bugs.webkit.org/show_bug.cgi?id=76111

        Reviewed by Eric Seidel.

        Test: media/no-auto-play-in-sandbox.html

        * dom/SecurityContext.h:
            - Add a flag for sandboxing automatic features, per the HTML5 spec.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::setReadyState):
            - Implement requirement in the HTML5 spec to not autoplay media
              when automatic features are sandboxed.

2012-01-11  Nate Chapin  <japhet@chromium.org>

        SubresourceLoader cleanup post r100311.
        1. Simplify matching incrementRequestCount()/decrementRequestCount() calls.
        2. Remove CachedImage custom code from SubresourceLoader.
        3. Add a bunch of ASSERTs.
        4. Remove the multipart-only call to didReceiveData() from didReceiveResponse(),
           since didReceiveData() would get called immediately after anyway.
        https://bugs.webkit.org/show_bug.cgi?id=75887

        Reviewed by Adam Barth.

        No new tests, refactor only.

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didReceiveResponse): Remove multipart special case, handle it in didReceiveData().
        (WebCore::SubresourceLoader::didReceiveData): Handle multipart state here, since we will receive only one
             didReceiveData() call per multipart segment, but no didFinishLoading() call.
        * loader/SubresourceLoader.h: Add a RequestCountTracker subclass to reduce complexity of ensuring we don't
            decrement request count twice on CachedResourceLoader.
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::setResponse): Move CachedImage::clear() call out of SubresourceLoader, since it's
            kind of a layering violation as is.
        * loader/cache/CachedImage.h:
        * loader/cache/CachedResource.cpp:

2012-01-11  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Version change transaction should abort if constraints fail during createIndex
        https://bugs.webkit.org/show_bug.cgi?id=76094

        Reviewed by Tony Chang.

        Test: storage/indexeddb/index-population.html

        * storage/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::addingKeyAllowed):
        * storage/IDBIndexBackendImpl.h:
        * storage/IDBLevelDBBackingStore.cpp:
        (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
        * storage/IDBObjectStoreBackendImpl.cpp:

2012-01-11  Greg Billock  <gbillock@google.com>

        Switch web intents to use supplemental IDL for DOMWindow
        https://bugs.webkit.org/show_bug.cgi?id=76092

        Reviewed by Adam Barth.

        * Modules/intents/DOMWindowIntents.idl: Added.
        * WebCore.gypi:
        * page/DOMWindow.idl:

2012-01-11  Kent Tamura  <tkent@chromium.org>

        Rename HTMLInputElement::setDefaultName to setInitialName.
        https://bugs.webkit.org/show_bug.cgi?id=76039

        Reviewed by Darin Adler.

        Rename setDefaultName to setInitialName, make it protected, and add two
        assertions.

        This change should not change any behavior.

        Test: fast/forms/isindex-name.html

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setInitialName):
        - Renamed from setDefaultName.
        - Add assertions.
        * html/HTMLInputElement.h:
        Rename setDefaultName to setInitialName, and move it to protected.
        * html/HTMLIsIndexElement.cpp:
        (WebCore::HTMLIsIndexElement::HTMLIsIndexElement):
        Update a setDefaultName callsite.
        (WebCore::HTMLIsIndexElement::parseMappedAttribute):
        A style fix.

2012-01-11  Adam Treat  <atreat@rim.com>

        https://bugs.webkit.org/show_bug.cgi?id=76088
        The common case of content type = text/plain is not optimized and the plugin database is initialized instead

        In the dom/DOMImplementation.cpp file you can find the comment that text/plain is
        optimized so that the plugin database is not loaded. Unfortunately, this has been
        regressed since the patch for http://bugs.webkit.org/show_bug.cgi?id=16815 which
        refactored a bunch of the plugin code.  Now, the plugin database is initialized
        before we handle text/plain.  This line in DOMImplementation.cpp triggers
        the plugin initialization:

                pluginData = frame->page()->pluginData();

        The case of image types != PDF and the case of HTML5 video content type are also
        not optimized to be handled before plugin initialization.

        The solution is to refactor so all of these content types are handled before
        we initialize the plugin database.

        Reviewed by Adam Treat.

        * dom/DOMImplementation.cpp:
        (WebCore::DOMImplementation::createDocument):

2012-01-11  Alexandre Elias  <aelias@google.com>

        [chromium] Make Skia canvas opaque for root layer tiles
        https://bugs.webkit.org/show_bug.cgi?id=75939

        Reviewed by James Robinson.

        Skia has extra optimizations if a bitmap has the "opaque" flag -- in
        particular, it doesn't do an unnecessary memset at creation time.
        Pass down the LayerChromium's opaque flag to Skia.

        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp:
        (WebCore::BitmapCanvasLayerTextureUpdater::setIsNonCompositedContent):
        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
        * platform/graphics/chromium/ContentLayerChromium.cpp:
        (WebCore::ContentLayerChromium::createTextureUpdater):
        * platform/graphics/chromium/LayerTextureUpdater.h:
        (WebCore::LayerTextureUpdater::setIsNonCompositedContent):
        * platform/graphics/chromium/PlatformCanvas.cpp:
        (WebCore::PlatformCanvas::PlatformCanvas):
        (WebCore::PlatformCanvas::resize):
        * platform/graphics/chromium/PlatformCanvas.h:
        (WebCore::PlatformCanvas::setOpaque):
        (WebCore::PlatformCanvas::opaque):
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::setIsNonCompositedContent):

2012-01-11  Greg Billock  <gbillock@google.com>

        [Coverity] Address some uninit constructor issues in WebCore/dom
        https://bugs.webkit.org/show_bug.cgi?id=74977

        Reviewed by Ryosuke Niwa.

        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::ParentStackFrame::ParentStackFrame):
        * dom/DeviceMotionData.cpp:
        (WebCore::DeviceMotionData::DeviceMotionData):
        * dom/DeviceOrientation.cpp:
        (WebCore::DeviceOrientation::DeviceOrientation):

2012-01-11  Kenneth Russell  <kbr@google.com>

        [chromium] Color profiles are incorrect for images without premultiplied alpha
        https://bugs.webkit.org/show_bug.cgi?id=75999

        Reviewed by Stephen White.

        Don't apply the color profile if the user has requested separate alpha.

        Test: fast/canvas/webgl/texture-color-profile.html

        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
        (WebCore::ImageFrame::setStatus):

2012-01-11  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Qt][Texmap] LayoutTests/compositing/masks/masked-ancestor does not render correctly.
        https://bugs.webkit.org/show_bug.cgi?id=75910

        Reviewed by Simon Hausmann.

        Handle the mask surface correctly when drawing in two passes. Also, improve the readability
        of the code that decides whether to draw in two passes.

        LayoutTests/compositing/masks/masked-ancestor.html tests this.

        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::computeAllTransforms):
        (WebCore::TextureMapperNode::hasMoreThanOneTile):
        (WebCore::TextureMapperNode::paintRecursive):
        * platform/graphics/texmap/TextureMapperNode.h:

2012-01-11  Dmitry Titov  <dimich@chromium.org>

        Add new CSS enum value to a switch() in CSSStyleSelector::applyProperty() to fix compile error.
        https://bugs.webkit.org/show_bug.cgi?id=76081

        Reviewed by David Levin.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):

2012-01-11  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Darin Adler. Prepared by Sheriff Bot. Rolling out r94902.
        http://trac.webkit.org/changeset/94902
        https://bugs.webkit.org/show_bug.cgi?id=75905

        Disagrees with general direction for WebKit, and makes
        refactoring harder (Requested by ap on #webkit).

        * loader/DocumentWriter.cpp:
        (WebCore::DocumentWriter::deprecatedFrameEncoding):
        * loader/DocumentWriter.h:
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::addExtraFieldsToRequest):
        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::adopt):
        (WebCore::ResourceRequestBase::copyData):
        (WebCore::ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray):
        * platform/network/ResourceRequestBase.h:

2012-01-11  Eli Fidler  <efidler@rim.com>

        Fix OpenGL dependency in CMake build system
        https://bugs.webkit.org/show_bug.cgi?id=73559

        Reviewed by Daniel Bates.

        * CMakeLists.txt:
        * PlatformEfl.cmake:

2012-01-11  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Use HashMap<OwnPtr> for RenderBoxRegionInfo map in RenderRegion
        https://bugs.webkit.org/show_bug.cgi?id=75348

        Reviewed by Darin Adler.

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::logicalWidthChangedInRegions): use OwnPtr.
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::setRenderBoxRegionInfo): use HashMap::add() instead of
        get() potentially followed by set().
        (WebCore::RenderRegion::takeRenderBoxRegionInfo): change to return PassOwnPtr.
        (WebCore::RenderRegion::removeRenderBoxRegionInfo):
        (WebCore::RenderRegion::deleteAllRenderBoxRegionInfo):
        * rendering/RenderRegion.h:

2012-01-11  Joel Webber  <jgw@google.com>

        Implement setCurrentTime() and pauseAnimations() on SVGSVGElement
        https://bugs.webkit.org/show_bug.cgi?id=12073

        Reviewed by Nikolas Zimmermann.

        Adds the ability to reset an SVGSMILElement internally. SVGSMILElements are no longer removed
        from their containers when they become inactive, because they sometimes have to be reactivated
        when the container's current time is changed.

        Test: svg/animations/animate-setcurrenttime.html

        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::setCurrentTime):
        * svg/animation/SMILTimeContainer.cpp:
        (WebCore::SMILTimeContainer::SMILTimeContainer):
        (WebCore::SMILTimeContainer::begin):
        (WebCore::SMILTimeContainer::pause):
        (WebCore::SMILTimeContainer::setElapsed):
        (WebCore::SMILTimeContainer::updateAnimations):
        * svg/animation/SMILTimeContainer.h:
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::reset):
        * svg/animation/SVGSMILElement.h:

2012-01-11  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py: fix codestyle of generated enums
        https://bugs.webkit.org/show_bug.cgi?id=76062

        Reviewed by Yury Semikhatsky.

        This only changes how constants are named in generated .h file.

        * inspector/CodeGeneratorInspector.py:

2012-01-11  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: "undefined" instead of error message in the SourceFrame.
        https://bugs.webkit.org/show_bug.cgi?id=76060

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
        (WebInspector.ConsoleMessageImpl.prototype.get message):

2012-01-11  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: make setOuterHTML use new DOMEditor, cover it with tests.
        https://bugs.webkit.org/show_bug.cgi?id=76056

        Reviewed by Yury Semikhatsky.

        Test: inspector/elements/set-outer-html.html

        * inspector/DOMEditor.cpp:
        (WebCore::DOMEditor::Digest::Digest):
        (WebCore::DOMEditor::patchDocument):
        (WebCore::DOMEditor::patchNode):
        (WebCore::DOMEditor::innerPatchHTMLElement):
        (WebCore::DOMEditor::innerPatchNode):
        (WebCore::DOMEditor::diff):
        (WebCore::DOMEditor::innerPatchChildren):
        (WebCore::DOMEditor::createDigest):
        * inspector/DOMEditor.h:
        * inspector/Inspector-0.1.json:
        * inspector/Inspector.json:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::setOuterHTML):
        * inspector/InspectorDOMAgent.h:
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMNode):
        (WebInspector.DOMNode.prototype._renumber):
        * inspector/front-end/ElementsTreeOutline.js:
        ():

2012-01-10  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: introduce "source" column in the CSS profiler.
        https://bugs.webkit.org/show_bug.cgi?id=75378

        Reviewed by Pavel Feldman.

        Rules are no longer merged by their selectors but are shown one per profile entry, with a link to
        their selector in the source whenever the latter is available.

        * inspector/Inspector.json:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::RuleMatchingStats::RuleMatchingStats):
        (WebCore::SelectorProfile::makeKey):
        (WebCore::SelectorProfile::startSelector):
        (WebCore::SelectorProfile::commitSelector):
        (WebCore::SelectorProfile::commitSelectorTime):
        (WebCore::SelectorProfile::toInspectorObject):
        (WebCore::InspectorCSSAgent::willMatchRule):
        (WebCore::InspectorCSSAgent::willProcessRule):
        (WebCore::InspectorCSSAgent::buildArrayForRuleList):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::styleSheetURL):
        (WebCore::InspectorStyleSheet::finalURL):
        (WebCore::InspectorStyleSheet::setRuleSelector):
        * inspector/InspectorStyleSheet.h:
        * inspector/front-end/CSSSelectorProfileView.js:
        (WebInspector.CSSSelectorDataGridNode.prototype.get rawData):
        (WebInspector.CSSSelectorDataGridNode.prototype.createCell):
        (WebInspector.CSSSelectorProfileView):
        (WebInspector.CSSSelectorProfileView.prototype._createProfileNodes):
        (WebInspector.CSSSelectorProfileView.prototype._sortProfile.sourceComparator):
        (WebInspector.CSSSelectorProfileView.prototype._sortProfile):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype.sidebarResized):
        * inspector/front-end/dataGrid.css:
        (.data-grid:focus tr.selected a):

2012-01-11  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py: generate enum types.
        https://bugs.webkit.org/show_bug.cgi?id=74954

        Reviewed by Yury Semikhatsky.

        Internal map of string contants is created. C enums are created for
        each JSON enum.

        * inspector/CodeGeneratorInspector.py:
        (EnumConstants.add_constant):
        (EnumConstants):
        (EnumConstants.get_enum_constant_code):
        (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.generate_type_builder):
        (TypeBindings.create_type_declaration_.EnumBinding.get_in_c_type_text):
        (TypeBindings.create_type_declaration_.EnumBinding.get_setter_value_expression_pattern):
        (TypeBindings.create_type_declaration_.PlainString.reduce_to_raw_type):
        (TypeBindings.create_type_declaration_.PlainString.get_setter_value_expression_pattern):
        (get_in_c_type_text):
        (get_setter_value_expression_pattern):
        (PlainObjectBinding.get_in_c_type_text):
        (PlainObjectBinding.get_setter_value_expression_pattern):
        (RawTypesBinding.get_in_c_type_text):
        (RawTypesBinding.get_setter_value_expression_pattern):
        (get_annotated_type_text):
        (MethodGenerateModes.get_modes):
        (MethodGenerateModes.StrictParameterMode.get_c_param_type_text):
        (MethodGenerateModes.StrictParameterMode):
        (MethodGenerateModes.StrictParameterMode.get_setter_value_expression):
        (MethodGenerateModes.RawParameterMode.get_c_param_type_text):
        (MethodGenerateModes.RawParameterMode):
        (MethodGenerateModes.RawParameterMode.get_setter_value_expression):
        (MethodGenerateModes.CombinedMode.get_c_param_type_text):
        (MethodGenerateModes):
        (MethodGenerateModes.CombinedMode):
        (MethodGenerateModes.CombinedMode.get_setter_value_expression):

2012-01-11  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Avoid separate heap allocation for each RenderRegionRange in RenderFlowThread
        https://bugs.webkit.org/show_bug.cgi?id=75908

        Reviewed by Darin Adler.

        There's no benefit in explicit allocating RenderRegionRange in the heap. So this
        patch changes the RenderRegionRangeMap to use the value type directly instead of
        the pointer.

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::removeRegionFromThread):
        (WebCore::RenderFlowThread::layout):
        (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
        (WebCore::RenderFlowThread::setRegionRangeForBox):
        (WebCore::RenderFlowThread::getRegionRangeForBox):
        * rendering/RenderFlowThread.h: add default constructor to act as emptyValue()
        for HashMap.

2012-01-09  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Shaders] Move CustomFilterOperation to the platform layer
        https://bugs.webkit.org/show_bug.cgi?id=74652

        Reviewed by Chris Marrin.

        FilterOperations are now part of the platform code and cannot reference style classes directly, but
        CustomFilterOperation requires to link to the CachedShader for the vertex and the fragment shader.
        
        The fix is to introduce another object that will actually keep a link to the cached resources, so in this patch 
        I'm adding a new class called CustomFilterProgram that will sit in the
        platform/graphics/filters directory and will be referenced from CustomFilterOperation.

        CustomFilterProgram is the base class of StyleCustomFilterProgram that is created from 
        CSSStyleSelector when a new CustomFilterOperation is created. StyleCustomFilterProgram is responsible
        with loading and keeping references to the StyleCachedShaders and the CachedShaders.

        More patches will follow with optimizations about reusing 3D graphics contexts and compiled shaders.

        Tests: css3/filters/custom-filter-shader-cache.html
               css3/filters/missing-custom-filter-shader.html

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::loadPendingShaders):
        (WebCore::CSSStyleSelector::createCustomFilterOperation):
            Updated to use the StyleCustomFilterProgram instead of the CustomFilterOperation.
        
        * platform/graphics/filters/CustomFilterOperation.h: Renamed from Source/WebCore/rendering/style/CustomFilterOperation.h.
        (WebCore::CustomFilterOperation::create):
            Accepts a CustomFilterProgram instead of vertex and fragment CachedShaders.
            
        (WebCore::CustomFilterOperation::program): Returns the CustomFilterProgram.
        
        (WebCore::CustomFilterOperation::CustomFilterOperation):
            Accepts a CustomFilterProgram instead of vertex and fragment CachedShaders.
            
        * platform/graphics/filters/CustomFilterProgram.cpp: Added.
        (WebCore::CustomFilterProgram::CustomFilterProgram):
        (WebCore::CustomFilterProgram::~CustomFilterProgram):
        (WebCore::CustomFilterProgram::addClient):
        (WebCore::CustomFilterProgram::removeClient):
        (WebCore::CustomFilterProgram::notifyClients):
        (WebCore::CustomFilterProgram::createShaderWithContext):
        * platform/graphics/filters/CustomFilterProgram.h: Added.
        * platform/graphics/filters/CustomFilterProgramClient.h: Added.
        (WebCore::CustomFilterProgramClient::~CustomFilterProgramClient):
        
        * platform/graphics/filters/FECustomFilter.cpp:
            FECustomFilter will not use strings anymore. It will just get a reference to the CustomFilterProgram.
        
        (WebCore::FECustomFilter::FECustomFilter):
        (WebCore::FECustomFilter::create):
        (WebCore::FECustomFilter::initializeContext):
            Using the CustomFilterProgram to generate the CustomFilterShader instance. A better name for CustomFilterShader
            would be CustomFilterCompiledProgram, but I would prefer to make that change in a different patch.
        
        * platform/graphics/filters/FECustomFilter.h:
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::~FilterEffectRenderer):
        (WebCore::FilterEffectRenderer::build):
        (WebCore::FilterEffectRenderer::notifyCustomFilterProgramLoaded):
        (WebCore::FilterEffectRenderer::removeCustomFilterClients):
        * rendering/FilterEffectRenderer.h:
        * rendering/style/StyleCustomFilterProgram.h: Added.
        (WebCore::StyleCustomFilterProgram::create):
        (WebCore::StyleCustomFilterProgram::setVertexShader):
        (WebCore::StyleCustomFilterProgram::vertexShader):
        (WebCore::StyleCustomFilterProgram::setFragmentShader):
        (WebCore::StyleCustomFilterProgram::fragmentShader):
        (WebCore::StyleCustomFilterProgram::vertexShaderString):
        (WebCore::StyleCustomFilterProgram::fragmentShaderString):
        (WebCore::StyleCustomFilterProgram::isLoaded):
        (WebCore::StyleCustomFilterProgram::willHaveClients):
        (WebCore::StyleCustomFilterProgram::didRemoveLastClient):
        (WebCore::StyleCustomFilterProgram::notifyFinished):
        (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram):

2012-01-11  Alexandru Chiculita  <achicu@adobe.com>

        CSS Filters: apply the filters in RenderLayerBacking::paintIntoLayer when filters cannot be composited in hardware
        https://bugs.webkit.org/show_bug.cgi?id=75842

        Reviewed by Simon Fraser.

        RenderLayers have two possible states: composited or not. When composited the RenderLayerBacking::paintIntoLayer is used
        to render the result inside the graphics context of the GraphicsLayer. When not composited the RenderLayer::paintLayer method will draw
        the result in the graphics context of the parent layer. 

        Because a recent patch forced creation of composited layers for filters, this patch makes RenderLayerBacking::paintIntoLayer aware
        that it might need to apply the filters when the composition engine failed to apply them in platform code.

        No new tests needed, I've just updated some of the old tests to force disable the accelerated composition
        so that we can still test software painted filters.

        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::clearFilters):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::setFilters):
            If filtersCanBeComposited() is false we need to reset the CoreAnimation layer to remove any previously applied filter.
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayer::filtersCanBeComposited):
            Added grayscale, brightness and contrast in the list of not accelerated filters. Otherwise an assert if triggered.
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::updateBackingStore):
            Moved this method from RenderLayer::updateFilterBackingStore. It had no dependencies on RenderLayer.
        (WebCore::FilterEffectRendererHelper::beginFilterEffect):
        (WebCore::FilterEffectRendererHelper::applyFilterEffect):
            Consolidated the filter rendering inside this helper class that is now used in both RenderLayerBacking::paintIntoLayer and RenderLayer::paintLayer.
        * rendering/FilterEffectRenderer.h:
        (WebCore::FilterEffectRendererHelper::FilterEffectRendererHelper):
        (WebCore::FilterEffectRendererHelper::haveFilterEffect):
        (WebCore::FilterEffectRendererHelper::hasStartedFilterEffect):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayer):
            Filters should apply after the opacity is applied, so I moved this down to paintLayerContents.
        (WebCore::RenderLayer::paintLayerContents):
        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::filter):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::paintIntoLayer):
            Added software fallback rendering of the filters on composited RenderLayers.

2012-01-11  Jochen Eisinger  <jochen@chromium.org>

        Move the check for canExecuteScripts out of V8Proxy::retrieve
        https://bugs.webkit.org/show_bug.cgi?id=75533

        Reviewed by Adam Barth.

        This change doesn't move the check to custom/generated bindings for
        individual objects, as these won't get executed if scripts are disabled
        anyway.

        No new tests. No functional change.

        * bindings/v8/PageScriptDebugServer.cpp:
        (WebCore::PageScriptDebugServer::addListener):
        * bindings/v8/ScheduledAction.cpp:
        (WebCore::ScheduledAction::execute):
        * bindings/v8/ScriptCachedFrameData.cpp:
        (WebCore::ScriptCachedFrameData::restore):
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::instantiateV8Object):
        * bindings/v8/V8EventListener.cpp:
        (WebCore::V8EventListener::callListenerFunction):
        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::callListenerFunction):
        (WebCore::V8LazyEventListener::prepareListenerObject):
        * bindings/v8/V8Proxy.cpp:
        (WebCore::V8Proxy::handleOutOfMemory):
        (WebCore::V8Proxy::retrieve):
        (WebCore::toV8Context):

2012-01-11  Kentaro Hara  <haraken@chromium.org>

        ShouldSkipTypeInHeader() and ShouldSkipTypeInImplementation() should be the same
        https://bugs.webkit.org/show_bug.cgi?id=76030

        Reviewed by Adam Barth.

        Because the attributes/methods that do not appear in the implementation
        do not need to appear in the header.

        Tests: bindings/scripts/test/TestCallback.idl
               bindings/scripts/test/TestObj.idl

        * bindings/scripts/CodeGeneratorCPP.pm:
        (ShouldSkipType): Renamed from ShouldSkipTypeInImplementation().
        (GenerateHeader): Replaced ShouldSkipTypeInImplementation() with ShouldSkipType(),
        and replaced ShouldSkipTypeInHeader() with ShouldSkipType().
        (GenerateImplementation): Ditto.
        * bindings/scripts/test/CPP/WebDOMTestCallback.h: Updated the test result.
        * bindings/scripts/test/CPP/WebDOMTestObj.h: Ditto.

2012-01-11  Zoltan Herczeg  <zherczeg@webkit.org>

        Fix more style errors in CSSParser.cpp (followup patch)
        https://bugs.webkit.org/show_bug.cgi?id=76038

        Reviewed by Nikolas Zimmermann.

        The previous was: http://trac.webkit.org/changeset/104576
        This patch mostly contains C cast to static_cast rewrites.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseBackgroundColor):
        (WebCore::ShadowParseContext::commitLength):
        (WebCore::BorderImageSliceParseContext::commitNumber):
        (WebCore::BorderImageSliceParseContext::commitBorderImageSlice):
        (WebCore::BorderImageQuadParseContext::commitNumber):
        (WebCore::BorderImageQuadParseContext::commitBorderImageQuad):
        (WebCore::parseDeprecatedGradientPoint):

2012-01-11  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Fix release builds.

        * rendering/svg/SVGTextMetricsBuilder.cpp:
        (WebCore::SVGTextMetricsBuilder::measureTextRenderer):

2012-01-11  Kentaro Hara  <haraken@chromium.org>

        REGRESSION(r101445): [V8] Generated code for custom getters and setters
        with the [Supplemental] IDL is wrong
        https://bugs.webkit.org/show_bug.cgi?id=76034

        Reviewed by Adam Barth.

        This patch fixes the class name of the implementation of custom getters
        and setters, as follows.

        Previous V8TestInterface.cpp:
            // Attribute 'supplementalStr3'
            {"supplementalStr3", V8TestSupplemental::supplementalStr3AccessorGetter, V8TestSupplemental::supplementalStr3AccessorSetter, ...},

        New V8TestInterface.cpp:
            // Attribute 'supplementalStr3'
            {"supplementalStr3", V8TestInterface::supplementalStr3AccessorGetter, V8TestInterface::supplementalStr3AccessorSetter, ...},

        Test: bindings/scripts/test/TestInterface.idl
              bindings/scripts/test/TestSupplemental.idl

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateSingleBatchedAttribute):
        * bindings/scripts/test/V8/V8TestInterface.cpp:

2012-01-10  Nikolas Zimmermann  <nzimmermann@rim.com>

        Large SVG text layout performance regression in r81168
        https://bugs.webkit.org/show_bug.cgi?id=65711

        Reviewed by Zoltan Herczeg.

        Introduce SVGTextMetricsBuilder, which will be used to speed-up measuring of SVG text,
        by using the simple code path, whenever possibly. It's not enabled yet, as it requires
        a restructurization of SVGTextLayoutAttributesBuilder - its the first chunk of a set
        of patches, that all together fix the performance regression and much more :-)

        Doesn't affect any tests, SVGTextMetricsBuilder is not turned on yet.

        * CMakeLists.txt: Add SVGTextMetricsBuilder.cpp/h to build.
        * GNUmakefile.list.am: Ditto.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * platform/graphics/Font.h:
        (WebCore::Font::codePath): Make it public, to be usable from SVGTextMetricsBuilder.
        * rendering/svg/RenderSVGAllInOne.cpp: Add SVGTextMetricsBuilder.cpp to build.
        * rendering/svg/RenderSVGText.cpp:
        * rendering/svg/RenderSVGText.h:
        * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
        (WebCore::SVGTextLayoutAttributesBuilder::propagateLayoutAttributes): SVGTextMetrics::emptyMetrics() is gone, adapt code.
        * rendering/svg/SVGTextLayoutEngine.cpp:
        (WebCore::SVGTextLayoutEngine::currentLogicalCharacterMetrics): Ditto.
        (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath): Ditto.
        * rendering/svg/SVGTextMetrics.cpp:
        (WebCore::SVGTextMetrics::SVGTextMetrics): Made public, now used in SVGTextLayoutEngine.
        (WebCore::SVGTextMetrics::constructTextRun): Move to public static function, to be usable from SVGTextMetricsBuilder.
        * rendering/svg/SVGTextMetrics.h:
        (WebCore::SVGTextMetrics::isEmpty): Add new isEmpty method, which replaces the == empyMetrics().
        (WebCore::SVGTextMetrics::setWidth): Remove friendship with SVGTextLayoutAttributesBuilder, and make it public, to avoid another friendship.
        * rendering/svg/SVGTextMetricsBuilder.cpp: Added.
        (WebCore::SVGTextMetricsBuilder::SVGTextMetricsBuilder):
        (WebCore::SVGTextMetricsBuilder::advance):
        (WebCore::SVGTextMetricsBuilder::advanceSimpleText): New variant using WidthIterator directly, this is finally possible as SVG Fonts have been integrated into the glyph pages concept a while ago.
        (WebCore::SVGTextMetricsBuilder::advanceComplexText): Complex code path, accounting for sum of glyph widths != run width.
        (WebCore::SVGTextMetricsBuilder::measureTextRenderer): Either measure the text renderer, or just figure out lastCharacter.
        (WebCore::SVGTextMetricsBuilder::walkTreeUntilSpecificLeafIsReached): Walks SVG <text> tree, correctly computing "lastCharacter" until the leaf is reached.
        (WebCore::SVGTextMetricsBuilder::measureAllCharactersOfRenderer): Use above method.
        * rendering/svg/SVGTextMetricsBuilder.h: Added.

2012-01-11  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/10674686> Implement the font-kerning CSS property
        https://bugs.webkit.org/show_bug.cgi?id=76033

        Reviewed by Darin Adler.

        Tests: fast/text/font-kerning-expected.html
               fast/text/font-kerning.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Added code to handle
        font-kerning.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue): Ditto.
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added mapping from FontDescription::Kerning.
        (WebCore::CSSPrimitiveValue::operator FontDescription::Kerning): Added mapping to
        FontDescription::Kerning.
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty): Added font-kerning to the set of inherited
        properties.
        * css/CSSPropertyNames.in: Added -webkit-font-kerning.
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty): Added a handler for font-kerning.
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyDeclaration): Updated for the number of properties that
        affect the font.
        * platform/graphics/Font.h:
        (WebCore::Font::typesettingFeatures): Changed to enable kerning if font-kerning is set to
        normal, disable it if font-kerning is set to none, and leave it to the default (determined
        by the text-rendering property) if font-kerning is set to auto.
        * platform/graphics/FontDescription.h:
        (WebCore::FontDescription::FontDescription): Added a Kerning enum.
        (WebCore::FontDescription::kerning): Added this getter.
        (WebCore::FontDescription::setKerning): Added this setter.
        (WebCore::FontDescription::operator==): Updated to compare the m_kerning member.

2012-01-10  Ryosuke Niwa  <rniwa@webkit.org>

        Build fix. Forgot to revert Node.h.

        * dom/Node.h:

2012-01-10  Ryosuke Niwa  <rniwa@webkit.org>

        Revert r104210. It turned out that this patch makes improving the node list caches harder.

        * dom/Attr.cpp:
        (WebCore::Attr::setValue):
        (WebCore::Attr::childrenChanged):
        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
        (WebCore::DynamicSubtreeNodeList::length):
        (WebCore::DynamicSubtreeNodeList::itemForwardsFromCurrent):
        (WebCore::DynamicSubtreeNodeList::itemBackwardsFromCurrent):
        (WebCore::DynamicSubtreeNodeList::item):
        (WebCore::DynamicSubtreeNodeList::invalidateCache):
        (WebCore::DynamicSubtreeNodeList::Caches::create):
        (WebCore::DynamicSubtreeNodeList::Caches::reset):
        * dom/DynamicNodeList.h:
        * dom/Element.cpp:
        (WebCore::Element::updateAfterAttributeChanged):
        * dom/Node.cpp:
        (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged):
        (WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged):
        (WebCore::Node::notifyLocalNodeListsLabelChanged):
        (WebCore::Node::itemTypeAttributeChanged):
        (WebCore::NodeListsNodeData::invalidateCaches):
        (WebCore::NodeListsNodeData::invalidateCachesThatDependOnAttributes):
        * dom/NodeRareData.h:
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::parseMappedAttribute):
        * html/HTMLLabelElement.cpp:
        (WebCore::HTMLLabelElement::parseMappedAttribute):
        * html/HTMLLabelElement.h:

2012-01-10  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r104263 and r104381.
        http://trac.webkit.org/changeset/104263
        http://trac.webkit.org/changeset/104381
        https://bugs.webkit.org/show_bug.cgi?id=76029

        Preparation to rollout r104210 (Requested by rniwa on
        #webkit).

        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::setLengthCache):
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::setItemCache):
        (WebCore::DynamicSubtreeNodeList::length):
        (WebCore::DynamicSubtreeNodeList::item):
        * dom/DynamicNodeList.h:
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::isLengthCacheValid):
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::isItemCacheValid):
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::domVersionIsConsistent):

2012-01-10  David Kilzer  <ddkilzer@apple.com>

        Add TestWebKitAPI tests for KURL
        <http://webkit.org/b/75774>

        Reviewed by Adam Barth.

        * WebCore.exp.in: Export additional KURL methods used in
        testing.

2012-01-10  Jer Noble  <jer.noble@apple.com>

        Crash in HTMLMediaElement::shouldDisableSleep()
        https://bugs.webkit.org/show_bug.cgi?id=76025

        Reviewed by Dan Bernstein.

        Check nullity of m_player before dereferencing.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::shouldDisableSleep):

2012-01-04  Kent Tamura  <tkent@chromium.org>

        A radio button not in a document should not join a radio button group
        https://bugs.webkit.org/show_bug.cgi?id=45719

        Reviewed by Darin Adler.

        As per the standard and other browser behaviors, we should not add a
        radio button not in a document to a radio button group.

        So, CheckedRadioButton member functions should be called in
        insertedIntoDocument() and removedFromDocument(), and they should do
        nothing if the specified radio button is not in a document.

        This change also fixes a bug that form owner change by 'form' attribute
        didn't update radio button groups correctly.

        Test: fast/forms/radio/radio-group.html

        * dom/CheckedRadioButtons.cpp:
        (WebCore::shouldMakeRadioGroup): A helper function to check <input> state.
        (WebCore::CheckedRadioButtons::addButton):
        - Change the argument type: HTMLFormControlElement* -> HTMLInputElement*.
        - Use shouldMakeRadioGroup().
        (WebCore::CheckedRadioButtons::removeButton): ditto.
        * dom/CheckedRadioButtons.h:
         Change the argument types of addButton() and removeButton():
         HTMLFormControlElement* -> HTMLInputElement*.
        * html/FormAssociatedElement.cpp:
         Do not update m_form except in setForm() and formWillBeDestroyed().
         This helps us to call registerFormElement() and removeFromElement()
         correctly, and call willChangeForm()/didChangeForm() hooks correctly.
        (WebCore::FormAssociatedElement::FormAssociatedElement):
        (WebCore::FormAssociatedElement::~FormAssociatedElement):
        (WebCore::FormAssociatedElement::insertedIntoTree):
        (WebCore::FormAssociatedElement::removedFromTree):
        (WebCore::FormAssociatedElement::setForm):
        (WebCore::FormAssociatedElement::willChangeForm):
        This virtual function is called before the owner form is updated.
        (WebCore::FormAssociatedElement::didChangeForm):
        This virtual function is called after the owner form was updated.
        (WebCore::FormAssociatedElement::formWillBeDestroyed):
        - Renamaed from formDestroyed()
        - Add calls to willChangeForm() and didChangeForm().
        (WebCore::FormAssociatedElement::resetFormOwner): Use setForm().
        (WebCore::FormAssociatedElement::formAttributeChanged): ditto.
        * html/FormAssociatedElement.h:
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::HTMLFormControlElement): Use setForm().
        (WebCore::HTMLFormControlElement::~HTMLFormControlElement):
        removeFormElement() is not needed. ~FormAssociatedElement() treats it.
        (WebCore::HTMLFormControlElement::parseMappedAttribute):
        No need to handle CheckedRadioButtons here. It is handled by HTMLInputElement.
        (WebCore::HTMLFormControlElement::insertedIntoTree): ditto.
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::~HTMLFormElement):
         Rename formDestroyed() with willDestroyForm().
        (WebCore::HTMLFormElement::registerFormElement):
        We don't need to handle radio button groups here.
        (WebCore::HTMLFormElement::removeFormElement): ditto.
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::~HTMLInputElement):
        Calls setForm(0) so that it calls correct virtual functions of
        HTMLInputElement.
        (WebCore::HTMLInputElement::updateCheckedRadioButtons):
        Checking attached() was wrong.
        (WebCore::HTMLInputElement::willChangeForm):
        Remove this radio button from a radio button group for the old form.
        (WebCore::HTMLInputElement::didChangeForm):
        Add this radio button to a radio button group for the new form.
        (WebCore::HTMLInputElement::insertedIntoDocument):
        Add CheckedRadioButtons::addButton() call.
        (WebCore::HTMLInputElement::removedFromDocument):
        Add CheckedRadioButtons::removeButton() call.
        (WebCore::HTMLInputElement::didMoveToNewDocument):
        We don't need to handle CheckedRadioButton() here because
        removedFromDocument() handles it.
        * html/HTMLInputElement.h:
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::HTMLObjectElement): Use setForm().
        (WebCore::HTMLObjectElement::~HTMLObjectElement):
        removeFormElement() is not needed. ~FormAssociatedElement() treats it.

2012-01-10  Kentaro Hara  <haraken@chromium.org>

        Remove redundant code from DOMWindowSQLDatabase.cpp
        https://bugs.webkit.org/show_bug.cgi?id=76010

        Reviewed by Adam Barth.

        This patch removes redundant code from DOMWindowSQLDatabase.cpp.

        - Remove window->frame() check, since window->frame() is always true when
          window->isCurrentlyDisplayedInFrame() is true.
        - window->frame()->document() can just be window->document()

        Tests: storage/open-database-creation-callback-isolated-world.html
               storage/open-database-creation-callback.html
               storage/open-database-empty-version.html
               storage/open-database-over-quota.html
               storage/open-database-set-empty-version.html
               storage/open-database-while-transaction-in-progress.html

        * storage/DOMWindowSQLDatabase.cpp:
        (WebCore::DOMWindowSQLDatabase::openDatabase):

2012-01-10  Dale Curtis  <dalecurtis@chromium.org>

        Repaint video controls when buffering during pause.
        https://bugs.webkit.org/show_bug.cgi?id=73957

        Pipes support for a new bufferingProgressed() method on MediaControls
        elements. Allows controls to be repainted as data buffers when paused.

        Reviewed by Hajime Morita.

        Test: http/tests/media/video-buffering-repaints-controls.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::setNetworkState):
        (WebCore::HTMLMediaElement::progressEventTimerFired):
        * html/shadow/MediaControlRootElement.cpp:
        (WebCore::MediaControlRootElement::bufferingProgressed):
        * html/shadow/MediaControlRootElement.h:
        * html/shadow/MediaControlRootElementChromium.cpp:
        (WebCore::MediaControlRootElementChromium::bufferingProgressed):
        * html/shadow/MediaControlRootElementChromium.h:
        * html/shadow/MediaControls.h:

2012-01-10  Daniel Cheng  <dcheng@chromium.org>

        [chromium] Pasteboard::documentFragment should fall back to text if there's no HTML text
        https://bugs.webkit.org/show_bug.cgi?id=75923

        Reviewed by Tony Chang.

        Test: editing/pasteboard/pasting-empty-html-falls-back-to-text.html

        * platform/chromium/PasteboardChromium.cpp:
        (WebCore::Pasteboard::documentFragment):

2012-01-10  Kentaro Hara  <haraken@chromium.org>

        Use the [Supplemental] IDL in SQLDatabase
        https://bugs.webkit.org/show_bug.cgi?id=76004

        Reviewed by Adam Barth.

        We've been working on WebKit modularization. By using the [Supplemental] IDL,
        we can move SQLDatabase related code from WebCore/page/DOMWindow.{h,cpp,idl}
        to WebCore/storage/DOMWindowSQLDatabase.{h,cpp,idl}.

        Tests: storage/open-database-creation-callback-isolated-world.html
               storage/open-database-creation-callback.html
               storage/open-database-empty-version.html
               storage/open-database-over-quota.html
               storage/open-database-set-empty-version.html
               storage/open-database-while-transaction-in-progress.html

        * CMakeLists.txt: Added DOMWindowSQLDatabase.{idl,h,cpp} to the build script.
        * DerivedSources.make: Ditto.
        * DerivedSources.pri: Ditto.
        * GNUmakefile.list.am: Ditto.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.

        * page/DOMWindow.cpp: Removed SQLDatabase related code.
        * page/DOMWindow.idl: Ditto.
        * page/DOMWindow.h: Ditto. Moved isCurrentlyDisplayedInFrame() from private: to public:
        so that DOMWindowSQLDatabase::openDatabase() can access it.

        * storage/DOMWindowSQLDatabase.cpp: Added. Moved openDatabase() from DOMWindow.cpp to here.
        (WebCore::DOMWindowSQLDatabase::openDatabase):
        * storage/DOMWindowSQLDatabase.h: Added. Moved openDatabase() from DOMWindow.h to here.
        * storage/DOMWindowSQLDatabase.idl: Added. Using the [Supplemental] IDL, moved openDatabase()
        and SQLException from DOMWindow.idl to here.

2012-01-10  Chris Marrin  <cmarrin@apple.com>

        CIFilter version of Sepia Tone filter doesn't match software
        https://bugs.webkit.org/show_bug.cgi?id=75129

        Reviewed by Simon Fraser.

        Changed sepia tone filter to use a CIColorMatrix filter with
        values that match sw filter.

        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (interp):
        (PlatformCALayer::setFilters):

2012-01-10  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>

        [Qt][WK2]REGRESSION(r102435): It made tst_QQuickWebView::show() crash
        https://bugs.webkit.org/show_bug.cgi?id=74176

        Reviewed by Noam Rosenthal.

        Replaces static global GL resource holder with holder shared between
        TextureMapperGL instances created on the same GL context. Also adds
        deallocation of GL resources when last TextureMapperGL instance on the 
        current GL context gets deleted.

        Tested by multipleWebViewWindows and multipleWebViews Qt WK2 API tests.

        * platform/graphics/opengl/TextureMapperGL.cpp:
        (WebCore::TextureMapperGLData::SharedGLData::getCurrentGLContext):
        (WebCore::TextureMapperGLData::SharedGLData::glContextDataMap):
        (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
        (WebCore::TextureMapperGLData::SharedGLData::ProgramInfo::ProgramInfo):
        (WebCore::TextureMapperGLData::SharedGLData::createShaderProgram):
        (WebCore::TextureMapperGLData::SharedGLData::deleteShaderProgram):
        (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
        (WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
        (WebCore::TextureMapperGLData::sharedGLData):
        (WebCore::TextureMapperGLData::TextureMapperGLData):
        (WebCore::TextureMapperGLData::SharedGLData::initializeShaders):
        (WebCore::TextureMapperGL::beginPainting):
        (WebCore::TextureMapperGL::drawTexture):
        (WebCore::BitmapTextureGL::bind):
        (WebCore::TextureMapperGL::bindSurface):
        (WebCore::TextureMapperGL::beginClip):
        (WebCore::TextureMapperGL::endClip):
        * platform/graphics/opengl/TextureMapperGL.h:

2012-01-10  Simon Fraser  <simon.fraser@apple.com>

        Disabled mock scrollbars should draw differently
        https://bugs.webkit.org/show_bug.cgi?id=75995

        Reviewed by James Robinson.
        
        When the scrollbar is disabled, paint the entire track of
        mock scrollbars with a lighter gray, and hide the thumb.

        No tests, since mock scrollbars aren't enabled by default on Mac yet.

        * platform/mock/ScrollbarThemeMock.cpp:
        (WebCore::ScrollbarThemeMock::paintTrackBackground):
        (WebCore::ScrollbarThemeMock::paintThumb):

2012-01-10  Tony Chang  <tony@chromium.org>

        Need to handle absolutely positioned elements inside flexboxes
        https://bugs.webkit.org/show_bug.cgi?id=70793

        Reviewed by David Hyatt.

        Tests: css3/flexbox/insert-text-crash.html
               css3/flexbox/position-absolute-child.html

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::computePreferredMainAxisExtent): Skip the size of positioned elements.
        (WebCore::RenderFlexibleBox::runFreeSpaceAllocationAlgorithm): Add placeholders for positioned elements.
        (WebCore::RenderFlexibleBox::prepareChildForPositionedLayout): Positions the layer for the positioned child.
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Handle positioned elements.
        (WebCore::RenderFlexibleBox::layoutColumnReverse): Adjust the main axis offset of the layer for positioned elements.
        * rendering/RenderFlexibleBox.h:

2012-01-10  Nat Duca  <nduca@chromium.org>

        [chromium] Reuse old timebase when activating CCDelayBasedTimeSource
        https://bugs.webkit.org/show_bug.cgi?id=75938

        Reviewed by James Robinson.

        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
        (WebCore::CCDelayBasedTimeSource::CCDelayBasedTimeSource):
        (WebCore::CCDelayBasedTimeSource::setActive):
        (WebCore::CCDelayBasedTimeSource::onTimerFired):
        (WebCore::CCDelayBasedTimeSource::postNextTickTask):
        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.h:

2012-01-10  Kentaro Hara  <haraken@chromium.org>

        Support the [Supplemental] IDL on methods
        https://bugs.webkit.org/show_bug.cgi?id=75944

        Reviewed by Adam Barth.

        The spec for the [Supplemental] IDL:
        http://dev.w3.org/2006/webapi/WebIDL/#dfn-supplemental-interface

        Currently the [Supplemental] IDL is supported on attributes but not supported
        on methods. This patch makes a change to support it.

        Specifically, assume the following IDL:

            interface [Supplemental=X] Y {
                void func();
            }

        Then the code generator generates the following V8X.cpp.

            void funcCallback(Arguments& args) {
                X* imp = V8X::toNative(args.Holder());
                Y::func(imp);
            }

        Similar code is also generated for JS, ObjC, GObject and CPP bindings.

        Test: bindings/scripts/test/TestSupplemental.idl

        * bindings/scripts/CodeGeneratorCPP.pm: Modified as described above.
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorGObject.pm: Ditto.
        (GenerateFunction):
        * bindings/scripts/CodeGeneratorJS.pm: Ditto.
        (GenerateParametersCheck):
        * bindings/scripts/CodeGeneratorObjC.pm: Ditto.
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm: Ditto.
        (GenerateFunctionCallString):
        * bindings/scripts/generate-bindings.pl: Ditto.

        * bindings/scripts/test/TestSupplemental.idl: Added test cases for [Supplemental] methods.

        * bindings/scripts/test/CPP/WebDOMTestInterface.cpp: Updated the test result.
        (WebDOMTestInterface::supplementalMethod1):
        (WebDOMTestInterface::supplementalMethod2):
        * bindings/scripts/test/CPP/WebDOMTestInterface.h: Ditto.
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: Ditto.
        (webkit_dom_test_interface_supplemental_method1):
        (webkit_dom_test_interface_supplemental_method2):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h: Ditto.
        * bindings/scripts/test/JS/JSTestInterface.cpp: Ditto.
        (WebCore::JSTestInterfacePrototype::getOwnPropertySlot):
        (WebCore::JSTestInterfacePrototype::getOwnPropertyDescriptor):
        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1):
        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
        * bindings/scripts/test/JS/JSTestInterface.h: Ditto.
        * bindings/scripts/test/ObjC/DOMTestInterface.h: Ditto.
        * bindings/scripts/test/ObjC/DOMTestInterface.mm: Ditto.
        (-[DOMTestInterface supplementalMethod1]):
        (-[DOMTestInterface supplementalMethod2:objArg:]):
        * bindings/scripts/test/V8/V8TestInterface.cpp: Ditto.
        (WebCore::TestInterfaceInternal::supplementalMethod1Callback):
        (WebCore::TestInterfaceInternal::supplementalMethod2Callback):
        (WebCore::ConfigureV8TestInterfaceTemplate):

2012-01-10  Kentaro Hara  <haraken@chromium.org>

        [Refactoring] Rename attributes in TestSupplemental.idl to clarify
        that they are supplemental attributes
        https://bugs.webkit.org/show_bug.cgi?id=75942

        Reviewed by Adam Barth.

        This patch just renames attributes in TestSupplemental.idl
        to make it easy to find in {JS,V8,WebKitDOM,DOM,WebDOM}TestInterface.cpp
        which attributes originate from TestSupplemental.idl.

        * bindings/scripts/test/TestSupplemental.idl: Just renamed three attributes.

        * bindings/scripts/test/CPP/WebDOMTestInterface.cpp: Updated the test result.
        (WebDOMTestInterface::supplementalStr1):
        (WebDOMTestInterface::supplementalStr2):
        (WebDOMTestInterface::setSupplementalStr2):
        * bindings/scripts/test/CPP/WebDOMTestInterface.h: Ditto.
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: Ditto.
        (webkit_dom_test_interface_get_supplemental_str1):
        (webkit_dom_test_interface_get_supplemental_str2):
        (webkit_dom_test_interface_set_supplemental_str2):
        (webkit_dom_test_interface_set_property):
        (webkit_dom_test_interface_get_property):
        (webkit_dom_test_interface_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h: Ditto.
        * bindings/scripts/test/JS/JSTestInterface.cpp: Ditto.
        (WebCore::jsTestInterfaceSupplementalStr1):
        (WebCore::jsTestInterfaceSupplementalStr2):
        (WebCore::jsTestInterface):
        (WebCore::setJSTestInterfaceSupplementalStr2):
        (WebCore::setJSTestInterface):
        * bindings/scripts/test/JS/JSTestInterface.h: Ditto.
        * bindings/scripts/test/ObjC/DOMTestInterface.h: Ditto.
        * bindings/scripts/test/ObjC/DOMTestInterface.mm: Ditto.
        (-[DOMTestInterface supplementalStr1]):
        (-[DOMTestInterface supplementalStr2]):
        (-[DOMTestInterface setSupplementalStr2:]):
        (-[DOMTestInterface ]):
        (-[DOMTestInterface set:]):
        * bindings/scripts/test/V8/V8TestInterface.cpp: Ditto.
        (WebCore::TestInterfaceInternal::supplementalStr1AttrGetter):
        (WebCore::TestInterfaceInternal::supplementalStr2AttrGetter):
        (WebCore::TestInterfaceInternal::supplementalStr2AttrSetter):

2012-01-10  John Bauman  <jbauman@chromium.org>

        [chromium] Correctly recreate DrawingBuffer on lost device
        https://bugs.webkit.org/show_bug.cgi?id=75912

        Reviewed by Kenneth Russell.

        Create new drawing buffer on new context, not old lost context. Also,
        make sure to bind new drawing buffer.

        No new tests.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::maybeRestoreContext):

2012-01-10  Stephen White  <senorblanco@chromium.org>

        [Chromium] Partial revert of r104566, since it breaks the shared
        library build on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=75994

        Reviewed by Dmitry Titov.

        Covered by SVG feColorMatrix tests (see LayoutTests/ChangeLog).

        * WebCore.gypi:
        * platform/graphics/filters/FEColorMatrix.h:

2012-01-10  Simon Fraser  <simon.fraser@apple.com>

        Clean up RenderLayerBacking code that looks for the body
        https://bugs.webkit.org/show_bug.cgi?id=39502

        Reviewed by Dave Hyatt.
        
        Consolidate code that propagates the <body> background to the
        root, adding a utility method on RenderObject that is called
        by RenderBox and RenderLayerBacking.
        
        Removed an unused method in RenderLayerBacking.
        
        The compositiong changes are not testable, since rendererBackgroundColor()
        is only used by fullscreen at present.

        Tests: fast/backgrounds/root-background-propagation.html
               fast/backgrounds/root-background-propagation2.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintRootBoxFillLayers):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::rendererBackgroundColor):
        * rendering/RenderLayerBacking.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::rendererForRootBackground):
        * rendering/RenderObject.h:

2012-01-10  Dana Jansens  <danakj@chromium.org>

        [chromium] Create iterators for the RenderSurface-Layer tree
        https://bugs.webkit.org/show_bug.cgi?id=74203

        Reviewed by James Robinson.

        New unit tests: CCLayerIteratorTest.cpp

        * WebCore.gypi:
        * platform/graphics/chromium/RenderSurfaceChromium.h:
        * platform/graphics/chromium/cc/CCLayerIterator.cpp: Added.
        (WebCore::CCLayerIteratorActions::BackToFront::begin):
        (WebCore::CCLayerIteratorActions::BackToFront::end):
        (WebCore::CCLayerIteratorActions::BackToFront::next):
        (WebCore::CCLayerIteratorActions::FrontToBack::begin):
        (WebCore::CCLayerIteratorActions::FrontToBack::end):
        (WebCore::CCLayerIteratorActions::FrontToBack::next):
        (WebCore::CCLayerIteratorActions::FrontToBack::goToHighestInSubtree):
        * platform/graphics/chromium/cc/CCLayerIterator.h: Added.
        (WebCore::CCLayerIterator::CCLayerIterator):
        (WebCore::CCLayerIterator::begin):
        (WebCore::CCLayerIterator::end):
        (WebCore::CCLayerIterator::operator++):
        (WebCore::CCLayerIterator::operator==):
        (WebCore::CCLayerIterator::operator!=):
        (WebCore::CCLayerIterator::operator->):
        (WebCore::CCLayerIterator::operator*):
        (WebCore::CCLayerIterator::representsTargetRenderSurface):
        (WebCore::CCLayerIterator::representsContributingRenderSurface):
        (WebCore::CCLayerIterator::representsItself):
        (WebCore::CCLayerIterator::targetRenderSurfaceLayer):
        * platform/graphics/chromium/cc/CCLayerIteratorPosition.h: Added.
        (WebCore::CCLayerIteratorPosition::CCLayerIteratorPosition):
        (WebCore::CCLayerIteratorPosition::currentLayer):
        (WebCore::CCLayerIteratorPosition::currentLayerRepresentsContributingRenderSurface):
        (WebCore::CCLayerIteratorPosition::currentLayerRepresentsTargetRenderSurface):
        (WebCore::CCLayerIteratorPosition::targetRenderSurfaceLayer):
        (WebCore::CCLayerIteratorPosition::targetRenderSurface):
        (WebCore::CCLayerIteratorPosition::targetRenderSurfaceChildren):
        (WebCore::CCLayerIteratorPosition::operator==):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::paintLayerContents):
        (WebCore::CCLayerTreeHost::updateCompositorResources):
        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
        (WebCore::walkLayersAndCalculateVisibleLayerRects):
        * platform/graphics/chromium/cc/CCRenderSurface.h:

2012-01-10  Ojan Vafai  <ojan@chromium.org>

        Rename flex-align to flex-item-align.
        https://bugs.webkit.org/show_bug.cgi?id=75929

        Reviewed by Darin Adler.

        The spec has changed and now flex-align will be set on
        the flexbox itself.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator EFlexAlign):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::sizesToIntrinsicLogicalWidth):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
        (WebCore::RenderFlexibleBox::alignChildren):
        * rendering/style/RenderStyle.h:
        (WebCore::RenderStyleBitfields::flexItemAlign):
        (WebCore::RenderStyleBitfields::setFlexItemAlign):
        (WebCore::RenderStyleBitfields::initialFlexItemAlign):
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleFlexibleBoxData.cpp:
        (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
        (WebCore::StyleFlexibleBoxData::operator==):
        * rendering/style/StyleFlexibleBoxData.h:

2012-01-10  Eric Carlson  <eric.carlson@apple.com>

        Replace TextTrackCue "getCueAsSource" method with "text" attribute
        https://bugs.webkit.org/show_bug.cgi?id=75646

        Reviewed by Darin Adler.

        Test: media/track/track-cue-mutable-text.html

        * html/HTMLMediaElement.h: getCueAsSource() -> text().

        * html/TextTrackCue.cpp:
        (WebCore::TextTrackCue::setText): New. Set cue text and clear the document fragment.
        (WebCore::TextTrackCue::getCueAsHTML): Allocate the document fragment if it doesn't exist.
        * html/TextTrackCue.h:
        (WebCore::TextTrackCue::text):
        * html/TextTrackCue.idl: getCueAsSource() -> text().

        * html/shadow/MediaControlRootElement.cpp:
        (WebCore::MediaControlRootElement::updateTextTrackDisplay): getCueAsSource() -> text().
        * html/shadow/MediaControlRootElementChromium.cpp:
        (WebCore::MediaControlRootElementChromium::updateTextTrackDisplay): getCueAsSource() -> text().

        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::collectCueText): processCueText is dead, long live createNewCue.
        (WebCore::WebVTTParser::createDocumentFragmentFromCueText): New, split out of processCueText.
            Create a document fragment from the String argument.
        (WebCore::WebVTTParser::createNewCue): Split out of processCueText.
        (WebCore::WebVTTParser::constructTreeFromToken): Add a comment pointing to the spec section
            with the rules for DOM construction.
        * html/track/WebVTTParser.h:

2012-01-10  Jer Noble  <jer.noble@apple.com>

        REGRESSION (r102024): Having the Bing homepage open prevents idle sleep
        https://bugs.webkit.org/show_bug.cgi?id=75972

        Reviewed by Oliver Hunt.

        No new tests; no testing infrastructure exists to test display sleep assertions.

        Only disable idle and display sleep when a video element is not paused, not looping, and
        has both a video and audio track.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaPlayerRateChanged): Factor into updateDisableSleep() and
            shouldDisplaySleep().
        (WebCore::HTMLMediaElement::setLoop): Ditto.
        (WebCore::HTMLMediaElement::attributeChanged): Ditto.
        (WebCore::HTMLMediaElement::updateDisableSleep):
        (WebCore::HTMLMediaElement::shouldDisableSleep):
        * html/HTMLMediaElement.h:

2012-01-09  Matthew Delaney  <mdelaney@apple.com>

        [Mac] Accelerate canvas layers with the same logic as accelerating the canvas itself
        https://bugs.webkit.org/show_bug.cgi?id=75921

        Reviewed by Simon Fraser.

        No new tests. Does not affect detectable behavior.

        * rendering/RenderLayerCompositor.cpp: Use canvas's shouldAccelerate to avoid asking
        uninitialized canvas's if they're accelerated or not.
        (WebCore::RenderLayerCompositor::updateBacking):

2012-01-10  Daniel Sievers  <sievers@chromium.org>

        [Chromium] Do not recreate texture updater for image layer if one exists.
        https://bugs.webkit.org/show_bug.cgi?id=75589

        Reviewed by James Robinson.

        Test: platform/chromium/compositing/img-layer-grow.html

        * platform/graphics/chromium/ImageLayerChromium.cpp:
        (WebCore::ImageLayerChromium::createTextureUpdater):

2012-01-10  Mike Reed  <reed@google.com>

        [skia] not all convex paths are convex, so recompute convexity for the problematic ones
        https://bugs.webkit.org/show_bug.cgi?id=75960

        Reviewed by Stephen White.

        No new tests.
        See related chrome issue
        http://code.google.com/p/chromium/issues/detail?id=108605

        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::setPathFromConvexPoints):

2012-01-10  Gavin Barraclough  <barraclough@apple.com>

        Do not allow Array length to be set if it is non-configurable
        https://bugs.webkit.org/show_bug.cgi?id=75935

        Reviewed by Sam Weinig.

        * bindings/js/SerializedScriptValue.cpp:
        (WebCore::CloneDeserializer::deserialize):
            - remove unnecessary call to JSArray::setLength.

2012-01-10  Adrienne Walker  <enne@google.com>

        [chromium] Draw debug tile borders on composited layers
        https://bugs.webkit.org/show_bug.cgi?id=75680

        Reviewed by James Robinson.

        On tiled layers, draw debug borders on the tiles themselves. By
        default, these are one pixel wide and transparent, so should be
        unobtrusive but informative. They are triggered when the layer itself
        would have a debug border via the existing flags.

        Also, fix the drawDebugBorderQuad function to handle arbitrarily
        positioned quads, not just full layer quads. Also, fix alpha issue
        with debug borders.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::drawDebugBorderQuad):
        * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.cpp:
        (WebCore::CCDebugBorderDrawQuad::CCDebugBorderDrawQuad):
        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
        (WebCore::CCLayerImpl::appendDebugBorderQuad):
        (WebCore::CCLayerImpl::quadTransform):
        (WebCore::CCLayerImpl::hasDebugBorders):
        * platform/graphics/chromium/cc/CCLayerImpl.h:
        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
        (WebCore::CCTiledLayerImpl::appendQuads):

2012-01-10  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Missing Implementation of Public InspectorDOMAgent Function
        https://bugs.webkit.org/show_bug.cgi?id=75759

        Follow-up: Remove the unused method. Keep the setter private.

        Reviewed by Pavel Feldman.

        * inspector/InspectorDOMAgent.cpp:
        * inspector/InspectorDOMAgent.h:

2012-01-10  Pavel Feldman  <pfeldman@google.com>

        Not reviewed, follow up to r104586: fix assertion within the loop.

        * inspector/DOMEditor.cpp:
        (WebCore::DOMEditor::patchChildren):

2012-01-10  Brady Eidson  <beidson@apple.com>

        <rdar://problem/9328684> and https://bugs.webkit.org/show_bug.cgi?id=62764
        Frequent crashes due to null frame below ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache
 
        Reviewed by Maciej Stachowiak.

        This is a non-reproducible high volume crash, so no test :(. 

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::stopLoading): Don't re-run actual "stop loading" logic if the document loader is already
          stopping loading. Also add an ASSERT that might catch cases where new loads may have been started while old loads
          were being stopped.
        (WebCore::DocumentLoader::detachFromFrame): Be conservative and stop loading when we detach a document loader from a frame. 

2012-01-10  Pavel Feldman  <pfeldman@google.com>

        Not reviewed: fixing the Mac build.

        * inspector/DOMEditor.cpp:
        (WebCore::DOMEditor::patchChildren):

2012-01-09  Jer Noble  <jer.noble@apple.com>

        Elements can appear over fullscreen video
        https://bugs.webkit.org/show_bug.cgi?id=75913

        Reviewed by Simon Fraser.

        No new tests; updated fullscreen/full-screen-zIndex.html to trigger error condition.

        RenderFullScreenPlaceholder inherits the pre-fullscreen element's style, causing a stacking
        context to be created.  Instead of making the placeholder the parent of the RenderFullScreen
        object, make the two renderers siblings.  Then the stacking context created by the placeholder
        will not affect the z-ordering of the RenderFullScreen.

        * rendering/RenderFullScreen.cpp:
        (RenderFullScreen::wrapRenderer):
        (RenderFullScreen::unwrapRenderer):
        (RenderFullScreen::createPlaceholder):

2012-01-10  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: add "free flow DOM editing" experiment.
        https://bugs.webkit.org/show_bug.cgi?id=75955

        This change enables HTML editing from Resources panel experiment.

        Reviewed by Yury Semikhatsky.

        * CMakeLists.txt:
        * English.lproj/localizedStrings.js:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/DOMEditor.cpp: Added.
        (WebCore::DOMEditor::DOMEditor):
        (WebCore::DOMEditor::~DOMEditor):
        (WebCore::DOMEditor::patch):
        (WebCore::DOMEditor::NodeDigest::NodeDigest):
        (WebCore::DOMEditor::patchElement):
        (WebCore::DOMEditor::patchNode):
        (WebCore::DOMEditor::patchChildren):
        (WebCore::addStringToSHA1):
        (WebCore::DOMEditor::createNodeDigest):
        * inspector/DOMEditor.h: Added.
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::setOuterHTML):
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMAgent):
        (WebInspector.DOMModelResourceBinding):
        (WebInspector.DOMModelResourceBinding.prototype.setContent):
        (WebInspector.DOMModelResourceBinding.prototype.canSetContent):
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):

2012-01-10  Stephen Chenney  <schenney@chromium.org>

        [Chromium] Shift PathSkia to use Skia's new RawIter
        https://bugs.webkit.org/show_bug.cgi?id=75703

        Reviewed by Nikolas Zimmermann.

        No new tests required - covered by existing tests.

        * platform/graphics/Path.h: Added comments ont he return values from iteration.
        * platform/graphics/skia/PathSkia.cpp:
        (WebCore::Path::apply): Switched to SkPath::RawIter

2012-01-10  Peter Beverloo  <peter@chromium.org>

        [Chromium] Use SkFontHost::GetUnitsPerEm instead of advanced type
        metrics for Android in FontPlatformData
        https://bugs.webkit.org/show_bug.cgi?id=75702

        Reviewed by Stephen White.

        Since Skia for Android doesn't implement advanced type metric routines,
        use an alternative method to calculate the number of font units for an
        em size. This will be exercized by existing layout tests, as it's being
        used by the ComplexTextController.

        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
        (WebCore::FontPlatformData::emSizeInFontUnits):

2012-01-10  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed, inspector style fix.

        Web Inspector: elements tree is shifted 12px to the right.
        https://bugs.webkit.org/show_bug.cgi?id=75609

        * inspector/front-end/elementsPanel.css:
        (#elements-content):

2012-01-10  Zoltan Herczeg  <zherczeg@webkit.org>

        Fix style errors in CSSParser.cpp
        https://bugs.webkit.org/show_bug.cgi?id=75854

        Reviewed by Nikolas Zimmermann.

        Minor style fixes.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseShadow):
        (WebCore::isBorderImageRepeatKeyword):
        (WebCore::BorderImageSliceParseContext::commitBorderImageSlice):
        (WebCore::BorderImageQuadParseContext::commitBorderImageQuad):
        (WebCore::filterInfoForName):

2012-01-10  Julien Chaffraix  <jchaffraix@webkit.org>

        REGRESSION (r93614): Safari Reader doesn't repaint correctly when scrolling
        https://bugs.webkit.org/show_bug.cgi?id=67100

        Reviewed by Dan Bernstein.

        Tests: fast/layers/scroll-with-transform-composited-layer.html
               fast/layers/scroll-with-transform-layer.html

        The regression came from a previous optimization that was wrongly kept after r93614.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
        Remove the early return for transformed layer. This change worked as we used
        to call updateLayerPositions from scrollTo which would call updateLayerPosition on
        all our descendants. After r93614, this is no longer the case and we explicitely need
        to call updateLayerPosition on our descendants from updateLayerPositionsAfterScroll.

2012-01-10  Stephen White  <senorblanco@chromium.org>

        Fix Chrome/Mac build.

        Build fix; unreviewed.

        * platform/graphics/filters/skia/FEColorMatrixSkia.cpp:
        (WebCore::luminanceToAlphaMatrix):

2012-01-06  Stephen White  <senorblanco@chromium.org>

        [Skia] Switch FEColorMatrix to use a skia-based implementation when
        compiling with USE(SKIA).  This change will also switch the software
        implementation of FEGaussianBlur to the skia implementation (ie.,
        it removes the acceleration check).
        https://bugs.webkit.org/show_bug.cgi?id=75582

        Reviewed by Dirk Schulze.

        Covered by svg/W3C-SVG-1.1/filters-color-01-b.svg and friends (will
        need a rebaseline).

        * WebCore.gypi:
        Add FEColorMatrixSkia.cpp to the build.
        * platform/graphics/filters/FEColorMatrix.h:
        Add platformApplySkia().
        * platform/graphics/filters/FEGaussianBlur.cpp:
        (WebCore::FEGaussianBlur::platformApplySoftware):
        Remove skia-specific code from FEGaussianBlur::platformApplySoftware().
        * platform/graphics/filters/FEGaussianBlur.h:
        Make platformApplySkia() virtual, and put it behind #if USE(SKIA).
        * platform/graphics/filters/FilterEffect.cpp:
        (WebCore::FilterEffect::apply):
        Call out to platformApplySkia(), or fall back to
        platformApplySoftware().
        * platform/graphics/filters/FilterEffect.h:
        Add platformApplySkia().
        * platform/graphics/filters/skia/FEColorMatrixSkia.cpp: Added.
        (WebCore::saturateMatrix):
        (WebCore::hueRotateMatrix):
        (WebCore::luminanceToAlphaMatrix):
        (WebCore::FEColorMatrix::platformApplySkia):
        Process color matrix effect, by calling out to generic matrix
        version of SkColorMatrixFilter.
        * platform/graphics/filters/skia/FEGaussianBlurSkia.cpp:
        (WebCore::FEGaussianBlur::platformApplySkia):
        Change the signature of FEGaussianBlur::platformApplySkia to be an
        override of the new FilterEffect base class version.

2012-01-10  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: fix DebuggerPresentationModel::uiSourceCodes - do not iterate
        over same raw source code multiple times.
        https://bugs.webkit.org/show_bug.cgi?id=75953

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel):
        (WebInspector.DebuggerPresentationModel.prototype._bindScriptToRawSourceCode):
        (WebInspector.DebuggerPresentationModel.prototype.uiSourceCodes):
        (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
        (WebInspector.DebuggerPresentationModel.prototype._consoleCleared):
        (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):

2012-01-10  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Qt] Enable CSS_FILTERS in Qt build
        https://bugs.webkit.org/show_bug.cgi?id=75777

        Enable CSS_FILTERS and unskip the tests.

        Reviewed by Kenneth Rohde Christiansen.

        Filter tests are now unskipped for Qt.

        * Target.pri: add missing files to build.

2012-01-10  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: typo: NetworkAgent.canClearBrowserCache -> NetworkAgent.canClearBrowserCookies.
        https://bugs.webkit.org/show_bug.cgi?id=75949

        Reviewed by Andreas Kling.

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

2012-01-10  pfeldman@chomium.org  <pavel.feldman@gmail.com>

        Web Inspector: restore front-end compilation
        https://bugs.webkit.org/show_bug.cgi?id=75625

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.replaceSourceFrames):
        * inspector/front-end/TabbedPane.js:
        * inspector/front-end/externs.js:
        (WebInspector.isCompactMode):
        * inspector/front-end/treeoutline.js:

2012-01-10  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        Add NULL checks to setting access obtained on frame and document.
        https://bugs.webkit.org/show_bug.cgi?id=72002

        Reviewed by Andreas Kling.

        Adds NULL checks to setting object where it's required.
        Generally WebCore checks NULL which may be returned from setting object obtained
        on frame or document but in some cases these are skipped. These checks are not
        needed to setting's access on page object.

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::shouldAccelerate):
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::scheduleArchiveLoad):
        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::requestPlugin):
        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::selectCache):
        (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
        * page/DragController.cpp:
        (WebCore::DragController::draggableNode):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMouseReleaseEvent):
        * page/FocusController.cpp:
        (WebCore::FocusController::advanceFocusInDocumentOrder):
        * rendering/RenderFrameSet.cpp:
        (WebCore::RenderFrameSet::flattenFrameSet):
        * rendering/RenderIFrame.cpp:
        (WebCore::RenderIFrame::flattenFrame):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateBacking):
        * rendering/RenderText.cpp:
        (WebCore::SecureTextTimer::restartWithNewText):

2012-01-10  Andreas Kling  <awesomekling@apple.com>

        Matched declaration cache should support mapped attribute declarations.
        <http://webkit.org/b/75948>

        Reviewed by Antti Koivisto.

        Support caching of matches that include mapped attribute declarations.
        To make this possible, let the cache hold references to the matched style declarations.
        Otherwise, declarations are assumed to survive until ~CSSStyleSelector, which may not
        be the case for CSSMappedAttributeDeclaration.

        To avoid hoarding of stale CSSMappedAttributeDeclarations in the cache, do a sweep for
        every 100 additions and garbage collect any entries containing a declaration that is
        only referenced by the cache.

        This increases cache hit rate by up to ~10% on the Alexa top sites.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::CSSStyleSelector):
        (WebCore::CSSStyleSelector::sweepMatchedDeclarationCache):
        (WebCore::CSSStyleSelector::matchAllRules):
        (WebCore::CSSStyleSelector::applyDeclarations):
        (WebCore::CSSStyleSelector::addToMatchedDeclarationCache):
        * css/CSSStyleSelector.h:

2012-01-10  Kenichi Ishibashi  <bashi@chromium.org>

        Complex path should be used when UVS exists in text run
        https://bugs.webkit.org/show_bug.cgi?id=75289

        Uses complex path when a text run contains UVS. The range from U+180B to U+180D already uses complex path.
        Removes unnecessary functions that were added by r102915.

        Reviewed by Dan Bernstein.

        No new tests. fast/text/unicode-variation-selector.html should take care of this change.

        * platform/graphics/Font.cpp:
        (WebCore::Font::codePath): Use Complex path when the text run contains UVS.
        * platform/graphics/SimpleFontData.h: Removed updateGlyphWithVariationSelector().
        * platform/graphics/SurrogatePairAwareTextIterator.cpp: Removed unnecessary static functions.
        * platform/graphics/SurrogatePairAwareTextIterator.h: Removed hasTrailingVariationSelector().
        * platform/graphics/WidthIterator.cpp:
        (WebCore::WidthIterator::advance): Removed UVS detection code.
        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: Removed updateGlyphWithVariationSelector().
        * platform/graphics/freetype/SimpleFontDataFreeType.cpp: Ditto.
        * platform/graphics/harfbuzz/SimpleFontDataSkia.cpp: Ditto.
        * platform/graphics/mac/SimpleFontDataMac.mm: Ditto.
        * platform/graphics/pango/SimpleFontDataPango.cpp: Ditto.
        * platform/graphics/qt/SimpleFontDataQt.cpp: Ditto.
        * platform/graphics/win/SimpleFontDataWin.cpp: Ditto.
        * platform/graphics/wince/SimpleFontDataWinCE.cpp: Ditto.
        * platform/graphics/wx/SimpleFontDataWx.cpp: Ditto.

2012-01-10  Kenichi Ishibashi  <bashi@chromium.org>

        WebFonts are re-fetched from the server upon Document::styleSelectorChanged call.
        https://bugs.webkit.org/show_bug.cgi?id=73419

        Holds the CachedFont handle in CSSFontFaceSrcValue so that avoiding re-validation during style recalculation.

        Reviewed by Dan Bernstein.

        Test: http/tests/css/font-face-src-loading.html

        * css/CSSFontFaceSrcValue.cpp:
        (WebCore::CSSFontFaceSrcValue::cachedFont): Added.
        * css/CSSFontFaceSrcValue.h:
        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule): Gets the CachedFont from CSSFontFaceSrcValue object. The object will request the resource if it doesn't exist.

2012-01-10  pfeldman@chomium.org  <pavel.feldman@gmail.com>

        Web Inspector: introduce experimental setting that makes source files always editable
        https://bugs.webkit.org/show_bug.cgi?id=75626

        Reviewed by Timothy Hatcher.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame):
        (WebInspector.JavaScriptSourceFrame.prototype.setReadOnly):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView):
        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.NavigatorScriptTreeElement.prototype.onselect):
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/SourceFrame.js:
        (WebInspector.SourceFrame):
        (WebInspector.SourceFrame.prototype.get statusBarItems):
        (WebInspector.SourceFrame.prototype.setReadOnly):
        * inspector/front-end/inspector.js:
        (WebInspector.loaded):

2012-01-09  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r104507.
        http://trac.webkit.org/changeset/104507
        https://bugs.webkit.org/show_bug.cgi?id=75936

        Broke webkit_unit_tests (Requested by dimich on #webkit).

        * WebCore.gypi:
        * platform/graphics/chromium/RenderSurfaceChromium.h:
        * platform/graphics/chromium/cc/CCLayerIterator.cpp: Removed.
        * platform/graphics/chromium/cc/CCLayerIterator.h: Removed.
        * platform/graphics/chromium/cc/CCLayerIteratorPosition.h: Removed.
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::paintLayerContents):
        (WebCore::CCLayerTreeHost::updateCompositorResources):
        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
        (WebCore::walkLayersAndCalculateVisibleLayerRects):
        * platform/graphics/chromium/cc/CCRenderSurface.h:

2012-01-09  Rob Buis  <rbuis@rim.com>

        Upstream change to disable input[color] css rules for BlackBerry port
        https://bugs.webkit.org/show_bug.cgi?id=75719

        Reviewed by Antonio Gomes.

        Do not enable default css color rules for input["color"] for BlackBerry port.

        * CMakeLists.txt:

2012-01-09  Greg Billock  <gbillock@google.com>

        Implement navigator.startActivity; add IntentRequest object for managing web intents callbacks.
        Web content will invoke navigator.startActivity to launch a new Web
        Intents call. Each such call will map to an IntentRequest broker
        object which is used by client code to correlate any return data to
        the (optional) callbacks supplied by web content calls.
        https://bugs.webkit.org/show_bug.cgi?id=75756

        Reviewed by Adam Barth.

        Test: webintents/web-intents-api.html

        * Modules/intents/Intent.cpp: Added.
        (WebCore::Intent::identifier):
        (WebCore::Intent::setIdentifier):
        * Modules/intents/Intent.h: Added.
        * Modules/intents/Intent.idl: Added.
        * Modules/intents/IntentResultCallback.h: Added.
        (WebCore::IntentResultCallback::~IntentResultCallback):
        * Modules/intents/IntentResultCallback.idl: Added.
        * Modules/intents/IntentsRequest.cpp: Added.
        * Modules/intents/IntentsRequest.h: Added.
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * bindings/scripts/CodeGeneratorV8.pm:
        (GetNativeTypeForCallbacks):
        * loader/FrameLoaderClient.h:
        (WebCore::FrameLoaderClient::dispatchIntent):

2012-01-09  Dan Bernstein  <mitz@apple.com>

        -[DOMRange renderedImageForcingBlackText:] fails with non-user-selectable text
        https://bugs.webkit.org/show_bug.cgi?id=75920

        Reviewed by Darin Adler.

        Test: added to TestWebKitAPI/Tests/mac/RenderedImageFromDOMRange.mm

        * page/mac/FrameMac.mm:
        (WebCore::Frame::rangeImage): Removed the requirement that the start and end positions used
        for setting the selection in the render tree be candidates.

2012-01-06  Hajime Morrita  <morrita@chromium.org>

        [Refactoring] Moving between TreeScopes should be done by its own class.
        https://bugs.webkit.org/show_bug.cgi?id=75290

        Reviewed by Ryosuke Niwa.

        This change extracted Node::setTreeScopeRecursively(),
        setDocumentRecursively() and a part of setDocument() into a new
        class called TreeScopeAdopter. By doing this, the idea of
        moving a node from scope to scope, that was originally hidden
        behind the forest of Node APIs, has become clearer.

        Note that this change is a preparation for Bug 59816.

        No new tests. No behavioral change.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/ContainerNode.cpp: Followed the renaming.
        (WebCore::ContainerNode::takeAllChildrenFrom):
        (WebCore::ContainerNode::insertBefore):
        (WebCore::ContainerNode::replaceChild):
        (WebCore::ContainerNode::removeBetween):
        (WebCore::ContainerNode::removeChildren):
        (WebCore::ContainerNode::appendChild):
        (WebCore::ContainerNode::parserAddChild):
        * dom/DOMAllInOne.cpp:
        * dom/Document.cpp: Followed te renaming.
        (WebCore::Document::setDocType):
        (WebCore::Document::adoptNode):
        * dom/Element.cpp: Followed te renaming.
        (WebCore::Element::removeShadowRoot):
        * dom/Node.cpp:
        (WebCore::Node::setDocument):
        (WebCore::Node::setTreeScope):
        (WebCore::Node::didMoveToNewDocument):
        * dom/Node.h:
        * dom/TreeScope.h:
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::adoptIfNeeded): moved from setTreeScopeRecursively()
        * dom/TreeScopeAdopter.cpp: Added.
        (WebCore::TreeScopeAdopter::TreeScopeAdopter):
        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
        (WebCore::TreeScopeAdopter::moveTreeToNewDocument):
        (WebCore::TreeScopeAdopter::ensureDidMoveToNewDocumentWasCalled):
        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
        * dom/TreeScopeAdopter.h: Added.
        (WebCore::TreeScopeAdopter::ensureDidMoveToNewDocumentWasCalled):
        (WebCore::TreeScopeAdopter::execute):
        (WebCore::TreeScopeAdopter::needsScopeChange()):
        (WebCore::TreeScopeAdopter::shadowRootFor):

2012-01-09  Adam Barth  <abarth@webkit.org>

        run-bindings-tests should exercise all the IDL attributes we use
        https://bugs.webkit.org/show_bug.cgi?id=75900

        Reviewed by Eric Seidel.

        I just grepped through the code generator script for IDL attributes and
        wrote tests for them.

        * bindings/scripts/test/CPP/WebDOMTestActiveDOMObject.cpp: Added.
        * bindings/scripts/test/CPP/WebDOMTestActiveDOMObject.h: Added.
        * bindings/scripts/test/CPP/WebDOMTestEventTarget.cpp: Added.
        * bindings/scripts/test/CPP/WebDOMTestEventTarget.h: Added.
        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
        * bindings/scripts/test/CPP/WebDOMTestObj.h:
        * bindings/scripts/test/CPP/WebDOMTestOverridingNameGetter.cpp: Added.
        * bindings/scripts/test/CPP/WebDOMTestOverridingNameGetter.h: Added.
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp: Added.
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h: Added.
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h: Added.
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp: Added.
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h: Added.
        * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h: Added.
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestOverridingNameGetter.cpp: Added.
        * bindings/scripts/test/GObject/WebKitDOMTestOverridingNameGetter.h: Added.
        * bindings/scripts/test/GObject/WebKitDOMTestOverridingNameGetterPrivate.h: Added.
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: Added.
        * bindings/scripts/test/JS/JSTestActiveDOMObject.h: Added.
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        * bindings/scripts/test/JS/JSTestEventTarget.cpp: Added.
        * bindings/scripts/test/JS/JSTestEventTarget.h: Added.
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        * bindings/scripts/test/JS/JSTestInterface.h:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        * bindings/scripts/test/JS/JSTestObj.h:
        * bindings/scripts/test/JS/JSTestOverridingNameGetter.cpp: Added.
        * bindings/scripts/test/JS/JSTestOverridingNameGetter.h: Added.
        * bindings/scripts/test/ObjC/DOMTestActiveDOMObjectInternal.h: Added.
        * bindings/scripts/test/ObjC/DOMTestEventTarget.h: Added.
        * bindings/scripts/test/ObjC/DOMTestEventTarget.mm: Added.
        * bindings/scripts/test/ObjC/DOMTestEventTargetInternal.h: Added.
        * bindings/scripts/test/ObjC/DOMTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        * bindings/scripts/test/ObjC/DOMTestOverridingNameGetter.h: Added.
        * bindings/scripts/test/ObjC/DOMTestOverridingNameGetter.mm: Added.
        * bindings/scripts/test/ObjC/DOMTestOverridingNameGetterInternal.h: Added.
        * bindings/scripts/test/TestDomainSecurity.idl: Added.
        * bindings/scripts/test/TestEventConstructor.idl:
        * bindings/scripts/test/TestEventTarget.idl: Added.
        * bindings/scripts/test/TestInterface.idl:
        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/TestOverridingNameGetter.idl: Added.
        * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp: Added.
        * bindings/scripts/test/V8/V8TestActiveDOMObject.h: Added.
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
        * bindings/scripts/test/V8/V8TestEventTarget.cpp: Added.
        * bindings/scripts/test/V8/V8TestEventTarget.h: Added.
        * bindings/scripts/test/V8/V8TestInterface.h:
        * bindings/scripts/test/V8/V8TestObj.cpp:
        * bindings/scripts/test/V8/V8TestOverridingNameGetter.cpp: Added.
        * bindings/scripts/test/V8/V8TestOverridingNameGetter.h: Added.

2012-01-09  Nat Duca  <nduca@chromium.org>

        [chromium] Add documentation to updater classes
        https://bugs.webkit.org/show_bug.cgi?id=75866

        Reviewed by James Robinson.

        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
        * platform/graphics/chromium/CanvasLayerTextureUpdater.h:
        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h:
        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h:

2012-01-09  Adam Barth  <abarth@webkit.org>

        Remove unused variable from CodeGeneratorV8
        https://bugs.webkit.org/show_bug.cgi?id=75895

        Reviewed by Eric Seidel.

        Unused variables aren't worth keeping around.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader):
        (GenerateImplementation):

2012-01-09  Dana Jansens  <danakj@chromium.org>

        [chromium] Create iterators for the RenderSurface-Layer tree
        https://bugs.webkit.org/show_bug.cgi?id=74203

        Reviewed by James Robinson.

        New unit tests: CCLayerIteratorTest.cpp

        * WebCore.gypi:
        * platform/graphics/chromium/RenderSurfaceChromium.h:
        * platform/graphics/chromium/cc/CCLayerIterator.cpp: Added.
        (WebCore::CCLayerIteratorActions::BackToFront::begin):
        (WebCore::CCLayerIteratorActions::BackToFront::end):
        (WebCore::CCLayerIteratorActions::BackToFront::next):
        (WebCore::CCLayerIteratorActions::FrontToBack::begin):
        (WebCore::CCLayerIteratorActions::FrontToBack::end):
        (WebCore::CCLayerIteratorActions::FrontToBack::next):
        (WebCore::CCLayerIteratorActions::FrontToBack::goToHighestInSubtree):
        * platform/graphics/chromium/cc/CCLayerIterator.h: Added.
        (WebCore::CCLayerIterator::CCLayerIterator):
        (WebCore::CCLayerIterator::begin):
        (WebCore::CCLayerIterator::end):
        (WebCore::CCLayerIterator::operator++):
        (WebCore::CCLayerIterator::operator==):
        (WebCore::CCLayerIterator::operator!=):
        (WebCore::CCLayerIterator::operator->):
        (WebCore::CCLayerIterator::operator*):
        (WebCore::CCLayerIterator::representsTargetRenderSurface):
        (WebCore::CCLayerIterator::representsContributingRenderSurface):
        (WebCore::CCLayerIterator::representsItself):
        (WebCore::CCLayerIterator::targetRenderSurfaceLayer):
        * platform/graphics/chromium/cc/CCLayerIteratorPosition.h: Added.
        (WebCore::CCLayerIteratorPosition::CCLayerIteratorPosition):
        (WebCore::CCLayerIteratorPosition::currentLayer):
        (WebCore::CCLayerIteratorPosition::currentLayerRepresentsContributingRenderSurface):
        (WebCore::CCLayerIteratorPosition::currentLayerRepresentsTargetRenderSurface):
        (WebCore::CCLayerIteratorPosition::targetRenderSurfaceLayer):
        (WebCore::CCLayerIteratorPosition::targetRenderSurface):
        (WebCore::CCLayerIteratorPosition::targetRenderSurfaceChildren):
        (WebCore::CCLayerIteratorPosition::operator==):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::paintLayerContents):
        (WebCore::CCLayerTreeHost::updateCompositorResources):
        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
        (WebCore::walkLayersAndCalculateVisibleLayerRects):
        * platform/graphics/chromium/cc/CCRenderSurface.h:

2012-01-09  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Throw exception if IDBCursor.continue() called with lower key than current
        https://bugs.webkit.org/show_bug.cgi?id=74213

        Reviewed by Tony Chang.

        * storage/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::continueFunction):

2012-01-09  Justin Novosad  <junov@chromium.org>

        [chromium win] Creating lots of temporary canvas contexts will crash.
        https://bugs.webkit.org/show_bug.cgi?id=68420

        When using the skia port, the allocation of 2d canvas backing stores
        no longer needs to be done through a platform API (GDI/CG) because
        canvases now use skia for drawing text.  Removing the allocation through
        GDI on windows prevents resource exhaustion due to unreferenced canvases
        that are awaiting garbage collection.

        Reviewed by Stephen White.

        No new tests: Relying on existing canvas layout tests.

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::createImageBuffer):
        * platform/graphics/ImageBuffer.h:
        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::createNonPlatformCanvas):
        (WebCore::ImageBuffer::ImageBuffer):

2012-01-09  Avi Drissman  <avi@chromium.org>

        https://bugs.webkit.org/show_bug.cgi?id=75860
        [Chromium Mac] no background is drawn for input elements

        Reviewed by Dimitri Glazkov.

        Reverts r104240 for Chromium. Unfortunately the code that uses Cocoa
        API misbehaves when built with the 10.5 SDK, so we use SPI. For now.

        * rendering/RenderThemeChromiumMac.h:
        * rendering/RenderThemeChromiumMac.mm:
        (WebCore::RenderThemeChromiumMac::paintTextField):

2012-01-09  Pablo Flouret  <pablof@motorola.com>

        Compilation error on build-webkit --debug --no-3d-canvas on mac.
        https://bugs.webkit.org/show_bug.cgi?id=75878

        Reviewed by Alexey Proskuryakov.

        * html/canvas/WebGLContextEvent.cpp:

2012-01-09  Tom Sepez  <tsepez@chromium.org>

        Treat code="" attribute in embed tags similarly to applet tags.
        https://bugs.webkit.org/show_bug.cgi?id=75871

        Reviewed by Daniel Bates.

        Tests: http/tests/security/xssAuditor/embed-tag-code-attribute-2.html
               http/tests/security/xssAuditor/embed-tag-code-attribute.html

        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::filterEmbedToken):

2012-01-09  Justin Novosad  <junov@chromium.org>

        [Chromium] remove all references to the legacy accelerated 2d Canvas
        implementation
        https://bugs.webkit.org/show_bug.cgi?id=75108

        Purging an old settings flag that is no longer referenced

        Reviewed by Darin Fisher.

        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h:

2012-01-09  Eric Carlson  <eric.carlson@apple.com>

        REGRESSION(r104327?): media/track/track-cues-cuechange.html and track-cues-enter-exit.html 
        intermittently time out, media/track/track-cues-seeking and  fails
        https://bugs.webkit.org/show_bug.cgi?id=75817

        Unreviewed, fix a problem introduced in r104327.

        No new tests, covered by existing tests.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_ignoreTrackDisplayUpdate.

2012-01-09  Raymond Toy  <rtoy@google.com>

        Add normalize attribute to ConvolverNode to disable normalization.
        https://bugs.webkit.org/show_bug.cgi?id=75126

        Reviewed by Kenneth Russell.

        Tests added in convolution-mono-mono.html.

        * platform/audio/Reverb.cpp:
        (WebCore::Reverb::Reverb): Add extra arg to indicate whether
        normalization is enabled or not, and do it.
        * platform/audio/Reverb.h: Update declaration.
        * webaudio/ConvolverNode.cpp:
        (WebCore::ConvolverNode::ConvolverNode): Initialize attribute (to
        true).
        (WebCore::ConvolverNode::setBuffer): Call Reverb with
        normalization argument.
        * webaudio/ConvolverNode.h:
        (WebCore::ConvolverNode::normalize): New method to return
        normalization. 
        (WebCore::ConvolverNode::setNormalize):  New method to set
        normalization. 
        * webaudio/ConvolverNode.idl: Add normalize attribute.
        * LayoutTests/webaudio/convolution-mono-mono.html:
        * LayoutTests/webaudio/convolution-mono-mono-expected.txt:
        * LayoutTests/webaudio/resources/convolution-testing.js:
        Test for convolution.  Tests only work when normalization is
        disabled.

2012-01-09  Judy Hao  <judy.liqiong-hao@nokia.com>

        [GStreamer] webkitwebsrc: pad template is leaked
        https://bugs.webkit.org/show_bug.cgi?id=74224

        Reviewed by Philippe Normand.

        Use a GstPadTemplate smart pointer in webkit_web_src_init to
        avoid a memory leak.

        Fixing memory leaks. So, no new test case is introduced.

        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (webkit_web_src_init):

2012-01-09  Xianzhu Wang  <wangxianzhu@chromium.org>

        Avoid unnecessary TextureManager::reduceMemoryToLimit().
        https://bugs.webkit.org/show_bug.cgi?id=75632

        Unnecessary TextureManager::reduceMemoryToLimit() will cause some tile
        textures that are required soon to be unnecessarily removed/replaced,
        and degrade performance, sometimes significantly.

        For example, CCLayerTreeHost::setViewport will be called during
        scrolling. The original code would call TextureManager::reduceMemoryToLimit(),
        causing some textures unnecessarily discarded and then recreated
        repeatedly during scrolling.

        It's also unnecessary to call TextureManager::reduceMemoryToLimit()
        from TextureManager::setPreferredMemoryLimitBytes() because the limit
        is not a hard limit. The callers should call reduceMemoryToLimit()
        explicitly if it wants it when setting the preferred memory limit.

        Reviewed by James Robinson.

        Tests: webkit_unit_tests --gtest_filter=TextureManagerTest.*:CCLayerTreeHostTestSetViewportSize.*

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::finishDrawingFrame): Call reduceMemoryToLimit() explicitly
        * platform/graphics/chromium/TextureManager.cpp:
        (WebCore::TextureManager::setPreferredMemoryLimitBytes): Removed call to reduceMemoryToLimit().
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
        (WebCore::CCLayerTreeHost::setViewportSize): Changed name from setViewport(). Check change of viewportSize.
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::setViewportSize): Changed name from setViewport()
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:

2012-01-09  Sami Kyostila  <skyostil@chromium.org>

        [Chromium] JPEG RGB swizzling order should match platform pixel format
        https://bugs.webkit.org/show_bug.cgi?id=75861

        Choose between JCS_EXT_BGRX and JCS_EXT_RGBX channel swizzling
        based on the configured Skia 32-bit pixel format.

        Reviewed by Kenneth Russell.

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (rgbOutputColorSpace):

2012-01-09  Alexis Menard  <alexis.menard@openbossa.org>

        getComputedStyle for border-radius is not implemented.
        https://bugs.webkit.org/show_bug.cgi?id=75630

        Reviewed by Tony Chang.

        Implement getComputedStyle for border-radius shorthand property.

        Test: fast/css/getComputedStyle/getComputedStyle-border-radius-shorthand.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::getBorderRadiusCornerValues):
        (WebCore::getBorderRadiusCornerValue):
        (WebCore::getBorderRadiusShorthandValue):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2012-01-09  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r104418.
        http://trac.webkit.org/changeset/104418
        https://bugs.webkit.org/show_bug.cgi?id=75855

        we still need to build against CG on Mac sometimes (Requested
        by epoger on #webkit).

        * WebCore.gyp/WebCore.gyp:

2012-01-09  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [AC] Simplify accelerated compositing build options
        https://bugs.webkit.org/show_bug.cgi?id=75518

        Reviewed by Gustavo Noronha Silva.

        * GNUmakefile.am: Automatically enable 3D rendering when AC is available.
        * GNUmakefile.list.am: Clean up a comment.

2012-01-09  Antti Koivisto  <antti@apple.com>

        possible regression: r104060 maybe causing crashes
        https://bugs.webkit.org/show_bug.cgi?id=75676

        Reviewed by Andreas Kling.

        Based on the stacks, CSSStyleSelector may be getting deleted from under the
        CSSStyleSelector::appendAuthorStylesheets call. Protect by temporarily detaching
        from the document. Also add assertions to catch the case.
        
        No test, there is no known repro and the fix is speculative.

        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::setDocType):
        (WebCore::Document::childrenChanged):
        (WebCore::Document::clearStyleSelector):
        (WebCore::Document::updateActiveStylesheets):
        * dom/Document.h:

2012-01-09  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Use Vector<OwnPtr> for m_viewportDependentMediaQueryResults in CSSStyleSelector
        https://bugs.webkit.org/show_bug.cgi?id=75723

        Reviewed by Andreas Kling.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::~CSSStyleSelector):
        (WebCore::CSSStyleSelector::addViewportDependentMediaQueryResult):
        * css/CSSStyleSelector.h:

2012-01-09  Alexis Menard  <alexis.menard@openbossa.org>

        Extend CSSValueList to allow slash separated lists.
        https://bugs.webkit.org/show_bug.cgi?id=75841

        Reviewed by Andreas Kling.

        Multiple CSS properties are using slash to separate
        various parts (e.g. border-radius) so having this
        feature available in CSSValueList will make it easier
        in the future to support these properties.

        No new tests : existing ones should cover the refactor.

        * css/CSSInitialValue.h:
        (WebCore::CSSInitialValue::isImplicit):
        (WebCore::CSSInitialValue::CSSInitialValue):
        * css/CSSValue.cpp:
        (WebCore::CSSValue::isImplicitInitialValue):
        * css/CSSValue.h:
        In order for CSSValue to not grow I moved m_isImplicitInitialValue
        back to CSSInitialValue as this object is used only in CSSValuePool
        and is allocated only twice.
        (WebCore::CSSValue::CSSValue):
        * css/CSSValueList.cpp:
        (WebCore::CSSValueList::CSSValueList):
        (WebCore::CSSValueList::copy):
        Fix also usage of PassRefPtr.
        (WebCore::CSSValueList::customCssText):
        Refactor to use StringBuilder.
        * css/CSSValueList.h:
        (WebCore::CSSValueList::createCommaSeparated):
        (WebCore::CSSValueList::createSpaceSeparated):
        (WebCore::CSSValueList::createSlashSeparated):
        * css/WebKitCSSFilterValue.cpp:
        (WebCore::WebKitCSSFilterValue::WebKitCSSFilterValue):
        * css/WebKitCSSTransformValue.cpp:
        (WebCore::WebKitCSSTransformValue::WebKitCSSTransformValue):

2012-01-09  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Texmap] Move surface management from TextureMapperNode to TextureMapper
        https://bugs.webkit.org/show_bug.cgi?id=75779

        Instead of a TextureMapperSurfaceManager class inside of TextureMapperNode.cpp, we now
        maintain that surface pool inside of the TextureMapper class. This will later allow us to
        allocate intermediate surface from within TextureMapperGL, a functionality we need for
        filters.

        Also, surfaces are not automatically created with the viewport size, but rather with the
        size passed as a parameter. The surface from the pool is the smallest texture that is
        larger than the required size, or any texture if such texture is not yet allocated.

        Reviewed by Kenneth Rohde Christiansen.

        Tests in LayoutTests/compositing already cover this.

        * GNUmakefile.list.am: Added TextureMapper.cpp to the build.
        * Target.pri: Added TextureMapper.cpp to the build.
        * WebCore.gypi: Added TextureMapper.cpp to the build.
        * platform/graphics/texmap/TextureMapper.cpp: Added.
        * platform/graphics/texmap/TextureMapper.h:
        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::paint):
        (WebCore::TextureMapperNode::paintReflection):
        (WebCore::TextureMapperNode::paintRecursive):
        * platform/graphics/texmap/TextureMapperNode.h:
        (WebCore::TextureMapperNode::TextureMapperNode):

2012-01-09  Mario Sanchez Prada  <msanchez@igalia.com>

        [Gtk] Regression: text-inserted events lack text inserted and current line
        https://bugs.webkit.org/show_bug.cgi?id=72830

        Reviewed by Martin Robinson.

        Fix issue getting the exposed text for an accessibility object at,
        before of after a given offset, after changing it at least once.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (webkit_accessible_class_init): Don't initialize
        gailTextUtilQuark, it won't be used anymore.
        (getGailTextUtilForAtk): Don't cache the GailTextUtil as object
        data, but create a new one each time this function is called.
        (webkit_accessible_text_get_caret_offset): Simplified code by
        using the new focusedObjectAndCaretOffsetUnignored function,
        instead of the old objectAndOffsetUnignored function.
        (focusedObjectAndCaretOffsetUnignored): Rewrite of the old
        objectAndOffsetUnignored function so it now needs less
        parameters than before and takes care of carefully selecting the
        start and end visible positions to calculate the position of the
        caret from the point of view of the accessibility object of
        reference passed as the only input parameter now. Updated callers.
        * accessibility/gtk/AccessibilityObjectWrapperAtk.h:

        * editing/gtk/FrameSelectionGtk.cpp:
        (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
        Simplified code by calling to focusedObjectAndCaretOffsetUnignored
        function, instead of the old objectAndOffsetUnignored function.

2012-01-09  Antti Koivisto  <antti@apple.com>

        Subtree invalidation on stylesheet change
        https://bugs.webkit.org/show_bug.cgi?id=75834

        Reviewed by Andreas Kling.
        
        Currently if we add a stylesheet with scoped selectors and matching scope elements exist,
        we recalculate the entire document style. It is sufficient to invalidate the subtrees 
        matching the scope only.
        
        This allows us to do less full style recalcs on many popular web sites (nytimes.com for example).
        Subtree recalcs are typically much cheaper.
        
        Test: fast/css/id-or-class-before-stylesheet.html

        * dom/Document.cpp:
        (WebCore::Document::testAddedStylesheetRequiresStyleRecalc):
        (WebCore::Document::analyzeStylesheetChange):
        (WebCore::Document::updateActiveStylesheets):
        * dom/Document.h:

2012-01-09  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distcheck issues.

        * GNUmakefile.list.am: Add missing header.

2012-01-09  Kentaro Hara  <haraken@chromium.org>

        [Refactoring] Use join(", ", @arguments) to build a method argument string
        in CodeGeneratorJS.pm
        https://bugs.webkit.org/show_bug.cgi?id=75830

        Reviewed by Adam Barth.

        The code in CodeGeneratorJS.pm to build a method argument string is dirty
        and error-prone. It is concatenating arguments one by one judging whether
        ", " is necessary or not. This patch refactors the code so that it pushes
        all arguments into @arguments and then builds a method string by
        join(", ", @arguments).

        Test: bindings/scripts/test/*

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        (GenerateParametersCheck):
        (GenerateImplementationFunctionCall):

2012-01-09  Andreas Kling  <awesomekling@apple.com>

        CSSMutableStyleDeclaration: Remove propertiesEqual().
        <http://webkit.org/b/75829>

        Reviewed by Antti Koivisto.

        Remove propertiesEqual() since it was wrong (it only compared CSSValue pointers,
        not the actual values.)

        Skip comparing the style declarations in NamedNodeMap::mappedMapsEquivalent()
        and just compare pointers instead. This is possible because the declarations
        all come from the mapped attribute/declaration table.

        * css/CSSMutableStyleDeclaration.h:
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::mappedMapsEquivalent):

2012-01-09  Adam Barth  <abarth@webkit.org>

        insertAdjacentHTML doesn't play nice with DocumentFragment
        https://bugs.webkit.org/show_bug.cgi?id=75826

        Reviewed by Eric Seidel.

        Test: fast/dom/insertAdjacentHTML-DocumentFragment-crash.html

        Document nodes aren't the only non-Element ContainerNodes.

        * html/HTMLElement.cpp:
        (WebCore::contextElementForInsertion):

2012-01-09  Andreas Kling  <awesomekling@apple.com>

        CSSStyleSelector: Any attribute with a decl() can be assumed to be mapped.
        <http://webkit.org/b/75832>

        Reviewed by Antti Koivisto.

        Replace isMappedAttribute() check with an assertion. Only a mapped attribute
        will have an associated style declaration.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchAllRules):

2012-01-09  Kentaro Hara  <haraken@chromium.org>

        [Refactoring] Use join(", ", @arguments) to build a method argument
        string in CodeGeneratorV8.pm
        https://bugs.webkit.org/show_bug.cgi?id=75828

        Reviewed by Darin Adler.

        The code in CodeGeneratorV8.pm to build a method argument string is dirty
        and error-prone. It is concatenating arguments one by one judging whether
        ", " is necessary or not. This patch refactors the code so that it pushes
        all arguments into @arguments and then builds a method string by
        join(", ", @arguments).

        Test: bindings/scripts/test/*

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateFunctionCallString):

2012-01-08  Benjamin Poulain  <benjamin@webkit.org>

        Build fix: ScrollAnimatorMac has missing initializer in systemUptime()
        https://bugs.webkit.org/show_bug.cgi?id=75827

        Reviewed by Darin Adler.

        Explicitly initialize the struct timeval to avoid compiler warnings.

        * platform/mac/ScrollAnimatorMac.mm:
        (systemUptime):

2012-01-08  ChangSeok Oh  <shivamidow@gmail.com>

        Memory allocation mismatch by using adoptArrayPtr in GraphicsContext3DOpenGL.cpp
        https://bugs.webkit.org/show_bug.cgi?id=75820

        Reviewed by Darin Adler.

        Dbates submitted a patch to release fastMalloc allocation
        in GraphicsContext3DOpenGL.cpp properly.
        See http://trac.webkit.org/browser/trunk/Source/WebCore/ChangeLog?rev=104395
        But one thing similar to the above still remains mismatched.

        No new tests required.

        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
        (WebCore::GraphicsContext3D::getShaderInfoLog):

2012-01-08  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Use the concrete FrameNetworkingContextBlackBerry to access Frame
        https://bugs.webkit.org/show_bug.cgi?id=75611

        Reviewed by Antonio Gomes.

        In platform/network/blackberry/ResourceHandleBlackBerry.cpp, we were using
        NetworkingContext::wrappedFrame() to access the frame associated with the
        networking context. NetworkingContext::wrappedFrame() was added as a virtual
        function by the BlackBerry porting internally. It's unnecessary because
        FrameNetworkingContextBlackBerry inherits from FrameNetworkingContext which
        has a protected frame() member which is exported as public in
        FrameNetworkingContextBlackBerry. We don't want to upstream wrappedFrame()
        as a specific change of the BlackBerry porting in
        platform/network/NetworkingContext.h, so use the concrete networking context
        FrameNetworkingContextBlackBerry to access the associated frame.

        No functionalities changed, no new tests.

        * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::loadResourceSynchronously):

2012-01-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r104421.
        http://trac.webkit.org/changeset/104421
        https://bugs.webkit.org/show_bug.cgi?id=75816

        Need to rebaseline some tests on Linux (Requested by noamr on
        #webkit).

        * Target.pri:

2012-01-08  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Qt] Enable CSS_FILTERS in Qt build
        https://bugs.webkit.org/show_bug.cgi?id=75777

        Enable CSS_FILTERS and unskip the tests.

        Reviewed by Kenneth Rohde Christiansen.

        Filter tests are now unskipped for Qt.

        * Target.pri: add missing files to build.

2012-01-08  Adam Barth  <abarth@webkit.org>

        [Chromium] Remove use_skia option from GYP
        https://bugs.webkit.org/show_bug.cgi?id=75811

        Reviewed by Ryosuke Niwa.

        The CG configuration of Chromium Mac is no longer supported.

        * WebCore.gyp/WebCore.gyp:

2012-01-08  Benjamin Poulain  <benjamin@webkit.org>

        Valid canonical URLs should have a lowercase hostname
        https://bugs.webkit.org/show_bug.cgi?id=75771

        Reviewed by Adam Barth.

        According to the RFC 3986 (and other browsers implementation), the hostname
        of valid canonical URLs should be lowercase.

        This patch lowercase the hostname in KURL::parse() similarily to what we
        do for the scheme.

        Tests: fast/url/host-lowercase-per-scheme.html
               fast/url/safari-extension.html

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

2012-01-08  Adam Barth  <abarth@webkit.org>

        Rename checkNodeSecurity and allowsAccessFromFrame to have sensible names
        https://bugs.webkit.org/show_bug.cgi?id=75796

        Reviewed by Sam Weinig.

        This patch contains only renames and FIXME comments.  No behavior change.

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::allowAccessToNode):
        (WebCore::allowAccessToFrame):
        * bindings/js/JSDOMBinding.h:
        * bindings/js/JSHTMLFrameElementCustom.cpp:
        (WebCore::allowSettingJavascriptURL):
        * bindings/js/JSHistoryCustom.cpp:
        (WebCore::JSHistory::getOwnPropertySlotDelegate):
        (WebCore::JSHistory::getOwnPropertyDescriptorDelegate):
        (WebCore::JSHistory::putDelegate):
        (WebCore::JSHistory::deleteProperty):
        (WebCore::JSHistory::getOwnPropertyNames):
        * bindings/js/JSLocationCustom.cpp:
        (WebCore::JSLocation::getOwnPropertySlotDelegate):
        (WebCore::JSLocation::getOwnPropertyDescriptorDelegate):
        (WebCore::JSLocation::putDelegate):
        (WebCore::JSLocation::deleteProperty):
        (WebCore::JSLocation::getOwnPropertyNames):
        (WebCore::JSLocation::toStringFunction):
        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::canAccessFromCurrentOrigin):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertyDescriptorBody):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateFunctionCallback):

2012-01-08  Adam Barth  <abarth@webkit.org>

        Remove deprecated toDynamicFrame and unused [CallWith=DynamicFrame]
        https://bugs.webkit.org/show_bug.cgi?id=75795

        Reviewed by Eric Seidel.

        We've succeeded in removing all the callers fo this function, including
        all the uses of CallWith=DynamicFrame in IDL files.

        * bindings/js/JSDOMBinding.cpp:
        * bindings/js/JSDOMBinding.h:
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateParametersCheck):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateFunctionCallString):
        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
        * bindings/scripts/test/CPP/WebDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        * bindings/scripts/test/JS/JSTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/V8/V8TestObj.cpp:

2012-01-08  Adam Barth  <abarth@webkit.org>

        NeedsUserGestureCheck IDL attribute is no longer used
        https://bugs.webkit.org/show_bug.cgi?id=75794

        Reviewed by Eric Seidel.

        This IDL attribute is no longer used because we use static state to
        keep track of the user gesture state.  We can delete the code that
        supports it.

        * bindings/scripts/CodeGeneratorCPP.pm:
        * bindings/scripts/CodeGeneratorGObject.pm:
        * bindings/scripts/CodeGeneratorJS.pm:
        * bindings/scripts/CodeGeneratorV8.pm:
        * bindings/scripts/test/TestObj.idl:

2012-01-08  Adam Barth  <abarth@webkit.org>

        Remove unused security functions from V8 bindings
        https://bugs.webkit.org/show_bug.cgi?id=75797

        Reviewed by Eric Seidel.

        This functions have no callers.  They can be removed.

        * bindings/v8/ScriptController.cpp:
        * bindings/v8/ScriptController.h:
        * bindings/v8/specialization/V8BindingState.cpp:
        * bindings/v8/specialization/V8BindingState.h:

2012-01-08  Pratik Solanki  <psolanki@apple.com>

        Assertion failure under SharedBuffer::append() when NETWORK_CFDATA_ARRAY_CALLBACK is enabled
        https://bugs.webkit.org/show_bug.cgi?id=75656

        Reviewed by Darin Adler.

        Update the implementation of SubresourceLoader::didReceiveDataArray() to conform to the
        refactoring done as part of bug 71149 in r100311.

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didReceiveData):
        (WebCore::SubresourceLoader::errorLoadingResource):
        * loader/SubresourceLoader.h:
        * loader/cf/SubresourceLoaderCF.cpp:
        (WebCore::SubresourceLoader::didReceiveDataArray):

2012-01-08  Steve Block  <steveblock@google.com>

        Remove V8-specific Java Bridge code
        https://bugs.webkit.org/show_bug.cgi?id=75801

        Reviewed by Darin Adler.

        Also remove superfluous JSC and V8 guards, as the code is now used only
        with JSC.

        No new tests, removing dead code only.

        * WebCore.gypi:
        * bridge/jni/JNIUtility.cpp:
        (JSC::Bindings::javaTypeFromClassName):
        (JSC::Bindings::signatureFromJavaType):
        (JSC::Bindings::getJNIField):
        (JSC::Bindings::callJNIMethod):
        * bridge/jni/JavaType.h:
        * bridge/jni/jsc/JavaMethodJSC.cpp:
        (appendClassName):
        (JavaMethod::signature):
        * bridge/jni/v8/JNIUtilityPrivate.cpp: Removed.
        * bridge/jni/v8/JNIUtilityPrivate.h: Removed.
        * bridge/jni/v8/JavaClassV8.h: Removed.
        * bridge/jni/v8/JavaFieldV8.h: Removed.
        * bridge/jni/v8/JavaInstanceV8.h: Removed.
        * bridge/jni/v8/JavaMethodV8.h: Removed.
        * bridge/jni/v8/JavaNPObjectV8.cpp: Removed.
        * bridge/jni/v8/JavaNPObjectV8.h: Removed.
        * bridge/jni/v8/JavaValueV8.h: Removed.
        * bridge/jsc/BridgeJSC.h:

2012-01-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r104403.
        http://trac.webkit.org/changeset/104403
        https://bugs.webkit.org/show_bug.cgi?id=75803

        It broke all tests on Qt5 (Requested by Ossy_weekend on
        #webkit).

        * Target.pri:

2012-01-08  Antti Koivisto  <antti@apple.com>

        Don't create style selector in Element::recalcStyleIfNeededAfterAttributeChanged if it doesn't exist
        https://bugs.webkit.org/show_bug.cgi?id=75802

        Rubber-stamped by Andreas Kling.

        Element::recalcStyleIfNeededAfterAttributeChanged shouldn't create style selector for attribute 
        check if it doesn't already exist. We are going to need a full style recalc anyway in that case
        and the constructed style selector may get throw out again.

        * dom/Element.cpp:
        (WebCore::Element::recalcStyleIfNeededAfterAttributeChanged):

2012-01-08  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Qt] Enable CSS_FILTERS in Qt build
        https://bugs.webkit.org/show_bug.cgi?id=75777

        Enable CSS_FILTERS and unskip the tests.

        Reviewed by Kenneth Rohde Christiansen.

        Filter tests are now unskipped for Qt.

        * Target.pri: add missing files to build.

2012-01-07  Antti Koivisto  <antti@apple.com>

        REGRESSION (r104060): Layout Test fast/media/viewport-media-query.html is occasionally failing
        https://bugs.webkit.org/show_bug.cgi?id=75633

        Reviewed by Andreas Kling.
        
        If something triggers CSSStyleSelector construction very early, before documentElement is known,
        it won't be able to resolve viewport-related media queries. In the included test case
        the attribute on <html> element triggers the style selector creation. I can't repro
        the fast/media/viewport-media-query.html failure but I suspect it is the same issue with
        a different mechanism for early CSSStyleSelector construction.
        
        - Reset style selector on documentElement change.
        - Remove the code for lazy documentElement initialization. It is not an useful optimization,
          the children of Document rarely change.

        Test: fast/media/viewport-media-query-synchronous.html

        * WebCore.exp.in:
        * dom/Document.cpp:
        (WebCore::Document::childrenChanged):
        * dom/Document.h:
        (WebCore::Document::documentElement):

2012-01-07  Andreas Kling  <awesomekling@apple.com>

        Attempt to regenerate bindings on the Windows bot.

        * html/HTMLCollection.h:

2012-01-07  Daniel Bates  <dbates@webkit.org>

        Memory allocator mismatch; Use operator new[] with OwnArrayPtr instead of fastMalloc()

        Rubber-stamped by Adam Barth.

        Currently getProgramInfoLog() in GraphicsContext3DOpenGL.cpp assumes that operator new[]
        and fastMalloc() are equivalent when it adopts a fastMalloc() allocated buffer. Notice,
        OwnArrayPtr ultimately calls delete[] on destruction. When GLOBAL_FASTMALLOC_NEW is disabled,
        it isn't true that operator new[], operator delete[] are equivalent to fastMalloc(), fastFree(),
        respectively. Hence, there may be a mismatch between the allocation and deallocation
        routines. Therefore, we should allocate the array to be adopted by OwnArrayPtr using
        operator new[].

        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
        (WebCore::GraphicsContext3D::getProgramInfoLog):

2012-01-07  Chris Marrin  <cmarrin@apple.com>

        Fixed ANGLE build for GNU and QT broken in https://trac.webkit.org/changeset/104363

        Unreviewed.

        * GNUmakefile.list.am:
        * Target.pri:

2012-01-07  Andreas Kling  <awesomekling@apple.com>

        Unreviewed C++ bindings build fix after r104383.

        Use WTF::getPtr() to grab at impl pointer since they could be either RefPtr or raw.

        * bindings/scripts/CodeGeneratorCPP.pm:
        (GenerateImplementation):
        * bindings/scripts/test/CPP/WebDOMTestCallback.cpp:
        (WebDOMTestCallback::impl):
        * bindings/scripts/test/CPP/WebDOMTestEventConstructor.cpp:
        (WebDOMTestEventConstructor::impl):
        * bindings/scripts/test/CPP/WebDOMTestInterface.cpp:
        (WebDOMTestInterface::impl):
        * bindings/scripts/test/CPP/WebDOMTestMediaQueryListListener.cpp:
        (WebDOMTestMediaQueryListListener::impl):
        * bindings/scripts/test/CPP/WebDOMTestNamedConstructor.cpp:
        (WebDOMTestNamedConstructor::impl):
        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
        (WebDOMTestObj::impl):
        * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.cpp:
        (WebDOMTestSerializedScriptValueInterface::impl):

2012-01-07  Andreas Kling  <awesomekling@apple.com>

        Simplify HTMLCollection ownership model.
        <http://webkit.org/b/75437>

        Reviewed by Sam Weinig.

        Remove HTMLCollection's inheritance from RefCounted and use OwnPtr to store it.
        Added ref()/deref() methods that forward to the collection's base node, these
        are only ever used by DOM wrappers.

        This is a behavior change, HTMLCollection wrappers now keep the base node alive.

        Test: fast/dom/htmlcollection-protects-base.html

        * html/HTMLCollection.h:
        (WebCore::HTMLCollection::ref):
        (WebCore::HTMLCollection::deref):

            Removed inheritance from RefCounted. Added ref/deref that forward the refs
            to the collection's base Node.

        * dom/Element.cpp:
        (WebCore::Element::~Element):
        * dom/Document.h:
        * dom/Document.cpp:
        (WebCore::Document::~Document):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::~HTMLFormElement):
        * html/HTMLSelectElement.h:
        * html/HTMLSelectElement.cpp:

            Remove HTMLCollection::detachFromNode() and call sites.

        * html/HTMLAllCollection.cpp:
        (WebCore::HTMLAllCollection::namedItemWithIndex):
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        (WebCore::HTMLCollection::invalidateCacheIfNeeded):
        (WebCore::HTMLCollection::itemAfter):
        (WebCore::HTMLCollection::calcLength):
        (WebCore::HTMLCollection::length):
        (WebCore::HTMLCollection::item):
        (WebCore::HTMLCollection::nextItem):
        (WebCore::HTMLCollection::namedItem):
        (WebCore::HTMLCollection::updateNameCache):
        (WebCore::HTMLCollection::hasNamedItem):
        (WebCore::HTMLCollection::namedItems):
        (WebCore::HTMLCollection::tags):
        * html/HTMLFormCollection.cpp:
        (WebCore::HTMLFormCollection::calcLength):
        (WebCore::HTMLFormCollection::item):
        (WebCore::HTMLFormCollection::getNamedItem):
        (WebCore::HTMLFormCollection::namedItem):
        (WebCore::HTMLFormCollection::updateNameCache):
        * html/HTMLNameCollection.cpp:
        (WebCore::HTMLNameCollection::itemAfter):
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::add):
        (WebCore::HTMLOptionsCollection::remove):
        (WebCore::HTMLOptionsCollection::selectedIndex):
        (WebCore::HTMLOptionsCollection::setSelectedIndex):
        (WebCore::HTMLOptionsCollection::setLength):
        * html/HTMLPropertiesCollection.cpp:
        (WebCore::HTMLPropertiesCollection::length):
        (WebCore::HTMLPropertiesCollection::item):
        (WebCore::HTMLPropertiesCollection::names):

            Removed base node null-checks and assertions. Added one assertion to
            the HTMLCollection constructor (that m_base is non-null.)

        * dom/Document.h:
        * dom/Document.cpp:
        (WebCore::Document::openSearchDescriptionURL):
        (WebCore::Document::cachedCollection):
        (WebCore::Document::images):
        (WebCore::Document::applets):
        (WebCore::Document::embeds):
        (WebCore::Document::plugins):
        (WebCore::Document::objects):
        (WebCore::Document::scripts):
        (WebCore::Document::links):
        (WebCore::Document::forms):
        (WebCore::Document::anchors):
        (WebCore::Document::all):
        (WebCore::Document::windowNamedItems):
        (WebCore::Document::documentNamedItems):
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::namedItemGetter):
        * bindings/js/JSHTMLDocumentCustom.cpp:
        (WebCore::JSHTMLDocument::nameGetter):
        (WebCore::JSHTMLDocument::all):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::namedPropertyGetter):
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::V8HTMLDocument::GetNamedProperty):
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::ensureCachedHTMLCollection):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::properties):
        * html/HTMLAllCollection.h:
        * html/HTMLAllCollection.cpp:
        (WebCore::HTMLAllCollection::create):
        * html/HTMLCollection.h:
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::create):
        (WebCore::HTMLCollection::HTMLCollection):
        * html/HTMLDataListElement.cpp:
        (WebCore::HTMLDataListElement::options):
        * html/HTMLDataListElement.h:
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::children):
        * html/HTMLElement.h:
        * html/HTMLSelectElement.h:
        (WebCore::HTMLSelectElement::options):
        * html/HTMLFormCollection.h:
        * html/HTMLFormElement.h:
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::elements):
        * html/HTMLNameCollection.h:
        (WebCore::HTMLNameCollection::create):
        * html/HTMLFormCollection.cpp:
        (WebCore::HTMLFormCollection::create):
        * html/HTMLMapElement.cpp:
        (WebCore::HTMLMapElement::imageElement):
        (WebCore::HTMLMapElement::areas):
        * html/HTMLMapElement.h:
        * html/HTMLPropertiesCollection.h:
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::rows):
        (WebCore::HTMLTableElement::tBodies):
        * html/HTMLTableElement.h:
        * html/HTMLTableRowElement.cpp:
        (WebCore::HTMLTableRowElement::insertCell):
        (WebCore::HTMLTableRowElement::deleteCell):
        (WebCore::HTMLTableRowElement::cells):
        * html/HTMLTableRowElement.h:
        * html/HTMLTableRowsCollection.cpp:
        (WebCore::HTMLTableRowsCollection::create):
        (WebCore::HTMLTableRowsCollection::itemAfter):
        * html/HTMLTableRowsCollection.h:
        * html/HTMLTableSectionElement.h:
        * html/HTMLTableSectionElement.cpp:
        (WebCore::HTMLTableSectionElement::insertRow):
        (WebCore::HTMLTableSectionElement::deleteRow):
        (WebCore::HTMLTableSectionElement::rows):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::selectedOption):
        * html/HTMLOptionsCollection.h:
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::create):
        * html/HTMLPropertiesCollection.cpp:
        (WebCore::HTMLPropertiesCollection::create):
        * Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::getDocumentLinks):

            Store cached HTMLCollections in OwnPtrs. Methods that used to return
            PassRefPtr<HTMLCollection> now simply return HTMLCollection*.
            Updated call sites as appropriate.

2012-01-07  Adam Barth  <abarth@webkit.org>

        Attempt to fix Qt build.

        * page/Geolocation.cpp:
        (WebCore::Geolocation::Geolocation):

2012-01-06  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r104210): Crash inside DynamicSubtreeNodeList::length
        https://bugs.webkit.org/show_bug.cgi?id=75731

        Reviewed by Andreas Kling.

        The crash was caused by DynamicSubtreeNodeList::SubtreeCaches::domVersionIsConsistent
        using m_cachedItem as a way to access the document. Changed SubtreeCaches to use
        DynamicSubtreeNodeList's m_node instead.

        Test: fast/dom/node-list-length-after-removing-node.html

        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::setLengthCache):
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::setItemCache):
        (WebCore::DynamicSubtreeNodeList::length):
        (WebCore::DynamicSubtreeNodeList::item):
        * dom/DynamicNodeList.h:
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::isLengthCacheValid):
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::isItemCacheValid):
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::cachedItem):
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::domVersionIsConsistent):

2012-01-07  Adam Barth  <abarth@webkit.org>

        Disconnecting DOMWindow properties is fragile and overly complicated
        https://bugs.webkit.org/show_bug.cgi?id=75699

        Reviewed by Alexey Proskuryakov.

        Previously, we had to carefully check every object tree hanging off of
        DOMWindow to make sure that every property correctly disconnected
        itself and all its subobjects from the Frame when the DOMWindow
        disconnected from the Frame.

        This patch introduces DOMWindowProperty, which is a base class that
        handles this work automagically, ensuring that we won't have any
        dangling Frame pointers and removing a bunch of boilerplate code.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * css/StyleMedia.cpp:
        (WebCore::StyleMedia::StyleMedia):
        * css/StyleMedia.h:
        (WebCore::StyleMedia::create):
        * loader/appcache/DOMApplicationCache.cpp:
        (WebCore::DOMApplicationCache::DOMApplicationCache):
        (WebCore::DOMApplicationCache::disconnectFrame):
        * loader/appcache/DOMApplicationCache.h:
        * page/BarInfo.cpp:
        (WebCore::BarInfo::BarInfo):
        * page/BarInfo.h:
        * page/Console.cpp:
        (WebCore::Console::Console):
        (WebCore::Console::memory):
        * page/Console.h:
        * page/DOMSelection.cpp:
        (WebCore::DOMSelection::DOMSelection):
        * page/DOMSelection.h:
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::registerProperty):
        (WebCore::DOMWindow::unregisterProperty):
        (WebCore::DOMWindow::clear):
        * page/DOMWindow.h:
        * page/Geolocation.cpp:
        (WebCore::Geolocation::Geolocation):
        (WebCore::Geolocation::disconnectFrame):
        * page/Geolocation.h:
        * page/History.cpp:
        (WebCore::History::History):
        * page/History.h:
        * page/Location.cpp:
        (WebCore::Location::Location):
        * page/Location.h:
        * page/Navigator.cpp:
        (WebCore::Navigator::Navigator):
        (WebCore::Navigator::~Navigator):
        * page/Navigator.h:
        * page/Performance.cpp:
        (WebCore::Performance::Performance):
        (WebCore::Performance::memory):
        * page/Performance.h:
        * page/PerformanceNavigation.cpp:
        (WebCore::PerformanceNavigation::PerformanceNavigation):
        * page/PerformanceNavigation.h:
        * page/PerformanceTiming.cpp:
        (WebCore::PerformanceTiming::PerformanceTiming):
        * page/PerformanceTiming.h:
        * page/Screen.cpp:
        (WebCore::Screen::Screen):
        * page/Screen.h:
        * plugins/DOMMimeTypeArray.cpp:
        (WebCore::DOMMimeTypeArray::DOMMimeTypeArray):
        * plugins/DOMMimeTypeArray.h:
        * plugins/DOMPluginArray.cpp:
        (WebCore::DOMPluginArray::DOMPluginArray):
        * plugins/DOMPluginArray.h:
        * storage/Storage.cpp:
        (WebCore::Storage::Storage):
        * storage/Storage.h:

2012-01-06  Mark Rowe  <mrowe@apple.com>

        REGRESSION (r83075): Save as PDF does not generate any links for webkit.org and others
        <http://webkit.org/b/75768> <rdar://problem/10659258>

        Use RenderObject::hasOutline when determining whether to always create line boxes so that
        we take in to consideration whether we'll be creating PDF link rects.

        Reviewed by Dan Bernstein.

        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::styleDidChange):

2012-01-06  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r104373 and r104374.
        http://trac.webkit.org/changeset/104373
        http://trac.webkit.org/changeset/104374
        https://bugs.webkit.org/show_bug.cgi?id=75769

        Too many assertion failures. (Requested by kling on #webkit).

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::namedItemGetter):
        * bindings/js/JSHTMLDocumentCustom.cpp:
        (WebCore::JSHTMLDocument::nameGetter):
        (WebCore::JSHTMLDocument::all):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::namedPropertyGetter):
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::V8HTMLDocument::GetNamedProperty):
        * dom/Document.cpp:
        (WebCore::Document::~Document):
        (WebCore::Document::openSearchDescriptionURL):
        (WebCore::Document::cachedCollection):
        (WebCore::Document::images):
        (WebCore::Document::applets):
        (WebCore::Document::embeds):
        (WebCore::Document::plugins):
        (WebCore::Document::objects):
        (WebCore::Document::scripts):
        (WebCore::Document::links):
        (WebCore::Document::forms):
        (WebCore::Document::anchors):
        (WebCore::Document::all):
        (WebCore::Document::windowNamedItems):
        (WebCore::Document::documentNamedItems):
        * dom/Document.h:
        * dom/Element.cpp:
        (WebCore::Element::~Element):
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::cachedHTMLCollection):
        (WebCore::ElementRareData::ensureCachedHTMLCollection):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::properties):
        * html/HTMLAllCollection.cpp:
        (WebCore::HTMLAllCollection::create):
        (WebCore::HTMLAllCollection::namedItemWithIndex):
        * html/HTMLAllCollection.h:
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        (WebCore::HTMLCollection::create):
        (WebCore::HTMLCollection::detachFromNode):
        (WebCore::HTMLCollection::invalidateCacheIfNeeded):
        (WebCore::HTMLCollection::itemAfter):
        (WebCore::HTMLCollection::calcLength):
        (WebCore::HTMLCollection::length):
        (WebCore::HTMLCollection::item):
        (WebCore::HTMLCollection::nextItem):
        (WebCore::HTMLCollection::namedItem):
        (WebCore::HTMLCollection::updateNameCache):
        (WebCore::HTMLCollection::hasNamedItem):
        (WebCore::HTMLCollection::namedItems):
        (WebCore::HTMLCollection::tags):
        * html/HTMLCollection.h:
        * html/HTMLDataListElement.cpp:
        (WebCore::HTMLDataListElement::options):
        * html/HTMLDataListElement.h:
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::children):
        * html/HTMLElement.h:
        * html/HTMLFormCollection.cpp:
        (WebCore::HTMLFormCollection::create):
        (WebCore::HTMLFormCollection::calcLength):
        (WebCore::HTMLFormCollection::item):
        (WebCore::HTMLFormCollection::getNamedItem):
        (WebCore::HTMLFormCollection::namedItem):
        (WebCore::HTMLFormCollection::updateNameCache):
        * html/HTMLFormCollection.h:
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::~HTMLFormElement):
        (WebCore::HTMLFormElement::elements):
        * html/HTMLFormElement.h:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::selectedOption):
        * html/HTMLMapElement.cpp:
        (WebCore::HTMLMapElement::imageElement):
        (WebCore::HTMLMapElement::areas):
        * html/HTMLMapElement.h:
        * html/HTMLNameCollection.cpp:
        (WebCore::HTMLNameCollection::itemAfter):
        * html/HTMLNameCollection.h:
        (WebCore::HTMLNameCollection::create):
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::create):
        (WebCore::HTMLOptionsCollection::add):
        (WebCore::HTMLOptionsCollection::remove):
        (WebCore::HTMLOptionsCollection::selectedIndex):
        (WebCore::HTMLOptionsCollection::setSelectedIndex):
        (WebCore::HTMLOptionsCollection::setLength):
        * html/HTMLOptionsCollection.h:
        * html/HTMLPropertiesCollection.cpp:
        (WebCore::HTMLPropertiesCollection::create):
        (WebCore::HTMLPropertiesCollection::length):
        (WebCore::HTMLPropertiesCollection::item):
        (WebCore::HTMLPropertiesCollection::names):
        * html/HTMLPropertiesCollection.h:
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::~HTMLSelectElement):
        (WebCore::HTMLSelectElement::options):
        * html/HTMLSelectElement.h:
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::~HTMLTableElement):

2012-01-06  Andreas Kling  <awesomekling@apple.com>

        Unreviewed build fix after r104373.

        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::~HTMLTableElement):

2012-01-06  Andreas Kling  <awesomekling@apple.com>

        Simplify HTMLCollection ownership model.
        <http://webkit.org/b/75437>

        Reviewed by Sam Weinig.

        Remove HTMLCollection's inheritance from RefCounted and use OwnPtr to store it.
        Added ref()/deref() methods that forward to the collection's base node, these
        are only ever used by DOM wrappers.

        This is a behavior change, HTMLCollection wrappers now keep the base node alive.

        Test: fast/dom/htmlcollection-protects-base.html

        * html/HTMLCollection.h:
        (WebCore::HTMLCollection::ref):
        (WebCore::HTMLCollection::deref):

            Removed inheritance from RefCounted. Added ref/deref that forward the refs
            to the collection's base Node.

        * dom/Element.cpp:
        (WebCore::Element::~Element):
        * dom/Document.h:
        * dom/Document.cpp:
        (WebCore::Document::~Document):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::~HTMLFormElement):
        * html/HTMLSelectElement.h:
        * html/HTMLSelectElement.cpp:

            Remove HTMLCollection::detachFromNode() and call sites.

        * html/HTMLAllCollection.cpp:
        (WebCore::HTMLAllCollection::namedItemWithIndex):
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        (WebCore::HTMLCollection::invalidateCacheIfNeeded):
        (WebCore::HTMLCollection::itemAfter):
        (WebCore::HTMLCollection::calcLength):
        (WebCore::HTMLCollection::length):
        (WebCore::HTMLCollection::item):
        (WebCore::HTMLCollection::nextItem):
        (WebCore::HTMLCollection::namedItem):
        (WebCore::HTMLCollection::updateNameCache):
        (WebCore::HTMLCollection::hasNamedItem):
        (WebCore::HTMLCollection::namedItems):
        (WebCore::HTMLCollection::tags):
        * html/HTMLFormCollection.cpp:
        (WebCore::HTMLFormCollection::calcLength):
        (WebCore::HTMLFormCollection::item):
        (WebCore::HTMLFormCollection::getNamedItem):
        (WebCore::HTMLFormCollection::namedItem):
        (WebCore::HTMLFormCollection::updateNameCache):
        * html/HTMLNameCollection.cpp:
        (WebCore::HTMLNameCollection::itemAfter):
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::add):
        (WebCore::HTMLOptionsCollection::remove):
        (WebCore::HTMLOptionsCollection::selectedIndex):
        (WebCore::HTMLOptionsCollection::setSelectedIndex):
        (WebCore::HTMLOptionsCollection::setLength):
        * html/HTMLPropertiesCollection.cpp:
        (WebCore::HTMLPropertiesCollection::length):
        (WebCore::HTMLPropertiesCollection::item):
        (WebCore::HTMLPropertiesCollection::names):

            Removed base node null-checks and assertions. Added one assertion to
            the HTMLCollection constructor (that m_base is non-null.)

        * dom/Document.h:
        * dom/Document.cpp:
        (WebCore::Document::openSearchDescriptionURL):
        (WebCore::Document::cachedCollection):
        (WebCore::Document::images):
        (WebCore::Document::applets):
        (WebCore::Document::embeds):
        (WebCore::Document::plugins):
        (WebCore::Document::objects):
        (WebCore::Document::scripts):
        (WebCore::Document::links):
        (WebCore::Document::forms):
        (WebCore::Document::anchors):
        (WebCore::Document::all):
        (WebCore::Document::windowNamedItems):
        (WebCore::Document::documentNamedItems):
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::namedItemGetter):
        * bindings/js/JSHTMLDocumentCustom.cpp:
        (WebCore::JSHTMLDocument::nameGetter):
        (WebCore::JSHTMLDocument::all):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8DOMWindow::namedPropertyGetter):
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::V8HTMLDocument::GetNamedProperty):
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::ensureCachedHTMLCollection):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::properties):
        * html/HTMLAllCollection.h:
        * html/HTMLAllCollection.cpp:
        (WebCore::HTMLAllCollection::create):
        * html/HTMLCollection.h:
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::create):
        (WebCore::HTMLCollection::HTMLCollection):
        * html/HTMLDataListElement.cpp:
        (WebCore::HTMLDataListElement::options):
        * html/HTMLDataListElement.h:
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::children):
        * html/HTMLElement.h:
        * html/HTMLSelectElement.h:
        (WebCore::HTMLSelectElement::options):
        * html/HTMLFormCollection.h:
        * html/HTMLFormElement.h:
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::elements):
        * html/HTMLNameCollection.h:
        (WebCore::HTMLNameCollection::create):
        * html/HTMLFormCollection.cpp:
        (WebCore::HTMLFormCollection::create):
        * html/HTMLMapElement.cpp:
        (WebCore::HTMLMapElement::imageElement):
        (WebCore::HTMLMapElement::areas):
        * html/HTMLMapElement.h:
        * html/HTMLPropertiesCollection.h:
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::rows):
        (WebCore::HTMLTableElement::tBodies):
        * html/HTMLTableElement.h:
        * html/HTMLTableRowElement.cpp:
        (WebCore::HTMLTableRowElement::insertCell):
        (WebCore::HTMLTableRowElement::deleteCell):
        (WebCore::HTMLTableRowElement::cells):
        * html/HTMLTableRowElement.h:
        * html/HTMLTableRowsCollection.cpp:
        (WebCore::HTMLTableRowsCollection::create):
        (WebCore::HTMLTableRowsCollection::itemAfter):
        * html/HTMLTableRowsCollection.h:
        * html/HTMLTableSectionElement.h:
        * html/HTMLTableSectionElement.cpp:
        (WebCore::HTMLTableSectionElement::insertRow):
        (WebCore::HTMLTableSectionElement::deleteRow):
        (WebCore::HTMLTableSectionElement::rows):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::selectedOption):
        * html/HTMLOptionsCollection.h:
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::create):
        * html/HTMLPropertiesCollection.cpp:
        (WebCore::HTMLPropertiesCollection::create):

            Store cached HTMLCollections in OwnPtrs. Methods that used to return
            PassRefPtr<HTMLCollection> now simply return HTMLCollection*.
            Updated call sites as appropriate.

2012-01-06  Adam Barth  <abarth@webkit.org>

        DOMWindow should be a FrameDestructionObserver
        https://bugs.webkit.org/show_bug.cgi?id=75697

        Reviewed by Alexey Proskuryakov.

        DOMWindow plays exactly the role of a FrameDestructionObserver, just
        with special-case code.  It should just use the general-case code.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::DOMWindow):
        (WebCore::DOMWindow::~DOMWindow):
        (WebCore::DOMWindow::frameDestroyed):
        * page/DOMWindow.h:
        * page/Frame.cpp:
        (WebCore::Frame::~Frame):
        (WebCore::Frame::clearDOMWindow):
        (WebCore::Frame::setDOMWindow):
        * page/Frame.h:

2012-01-06  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Missing Implementation of Public InspectorDOMAgent Function
        https://bugs.webkit.org/show_bug.cgi?id=75759

        Implement missing accessor and make setter public.

        Reviewed by Timothy Hatcher.

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::searchingForNodeInPage):
        * inspector/InspectorDOMAgent.h:

2012-01-06  W. James MacLean  <wjmaclean@chromium.org>

        [Chromium] Cull occluded tiles in tiled layers
        https://bugs.webkit.org/show_bug.cgi?id=70533

        Reviewed by James Robinson.

        Unit test provided, must pass all existing GPU layout tests.

        * WebCore.gypi:
        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
        (WebCore::CCLayerImpl::appendQuads):
        (WebCore::CCLayerImpl::quadTransform):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
        (WebCore::CCLayerTreeHostImpl::optimizeRenderPasses):
        (WebCore::CCLayerTreeHostImpl::drawLayers):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
        * platform/graphics/chromium/cc/CCQuadCuller.cpp: Added.
        (std::swap):
        (WebCore::regionContainsRect):
        (WebCore::CCQuadCuller::cullOccludedQuads):
        * platform/graphics/chromium/cc/CCQuadCuller.h: Added.
        (WebCore::CCQuadCuller::CCQuadCuller):
        * platform/graphics/chromium/cc/CCRenderPass.cpp:
        (WebCore::CCRenderPass::optimizeQuads):
        * platform/graphics/chromium/cc/CCRenderPass.h:

2012-01-06  Anders Carlsson  <andersca@apple.com>

        Move more rubberbanding code into ScrollAnimatorMac::smoothScrollWithEvent
        https://bugs.webkit.org/show_bug.cgi?id=75750

        Reviewed by Sam Weinig.

        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::handleWheelEvent):
        Move rubberbanding related code into smoothScrollWithEvent.

        (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
        Move code here from handleWheelEvent and made the function return a boolean.

        (WebCore::ScrollAnimatorMac::snapRubberBand):
        Call the client.

        (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
        Ditto.

2012-01-06  Greg Billock  <gbillock@google.com>

        WebCore implementation of the Intent object
        See http://dvcs.w3.org/hg/web-intents/raw-file/tip/spec/Overview.html
        for draft spec.

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

        Reviewed by Adam Barth.

        Test: web-intents/web-intents-api.html

        * WebCore.gypi:
        * page/DOMWindow.idl:
        * Modules/intents/Intent.cpp: Added.
        (WebCore::Intent::Intent):
        (WebCore::Intent::action):
        (WebCore::Intent::setAction):
        (WebCore::Intent::type):
        (WebCore::Intent::setType):
        (WebCore::Intent::data):
        (WebCore::Intent::setData):
        (WebCore::Intent::create):
        * Modules/intents/Intent.h: Added.
        * Modules/intents/Intent.idl: Added.

2012-01-06  Tim Horton  <timothy_horton@apple.com>

        [cg] userSpaceOnUse SVG Patterns have the wrong origin
        https://bugs.webkit.org/show_bug.cgi?id=75741
        <rdar://problem/9383222>

        Reviewed by Simon Fraser.

        The transformation from pattern space to user space should use the userToBase CTM,
        not the current CTM.

        Test: svg/custom/pattern-userSpaceOnUse-userToBaseTransform.xhtml

        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::applyStrokePattern):
        (WebCore::GraphicsContext::applyFillPattern):
        (WebCore::GraphicsContext::getCTM):
        * platform/graphics/cg/TransformationMatrixCG.cpp:
        (WebCore::AffineTransform::AffineTransform): Add a AffineTransform(CGAffineTransform) constructor
        * platform/graphics/transforms/AffineTransform.h:

2012-01-05  Simon Fraser  <simon.fraser@apple.com>

        Avoid falling into tiled layers more often when the device scale factor is > 1
        <rdar://problem/10588725>

        Reviewed by John Sullivan.
        
        Stop taking the device scale factor into account when deciding to make
        tiled layers.

        Test: compositing/tiled-layers-hidpi.html

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::requiresTiledLayer):

2012-01-06  Ryosuke Niwa  <rniwa@webkit.org>

        Touch a bunch of files in an attempt to fix Mac release builds.

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::get):
        * accessibility/AccessibilityAllInOne.cpp:
        * editing/visible_units.cpp:
        (WebCore::previousBoundary):

2012-01-06  No'am Rosenthal  <noam.rosenthal@nokia.com>

        Enable a compositing trigger for filters
        https://bugs.webkit.org/show_bug.cgi?id=75658

        This will enable forcing the compositing code path when filters exist for a RenderObject.

        Reviewed by Simon Fraser.

        No new functionality so no new tests.

        * page/ChromeClient.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingLayer):
        (WebCore::RenderLayerCompositor::requiresCompositingForFilters):
        * rendering/RenderLayerCompositor.h:

2012-01-06  Anders Carlsson  <andersca@apple.com>

        Add and use ScrollElasticityControllerClient::absoluteScrollPosition
        https://bugs.webkit.org/show_bug.cgi?id=75744

        Reviewed by Dan Bernstein.

        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::absoluteScrollPosition):
        (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
        * platform/mac/ScrollElasticityController.h:

2012-01-06  Adam Barth  <abarth@webkit.org>

        Move FrameDestructionObserver to its own file
        https://bugs.webkit.org/show_bug.cgi?id=75693

        Reviewed by Eric Seidel.

        We should have one class per file, on general principles.  Also, this
        make it possible to use this class in DOMWindow without introducing a
        circular include dependency.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * page/Frame.cpp:
        * page/Frame.h:
        * page/FrameDestructionObserver.cpp: Added.
        (WebCore::FrameDestructionObserver::FrameDestructionObserver):
        (WebCore::FrameDestructionObserver::~FrameDestructionObserver):
        (WebCore::FrameDestructionObserver::frameDestroyed):
        * page/FrameDestructionObserver.h: Added.
        (WebCore::FrameDestructionObserver::frame):
        * plugins/DOMMimeType.h:
        * plugins/DOMPlugin.h:

2012-01-06  Anders Carlsson  <andersca@apple.com>

        Fix Snow Leopard build.

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::immediateScrollBy):
        Move the function definition inside #if ENABLE(RUBBER_BANDING).

2012-01-04  Jon Lee  <jonlee@apple.com>

        Clicking on the cancel button on readonly and disabled search fields darkens as if the search field was editable
        https://bugs.webkit.org/show_bug.cgi?id=69886
        <rdar://problem/10070187>

        Reviewed by Adele Peterson.

        Tests: ManualTests/search-cancel-button.html

        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintSearchFieldCancelButton): If the input is readonly and/or disabled, force the cell to
        render without highlight.

2012-01-06  Simon Fraser  <simon.fraser@apple.com>

        Mitigate scrollbar differences when running pixel tests
        https://bugs.webkit.org/show_bug.cgi?id=67217

        Reviewed by Dan Bernstein.

        Export WebCore::Settings::mockScrollbarsEnabled() for DRT.

        * WebCore.exp.in:

2012-01-06  Tom Sepez  <tsepez@chromium.org>

        Pass Content-Security-Policy directives to worker threads.
        https://bugs.webkit.org/show_bug.cgi?id=73242

        Reviewed by David Levin.

        Tests: http/tests/security/contentSecurityPolicy/shared-worker-connect-src-allowed.html
               http/tests/security/contentSecurityPolicy/shared-worker-connect-src-blocked.html
               http/tests/security/contentSecurityPolicy/worker-connect-src-allowed.html
               http/tests/security/contentSecurityPolicy/worker-connect-src-blocked.html

        * page/ContentSecurityPolicy.h:
        (WebCore::ContentSecurityPolicy::policy):
        (WebCore::ContentSecurityPolicy::headerType):
        * workers/DedicatedWorkerContext.cpp:
        (WebCore::DedicatedWorkerContext::DedicatedWorkerContext):
        * workers/DedicatedWorkerContext.h:
        (WebCore::DedicatedWorkerContext::create):
        * workers/DedicatedWorkerThread.cpp:
        (WebCore::DedicatedWorkerThread::create):
        (WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
        (WebCore::DedicatedWorkerThread::createWorkerContext):
        * workers/DedicatedWorkerThread.h:
        * workers/DefaultSharedWorkerRepository.cpp:
        (WebCore::SharedWorkerScriptLoader::notifyFinished):
        (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
        * workers/DefaultSharedWorkerRepository.h:
        * workers/SharedWorkerContext.cpp:
        (WebCore::SharedWorkerContext::SharedWorkerContext):
        * workers/SharedWorkerContext.h:
        (WebCore::SharedWorkerContext::create):
        * workers/SharedWorkerThread.cpp:
        (WebCore::SharedWorkerThread::create):
        (WebCore::SharedWorkerThread::SharedWorkerThread):
        (WebCore::SharedWorkerThread::createWorkerContext):
        * workers/SharedWorkerThread.h:
        * workers/WorkerContext.cpp:
        (WebCore::WorkerContext::WorkerContext):
        * workers/WorkerContext.h:
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::WorkerMessagingProxy::startWorkerContext):
        * workers/WorkerThread.cpp:
        (WebCore::WorkerThreadStartupData::create):
        (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
        (WebCore::WorkerThread::WorkerThread):
        (WebCore::WorkerThread::workerThread):
        * workers/WorkerThread.h:

2012-01-06  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]Crash while collecting svg elements in render flow thread.
        https://bugs.webkit.org/show_bug.cgi?id=73735

        Reviewed by David Hyatt.

        Tests: fast/regions/svg-doc-fragment-not-collected-expected.html
               fast/regions/svg-doc-fragment-not-collected.html
               fast/regions/svg-element-not-collected-expected.html
               fast/regions/svg-element-not-collected.html
               fast/regions/svg-root-element-collected.html

        By allowing only svg root elements to be collected in a render flow thread,
        the svg render tree is properly constructed, thus prevented a possible further crash.

        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):

2012-01-06  Eric Carlson  <eric.carlson@apple.com>

        Make TextTrackCue more mutable
        https://bugs.webkit.org/show_bug.cgi?id=72555

        Reviewed by Anders Carlsson.

        Test: media/track/track-cue-mutable.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Do nothing if the "ignore cue updates"
            flag is set
        (WebCore::HTMLMediaElement::textTrackAddCues): Block cue updates until all of the new cues have
            been added, then call updateActiveTextTrackCues so update the display if necessary.
        (WebCore::HTMLMediaElement::textTrackRemoveCues): Block cue updates until all of the new cues have
            been removed, then call updateActiveTextTrackCues so update the display if necessary.
        (WebCore::HTMLMediaElement::textTrackAddCue): Call updateActiveTextTrackCues so update the display if necessary.
        (WebCore::HTMLMediaElement::textTrackRemoveCue): Ditto.
        * html/HTMLMediaElement.h:
        (WebCore::HTMLMediaElement::ignoreTrackDisplayUpdateRequests):
        (WebCore::HTMLMediaElement::beginIgnoringTrackDisplayUpdateRequests):
        (WebCore::HTMLMediaElement::endIgnoringTrackDisplayUpdateRequests):

        * html/TextTrack.cpp:
        (WebCore::TextTrack::cueWillChange): New, remove the cue from the media element because its
            position in the interval tree is based on start and end times.
        (WebCore::TextTrack::cueDidChange): Add the cue to the media element.
        * html/TextTrack.h:

        * html/TextTrackCue.cpp:
        (WebCore::startKeyword): New, use a static String for the constant.
        (WebCore::middleKeyword): Ditto.
        (WebCore::endKeyword): Ditto.
        (WebCore::horizontalKeyword): Ditto.
        (WebCore::verticalKeyword): Ditto.
        (WebCore::verticallrKeyword): Ditto.
        (WebCore::TextTrackCue::cueWillChange): New, tell the track the cue is about to change.
        (WebCore::TextTrackCue::cueDidChange): New, tell the track the cue has changed.
        (WebCore::TextTrackCue::setId): New, attribute is mutable.
        (WebCore::TextTrackCue::setStartTime): Ditto.
        (WebCore::TextTrackCue::setEndTime): Ditto.
        (WebCore::TextTrackCue::setPauseOnExit): Ditto.
        (WebCore::TextTrackCue::direction): Ditto.
        (WebCore::TextTrackCue::setDirection): Ditto.
        (WebCore::TextTrackCue::setSnapToLines): Ditto.
        (WebCore::TextTrackCue::setLinePosition): Ditto.
        (WebCore::TextTrackCue::setTextPosition): Ditto.
        (WebCore::TextTrackCue::setSize): Ditto.
        (WebCore::TextTrackCue::alignment): Ditto.
        (WebCore::TextTrackCue::setAlignment): Ditto.
        (WebCore::TextTrackCue::parseSettings): Use the static strings.
        * html/TextTrackCue.h:
        (WebCore::TextTrackCue::id):
        (WebCore::TextTrackCue::startTime):
        (WebCore::TextTrackCue::endTime):
        (WebCore::TextTrackCue::pauseOnExit):
        * html/TextTrackCue.idl:

2012-01-06  Oliver Hunt  <oliver@apple.com>

        DFG no longer optimises CanvasPixelArray
        https://bugs.webkit.org/show_bug.cgi?id=75729

        Reviewed by Gavin Barraclough.

        Remove the custom ClassInfo for CanvasPixelArray as that is
        defeating ByteArray optimisation, and is no longer needed
        anyway as it was only there to change the visible name.

        * bindings/js/JSImageDataCustom.cpp:
        (WebCore::toJS):

2012-01-06  Ken Buchanan  <kenrb@chromium.org>

        ASSERT failure due to combine-text with preceding spaces
        https://bugs.webkit.org/show_bug.cgi?id=65147

        Reviewed by David Hyatt.

        A couple of ASSERTs were failing due to a parsing problem when
        advancing an inline iterator to the next linebreak in a
        RenderCombineText. skipLeadingWhitespace advances the iterator
        over leading whitespace but when searching for the line break
        nextLineBreak would call RenderCombineText::combineText(),
        collapsing the text so that the iterator is pointing past the
        end of it.

        This patch causes combineText() to be called during
        skipLeadingWhiteSpace before iteration over the RenderCombineText
        begins.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::nextLineBreak):
        (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):

2012-01-06  Anders Carlsson  <andersca@apple.com>

        Make ScrollAnimatorMac::snapRubberBandTimerFired use m_scrollElasticityController in more places
        https://bugs.webkit.org/show_bug.cgi?id=75726

        Reviewed by Sam Weinig.

        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::canScrollHorizontally):
        (WebCore::ScrollAnimatorMac::canScrollVertically):
        (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
        * platform/mac/ScrollElasticityController.h:

2012-01-06  Pratik Solanki  <psolanki@apple.com>

        WebKit1 fails to compile with USE(CFNETWORK) and HAVE(NETWORK_CFDATA_ARRAY_CALLBACK)
        https://bugs.webkit.org/show_bug.cgi?id=75675

        Reviewed by Oliver Hunt.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::willCacheResponse):

2012-01-06  Abhishek Arya  <inferno@chromium.org>

        Crash with range selection across different documents.
        https://bugs.webkit.org/show_bug.cgi?id=74285

        Reviewed by Ryosuke Niwa.

        Test: fast/dom/Range/range-selection-across-documents-crash.html

        * page/DOMSelection.cpp:
        (WebCore::DOMSelection::addRange):

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

        Remove unused OwnFastMallocPtr class.
        https://bugs.webkit.org/show_bug.cgi?id=75722

        Reviewed by Geoffrey Garen.

        * ForwardingHeaders/wtf/OwnFastMallocPtr.h: Removed.
        * bindings/js/JSWebGLRenderingContextCustom.cpp:

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

        Need to relayout when stretching the height of a flex item
        https://bugs.webkit.org/show_bug.cgi?id=75661

        Reviewed by Ojan Vafai.

        Test: css3/flexbox/flex-align-stretch.html

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::computePreferredMainAxisExtent): Always clear the override size since
        it may be set when aligning.
        (WebCore::RenderFlexibleBox::alignChildren): Only relayout if the height changed.

2012-01-06  Anders Carlsson  <andersca@apple.com>

        Add ScrollElasticityControllerClient::immediateScrollBy
        https://bugs.webkit.org/show_bug.cgi?id=75720

        Reviewed by Andreas Kling.

        Add a new ScrollElasticityControllerClient::immediateScrollBy client member function.
        Also, make ScrollAnimatorMac::smoothScrollWithEvent calls go through the ScrollElasticityController
        in preparation for moving that function to ScrollElasticityController.

        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
        * platform/mac/ScrollElasticityController.h:

2012-01-06  Wei James  <james.wei@intel.com>

        Use VectorMath lib when possible to optimize the processing in WebAudio AudioBus
        https://bugs.webkit.org/show_bug.cgi?id=75334

        Reviewed by Kenneth Russell.

        * platform/audio/AudioBus.cpp:
        (WebCore::AudioBus::processWithGainFromMonoStereo):

2012-01-06  Jer Noble  <jer.noble@apple.com>

        Fullscreen video controller can't be dragged the first time I enter fullscreen
        https://bugs.webkit.org/show_bug.cgi?id=75709

        Reviewed by Eric Carlson.

        No new tests; updated video-controls-drag.html.

        When the media controls are created, check to see if we are full screen, and pass
        that information to the newly created controls.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::createMediaControls):

2012-01-05  Jer Noble  <jer.noble@apple.com>

        Media Element: scrubbing in full-screen mode breaks playback.
        https://bugs.webkit.org/show_bug.cgi?id=75650

        Reviewed by John Sullivan.

        Test: fullscreen/video-controls-timeline.html

        Only begin scrubbing if the panel itself is the mousedown event target.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlPanelElement::defaultEventHandler):

2012-01-05  Jer Noble  <jer.noble@apple.com>

        REGRESSION (r90797): Full screen video HUD cannot be dragged horizontally
        https://bugs.webkit.org/show_bug.cgi?id=75200

        Reviewed by Eric Carlson.

        Test: fullscreen/video-controls-drag.html

        The !important rules in fullscreenQuickTime.css are overriding the styles added by the 
        drag operation in MediaControlElements.cpp.  Give the panel a "dragged" class in setPosition
        (clearing it in resetPosition) that allows the !important rules to apply only when the 
        panel is not dragged.

        * css/fullscreenQuickTime.css:
        (video:-webkit-full-screen::-webkit-media-controls-panel):
        (video:-webkit-full-screen::-webkit-media-controls-panel:not(.dragged)):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlPanelElement::setPosition):
        (WebCore::MediaControlPanelElement::resetPosition):

2012-01-05  Antti Koivisto  <antti@apple.com>

        REGRESSION (r104060): fast/forms/textarea-metrics.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=75644

        Reviewed by Alexey Proskuryakov.

        We need to clear the style selector on doc type change as the doc type
        may affect interpretation of the stylesheets. r104060 extended the life
        of the style selector in some cases, exposing this problem.

        * dom/Document.cpp:
        (WebCore::Document::setDocType):

2012-01-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Move listing of include paths and libs to pri files in sources

        Includepaths are sometimes modified by non-Qt contributors so keeping
        them in files inside Sources makes it more likely that they are updated
        along with project files for the other ports.

        Using pri files instead of prf files for this also has the benefit that
        the include() from the main target file can be parsed and followed by
        Qt Creator -- something that does not work with load().

        Dependency from a target to a library through the WEBKIT variable are
        handled through forwarding-files in Tools/qmake/mkspecs/modules, which
        set the source root of the module and include the right pri file.

        Ideally we'd use the variant of include() that takes an optional
        namespace to read the variables into, or the fromfile() function,
        but both of these add an overhead of about 40% on the total qmake
        runtime, due to making a deep copy of all the variables in the
        project or re-reading all the prf files from scratch.

        Reviewed by Simon Hausmann.
        Reviewed by Ossy.

        * Target.pri:
        * WebCore.pri: Renamed from Tools/qmake/mkspecs/features/webcore.prf.

2012-01-06  Adam Barth  <abarth@webkit.org>

        FrameDestructionObserver should be more full-service
        https://bugs.webkit.org/show_bug.cgi?id=75690

        Reviewed by Eric Seidel.

        This patch moves code common to both subclasses of
        FrameDestructionObserver into FrameDestructionObserver itself.  As we
        add more subclasses, we don't want to keep copy/pasting this code.

        * page/Frame.cpp:
        (WebCore::FrameDestructionObserver::FrameDestructionObserver):
        (WebCore::FrameDestructionObserver::~FrameDestructionObserver):
        (WebCore::FrameDestructionObserver::frameDestroyed):
        * page/Frame.h:
        (WebCore::FrameDestructionObserver::frame):
        * plugins/DOMMimeType.cpp:
        (WebCore::DOMMimeType::DOMMimeType):
        (WebCore::DOMMimeType::~DOMMimeType):
        * plugins/DOMMimeType.h:
        * plugins/DOMPlugin.cpp:
        (WebCore::DOMPlugin::DOMPlugin):
        (WebCore::DOMPlugin::~DOMPlugin):
        * plugins/DOMPlugin.h:

2012-01-06  Dale Curtis  <dalecurtis@chromium.org>

        Move MediaDocument styles into CSS. Set black background for chromium.
        https://bugs.webkit.org/show_bug.cgi?id=74123

        Reviewed by Eric Seidel.

        Test: platform/chromium/media/video-black-bg-in-media-document.html

        * css/mediaControls.css:
        (body:-webkit-full-page-media):
        (video:-webkit-full-page-media):
        * css/mediaControlsChromium.css:
        (body:-webkit-full-page-media):
        * html/MediaDocument.cpp:
        (WebCore::MediaDocumentParser::createDocumentStructure):

2012-01-06  Alice Boxhall  <aboxhall@chromium.org>

        Report correct line number for non-native editable text elements.
        https://bugs.webkit.org/show_bug.cgi?id=71263

        Reviewed by Ryosuke Niwa.

        A non-native editable text element is an element with an ARIA role of "textbox", which is
        set on an element which behaves like an editable text element (such as a textarea, text
        input field or contenteditable text), but whose behaviour is controlled by the author rather
        than the browser.

        This change makes certain methods on Node, and related methods in htmlediting and
        visible_units, aware of the notion that an element may be editable only from the point of
        view of assistive technology (via the ARIA textbox role), via the EditableType enum added to
        EditingBoundary.h.

        This is so that AccessibilityObject::lineForPosition() can use previousLinePosition(), and
        AccessibilityRenderObject::indexForVisiblePosition() can use highestEditableRoot(), in a way
        that respects non-native editability.

        Test: accessibility/textbox-role-reports-line-number.html

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::rootAXEditableElement): Returns the root element which is
        editable from the point of view of assistive technology, whether natively or otherwise.
        (WebCore::AXObjectCache::nodeIsTextControl): Whether the given node is considered an
        editable text element by assistive technology, natively or otherwise.
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::lineForPosition): Modified to request the previous line
        position in an element which is editable to Accessibility.
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::indexForVisiblePosition): Modified to request the
        highest root element which is editable to Accessibility.
        * dom/Node.cpp:
        (WebCore::Node::rendererIsEditableToAccessibility): Whether this node is editable to
        Accessibility for the given EditableLevel.
        (WebCore::Node::rootEditableElement): Overloaded version of this method which takes an
        EditableType enum value indicating whether non-native editability is to be respected.
        * dom/Node.h:
        (WebCore::Node::rendererIsEditable): Overloaded version of this method which takes an
        EditableType enum value indicating whether non-native editability is to be respected.
        (WebCore::Node::rendererIsRichlyEditable):  Overloaded version of this method which takes
        an EditableType enum value indicating whether non-native editability is to be respected.
        * editing/EditingBoundary.h:
        * editing/htmlediting.cpp:
        (WebCore::highestEditableRoot): Added optional EditableType parameter.
        (WebCore::isEditablePosition): Added optional EditableType parameter.
        (WebCore::isRichlyEditablePosition): Added optional EditableType parameter.
        (WebCore::editableRootForPosition): Added optional EditableType parameter.
        * editing/htmlediting.h:
        * editing/visible_units.cpp:
        (WebCore::previousLeafWithSameEditability): Added optional EditableType parameter.
        (WebCore::previousLinePosition): Added optional EditableType parameter.
        (WebCore::nextLeafWithSameEditability): Added optional EditableType parameter.
        (WebCore::nextLinePosition): Added optional EditableType parameter.
        * editing/visible_units.h:

2012-01-05  Kent Tamura  <tkent@chromium.org>

        Fix a crash by importing an element of which local name ends with ":input".
        https://bugs.webkit.org/show_bug.cgi?id=75103

        Reviewed by Ryosuke Niwa.

        Test: fast/dom/importNode-confusing-localName.html

        * dom/Document.cpp:
        (WebCore::Document::importNode): Pass QualifiedName of the source elemnt
        to createElement() in order to avoid unnecessary serialization and
        parsing of the qualified name

2012-01-06  Alexis Menard  <alexis.menard@openbossa.org>

        Move HTMLFormControlElementWithState class in its own header file.
        https://bugs.webkit.org/show_bug.cgi?id=75482

        Reviewed by Kent Tamura.

        Move HTMLFormControlElementWithState class which was mixed in HTMLFormControlElement
        files into its own header file and its own implementation file.

        No new tests : the existing ones should cover the refactoring.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * html/HTMLElementsAllInOne.cpp:
        * html/HTMLFormControlElement.cpp:
        * html/HTMLFormControlElement.h:
        * html/HTMLKeygenElement.h:
        * html/HTMLSelectElement.h:
        * html/HTMLTextFormControlElement.h:

2012-01-06  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r104268.
        http://trac.webkit.org/changeset/104268
        https://bugs.webkit.org/show_bug.cgi?id=75689

        It broke the mac build (Requested by Ossy on #webkit).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * html/HTMLElementsAllInOne.cpp:
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElementWithState::HTMLFormControlElementWithState):
        (WebCore::HTMLFormControlElementWithState::~HTMLFormControlElementWithState):
        (WebCore::HTMLFormControlElementWithState::didMoveToNewDocument):
        (WebCore::HTMLFormControlElementWithState::shouldAutocomplete):
        (WebCore::HTMLFormControlElementWithState::shouldSaveAndRestoreFormControlState):
        (WebCore::HTMLFormControlElementWithState::finishParsingChildren):
        * html/HTMLFormControlElement.h:
        (WebCore::HTMLFormControlElementWithState::canContainRangeEndPoint):
        (WebCore::HTMLFormControlElementWithState::saveFormControlState):
        (WebCore::HTMLFormControlElementWithState::restoreFormControlState):
        * html/HTMLFormControlElementWithState.cpp: Removed.
        * html/HTMLFormControlElementWithState.h: Removed.
        * html/HTMLKeygenElement.h:
        * html/HTMLSelectElement.h:
        * html/HTMLTextFormControlElement.h:

2012-01-06  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r104259 and r104261.
        http://trac.webkit.org/changeset/104259
        http://trac.webkit.org/changeset/104261
        https://bugs.webkit.org/show_bug.cgi?id=75688

        Caused assertion failures (Requested by rniwa on #webkit).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::takeAllChildrenFrom):
        (WebCore::ContainerNode::insertBefore):
        (WebCore::ContainerNode::replaceChild):
        (WebCore::ContainerNode::removeBetween):
        (WebCore::ContainerNode::removeChildren):
        (WebCore::ContainerNode::appendChild):
        (WebCore::ContainerNode::parserAddChild):
        * dom/DOMAllInOne.cpp:
        * dom/Document.cpp:
        (WebCore::Document::setDocType):
        (WebCore::Document::adoptNode):
        * dom/Element.cpp:
        (WebCore::Element::removeShadowRoot):
        * dom/Node.cpp:
        (WebCore::Node::setDocument):
        (WebCore::Node::setTreeScopeRecursively):
        (WebCore::Node::setDocumentRecursively):
        (WebCore::Node::didMoveToNewDocument):
        * dom/Node.h:
        * dom/TreeScope.cpp:
        * dom/TreeScope.h:
        * dom/TreeScopeAdopter.cpp: Removed.
        * dom/TreeScopeAdopter.h: Removed.

2012-01-05  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/10633760> Update copyright strings

        Reviewed by Mark Rowe.

        * Info.plist:

2012-01-05  Alexis Menard  <alexis.menard@openbossa.org>

        Move HTMLFormControlElementWithState class in its own header file.
        https://bugs.webkit.org/show_bug.cgi?id=75482

        Reviewed by Kent Tamura.

        Move HTMLFormControlElementWithState class which was mixed in HTMLFormControlElement
        files into its own header file and its own implementation file.

        No new tests : the existing ones should cover the refactoring.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * html/HTMLElementsAllInOne.cpp:
        * html/HTMLFormControlElement.cpp:
        * html/HTMLFormControlElement.h:
        * html/HTMLKeygenElement.h:
        * html/HTMLSelectElement.h:
        * html/HTMLTextFormControlElement.h:

2012-01-05  Wei James  <james.wei@intel.com>

        Optimize with memcpy instead of copying frame by frame in Realtimeanalyser::doFFTAnalysis
        https://bugs.webkit.org/show_bug.cgi?id=74693

        Reviewed by Kenneth Russell.

        * webaudio/RealtimeAnalyser.cpp:
        (WebCore::RealtimeAnalyser::doFFTAnalysis):

2012-01-05  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r104210): Dromaeo DOM test score is lower
        https://bugs.webkit.org/show_bug.cgi?id=75679

        Reviewed by Andreas Kling.

        The regression was caused by isDomVersionConsistent not being able to obtain the tree version
        inside isLengthCacheValid when m_cachedItem is null. Fix the regression by always setting
        m_cachedItem to some node when caching the length so that we can obtain the tree version later.

        Also address Antti's review comment to fit m_cachedLength, m_isLengthCacheValid, and
        m_isItemCacheValid all in 32-bit.

        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::setLengthCache):

2012-01-05  Hajime Morrita  <morrita@chromium.org>

        Unreviewed bad merge fix for r104259 which dropped a line from r104210.

        * dom/TreeScopeAdopter.cpp:
        (WebCore::TreeScopeAdopter::moveTreeToNewScope):

2012-01-05  Yongjun Zhang  <yongjun_zhang@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=75593
        Reviewed by Alexey Proskuryakov.

        Null-check 'page' variable before use, to follow the common usage pattern of m_frame->page()
        throughout the rest of FrameView.cpp.

        * page/FrameView.cpp:
        (WebCore::FrameView::notifyPageThatContentAreaWillPaint):

2012-01-04  Hajime Morrita  <morrita@chromium.org>

        [Refactoring] Moving between TreeScopes should be done by its own class.
        https://bugs.webkit.org/show_bug.cgi?id=75290

        Reviewed by Ryosuke Niwa.

        This change extracted Node::setTreeScopeRecursively(),
        setDocumentRecursively() and a part of setDocument() into a new
        class called TreeScopeAdopter. By doing this, the idea of
        moving a node from scope to scope, that was originally hidden
        behind the forest of Node APIs, has become clearer.

        Note that this change is a preparation for Bug 59816.

        No new tests. No behavioral change.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/ContainerNode.cpp: Followed the renaming.
        (WebCore::ContainerNode::takeAllChildrenFrom):
        (WebCore::ContainerNode::insertBefore):
        (WebCore::ContainerNode::replaceChild):
        (WebCore::ContainerNode::removeBetween):
        (WebCore::ContainerNode::removeChildren):
        (WebCore::ContainerNode::appendChild):
        (WebCore::ContainerNode::parserAddChild):
        * dom/DOMAllInOne.cpp:
        * dom/Document.cpp: Followed te renaming.
        (WebCore::Document::setDocType):
        (WebCore::Document::adoptNode):
        * dom/Element.cpp: Followed te renaming.
        (WebCore::Element::removeShadowRoot):
        * dom/Node.cpp:
        (WebCore::Node::setDocument):
        (WebCore::Node::setTreeScope):
        (WebCore::Node::didMoveToNewDocument):
        * dom/Node.h:
        * dom/TreeScope.h:
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::adoptIfNeeded): moved from setTreeScopeRecursively()
        * dom/TreeScopeAdopter.cpp: Added.
        (WebCore::TreeScopeAdopter::TreeScopeAdopter):
        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
        (WebCore::TreeScopeAdopter::moveTreeToNewDocument):
        (WebCore::TreeScopeAdopter::ensureDidMoveToNewDocumentWasCalled):
        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
        * dom/TreeScopeAdopter.h: Added.
        (WebCore::TreeScopeAdopter::ensureDidMoveToNewDocumentWasCalled):
        (WebCore::TreeScopeAdopter::execute):
        (WebCore::TreeScopeAdopter::needsScopeChange()):
        (WebCore::TreeScopeAdopter::shadowRootFor):

2012-01-05  Jochen Eisinger  <jochen@chromium.org>

        Disallow access to DOM storage from detached frames.
        https://bugs.webkit.org/show_bug.cgi?id=61326

        Reviewed by Adam Barth.

        * storage/StorageAreaImpl.cpp:
        (WebCore::StorageAreaImpl::disabledByPrivateBrowsingInFrame):

2012-01-05  No'am Rosenthal  <noam.rosenthal@nokia.com>

        [Qt][Texmap] Convert shaders in TextureMapperGL to use a macro
        https://bugs.webkit.org/show_bug.cgi?id=75598

        Use VERTEX_SHADER() and FRAGMENT_SHADER() macros, instead of quoted string literals when
        declaring shaders in TextureMapperGL.

        We need two macros to account for the differences between OpenGL and OpenGL ES2.

        Reviewed by Martin Robinson.

2012-01-05  Ryosuke Niwa  <rniwa@webkit.org>

        sizeof(CSSRule) is 20 instead of 12 on Windows
        https://bugs.webkit.org/show_bug.cgi?id=75665

        Reviewed by Darin Fisher.

        Unlike gcc and clang, MSVC pads each consecutive member variables of the same type
        in bitfields. e.g. if you have:

        sturct AB {
        unsigned m_1 : 31;
        bool m_2 : 1;
        }

        then MSVC pads m_1 and allocates sizeof(unsigned) * 2 for AB whereas gcc and clang
        only allocate sizeof(unsigned) * 1 for AB.

        Fix the bloat by turning all bitfields in CSSRule either signed or unsigned integers.

        * css/CSSRule.cpp:
        * css/CSSRule.h:
        (WebCore::CSSRule::sourceLine):
        (WebCore::CSSRule::setSourceLine):
        (WebCore::CSSRule::hasCachedSelectorText):
        (WebCore::CSSRule::setHasCachedSelectorText):
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::CSSStyleRule):
        (WebCore::CSSStyleRule::cleanup):
        (WebCore::CSSStyleRule::selectorText):
        (WebCore::CSSStyleRule::setSelectorText):
        * css/CSSStyleRule.h:

2012-01-05  David Grogan  <dgrogan@chromium.org>

        IndexedDB: fix cursor prefetch crash
        http://crbug.com/108071
        https://bugs.webkit.org/show_bug.cgi?id=75596

        Reviewed by Tony Chang.

        Test: storage/indexeddb/prefetch-bugfix-108071.html
        Note: DumpRenderTree doesn't exercise the bug, it only occurs in
        multi-process chromium.  The layout test will soon be run as a
        chromium ui test: http://codereview.chromium.org/9108004

        * storage/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
        (WebCore::IDBCursorBackendImpl::~IDBCursorBackendImpl): Destroy
        cursors before their objectstores.
        (WebCore::IDBCursorBackendImpl::prefetchReset): Don't run continue if
        the cursor is closed.
        (WebCore::IDBCursorBackendImpl::close): Set a closed flag.
        * storage/IDBCursorBackendImpl.h:

2012-01-04  James Robinson  <jamesr@chromium.org>

        [chromium] Route all animate calls through CCLayerTreeHost in composited mode to simplify rate limiting logic
        https://bugs.webkit.org/show_bug.cgi?id=75577

        Reviewed by Darin Fisher.

        This internalizes the animation rate limiting logic to CCLayerTreeHost and removes the setters/getters for the
        m_animating flag. This requires that all animation updates have to go through CCLayerTreeHost to get the right
        rate limiting behavior, regardless of which proxy is being used.

        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::updateAnimations):
        (WebCore::CCLayerTreeHost::layout):
        (WebCore::CCLayerTreeHost::startRateLimiter):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::beginFrameAndCommit):

2012-01-05  Justin Novosad  <junov@chromium.org>

        [Chromium] NativeImageSkia should mark SkBitmaps as immutable
        https://bugs.webkit.org/show_bug.cgi?id=74962

        Removed m_isDataComplete from class NativeImageSkia. Instead, data
        completeness will be tracked through SkBitmap::setImmutable/
        isImmutable.  The immutable state signifies that the pixel data
        will no longer change for the lifetime of the bitmap, which corresponds
        to the semantic of the old m_isDataComplete member. setImmutable is
        also called on the cached resized bitmap, since it too is invariant for
        its life time. Temporary resized bitmaps are also marked as immutable
        since they technically are.

        Reviewed by Stephen White.

        * platform/graphics/skia/NativeImageSkia.cpp:
        (WebCore::NativeImageSkia::NativeImageSkia):
        (WebCore::NativeImageSkia::resizedBitmap):
        (WebCore::NativeImageSkia::shouldCacheResampling):
        * platform/graphics/skia/NativeImageSkia.h:
        (WebCore::NativeImageSkia::setDataComplete):
        (WebCore::NativeImageSkia::isDataComplete):

2012-01-05  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r104231.
        http://trac.webkit.org/changeset/104231
        https://bugs.webkit.org/show_bug.cgi?id=75668

        Breaks the Qt build (Requested by abarth on #webkit).

        * platform/SchemeRegistry.cpp:
        * platform/SchemeRegistry.h:

2012-01-05  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=75654
        Text fields should draw using NSTextFieldCell instead of WebKitSystemInterface

        Reviewed by John Sullivan.

        This change should not have any affect on tests or real web sites. It just changed 
        the implementation under the hood to the more modern NSCell approach.
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintTextField):
        (WebCore::RenderThemeMac::textField):

2012-01-05  Ryosuke Niwa  <rniwa@webkit.org>

        Add a compile-time assertion for the size of CSSValue
        https://bugs.webkit.org/show_bug.cgi?id=75635

        Reviewed by Tony Chang.

        Tightened the compile-time assertion.

        * css/CSSValue.cpp:

2012-01-05  Adam Barth  <abarth@webkit.org>

        [V8] CodeGeneration for SerializedScriptValue doesn't play nice with [Constructor]
        https://bugs.webkit.org/show_bug.cgi?id=75641

        Reviewed by David Levin.

        Rather than generate getters for SerializedScriptValues, we eagerly
        deserialize them into JavaScript objects.  However, previously, we were
        only doing that for DOM wrappers created by taking an existing C++
        object and wrapping it.  For objects created with Constructors (e.g.,
        those with the [Constructor] attribute), we need to do this eager
        deserialization during the constructor as well.

        This bug isn't observable yet, but it is causing the WebIntent test
        being added in Bug 73051 to fail.

        Test: TestSerializedScriptValueInterface.idl
              webintents/web-intents-api.html (after Bug 73051 lands)

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateEagerDeserialization):
        (GenerateConstructorCallback):
        (GenerateNamedConstructorCallback):
        (GenerateImplementation):
        (GenerateToV8Converters):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::getConstructData):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
        * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
        * bindings/scripts/test/V8/V8TestInterface.cpp:
        (WebCore::V8TestInterface::constructorCallback):
        * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
        (WebCore::V8TestNamedConstructorConstructorCallback):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::V8TestObj::constructorCallback):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
        (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
        (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
        * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:

2012-01-05  Adam Barth  <abarth@webkit.org>

        Introduce Platform namespace for WebCore/platform
        https://bugs.webkit.org/show_bug.cgi?id=75653

        Reviewed by Eric Seidel.

        This patch introduces the Platform namespace for WebCore/platform.
        Introducing this namespace will help us find and fix layering
        violations in preparation for moving WebCore/platform to Platform.

        * platform/SchemeRegistry.cpp:
        * platform/SchemeRegistry.h:

2012-01-05  Ryosuke Niwa  <rniwa@webkit.org>

        Inserting nodes is slow due to Node::notifyNodeListsAttributeChanged (20%+)
        https://bugs.webkit.org/show_bug.cgi?id=73853

        Reviewed by Antti Koivisto.

        Lazily invalidate the node list caches instead of invaliding them at the time of modification. We use
        the DOM tree version to detect whether caches need to be invalidated or not. We now invalidate caches more
        frequently after this patch (in particular, invalidates caches that are stored on nodes not present in
        the ancestry of the modified nodes); however, our study on major Web sites such as Gmail, Facebook, Twitter,
        etc... indicate that about 1% of real-world usage benefits from keeping the caches alive across different
        DOM tree versions.

        In order to invalidate caches lazily, this patch adds replaces the type of m_caches in DynamicSubtreeNodeList
        by DynamicSubtreeNodeList::SubtreeCaches which encapsulates member variables in DynamicNodeList::Caches and
        invalidates values as needed. Also this change allows m_caches to be allocated as a part of
        DynamicSubtreeNodeList instead of a separate ref-counted object.

        * dom/Attr.cpp:
        (WebCore::Attr::setValue):
        (WebCore::Attr::childrenChanged):
        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
        (WebCore::DynamicSubtreeNodeList::length):
        (WebCore::DynamicSubtreeNodeList::itemForwardsFromCurrent):
        (WebCore::DynamicSubtreeNodeList::itemBackwardsFromCurrent):
        (WebCore::DynamicSubtreeNodeList::item):
        (WebCore::DynamicSubtreeNodeList::invalidateCache):
        (WebCore::DynamicNodeList::Caches::create):
        (WebCore::DynamicNodeList::Caches::reset):
        * dom/DynamicNodeList.h:
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::SubtreeCaches): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::isLengthCacheValid): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::isItemCacheValid): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::cachedLength): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::cachedItem): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::cachedItemOffset): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::setLengthCache): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::setItemCache): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::reset): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::domVersionIsConsistent): Added.
        * dom/Element.cpp:
        (WebCore::Element::updateAfterAttributeChanged):
        * dom/Node.cpp:
        (WebCore::Node::setTreeScopeRecursively): Clear caches when a node moves from one document to another.
        (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged): Only clears child node list of Attr.
        (WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged): Only clears child node list.
        (WebCore::NodeListsNodeData::invalidateCaches): Merged with invalidateCachesThatDependOnAttributes.
        * dom/Node.h:
        * dom/NodeRareData.h:
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::parseMappedAttribute):
        * html/HTMLLabelElement.cpp:
        * html/HTMLLabelElement.h:

2012-01-05  Ojan Vafai  <ojan@chromium.org>

        IE quirk for percentage size on a table element doesn't work with orthogonal writing modes
        https://bugs.webkit.org/show_bug.cgi?id=70195

        Reviewed by Eric Seidel.

        Remove this quirk entirely. Mozilla and Opera don't implement it and IE
        doesn't restrict the quirk to standards mode. As it's unlikely for
        webkit-only content to hit this quirk (e.g. use tables for layout),
        it should be relatively safe to match Mozilla/Opera here.

        Test: fast/writing-mode/table-percent-width-quirk.html

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

2012-01-05  Tien Ren Chen  <trchen@chromium.org>

        [chromium] Add CCTimer class for the compositor
        https://bugs.webkit.org/show_bug.cgi?id=74769

        Reviewed by James Robinson.

        Add a simple timer class for CCThread that the timered task can be
        manually cancelled.

        * WebCore.gypi:
        * platform/graphics/chromium/cc/CCTimer.cpp: Added.
        (WebCore::CCTimerTask::CCTimerTask):
        (WebCore::CCTimerTask::~CCTimerTask):
        (WebCore::CCTimerTask::performTask):
        (WebCore::CCTimer::CCTimer):
        (WebCore::CCTimer::~CCTimer):
        (WebCore::CCTimer::startOneShot):
        (WebCore::CCTimer::stop):
        * platform/graphics/chromium/cc/CCTimer.h: Added.
        (WebCore::CCTimerClient::~CCTimerClient):
        (WebCore::CCTimer::isActive):

2012-01-05  Eric Carlson  <eric.carlson@apple.com>

        Implement temporal dimension portion of Media Fragments URI specification for video/audio
        https://bugs.webkit.org/show_bug.cgi?id=65838

        Reviewed by Sam Weinig.

        Tests: media/media-fragments/TC0001-TC0009.html
               media/media-fragments/TC0010-TC0019.html
               media/media-fragments/TC0020-TC0029.html
               media/media-fragments/TC0030-TC0039.html
               media/media-fragments/TC0040-TC0049.html
               media/media-fragments/TC0050-TC0059.html
               media/media-fragments/TC0060-TC0069.html
               media/media-fragments/TC0070-TC0079.html
               media/media-fragments/TC0080-TC0089.html
               media/media-fragments/TC0090-TC0099.html

        * CMakeLists.txt: Add fragment parser files.
        * GNUmakefile.list.am: Ditto.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_fragmentStartTime and m_fragmentEndTime.
        (WebCore::HTMLMediaElement::setReadyState): Check for and parse a media fragment once readyState
            reaches HAVE_METADATA, apply it once it reaches HAVE_CURRENT_DATA.
        (WebCore::HTMLMediaElement::initialTime): Return the fragment start time if possible.
        (WebCore::HTMLMediaElement::playbackProgressTimerFired): Pause if the time is >= the fragment
            end time.
        (WebCore::HTMLMediaElement::prepareMediaFragmentURI): Look for a temporal fragment.
        (WebCore::HTMLMediaElement::applyMediaFragmentURI): Apply the fragment, if any.
        * html/HTMLMediaElement.h:

        * html/MediaFragmentURIParser.cpp: Added.
        (WebCore::skipWhiteSpace):
        (WebCore::collectDigits):
        (WebCore::collectFraction):
        (WebCore::MediaFragmentURIParser::invalidTimeValue):
        (WebCore::MediaFragmentURIParser::MediaFragmentURIParser):
        (WebCore::MediaFragmentURIParser::startTime):
        (WebCore::MediaFragmentURIParser::endTime):
        (WebCore::MediaFragmentURIParser::parseFragments):
        (WebCore::MediaFragmentURIParser::parseTimeFragment):
        (WebCore::MediaFragmentURIParser::parseNPTFragment):
        (WebCore::MediaFragmentURIParser::parseNPTTime):
        * html/MediaFragmentURIParser.h: Added.
        (WebCore::MediaFragmentURIParser::~MediaFragmentURIParser):
        (WebCore::MediaFragmentURIParser::create):

2012-01-05  ChangSeok Oh  <shivamidow@gmail.com>

        Remove style warning in GraphicsContext3DOpenGL.cpp
        https://bugs.webkit.org/show_bug.cgi?id=75466

        Reviewed by Kenneth Russell.

        Relocated some headers according to alphabetical order & modified indentation.
        And used OwnArrayPtr to deal with character array.

        No new tests required. 

        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
        (WebCore::GraphicsContext3D::getString):
        (WebCore::GraphicsContext3D::releaseShaderCompiler):
        (WebCore::GraphicsContext3D::getProgramInfoLog):
        (WebCore::GraphicsContext3D::getShaderiv):
        (WebCore::GraphicsContext3D::getShaderInfoLog):
        (WebCore::GraphicsContext3D::getShaderSource):

2012-01-05  Ken Buchanan <kenrb@chromium.org>

        Crash due to reparenting of relpositioned object under anonymous block
        https://bugs.webkit.org/show_bug.cgi?id=70848

        The associated test case creates a condition where a relative
        positioned renderer is a descendant of an anonymous block for a
        table column. The anonymous block is the containingBlock() for the
        relpositioned renderer. Removal of a div causes the anonymous blocks to
        be merged, and the renderer becomes a descendant of a different block.
        Since the new containingBlock() has an empty positionedObject list,
        the relpositioned renderer does not get layout after being dirtied.

        This patch changes containingBlock() so that it returns the container
        of an anonymous block for positioned objects, not the anonymous
        block itself. It also adds an ASSERT to insertPositionedObject()
        to flag any other cases where something is trying to create a
        positioned object list on an anonymous block.

        Reviewed by David Hyatt.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::insertPositionedObject):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::containingBlock):

2012-01-05  Jian Li  <jianli@chromium.org>

        FileReader needs addEventListener
        https://bugs.webkit.org/show_bug.cgi?id=42723

        Reviewed by Adam Barth.

        Test: fast/files/file-reader-event-listener.html

        * fileapi/FileReader.idl:

2012-01-04  Pratik Solanki  <psolanki@apple.com>

        Remove deprecated calls from CookieJarCFNet.cpp
        https://bugs.webkit.org/show_bug.cgi?id=68958

        Reviewed by Sam Weinig.

        * platform/network/cf/CookieJarCFNet.cpp:
        (WebCore::cookieDomain):
        (WebCore::cookieExpirationTime):
        (WebCore::cookieName):
        (WebCore::cookiePath):
        (WebCore::cookieValue):

2012-01-05  Fady Samuel  <fsamuel@chromium.org>

        Move scalePageBy from eventSender to window.internals
        https://bugs.webkit.org/show_bug.cgi?id=64512

        Reviewed by Simon Fraser.

        Added setPageScaleFactor to window.internals.
        Renamed window.internals.getPageScaleFactor to window.internals.pageScaleFactor
        to match the webkit style.

        * testing/Internals.cpp:
        (WebCore::Internals::pageScaleFactor):
        (WebCore::Internals::setPageScaleFactor):
        * testing/Internals.h:
        * testing/Internals.idl:

2012-01-05  Cary Clark  <caryclark@google.com>

        [Skia Mac] Rounded bezel style button needs one more local graphics context to scale
        https://bugs.webkit.org/show_bug.cgi?id=75623
        http://code.google.com/p/chromium/issues/detail?id=108749

        In paintButton(), the local context is set up first, and later the context is
        scaled if there's a zoomFactor. Skia creates the CoreGraphics context to draw the
        button into without that scale factor. To fix this, another local context is added
        after the parameter context scale, before the button draw. The first local context
        is still required to restore the parameter context state.

        Reviewed by Stephen White.

        * platform/chromium/ThemeChromiumMac.mm:
        (WebCore::paintButton):

2012-01-05  Alexis Menard  <alexis.menard@openbossa.org>

        getComputedStyle for background is not implemented.
        https://bugs.webkit.org/show_bug.cgi?id=75539

        Reviewed by Tony Chang.

        Implement getComputedStyle for background.

        Test: fast/css/getComputedStyle/getComputedStyle-background-shorthand.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2012-01-05  Ryosuke Niwa  <rniwa@webkit.org>

        DOM Attribute tests on Dromaeo spends 2.7% of time in hasSelectorForAttribute
        https://bugs.webkit.org/show_bug.cgi?id=75569

        Reviewed by Andreas Kling.

        Check needsStyleRecalc() first to avoid unnecessary hash lookups.

        * dom/Element.cpp:
        (WebCore::Element::recalcStyleIfNeededAfterAttributeChanged):

2012-01-05  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        [EFL] Replace alloca to C++ new placement.
        https://bugs.webkit.org/show_bug.cgi?id=72017

        Reviewed by Andreas Kling.

        Replaces alloca to C++ new placement as it is not very portable.
        It allows to skip checking of memory allocation as new never returns NULL.
        According to Edje's documentation type of val (member of Edje_Message_Float_Set)
        is double so I changed it to avoid undefined behaviour.

        * platform/efl/ScrollbarEfl.cpp:
        (ScrollbarEfl::updateThumbPositionAndProportion):

2012-01-05  Benjamin Poulain  <bpoulain@apple.com>

        Remove duplicate file references from WebCore.xcodeproj
        https://bugs.webkit.org/show_bug.cgi?id=75581

        Reviewed by Andreas Kling.

        Many generated DOMSVG files had two references.

        In platform/graphics, there was two arm directory
        with the same files related to ARM Neon.

        * WebCore.xcodeproj/project.pbxproj:

2012-01-05  Antti Koivisto  <antti@apple.com>

        Improve SelectorChecker::determineSelectorScopes
        https://bugs.webkit.org/show_bug.cgi?id=75619

        Reviewed by Andreas Kling.

        SelectorChecker::determineSelectorScopes currently searches to the end of the selector chain and
        then sees if the last one is suitable to be a scope. A better algorithm will find a scope from
        anywhere in the chain.
        
        With this patch we search the whole chain for potential scopes. We now prefer id scopes
        over class scopes. Scopes can be found for rules using sibling selectors too.
        
        On both engadget.com and nytimes.com, we can now skip one more full style recalc due to 
        the improved stylesheet analysis. 

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::determineSelectorScopes):

2012-01-05  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Use the default screen in PlatformScreenGtk methods when they are called with a NULL widget
        https://bugs.webkit.org/show_bug.cgi?id=75620

        Reviewed by Philippe Normand.

        We are currently retuning an empty rectangle for
        screenRect/screenAvailableRect and 0 for getVisual.

        * platform/gtk/PlatformScreenGtk.cpp:
        (WebCore::getVisual):
        (WebCore::screenRect):
        (WebCore::screenAvailableRect):

2012-01-05  Alpha Lam  <hclam@chromium.org>

        Unreviewed. Build fix.

        Adding missing const_cast<> to fix compilation failures due to r104143.

        * platform/audio/VectorMath.cpp:
        (WebCore::VectorMath::zvmul):

2012-01-05  Adam Barth  <abarth@webkit.org>

        Move Gamepad declarations from Navigator.idl into Modules/gamepad
        https://bugs.webkit.org/show_bug.cgi?id=75559

        Reviewed by Eric Seidel.

        This patch moves the gamepad-related declarations in Navigator.idl into
        Modules/gamepad.  The next step is to move the state into
        Modules/gamepad as well.

        * Modules/gamepad/NavigatorGamepad.cpp: Added.
        (WebCore::NavigatorGamepad::NavigatorGamepad):
        (WebCore::NavigatorGamepad::~NavigatorGamepad):
        (WebCore::NavigatorGamepad::webkitGamepads):
        * Modules/gamepad/NavigatorGamepad.h: Added.
        * Modules/gamepad/NavigatorGamepad.idl: Added.
        * WebCore.gypi:
        * page/Navigator.cpp:
        (WebCore::Navigator::gamepads):
        * page/Navigator.h:
        * page/Navigator.idl:

2012-01-05  Alexis Menard  <alexis.menard@openbossa.org>

        getComputedStyle for border-image is not implemented.
        https://bugs.webkit.org/show_bug.cgi?id=75347

        Reviewed by Tony Chang.

        Implement getComputedStyle for border-color.

        fast/css/getComputedStyle/computed-style-border-image.html was extended to cover the
        new feature.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2012-01-05  Xingnan Wang  <xingnan.wang@intel.com>

        Add a SSE2 optimized function zvmul in VectorMatch
        https://bugs.webkit.org/show_bug.cgi?id=74842

        Reviewed by Kenneth Russell.

        Use zvmul in FFTFrameFFMPEG.cpp::multiply() and FFTFrameMac.cpp::multiply().

        * platform/audio/VectorMath.cpp:
        (WebCore::VectorMath::zvmul):
        * platform/audio/VectorMath.h:
        * platform/audio/ffmpeg/FFTFrameFFMPEG.cpp:
        (WebCore::FFTFrame::multiply):
        * platform/audio/mac/FFTFrameMac.cpp:
        (WebCore::FFTFrame::multiply):

2012-01-05  Alpha Lam  <hclam@chromium.org>

        Unreviewed. Build fix for Chromium Mac Clang build.

        Push using namespace WTF to .cpp file from .h file.

        * platform/text/TextCodecASCIIFastPath.h:
        * platform/text/TextCodecLatin1.cpp:
        * platform/text/TextCodecUTF8.cpp:

2012-01-05  Max Vujovic  <mvujovic@adobe.com>

        WebKit adds vertical paddings and borders to the fixed width of CSS tables
        https://bugs.webkit.org/show_bug.cgi?id=74955

        Reviewed by Julien Chaffraix.

        Test: fast/table/css-table-width.html

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::computeLogicalWidth):

            Changed the width calculation for CSS tables to take into account horizontal
            paddings and borders instead of vertical paddings and borders.

2012-01-05  Peter Beverloo  <peter@chromium.org>

        [Chromium] Upstream the RenderTheme and ScrollbarTheme for Android
        https://bugs.webkit.org/show_bug.cgi?id=74614

        Reviewed by Adam Barth.

        Upstream the RenderTheme and ScrollbarTheme for Android. These are
        mostly derived from their Linux variants.

        RenderThemeChromiumAndroid inherits from RenderThemeChromiumLinux and
        only overrides the three methods which have different behavior.
        Scrollbars will be drawn in the threaded compositor for Android (which
        will be upstreamed later), but for increased layout test parity we'll
        match Chromium-Linux.

        No new tests. This code will be exercised by existing layout tests, and
        by manually verifying that theme parts render as expected.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * platform/chromium/ScrollbarThemeChromiumAndroid.cpp: Added.
        (WebCore::ScrollbarTheme::nativeTheme):
        (WebCore::ScrollbarThemeChromiumAndroid::scrollbarThickness):
        (WebCore::ScrollbarThemeChromiumAndroid::paintScrollbarBackground):
        (WebCore::ScrollbarThemeChromiumAndroid::shouldCenterOnThumb):
        (WebCore::ScrollbarThemeChromiumAndroid::buttonSize):
        (WebCore::ScrollbarThemeChromiumAndroid::minimumThumbLength):
        * platform/chromium/ScrollbarThemeChromiumAndroid.h: Added.
        * rendering/RenderThemeChromiumAndroid.cpp: Added.
        (WebCore::RenderThemeChromiumAndroid::create):
        (WebCore::RenderTheme::themeForPage):
        (WebCore::RenderThemeChromiumAndroid::~RenderThemeChromiumAndroid):
        (WebCore::RenderThemeChromiumAndroid::systemColor):
        (WebCore::RenderThemeChromiumAndroid::adjustInnerSpinButtonStyle):
        * rendering/RenderThemeChromiumAndroid.h: Added.
        * rendering/RenderThemeChromiumLinux.cpp:
        * rendering/RenderThemeChromiumLinux.h:

2012-01-05  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        Fix potential superlinear runtime of multiple indirect adjenceny combinators.
        https://bugs.webkit.org/show_bug.cgi?id=75083

        Reviewed by Antti Koivisto.

        A sequence of indirect adjencency combinator such as "li ~ li ~ la" could with the
        former algorithm potentially do an quadratic number of element matches.
        The recursive matching algorithm now detects cases where all siblings have
        failed one indirect sibling match and fails the entire selector.

        Test: perf/nested-combined-selectors.html

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkSelector): Return SelectorFailsAllSiblings when
        all siblings have failed a selector component.
        * css/SelectorChecker.h: Add SelectorFailsAllSiblings enum value

2012-01-05  Andreas Kling  <awesomekling@apple.com>

        InspectorStyleSheet: Avoid cloning CSSRuleLists.
        <http://webkit.org/b/75603>

        Reviewed by Ryosuke Niwa.

        Don't filter out @charset rules from CSSRuleLists. This was forcing us to clone
        the stylesheet rule list, and is unnecessary since InspectorStyleSheet disregards
        any rule that isn't either a style rule or a rule with an internal rule list.

        * inspector/InspectorStyleSheet.cpp:
        (WebCore::asCSSRuleList):
        (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):

            Don't pass omitCharsetRules=true to the CSSRuleList constructor.

2012-01-05  Andreas Kling  <awesomekling@apple.com>

        Make elements with attributes smaller by eliminating the ref count in NamedNodeMap.
        <http://webkit.org/b/75068>

        Reviewed by Antti Koivisto.

        Remove NamedNodeMap's inheritance from RefCounted and forward the ref()/deref()
        calls to its owner Element, effectively reducing the size of an element that has
        attributes by 4 bytes.

        This reduces memory consumption by 311 kB when viewing the full HTML5 spec.

        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::ref):
        (WebCore::NamedNodeMap::deref):

            Added. Forwards the operation to m_element. Only ever used by the DOM wrappers.

        * dom/NamedNodeMap.h:
        (WebCore::NamedNodeMap::create):
        * dom/DocumentType.h:
        * dom/Element.cpp:
        (WebCore::Element::parserSetAttributeMap):
        * dom/Element.h:
        * html/parser/HTMLConstructionSite.cpp:
        * html/parser/HTMLToken.h:
        (WebCore::AtomicHTMLToken::AtomicHTMLToken):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processFakeStartTag):
        (WebCore::HTMLTreeBuilder::attributesForIsindexInput):
        * html/parser/HTMLTreeBuilder.h:
        * html/parser/TextDocumentParser.cpp:
        (WebCore::TextDocumentParser::insertFakePreElement):
        * xml/parser/MarkupTokenBase.h:
        (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
        (WebCore::AtomicMarkupTokenBase::takeAttributes):
        * xml/parser/XMLToken.h:
        (WebCore::AtomicXMLToken::AtomicXMLToken):

            Store NamedNodeMap in OwnPtr/PassOwnPtr, rather than RefPtr/PassRefPtr.

2012-01-05  Benjamin Poulain  <benjamin@webkit.org>

        Improve charactersAreAllASCII() to compare multiple characters at a time
        https://bugs.webkit.org/show_bug.cgi?id=74063

        Reviewed by Darin Adler.

        Move some part of TextCodecASCIIFastPath.h to WTF in ASCIIFastPath.h.
        The function isAllASCII() is changed to the template version which now works
        with both LChar and UChar.

        * ForwardingHeaders/wtf/text/ASCIIFastPath.h: Added.
        * platform/text/TextCodecASCIIFastPath.h:
        (WebCore::copyASCIIMachineWord):
        * platform/text/TextCodecLatin1.cpp:
        (WebCore::TextCodecLatin1::decode):
        * platform/text/TextCodecUTF8.cpp:
        (WebCore::TextCodecUTF8::decode):

2012-01-05  Eric Uhrhane  <ericu@chromium.org>

       [fileapi] WebKitFlags should not be constructable per Directories & System spec
       https://bugs.webkit.org/show_bug.cgi?id=68916

       Reviewed by Eric Seidel.

       Remove IDL for the object and all DOM references to it.
       * fileapi/WebKitFlags.idl: Removed.
       * page/DOMWindow.idl:
       * workers/WorkerContext.idl:
       Remove references to the JSC/V8 objects compiled from the IDL.
       * bindings/js/JSDirectoryEntryCustom.cpp:
       (WebCore::JSDirectoryEntry::getFile):
       (WebCore::JSDirectoryEntry::getDirectory):
       * bindings/js/JSDirectoryEntrySyncCustom.cpp:
       (WebCore::getFlags):
       * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
       (WebCore::V8DirectoryEntry::getDirectoryCallback):
       (WebCore::V8DirectoryEntry::getFileCallback):
       * bindings/v8/custom/V8DirectoryEntrySyncCustom.cpp:
       (WebCore::getFlags):
       Fix up build files.
       * WebCore.gypi:
       * WebCore.vcproj/WebCore.vcproj:
       * WebCore.xcodeproj/project.pbxproj:
       * WebCore/CMakeLists.txt:
       * WebCore/CodeGenerators.pri:
       * WebCore/DerivedSources.cpp:
       * WebCore/DerivedSources.make:
       * WebCore/GNUmakefile.list.am:

2012-01-05  Ken Buchanan  <kenrb@chromium.org>

        Crash due to first-letter block processing
        https://bugs.webkit.org/show_bug.cgi?id=74009

        Fixing the way updateFirstLetter() finds the remaining text fragment
        for a given first-letter. Previously this was unreliable in some
        circumstances.

        This patch provides a reliable mechanism to identify the remaining
        text by storing first-letter to remaining text associations in a
        hash map, managed by methods in RenderBoxModelObject.

        Reviewed by David Hyatt.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::updateFirstLetter)
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::willBeDestroyed):
        (WebCore::RenderBoxModelObject::setFirstLetterRemainingText): Added
        (WebCore::RenderBoxModelObject::firstLetterRemainingText): Added
        * rendering/RenderBoxModelObject.h:
        (WebCore::RenderBoxModelObject::setFirstLetterRemainingText): Added
        (WebCore::RenderBoxModelObject::firstLetterRemainingText): Added

2012-01-05  Mihnea Ovidenie  <mihnea@adobe.com>

        Crash in RenderRegion::getRegionRangeForBox.
        https://bugs.webkit.org/show_bug.cgi?id=74781

        Reviewed by David Hyatt.

        Test: fast/regions/region-range-for-box-crash.html

        This patch fixes 2 issues:
        1. When removing a region from a flow thread, we clear the region range information for boxes since
        this information is accurate only after the regions are laid out.
        2. While the regions are invalidated (content of flow thread is not yet laid out in regions), the
        functions that ask for properties of content in regions should bail out early.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::regionAtBlockOffset):
        (WebCore::RenderBlock::logicalWidthChangedInRegions):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::clearRenderBoxRegionInfo):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::removeRegionFromThread):
        (WebCore::RenderFlowThread::repaintRectangleInRegions):
        (WebCore::RenderFlowThread::mapFromFlowToRegion):
        (WebCore::RenderFlowThread::contentLogicalWidthOfFirstRegion):
        (WebCore::RenderFlowThread::contentLogicalHeightOfFirstRegion):
        (WebCore::RenderFlowThread::contentLogicalLeftOfFirstRegion):
        (WebCore::RenderFlowThread::firstRegion):
        (WebCore::RenderFlowThread::lastRegion):
        (WebCore::RenderFlowThread::getRegionRangeForBox):
        * rendering/RenderFlowThread.h:

2012-01-04  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r104084.
        http://trac.webkit.org/changeset/104084
        https://bugs.webkit.org/show_bug.cgi?id=75600

        Likely kills dom-perf benchmark in chromium
        http://build.chromium.org/f/chromium/perf/linux-
        release/dom_perf/report.html?history=150&rev=116444 (Requested
        by dslomov on #webkit).

        * dom/Attr.cpp:
        (WebCore::Attr::setValue):
        (WebCore::Attr::childrenChanged):
        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
        (WebCore::DynamicSubtreeNodeList::length):
        (WebCore::DynamicSubtreeNodeList::itemForwardsFromCurrent):
        (WebCore::DynamicSubtreeNodeList::itemBackwardsFromCurrent):
        (WebCore::DynamicSubtreeNodeList::item):
        (WebCore::DynamicSubtreeNodeList::invalidateCache):
        (WebCore::DynamicSubtreeNodeList::Caches::create):
        (WebCore::DynamicSubtreeNodeList::Caches::reset):
        * dom/DynamicNodeList.h:
        * dom/Element.cpp:
        (WebCore::Element::updateAfterAttributeChanged):
        * dom/Node.cpp:
        (WebCore::Node::setTreeScopeRecursively):
        (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged):
        (WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged):
        (WebCore::Node::notifyLocalNodeListsLabelChanged):
        (WebCore::Node::itemTypeAttributeChanged):
        (WebCore::NodeListsNodeData::invalidateCaches):
        (WebCore::NodeListsNodeData::invalidateCachesThatDependOnAttributes):
        * dom/Node.h:
        * dom/NodeRareData.h:
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::parseMappedAttribute):
        * html/HTMLLabelElement.cpp:
        (WebCore::HTMLLabelElement::parseMappedAttribute):
        * html/HTMLLabelElement.h:

2012-01-04  James Robinson  <jamesr@chromium.org>

        [chromium] Remove chromium compositor support for unused zoomAnimatorTransform
        https://bugs.webkit.org/show_bug.cgi?id=75585

        Reviewed by Kenneth Russell.

        Removes compositor support for zoomAnimatorTransform property. This code is unused and never was used.
        Zoom animations are handled by adjusting the page scale factor and scroll offsets.

        * platform/graphics/chromium/LayerChromium.h:
        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
        * platform/graphics/chromium/cc/CCLayerImpl.h:
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
        (WebCore::calculateDrawTransformsAndVisibilityInternal):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:

2012-01-04  Kenneth Russell  <kbr@google.com>

        Fix semantics of WEBKIT_WEBGL_lose_context
        https://bugs.webkit.org/show_bug.cgi?id=75053

        Reviewed by James Robinson.

        Updated WEBGL_lose_context extension to match WebGL spec's
        behavior:

          - loseContext() causes the context to be lost immediately, but
            the webglcontextlost event isn't dispatched until JavaScript
            returns.
          - restoreContext() may only be called once dispatch of the
            webglcontextlost event has completed, *and* if that event handler
            prevented the default behavior of the event.
          - restoreContext() performs its work asynchronously. The context
            is not restored until just before the webglcontextrestored event
            is dispatched.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::WebGLRenderingContext):
        (WebCore::WebGLRenderingContext::forceLostContext):
        (WebCore::WebGLRenderingContext::forceRestoreContext):
        (WebCore::WebGLRenderingContext::dispatchContextLostEvent):
        (WebCore::WebGLRenderingContext::maybeRestoreContext):
        * html/canvas/WebGLRenderingContext.h:

2011-12-30  Ryosuke Niwa  <rniwa@webkit.org>

        Inserting nodes is slow due to Node::notifyNodeListsAttributeChanged (20%+)
        https://bugs.webkit.org/show_bug.cgi?id=73853

        Reviewed by Antti Koivisto.

        Lazily invalidate the node list caches instead of invaliding them at the time of modification. We use
        the DOM tree version to detect whether caches need to be invalidated or not. We now invalidate caches more
        frequently after this patch (in particular, invalidates caches that are stored on nodes not present in
        the ancestry of the modified nodes); however, our study on major Web sites such as Gmail, Facebook, Twitter,
        etc... indicate that about 1% of real-world usage benefits from keeping the caches alive across different
        DOM tree versions.

        In order to invalidate caches lazily, this patch adds replaces the type of m_caches in DynamicSubtreeNodeList
        by DynamicSubtreeNodeList::SubtreeCaches which encapsulates member variables in DynamicNodeList::Caches and
        invalidates values as needed. Also this change allows m_caches to be allocated as a part of
        DynamicSubtreeNodeList instead of a separate ref-counted object.

        * dom/Attr.cpp:
        (WebCore::Attr::setValue):
        (WebCore::Attr::childrenChanged):
        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
        (WebCore::DynamicSubtreeNodeList::length):
        (WebCore::DynamicSubtreeNodeList::itemForwardsFromCurrent):
        (WebCore::DynamicSubtreeNodeList::itemBackwardsFromCurrent):
        (WebCore::DynamicSubtreeNodeList::item):
        (WebCore::DynamicSubtreeNodeList::invalidateCache):
        (WebCore::DynamicNodeList::Caches::create):
        (WebCore::DynamicNodeList::Caches::reset):
        * dom/DynamicNodeList.h:
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::SubtreeCaches): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::isLengthCacheValid): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::isItemCacheValid): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::cachedLength): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::cachedItem): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::cachedItemOffset): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::setLengthCache): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::setItemCache): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::reset): Added.
        (WebCore::DynamicSubtreeNodeList::SubtreeCaches::domVersionIsConsistent): Added.
        * dom/Element.cpp:
        (WebCore::Element::updateAfterAttributeChanged):
        * dom/Node.cpp:
        (WebCore::Node::setTreeScopeRecursively): Clear caches when a node moves from one document to another.
        (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged): Only clears child node list of Attr.
        (WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged): Only clears child node list.
        (WebCore::NodeListsNodeData::invalidateCaches): Merged with invalidateCachesThatDependOnAttributes.
        * dom/Node.h:
        * dom/NodeRareData.h:
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::parseMappedAttribute):
        * html/HTMLLabelElement.cpp:
        * html/HTMLLabelElement.h:

2012-01-04  Ryosuke Niwa  <rniwa@webkit.org>

        Revert unintentional changes to Element.cpp in r104068.

        * dom/Element.cpp:
        (WebCore::Element::recalcStyleIfNeededAfterAttributeChanged):

2012-01-03  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION (r92823): Background color not preserved when copying and pasting a table row
        https://bugs.webkit.org/show_bug.cgi?id=75330

        Reviewed by Tony Chang.

        The bug was caused by the background color of the wrapping style overriding the background color
        in a matched rule of a highest element to be serialized. Fixed the bug by removing the conflicting
        background color prior to the merge.

        Tests: editing/pasteboard/copy-element-with-conflicting-background-color-from-rule-expected.html
               editing/pasteboard/copy-element-with-conflicting-background-color-from-rule.html

        * editing/EditingStyle.cpp:
        (WebCore::editingStyleFromComputedStyle):
        (WebCore::EditingStyle::removeStyleAddedByNode):
        (WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode):

2012-01-03  Antti Koivisto  <antti@apple.com>

        Reviewed by Dave Hyatt.

        Analyze stylesheet scope to minimize style recalcs
        https://bugs.webkit.org/show_bug.cgi?id=75508
        
        It is a relatively common pattern to use inline stylesheets in document body where all rules are scoped using descendant selector

        <style>
        #foo {...}
        #foo div {...}
        #foo .bar {...}
        </style>

        When this pattern is used it is also common that the rules only apply to elements that come after the style element. 

        When the set of active stylesheets changes we invalidate and recompute the entire document style. This is very expensive. We can 
        detect the case above and avoid the style recalc.
        
        On engadget.com, this patch cuts the time spent in style recalcs to roughly half. There are further savings from reduced 
        relayouts. In total the engine CPU time used over the page load is reduced by ~10%.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::CSSStyleSelector):
        (WebCore::CSSStyleSelector::collectFeatures):
        
            Refactor feature collection from constructor to a separate function.
        
        (WebCore::CSSStyleSelector::appendAuthorStylesheets):
        
            New function for non-destructively updating the style selector.
        
        (WebCore::CSSStyleSelector::Features::clear):
        
            Clear the features for another collection.
            
        (WebCore::CSSStyleSelector::determineStylesheetSelectorScopes):
        
            Find if all rules on a stylesheetare scoped to some set of ids and classes.
        
        (WebCore::CSSStyleSelector::styleForDocument):
        
            Add optional font selector argument. We updated the correct base style font on style selector construction but that is no longer sufficient
            as font selector may be updated without reconstructing the style selector.
        
        (WebCore::RuleSet::addRulesFromSheet):
        
            Invalidate the matched declaration cache in case of new font-face rules.
        
        * css/CSSStyleSelector.h:
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::determineSelectorScopes):
        
            Find if all rules on a selector list are scoped to some set of ids and classes.
        
        * css/SelectorChecker.h:
        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::recalcStyle):
        
            Pass the font selector, if exists, to styleForDocument so we always have the base font up to date.
        
        (WebCore::Document::combineCSSFeatureFlags):
        (WebCore::Document::resetCSSFeatureFlags):
        (WebCore::Document::createStyleSelector):

            Refactor css feature flag resetting to functions.
        
        (WebCore::Document::removePendingSheet):
        
            Use new PendingStylesheetCompleted flag when new stylesheets arrive.

        (WebCore::Document::styleSelectorChanged):

            Skip style recalc if it is not needed.

        (WebCore::Document::collectActiveStylesheets):
        
            Refactor collecting stylesheets to a separate function.
        
        (WebCore::Document::testAddedStylesheetRequiresStyleRecalc):
        
            Determine the scopes and use hasElementWithId/getElementsByClassName to figure out if any scoped elements currently exist in the tree.
        
        (WebCore::Document::analyzeStylesheetChange):
        
            Figure out if we can update the style selector incrementally and if we can skip the style recalc.
        
        (WebCore::Document::updateActiveStylesheets):
        
            Renamed from recalcStyleSelector.
            Invoke the new analysis functions.
        
        * dom/Document.h:

2012-01-04  Igor Oliveira  <igor.oliveira@openbossa.org>

        Share fractional time code between AnimationBase and KeyframeAnimation
        https://bugs.webkit.org/show_bug.cgi?id=75549

        Remove left over from changeset 104045.

        Unreviewed trivial fix.

        * page/animation/AnimationBase.cpp:
        (WebCore::AnimationBase::fractionalTime):

2012-01-04  Igor Oliveira  <igor.oliveira@openbossa.org>

        Share fractional time code between AnimationBase and KeyframeAnimation
        https://bugs.webkit.org/show_bug.cgi?id=75549

        Share fractional time calculation between AnimationBase and KeyframeAnimation.

        Reviewed by Simon Fraser.

        * page/animation/AnimationBase.cpp:
        (WebCore::AnimationBase::fractionalTime):
        (WebCore::AnimationBase::progress):
        * page/animation/AnimationBase.h:
        * page/animation/KeyframeAnimation.cpp:
        (WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty):

2012-01-03  Vangelis Kokkevis  <vangelis@chromium.org>

        [chromium] Bypass the shadow texture copy for accelerated
        canvas when running the compositor in single threaded mode.
        https://bugs.webkit.org/show_bug.cgi?id=75146

        The texture copy fails on Windows as glCopyTexImage2D() doesn't
        support BGRA source textures.
        This change also modifies Canvas2DLayerChromium::updateCompositorResources
        to call glCopyTexSubImage2D() instead of glCopyTexImage2D() so that
        the copy can work with texture allocated via the glTexStorage2D
        extension.

        Reviewed by James Robinson.

        Tests: Canvas2DLayerChromiumTest.cpp

        * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
        (WebCore::Canvas2DLayerChromium::Canvas2DLayerChromium):
        (WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium):
        (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
        (WebCore::Canvas2DLayerChromium::setTextureManager):
        (WebCore::Canvas2DLayerChromium::updateCompositorResources):
        (WebCore::Canvas2DLayerChromium::pushPropertiesTo):
        (WebCore::Canvas2DLayerChromium::unreserveContentsTexture):
        (WebCore::Canvas2DLayerChromium::cleanupResources):
        * platform/graphics/chromium/Canvas2DLayerChromium.h:

2012-01-04  Adam Roben  <aroben@apple.com>

        Use one big printf command instead of many chained echo commands to generate idl_files.tmp

        This works around a bug in Cygwin where sh.exe will crash if given a too-long sequence of
        &&-chained commands.

        Fixes <http://webkit.org/b/75546> <rdar://problem/10622193> REGRESSION (r103519): WebCore's
        DerivedSources.make crashes sh.exe if path to WebKit source tree is long enough

        Reviewed by Antti Koivisto.

        * DerivedSources.make: Change the '(echo foo && echo bar && echo baz && echo -n) >
        ./idl_files.tmp' command to 'printf "foo\nbar\nbaz\n" > ./idl_files.tmp'. We use the
        patsubst function to append "\n" to each IDL filename, then use the subst function to remove
        the spaces between the filenames.

2012-01-04  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]Rollout support for background-color region styling
        https://bugs.webkit.org/show_bug.cgi?id=75007

        Reviewed by Tony Chang.

        Removed functionality, therefore no new tests. Since this is a temporary rollout,
        the tests for region-style with background-color are not removed in this patch, just skipped.

        * WebCore.exp.in:
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::CSSStyleSelector):
        (WebCore::CSSStyleSelector::addMatchedDeclaration):
        (WebCore::CSSStyleSelector::matchRules):
        (WebCore::CSSStyleSelector::matchAllRules):
        (WebCore::CSSStyleSelector::styleForElement):
        (WebCore::CSSStyleSelector::pseudoStyleForElement):
        (WebCore::RuleData::RuleData):
        (WebCore::RuleSet::RuleSet):
        (WebCore::RuleSet::addToRuleSet):
        (WebCore::CSSStyleSelector::applyDeclarations):
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSStyleSelector.h:
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::setRegionRangeForBox):
        * rendering/RenderFlowThread.h:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paint):
        (WebCore::RenderLayer::hitTest):
        * rendering/RenderObject.cpp:
        * rendering/RenderObject.h:
        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::removeChildNode):
        * rendering/RenderRegion.cpp:
        * rendering/RenderRegion.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::RenderView):
        * rendering/RenderView.h:

2012-01-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Introduce new qmake variable 'WEBKIT' for signaling dependencies

        The custom qmake variable 'WEBKIT' is used for signaling that a
        target depends in some way on other subproject of the WebKit
        project. For now this is limited to the set of intermediate
        libraries: wtf, javascriptcore, webcore, and webkit2.

        This replaces the previous convension of using load(foo) for
        just include paths, and CONFIG += foo to also link against foo.

        Adding a dependency results in additional include paths being
        available, and potentially linking to the library. This is
        decided by the build system based on conditions such as what
        kind of target is being built and the general build config.

        An advantage to his approach is that it simplifies the individual
        foo.prf files, for example by allowing us to use INCLUDEPATH +=
        and LIBS += as normal instead of prepending.

        Reviewed by Simon Hausmann.

        * Target.pri:

2012-01-03  Adam Barth  <abarth@webkit.org>

        HTMLConstructionSite::attach shouldn't return a value
        https://bugs.webkit.org/show_bug.cgi?id=75520

        Reviewed by Eric Seidel.

        We used to return a value to avoid some refchurn, but now that we're
        using tasks, we always need to take that reference.  Removing the
        return value lets us remove the template parameter, which is a boon.
        This patch has no impact on the html-parser.html benchmark.

        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::attachLater):
        (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
        (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagInBody):
        (WebCore::HTMLConstructionSite::insertDoctype):
        (WebCore::HTMLConstructionSite::insertComment):
        (WebCore::HTMLConstructionSite::insertCommentOnDocument):
        (WebCore::HTMLConstructionSite::insertCommentOnHTMLHtmlElement):
        (WebCore::HTMLConstructionSite::insertHTMLHeadElement):
        (WebCore::HTMLConstructionSite::insertHTMLBodyElement):
        (WebCore::HTMLConstructionSite::insertHTMLFormElement):
        (WebCore::HTMLConstructionSite::insertHTMLElement):
        (WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
        (WebCore::HTMLConstructionSite::insertScriptElement):
        (WebCore::HTMLConstructionSite::insertForeignElement):
        (WebCore::HTMLConstructionSite::insertTextNode):
        (WebCore::HTMLConstructionSite::reconstructTheActiveFormattingElements):
        (WebCore::HTMLConstructionSite::fosterParent):
        * html/parser/HTMLConstructionSite.h:

2012-01-03  Adam Barth  <abarth@webkit.org>

        Fix assert when foster parenting self-closing elements
        https://bugs.webkit.org/show_bug.cgi?id=75527

        Unreviewed.

        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::fosterParent):
            - We can't execute this task immediately because the code for
              self-closing elements wants to set the self-closing flag.
              Instead, we queue the task.

2012-01-03  Charles Wei  <charles.wei@torchmobile.com.cn>

        [BlackBerry] Need to support credentials in the URL
        https://bugs.webkit.org/show_bug.cgi?id=75341

        Reviewed by George Staikos.

        No new tests required.

        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::sendRequestWithCredentials):

2012-01-03  Noel Gordon  <noel.gordon@gmail.com>

        [chromium] Use data decoding swizzle for turbo JPEG grayscale images
        https://bugs.webkit.org/show_bug.cgi?id=75189

        Reviewed by Adam Barth.

        No new tests.  Covered by exiting tests, in particular for grayscale
        images that were corrupted by earlier versions on libjpeg-turbo:

        tables/mozilla/bugs/bug29314.html
        tables/mozilla/bugs/bug13169.html
        tables/mozilla/bugs/bug10565.html
        tables/mozilla/bugs/bug11026.html
        fast/repaint/backgroundSizeRepaint.html
        fast/repaint/block-layout-inline-children-replaced.html
        fast/repaint/clipped-relative.html
        fast/repaint/selected-replaced.html
        tables/mozilla/bugs/bug12908-1.html

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (WebCore::JPEGImageReader::decode):  Use a data decoding swizzle for
        JCS_GRAYSCALE images.

2012-01-03  Adam Barth  <abarth@webkit.org>

        Minor speed improvement in HTML parser
        https://bugs.webkit.org/show_bug.cgi?id=75517

        Reviewed by Eric Seidel.

        This improves the html-parser.html benchmark by 0.3%.  I don't think
        that's actually anything to write home about, but this patch makes me
        feel better about my life.

        * html/parser/HTMLFormattingElementList.cpp:
        (WebCore::HTMLFormattingElementList::tryToEnsureNoahsArkConditionQuickly):

2012-01-03  Kentaro Hara  <haraken@chromium.org>

        Remove temporary code that we've inserted to implement the [Supplemental] IDL incrementally
        https://bugs.webkit.org/show_bug.cgi?id=75510

        Reviewed by Adam Barth.

        Now all build systems support the [Supplemental] IDL. This patch removes all
        temporary code that we've inserted to implement the [Supplemental] IDL.

        No tests. No change in behavior. Confirm that all builds pass.

        * bindings/js/JSDOMWindowCustom.cpp:
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        * bindings/scripts/generate-bindings.pl:
        * page/DOMWindow.idl: Removed all attributes with a temporal [Supplemented] IDL.

2012-01-03  Karl Koscher  <supersat@chromium.org>

        Give embedders a chance to handle postMessage calls
        https://bugs.webkit.org/show_bug.cgi?id=73883

        To support cross-process postMessage calls in Chromium (bug 73337), we need to intercept 
        postMessage calls to proxy windows. Originally we were just going to add a native event
        listener on the Chromium side, but that required more changes to WebKit and was a bit of
        a hack. See bug 73359 for a discuss about moving to this approach.

        Reviewed by Adam Barth.

        Test: platform/chromium/fast/events/intercept-postmessage.html

        * loader/FrameLoaderClient.h:
        (WebCore::FrameLoaderClient::willCheckAndDispatchPostMessage): new method to allow the
            embedder to intercept postMessage calls
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::postMessageTimerFired): add a call to
            FrameLoaderClient::willCheckAndDispatchPostMessage

2012-01-03  Eric Penner  <epenner@google.com>

        [chromium] Prevent crashing due to NULL texture updater.
        https://bugs.webkit.org/show_bug.cgi?id=75288

        Reviewed by James Robinson.

        * platform/graphics/chromium/ContentLayerChromium.cpp:
        * platform/graphics/chromium/ContentLayerChromium.h:
        * platform/graphics/chromium/ImageLayerChromium.cpp:
        * platform/graphics/chromium/ImageLayerChromium.h:

2012-01-03  Shawn Singh  <shawnsingh@chromium.org>

        [chromium] CCLayerSorter accidentally reverses order of some layers.
        https://bugs.webkit.org/show_bug.cgi?id=75046

        Reviewed by James Robinson.

        Unit test added to CCLayerSorterTest.cpp

        Fixes two related bugs that were causing z-ordering problems in
        layers when preserves3D triggers the need for layer sorting.

        The first problem was that CCLayerSorter accidentally reversed the
        order of layers when there was no sorting dependency between them.

        The second problem was that zDiff had numerical precision problems
        that forced sorting dependencies that were sometimes incorrect,
        when the dependencies should not have existed.

        * platform/graphics/chromium/cc/CCLayerSorter.cpp:
        (WebCore::CCLayerSorter::checkOverlap):
        (WebCore::CCLayerSorter::sort):

2012-01-03  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Add support of blob form data to the BlackBerry port
        https://bugs.webkit.org/show_bug.cgi?id=75218

        Pass FormDataElement::encodedBlob type of form data to the BlackBerry
        platform request to support blob data and blob file range.

        Reviewed by George Staikos.

        The port can't be built now, no new tests so far.

        * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
        (WebCore::ResourceRequest::initializePlatformRequest):

2012-01-03  Adam Barth  <abarth@webkit.org>

        Two null crashes in Treebuilder
        https://bugs.webkit.org/show_bug.cgi?id=66101

        Reviewed by Eric Seidel.

        The underly issue with causing the crash is that we're re-entering the
        tree builder.  We've done a bunch of point fixes around tree builder
        re-entrancy, but neither the implementation nor the specification are
        really designed to handle re-entrancy.

        Firefox avoids this problem by putting the parser on its own thread.  I
        don't think we're quite ready to do that yet (although we will
        eventually, presumably, as computers become ever more parallel).  The
        approach in this patch is to queue up the DOM mutations and actually
        perform them on a shallower stack.  That's essentially the approach
        we've used for executing <scripts>.

        This patch queues up DOM modifications and executes them from a clean
        call stack, stopping us from re-entering the tree builder.  We might
        need to experiment with exactly where to kick off the queue, but this
        location seems reasonable and fixes the crash.

        Test: fast/parser/re-enter-and-crash.html

        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::executeTask):
            - Add a helper function for actually executing a queue DOM
              mutation.
        (WebCore::HTMLConstructionSite::attach):
            - Instead of actually attaching the element to the DOM, this
              function now queues the element for attachment.  In a follow-up
              patch, I plan to change this function to return void (and I'll
              probably rename it to something that makes it clear that it only
              queues the attachment).
        (WebCore::HTMLConstructionSite::executeQueuedTasks):
        (WebCore::HTMLConstructionSite::insertDoctype):
            - Setting the compatmode from the Doctype requires the doctype to
              actually be in the DOM, so we need to execute our queued tasks
              synchronously.  We can likely improve this function by passing
              the Doctype element explicitly in a follow-up patch.
        (WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
        (WebCore::HTMLConstructionSite::insertTextNode):
        (WebCore::HTMLConstructionSite::findFosterSite):
        (WebCore::HTMLConstructionSite::fosterParent):
        * html/parser/HTMLConstructionSite.h:
        (WebCore::HTMLConstructionSiteTask::HTMLConstructionSiteTask):
            - Add a task object that holds on to the relevant elements.  We
              define some vector traits for this object to match the traits on
              RefPtr (which make Vector operations faster by explaining that
              this type is moveable without having to churn reference counts).
        * html/parser/HTMLElementStack.cpp:
        (WebCore::HTMLElementStack::pushCommon):
            - We delay the "begin parsing" call until we actually attach the
              element to the DOM.  That splits the responsibility for calling
              begin/finished, which is less than ideal, but I didn't see
              another solution.
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
            - Kick off the queued mutations.

2012-01-03  Adam Barth  <abarth@webkit.org>

        view-source doesn't colorize </script> correctly
        https://bugs.webkit.org/show_bug.cgi?id=62971

        Reviewed by Eric Seidel.

        The reason these tags weren't colorized correctly was because the
        characters for the end tags where consumed by the tokenizer at the same
        time as it consumed the text of the script tag.  These characters are
        buffered internally by the tokenizer because the tokenizer is searching
        for "an appropriate end tag", which is "</script>" in this case.

        I tried a number of different approaches to fixing this bug.  The
        approach in this patch adds an accessor to the tokenizer to read out
        the buffered characters.  This approach makes it easier for the
        HTMLSourceTracker to get exactly the right value for these buffered
        characters without having to do a complicated simulation of the
        buffering itself.

        Tests: fast/frames/viewsource-plain-text-tags.html:

        * html/parser/HTMLViewSourceParser.cpp:
        (WebCore::HTMLViewSourceParser::pumpTokenizer):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::pumpTokenizer):
          - Give the HTMLSourceTracker a pointer to the tokenizer so it can ask
            for the buffered characters.
        * html/parser/HTMLSourceTracker.cpp:
        (WebCore::HTMLSourceTracker::start):
          - The idea here is to treat characters buffered internally by the
            tokenizer the same way we treat characters that were contained in a
            previous segment of source.  We copy them into our accumulation
            buffer and adjust the token base offset to account for the extra
            characters.
        (WebCore::HTMLSourceTracker::end):
          - Don't consier the character buffered by the tokenizer to be part of
            the token we've just finished.
        (WebCore::HTMLSourceTracker::sourceForToken):
          - Remove the assumption that all of the m_previousSource is contained
            in the source for the current token.  Because we now understand
            that the tokenizer can buffer some characters internally, we might
            not exhaust the m_previousSource.
        * html/parser/HTMLSourceTracker.h:
          - Rename m_sourceFromPreviousSegments to m_previousSource and changed
            to a SegementedString to avoid extra mallocs we keep appending tiny
            segments.
          - Rename m_source to m_currentSource to contrast nicely with
            m_previousSource.
        * html/parser/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::flushBufferedEndTag):
        (WebCore::HTMLTokenizer::nextToken):
          - Previously, we cleared the temporary buffer lazily when we needed
            to add new characters to it.  Now we clear it eagerly so that it's
            length tells us whether we're currently using it to store
            characters.
          - Previously, we weren't storing the character that we used to
            terminate the appropriate end tag (e.g., the > in </script>)
            because we didn't need to "unbuffer" that character into the
            HTMLToken::appendToCharacter.  Now, we do store that character in
            the temporary buffer so that the HTMLSourceTracker can see that
            character.
        (WebCore::HTMLTokenizer::bufferedCharacters):
        * html/parser/HTMLTokenizer.h:
        (WebCore::HTMLTokenizer::numberOfBufferedCharacters):
          - Add accessor methods to copy out the buffered characters.
          - Also, unrelated to the rest of this patch, I made the constructor
            for HTMLTokenizer explicit because it takes only a single
            paramater, per the style guide.
        * platform/text/SegmentedString.cpp:
        (WebCore::SegmentedString::clear):
          - SegmentedString::clear wasn't clearing all of its state.  I don't
            think this issue was actually observable, but I noticed it when
            working on this patch, so I fixed it.

2012-01-03  Benjamin Poulain  <bpoulain@apple.com>

        Exclude Mac's PlatformEventFactory from iOS
        https://bugs.webkit.org/show_bug.cgi?id=75493

        Reviewed by Sam Weinig.

        Move PlatformEventFactory.(h|cpp) to PlatformEventFactoryMac(h|cpp) and exclude the file
        from iOS build.

        * Configurations/WebCore.xcconfig: Also exclude EventHandlerMac for consistency.
        * WebCore.xcodeproj/project.pbxproj:
        * page/mac/EventHandlerMac.mm:
        * platform/mac/PlatformEventFactoryMac.h: Renamed from Source/WebCore/platform/mac/PlatformEventFactory.h.
        * platform/mac/PlatformEventFactoryMac.mm: Renamed from Source/WebCore/platform/mac/PlatformEventFactory.mm.
        (WebCore::globalPoint):
        (WebCore::globalPointForEvent):
        (WebCore::pointForEvent):
        (WebCore::mouseButtonForEvent):
        (WebCore::mouseEventTypeForEvent):
        (WebCore::clickCountForEvent):
        (WebCore::momentumPhaseForEvent):
        (WebCore::phaseForEvent):
        (WebCore::gestureEventTypeForEvent):
        (WebCore::textFromEvent):
        (WebCore::unmodifiedTextFromEvent):
        (WebCore::keyIdentifierForKeyEvent):
        (WebCore::isKeypadEvent):
        (WebCore::windowsKeyCodeForKeyEvent):
        (WebCore::isKeyUpEvent):
        (WebCore::modifiersForEvent):
        (WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder):
        (WebCore::PlatformEventFactory::createPlatformMouseEvent):
        (WebCore::PlatformWheelEventBuilder::PlatformWheelEventBuilder):
        (WebCore::PlatformEventFactory::createPlatformWheelEvent):
        (WebCore::PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder):
        (WebCore::PlatformEventFactory::createPlatformKeyboardEvent):
        (WebCore::PlatformGestureEventBuilder::PlatformGestureEventBuilder):
        (WebCore::PlatformEventFactory::createPlatformGestureEvent):

2012-01-03  Wei James  <james.wei@intel.com>

        Optimize AudioBufferSourceNode process by avoiding interpolation when pitchRate==1
        https://bugs.webkit.org/show_bug.cgi?id=74592

        Reviewed by Kenneth Russell.

        Covered by existing webaudio layout tests, especially webaudio/audiobuffersource-playbackrate.html

        * webaudio/AudioBufferSourceNode.cpp:
        (WebCore::AudioBufferSourceNode::renderSilenceAndFinishIfNotLooping):
        (WebCore::AudioBufferSourceNode::renderFromBuffer):
        * webaudio/AudioBufferSourceNode.h:

2012-01-03  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Access to Node Highlighting info without drawing
        https://bugs.webkit.org/show_bug.cgi?id=75504

        Provide a "getHighlight" method alongside "drawHighlight" that
        gets most of the important node highlighting information. This
        can be used by a port to do its own node highlighting or provide
        extra content without interfering with the highlight rects.

        Reviewed by Timothy Hatcher.

        * WebCore.xcodeproj/project.pbxproj:
        Privately expose the Highlight struct in DOMNodeHighlighter.h.

        * inspector/DOMNodeHighlighter.cpp:
        (WebCore::DOMNodeHighlighter::drawHighlight):
        (WebCore::DOMNodeHighlighter::getHighlight):
        * inspector/DOMNodeHighlighter.h:
        Reuse the existing draw code to instead populate
        the Highlight struct with the information it is
        about to draw, and only draw if there is a context.

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::getHighlight):
        * inspector/InspectorController.h:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::getHighlight):
        * inspector/InspectorDOMAgent.h:
        Get highlight information by going through getHighlight
        in InspectorController. This is alongside drawHighlight.

2012-01-03  Shawn Singh  <shawnsingh@chromium.org>

        [chromium] Push drawsContent and contentsVisible into accelerated compositor
        https://bugs.webkit.org/show_bug.cgi?id=71209

        Reviewed by James Robinson.

        Tests: compositing/visibility/visibility-simple-canvas2d-layer.html
               compositing/visibility/visibility-simple-video-layer.html
               compositing/visibility/visibility-simple-webgl-layer.html

        Rebaselined compositing/visibility/visibility-image-layers.html

        The CSS visibility property was not being properly obeyed by many
        specialized layer types in the accelerated compositor. The root of
        the problem was that drawsContent and contentsVisible flags were
        not properly propagated into the compositor. This patch removes
        the drawsContent() callback, and instead makes sure that
        drawsContent and contentsVisible are "pushed" through the
        accelerated compositor.

        * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
        (WebCore::Canvas2DLayerChromium::drawsContent):
        * platform/graphics/chromium/ContentLayerChromium.cpp:
        * platform/graphics/chromium/ContentLayerChromium.h:
        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setDrawsContent):
        (WebCore::GraphicsLayerChromium::setContentsVisible):
        (WebCore::GraphicsLayerChromium::setContentsToImage):
        (WebCore::GraphicsLayerChromium::setContentsToCanvas):
        (WebCore::GraphicsLayerChromium::setContentsToMedia):
        (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
        (WebCore::GraphicsLayerChromium::setupContentsLayer):
        * platform/graphics/chromium/GraphicsLayerChromium.h:
        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::LayerChromium):
        (WebCore::LayerChromium::setIsDrawable):
        * platform/graphics/chromium/LayerChromium.h:
        (WebCore::LayerChromium::drawsContent):
        * platform/graphics/chromium/PluginLayerChromium.h:
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::drawsContent):
        * platform/graphics/chromium/VideoLayerChromium.h:
        * platform/graphics/chromium/WebGLLayerChromium.cpp:
        (WebCore::WebGLLayerChromium::drawsContent):
        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
        (WebCore::CCLayerImpl::dumpLayerProperties):

2012-01-03  Shawn Singh  <shawnsingh@chromium.org>

        [chromium] Make sure root damage rect gets passed to renderer
        https://bugs.webkit.org/show_bug.cgi?id=74893

        Reviewed by James Robinson.

        Unit test added to CCLayerTreeHostImplTest.cpp

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::swapBuffers):
        * platform/graphics/chromium/LayerRendererChromium.h:
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
        (WebCore::CCLayerTreeHostImpl::swapBuffers):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:

2012-01-03  Yuzhu Shen  <yzshen@chromium.org>

        v8 binding: npCreateV8ScriptObject() should not returned an existing V8NPObject if the rootObject doesn't match
        https://bugs.webkit.org/show_bug.cgi?id=74515

        Reviewed by Nate Chapin.

        Test: http/tests/plugins/create-v8-script-objects.html

        * bindings/v8/NPV8Object.cpp:
        (WebCore::freeV8NPObject):
        (WebCore::npCreateV8ScriptObject):

2012-01-03  Jon Lee  <jonlee@apple.com>

        Leak of WebNotificationClient when page is destroyed
        https://bugs.webkit.org/show_bug.cgi?id=74980
        <rdar://problem/10611231>

        Reviewed by Mark Rowe.

        * notifications/NotificationController.cpp:
        (WebCore::NotificationController::~NotificationController): Notify the client
        that the controller has been destroyed.
        * notifications/NotificationPresenter.h: Add notificationControllerDestroyed()
        callback to the client interface.

2012-01-03  Alexis Menard  <alexis.menard@openbossa.org>

        getComputedStyle for list-style is not implemented.
        https://bugs.webkit.org/show_bug.cgi?id=75443

        Reviewed by Tony Chang.

        Implement getComputedStyle for list-style.

        Test: fast/css/getComputedStyle/getComputedStyle-list-style-shorthand.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2012-01-03  Adrienne Walker  <enne@google.com>

        [chromium] Remove unneeded content vs. layer space distinction in tiled layers
        https://bugs.webkit.org/show_bug.cgi?id=75498

        Reviewed by James Robinson.

        Long ago, before scrollbars became their own layers, tiled layers had
        a distinction between content space (what's mostly called layer space
        elsewhere) and layer space (the transformed content space). It seemed
        like this transform could get reused for supporting RTL pages, but as
        that's not the case, it should be eradicated.

        Tiled layers now deal with everything in "layer space", which is a 2d
        rectangle starting at (0, 0) in the top left of the layer and
        extending to contentBounds() in the bottom right.

        As no code actually set the tiler position, this change should be a
        no-op.

        Test: LayoutTests/compositing/

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::UpdatableTile::isDirty):
        (WebCore::UpdatableTile::clearDirty):
        (WebCore::TiledLayerChromium::updateCompositorResources):
        (WebCore::TiledLayerChromium::createTile):
        (WebCore::TiledLayerChromium::invalidateRect):
        (WebCore::TiledLayerChromium::protectTileTextures):
        (WebCore::TiledLayerChromium::prepareToUpdateTiles):
        (WebCore::TiledLayerChromium::prepareToUpdate):
        (WebCore::TiledLayerChromium::prepareToUpdateIdle):
        (WebCore::TiledLayerChromium::needsIdlePaint):
        (WebCore::TiledLayerChromium::idlePaintRect):
        * platform/graphics/chromium/TiledLayerChromium.h:
        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
        (WebCore::CCLayerTilingData::operator=):
        (WebCore::CCLayerTilingData::layerRectToTileIndices):
        (WebCore::CCLayerTilingData::tileRect):
        * platform/graphics/chromium/cc/CCLayerTilingData.h:
        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
        (WebCore::CCTiledLayerImpl::appendQuads):

2011-12-22  Joseph Pecoraro  <pecoraro@apple.com>

        Implement Date and Time Input Value Sanitization
        https://bugs.webkit.org/show_bug.cgi?id=59951

        Sanitize non-parsable incoming strings to the empty string.

        Reviewed by Kent Tamura.

        Covered by existing tests.

        * html/BaseDateAndTimeInputType.h:
        * html/BaseDateAndTimeInputType.cpp:
        (WebCore::BaseDateAndTimeInputType::sanitizeValue): check if the
        incoming string is valid. If not just return the empty string.

2012-01-03  Julien Chaffraix  <jchaffraix@webkit.org>

        RenderLayer::backgroundClipRect should not check parent()
        https://bugs.webkit.org/show_bug.cgi?id=73731

        Reviewed by Simon Fraser.

        Clean-up only, no expected change in behavior.

        * rendering/RenderLayer.cpp:
        (WebCore::backgroundClipRectForPosition): Changed RenderObject::isPositioned() to
        a check for AbsolutePosition for consistency but also as this is equivalent due to:
        - the previous check for FixedPosition.
        - RenderView, which is positioned, will never goes to this code as it has no parent().

        (WebCore::RenderLayer::backgroundClipRect): Removed the parent() check. While at
        it, also moved the inline initialization of |backgroundClipRect| to its own function
        and removed a |view| check as the associated ASSERT seems to never have been reached.

2012-01-03  Alexey Proskuryakov  <ap@apple.com>

        <rdar://problem/10637779> REGRESSION (r102247): Focus ring is not drawn around a button

        Rubber-stamped by Dan Bernstein.

        * platform/mac/ThemeMac.mm: (WebCore::updateStates): Flip an incorrect conditional, this code
        should run on Snow Leopard and Lion.

2012-01-03  Alexis Menard  <alexis.menard@openbossa.org>

        getComputedStyle should return shorthands property with the minimum number of sides possible.
        https://bugs.webkit.org/show_bug.cgi?id=75434

        Reviewed by Tony Chang.

        As stated in http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSS2Properties we should
        return shorthands properties with the minimum number of sides possible.

        Existing tests have been updated accordingly.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForSidesShorthand):
        * css/CSSComputedStyleDeclaration.h:

2012-01-03  Martin Robinson  <mrobinson@igalia.com>

        [GTK] GTK+ 3 theming code does not use the GtkOrientable style class
        https://bugs.webkit.org/show_bug.cgi?id=72789

        Reviewed by Philippe Normand.

        No new tests. Testing GTK+ theming is quite difficult
        because no two distributions have the same set of themes.
        Current tests prevent regressions.

        * platform/gtk/RenderThemeGtk3.cpp:
        (WebCore::applySliderStyleContextClasses): Added this helper that
        properly handles the orientable style class.
        (WebCore::RenderThemeGtk::paintSliderTrack): Use the new helper.
        (WebCore::RenderThemeGtk::paintSliderThumb): Ditto.
        * platform/gtk/ScrollbarThemeGtk3.cpp:
        (WebCore::applyScrollbarStyleContextClasses): Added this helper that
        properly handles the orientable style class.
        (WebCore::ScrollbarThemeGtk::paintTrackBackground): Use the new helper.
        (WebCore::ScrollbarThemeGtk::paintScrollbarBackground): Ditto.
        (WebCore::ScrollbarThemeGtk::paintThumb): Ditto.
        (WebCore::ScrollbarThemeGtk::paintButton): Ditto.

2012-01-03  Florin Malita  <fmalita@google.com>

        NULL ptr in WebCore::SVGStyledTransformableElement::animatedLocalTransform
        https://bugs.webkit.org/show_bug.cgi?id=75227

        Reviewed by Dirk Schulze.

        Test: svg/custom/webkit-transform-crash.html

        * svg/SVGStyledTransformableElement.cpp:
        (WebCore::SVGStyledTransformableElement::animatedLocalTransform):
        Add a null-renderer check.

2012-01-03  Alexis Menard  <alexis.menard@openbossa.org>

        getComputedStyle for border is not implemented.
        https://bugs.webkit.org/show_bug.cgi?id=75319

        Reviewed by Tony Chang.

        Implement getComputedStyle for border.

        fast/css/getComputedStyle/getComputedStyle-border-shorthand.html was extented.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2012-01-03  Alexis Menard  <alexis.menard@openbossa.org>

        Sort the WebCore Xcode project file

        Reviewed by Dimitri Glazkov.

        * WebCore.xcodeproj/project.pbxproj:

2012-01-03  Adrienne Walker  <enne@google.com>

        [chromium] Set tiler bounds explicitly rather than growing them
        https://bugs.webkit.org/show_bug.cgi?id=75331

        Reviewed by James Robinson.

        Rather than only growing bounds, make the bounds on the tiler be set
        explicitly by TiledLayerChromium. This patch now properly invalidates
        regions when the bounds change.

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::updateBounds):
        (WebCore::TiledLayerChromium::prepareToUpdate):
        (WebCore::TiledLayerChromium::prepareToUpdateIdle):
        * platform/graphics/chromium/TiledLayerChromium.h:
        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
        (WebCore::CCLayerTilingData::setBounds):
        (WebCore::CCLayerTilingData::bounds):
        * platform/graphics/chromium/cc/CCLayerTilingData.h:

2012-01-03  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Slider thumb is not centered on the track with the unico theme
        https://bugs.webkit.org/show_bug.cgi?id=72802

        Reviewed by Philippe Normand.

        No new tests. This only applies to certain GTK+ themes.
        Existing tests cover the default GTK+ theme.

        * platform/gtk/RenderThemeGtk3.cpp:
        (WebCore::RenderThemeGtk::paintSliderThumb): Do not resize the
        slider thumb by the trough border.

2012-01-03  Adrienne Walker  <enne@google.com>

        [chromium] Make tiled layer's tiler always exist
        https://bugs.webkit.org/show_bug.cgi?id=75329

        Reviewed by James Robinson.

        TiledLayerChromium has some awkward code to handle lazily creating the
        tiler, including lots of null checks and shadowing the tile size.
        Instead, always create the tiler up front. As values change that
        invalidate all tiles, reset it rather than clear the pointer.

        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::setIsNonCompositedContent):
        * platform/graphics/chromium/LayerChromium.h:
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::TiledLayerChromium):
        (WebCore::TiledLayerChromium::cleanupResources):
        (WebCore::TiledLayerChromium::setTileSize):
        (WebCore::TiledLayerChromium::setBorderTexelOption):
        (WebCore::TiledLayerChromium::drawsContent):
        (WebCore::TiledLayerChromium::updateCompositorResources):
        (WebCore::TiledLayerChromium::setTilingOption):
        (WebCore::TiledLayerChromium::pushPropertiesTo):
        (WebCore::TiledLayerChromium::setIsNonCompositedContent):
        (WebCore::TiledLayerChromium::invalidateRect):
        (WebCore::TiledLayerChromium::protectTileTextures):
        (WebCore::TiledLayerChromium::prepareToUpdate):
        (WebCore::TiledLayerChromium::prepareToUpdateIdle):
        (WebCore::TiledLayerChromium::needsIdlePaint):
        (WebCore::TiledLayerChromium::idlePaintRect):
        * platform/graphics/chromium/TiledLayerChromium.h:
        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
        (WebCore::CCLayerTilingData::setBorderTexelOption):
        * platform/graphics/chromium/cc/CCLayerTilingData.h:
        * platform/graphics/gpu/TilingData.cpp:
        (WebCore::TilingData::setHasBorderTexels):
        * platform/graphics/gpu/TilingData.h:

2012-01-03  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests results.

        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        (WebCore::JSTestEventConstructor::destroy):
        * bindings/scripts/test/JS/JSTestEventConstructor.h:
        (WebCore::JSTestEventConstructor::releaseImplIfNotNull):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::JSTestInterface::destroy):
        * bindings/scripts/test/JS/JSTestInterface.h:
        (WebCore::JSTestInterface::releaseImplIfNotNull):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        (WebCore::JSTestMediaQueryListListener::destroy):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
        (WebCore::JSTestMediaQueryListListener::releaseImplIfNotNull):
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore::JSTestNamedConstructor::destroy):
        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
        (WebCore::JSTestNamedConstructor::releaseImplIfNotNull):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::JSTestObj::destroy):
        * bindings/scripts/test/JS/JSTestObj.h:
        (WebCore::JSTestObj::releaseImplIfNotNull):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::JSTestSerializedScriptValueInterface::destroy):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
        (WebCore::JSTestSerializedScriptValueInterface::releaseImplIfNotNull):

2012-01-03  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Fix scrollbars size with GTK+ 3.x
        https://bugs.webkit.org/show_bug.cgi?id=75467

        Reviewed by Xan Lopez.

        * platform/gtk/RenderThemeGtk3.cpp:
        (WebCore::getStyleContext): Add the style class for the given
        widget type to the GtkWidgetPath when creating GtkStyleContext
        objects.

2012-01-03  Alexis Menard  <alexis.menard@openbossa.org>

        getComputedStyle for outline is not implemented.
        https://bugs.webkit.org/show_bug.cgi?id=75441

        Reviewed by Antonio Gomes.

        Implement getComputedStyle for outline.

        Test: fast/css/getComputedStyle/getComputedStyle-outline-shorthand.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2012-01-03  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Use gdk_screen_get_monitor_workarea() when available for screenAvailableRect()
        https://bugs.webkit.org/show_bug.cgi?id=75435

        Reviewed by Martin Robinson.

        * platform/gtk/GtkVersioning.c:
        (getScreenCurrentDesktop):
        (getScreenWorkArea):
        (gdk_screen_get_monitor_workarea): Implement it when GTK+ < 3.3.6.
        * platform/gtk/GtkVersioning.h:
        * platform/gtk/PlatformScreenGtk.cpp:
        (WebCore::screenAvailableRect): Use
        gdk_screen_get_monitor_workarea() instead of our own
        implementation.

2012-01-02  Kentaro Hara  <haraken@chromium.org>

        REGRESSION(r103919): Remove resolve-supplemental.pl from the WebCore target in Xcode
        https://bugs.webkit.org/show_bug.cgi?id=75458

        Reviewed by Adam Barth.

        At r103919, we added resolve-supplemental.pl to WebCore.framework/Resources,
        but we should have added it to the project without adding it to any target.
        This patch fixes it.

        No tests. No change in behavior.

        * WebCore.xcodeproj/project.pbxproj:

2012-01-02  Kentaro Hara  <haraken@chromium.org>

        Enable the [Supplemental] IDL on GTK/GObject
        https://bugs.webkit.org/show_bug.cgi?id=75411

        Reviewed by Adam Barth.

        This patch enables the [Supplemental] IDL on GObject bindings of GTK
        by changing the build flow of bindings/gobject/GNUmakefile.am as follows.

        - Previous build flow:
            foreach $idl (all IDL files) {
                generate-bindings.pl depends on $idl;
                generate-bindings.pl reads $idl;
                generate-bindings.pl generates .h and .cpp files for $idl;
            }

        - New build flow (See the discussions in bug 72138 for more details):
            resolve-supplemental.pl depends on all IDL files;
            resolve-supplemental.pl reads all IDL files;
            resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
            resolve-supplemental.pl outputs supplemental_dependency.tmp;
            foreach $idl (all IDL files) {
                generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
                generate-bindings.pl reads $idl;
                generate-bindings.pl reads supplemental_dependency.tmp;
                generate-bindings.pl generates .h and .cpp files for $idl,
                    including all attributes in the IDL files that are implementing $idl;
            }

        Tests: Confirm that build succeeds.
               http/tests/websocket/tests/*

        * GNUmakefile.am:
        * bindings/gobject/GNUmakefile.am:

2012-01-02  Kentaro Hara  <haraken@chromium.org>

        Add resolve-supplemental.pl to project.pbxproj
        https://bugs.webkit.org/show_bug.cgi?id=75426

        Reviewed by Adam Barth.

        We should have added "resolve-supplemental.pl" to build scripts of AppleWebKit
        when we enabled the [Supplemental] IDL on AppleWebKit at r103519.
        This is a follow-up patch for it.

        No tests. Just confirm that the AppleWebKit build passes.

        * WebCore.xcodeproj/project.pbxproj:

2012-01-02  Kentaro Hara  <haraken@chromium.org>

        Add resolve-supplemental.pl to build scripts of AppleWin
        https://bugs.webkit.org/show_bug.cgi?id=75412

        Reviewed by Adam Barth.

        We should have added "resolve-supplemental.pl" to build scripts of AppleWin
        when we enabled the [Supplemental] IDL on AppleWin at r103519.
        This is a follow-up patch for it.

        No tests. Just confirm that the AppleWin build passes.

        * WebCore.vcproj/MigrateScripts:
        * WebCore.vcproj/WebCore.vcproj:

2012-01-02  Sam Weinig  <sam@webkit.org>

        Fix the build.

        * bindings/scripts/CodeGeneratorJS.pm:

2012-01-02  Andy Estes  <aestes@apple.com>

        Fix the Windows build after r103888.

        * WebCore.vcproj/WebCore.vcproj: Remove CollectionCache.{cpp, h} from
        the WebCore vcproj.

2012-01-02  Sam Weinig  <sam@webkit.org>

        REGRESSION(r100517): We're leaking many, many DOM objects!
        https://bugs.webkit.org/show_bug.cgi?id=75451

        Reviewed by Mark Rowe.

        * bindings/scripts/CodeGeneratorJS.pm:
        Add a temporary workaround to the problem of handle finalizers
        not getting called by adding back the destructors (or rather
        their replacement, destroy() functions).

2012-01-02  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Fix chromium mac build after r103905
        https://bugs.webkit.org/show_bug.cgi?id=75436

        Reviewed by Csaba Osztrogonác.

        Adding parenthesis to disambiguate because clang gives error
        "expression is not assignable".

        * rendering/svg/RenderSVGResourceGradient.cpp:
        (WebCore::RenderSVGResourceGradient::applyResource):

2011-12-29  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Use HashMap<OwnPtr> in RenderSVGResourceGradient
        https://bugs.webkit.org/show_bug.cgi?id=75364

        Reviewed by Daniel Bates.

        * rendering/svg/RenderSVGResourceGradient.cpp:
        (WebCore::RenderSVGResourceGradient::removeAllClientsFromCache):
        (WebCore::RenderSVGResourceGradient::removeClientFromCache):
        (WebCore::RenderSVGResourceGradient::applyResource): avoid looking
        up the hash twice by using HashMap::add().
        * rendering/svg/RenderSVGResourceGradient.h: rename m_gradient to m_gradientMap.

2012-01-02  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Fix qmake warning about unescaped backslashes

        Reviewed by Ossy.

        * DerivedSources.pri:

2012-01-02  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distcheck issue.

        * GNUmakefile.am: Add resolve-supplemental.pl script to
        EXTRA_DIST.

2012-01-01  Andreas Kling  <awesomekling@apple.com>

        Clear HTMLCollection's internal cache on construction.
        <http://webkit.org/b/75423>

        Reviewed by Antti Koivisto.

        * html/HTMLCollection.h:
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        (WebCore::HTMLCollection::invalidateCacheIfNeeded):

2012-01-01  Eunmi Lee  <eunmi15.lee@samsung.com>

        [EFL] Move function to get dpi to the WebCore/platform/efl/EflScreenUtilities.cpp.
        https://bugs.webkit.org/show_bug.cgi?id=75292

        Reviewed by Andreas Kling.

        Move ewk_util_dpi_get() function in the ewk_util.cpp to the
        WebCore/platform/efl/EflScreenUtilities.cpp in order to use it in the WebKit2.
        The function's name is changed to getDPI().

        * PlatformEfl.cmake:
        * platform/efl/EflScreenUtilities.cpp: Added.
        (WebCore::getDPI):
        * platform/efl/EflScreenUtilities.h: Added.

2012-01-01  Andreas Kling  <awesomekling@apple.com>

        Merge CollectionCache into HTMLCollection.
        <http://webkit.org/b/75423>

        Reviewed by Anders Carlsson.

        - Move the members of CollectionCache into HTMLCollection.
        - Renamed resetCollectionInfo() to invalidateCacheIfNeeded().
        - Removed a bunch of overkill HashMap::checkConsistency() calls.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * html/CollectionCache.cpp: Removed.
        * html/CollectionCache.h: Removed.

            Remove CollectionCache.

        * html/HTMLAllCollection.cpp:
        (WebCore::HTMLAllCollection::namedItemWithIndex):
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        (WebCore::HTMLCollection::~HTMLCollection):
        (WebCore::HTMLCollection::invalidateCacheIfNeeded):
        (WebCore::HTMLCollection::length):
        (WebCore::HTMLCollection::item):
        (WebCore::HTMLCollection::nextItem):
        (WebCore::HTMLCollection::namedItem):
        (WebCore::HTMLCollection::updateNameCache):
        (WebCore::HTMLCollection::hasNamedItem):
        (WebCore::HTMLCollection::namedItems):
        (WebCore::HTMLCollection::append):
        * html/HTMLCollection.h:
        * html/HTMLFormCollection.cpp:
        (WebCore::HTMLFormCollection::item):
        (WebCore::HTMLFormCollection::getNamedItem):
        (WebCore::HTMLFormCollection::nextItem):
        (WebCore::HTMLFormCollection::namedItem):
        (WebCore::HTMLFormCollection::updateNameCache):

            HTMLCollection's m_info and info() become "struct m_cache" (protected.)

        * html/HTMLOptionsCollection.cpp:
        * html/HTMLOptionsCollection.h:
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::setRecalcListItems):

            Expose HTMLCollection::invalidateCacheIfNeeded() so we can call it from
            HTMLSelectElement::setRecalcListItems().

        * html/HTMLFormCollection.h:

            Remove stale declaration of formCollectionInfo() which no longer exists.

2012-01-01  Andreas Kling  <awesomekling@apple.com>

        Move the remaining collections to caching on their respective base nodes.
        <http://webkit.org/b/75416>

        Reviewed by Anders Carlsson.

        Add a (lazily-allocated) array of HTMLCollections to ElementRareData and cache
        the various collections on their base node rather than recreating them every time.

        Test: fast/dom/collection-idempotence.html
              fast/dom/gc-9.html

        * html/CollectionType.h:
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::hasCachedHTMLCollections):
        (WebCore::ElementRareData::cachedHTMLCollection):
        (WebCore::ElementRareData::ensureCachedHTMLCollection):
        * dom/Element.h:
        * dom/Element.cpp:
        (WebCore::Element::ensureCachedHTMLCollection):

            Plumbing to cache HTMLCollections on ElementRareData.

        (WebCore::Element::~Element):

            Detach any cached collections from an element when it's destroyed.

        * html/HTMLCollection.h:
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        (WebCore::HTMLCollection::create):
        (WebCore::HTMLCollection::~HTMLCollection):
        (WebCore::HTMLCollection::detachFromNode):
        * html/HTMLTableRowsCollection.cpp:
        (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection):
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::HTMLOptionsCollection):
        * html/HTMLFormCollection.cpp:
        (WebCore::HTMLFormCollection::HTMLFormCollection):
        * dom/Document.cpp:
        (WebCore::Document::cachedCollection):

            Consolidate the HTMLCollection constructors and get rid of the hacks to
            optionally retain the base node.

        * html/HTMLDataListElement.cpp:
        (WebCore::HTMLDataListElement::options):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::children):
        * html/HTMLMapElement.cpp:
        (WebCore::HTMLMapElement::areas):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::tBodies):
        * html/HTMLTableRowElement.cpp:
        (WebCore::HTMLTableRowElement::cells):
        * html/HTMLTableSectionElement.cpp:
        (WebCore::HTMLTableSectionElement::rows):

            Cached collections!

2012-01-01  Raymond Liu  <raymond.liu@intel.com>

        Use overload methods to implement [Optional] parameters in AudioNode.idl
        https://bugs.webkit.org/show_bug.cgi?id=75402

        Reviewed by Adam Barth.

        No new tests required.

        * GNUmakefile.list.am:
        * UseV8.cmake:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSAudioNodeCustom.cpp: Removed.
        * bindings/v8/custom/V8AudioNodeCustom.cpp: Removed.
        * webaudio/AudioNode.cpp:
        (WebCore::AudioNode::connect):
        (WebCore::AudioNode::disconnect):
        * webaudio/AudioNode.h:
        * webaudio/AudioNode.idl:

2011-12-20  Robert Hogan  <robert@webkit.org>

        CSS 2.1 failure: border-collapse-offset-002.htm fails
        https://bugs.webkit.org/show_bug.cgi?id=71705

        Reviewed by Julien Chaffraix.

        Tests: css2.1/20110323/border-collapse-offset-002-expected.html
               fast/css/caption-width-absolute-position-offset-top.htm
               fast/css/caption-width-absolute-position.htm
               fast/css/caption-width-fixed-position-offset-top.htm
               fast/css/caption-width-fixed-position.htm
               fast/css/caption-width-relative-position-offset-top.htm
               fast/css/caption-width-relative-position.htm

        Table captions are implemented as children of the table but have a special
        requirement to expand to the full width of the table rather than just the 'available'
        width, i.e. the full width minus padding and borders.

        To accomodate this create a RenderTableCaption object that reimplements containingBlockLogicalWidthForContent()
        to return the full width of the containing block (i.e. the table) rather than the available width.


        * CMakeLists.txt: Add RenderTableCaption.[cpp|h]
        * GNUmakefile.list.am: Add RenderTableCaption.[cpp|h]
        * Target.pri: Add RenderTableCaption.[cpp|h]
        * WebCore.gypi: Add RenderTableCaption.[cpp|h]
        * WebCore.vcproj/WebCore.vcproj: Add RenderTableCaption.[cpp|h]
        * WebCore.xcodeproj/project.pbxproj: Add RenderTableCaption.[cpp|h]
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): Use RenderTableCaption
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createObject): Add RenderTableCaption.[cpp|h]
        (WebCore::RenderObject::addChild): ditto
        * rendering/RenderObject.h:
        (WebCore::RenderObject::isTableCaption):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::addChild):
        * rendering/RenderTable.h:
        * rendering/RenderTableCaption.cpp: Added.
        (WebCore::RenderTableCaption::RenderTableCaption): Implement RenderTableCaption
        (WebCore::RenderTableCaption::~RenderTableCaption):
        (WebCore::RenderTableCaption::containingBlockLogicalWidthForContent): Return the containing block's full width rather than it's available width.
        * rendering/RenderTableCaption.h: Added.
        (WebCore::RenderTableCaption::isTableCaption):
        (WebCore::toRenderTableCaption):
        * rendering/RenderingAllInOne.cpp:

2012-01-01  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests results.

        * bindings/scripts/test/CPP/WebDOMTestSupplemental.cpp: Added.
        * bindings/scripts/test/CPP/WebDOMTestSupplemental.h: Added.
        * bindings/scripts/test/GObject/WebKitDOMTestSupplemental.cpp: Added.
        * bindings/scripts/test/GObject/WebKitDOMTestSupplemental.h: Added.
        * bindings/scripts/test/ObjC/DOMTestSupplemental.cpp: Added.
        * bindings/scripts/test/ObjC/DOMTestSupplemental.h: Added.

2012-01-01  Andreas Kling  <awesomekling@apple.com>

        Make HTMLCollections play nice after their base node is gone.
        <http://webkit.org/b/75410>

        Reviewed by Anders Carlsson.

        Added HTMLCollection::detachFromNode() and call that from destructors of nodes
        with cached collections.

        Sprinkled checks/assertions where applicable to make sure HTMLCollections are
        empty after their associated node has been destroyed.

        This is a slight change in behavior, as collections would previously keep
        their nodes alive indefinitely. Added a test to document this.

        Test: fast/dom/htmlcollection-zombies.html

        * dom/Document.cpp:
        (WebCore::Document::~Document):
        * html/HTMLAllCollection.cpp:
        (WebCore::HTMLAllCollection::namedItemWithIndex):
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::detachFromNode):
        (WebCore::HTMLCollection::resetCollectionInfo):
        (WebCore::HTMLCollection::itemAfter):
        (WebCore::HTMLCollection::calcLength):
        (WebCore::HTMLCollection::length):
        (WebCore::HTMLCollection::item):
        (WebCore::HTMLCollection::nextItem):
        (WebCore::HTMLCollection::namedItem):
        (WebCore::HTMLCollection::updateNameCache):
        (WebCore::HTMLCollection::hasNamedItem):
        (WebCore::HTMLCollection::namedItems):
        (WebCore::HTMLCollection::tags):
        * html/HTMLCollection.h:
        * html/HTMLFormCollection.cpp:
        (WebCore::HTMLFormCollection::calcLength):
        (WebCore::HTMLFormCollection::item):
        (WebCore::HTMLFormCollection::getNamedItem):
        (WebCore::HTMLFormCollection::getNamedFormItem):
        (WebCore::HTMLFormCollection::namedItem):
        (WebCore::HTMLFormCollection::updateNameCache):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::~HTMLFormElement):
        * html/HTMLNameCollection.cpp:
        (WebCore::HTMLNameCollection::itemAfter):
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::add):
        (WebCore::HTMLOptionsCollection::remove):
        (WebCore::HTMLOptionsCollection::selectedIndex):
        (WebCore::HTMLOptionsCollection::setSelectedIndex):
        (WebCore::HTMLOptionsCollection::setLength):
        * html/HTMLPropertiesCollection.cpp:
        (WebCore::HTMLPropertiesCollection::length):
        (WebCore::HTMLPropertiesCollection::item):
        (WebCore::HTMLPropertiesCollection::names):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::~HTMLSelectElement):
        * html/HTMLSelectElement.h:
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::~HTMLTableElement):
        * html/HTMLTableElement.h:
        * html/HTMLTableRowsCollection.cpp:
        (WebCore::HTMLTableRowsCollection::itemAfter):

2012-01-01  Andreas Kling  <awesomekling@apple.com>

        HTMLCollection: Remove the constructor's custom CollectionCache* argument.
        <http://webkit.org/b/75414>

        Reviewed by Anders Carlsson.

        We no longer need to initialize HTMLCollections with a custom CollectionCache,
        so remove the argument from the constructor.

        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        * html/HTMLCollection.h:
        * html/HTMLFormCollection.cpp:
        (WebCore::HTMLFormCollection::HTMLFormCollection):
        * html/HTMLNameCollection.cpp:
        (WebCore::HTMLNameCollection::HTMLNameCollection):
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::HTMLOptionsCollection):
        * html/HTMLTableRowsCollection.cpp:
        (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection):

2011-12-31  Dan Bernstein  <mitz@apple.com>

        WebCore changes for: REGRESSION (WebKit2): Cursor, hover states not updated when page scrolls under stationary mouse pointer
        https://bugs.webkit.org/show_bug.cgi?id=75405

        Reviewed by Anders Carlsson.

        Test: fast/events/frame-scroll-fake-mouse-move.html

        * page/FrameView.cpp:
        (WebCore::FrameView::scrollPositionChanged): Added a call to
        EventHandler::dispatchFakeMouseMoveEventSoon().

2012-01-01  Andreas Kling  <awesomekling@apple.com>

        Cache named item collections on Document, not just their caches.
        <http://webkit.org/b/75403>

        Reviewed by Anders Carlsson.

        Keep two maps of name -> RefPtr<HTMLNameCollection> on Document. We already
        had maps for the CollectionCaches and were creating the HTMLNameCollections
        every time they were accessed. We now let the collections create and manage
        the CollectionCaches instead of Document.

        No new tests since these collections are not exposed to the web.

        * dom/Document.h:
        * dom/Document.cpp:
        (WebCore::Document::windowNamedItems):
        (WebCore::Document::documentNamedItems):

            Replace the name/CollectionCache maps by name/HTMLNameCollection maps.

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::namedItemGetter):
        * bindings/js/JSHTMLDocumentCustom.cpp:
        (WebCore::JSHTMLDocument::nameGetter):

            Pass names as AtomicStrings to Document's collection getters.

        * html/HTMLNameCollection.h:
        (WebCore::HTMLNameCollection::create):
        * html/HTMLNameCollection.cpp:
        (WebCore::HTMLNameCollection::HTMLNameCollection):

            Store the name in an AtomicString instead of a String, incidentally
            making traversal of HTMLNameCollections more efficient.

        * html/CollectionType.h:

            Remove two now-unneeded constants.

2012-01-01  Andreas Kling  <awesomekling@apple.com>

        Remove Document::collectionInfo() and let collections manage their caches.
        <http://webkit.org/b/75401>

        Reviewed by Anders Carlsson.

        Remove the CollectionCaches from Document and have the document's collections
        create and manage the caches on-demand instead. This is a step towards merging
        CollectionCache into HTMLCollection.

        * dom/Document.h:
        * dom/Document.cpp:
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        * html/HTMLOptionsCollection.cpp:

2012-01-01  Andreas Kling  <awesomekling@apple.com>

        RenderThemeMac: Avoid double hash lookup in systemColor().
        <http://webkit.org/b/75409>

        Reviewed by Anders Carlsson.

        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::systemColor):

2012-01-01  Andreas Kling  <awesomekling@apple.com>

        CSSStyleSelector: Avoid double hash lookup in keyframeStylesForAnimation().
        <http://webkit.org/b/75408>

        Reviewed by Anders Carlsson.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::keyframeStylesForAnimation):

2012-01-01  Andreas Kling  <awesomekling@apple.com>

        KeyframeAnimation: Use hash lookups to determine if property is animated.
        <http://webkit.org/b/75407>

        Reviewed by Anders Carlsson.

        Clean out an old FIXME about using hash lookups instead of iterating over
        the properties.

        * page/animation/KeyframeAnimation.cpp:
        (WebCore::KeyframeAnimation::hasAnimationForProperty):
        (WebCore::KeyframeAnimation::affectsProperty):

2011-12-31  Dan Bernstein  <mitz@apple.com>

        WebCore change for <rdar://problem/10463059> Cannot print USPS shipping labels
        http://webkit.org/b/72801

        Reviewed by Anders Carlsson and Alexey Proskuryakov.

        * WebCore.exp.in: Exported Chrome::print().

2011-12-31  Dan Bernstein  <mitz@apple.com>

        WebCore changes for <rdar://problem/8750356> REGRESSION (WebKit2): Printing a subframe containing a PDF prints the on-screen view instead of the entire PDF document
        <http://webkit.org/b/75232>

        Reviewed by Alexey Proskuryakov.

        * WebCore.exp.in: Exported PluginDocument::pluginWidget().
        * WebCore.xcodeproj/project.pbxproj: Promoted PluginDocument.h to private.
        * html/PluginDocument.h: Fixed a typo in a comment.

2011-12-30  Andreas Kling  <awesomekling@apple.com>

        Cache and reuse the HTMLTableElement.rows collection.
        <http://webkit.org/b/75398>

        Reviewed by Anders Carlsson.

        Let HTMLTableElement::rows() cache the returned collection and tie it to the
        lifetime of the form.

        Test: fast/dom/table-rows-collection-idempotence.html
              fast/dom/gc-9.html

        * html/HTMLTableElement.h:
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::rows):

            Cache the HTMLTableRowsCollection returned by rows() on the HTMLTableElement.
            Remove the per-table CollectionCache and let the collection manage that.

        * html/HTMLTableRowsCollection.h:
        * html/HTMLTableRowsCollection.cpp:
        (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection):
        (WebCore::HTMLTableRowsCollection::create):

            Tell the base class constructor to not retain the back-pointer to the table.

2011-12-30  Andreas Kling  <awesomekling@apple.com>

        Cache and reuse the HTMLSelectElement.options collection.
        <http://webkit.org/b/75399>

        Reviewed by Anders Carlsson.

        Let HTMLSelectElement::options() cache the returned collection and tie it to the
        lifetime of the form. This shrinks HTMLSelectElement by sizeof(CollectionCache)
        minus one pointer.

        Test: fast/dom/select-options-collection-idempotence.html
              fast/gc-9.html

        * html/HTMLSelectElement.h:
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::options):

            Cache the HTMLOptionsCollection returned by options() on the HTMLSelectElement.
            Remove the per-select CollectionCache and let the collection manage that.

        * html/HTMLOptionsCollection.h:
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::create):
        (WebCore::HTMLOptionsCollection::HTMLOptionsCollection):

            Tell the base class constructor to not retain the back-pointer to the element.

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::setRecalcListItems):
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::invalidateCache):

            Added so HTMLSelectElement can invalidate the collection without triggering
            unnecessary instantiation of a CollectionCache.

2011-12-30  Kentaro Hara  <haraken@chromium.org>

        Enable the [Supplemental] IDL on CMake
        https://bugs.webkit.org/show_bug.cgi?id=75345

        Reviewed by Daniel Bates.

        This patch enables the [Supplemental] IDL on CMake by changing the build
        flow of CMake as follows.

        - Previous build flow:
            foreach $idl (all IDL files) {
                generate-bindings.pl depends on $idl;
                generate-bindings.pl reads $idl;
                generate-bindings.pl generates .h and .cpp files for $idl;
            }

        - New build flow (See the discussions in bug 72138 for more details):
            resolve-supplemental.pl depends on all IDL files;
            resolve-supplemental.pl reads all IDL files;
            resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
            resolve-supplemental.pl outputs supplemental_dependency.tmp;
            foreach $idl (all IDL files) {
                generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
                generate-bindings.pl reads $idl;
                generate-bindings.pl reads supplemental_dependency.tmp;
                generate-bindings.pl generates .h and .cpp files for $idl,
                    including all attributes in the IDL files that are implementing $idl;
            }

        Tests: Confirm that build succeeds.
               http/tests/websocket/tests/*

        * CMakeLists.txt:
        * UseJSC.cmake: Modified to reflect the new build flow as described above.
        * UseV8.cmake: Ditto.

2011-12-30  Robert Hogan  <robert@webkit.org>

        REGRESSION (r94492): Text is shifted to the right in some buttons in the Mac App Store
        https://bugs.webkit.org/show_bug.cgi?id=74723

        Reviewed by Dan Bernstein.

        Tests: fast/css/absolute-inline-alignment-2.html
               fast/css/absolute-inline-alignment.html

        Inline positioned elements in the leading spaces of an inline run need to align to 
        adjacent text, so add them to the run as they're encountered.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::LineInfo::LineInfo): Keep a count of positioned objects encountered when
         skipping leading whitespace.
        (WebCore::LineInfo::runsFromLeadingWhitespace):
        (WebCore::LineInfo::resetRunsFromLeadingWhitespace):
        (WebCore::LineInfo::incrementRunsFromLeadingWhitespace):
        (WebCore::RenderBlock::constructLine): Leading positioned objects should not be considered
         when deciding the number of runs in a line. Otherwise they would contribute towards line 
         height themselves and prevent a free-standing BR following the positioned object from providing a full 
         20px of height.
        (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Since a run containing line-breaks will enter
         skipLeadingWhitespace for each new line we reset the count every time so that the count of positioned
         objects we encounter only affects the line they appear on. This case is covered by 
         fast/inline/styledEmptyInlinesWithBRs.html
        (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace): Add a run for each inline positioned object
         encountered in leading white space. Keep a count of them so that they can be excluded from
         the total number of runs in constructLine. 

2011-12-30  Raymond Liu  <raymond.liu@intel.com>

        Remove unnecessary [Custom] attribute in CanvasRenderingContext2D.idl
        https://bugs.webkit.org/show_bug.cgi?id=75376

        Reviewed by Adam Barth.

        No new tests required.

        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
        * html/canvas/CanvasRenderingContext2D.idl:

2011-12-30  Andreas Kling  <awesomekling@apple.com>

        Cache and reuse the HTMLFormElement.elements collection.
        <http://webkit.org/b/75375>

        Reviewed by Anders Carlsson.

        Let HTMLFormElement::elements() cache the returned collection and tie it to the
        lifetime of the form. This reduces memory consumption by ~70 kB (on 64-bit) when
        viewing your average popular post on reddit.com.

        Test: fast/dom/form-elements-collection-idempotence.html
              fast/dom/gc-9.html

        * html/HTMLFormElement.h:
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::elements):

            Cache the HTMLFormCollection returned by elements() on the HTMLFormElement.
            Remove the per-form CollectionCache and let the collection manage that.

        * html/HTMLCollection.h:
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        (WebCore::HTMLCollection::create):

            Have the HTMLCollection constructor take a bool argument that decides whether
            we retain the base node pointer or not. This mechanism is a temporary measure
            until all collection types are owned by their respective base nodes.

        * html/HTMLFormCollection.h:
        * html/HTMLFormCollection.cpp:
        (WebCore::HTMLFormCollection::HTMLFormCollection):
        (WebCore::HTMLFormCollection::create):

            Tell the base class constructor to not retain the back-pointer to the form.

2011-12-30  Andreas Kling  <awesomekling@apple.com>

        Unreviewed buildfix after r103841.

        * inspector/InspectorMemoryAgent.cpp:

2011-12-30  Andreas Kling  <awesomekling@apple.com>

        CSSStyleDeclaration: Only allow setting parent rule at construction.
        <http://webkit.org/b/75391>

        Reviewed by Dan Bernstein.

        A CSSStyleDeclaration should only ever belong to one CSSRule. Enforce this
        at compile-time by replacing setParentRule(CSSRule*) with clearParentRule().

        * css/CSSFontFaceRule.cpp:
        (WebCore::CSSFontFaceRule::~CSSFontFaceRule):
        * css/CSSStyleDeclaration.h:
        (WebCore::CSSStyleDeclaration::clearParentRule):
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::~CSSStyleRule):
        * css/WebKitCSSKeyframeRule.cpp:
        (WebCore::WebKitCSSKeyframeRule::~WebKitCSSKeyframeRule):

2011-12-30  Andreas Kling  <awesomekling@apple.com>

        WebKitCSSKeyframeRule.style.parentRule should point to the keyframe rule.
        <http://webkit.org/b/75336>

        Reviewed by Antti Koivisto.

        Let CSS animation keyframe rules .style.parentRule point back to the keyframe
        board, rather than the keyframes rule containing it.

        Test: fast/css/css-keyframe-style-parentRule.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::createKeyframeRule):
        * css/WebKitCSSKeyframeRule.cpp:
        (WebCore::WebKitCSSKeyframeRule::setDeclaration):

            Set the CSSMutableStyleDeclaration's parent rule when creating it instead
            of in WebKitCSSKeyframeRule::setDeclaration(). Add assertion to make sure
            it's only called with declarations already parented to the keyframe rule.

        * css/WebKitCSSKeyframesRule.cpp:
        (WebCore::WebKitCSSKeyframesRule::~WebKitCSSKeyframesRule):
        (WebCore::WebKitCSSKeyframesRule::append):
        (WebCore::WebKitCSSKeyframesRule::deleteRule):

            Stop reparenting keyframe rules' style declarations to the keyframes rule.

2011-12-30  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: use typed front-end API in the memory agent
        https://bugs.webkit.org/show_bug.cgi?id=75382

        Memory agent now uses generate C++ API for communicating to the front-end.

        Reviewed by Pavel Feldman.

        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::DOMTreeStatistics::CounterVisitor::CounterVisitor):
        (WebCore::DOMTreeStatistics::CounterVisitor::counters):
        (WebCore::DOMTreeStatistics::CounterVisitor::visitNode):

2011-12-30  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: migrate from "attached" to "compact" styles.
        https://bugs.webkit.org/show_bug.cgi?id=75381

        When front-end is docked to right, it should look like "detached", but is still "attached".
        Use "compact" mode instead of "attached" mode in the styles to mitigate it.

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/SearchController.js:
        (WebInspector.SearchController.prototype.updateSearchLabel):
        * inspector/front-end/Toolbar.js:
        (WebInspector.Toolbar.prototype.set compact):
        (WebInspector.Toolbar.prototype._toolbarDragStart):
        (WebInspector.Toolbar.prototype._toolbarDrag):
        * inspector/front-end/helpScreen.css:
        (body.compact .help-window-outer):
        (body.compact .help-window-main):
        (body.compact .help-window-caption):
        (body.compact .help-close-button):
        (body.compact .help-content):
        * inspector/front-end/inspector.css:
        (body.compact #toolbar):
        (body.compact.port-qt #toolbar):
        (body.compact.inactive #toolbar):
        (body.compact #search-toolbar-label):
        (body.compact #toolbar-dropdown-arrow):
        (body.compact #search):
        (body.compact.port-qt .toolbar-item.close-left, body.compact.port-qt .toolbar-item.close-right):
        (body.compact #main):
        * inspector/front-end/inspector.js:
        (WebInspector.set attached):
        (WebInspector.get isCompactMode):
        (WebInspector.get _setCompactMode):
        (WebInspector._installDockToRight.listener.get if):
        (WebInspector._installDockToRight.listener):
        * inspector/front-end/inspectorCommon.css:
        (body.dock-to-right):
        (body.dock-to-right.inactive):

2011-12-30  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r103794.
        http://trac.webkit.org/changeset/103794
        https://bugs.webkit.org/show_bug.cgi?id=75379

        the ASSERT is triggered by several tests (Requested by
        jchaffraix on #webkit).

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::RenderTable):
        (WebCore::RenderTable::addChild):
        (WebCore::RenderTable::layout):
        (WebCore::RenderTable::recalcSections):
        (WebCore::RenderTable::outerBorderAfter):
        (WebCore::RenderTable::sectionAbove):
        (WebCore::RenderTable::sectionBelow):
        * rendering/RenderTable.h:
        (WebCore::RenderTable::header):
        (WebCore::RenderTable::footer):
        (WebCore::RenderTable::firstBody):
        (WebCore::RenderTable::hasSections):
        (WebCore::RenderTable::topSection):

2011-12-29  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: enable dock-to-right view (still need embedders to support it).
        https://bugs.webkit.org/show_bug.cgi?id=75360

        Reviewed by Yury Semikhatsky.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/Settings.js:
        (WebInspector.Settings):
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsScreen):
        * inspector/front-end/inspector.js:
        (WebInspector.set attached):
        (WebInspector._renderAsAttached.get return):
        (WebInspector._renderAsAttached):
        (WebInspector._installDockToRight.updateToolbar):

2011-12-29  Raymond Liu  <raymond.liu@intel.com>

        Use IDL overloads in AudioContext.idl for createBuffer
        https://bugs.webkit.org/show_bug.cgi?id=75293

        Reviewed by Adam Barth.

        No new tests required.

        * bindings/js/JSAudioContextCustom.cpp:
        * bindings/v8/custom/V8AudioContextCustom.cpp:
        * webaudio/AudioContext.cpp:
        (WebCore::AudioContext::createBuffer):
        * webaudio/AudioContext.h:
        * webaudio/AudioContext.idl:

2011-12-29  Andreas Kling  <awesomekling@apple.com>

        HTMLDivElement: Remove unnecessary variable in parseMappedAttribute().
        <http://webkit.org/b/75363>

        Reviewed by Daniel Bates.

        * html/HTMLDivElement.cpp:
        (WebCore::HTMLDivElement::parseMappedAttribute):

2011-12-29  Andreas Kling  <awesomekling@apple.com>

        HTMLParagraphElement: Remove unnecessary variable in parseMappedAttribute().
        <http://webkit.org/b/75362>

        Reviewed by Daniel Bates.

        * html/HTMLParagraphElement.cpp:
        (WebCore::HTMLParagraphElement::parseMappedAttribute):

2011-12-29  Andreas Kling  <awesomekling@apple.com>

        Use HashMap<OwnPtr> for Document's named item collection caches.
        <http://webkit.org/b/75335>

        Reviewed by Daniel Bates.

        * dom/Document.cpp:
        (WebCore::Document::~Document):

            Remove now-unneeded deleteAllValues() loop.

        (WebCore::Document::nameCollectionInfo):

            Use add() instead of find()/add() to avoid one extra hash lookup.

        * dom/Document.h:

            Switch the value type of m_nameCollectionInfo to use OwnPtr.

2011-12-29  David Barton  <dbarton@mathscribe.com>

        mfenced skips the first separator if the separators attribute contains multiple separators
        https://bugs.webkit.org/show_bug.cgi?id=57697

        Reviewed by Dan Bernstein.

        Added 2 test cases.

        * rendering/mathml/RenderMathMLFenced.cpp:
        (WebCore::RenderMathMLFenced::addChild):
            - Thanks to Xun Sun <xun.sun@intel.com> for the off-by-one error fix.

2011-12-29  Alexis Menard  <alexis.menard@openbossa.org>

        Enable the [Supplemental] IDL on Qt.
        https://bugs.webkit.org/show_bug.cgi?id=75274

        Reviewed by Andreas Kling.

        http://trac.webkit.org/changeset/103783 broke the Qt SL bot.
        This patch fixes the problem by using 'tr' rather than 'sed' which
        seems to be more consistent between Mac and Linux.

        * DerivedSources.pri:

2011-12-29  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Scripts navigator should support incremental search by typing.
        https://bugs.webkit.org/show_bug.cgi?id=75349

        Reviewed by Pavel Feldman.

        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.ScriptsNavigator):
        (WebInspector.ScriptsNavigator.prototype.get defaultFocusedElement):
        (WebInspector.ScriptsNavigator.prototype.show):
        (WebInspector.ScriptsNavigator.prototype._reset):
        (WebInspector.NavigatorTreeOutline):
        (WebInspector.NavigatorTreeOutline.prototype.scriptTreeElements):
        (WebInspector.NavigatorTreeOutline.prototype.searchStarted):
        (WebInspector.NavigatorTreeOutline.prototype.searchFinished):
        (WebInspector.BaseNavigatorTreeElement.prototype.onreveal):
        (WebInspector.BaseNavigatorTreeElement.prototype.set titleText):
        (WebInspector.BaseNavigatorTreeElement.prototype.matchesSearchText):
        * inspector/front-end/inspector.css:
        (.outline-disclosure ol.search-match-not-found li.selected .selection):
        (.outline-disclosure ol.search-match-found li.selected):
        (.outline-disclosure ol.search-match-found li.selected *):
        (.outline-disclosure ol.search-match-found li.parent.selected::before):
        (.outline-disclosure ol.search-match-found li.parent.expanded.selected::before):
        * inspector/front-end/scriptsPanel.css:
        (#scripts-navigator-tree-search-box):
        (#scripts-navigator-tree-search-box.visible):
        (#scripts-navigator-tree-search-box > input):
        (.scripts.panel .navigator .search-match-found li.selected .selection):
        (.scripts.panel .navigator .search-match-not-found li.selected .selection):
        (.scripts.panel .navigator .searching li.selected .selection):
        * inspector/front-end/treeoutline.js:
        (TreeOutline):
        (TreeOutline.prototype._treeKeyPress):
        (TreeOutline.prototype._startSearch.focusSearchInput):
        (TreeOutline.prototype._startSearch):
        (TreeOutline.prototype._searchTextChanged):
        (TreeOutline.prototype._showSearchMatchElement):
        (TreeOutline.prototype._searchInputKeyDown):
        (TreeOutline.prototype._nextSearchMatch):
        (TreeOutline.prototype._previousSearchMatch):
        (TreeOutline.prototype._searchInputBlur):
        (TreeOutline.prototype._searchFinished):
        (TreeOutline.prototype.stopSearch):

2011-12-29  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Scripts navigator should trim long file names and show full url in tooltip.
        https://bugs.webkit.org/show_bug.cgi?id=75343

        Reviewed by Pavel Feldman.

        Test: inspector/debugger/ui-source-code-display-name.html

        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.ScriptsNavigator.prototype.setScriptSourceIsDirty):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.EditorContainer.prototype.showSourceFrame):
        (WebInspector.ScriptsPanel.EditorContainer.prototype.replaceSourceFrames):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.showSourceFrame):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.replaceSourceFrames):
        * inspector/front-end/TabbedEditorContainer.js:
        (WebInspector.TabbedEditorContainer):
        (WebInspector.TabbedEditorContainer.prototype._appendSourceFrameTab):
        (WebInspector.TabbedEditorContainer.prototype._tabClosed):
        (WebInspector.TabbedEditorContainer.prototype._replaceSourceFrameTab.get if):
        (WebInspector.TabbedEditorContainer.prototype._replaceSourceFrameTab):
        (WebInspector.TabbedEditorContainer.prototype.get replaceSourceFrames):
        (WebInspector.TabbedEditorContainer.prototype.reset):
        * inspector/front-end/TabbedPane.js:
        (WebInspector.TabbedPane.prototype.appendTab):
        (WebInspector.TabbedPane.prototype.changeTabTooltip):
        (WebInspector.TabbedPaneTab):
        (WebInspector.TabbedPaneTab.prototype.get tooltip):
        (WebInspector.TabbedPaneTab.prototype.set tooltip):
        (WebInspector.TabbedPaneTab.prototype._createTabElement):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode.prototype._parseURL):
        * inspector/front-end/utilities.js:
        ():

2011-12-29  Alexis Menard  <alexis.menard@openbossa.org>

        getComputedStyle for margin is not implemented.
        https://bugs.webkit.org/show_bug.cgi?id=75358

        Reviewed by Andreas Kling.

        Implement getComputedStyle for margin.

        Test: fast/css/getComputedStyle/getComputedStyle-margin-shorthand.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2011-12-29  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Use HashMap<OwnPtr> in RenderSVGResourcePattern
        https://bugs.webkit.org/show_bug.cgi?id=75361

        Reviewed by Andreas Kling.

        * rendering/svg/RenderSVGResourcePattern.cpp:
        (WebCore::RenderSVGResourcePattern::removeAllClientsFromCache):
        (WebCore::RenderSVGResourcePattern::removeClientFromCache):
        (WebCore::RenderSVGResourcePattern::applyResource): use HashMap::add() to avoid
        looking up the hash twice.
        * rendering/svg/RenderSVGResourcePattern.h: rename m_pattern to m_patternMap to
        improve readability a little bit.

2011-12-29  Alexis Menard  <alexis.menard@openbossa.org>

        getComputedStyle for padding is not implemented.
        https://bugs.webkit.org/show_bug.cgi?id=75352

        Reviewed by Andreas Kling.

        Implement getComputedStyle for padding shorthand property.

        Test: fast/css/getComputedStyle/getComputedStyle-padding-shorthand.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2011-12-29  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Use HashMap<OwnPtr> in OriginAccessMap
        https://bugs.webkit.org/show_bug.cgi?id=75327

        Reviewed by Andreas Kling.

        * page/SecurityPolicy.cpp:
        (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
        (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
        (WebCore::SecurityPolicy::resetOriginAccessWhitelists):

2011-12-29  Pavel Podivilov  <podivilov@chromium.org>

        Web Inspector: support sourceMappingURL magic comment.
        https://bugs.webkit.org/show_bug.cgi?id=75356

        Reviewed by Pavel Feldman.

        * inspector/ContentSearchUtils.cpp:
        (WebCore::ContentSearchUtils::findSourceMapURL):
        * inspector/ContentSearchUtils.h:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::sourceMapURLForScript):

2011-12-29  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Suggest pop-over doesn't hide on tab switch
        https://bugs.webkit.org/show_bug.cgi?id=73611

        Reviewed by Pavel Feldman.

        * inspector/front-end/ConsoleView.js:
        (WebInspector.ConsoleView.prototype.willHide):
        * inspector/front-end/TextPrompt.js:
        (WebInspector.TextPrompt.prototype.complete):
        (WebInspector.TextPrompt.prototype._completionsReady):
        (WebInspector.TextPrompt.prototype.acceptSuggestion):
        (WebInspector.TextPrompt.prototype.hideSuggestBox):
        (WebInspector.TextPrompt.SuggestBox.prototype._completionsReady):

2011-12-28  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Implement CSS selector profiler
        https://bugs.webkit.org/show_bug.cgi?id=74004

        Reviewed by Pavel Feldman.

        This implementation of CSS selector profiler measures the total time required to match a certain selector
        against DOM nodes and apply the style declaration properties to the particular element,
        as well as the number of selector  matches (i.e. the number of nodes that matched the selector.)
        The results are approximate due to internal matching algorithm optimizations (shared styles et al.)
        Multiple selectors with the same selectorText are coalesced into a single record.

        * English.lproj/localizedStrings.js:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.sh:
        * inspector/front-end/CSSSelectorProfileView.js: Added.
        (WebInspector.CSSSelectorDataGridNode):
        (WebInspector.CSSSelectorDataGridNode.prototype.get rawData):
        (WebInspector.CSSSelectorProfileView):
        (WebInspector.CSSSelectorProfileView.prototype.get statusBarItems):
        (WebInspector.CSSSelectorProfileView.prototype.get profile):
        (WebInspector.CSSSelectorProfileView.prototype.set profile):
        (WebInspector.CSSSelectorProfileView.prototype._createProfileNodes):
        (WebInspector.CSSSelectorProfileView.prototype.rebuildGridItems):
        (WebInspector.CSSSelectorProfileView.prototype.refreshData):
        (WebInspector.CSSSelectorProfileView.prototype.refreshShowAsPercents):
        (WebInspector.CSSSelectorProfileView.prototype._sortProfile.get selectorComparator):
        (WebInspector.CSSSelectorProfileView.prototype._sortProfile.timeComparator):
        (WebInspector.CSSSelectorProfileView.prototype._sortProfile.matchesComparator):
        (WebInspector.CSSSelectorProfileView.prototype._sortProfile):
        (WebInspector.CSSSelectorProfileType):
        (WebInspector.CSSSelectorProfileType.prototype.get buttonTooltip):
        (WebInspector.CSSSelectorProfileType.prototype.buttonClicked):
        (WebInspector.CSSSelectorProfileType.prototype.get treeItemTitle):
        (WebInspector.CSSSelectorProfileType.prototype.get description):
        (WebInspector.CSSSelectorProfileType.prototype.reset):
        (WebInspector.CSSSelectorProfileType.prototype.isRecordingProfile):
        (WebInspector.CSSSelectorProfileType.prototype.setRecordingProfile):
        (WebInspector.CSSSelectorProfileType.prototype.startRecordingProfile):
        (WebInspector.CSSSelectorProfileType.prototype.stopRecordingProfile):
        (WebInspector.CSSSelectorProfileType.prototype.createSidebarTreeElementForProfile):
        (WebInspector.CSSSelectorProfileType.prototype.createView):
        * inspector/front-end/DetailedHeapshotView.js:
        * inspector/front-end/ProfileView.js:
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfileType.prototype.reset):
        (WebInspector.ProfilesPanel.prototype._reset):
        (WebInspector.ProfilesPanel.prototype.addProfileHeader):
        (WebInspector.ProfilesPanel.prototype._removeTemporaryProfile):
        (WebInspector.ProfilesPanel.prototype.setRecordingProfile):
        (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
        (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress):
        (WebInspector.ProfilerDispatcher.prototype.addProfileHeader):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:
        * inspector/front-end/profilesPanel.css:

2011-12-29  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r103798.
        http://trac.webkit.org/changeset/103798
        https://bugs.webkit.org/show_bug.cgi?id=75353

        some small scrollbar differences are making the tests fail on
        several platforms (Requested by jchaffraix on #webkit).

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPositionsAfterScroll):

2011-12-29  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Focus of the DOM tree is not restored when switching to the Elements panel
        https://bugs.webkit.org/show_bug.cgi?id=75351

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype.wasShown):

2011-12-29  Julien Chaffraix  <jchaffraix@webkit.org>

        REGRESSION (r93614): Safari Reader doesn't repaint correctly when scrolling
        https://bugs.webkit.org/show_bug.cgi?id=67100

        Reviewed by Dan Bernstein.

        Tests: fast/layers/scroll-with-transform-composited-layer-expected.html
               fast/layers/scroll-with-transform-composited-layer.html
               fast/layers/scroll-with-transform-layer-expected.html
               fast/layers/scroll-with-transform-layer.html

        The regression came from a previous optimization that was wrongly kept after r93614.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
        Remove the early return for transformed layer. This change worked as we used
        to call updateLayerPositions from scrollTo which would call updateLayerPosition on
        all our descendants. After r93614, this is no longer the case and we explicitely need
        to call updateLayerPosition on our descendants from updateLayerPositionsAfterScroll.

2011-12-29  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Tree views can be collapsed/hidden using the keyboard arrows
        https://bugs.webkit.org/show_bug.cgi?id=46272

        Reviewed by Yury Semikhatsky.

        WebInspector.SidebarSectionTreeElement which is not selectable has also been made non-collapsible
        and expanded by default.

        * inspector/front-end/AuditsPanel.js:
        (WebInspector.AuditsPanel):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype._registerProfileType):
        * inspector/front-end/SidebarTreeElement.js:
        (WebInspector.SidebarSectionTreeElement):
        (WebInspector.SidebarSectionTreeElement.prototype.selectable.false.collapse):
        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel):

2011-12-29  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: [chromium] pass dock to side request to the embedder.
        https://bugs.webkit.org/show_bug.cgi?id=75344

        Reviewed by Yury Semikhatsky.

        I'd like to enable dock-to-right for the front-end window. This is a background work
        to pass control flow from the front-end to the front-end host.

        * inspector/InspectorFrontendClient.h:
        * inspector/InspectorFrontendClientLocal.h:
        (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
        * inspector/InspectorFrontendHost.cpp:
        (WebCore::InspectorFrontendHost::requestSetDockSide):
        * inspector/InspectorFrontendHost.h:
        * inspector/InspectorFrontendHost.idl:
        * inspector/front-end/InspectorFrontendHostStub.js:
        (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
        (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
        (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):

2011-12-28  Pavel Podivilov  <podivilov@chromium.org>

        Web Inspector: add "enable source maps" checkbox setting.
        https://bugs.webkit.org/show_bug.cgi?id=75311

        Reviewed by Pavel Feldman.

        When "enable source maps" is on, all auto detected source maps are silently applied.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/DebuggerPresentationModel.js:
        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
        * inspector/front-end/RawSourceCode.js:
        (WebInspector.RawSourceCode):
        (WebInspector.RawSourceCode.prototype.setFormatted):
        (WebInspector.RawSourceCode.prototype._updateSourceMapping.didCreateSourceMapping):
        (WebInspector.RawSourceCode.prototype._updateSourceMapping):
        (WebInspector.RawSourceCode.prototype._createUISourceCode):
        * inspector/front-end/Settings.js:
        (WebInspector.Settings):
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsScreen):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode):
        * inspector/front-end/inspector.js:
        (WebInspector._toolbarItemClicked):

2011-12-29  Julien Chaffraix  <jchaffraix@webkit.org>

        Tighten our checks for needsSectionRecalc in RenderTable
        https://bugs.webkit.org/show_bug.cgi?id=73972

        Reviewed by Adam Barth.

        Refactoring covered under the new tests.

        Now most of the functions use the header, first body and footer's 
        getters that checks if we need a section recalculation. The only
        exceptions are addChild and recalcSections as they can be called
        with the bit set.

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::layout):
        (WebCore::RenderTable::outerBorderAfter):
        (WebCore::RenderTable::sectionAbove):
        (WebCore::RenderTable::sectionBelow):
        Updated the previous functions to use the sections' getters.

        (WebCore::RenderTable::RenderTable):
        (WebCore::RenderTable::addChild):
        (WebCore::RenderTable::recalcSections):
        Update the previous functions after the 2 renames
        (see below).

        * rendering/RenderTable.h:
        (WebCore::RenderTable::header):
        (WebCore::RenderTable::footer):
        (WebCore::RenderTable::firstBody):
        Added some ASSERT here. Also renamed m_head to m_header
        and m_foot to m_footer to match the getter and to avoid
        unneeded abbreviation.

        (WebCore::RenderTable::hasSections):
        (WebCore::RenderTable::topSection):
        Updated the previous functions to use the section getters.

2011-12-28  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Use HashMap<OwnPtr> for UserScriptMap and UserStyleSheetMap
        https://bugs.webkit.org/show_bug.cgi?id=75323

        Reviewed by Darin Adler.

        * dom/Document.cpp:
        (WebCore::Document::pageGroupUserSheets):
        * page/PageGroup.cpp:
        (WebCore::PageGroup::addUserScriptToWorld):
        (WebCore::PageGroup::addUserStyleSheetToWorld):
        (WebCore::PageGroup::removeUserScriptFromWorld):
        (WebCore::PageGroup::removeUserStyleSheetFromWorld): fix a small mistake in
        previous code. Now the entry for world is removed (and deleted) only if its
        stylesheet vector is empty.
        (WebCore::PageGroup::removeUserScriptsFromWorld):
        (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
        (WebCore::PageGroup::removeAllUserContent):
        * page/UserScriptTypes.h:
        * page/UserStyleSheetTypes.h:

2011-12-28  Andreas Kling  <awesomekling@apple.com>

        Reduce memory used by NamedNodeMap.
        <http://webkit.org/b/75333>

        Reviewed by Sam Weinig.

        Give NamedNodeMap's attribute vector an inline capacity of 4. The vast majority
        of elements have <= 4 attributes, and if they don't have any we normally don't
        allocate an attribute map at all.

        This reduces memory consumption by 1.2MB (on 64-bit) when loading the full HTML5
        spec at <http://whatwg.org/c>.

        * dom/NamedNodeMap.h:

2011-12-28  Andreas Kling  <awesomekling@apple.com>

        Reduce memory used by SpaceSplitString.
        <http://webkit.org/b/75315>

        Reviewed by Sam Weinig.

        Split the string upon creation instead of waiting until it's accessed.
        This allows us to get rid of all data members except the substring vector.
        Since we're storing AtomicStrings, this is way more memory-efficient than
        the previous implementation in the majority of cases.

        Also reduced the inline capcity of the vector to 2 (from 8), after testing
        showed this to cover 90% of the cases on the Alexa top sites.

        All in all this reduces memory consumption by 1.1MB (on 64-bit) when
        loading the full HTML5 spec at <http://whatwg.org/c>. On that same page,
        less than 2ms is spent (on my MBP) splitting the ~20000 strings.

        * dom/SpaceSplitString.cpp:
        (WebCore::SpaceSplitStringData::createVector):
        (WebCore::SpaceSplitStringData::containsAll):
        (WebCore::SpaceSplitStringData::remove):
        * dom/SpaceSplitString.h:
        (WebCore::SpaceSplitStringData::SpaceSplitStringData):
        (WebCore::SpaceSplitStringData::contains):
        (WebCore::SpaceSplitStringData::size):
        (WebCore::SpaceSplitStringData::operator[]):

2011-12-28  ChangSeok Oh  <shivamidow@gmail.com>

        [GTK] Fix compilation issue when selecting opengl for Accelerated compositing
        https://bugs.webkit.org/show_bug.cgi?id=75309

        Reviewed by Martin Robinson.

        Add TextureMapperGL and TextureMapperGLCairo files.
        They define new classes required to implement TextureMapperGL for GTK port.

        No new tests required.

        * GNUmakefile.list.am:
        * platform/graphics/cairo/TextureMapperGLCairo.cpp: Added.
        (WebCore::BGRA32PremultimpliedBufferCairo::BGRA32PremultimpliedBufferCairo):
        (WebCore::BGRA32PremultimpliedBufferCairo::~BGRA32PremultimpliedBufferCairo):
        (WebCore::BGRA32PremultimpliedBufferCairo::beginPaint):
        (WebCore::BGRA32PremultimpliedBufferCairo::data):
        (WebCore::BGRA32PremultimpliedBufferCairo::endPaint):
        (WebCore::uidForImage):
        (WebCore::BGRA32PremultimpliedBuffer::create):
        * platform/graphics/cairo/TextureMapperGLCairo.h: Added.

2011-12-28  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r103782.
        http://trac.webkit.org/changeset/103782
        https://bugs.webkit.org/show_bug.cgi?id=75328

        broke origin-whitelisting-removal.html (Requested by kling on
        #webkit).

        * page/SecurityPolicy.cpp:
        (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
        (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
        (WebCore::SecurityPolicy::resetOriginAccessWhitelists):

2011-12-28  Kentaro Hara  <haraken@chromium.org>

        Enable the [Supplemental] IDL on Qt
        https://bugs.webkit.org/show_bug.cgi?id=75274

        Reviewed by Adam Barth.

        This patch enables the [Supplemental] IDL on Qt by changing the build
        flow of Qt as follows.

        - Previous build flow:
            foreach $idl (all IDL files) {
                generate-bindings.pl depends on $idl;
                generate-bindings.pl reads $idl;
                generate-bindings.pl generates .h and .cpp files for $idl;
            }

        - New build flow (See the discussions in bug 72138 for more details):
            resolve-supplemental.pl depends on all IDL files;
            resolve-supplemental.pl reads all IDL files;
            resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
            resolve-supplemental.pl outputs supplemental_dependency.tmp;
            foreach $idl (all IDL files) {
                generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
                generate-bindings.pl reads $idl;
                generate-bindings.pl reads supplemental_dependency.tmp;
                generate-bindings.pl generates .h and .cpp files for $idl,
                    including all attributes in the IDL files that are implementing $idl;
            }

        Tests: Confirm that build succeeds.
               http/tests/websocket/tests/*

        * DerivedSources.pri: Described the above build flow.

2011-12-28  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Use HashMap<OwnPtr> in OriginAccessMap
        https://bugs.webkit.org/show_bug.cgi?id=75327

        Reviewed by Andreas Kling.

        * page/SecurityPolicy.cpp:
        (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
        (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
        (WebCore::SecurityPolicy::resetOriginAccessWhitelists):

2011-12-28  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>

        Use HashMap<OwnPtr> for ProgressTracker's items
        https://bugs.webkit.org/show_bug.cgi?id=75326

        Reviewed by Andreas Kling.

        * loader/ProgressTracker.cpp:
        (WebCore::ProgressTracker::~ProgressTracker): although is empty, the destructor was
        kept so in the header file we can forward declare ProgressItem and use in an OwnPtr.
        (WebCore::ProgressTracker::reset):
        (WebCore::ProgressTracker::incrementProgress):
        (WebCore::ProgressTracker::completeProgress): removed a useless assignment to item
        member just before it is deleted.
        * loader/ProgressTracker.h:

2011-12-28  Alexis Menard  <alexis.menard@openbossa.org>

        getComputedStyle for border-color is not implemented.
        https://bugs.webkit.org/show_bug.cgi?id=75324

        Reviewed by Andreas Kling.

        Implement getComputedStyle for border-color.

        Test: fast/css/getComputedStyle/getComputedStyle-border-color-shorthand.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2011-12-28  Darin Adler  <darin@apple.com>

        Use OwnPtr to handle lifetime and deletion of FontFace objects
        https://bugs.webkit.org/show_bug.cgi?id=75221

        Reviewed by Daniel Bates.

        * css/CSSFontFaceSource.cpp:
        (WebCore::CSSFontFaceSource::getFontData): Use add instead of get/set to read and
        then later fill a cache. Use new version of registerCustomFont that takes PassOwnPtr.
        * css/CSSSegmentedFontFace.cpp:
        (WebCore::CSSSegmentedFontFace::getFontData): Ditto.

        * dom/Document.cpp:
        (WebCore::Document::registerCustomFont): Take a PassOwnPtr instead of raw pointer.
        * dom/Document.h: Ditto.

2011-12-28  Adam Barth  <abarth@webkit.org>

        "Fake" insertion mode in HTMLTreeBuilder doesn't do anything
        https://bugs.webkit.org/show_bug.cgi?id=75322

        Reviewed by Darin Adler.

        This machinery isn't needed anymore now that we're using the new
        foreign content hotness.

        * html/parser/HTMLTreeBuilder.cpp:
        * html/parser/HTMLTreeBuilder.h:
        (WebCore::HTMLTreeBuilder::setInsertionMode):

2011-12-28  Alexis Menard  <alexis.menard@openbossa.org>

        getComputedStyle for border-style is not implemented.
        https://bugs.webkit.org/show_bug.cgi?id=75312

        Reviewed by Andreas Kling.

        Implement getComputedStyle for border-style.

        Test: fast/css/getComputedStyle/getComputedStyle-border-style-shorthand.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2011-12-28  Alexis Menard  <alexis.menard@openbossa.org>

        getComputedStyle for border-bottom, border-top, border-left, border-right is not implemented.
        https://bugs.webkit.org/show_bug.cgi?id=74743

        Reviewed by Tony Chang.

        Implement getComputedStyle for border-top, border-bottom, border-right, border-left.

        Test: fast/css/getComputedStyle/getComputedStyle-border-shorthand.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForShorthandProperties):
        * css/CSSComputedStyleDeclaration.h:

2011-12-28  Robert Hogan  <robert@webkit.org>

        Inline flow not learning height of all text descendants
        https://bugs.webkit.org/show_bug.cgi?id=75305

        Reviewed by Dan Bernstein.

        Tests: fast/inline/nested-text-descendants-expected.html
               fast/inline/nested-text-descendants.html

        The root inline box would only learn it had text descendants if its first grandchild
        was text. It wasn't informed of subsequent text grandchildren so could not factor them 
        into its calculation of the line height.
        To fix this, propagate the existence of a text descendant to the root inline box
        by walking up through the text child's ancestors.

        * rendering/InlineFlowBox.cpp:
        (WebCore::setHasTextDescendantsOnAncestors):
        (WebCore::InlineFlowBox::addToLine):
        * rendering/InlineFlowBox.h:
        (WebCore::InlineFlowBox::setHasTextDescendants):

2011-12-28  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r103620.
        http://trac.webkit.org/changeset/103620
        https://bugs.webkit.org/show_bug.cgi?id=75316

        Causes many crashes (Requested by abarth on #webkit).

        * loader/FrameLoaderClient.h:
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::postMessageTimerFired):

2011-12-28  Alexander Pavlov  <apavlov@chromium.org>

        [V8][Chromium] 'randomString' in document.body.style always returns true
        https://bugs.webkit.org/show_bug.cgi?id=75313

        Reviewed by Adam Barth.

        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
        (WebCore::V8CSSStyleDeclaration::namedPropertyQuery):

2011-12-28  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Add domain.png to WebCore.gypi / WebKit.qrc.
        https://bugs.webkit.org/show_bug.cgi?id=75310

        Reviewed by Pavel Feldman.

        * WebCore.gypi:
        * inspector/front-end/WebKit.qrc:

2011-12-28  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: ExperimentsSettings causes warning on chromium when reading localizedStrings.
        https://bugs.webkit.org/show_bug.cgi?id=75299

        Reviewed by Pavel Feldman.

        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsScreen.prototype._createExperimentCheckbox):

2011-12-28  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Scripts panel: add debug sidebar resizer to TabbedEditorContainer.
        https://bugs.webkit.org/show_bug.cgi?id=75300

        Reviewed by Pavel Feldman.

        * inspector/front-end/ScriptsPanel.js:
        * inspector/front-end/scriptsPanel.css:
        (#scripts-debug-sidebar-resizer-widget):

2011-12-28  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Introduce a Profiler launcher view similar to that in the Audits panel
        https://bugs.webkit.org/show_bug.cgi?id=75228

        Reviewed by Pavel Feldman.

        * English.lproj/localizedStrings.js:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/front-end/AuditLauncherView.js:
        (WebInspector.AuditLauncherView):
        * inspector/front-end/AuditsPanel.js:
        (WebInspector.AuditsPanel):
        * inspector/front-end/DetailedHeapshotView.js:
        (WebInspector.DetailedHeapshotProfileType):
        (WebInspector.DetailedHeapshotProfileType.prototype.get treeItemTitle):
        (WebInspector.DetailedHeapshotProfileType.prototype.get description):
        * inspector/front-end/ProfileLauncherView.js: Added.
        (WebInspector.ProfileLauncherView):
        (WebInspector.ProfileLauncherView.prototype.setUpEventListeners):
        (WebInspector.ProfileLauncherView.prototype.addProfileType):
        (WebInspector.ProfileLauncherView.prototype._controlButtonClicked):
        (WebInspector.ProfileLauncherView.prototype._updateControls):
        (WebInspector.ProfileLauncherView.prototype._profileTypeChanged):
        (WebInspector.ProfileLauncherView.prototype._onProfileStarted):
        (WebInspector.ProfileLauncherView.prototype._onProfileFinished):
        * inspector/front-end/ProfileView.js:
        (WebInspector.CPUProfileType):
        (WebInspector.CPUProfileType.prototype.get treeItemTitle):
        (WebInspector.CPUProfileType.prototype.get description):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfileType.prototype.get treeItemTitle):
        (WebInspector.ProfileType.prototype.get description):
        (WebInspector.ProfilesPanel.prototype.get statusBarItems):
        (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
        (WebInspector.ProfilesPanel.prototype._onProfileTypeSelected):
        (WebInspector.ProfilesPanel.prototype._reset):
        (WebInspector.ProfilesPanel.prototype._showLauncherView):
        (WebInspector.ProfilesPanel.prototype._registerProfileType):
        (WebInspector.ProfilesPanel.prototype._addProfileHeader):
        (WebInspector.ProfilesPanel.prototype._updateInterface):
        (WebInspector.ProfileTypeTreeElement):
        (WebInspector.ProfileTypeTreeElement.prototype.collapse):
        (WebInspector.ProfilesSidebarTreeElement):
        (WebInspector.ProfilesSidebarTreeElement.prototype.onattach):
        (WebInspector.ProfilesSidebarTreeElement.prototype.onselect):
        (WebInspector.ProfilesSidebarTreeElement.prototype.get selectable):
        (WebInspector.ProfilesSidebarTreeElement.prototype.refresh):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/WelcomeView.js: Removed.
        * inspector/front-end/auditsPanel.css:
        (.audit-launcher-view .audit-launcher-view-content):
        (.audit-launcher-view div.button-container):
        (.panel-enabler-view.audit-launcher-view label):
        (.panel-enabler-view.audit-launcher-view label.disabled):
        * inspector/front-end/inspector.html:
        * inspector/front-end/panelEnablerView.css:
        (.panel-enabler-view img):
        (.panel-enabler-view .flexible-space):
        (.panel-enabler-view button:not(.status-bar-item)):
        (body.inactive .panel-enabler-view button, .panel-enabler-view button:disabled):
        (.panel-enabler-view input[type="radio"]):
        (.panel-enabler-view input[type="radio"]:active:not(:disabled)):
        (.panel-enabler-view input[type="radio"]:checked):
        (.panel-enabler-view input[type="radio"]:checked:active):
        * inspector/front-end/profilesPanel.css:
        (.profile-launcher-view-tree-item > .icon):
        (.profile-launcher-view-content):
        (.profile-launcher-view-content h1):
        (.panel-enabler-view.profile-launcher-view form):
        (.panel-enabler-view.profile-launcher-view label):
        (.profile-launcher-view-content p):
        (.panel-enabler-view.profile-launcher-view button:not(.status-bar-item)):
        (.profile-launcher-view-content button.running:not(.status-bar-item)):
        (body.inactive .profile-launcher-view-content button.running:not(.status-bar-item)):

2011-12-28  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r103763.
        http://trac.webkit.org/changeset/103763
        https://bugs.webkit.org/show_bug.cgi?id=75307

        "Compilation fails on Snow Leopard" (Requested by yurys on
        #webkit).

        * inspector/CodeGeneratorInspector.py:
        (Helper):
        (create_ad_hoc_type_declaration.Helper):
        (CodeGenerator.generate_type_builder):
        (get_in_c_type_text):

2011-12-28  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py: generate enum types.
        https://bugs.webkit.org/show_bug.cgi?id=74954

        Reviewed by Yury Semikhatsky.

        Internal map of string contants is created. C enums are created for
        each JSON enum.

        * inspector/CodeGeneratorInspector.py:
        (EnumConstants.add_constant):
        (EnumConstants):
        (EnumConstants.get_enum_constant_code):
        (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.generate_type_builder):
        (TypeBindings.create_type_declaration_.EnumBinding.get_in_c_type_text):
        (TypeBindings.create_type_declaration_.EnumBinding.get_setter_value_expression_pattern):
        (TypeBindings.create_type_declaration_.PlainString.reduce_to_raw_type):
        (TypeBindings.create_type_declaration_.PlainString.get_setter_value_expression_pattern):
        (get_in_c_type_text):
        (get_setter_value_expression_pattern):
        (PlainObjectBinding.get_in_c_type_text):
        (PlainObjectBinding.get_setter_value_expression_pattern):
        (RawTypesBinding.get_in_c_type_text):
        (RawTypesBinding.get_setter_value_expression_pattern):
        (get_annotated_type_text):
        (MethodGenerateModes.get_modes):
        (MethodGenerateModes.StrictParameterMode.get_c_param_type_text):
        (MethodGenerateModes.StrictParameterMode):
        (MethodGenerateModes.StrictParameterMode.get_setter_value_expression):
        (MethodGenerateModes.RawParameterMode.get_c_param_type_text):
        (MethodGenerateModes.RawParameterMode):
        (MethodGenerateModes.RawParameterMode.get_setter_value_expression):
        (MethodGenerateModes.CombinedMode.get_c_param_type_text):
        (MethodGenerateModes):
        (MethodGenerateModes.CombinedMode):
        (MethodGenerateModes.CombinedMode.get_setter_value_expression):

2011-12-28  Hans Wennborg  <hans@chromium.org>

        IndexedDB: IDBKeyRange constructor should throw when lower > upper
        https://bugs.webkit.org/show_bug.cgi?id=74705

        Reviewed by Tony Chang.

        Make IDBKeyRange throw an exception when lower > upper,
        or lower == upper and one or both of the bounds is open.

        Tested in storage/indexeddb/keyrange.html.

        * storage/IDBKeyRange.cpp:
        (WebCore::IDBKeyRange::bound):

2011-12-28  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [protocol] empty enum constant should be replaced with identifier
        https://bugs.webkit.org/show_bug.cgi?id=75273

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector.json:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
        (WebCore::InspectorCSSAgent::detectOrigin):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::buildObjectForRule):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSRule.prototype.get isRegular):

2011-12-27  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: complete annotating SDK component.
        https://bugs.webkit.org/show_bug.cgi?id=75259

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype._addScript):
        * inspector/front-end/NetworkManager.js:
        (WebInspector.NetworkManager.prototype._cacheDisabledSettingChanged):
        (WebInspector.NetworkDispatcher.prototype._isNull):
        (WebInspector.NetworkDispatcher.prototype.webSocketCreated):
        * inspector/front-end/Resource.js:
        (WebInspector.Resource.displayName):
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.ResourceTreeModel.prototype._onResourceUpdated):
        (WebInspector.ResourceTreeModel.prototype._consoleMessageAdded):
        (WebInspector.ResourceTreeFrame.prototype.get name):
        * inspector/front-end/TabbedEditorContainer.js:

2011-12-27  Anantanarayanan G Iyengar  <ananta@chromium.org>

        Crash in the WebKit accessibility code while attempting to retrieve the title UI element.
        https://bugs.webkit.org/show_bug.cgi?id=75279

        Reviewed by Ryosuke Niwa.

        Fix a crash in the the WebKit accessibility code which occurs while retrieving
        the title UI clement. The fix is to NULL check the RenderObject::node return value.

        No test added as there is no reduction.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::titleUIElement):

2011-12-27  Dominic Cooney  <dominicc@chromium.org>

        Remove initWebKitAnimationEvent method
        https://bugs.webkit.org/show_bug.cgi?id=71698

        Reviewed by Ojan Vafai.

        Now that WebKitAnimationEvent has a constructor, we don't need
        this
        method. <https://www.w3.org/Bugs/Public/show_bug.cgi?id=15338> is
        tracking the change to the CSS Animations spec.

        * dom/WebKitAnimationEvent.cpp:
        * dom/WebKitAnimationEvent.h:
        * dom/WebKitAnimationEvent.idl:

2011-12-27  Dominic Cooney   <dominicc@chromium.org>

        Remove initWebKitTransitionEvent method
        https://bugs.webkit.org/show_bug.cgi?id=71701

        Reviewed by Ojan Vafai.

        Now that WebKitTransitionEvent has a constructor, we don't need
        this
        method. <https://www.w3.org/Bugs/Public/show_bug.cgi?id=15339> is
        tracking the change to the CSS Transitions spec.

        * dom/WebKitTransitionEvent.cpp:
        * dom/WebKitTransitionEvent.h:
        * dom/WebKitTransitionEvent.idl:

2011-12-27  Tony Chang  <tony@chromium.org>

        Move HarfBuzz files into their own directory
        https://bugs.webkit.org/show_bug.cgi?id=72780

        Reviewed by Daniel Bates.

        FontCacheLinux.cpp got moved to platform/graphics/skia/FontCacheSkia.cpp since it wasn't HarfBuzz specific.

        I used HarfBuzz in filenames since that seems to be how the name is capitalized on the project home page.

        Fixed some style errors caught by the style checker.

        * PlatformBlackBerry.cmake:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * platform/graphics/chromium/FontPlatformData.h:
        * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp: Renamed from Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.cpp.
        * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.h: Renamed from Source/WebCore/platform/graphics/chromium/ComplexTextControllerLinux.h.
        * platform/graphics/harfbuzz/FontHarfBuzz.cpp: Renamed from Source/WebCore/platform/graphics/chromium/FontLinux.cpp.
        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp: Renamed from Source/WebCore/platform/graphics/chromium/FontPlatformDataLinux.cpp.
        * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h: Renamed from Source/WebCore/platform/graphics/chromium/FontPlatformDataLinux.h.
        * platform/graphics/harfbuzz/HarfBuzzSkia.cpp: Renamed from Source/WebCore/platform/graphics/chromium/HarfbuzzSkia.cpp.
        * platform/graphics/harfbuzz/HarfBuzzSkia.h: Renamed from Source/WebCore/platform/graphics/chromium/HarfbuzzSkia.h.
        * platform/graphics/harfbuzz/SimpleFontDataSkia.cpp: Renamed from Source/WebCore/platform/graphics/chromium/SimpleFontDataLinux.cpp.
        * platform/graphics/skia/FontCacheSkia.cpp: Renamed from Source/WebCore/platform/graphics/chromium/FontCacheLinux.cpp.
        * platform/graphics/skia/GlyphPageTreeNodeSkia.cpp:

2011-12-27  Huang Dongsung  <luxtella@company100.net>

        [TexMap][QT] The fragment shader in OpenGL ES2 requires the default precision
        qualifier.
        https://bugs.webkit.org/show_bug.cgi?id=75168

        Reviewed by Noam Rosenthal.

        No new functionality so no new tests.

        * platform/graphics/opengl/TextureMapperGL.cpp:
        (WebCore::TextureMapperGL::initializeShaders):

2011-12-27  Ryosuke Niwa  <rniwa@webkit.org>

        [Chromium] uninitialized variable in fakeMouseMoveEventTimerFired
        https://bugs.webkit.org/show_bug.cgi?id=75263

        Reviewed by Tony Chang.

        The failure was caused by PlatformKeyboardEvent::getCurrentModifierState in PlatformKeyboardEventChromium.cpp
        not initializing arguments on Linux. Fixed the failure by always assigning false to the arguments.

        But we should really fix this function for Linux. Not recognizing any modifier isn't great.

        * platform/chromium/PlatformKeyboardEventChromium.cpp:
        (WebCore::PlatformKeyboardEvent::getCurrentModifierState):

2011-12-27  Kentaro Hara  <haraken@chromium.org>

        WIP: Enable the [Supplemental] IDL on Gtk
        https://bugs.webkit.org/show_bug.cgi?id=74972

        Reviewed by Adam Barth.

        This patch enables the [Supplemental] IDL on Gtk by changing the build
        flow of Gtk as follows.

        - Previous build flow:
            foreach $idl (all IDL files) {
                generate-bindings.pl depends on $idl;
                generate-bindings.pl reads $idl;
                generate-bindings.pl generates .h and .cpp files for $idl;
            }

        - New build flow (See the discussions in bug 72138 for more details):
            resolve-supplemental.pl depends on all IDL files;
            resolve-supplemental.pl reads all IDL files;
            resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
            resolve-supplemental.pl outputs supplemental_dependency.tmp;
            foreach $idl (all IDL files) {
                generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
                generate-bindings.pl reads $idl;
                generate-bindings.pl reads supplemental_dependency.tmp;
                generate-bindings.pl generates .h and .cpp files for $idl,
                    including all attributes in the IDL files that are implementing $idl;
            }

        Tests: Confirm that build succeeds.
               http/tests/websocket/tests/*

        * GNUmakefile.am: Described the above build flow.
        * GNUmakefile.list.am: Added a list of IDL files. Instead, removed a list of JS*.h and JS*.cpp
        that are generated by the IDL files.

2011-12-27  Tony Chang  <tony@chromium.org>

        [chromium] When building with clang, enable -Wglobal-constructors
        https://bugs.webkit.org/show_bug.cgi?id=74365

        Reviewed by Adam Barth.

        * WebCore.gyp/WebCore.gyp:

2011-12-27  Tony Chang  <tony@chromium.org>

        [chromium] really enable wpo for WebCore libs and for WTF
        https://bugs.webkit.org/show_bug.cgi?id=75264

        Reviewed by Adam Barth.

        * WebCore.gyp/WebCore.gyp: The variable was getting clobbered by the
        value set in common.gypi.  Use a target_defaults instead to set the
        variable.  I tested manually on my Windows machine and
        WholeProgramOptimization is getting set when buildtype is Official.

2011-12-27  Tony Chang  <tony@chromium.org>

        [chromium] remove references to files no longer in the tree
        https://bugs.webkit.org/show_bug.cgi?id=75262

        Reviewed by Adam Barth.

        * WebCore.gypi: platform/mac/PlatformMouseEventMac.mm and platform/mac/WheelEventMac.mm
        were removed in r103652.

2011-12-27  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed web inspector localizedStrings.js fix.

        * English.lproj/localizedStrings.js:

2011-12-27  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Introduce support for experimental settings.
        https://bugs.webkit.org/show_bug.cgi?id=75250

        Reviewed by Pavel Feldman.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/ScriptsPanel.js:
        * inspector/front-end/Settings.js:
        (WebInspector.ExperimentsSettings):
        (WebInspector.ExperimentsSettings.prototype.get experiments):
        (WebInspector.ExperimentsSettings.prototype.get experimentsEnabled):
        (WebInspector.ExperimentsSettings.prototype._createExperiment):
        (WebInspector.ExperimentsSettings.prototype.set _cleanUpSetting.get var):
        (WebInspector.ExperimentsSettings.prototype.set _cleanUpSetting):
        (set WebInspector.Experiment):
        (WebInspector.Experiment.prototype.get name):
        (WebInspector.Experiment.prototype.get title):
        (WebInspector.Experiment.prototype.isEnabled):
        (WebInspector.Experiment.prototype.setEnabled):
        (set WebInspector):
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsScreen):
        (WebInspector.SettingsScreen.prototype._createExperimentsWarningSubsection):
        (WebInspector.SettingsScreen.prototype._createExperimentCheckbox.listener):
        (WebInspector.SettingsScreen.prototype._createExperimentCheckbox):
        * inspector/front-end/helpScreen.css:
        (.settings-experiments-warning-subsection-warning):
        (.settings-experiments-warning-subsection-message):

2011-12-27  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: exception when scrolling in JavaScriptOutline dialog with empty query
        https://bugs.webkit.org/show_bug.cgi?id=75255

        Reviewed by Pavel Feldman.

        * inspector/front-end/JavaScriptOutlineDialog.js:
        (WebInspector.JavaScriptOutlineDialog.prototype._onScroll):

2011-12-27  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: add more annotations on SDK classes.
        https://bugs.webkit.org/show_bug.cgi?id=75247

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector.json:
        * inspector/compile-front-end.sh:
        * inspector/front-end/ApplicationCacheModel.js:
        (WebInspector.ApplicationCacheDispatcher.prototype.networkStateUpdated):
        * inspector/front-end/BreakpointManager.js:
        (WebInspector.BreakpointManager.prototype._breakpoint):
        * inspector/front-end/Color.js:
        (WebInspector.Color.prototype.get shorthex):
        (WebInspector.Color.prototype.get hex):
        (WebInspector.Color.prototype.get rgb):
        (WebInspector.Color.prototype.get hsl):
        (WebInspector.Color.prototype.get nickname):
        (WebInspector.Color.prototype.hasShortHex):
        (WebInspector.Color.prototype._individualRGBValueToFloatValue):
        (WebInspector.Color.prototype._rgbStringsToHex):
        (WebInspector.Color.prototype._parse.this.nickname.set 2):
        (WebInspector.Color.prototype._parse.this.hsla.set 1):
        (WebInspector.Color.prototype._parse.this.rgba.set 0):
        (WebInspector.Color.prototype._parse.set WebInspector):
        (WebInspector.Color.prototype._parse):
        * inspector/front-end/CompilerSourceMapping.js:
        * inspector/front-end/ConsoleModel.js:
        * inspector/front-end/ContentProviders.js:
        (WebInspector.ScriptContentProvider):
        (WebInspector.ConcatenatedScriptsContentProvider):
        (WebInspector.CompilerSourceMappingContentProvider):
        (WebInspector.StaticContentProvider):
        * inspector/front-end/CookieParser.js:
        (WebInspector.CookieParser.KeyValue):
        (WebInspector.CookieParser.prototype.parseCookie):
        (WebInspector.CookieParser.prototype.parseSetCookie):
        (WebInspector.CookieParser.prototype._extractKeyValue):
        * inspector/front-end/DOMStorage.js:
        * inspector/front-end/Database.js:
        (WebInspector.DatabaseDispatcher.prototype.sqlTransactionSucceeded):
        (WebInspector.DatabaseDispatcher.prototype.sqlTransactionFailed):
        * inspector/front-end/DebuggerModel.js:
        (WebInspector.DebuggerModel.Location):
        (WebInspector.DebuggerModel.prototype._failedToParseScriptSource):
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModelResourceBinding.prototype._setContentWithInitialContent):
        * inspector/front-end/ElementsTreeOutline.js:
        * inspector/front-end/HAREntry.js:
        * inspector/front-end/NetworkLog.js:
        (WebInspector.NetworkLog.prototype._mainFrameNavigated):
        * inspector/front-end/Placard.js:
        * inspector/front-end/RawSourceCode.js:
        (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.uiLocationToRawLocation):
        (WebInspector.RawSourceCode.CompilerSourceMapping.prototype.uiLocationToRawLocation):
        * inspector/front-end/RemoteObject.js:
        (WebInspector.RemoteObject.fromPrimitiveValue):
        (WebInspector.RemoteObject.prototype.setPropertyValue.propertySetCallback):
        (WebInspector.RemoteObject.prototype.setPropertyValue):
        (WebInspector.LocalJSONObject.prototype.get hasChildren):
        (WebInspector.LocalJSONObject.prototype._children):
        * inspector/front-end/Resource.js:
        (WebInspector.Resource.restoreRevisions):
        (WebInspector.Resource.prototype.get queryParameters):
        (WebInspector.Resource.prototype.get formParameters):
        (WebInspector.Resource.prototype.isHttpFamily):
        * inspector/front-end/ResourceCategory.js:
        * inspector/front-end/ResourceUtils.js:
        * inspector/front-end/ScopeChainSidebarPane.js:
        (WebInspector.ScopeChainSidebarPane.prototype.update):
        * inspector/front-end/Script.js:
        (WebInspector.Script.prototype.isInlineScript):
        * inspector/front-end/ScriptFormatter.js:
        (WebInspector.ScriptFormatter.positionToLocation):
        * inspector/front-end/WelcomeView.js:
        (WebInspector.WelcomeView.prototype.addMessage):
        * inspector/front-end/externs.js:
        (Array.prototype.upperBound):

2011-12-27  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Scripts panel tabbed editor does not reopen closed tabs.
        https://bugs.webkit.org/show_bug.cgi?id=75245

        Reviewed by Pavel Feldman.

        * inspector/front-end/NetworkItemView.js:
        (WebInspector.NetworkItemView):
        * inspector/front-end/TabbedEditorContainer.js:
        (WebInspector.TabbedEditorContainer):
        (WebInspector.TabbedEditorContainer.prototype._tabClosed):
        * inspector/front-end/TabbedPane.js:
        (WebInspector.TabbedPane.prototype.closeTab):
        (WebInspector.TabbedPane.prototype.selectTab):

2011-12-27  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: report per document JS event listener count
        https://bugs.webkit.org/show_bug.cgi?id=74298

        This patch adds JS event listener count to the memory agent
        report.

        Reviewed by Pavel Feldman.

        Test: inspector/dom-statistics.html

        * inspector/Inspector.json:
        * inspector/InspectorMemoryAgent.cpp:

2011-12-27  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [REGRESSION] Go to Function dialog always has a minimal height
        https://bugs.webkit.org/show_bug.cgi?id=75254

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/scriptsPanel.css:
        (.script-view):

2011-12-26  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Create tabbed editor for scripts panel.
        https://bugs.webkit.org/show_bug.cgi?id=75230

        Reviewed by Pavel Feldman.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.sh:
        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.ScriptsNavigator.prototype.replaceUISourceCodes.get if):
        (WebInspector.ScriptsNavigator.prototype.replaceUISourceCodes):
        (WebInspector.NavigatorScriptTreeElement.prototype.ondblclick):
        (WebInspector.NavigatorScriptTreeElement.prototype.onenter):
        * inspector/front-end/ScriptsPanel.js:
        * inspector/front-end/TabbedEditorContainer.js: Added.
        * inspector/front-end/TabbedPane.js:
        (WebInspector.TabbedPane.prototype.get visibleView):
        (WebInspector.TabbedPane.prototype.get selectedTabId):
        (WebInspector.TabbedPane.prototype.closeAllTabs):
        (WebInspector.TabbedPane.prototype.changeTabTitle):
        (WebInspector.TabbedPane.prototype.changeTabView):
        (WebInspector.TabbedPaneTab):
        (WebInspector.TabbedPaneTab.prototype.get title):
        (WebInspector.TabbedPaneTab.prototype.set title):
        (WebInspector.TabbedPaneTab.prototype.get view):
        (WebInspector.TabbedPaneTab.prototype.set view):
        (WebInspector.TabbedPaneTab.prototype._createTabElement):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:
        * inspector/front-end/scriptsPanel.css:
        (.scripts-views-container):
        (.script-view):
        (#scripts-editor-container-tabbed-pane .tabbed-pane-header):
        (#scripts-editor-container-tabbed-pane .tabbed-pane-header-contents):
        (#scripts-editor-container-tabbed-pane .tabbed-pane-content):

2011-12-27  Pavel Feldman  <pfeldman@google.com>

        Not reviewed: Rolling out r103703 for breaking Canvas2DLayerChromiumTest.testFullLifecycle.

        * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
        (WebCore::Canvas2DLayerChromium::Canvas2DLayerChromium):
        (WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium):
        (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
        (WebCore::Canvas2DLayerChromium::setTextureManager):
        (WebCore::Canvas2DLayerChromium::updateCompositorResources):
        (WebCore::Canvas2DLayerChromium::pushPropertiesTo):
        (WebCore::Canvas2DLayerChromium::unreserveContentsTexture):
        (WebCore::Canvas2DLayerChromium::cleanupResources):
        * platform/graphics/chromium/Canvas2DLayerChromium.h:

2011-12-22  Vangelis Kokkevis  <vangelis@chromium.org>

        [chromium] Bypass the shadow texture copy for accelerated
        canvas when running the compositor in single threaded mode.
        https://bugs.webkit.org/show_bug.cgi?id=75146

        The texture copy fails on Windows as glCopyTexImage2D() doesn't
        support BGRA source textures. 
        This change also modified Canvas2DLayerChromium::updateCompositorResources
        to call glCopyTexSubImage2D() instead of glCopyTexImage2D() so that
        the copy can work with texture allocated via the glTexStorage2D
        extension.

        Reviewed by James Robinson.


        * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
        (WebCore::Canvas2DLayerChromium::Canvas2DLayerChromium):
        (WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium):
        (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
        (WebCore::Canvas2DLayerChromium::setTextureManager):
        (WebCore::Canvas2DLayerChromium::updateCompositorResources):
        (WebCore::Canvas2DLayerChromium::pushPropertiesTo):
        (WebCore::Canvas2DLayerChromium::unreserveContentsTexture):
        (WebCore::Canvas2DLayerChromium::cleanupResources):
        * platform/graphics/chromium/Canvas2DLayerChromium.h:

2011-12-26  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL][WK2] Implement context menu for EFL port.
        https://bugs.webkit.org/show_bug.cgi?id=74995

        Reviewed by Anders Carlsson.

        Implement missing ContextMenuEfl class in order to support WK2's context menu.
        Because WK2's context menu still needs WebCore's context menu implementation.
        And of course, this patch also can be used for WK1 without CROSS_PLATFORM_CONTEXT_MENU
        option.

        * platform/ContextMenu.h:
        * platform/ContextMenuItem.h:
        * platform/PlatformMenuDescription.h:
        * platform/efl/ContextMenuEfl.cpp:
        (WebCore::ContextMenu::~ContextMenu):
        (WebCore::ContextMenu::appendItem):
        (WebCore::ContextMenu::insertItem):
        (WebCore::ContextMenu::itemCount):
        (WebCore::ContextMenu::setPlatformDescription):
        (WebCore::ContextMenu::platformDescription):
        (WebCore::ContextMenu::releasePlatformDescription):
        (WebCore::platformMenuDescription):
        (WebCore::contextMenuItemVector):
        * platform/efl/ContextMenuItemEfl.cpp:
        (WebCore::ContextMenuItem::ContextMenuItem):
        (WebCore::ContextMenuItem::~ContextMenuItem):
        (WebCore::ContextMenuItem::setType):
        (WebCore::ContextMenuItem::type):
        (WebCore::ContextMenuItem::setAction):
        (WebCore::ContextMenuItem::action):
        (WebCore::ContextMenuItem::setTitle):
        (WebCore::ContextMenuItem::title):
        (WebCore::ContextMenuItem::setChecked):
        (WebCore::ContextMenuItem::checked):
        (WebCore::ContextMenuItem::setEnabled):
        (WebCore::ContextMenuItem::enabled):

2011-12-26  Hajime Morrita  <morrita@chromium.org>

        [Refactoring] Node::setTreeScopeRecursively() doesn't need includeRoot parameter
        https://bugs.webkit.org/show_bug.cgi?id=75240

        Reviewed by Anders Carlsson.

        No new tests. No behavior change.

        * dom/Node.cpp:
        (WebCore::Node::setTreeScopeRecursively):
        * dom/Node.h:

2011-12-26  Darin Adler  <darin@apple.com>

        Use OwnPtr and OwnArrayPtr in a couple more places
        https://bugs.webkit.org/show_bug.cgi?id=75211

        Reviewed by Andreas Kling.

        I had a patch with some changes from a while back from going through all sorts of
        classes and changing code to use adoptPtr. Most were landed long ago, these are the
        ones that still apply.

        There are six pieces here that could each be landed separately.
        The big one is CSSParser.

        * css/CSSGrammar.y: Update for members and functions that now
        return PassOwnPtr instead of raw pointers.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::CSSParser): Remove explicit construction
        for m_valueList and m_data since OwnPtr and OwnArrayPtr initialize
        to zero without it.
        (WebCore::CSSParser::~CSSParser): Removed delete m_valueList and
        fastFree(m_data) since OwnPtr and OwnArrayPtr handle that.
        (WebCore::CSSParser::setupParser): Use adoptArrayPtr and new for
        the character array instead of fastFree/fastMalloc. Added get
        function calls as needed.
        (WebCore::CSSParser::parseValue): Added get function calls as needed.
        (WebCore::CSSParser::parseContent): Ditto.
        (WebCore::CSSParser::parseFillProperty): Ditto.
        (WebCore::CSSParser::parseTransformOriginShorthand): Ditto.
        (WebCore::CSSParser::parseBorderImage): Ditto.
        (WebCore::CSSParser::parseTransformOrigin): Ditto.
        (WebCore::CSSParser::parsePerspectiveOrigin): Ditto.
        (WebCore::CSSParser::sinkFloatingValueList): Changed to return PassOwnPtr.
        The adoptPtr call is here.
        (WebCore::CSSParser::sinkFloatingFunction): Ditto.
        (WebCore::CSSParser::markSelectorListStart): Added get function calls as needed.
        (WebCore::CSSParser::markSelectorListEnd): Ditto.
        (WebCore::CSSParser::markRuleBodyStart): Ditto.
        (WebCore::CSSParser::markRuleBodyEnd): Ditto.
        (WebCore::CSSParser::markPropertyStart): Ditto.
        (WebCore::CSSParser::markPropertyEnd): Ditto.
        * css/CSSParser.h: Moved conditional includes to their own paragraph.
        Made sinkFloatingValueList and sinkFloatingFunction return PassOwnPtr.
        Made m_valueList an OwnPtr and m_data an OwnArrayPtr.
        * css/SVGCSSParser.cpp:
        (WebCore::CSSParser::parseSVGValue): Added a call to the get function.

        * html/PluginDocument.h: Made isPluginDocument private. Also marked all the
        functions that are overriding here as OVERRIDE since I was touching the header.

        * html/parser/HTMLToken.h:
        (WebCore::HTMLTokenTypes::DoctypeData::DoctypeData): Removed an unneeded line
        explicitly initializing the base class.

        * page/animation/AnimationBase.cpp:
        (WebCore::RefCountedPropertyWrapper::RefCountedPropertyWrapper): Fixed indent.

        * rendering/style/RenderStyle.h: Moved conditional includes to their own paragraph.

        * xml/parser/MarkupTokenBase.h:
        (WebCore::MarkupTokenBase::beginDOCTYPE): Removed unneeded parentheses.

2011-12-26  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Extract FileEditor from ScriptsPanel.
        https://bugs.webkit.org/show_bug.cgi?id=75229

        Reviewed by Pavel Feldman.

        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame.prototype.suggestedFileName):
        * inspector/front-end/ScriptsNavigator.js:
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._reset):
        (WebInspector.ScriptsPanel.prototype.get visibleView):
        (WebInspector.ScriptsPanel.prototype._updateScriptViewStatusBarItems):
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced.get if):
        (WebInspector.ScriptsPanel.EditorContainer):
        (WebInspector.ScriptsPanel.EditorContainer.prototype.get currentSourceFrame):
        (WebInspector.ScriptsPanel.EditorContainer.prototype.show):
        (WebInspector.ScriptsPanel.EditorContainer.prototype.showSourceFrame):
        (WebInspector.ScriptsPanel.EditorContainer.prototype.isSourceFrameOpen):
        (WebInspector.ScriptsPanel.EditorContainer.prototype.replaceSourceFrames):
        (WebInspector.ScriptsPanel.EditorContainer.prototype.setSourceFrameIsDirty):
        (WebInspector.ScriptsPanel.EditorContainer.prototype.reset):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.get currentSourceFrame):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.show):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.showSourceFrame):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.isSourceFrameOpen):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.replaceSourceFrames):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.setSourceFrameIsDirty):
        (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.reset):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode.prototype.get domain):
        (WebInspector.UISourceCode.prototype.get folderName):
        (WebInspector.UISourceCode.prototype.get fileName):
        (WebInspector.UISourceCode.prototype.get displayName):
        (WebInspector.UISourceCode.prototype._parseURL):

2011-12-26  Darin Adler  <darin@apple.com>

        Fix mutation observer build after didMoveToNewDocument change
        https://bugs.webkit.org/show_bug.cgi?id=75224

        Reviewed by Hajime Morita.

        * dom/Node.cpp:
        (WebCore::willCallDidMoveToNewDocument): Added.
        (WebCore::didMoveToNewDocumentWasCalled): Added.
        (WebCore::Node::setDocument): Call new debugging function.
        (WebCore::Node::didMoveToNewDocument): Ditto. Also use ASSERT_UNUSED
        unconditionally rather than UNUSED_PARAM inside and #if. Also added
        a new assertion that checks that hte old document was passed through
        properly.

2011-12-26  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Scripts] Implement iterative match highlighting in the "Go to Function" dialog item list
        https://bugs.webkit.org/show_bug.cgi?id=75226

        Reviewed by Pavel Feldman.

        * inspector/front-end/JavaScriptOutlineDialog.js:
        (WebInspector.JavaScriptOutlineDialog):
        (WebInspector.JavaScriptOutlineDialog.prototype._createSearchRegExp):
        (WebInspector.JavaScriptOutlineDialog.prototype._filterFunctions):
        (WebInspector.JavaScriptOutlineDialog.prototype._onKeyDown.previousItem):
        (WebInspector.JavaScriptOutlineDialog.prototype._onKeyDown.nextItem):
        (WebInspector.JavaScriptOutlineDialog.prototype._onKeyDown):
        (WebInspector.JavaScriptOutlineDialog.prototype._updateSelection):
        (WebInspector.JavaScriptOutlineDialog.prototype._onScroll):
        (WebInspector.JavaScriptOutlineDialog.MatchHighlighter):
        (WebInspector.JavaScriptOutlineDialog.MatchHighlighter.prototype.highlightViewportItems):
        (WebInspector.JavaScriptOutlineDialog.MatchHighlighter.prototype.clearHighlight):
        (WebInspector.JavaScriptOutlineDialog.MatchHighlighter.prototype._highlightItem):
        (WebInspector.JavaScriptOutlineDialog.MatchHighlighter.prototype._viewportRowRange):
        * inspector/front-end/javaScriptOutlineDialog.css:
        (.js-outline-dialog > .container > div.item > span.highlight):

2011-12-26  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Extract FileSelector from ScriptsPanel.
        https://bugs.webkit.org/show_bug.cgi?id=75173

        Reviewed by Pavel Feldman.

        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.ScriptsNavigator):
        (WebInspector.ScriptsNavigator.prototype.get defaultFocusedElement):
        (WebInspector.ScriptsNavigator.prototype.show):
        (WebInspector.ScriptsNavigator.prototype.setScriptSourceIsDirty):
        (WebInspector.ScriptsNavigator.prototype.replaceUISourceCodes):
        (WebInspector.ScriptsNavigator.prototype.scriptSelected):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype.get defaultFocusedElement):
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded.get if):
        (WebInspector.ScriptsPanel.prototype.setScriptSourceIsBeingEdited):
        (WebInspector.ScriptsPanel.prototype._reset):
        (WebInspector.ScriptsPanel.prototype._showSourceLine):
        (WebInspector.ScriptsPanel.prototype._showAndRevealInFileSelector):
        (WebInspector.ScriptsPanel.prototype._createSourceFrame):
        (WebInspector.ScriptsPanel.prototype._updateExecutionLine):
        (WebInspector.ScriptsPanel.prototype._scriptSelected):
        (WebInspector.ScriptsPanel.FileSelector):
        (WebInspector.ScriptsPanel.FileSelector.prototype.get defaultFocusedElement):
        (WebInspector.ScriptsPanel.FileSelector.prototype.show):
        (WebInspector.ScriptsPanel.FileSelector.prototype.addUISourceCode):
        (WebInspector.ScriptsPanel.FileSelector.prototype.isScriptSourceAdded):
        (WebInspector.ScriptsPanel.FileSelector.prototype.revealUISourceCode):
        (WebInspector.ScriptsPanel.FileSelector.prototype.setScriptSourceIsDirty):
        (WebInspector.ScriptsPanel.FileSelector.prototype.replaceUISourceCodes):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype.get defaultFocusedElement):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype.show):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype.showDebugSidebarResizeWidget):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype.addUISourceCode):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype.isScriptSourceAdded):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype.revealUISourceCode):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._innerRevealUISourceCode):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._addToHistory):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype.replaceUISourceCodes):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._showScriptFoldersSettingChanged):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._reset):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype.setScriptSourceIsDirty):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._createEditorToolbar):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._addOptionToFilesSelect.get var):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._addOptionToFilesSelect.insertOrdered.optionCompare):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._addOptionToFilesSelect.insertOrdered):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._addOptionToFilesSelect):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._resetFilesSelect):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._updateBackAndForwardButtons):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._goBack):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._goForward):
        (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._filesSelectChanged):
        * inspector/front-end/inspector.html:
        * inspector/front-end/utilities.js:
        ():

2011-12-26  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Implement "Go to Function" dialog for JavaScript
        https://bugs.webkit.org/show_bug.cgi?id=75092

        Reviewed by Pavel Feldman.

        * English.lproj/localizedStrings.js:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.sh:
        * inspector/front-end/JavaScriptOutlineDialog.js: Added.
        (WebInspector.JavaScriptOutlineDialog.onMouseDown):
        (WebInspector.JavaScriptOutlineDialog):
        (WebInspector.JavaScriptOutlineDialog.didAddChunk):
        (WebInspector.JavaScriptOutlineDialog.install):
        (WebInspector.JavaScriptOutlineDialog._show):
        (WebInspector.JavaScriptOutlineDialog.createShortcut):
        (WebInspector.JavaScriptOutlineDialog.prototype._resizeWindow):
        (WebInspector.JavaScriptOutlineDialog.prototype._appendItemElements):
        (WebInspector.JavaScriptOutlineDialog.prototype._createSearchRegExp):
        (WebInspector.JavaScriptOutlineDialog.prototype._filterFunctions):
        (WebInspector.JavaScriptOutlineDialog.prototype._selectFirstItem):
        (WebInspector.JavaScriptOutlineDialog.prototype._hide):
        (WebInspector.JavaScriptOutlineDialog.prototype._onBlur):
        (WebInspector.JavaScriptOutlineDialog.prototype._onKeyDown.previousItem):
        (WebInspector.JavaScriptOutlineDialog.prototype._onKeyDown.nextItem):
        (WebInspector.JavaScriptOutlineDialog.prototype._onKeyDown):
        (WebInspector.JavaScriptOutlineDialog.prototype._scheduleFilter):
        (WebInspector.JavaScriptOutlineDialog.prototype._updateSelection):
        (WebInspector.JavaScriptOutlineDialog.prototype._onClick):
        (WebInspector.JavaScriptOutlineDialog.prototype._onMouseMove):
        (WebInspector.JavaScriptOutlineDialog.prototype._highlightFunctionLine):
        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame.prototype.get uiSourceCode):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._didBuildOutlineChunk):
        (WebInspector.ScriptsPanel.prototype._reset):
        (WebInspector.ScriptsPanel.prototype.requestVisibleScriptOutline):
        (WebInspector.ScriptsPanel.prototype._createEditorToolbar):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:
        * inspector/front-end/javaScriptOutlineDialog.css: Added.
        (.js-outline-dialog):
        (.js-outline-dialog > input):
        (.js-outline-dialog > div.progress):
        (.js-outline-dialog > div.container):
        (.js-outline-dialog > .container > div.item):
        (.js-outline-dialog > .container > div.item.selected):

2011-12-26  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: make SDK compilation component self-contained.
        https://bugs.webkit.org/show_bug.cgi?id=75172

        Reviewed by Yury Semikhatsky.

        * inspector/compile-front-end.sh:
        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl):
        (WebInspector.ConsoleMessageImpl.prototype.get stackTrace):
        (WebInspector.ConsoleMessageImpl.prototype.clone):
        * inspector/front-end/ConsoleModel.js:
        (WebInspector.ConsoleModel.prototype._messageRepeatCountUpdated):
        (WebInspector.ConsoleMessage):
        (WebInspector.ConsoleMessage.prototype.isErrorOrWarning):
        (WebInspector.ConsoleMessage.prototype.updateRepeatCount):
        (WebInspector.ConsoleMessage.prototype.clone):
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded):
        * inspector/front-end/ResourceUtils.js:
        * inspector/front-end/UIUtils.js:
        (WebInspector.resetToolbarColors):
        (WebInspector.populateHrefContextMenu):

2011-12-26  Hajime Morrita  <morrita@google.com>

        Unreviewed bad merge fix.

        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::didMoveToNewDocument):

2011-12-25  Hajime Morrita  <morrita@chromium.org>

        https://bugs.webkit.org/show_bug.cgi?id=74067
        Refactoring: Unitfy willMoveToNewDocument() and didMoveToNewDocument()

        Reviewed by Darin Adler.

        No new tests. No behavior change.

        This change combines two method Node::willMoveToNewOwnerDocument() and Node::didMoveToNewOwnerDocument()
        into Node::didMoveToNewDocument(Document* oldDocument).

        The intention of this change is:
        - Making upcoming refactoring (Bug 59816) possible. The refactoring will turn Node::m_document into
          Node::m_treeScope, and we will no longer have Node::setDocument() where we can invoke both
          willMoveToNewDocument() and didMoveToNewDocument() at once.
        - Killing one extra virtual method call.
        - Making the concept of "move" clearer by keeping such an operation into the single method.

        * dom/Node.cpp:
        (WebCore::setWillMoveToNewDocumentWasCalled):
        (WebCore::setDidMoveToNewDocumentWasCalled):
        (WebCore::Node::setDocument):
        (WebCore::Node::didMoveToNewDocument):
        * dom/Node.h:
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged):
        * html/FormAssociatedElement.cpp:
        (WebCore::FormAssociatedElement::didMoveToNewDocument):
        * html/FormAssociatedElement.h:
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::didMoveToNewDocument):
        (WebCore::HTMLFormControlElementWithState::didMoveToNewDocument):
        * html/HTMLFormControlElement.h:
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::didMoveToNewDocument):
        * html/HTMLFormElement.h:
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::didMoveToNewDocument):
        * html/HTMLImageElement.h:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::didMoveToNewDocument):
        * html/HTMLInputElement.h:
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::didMoveToNewDocument):
        * html/HTMLMediaElement.h:
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::didMoveToNewDocument):
        * html/HTMLObjectElement.h:
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::didMoveToNewDocument):
        * html/HTMLPlugInImageElement.h:
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::didMoveToNewDocument):
        * html/HTMLVideoElement.h:
        * html/ImageDocument.cpp:
        (WebCore::ImageDocumentElement::didMoveToNewDocument):
        * html/ImageInputType.cpp:
        (WebCore::ImageInputType::willMoveToNewDocument):
        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::elementDidMoveToNewDocument):
        * loader/ImageLoader.h:
        * svg/SVGImageElement.cpp:
        (WebCore::SVGImageElement::didMoveToNewDocument):
        * svg/SVGImageElement.h:
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::didMoveToNewDocument):
        * svg/SVGSVGElement.h:

2011-12-25  Kentaro Hara  <haraken@chromium.org>

        REGRESSION(r102987): Fix the filename prefix of the generated empty .h
        and .cpp files for [Supplemental] IDLs
        https://bugs.webkit.org/show_bug.cgi?id=75082

        Reviewed by Darin Adler.

        In bug 74481, we changed generate-bindings.pl so that it generates empty .h
        and .cpp files for the [Supplemental] IDLs. However, the filename prefixes of
        those .h and .cpp files are wrong. This patch fixes the prefixes as follows:

            generator=JS  => JS*.h, JS*.cpp
            generator=V8  => V8*.h, V8*.cpp
            generator=ObjC  => DOM*.h, DOM*.cpp
            generator=GObject  => WebKitDOM*.h, WebKitDOM*.cpp
            generator=CPP  => WebDOM*.h, WebDOM*.cpp

        No new tests. No change in behavior.
        I confirmed that the names of generated .h and .cpp files are correct.

        * bindings/scripts/CodeGenerator.pm:
        (FileNamePrefix): Returns the prefix of file names.
        * bindings/scripts/CodeGeneratorCPP.pm:
        (GenerateInterface): Uses CodeGenerator::FileNamePrefix.
        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateInterface): Ditto.
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateInterface): Ditto.
        * bindings/scripts/CodeGeneratorObjC.pm:
        (GenerateInterface): Ditto.
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateInterface): Ditto.
        * bindings/scripts/generate-bindings.pl:
        (generateEmptyHeaderAndCpp): Ditto.

2011-12-25  Dan Bernstein  <mitz@apple.com>

        WebCore changes for: Find indicators overlap when a match spans multiple text boxes
        https://bugs.webkit.org/show_bug.cgi?id=75220

        Reviewed by Darin Adler.

        * WebCore.exp.in: Exported new unionRect(const Vector<FloatRect>&) and existing
        FloatRect::intersects().
        * platform/graphics/FloatRect.cpp:
        (WebCore::unionRect): Added.
        * platform/graphics/FloatRect.h:

2011-12-25  Darin Adler  <darin@apple.com>

        Use OwnPtr for CSSFontFace::m_sources
        https://bugs.webkit.org/show_bug.cgi?id=75219

        Reviewed by Dan Bernstein.

        * css/CSSFontFace.cpp:
        (WebCore::CSSFontFace::isLoaded): Use the same size_t idiom here as in the rest
        of the functions.
        (WebCore::CSSFontFace::isValid): Ditto. Also removed unneeded empty special casing.
        (WebCore::CSSFontFace::addSource): Changed to take a PassOwnPtr. Reordered so the
        PassOwnPtr zeroing does not cause trouble.
        (WebCore::CSSFontFace::getFontData): Added call to get.
        (WebCore::CSSFontFace::hasSVGFontFaceSource): Use the same size_t idiom here as in
        the rest of the functions.

        * css/CSSFontFace.h: Use PassOwnPtr for addSource argument, and Vector<OwnPtr> for
        the m_sources vector.

        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule): Use OwnPtr and PassOwnPtr for font face
        sources that are passed to addSource.

        * css/CSSSegmentedFontFace.cpp: Added a now-needed include.

2011-12-24  Jarred Nicholls  <jarred@sencha.com>

        Allow XMLHttpRequest responseType to be set at any state up to and including HEADERS_RECEIVED
        https://bugs.webkit.org/show_bug.cgi?id=75190

        XMLHttpRequest.responseType should be modifiable at any state up to and including the
        HEADERS_RECEIVED state. Therefore, subsequent calls to open() should not reset responseType
        to its default value, and calls to open() must follow the same spec mandate set forth in
        setResponseType() for synchronous HTTP(S) requests made from the window context.

        Reviewed by Alexey Proskuryakov.

        Tests: fast/xmlhttprequest/xmlhttprequest-responsetype-before-open-sync-request.html
               fast/xmlhttprequest/xmlhttprequest-responsetype-before-open.html
               fast/xmlhttprequest/xmlhttprequest-responsetype-set-at-headers-received.html

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::setResponseType):
        Prevent setting the value only when in LOADING and DONE states. No longer check if
        m_loader is present, which is instantiated on a call to send(), because responseType
        can be safely changed after a request is sent.
        (WebCore::XMLHttpRequest::open):
        Do not reset m_responseTypeCode to the default value, and prevent calls to open()
        for synchronous HTTP(S) requests made from the window context when m_responseTypeCode
        is not the default value.

2011-12-25  Sam Weinig  <sam@webkit.org>

        Fix tests failing as a result of r103643
        https://bugs.webkit.org/show_bug.cgi?id=75209

        Reviewed by Dan Bernstein.

        Switch accidental switch of default scroll granularity from 
        ScrollByPageWheelEvent back to ScrollByPixelWheelEvent.

        * platform/mac/PlatformEventFactory.mm:
        (WebCore::PlatformWheelEventBuilder::PlatformWheelEventBuilder):

2011-12-25  Darin Adler  <darin@apple.com>

        Change CSS canvas code that does HashMap get/set to use the more efficient add idiom
        https://bugs.webkit.org/show_bug.cgi?id=75204

        Reviewed by Dan Bernstein.

        * dom/Document.cpp:
        (WebCore::Document::getCSSCanvasContext): Change local variable name of element to
        element; it's not the function result, so not good to name it result.
        (WebCore::Document::getCSSCanvasElement): Use add instead of get/set so we only do
        one hash table lookup.

2011-12-24  Andreas Kling  <awesomekling@apple.com>

        CSSElementStyleDeclarations should never move between elements.
        <http://webkit.org/b/75198>

        Reviewed by Anders Carlsson.

        Have the CSSElementStyleDeclaration subclasses take a StyledElement* in
        the constructor and replace setElement(StyledElement*) by clearElement().

        No behavior change, just enforcing the current behavior at compile-time.

        * css/CSSElementStyleDeclaration.h:
        (WebCore::CSSElementStyleDeclaration::clearElement):
        (WebCore::CSSElementStyleDeclaration::CSSElementStyleDeclaration):
        * css/CSSInlineStyleDeclaration.h:
        (WebCore::CSSInlineStyleDeclaration::create):
        (WebCore::CSSInlineStyleDeclaration::CSSInlineStyleDeclaration):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::createInlineStyleDecl):
        (WebCore::StyledElement::destroyInlineStyleDecl):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::FontFaceStyleDeclaration::FontFaceStyleDeclaration):

2011-12-23  Andreas Kling  <awesomekling@apple.com>

        Decouple CSSMappedAttributeDeclaration from element completely.
        <http://webkit.org/b/75187>

        Reviewed by Darin Adler.

        Let CSSMappedAttributeDeclaration inherit from CSSMutableDeclaration instead
        of CSSElementStyleDeclaration. Add methods to CSSMappedAttributeDeclaration
        for setting properties that also take a StyledElement* and use that mechanism
        instead of temporarily associating an element with the declaration.

        This reduces the size of mapped attributes by 4/8 bytes, but more importantly
        opens a number of ways to simplify style declarations in future patches.

        * css/CSSMutableStyleDeclaration.h:
        * dom/CSSMappedAttributeDeclaration.cpp:
        (WebCore::CSSMappedAttributeDeclaration::setNeedsStyleRecalc):
        (WebCore::CSSMappedAttributeDeclaration::setMappedImageProperty):
        (WebCore::CSSMappedAttributeDeclaration::setMappedLengthProperty):
        (WebCore::CSSMappedAttributeDeclaration::setMappedProperty):
        (WebCore::CSSMappedAttributeDeclaration::removeMappedProperty):
        * dom/CSSMappedAttributeDeclaration.h:
        (WebCore::CSSMappedAttributeDeclaration::CSSMappedAttributeDeclaration):

            Add/move methods to CSSMappedAttributeDeclaration for setting/removing
            properties that also take a StyledElement*. That element is used for
            scheduling style recalc and passing the right document to CSSParser.

        * css/CSSParser.h:
        * css/CSSParser.cpp:
        (WebCore::parseColorValue):
        (WebCore::parseSimpleLengthValue):
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseMappedAttributeValue):

            Added a parsedMappedAttributeValue() alternative to parseValue() that
            takes a StyledElement*.

        * dom/StyledElement.h:
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::setContentEditable):

            Add (and use) a StyledElement::removeCSSProperty() complement to the
            addCSS*() functions.

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged):
        (WebCore::StyledElement::removeCSSProperty):
        (WebCore::StyledElement::addCSSProperty):
        (WebCore::StyledElement::addCSSImageProperty):
        (WebCore::StyledElement::addCSSLength):
        (WebCore::StyledElement::addCSSColor):
        (WebCore::StyledElement::createMappedDecl):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::additionalAttributeStyleDecls):
        (WebCore::HTMLTableElement::addSharedCellBordersDecl):
        (WebCore::HTMLTableElement::addSharedCellPaddingDecl):
        (WebCore::HTMLTableElement::addSharedGroupDecls):

            Use the setMapped*Property() functions to plumb the element through.

        * css/CSSElementStyleDeclaration.h:

            Update comment about CSSElementStyleDeclaration's subclasses.

2011-12-24  Jarred Nicholls  <jarred@sencha.com>

        Allow XMLHttpRequest withCredentials to be set prior to a call to open()
        https://bugs.webkit.org/show_bug.cgi?id=75194

        XMLHttpRequest.withCredentials attribute should be modifiable prior to the OPENED state per
        the W3C spec. See http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#the-withcredentials-attribute

        Reviewed by Alexey Proskuryakov.

        Test: fast/xmlhttprequest/xmlhttprequest-withcredentials-before-open.html

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::setWithCredentials):
        Prevent setting the value only after the OPENED state.

2011-12-24  Andreas Kling  <awesomekling@apple.com>

        Remove empty inline RenderStyle destructor.
        <http://webkit.org/b/75188>

        Rubber-stamped by Anders "Ordvits" Carlsson.

        * rendering/style/RenderStyle.h:

2011-12-24  Andreas Kling  <awesomekling@apple.com>

        RenderStyle: Inline the destructor.
        <http://webkit.org/b/75188>

        Reviewed by Kenneth Rohde Christiansen.

        The (empty) RenderStyle destructor gets a little hot sometimes, reaching up
        to 0.4% when loading the full HTML5 spec. Inline it to remove the pointless
        function call.

        * rendering/style/RenderStyle.cpp:
        * rendering/style/RenderStyle.h:
        (WebCore::RenderStyleBitfields::~RenderStyle):

2011-12-23  Noel Gordon  <noel.gordon@gmail.com>

        JPEG decoders should only save color profile markers if color management is enabled
        https://bugs.webkit.org/show_bug.cgi?id=75182

        Reviewed by Adam Barth.

        No new tests. Covered by existing tests.
            fast/images/ycbcr-with-cmyk-color-profile.html
            fast/images/gray-scale-jpeg-with-color-profile.html
            fast/images/cmyk-jpeg-with-color-profile.html
            fast/images/color-jpeg-with-color-profile.html

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (WebCore::JPEGImageReader::JPEGImageReader):  Store color profile (JPEG_APP0 + 2) markers
        using the iccjpeg helper setup_read_icc_profile() if color management is enabled.

2011-12-23  Alice Boxhall  <aboxhall@chromium.org>

        Fix crash when adding paragraph in contenteditable with role=textbox.
        https://bugs.webkit.org/show_bug.cgi?id=75159

        Reviewed by Ryosuke Niwa.

        Test: accessibility/textbox-role-on-contenteditable-crash.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::childrenChanged): Use rendererIsEditable() rather than isContentEditable()
        as this method is called during render layouts, and isContentEditable() triggers a layout update, which crashes.

2011-12-23  Noel Gordon  <noel.gordon@gmail.com>

        [chromium] JPEG image with CMYK ICC color profile renders color-inverted and squashed
        https://bugs.webkit.org/show_bug.cgi?id=74400

        Reviewed by Adam Barth.

        Use color profiles for GRAYSCALE, RGB, YCbCr, CMYK and YCCK jpeg images only if their
        embedded color profile is from an RGB color space input device.

        Test:
           fast/images/ycbcr-with-cmyk-color-profile.html
               - YCbCr image, with CMYK output device color profile.
        Existing Tests:
           fast/images/gray-scale-jpeg-with-color-profile.html
               - YCbCr image, with GRAY input device color profile.
           fast/images/cmyk-jpeg-with-color-profile.html
               - YCCK image, with CMYK output device color profile.
           fast/images/color-jpeg-with-color-profile.html
               - YCbCr image, with RGB input device color profile.

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (WebCore::rgbColorProfile): Return true if the profile has an RGB color space.
        (WebCore::inputDeviceColorProfile): Return true if the profile is from an input device.
        (WebCore::readColorProfile): Ignore the embedded color profile unless if it is from
        an RGB color space input device.
        (WebCore::JPEGImageReader::decode):

2011-12-23  Dan Bernstein  <mitz@apple.com>

        Print dlerror() when dyld functions fail unexpectedly
        https://bugs.webkit.org/show_bug.cgi?id=75185

        Reviewed by Sam Weinig.

        * platform/mac/SoftLinking.h:

2011-12-23  Sam Weinig  <sam@webkit.org>

        Start extracting platform specific bits out of PlatformEvents
        https://bugs.webkit.org/show_bug.cgi?id=75063

        Reviewed by Anders Carlsson.

        * WebCore.exp.in:
        Update exports.

        * WebCore.xcodeproj/project.pbxproj:
        Add factory, remove implementation files for mac PlatformWheelEvent
        and PlatformMouseEvent.

        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::wheelEvent):
        (WebCore::EventHandler::keyEvent):
        (WebCore::EventHandler::currentPlatformMouseEvent):
        Switch to use the factory.

        * platform/PlatformEvent.h:
        (WebCore::PlatformEvent::shiftKey):
        (WebCore::PlatformEvent::ctrlKey):
        (WebCore::PlatformEvent::altKey):
        (WebCore::PlatformEvent::metaKey):
        (WebCore::PlatformEvent::modifiers):
        (WebCore::PlatformEvent::PlatformEvent):
        Switch to storing the modifiers as bits on an unsigned
        instead of as individual bools.

        * platform/PlatformGestureEvent.h:
        Remove unused timestamp member.

        * platform/PlatformKeyboardEvent.h:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        (WebCore::PlatformKeyboardEvent::keyIdentifier):
        (WebCore::PlatformKeyboardEvent::macCharCode):
        (WebCore::PlatformKeyboardEvent::isSystemKey):
        Give this class a more consistent interface across platforms,
        and remove constructor that took an NSEvent.

        * platform/PlatformMouseEvent.h:
        Remove constructor that took an NSEvent (and an unused constructor that took
        many arguments) as well as some free functions for point conversion.

        * platform/PlatformWheelEvent.h:
        Remove constructor that took an NSEvent and an unnecessary override of the timestamp()
        function.

        * platform/mac/KeyEventMac.mm:
        Removed constructor and moved helpers to PlatformEventFactory.

        * platform/mac/PlatformEventFactory.h: Added.
        * platform/mac/PlatformEventFactory.mm: Added.
        (WebCore::globalPoint):
        (WebCore::globalPointForEvent):
        (WebCore::pointForEvent):
        (WebCore::mouseButtonForEvent):
        (WebCore::mouseEventTypeForEvent):
        (WebCore::clickCountForEvent):
        (WebCore::momentumPhaseForEvent):
        (WebCore::phaseForEvent):
        (WebCore::gestureEventTypeForEvent):
        (WebCore::textFromEvent):
        (WebCore::unmodifiedTextFromEvent):
        (WebCore::keyIdentifierForKeyEvent):
        (WebCore::isKeypadEvent):
        (WebCore::windowsKeyCodeForKeyEvent):
        (WebCore::isKeyUpEvent):
        (WebCore::modifiersForEvent):
        (WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder):
        (WebCore::PlatformEventFactory::createPlatformMouseEvent):
        (WebCore::PlatformWheelEventBuilder::PlatformWheelEventBuilder):
        (WebCore::PlatformEventFactory::createPlatformWheelEvent):
        (WebCore::PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder):
        (WebCore::PlatformEventFactory::createPlatformKeyboardEvent):
        (WebCore::PlatformGestureEventBuilder::PlatformGestureEventBuilder):
        (WebCore::PlatformEventFactory::createPlatformGestureEvent):
        Consolidate platform event creation logic and add factory functions.

        * platform/mac/PlatformMouseEventMac.mm: Removed.
        * platform/mac/WheelEventMac.mm: Removed.

        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:
        Expose wkGetNSEventKeyChar in WebCore.

        * platform/gtk/PlatformKeyboardEventGtk.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/gtk/PlatformMouseEventGtk.cpp:
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/gtk/PlatformWheelEventGtk.cpp:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
        * platform/qt/PlatformKeyboardEventQt.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/qt/PlatformMouseEventQt.cpp:
        (WebCore::mouseEventModifiersFromQtKeyboardModifiers):
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/qt/PlatformTouchEventQt.cpp:
        (WebCore::PlatformTouchEvent::PlatformTouchEvent):
        * platform/win/KeyEventWin.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/win/WheelEventWin.cpp:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
        Update for new variables/names.

2011-12-22  Andreas Kling  <kling@webkit.org>

        CSSParser: Avoid creating dummy declaration in parseColor() slow path.
        <http://webkit.org/b/75104>

        Reviewed by Darin Adler.

        We only needed the dummy declaration to trigger the instantiation of
        a CSSValuePool. Added an ensureCSSValuePool() method and have parseColor()
        call that instead.

        Also renamed the fast-path parseColor() to fastParseColor() and reordered
        the arguments for consistency with the slow-path parseColor().

        * css/CSSParser.cpp:
        (WebCore::parseColorValue):
        (WebCore::CSSParser::parseColor):
        (WebCore::CSSParser::ensureCSSValuePool):
        (WebCore::CSSParser::fastParseColor):
        (WebCore::CSSParser::parseColorFromValue):
        * css/CSSParser.h:

2011-12-21  Andreas Kling  <kling@webkit.org>

        Automate elements' registration as document namedItem/extraNamedItem.
        <http://webkit.org/b/74991>

        Reviewed by Antti Koivisto.

        Remove caching of the "id" and "name" attributes on applet, embed, form,
        image and object elements. We were caching them to keep the document's
        map of named and "extra named" (named by id) item counts in sync.

        Instead, add a hook to Element::willModifyAttribute() that detects when
        the attributes are being changed and handle the registration/unregistration
        automatically if the element returns true for shouldRegisterAsNamedItem()
        or shouldRegisterAsExtraNamedItem() respectively.

        This shrinks the elements by two AtomicStrings (8 or 16 bytes) each.

        IFrame elements retain the old mechanism for now, as there are some subtle
        differences to how that's handled.

        * dom/Node.h:
        (WebCore::Node::hasName):
        (WebCore::Node::setHasName):

            Cache whether we have a "name" attribute or not (1 bit on Node.)
            This is done in order to minimize the overhead added to Element's
            insertedIntoDocument() and removeFromDocument().

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged):

            Update the Node's has-name flag as appropriate.

        * dom/Element.cpp:
        (WebCore::Element::updateNamedItemRegistration):
        (WebCore::Element::updateExtraNamedItemRegistration):

            Added. Called when the "name" and "id" attributes are changed.
            Updates the document's named item maps accordingly.

        (WebCore::Element::insertedIntoDocument):
        (WebCore::Element::removedFromDocument):

            Make sure updateName() is called in addition to updateId() when applicable.

        * dom/Element.h:
        (WebCore::Element::shouldRegisterAsNamedItem):
        (WebCore::Element::shouldRegisterAsExtraNamedItem):

            Added. If an element returns true for these, it will be automatically
            registered with the document when the name/id attribute changes.

        (WebCore::Element::updateId):
        (WebCore::Element::updateName):

            Register/unregister from the document's named item maps as appropriate.

        (WebCore::Element::willModifyAttribute):

            Add updateName() hook in addition to the existing updateId() hook.

        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::setAttributes):

            Make sure updateName() is called when we're cloning the attributes
            from another element.

        * html/HTMLAppletElement.cpp:
        (WebCore::HTMLAppletElement::parseMappedAttribute):
        * html/HTMLAppletElement.h:
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::parseMappedAttribute):
        (WebCore::HTMLEmbedElement::insertedIntoDocument):
        * html/HTMLEmbedElement.h:
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::insertedIntoDocument):
        (WebCore::HTMLFormElement::removedFromDocument):
        (WebCore::HTMLFormElement::parseMappedAttribute):
        * html/HTMLFormElement.h:
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::parseMappedAttribute):
        (WebCore::HTMLImageElement::insertedIntoDocument):
        * html/HTMLImageElement.h:
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parseMappedAttribute):
        (WebCore::HTMLObjectElement::insertedIntoDocument):
        (WebCore::HTMLObjectElement::removedFromDocument):
        * html/HTMLObjectElement.h:
        * html/HTMLPlugInElement.h:

            Remove duplicated code that is now handled by Element.

        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::updateDocNamedItem):
        (WebCore::HTMLObjectElement::formControlName):

            Use fastGetAttribute() since we no longer cache the name.

2011-12-23  Anders Carlsson  <andersca@apple.com>

        Add two (currently unused) new member functions to ScrollElasticityControllerClient
        https://bugs.webkit.org/show_bug.cgi?id=75179

        Reviewed by Dan Bernstein.

        This is so we'll be able to move more code to ScrollElasticityController.

        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::pinnedInDirection):
        (WebCore::ScrollAnimatorMac::immediateScrollByWithoutContentEdgeConstraints):
        * platform/mac/ScrollElasticityController.h:

2011-12-23  Simon Fraser  <simon.fraser@apple.com>

        Blur filter doesn't invalidate enough
        https://bugs.webkit.org/show_bug.cgi?id=74891

        Reviewed by Darin Adler.
        
        Take the effects of filters into account for repainting; we need
        to inflate the repaint rect by the outsets provided by the filter.
        
        Test: css3/filters/filter-repaint.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeRectForRepaint):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::computeRectForRepaint):

2011-12-23  Simon Fraser  <simon.fraser@apple.com>

        Filters should apply to inline elements
        https://bugs.webkit.org/show_bug.cgi?id=75152

        Reviewed by Darin Adler.
        
        Filters need to cause creation of RenderLayers for inlines, just like
        opacity and masks do.

        Test: css3/filters/filtered-inline.html

        * rendering/RenderInline.h:
        (WebCore::RenderInline::requiresLayer):
        * rendering/RenderTableRow.h: Remove an obviously incorrect comment.

2011-12-23  Jarred Nicholls  <jarred@sencha.com>

        Synchronous XHR in window context should not support new XHR responseTypes for HTTP(S) requests
        https://bugs.webkit.org/show_bug.cgi?id=72154

        Per the latest W3C editor draft: http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html
        This is a spec-mandated attempt to thwart and otherwise discourage the use of synchronous XHR
        in the window context by deliberately not exposing newer functionality. Here we are disabling
        the use of responseType in synchronous HTTP(S) XHR requests from the window context.

        When a user attempts this action, an InvalidAccessError exception is thrown and a message is
        printed to the console to further explain.

        Renamed reportUnsafeUsage to a more generic name, and hoisted it up so it would be defined
        earlier and thus referenceable by setResponseType.

        Reviewed by Alexey Proskuryakov.

        Test: fast/xmlhttprequest/xmlhttprequest-responsetype-sync-request.html

        * xml/XMLHttpRequest.cpp:
        (WebCore::logConsoleError):
        reportUnsafeUsage -> logConsoleError
        (WebCore::XMLHttpRequest::setResponseType):
        (WebCore::XMLHttpRequest::setRequestHeader):
        reportUnsafeUsage -> logConsoleError
        (WebCore::XMLHttpRequest::getResponseHeader):
        reportUnsafeUsage -> logConsoleError
        (WebCore::XMLHttpRequest::didFail):
        reportUnsafeUsage -> logConsoleError

2011-12-23  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Implement a worker for parsing out JavaScript function data
        https://bugs.webkit.org/show_bug.cgi?id=75166

        Reviewed by Pavel Feldman.

        Test: inspector/debugger/script-extract-outline.html

        * inspector/front-end/ScriptFormatter.js:
        (WebInspector.ScriptFormatter.prototype.formatContent):
        * inspector/front-end/ScriptFormatterWorker.js:
        (onmessage):
        (format):
        (getChunkCount):
        ():
        (Array.prototype.keySet):

2011-12-23  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed, rolling out r103624.
        http://trac.webkit.org/changeset/103624
        https://bugs.webkit.org/show_bug.cgi?id=68916

        Broke Snow Leopard builders

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSDirectoryEntryCustom.cpp:
        (WebCore::JSDirectoryEntry::getFile):
        (WebCore::JSDirectoryEntry::getDirectory):
        * bindings/js/JSDirectoryEntrySyncCustom.cpp:
        (WebCore::getFlags):
        * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
        (WebCore::V8DirectoryEntry::getDirectoryCallback):
        (WebCore::V8DirectoryEntry::getFileCallback):
        * bindings/v8/custom/V8DirectoryEntrySyncCustom.cpp:
        (WebCore::getFlags):
        * fileapi/WebKitFlags.idl: Added.
        * page/DOMWindow.idl:
        * workers/WorkerContext.idl:

2011-12-23  Eric Uhrhane  <ericu@chromium.org>

       [fileapi] WebKitFlags should not be constructable per Directories & System spec
       https://bugs.webkit.org/show_bug.cgi?id=68916

       Reviewed by Eric Seidel.

       Remove IDL for the object and all DOM references to it.
       * fileapi/WebKitFlags.idl: Removed.
       * page/DOMWindow.idl:
       * workers/WorkerContext.idl:
       Remove references to the JSC/V8 objects compiled from the IDL.
       * bindings/js/JSDirectoryEntryCustom.cpp:
       (WebCore::JSDirectoryEntry::getFile):
       (WebCore::JSDirectoryEntry::getDirectory):
       * bindings/js/JSDirectoryEntrySyncCustom.cpp:
       (WebCore::getFlags):
       * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
       (WebCore::V8DirectoryEntry::getDirectoryCallback):
       (WebCore::V8DirectoryEntry::getFileCallback):
       * bindings/v8/custom/V8DirectoryEntrySyncCustom.cpp:
       (WebCore::getFlags):
       Fix up build files.
       * WebCore.gypi:
       * WebCore.vcproj/WebCore.vcproj:
       * WebCore.xcodeproj/project.pbxproj:
       * WebCore/CMakeLists.txt:
       * WebCore/CodeGenerators.pri:
       * WebCore/DerivedSources.cpp:
       * WebCore/GNUmakefile.list.am:

2011-12-23  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: Migrate to native Function.prototype.bind; fix front-end compilation with the
        version of compiler that respects Function.prototype.bind.
        https://bugs.webkit.org/show_bug.cgi?id=75170

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/ApplicationCacheModel.js:
        * inspector/front-end/CSSKeywordCompletions.js:
        (WebInspector.CSSKeywordCompletions.colors):
        * inspector/front-end/CSSStyleModel.js:
        * inspector/front-end/CompilerSourceMapping.js:
        * inspector/front-end/DOMAgent.js:
        (WebInspector.DOMAgent.prototype.pushNodeToFrontend):
        (WebInspector.DOMAgent.prototype.pushNodeByPathToFrontend):
        (WebInspector.DOMAgent.prototype._dispatchWhenDocumentAvailable.onDocumentAvailable):
        (WebInspector.DOMAgent.prototype._dispatchWhenDocumentAvailable):
        (WebInspector.DOMAgent.prototype._loadNodeAttributes):
        (WebInspector.DOMAgent.prototype.querySelector):
        (WebInspector.DOMAgent.prototype.querySelectorAll):
        * inspector/front-end/DebuggerModel.js:
        * inspector/front-end/DebuggerPresentationModel.js:
        * inspector/front-end/ExtensionAPI.js:
        (injectedExtensionAPI.InspectorExtensionAPI):
        (injectedExtensionAPI):
        * inspector/front-end/ExtensionPanel.js:
        * inspector/front-end/NetworkManager.js:
        (WebInspector.NetworkManager.prototype.enableResourceTracking):
        (WebInspector.NetworkManager.prototype.disableResourceTracking):
        * inspector/front-end/Script.js:
        * inspector/front-end/Settings.js:
        * inspector/front-end/TextPrompt.js:
        (WebInspector.TextPrompt.prototype.complete):
        * inspector/front-end/utilities.js:

2011-12-23  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Add the BlackBerry specific pauseLoad(bool) to ResourceHandle
        https://bugs.webkit.org/show_bug.cgi?id=75162

        Reviewed by George Staikos.

        The porting can be built now, no new tests so far.

        * platform/network/ResourceHandle.h:

2011-12-23  Karl Koscher  <supersat@chromium.org>

        Give embedders a chance to handle postMessage calls
        https://bugs.webkit.org/show_bug.cgi?id=73883

        To support cross-process postMessage calls in Chromium (bug 73337), we need to intercept 
        postMessage calls to proxy windows. Originally we were just going to add a native event
        listener on the Chromium side, but that required more changes to WebKit and was a bit of
        a hack. See bug 73359 for a discuss about moving to this approach.

        Reviewed by Adam Barth.

        Test: platform/chromium/fast/events/intercept-postmessage.html

        * loader/FrameLoaderClient.h:
        (WebCore::FrameLoaderClient::willCheckAndDispatchPostMessage): new method to allow the
            embedder to intercept postMessage calls
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::postMessageTimerFired): add a call to
            FrameLoaderClient::willCheckAndDispatchPostMessage

2011-12-23  Tom Sepez  <tsepez@chromium.org>

        XSLT-created HTML documents do not inherit content-security-policy from originally loaded XML.
        https://bugs.webkit.org/show_bug.cgi?id=75043

        Reviewed by Adam Barth.

        Test: http/tests/security/contentSecurityPolicy/xsl-img-blocked.php

        * page/ContentSecurityPolicy.cpp:
        (WebCore::ContentSecurityPolicy::copyStateFrom):
        (WebCore::ContentSecurityPolicy::didReceiveHeader):
        * page/ContentSecurityPolicy.h:
        * xml/XSLTProcessor.cpp:
        (WebCore::XSLTProcessor::createDocumentFromSource):

2011-12-23  Darin Adler  <darin@apple.com>

        REGRESSION (r97533): Optgroup label is not disabled
        https://bugs.webkit.org/show_bug.cgi?id=74869

        Reviewed by Alexey Proskuryakov.

        * rendering/RenderMenuList.cpp:
        (WebCore::RenderMenuList::itemIsEnabled): Added back a line of code that was
        accidentally deleted as part of the refactoring in r97533. This line of code
        ensures that any items that are not option elements are disabled.

2011-12-19  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Add CSSStyleSelector instrumentation calls towards implementing a CSS selector profiler
        https://bugs.webkit.org/show_bug.cgi?id=74863

        Performance checks run on PerformanceTest/Parser/html5-full-render.html did not result in any noticeable
        perf regression, as the instrumentation calls are inline and bail out early if there are no
        Web Inspector frontends open.

        Reviewed by Antti Koivisto.

        No new tests, as the functionality is not bound to any user-visible outputs.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchRulesForList):
        (WebCore::CSSStyleSelector::applyDeclaration):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::willMatchRuleImpl):
        (WebCore::InspectorInstrumentation::didMatchRuleImpl):
        (WebCore::InspectorInstrumentation::willProcessRuleImpl):
        (WebCore::InspectorInstrumentation::didProcessRuleImpl):
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::willMatchRule):
        (WebCore::InspectorInstrumentation::didMatchRule):
        (WebCore::InspectorInstrumentation::willProcessRule):
        (WebCore::InspectorInstrumentation::didProcessRule):

2011-12-23  Ivan Briano  <ivan@profusion.mobi>

        [EFL] Fix building with Glib support disabled
        https://bugs.webkit.org/show_bug.cgi?id=70990

        Reviewed by Martin Robinson.

        Add forward declaration for cairo_surface_t, missing when building
        the EFL port with Glib disabled.

        * platform/cairo/WidgetBackingStore.h:

2011-12-23  Adam Klein  <adamk@chromium.org>

        Minimize callsites and duplication of before/after advice for attribute mutations
        https://bugs.webkit.org/show_bug.cgi?id=75054

        Reviewed by Ryosuke Niwa.

        r103452 helpfully made before and after advice regarding attribute
        changes symmetrical. This change finishes that work, by pulling
        together all the before/after work, not just the crumbs previously
        covered. This includes incrementing Document::domTreeVersion()
        when an attribute is about to be changed, Inspector instrumentation,
        and MutationEvent dispatch. This is in addition to the previous code,
        which handled enqueueing MutationRecords for MutationObservers and
        updating the Document's list of IDs.

        The only change in behavior should be in InspectorInstrumentation,
        which causes DOM breakpoints to occur for more cases of Attribute
        mutation. This seems like more correct behavior, and a test has
        been included to exercise it.

        Hopefully the last Attribute-related refactor for awhile.

        * dom/Attr.cpp:
        (WebCore::Attr::setValue): Update to call didModifyAttribute instead
        of attributeChanged.
        * dom/Element.cpp:
        (WebCore::Element::removeAttribute): Got rid of
        removeAttributeInternal as most of that logic moved back into
        NamedNodeMap::removeAttribute.
        (WebCore::Element::setAttributeInternal): Reorganized to read better
        now that only some cases result in calls to will/didModifyAttribute.
        (WebCore::Element::willModifyAttribute): Un-inlined and added
        incDOMTreeVersion and InspectorInstrumentation calls.
        (WebCore::Element::didModifyAttribute): New method which encapsulates
        calling attributeChanged, InspectorInstrumentation, and MutationEvents.
        (WebCore::Element::didRemoveAttribute): New method which encapsulates
        calling attributeChanged, InspectorInstrumentation, and MutationEvents.
        Separate from didModifyAttribute because it has special handling of
        the removed Attribute's value.
        * dom/Element.h:
        (WebCore::Element::willRemoveAttribute): New method which delegates to
        willModifyAttribute as appropriate.
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::setNamedItem): Simplified.
        (WebCore::NamedNodeMap::removeNamedItem): Simplified.
        (WebCore::NamedNodeMap::addAttribute): Added calls to will/didModifyAttribute.
        (WebCore::NamedNodeMap::removeAttribute): ditto.
        (WebCore::NamedNodeMap::replaceAttribute): ditto.
        * svg/properties/SVGAnimatedPropertySynchronizer.h: Reverted changes
        made in r103452 now that addAttribute/removeAttribute once again
        call attributeChanged appropriately.

2011-12-22  Matt Falkenhagen  <falken@chromium.org>

        Map 'lang' and xml:lang attributes to '-webkit-locale' CSS property for use with font fallback and text-transform
        https://bugs.webkit.org/show_bug.cgi?id=67586

        Original patch by Jungshik Shin <jshin@chromium.org>

        Reviewed by Darin Adler.

        Tests: fast/text/lang-mapped-to-webkit-locale.xhtml
               fast/text/xml-lang-ignored-in-html.html

        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::mapLanguageAttributeToLocale):
        (WebCore::HTMLElement::parseMappedAttribute): Map 'lang' and 'xml:lang' to -webkit-locale.
        * html/HTMLElement.h:

2011-12-22  Ryosuke Niwa  <rniwa@webkit.org>

        WinCE build fix after r103539.

        * rendering/svg/RenderSVGResource.cpp:
        (WebCore::RenderSVGResource::removeFromFilterCache):

2011-12-22  Chris Marrin  <cmarrin@apple.com>

        Crash and incorrect behavior when switching between hardware and software CSS filters
        https://bugs.webkit.org/show_bug.cgi?id=75130

        Reviewed by Simon Fraser.

        Test: css3/filters/crash-hw-sw-switch.html

        Backing store on layer gets fixed up (added or removed) after style change is evaluated
        so the state of the m_filter variable might not match the current filter state. Added
        updateOrRemoveFilterEffect() call to ensureBacking() and clearBacking() to get the
        m_filter property in the right state. Also added an ASSERT() where the crash was
        occuring.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::ensureBacking):
        (WebCore::RenderLayer::clearBacking):

2011-12-22  Jon Lee  <jonlee@apple.com>

        Radio buttons cut in download movie sheet
        https://bugs.webkit.org/show_bug.cgi?id=75128
        <rdar://problem/9399450>

        Reviewed by Dan Bernstein.

        Test: compositing/overflow/theme-affects-visual-overflow.html

        The clipping comes from the fact the visual overflow rect of the radio button's
        RenderBlock is not expanded to accommodate for the size of the button on the Mac
        platform. We use the existing RenderTheme::adjustRepaintRect() to make the
        appropriate adjustment. This, consequently, makes it unnecessary to have to
        recalculate it for repaint.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computeOverflow): As part of the overflow computation, we
        make a call to addVisualOverflowFromTheme().
        (WebCore::RenderBlock::addVisualOverflowFromTheme): Ask the theme to inflate the
        RenderBlock's rect if necessary, and add that to the visual overflow rect.
        * rendering/RenderBlock.h: Added addVisualOverflowFromTheme().
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::clippedOverflowRectForRepaint): Remove the call to
        adjustRepaintRect() since the rectangle r already uses the new visual overflow
        rect.
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::clippedOverflowRectForRepaint): Remove the call to
        adjustRepaintRect() since the rectangle r already uses the new visual overflow
        rect.

2011-12-22  Chris Rogers  <crogers@google.com>

        Fix mac build breakage - add SincResampler files to WebCore.xcodeproj
        https://bugs.webkit.org/show_bug.cgi?id=75139

        Unreviewed build fix.

        * WebCore.xcodeproj/project.pbxproj:

2011-12-22  Simon Fraser  <simon.fraser@apple.com>

        Animating some CSS filter values is wrong
        https://bugs.webkit.org/show_bug.cgi?id=75122

        Reviewed by Chris Marrin.
        
        Fix some reversed filter animation behavior for brightness,
        contrast and drop-shadow filters.

        Test: css3/filters/filter-animation-from-none.html

        * platform/graphics/filters/FilterOperation.cpp:
        (WebCore::BasicComponentTransferFilterOperation::blend): Just use the global blend() function.
        (WebCore::BasicComponentTransferFilterOperation::passthroughAmount): Add CONTRAST and BRIGHTNESS to the sswitch.
        (WebCore::GammaFilterOperation::blend): Fix the ordering.
        (WebCore::DropShadowFilterOperation::blend): Fix the ordering.

2011-12-22  Chris Rogers  <crogers@google.com>

        Fix mac build caused by improper include of "Locker.h"
        https://bugs.webkit.org/show_bug.cgi?id=75134

        Unreviewed build fix.

        * webaudio/MediaElementAudioSourceNode.cpp:

2011-12-22  Anders Carlsson  <andersca@apple.com>

        More ScrollAnimatorMac cleanup
        https://bugs.webkit.org/show_bug.cgi?id=75127

        Reviewed by Andreas Kling.

        Introduce a immediateScrollByWithoutContentEdgeConstraints and use it whenever we want to scroll by an
        offset instead of doing the setConstrainsScrollingToContentEdge dance.

        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::immediateScrollByWithoutContentEdgeConstraints):
        (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
        (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):

2011-12-22  Chris Rogers  <crogers@google.com>

        Implement MediaElementAudioSourceNode::setFormat() so numberOfChannels and sampleRate are accounted for
        https://bugs.webkit.org/show_bug.cgi?id=75057

        Reviewed by Eric Carlson.

        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        Add MultiChannelResampler source files to makefiles.
        * platform/audio/MultiChannelResampler.cpp: Added.
        (WebCore::MultiChannelResampler::MultiChannelResampler):
        (WebCore::MultiChannelResampler::process):
        * platform/audio/MultiChannelResampler.h: Added.
        Add MultiChannelResampler implementation which uses one SincResampler per channel.
        * webaudio/MediaElementAudioSourceNode.cpp:
        (WebCore::MediaElementAudioSourceNode::create):
        (WebCore::MediaElementAudioSourceNode::MediaElementAudioSourceNode):
        (WebCore::MediaElementAudioSourceNode::setFormat):
        (WebCore::MediaElementAudioSourceNode::process):
        Implement MediaElementAudioSourceNode::setFormat() so that we can
        properly setup a sample-rate converter and set the number of channels
        of the MediaElementAudioSourceNode output.
        * webaudio/MediaElementAudioSourceNode.h:

2011-12-22  Chris Fleizach  <cfleizach@apple.com>

        AX: WebKit should ignore ARIA role=presentation on focusable elements
        https://bugs.webkit.org/show_bug.cgi?id=75101

        Reviewed by Darin Adler.

        If an element is focusable, the presentational role must be ignored, lest the user not be able
        to interact with something important.

        Test: accessibility/presentational-elements-with-focus.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
        (WebCore::AccessibilityRenderObject::determineAriaRoleAttribute):
        (WebCore::AccessibilityRenderObject::inheritsPresentationalRole):

2011-12-22  Anders Carlsson  <andersca@apple.com>

        Use immediateScrollBy instead of immediateScrollTo where possible
        https://bugs.webkit.org/show_bug.cgi?id=75124

        Reviewed by Sam Weinig.

        Instead of computing the position to scroll to, just compute the delta and use scrollBy instead.

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
        (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):

2011-12-22  Anders Carlsson  <andersca@apple.com>

        Remove a private ScrollAnimatorMac getter/setter and just update the member variable directly
        https://bugs.webkit.org/show_bug.cgi?id=75121

        Reviewed by Sam Weinig.

        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::setIsActive):
        (WebCore::ScrollAnimatorMac::updateScrollerStyle):

2011-12-22  Anders Carlsson  <andersca@apple.com>

        Simplify ScrollAnimatorMac scrollByDelta functions
        https://bugs.webkit.org/show_bug.cgi?id=75120

        Reviewed by Sam Weinig.

        Merge immediateScrollByDeltaX and immediateScrollByDeltaY to a single function and rename it
        to immediateScrollBy. Also, rename immediateScrollToPoint to immediateScrollTo.
        
        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::scrollToOffsetWithoutAnimation):
        (WebCore::ScrollAnimatorMac::immediateScrollTo):
        (WebCore::ScrollAnimatorMac::immediateScrollBy):
        (WebCore::ScrollAnimatorMac::immediateScrollToPointForScrollAnimation):
        (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
        (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):

2011-12-22  Anders Carlsson  <andersca@apple.com>

        Make some ScrollAnimatorMac member functions private
        https://bugs.webkit.org/show_bug.cgi?id=75117

        Reviewed by Sam Weinig.

        Make virtual member functions and functions that are only called from ScrollAnimatorMac private.

        * platform/mac/ScrollAnimatorMac.h:

2011-12-22  Anders Carlsson  <andersca@apple.com>

        Move some member variables out of ScrollElasticityController
        https://bugs.webkit.org/show_bug.cgi?id=75115

        Reviewed by Adam Roben.

        Move a couple of member variables that aren't related to rubberbanding out from
        ScrollElasticityController and back into ScrollAnimatorMac and remove now unneeded
        ScrollElasticityControllerClient member functions as well.

        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
        (WebCore::ScrollAnimatorMac::handleWheelEvent):
        (WebCore::ScrollAnimatorMac::beginScrollGesture):
        * platform/mac/ScrollElasticityController.h:
        * platform/mac/ScrollElasticityController.mm:
        (WebCore::ScrollElasticityController::ScrollElasticityController):
        (WebCore::ScrollElasticityController::beginScrollGesture):

2011-12-22  Balazs Kelemen  <kbalazs@webkit.org>

        Fix debug build with assertions disabled
        https://bugs.webkit.org/show_bug.cgi?id=75075

        Reviewed by Darin Adler.

        Check whether assertions are disabled instead of NDEBUG
        where appropriate to avoid "defined but not used" warnings.

        No change in behaviour so no new tests.

        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::insertInLRUList):
        (WebCore::MemoryCache::removeFromLiveDecodedResourcesList):
        (WebCore::MemoryCache::insertInLiveDecodedResourcesList):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutBlockChild):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPositions):

2011-12-22  Anders Carlsson  <andersca@apple.com>

        Get rid of didStartAnimatedScroll and didCompleteAnimatedScroll
        https://bugs.webkit.org/show_bug.cgi?id=75107

        Reviewed by Adam Roben.

        This is another step towards removing the display throttling in WebKit2.

        * page/ChromeClient.h:
        * page/FrameView.cpp:
        * page/FrameView.h:
        * platform/ScrollableArea.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::scroll):
        (WebCore::ScrollAnimatorMac::immediateScrollToPointForScrollAnimation):

2011-12-22  Anders Carlsson  <andersca@apple.com>

        Remove didStartRubberBand and didCompleteRubberBand callbacks
        https://bugs.webkit.org/show_bug.cgi?id=75102

        Reviewed by Adam Roben.

        The code to do display throttling in WebKit2 is complex and doesn't really help us except
        on an old benchmark that's no longer representative of real-world behavior; let's rip it out instead.

        * page/ChromeClient.h:
        * page/FrameView.cpp:
        * page/FrameView.h:
        * platform/ScrollView.cpp:
        * platform/ScrollView.h:
        * platform/ScrollableArea.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
        * rendering/RenderLayer.cpp:
        * rendering/RenderLayer.h:

2011-12-22  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [Regression] Network item view is not displayed.
        https://bugs.webkit.org/show_bug.cgi?id=75100

        Not reviewed, one line css fix.

        * inspector/front-end/networkPanel.css:
        (.network-item-view.visible):

2011-12-22  Andreas Kling  <kling@webkit.org>

        NamedNodeMap: Get rid of declCount().
        <http://webkit.org/b/74948>

        Reviewed by Darin Adler.

        We already have the number of mapped attribute declarations in the map
        stored in m_mappedAttributeCount (updated by declAdded()/declRemoved())
        so compare that in mappedMapsEquivalent() to skip one loop over the map.

        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::mappedMapsEquivalent):
        * dom/NamedNodeMap.h:

2011-12-22  Andreas Kling  <kling@webkit.org>

        SnowLeopard crashes due to thread-unsafe EventListenerIterator ASSERTs
        <http://webkit.org/b/74260>

        Reviewed by Darin Adler.

        Guard EventListenerMap::m_activeIteratorCount with a mutex.

        * dom/EventListenerMap.cpp:
        (WebCore::activeIteratorCountMutex):
        (WebCore::EventListenerMap::assertNoActiveIterators):
        (WebCore::EventListenerMap::clear):
        (WebCore::EventListenerMap::add):
        (WebCore::EventListenerMap::remove):
        (WebCore::EventListenerMap::find):
        (WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup):
        (WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):
        (WebCore::EventListenerIterator::EventListenerIterator):
        (WebCore::EventListenerIterator::~EventListenerIterator):
        * dom/EventListenerMap.h:
        (WebCore::EventListenerMap::assertNoActiveIterators):

2011-12-22  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: TabbedPane should support closeable tabs, hiding tabs into drop down menu.
        https://bugs.webkit.org/show_bug.cgi?id=75085

        Reviewed by Pavel Feldman.

        Test: inspector/tabbed-pane-tabs-to-show.html

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/front-end/ScriptsNavigator.js:
        (WebInspector.ScriptsNavigator):
        * inspector/front-end/TabbedPane.js:
        (WebInspector.TabbedPane):
        (WebInspector.TabbedPane.prototype.set shrinkableTabs):
        (WebInspector.TabbedPane.prototype.set closeableTabs):
        (WebInspector.TabbedPane.prototype.appendTab):
        (WebInspector.TabbedPane.prototype.closeTab):
        (WebInspector.TabbedPane.prototype.selectTab):
        (WebInspector.TabbedPane.prototype.onResize):
        (WebInspector.TabbedPane.prototype._updateTabElements):
        (WebInspector.TabbedPane.prototype._showTabElement):
        (WebInspector.TabbedPane.prototype._hideTabElement):
        (WebInspector.TabbedPane.prototype._createDropDownButton):
        (WebInspector.TabbedPane.prototype._updateTabsDropDown):
        (WebInspector.TabbedPane.prototype._populateDropDownFromIndex):
        (WebInspector.TabbedPane.prototype._tabsSelectChanged):
        (WebInspector.TabbedPane.prototype._measureDropDownButton):
        (WebInspector.TabbedPane.prototype._updateWidths):
        (WebInspector.TabbedPane.prototype._calculateMaxWidth.var):
        (WebInspector.TabbedPane.prototype._calculateMaxWidth):
        (WebInspector.TabbedPane.prototype._hideCurrentTab):
        (WebInspector.TabbedPaneTab):
        (WebInspector.TabbedPaneTab.prototype.get id):
        (WebInspector.TabbedPaneTab.prototype.get tabElement):
        (WebInspector.TabbedPaneTab.prototype.get measuredWidth):
        (WebInspector.TabbedPaneTab.prototype.get width):
        (WebInspector.TabbedPaneTab.prototype.set width):
        (WebInspector.TabbedPaneTab.prototype._createTabElement):
        (WebInspector.TabbedPaneTab.prototype._measure):
        (WebInspector.TabbedPaneTab.prototype._tabSelected):
        (WebInspector.TabbedPaneTab.prototype._tabClosed):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.css:
        * inspector/front-end/scriptsPanel.css:
        (#scripts-navigator-tabbed-pane .tabbed-pane-header-contents):
        * inspector/front-end/tabbedPane.css: Added.

2011-12-22  Chris Fleizach  <cfleizach@apple.com>

        AX: attributed strings do not include AXHeading information when a link is contained within the heading
        https://bugs.webkit.org/show_bug.cgi?id=75059

        Reviewed by Darin Adler.

        An attributed string should contain the heading level of an ancestor node if it exists.
        This change allows the ancestor to be higher up in the hierarchy than just the direct parent.

        Test: platform/mac/accessibility/heading-and-link-attributed-string.html

        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
          (AXAttributeStringSetHeadingLevel):

2011-12-22  Chris Fleizach  <cfleizach@apple.com>

        AX: Title attribute should not be used in AXTitle
        https://bugs.webkit.org/show_bug.cgi?id=75027

        Reviewed by Darin Adler.

        Accessibility has been incorrectly exposing the title attribute through AXTitle. The title
        attribute better corresponds with a help tag for accessibility clients.

        Test: platform/mac/accessibility/title-attribute-not-used-as-axtitle.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::title):
            Don't use the title attribute.
        (WebCore::AccessibilityRenderObject::exposesTitleUIElement):
            Change the semantics around when a checkbox or radio button combines it's title ui element. The change
            makes it so that we will expose the title ui element when the control already has a label. Otherwise
            the title ui element is hidden, and it's text is used as the AXTitle for the control.
        (WebCore::AccessibilityRenderObject::titleUIElement):
            Change this method so it always returns the title ui element, and then leave it up to exposesTitleUIElement
            to determine whether it should be shown.
        * accessibility/AccessibilityTableCell.h:
        (WebCore::AccessibilityTableCell::exposesTitleUIElement):
            There's no special logic for table cells that have title ui elements, and we don't want to use
            the logic in AccessibilityRenderObject, hence the override here.
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

2011-12-22  Chris Fleizach  <cfleizach@apple.com>

        AX: aria-describedby should not be part of AXDescription (should be a part of AXHelp)
        https://bugs.webkit.org/show_bug.cgi?id=75052

        Reviewed by Darin Adler.

        According to the ARIA spec, aria-describedby is a more detailed description that is akin to help, rather
        than a description describing the actual object.

        As such, it makes more sense for this attribute to be exposed under help text.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::helpText):
        (WebCore::AccessibilityRenderObject::ariaAccessibilityDescription):

2011-12-22  Mariusz Grzegorczyk  <mariusz.g@samsung.com>

        [EFL] Missing plugins support for efl port
        https://bugs.webkit.org/show_bug.cgi?id=44505

        Reviewed by Anders Carlsson.

        Basic functionality of plugins for efl port.

        Template version, so no new tests are needed.

        * PlatformEfl.cmake:
        * plugins/PluginView.h:
        * plugins/efl/PluginDataEfl.cpp: Added. Copied from plugins/gtk/PluginDataGtk.cpp.
        (WebCore::PluginData::initPlugins): Fill mime/description/extension maps for plugins.
        (WebCore::PluginData::refresh): Refresh plugin's database.
        * plugins/efl/PluginPackageEfl.cpp: Added. Copied from plugins/gtk/PluginPackageGtk.cpp.
        (WebCore::PluginPackage::fetchInfo): Get info from plugin's library about name and mime supported.
        (WebCore::PluginPackage::NPVersion):
        (WebCore::PluginPackage::load): Load plugin.
        * plugins/efl/PluginViewEfl.cpp: Added. Copied from plugins/gtk/PluginViewGtk.cpp.
        (WebCore::PluginView::dispatchNPEvent):
        (WebCore::PluginView::handleFocusInEvent):
        (WebCore::PluginView::handleFocusOutEvent):
        (WebCore::PluginView::handleKeyboardEvent):
        (WebCore::PluginView::handleMouseEvent):
        (WebCore::PluginView::updatePluginWidget):
        (WebCore::PluginView::setFocus):
        (WebCore::PluginView::show):
        (WebCore::PluginView::hide):
        (WebCore::PluginView::paint):
        (WebCore::PluginView::setParent):
        (WebCore::PluginView::setNPWindowRect):
        (WebCore::PluginView::setNPWindowIfNeeded):
        (WebCore::PluginView::setParentVisible):
        (WebCore::PluginView::handlePostReadFile):
        (WebCore::PluginView::platformGetValueStatic):
        (WebCore::PluginView::platformGetValue):
        (WebCore::PluginView::invalidateRect):
        (WebCore::PluginView::invalidateRegion):
        (WebCore::PluginView::forceRedraw):
        (WebCore::PluginView::platformStart):
        (WebCore::PluginView::platformDestroy):

2011-12-22  Pavel Podivilov  <podivilov@chromium.org>

        Web Inspector: add "install source map" to JS source frame context menu.
        https://bugs.webkit.org/show_bug.cgi?id=74181

        Reviewed by Pavel Feldman.

        Add "install source map" to source frame context menu when source map url is auto detected.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/CompilerSourceMapping.js:
        (WebInspector.ClosureCompilerSourceMapping.prototype.load):
        (WebInspector.ClosureCompilerSourceMapping.prototype._parseSections):
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype.installCompilerSourceMapping):
        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
        (WebInspector.JavaScriptSourceFrame.prototype.cancelEditing):
        * inspector/front-end/RawSourceCode.js:
        (WebInspector.RawSourceCode.prototype._createSourceMapping.didRequestContent.didFormatContent):
        (WebInspector.RawSourceCode.prototype._createSourceMapping.didRequestContent):
        (WebInspector.RawSourceCode.prototype._createSourceMapping):
        (WebInspector.RawSourceCode.prototype._createUISourceCode):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode):

2011-12-22  Branimir Lambov  <blambov@google.com>

        SVG: "filter" race condition may prevent SVG elements from being re-drawn
        https://bugs.webkit.org/show_bug.cgi?id=53088

        Reviewed by Nikolas Zimmermann.

        Added code to explicitly invalidate data cached by filters applied to
        an invalidated object or one of its parents.

        Test: svg/filters/filter-refresh.svg

        * rendering/svg/RenderSVGResource.cpp:
        (WebCore::RenderSVGResource::removeFromFilterCache):
        (WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation):
        Added code to invalidate any filters applied to any of the parents.
        * rendering/svg/RenderSVGResource.h:
        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
        Replaced a duplicate of RenderSVGResource::
        markForLayoutAndParentResourceInvalidation with a call to the method.
        * rendering/svg/SVGResourcesCache.cpp:
        (WebCore::SVGResourcesCache::clientLayoutChanged):
        Removed filter invalidation code as this function would not be called if
        the filter isn't already invalidated.
        (WebCore::SVGResourcesCache::clientStyleChanged):
        (WebCore::SVGResourcesCache::clientUpdatedFromElement):
        Replaced filter invalidation with a markForLayoutAndParentResourceInvalidation
        call as all filters in the ancestor chain need to be invalidated.

2011-12-22  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Upstream the BlackBerry change to ResourceHandle.h
        https://bugs.webkit.org/show_bug.cgi?id=75061

        Reviewed by George Staikos.

        No functionality change to the existing code, no new tests.

        * platform/network/ResourceHandle.h:

2011-12-22  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Shaders] Follow up bug to fix issues mentioned in comment 23 from bug 73317
        https://bugs.webkit.org/show_bug.cgi?id=74840
        
        Some comments were added on bug 73317 after the patch was reviewed and committed.
        This patch is fixing those issues, mostly about coding style and some missing comments.
        
        The initial patch had no explanation about the feature in the ChangeLog, so I'm including the description
        in this patch:
        
        CSS Shaders allow a designer to use a pair of WebGL vertex and fragment shaders to alter the final
        rendering of a specific element. The navigator will render the element inside a texture and map it
        to a mesh. The mesh is formed by equal sized quads, that depending on the mesh style, attached or detached,
        can be stitched or separated. The number of quads can be changed from CSS.
        
        Usually the vertex shader is changing the vertices of the mesh, while the fragment shader affects only the color
        that is rendered to screen (for example lighting effects).
        
        More info about CSS Shaders can be found in the specification
        https://dvcs.w3.org/hg/FXTF/raw-file/tip/custom/index.html
        
        Also a good tutorial is published here
        http://www.adobe.com/devnet/html5/articles/css-shaders.html
        
        Initially we are using the software filter effects pipeline. It uploads the image to the GPU, applies
        the shaders, reads it back to CPU and continues the rendering. The advantage of using the software pipeline is that
        it can be enabled on all the platforms that have WebGL support. The obvious disadvantage is performance: copies from CPU
        memory to GPU memory and the CPU will need to wait the GPU to finish before it could continue. In following 
        patches the shaders will be integrated in the hardware accelerated pipeline, so that no copies and, most 
        important, no waits will be required.
        
        Also, the new syntax counts total number of the lines and the columns, not just the
        additional lines and columns, so the minimum accepted and the default value is now 1 by 1.

        Reviewed by Nikolas Zimmermann.

        Some tests were updated for the default mesh size change.

        * css/CSSParser.cpp:
            Only accept non-zero positive int values for mesh sizes.
            
        (WebCore::CSSParser::parseCustomFilter):
        * css/CSSStyleSelector.cpp:
            Updated the default mesh size to be 1 column with 1 line.
            
        (WebCore::CSSStyleSelector::createCustomFilterOperation):
        * loader/cache/CachedShader.cpp:
        (WebCore::CachedShader::shaderString):
            Corrected the CachedShader to use a StringBuilder. Also there was an incorrect 
            cast to bool, which resulted from a copy/paste from CachedScript which still has
            both same issues.
            
        (WebCore::CachedShader::data):
        * loader/cache/CachedShader.h:
        * platform/graphics/filters/CustomFilterMesh.cpp:
        (WebCore::MeshGenerator::MeshGenerator):
        (WebCore::MeshGenerator::verticesCount):
        (WebCore::MeshGenerator::generateAttachedMesh):
        (WebCore::MeshGenerator::generateDetachedMesh):
        (WebCore::CustomFilterMesh::CustomFilterMesh):
        * platform/graphics/filters/CustomFilterMesh.h:
        (WebCore::CustomFilterMesh::create):
        * platform/graphics/filters/CustomFilterShader.cpp:
        (WebCore::CustomFilterShader::CustomFilterShader):
            Exploded the body of the constructor into smaller helper functions.
            
        (WebCore::CustomFilterShader::compileShader):
        (WebCore::CustomFilterShader::linkProgram):
        (WebCore::CustomFilterShader::initializeParameterLocations):
        * platform/graphics/filters/CustomFilterShader.h:
        * platform/graphics/filters/FECustomFilter.cpp:
        (WebCore::orthogonalProjectionMatrix):
            Passing a TransformationMatrix by reference to be filled with the result matrix, instead
            of returning it by value. Also changed the name of the method.
            
        (WebCore::FECustomFilter::FECustomFilter):
        (WebCore::FECustomFilter::platformApplySoftware):
            Created some helper functions to make this method shorter.
            
        (WebCore::FECustomFilter::initializeContext):
        (WebCore::FECustomFilter::resizeContext):
        (WebCore::FECustomFilter::bindVertexAttribute):
        (WebCore::FECustomFilter::bindProgramAndBuffers):
        * platform/graphics/filters/FECustomFilter.h:

2011-12-12  Pavel Podivilov  <podivilov@chromium.org>

        Web Inspector: fix source map url resolving.
        https://bugs.webkit.org/show_bug.cgi?id=74305

        Reviewed by Pavel Feldman.

        Also fix the bug with repeated source urls in mapping sections.

        * inspector/front-end/CompilerSourceMapping.js:
        (WebInspector.ClosureCompilerSourceMapping):
        (WebInspector.ClosureCompilerSourceMapping.prototype.sources):
        (WebInspector.ClosureCompilerSourceMapping.prototype._parseMap):
        (WebInspector.ClosureCompilerSourceMapping.prototype._resolveSourceMapURL):
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype.installCompilerSourceMapping):
        * inspector/front-end/utilities.js:
        (String.prototype.asParsedURL):

2011-12-09  Pavel Podivilov  <podivilov@chromium.org>

        Web Inspector: auto detect source map url.
        https://bugs.webkit.org/show_bug.cgi?id=74088

        Reviewed by Pavel Feldman.

        Check to see if "X-SourceMap" HTTP response header was sent with script resource.
        Header value will be used as auto suggestion for source map url in UI.

        * inspector/Inspector.json:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::sourceMapURLForScript):
        (WebCore::InspectorDebuggerAgent::didParseSource):
        * inspector/InspectorDebuggerAgent.h:
        * inspector/front-end/DebuggerModel.js:
        (WebInspector.DebuggerModel.prototype._parsedScriptSource):
        (WebInspector.DebuggerDispatcher.prototype.scriptParsed):
        * inspector/front-end/RawSourceCode.js:
        (WebInspector.RawSourceCode):
        * inspector/front-end/Script.js:
        (WebInspector.Script):

2011-12-22  Kentaro Hara  <haraken@chromium.org>

        Change the build flow of AppleWebKit to use the [Supplemental] IDL
        https://bugs.webkit.org/show_bug.cgi?id=74900

        Reviewed by Adam Barth.

        This is the final step for bug 74599. This patch changes the build flow
        of DerivedSources.make as follows, and thus enable the [Supplemental] IDL.

        - Previous build flow:
            foreach $idl (all IDL files) {
                generate-bindings.pl depends on $idl;
                generate-bindings.pl reads $idl;
                generate-bindings.pl generates .h and .cpp files for $idl;
            }

        - New build flow (See the discussions in bug 72138 for more details):
            resolve-supplemental.pl depends on all IDL files;
            resolve-supplemental.pl reads all IDL files;
            resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
            resolve-supplemental.pl outputs supplemental_dependency.tmp;
            foreach $idl (all IDL files) {
                generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
                generate-bindings.pl reads $idl;
                generate-bindings.pl reads supplemental_dependency.tmp;
                generate-bindings.pl generates .h and .cpp files for $idl,
                    including all attributes in the IDL files that are implementing $idl;
            }

        Tests: Confirm that build succeeds.
               http/tests/websocket/tests/*

        * DerivedSources.make: Described the build flow as described above.
        Added a list of IDL files. Instead, removed a list of JS*.h and JS*.cpp
        which are generated by the IDL files.

2011-12-22  Eric Uhrhane  <ericu@chromium.org>

        [filesystem] Remove old filesystem naming restrictions
        https://bugs.webkit.org/show_bug.cgi?id=62813

        Reviewed by David Levin.

        * fileapi/DOMFilePath.cpp:
        (WebCore::DOMFilePath::isValidPath): Replace strict restrictions with
        minimal safety [no files named "." or "..", no use of '\\' or '\0' in
        paths, no use of '/' in file names].

2011-12-22  Greg Billock  <gbillock@google.com>

        [Coverity] Address use-after-free report in MemoryCache
        https://bugs.webkit.org/show_bug.cgi?id=74970

        Reviewed by Eric Seidel.

        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::revalidationSucceeded):

2011-12-22  Tom Sepez  <tsepez@chromium.org>

        XSLT-created HTML documents do not inherit first party for cookies from originally loaded XML.
        https://bugs.webkit.org/show_bug.cgi?id=74757

        Reviewed by Alexey Proskuryakov.

        Tests: http/tests/security/cookies/first-party-cookie-allow-xslt.xml
               http/tests/security/cookies/third-party-cookie-blocking-xslt.xml

        * xml/XSLTProcessor.cpp:
        (WebCore::XSLTProcessor::createDocumentFromSource):

2011-12-22  Daniel Jalkut  <jalkut@red-sweater.com>

        WebKit editing throws exception when monochrome color dragged onto text
        https://bugs.webkit.org/show_bug.cgi?id=74775

        Reviewed by Ryosuke Niwa.

        Handle non-RGB colorspace colors in the Mac platform drag manager. Fixes NSException thrown 
        when dragging monochrome colors to contentEditable regions.

        Manual test added to trunk/ManualTests/drag-color-to-contenteditable.html

        * platform/mac/DragDataMac.mm:
        (WebCore::DragData::asColor):

2011-12-22  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py: generate anonymous types.
        https://bugs.webkit.org/show_bug.cgi?id=74890

        Reviewed by Yury Semikhatsky.

        Anonymous types are generated. Forward declarations are generated.

        In general it now generates C++ types for anonymous object types from
        JSON. It takes a name from the type declaration site, usually a
        parameter name. This all is explained in comments in generated file. Also
        all generated types now refer to other generated types in setter
        methods -- but this is commented out in generated code for now. All
        necessary forward declarations are also added. Anonymous enums are
        generated, but they are in comments too, because we didn't have
        solution about form the enums should have in C++ API.

        Internally:
        The change reorganizes type bindings — a polymorphous "code generator"
        object is factored out from binding.
        A helper class Writer is added to allow generating code with ajustable
        indentations and to support insertion points where additional code can
        be inserted retroactively.
        ForwardListener class is used for preparing necessary forward
        declarations.
        AdHocTypeContext conception is a speculative abstract class that is
        needed wherever anonymous type can emerge.

        * inspector/CodeGeneratorInspector.py:
        (fix_type_name.Result.output_comment):
        (Writer.__init__):
        (Writer.newline):
        (Writer.append):
        (Writer.newline_multiline):
        (Writer.append_multiline):
        (Writer.get_indented):
        (Writer):
        (Writer.insert_writer):
        (TypeBindings.create_named_type_declaration.Helper.write_doc):
        (TypeBindings.create_named_type_declaration.Helper):
        (TypeBindings.create_named_type_declaration.Helper.add_to_forward_listener):
        (TypeBindings.create_named_type_declaration):
        (TypeBindings.create_ad_hoc_type_declaration.Helper.write_doc):
        (TypeBindings.create_ad_hoc_type_declaration.Helper):
        (TypeBindings.create_ad_hoc_type_declaration.Helper.add_to_forward_listener):
        (TypeBindings.create_ad_hoc_type_declaration):
        (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.generate_type_builder):
        (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator):
        (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.register_use):
        (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator):
        (TypeBindings.create_type_declaration_.PlainString.get_code_generator.CodeGenerator.generate_type_builder.String):
        (TypeBindings.create_type_declaration_.PlainString.get_code_generator.CodeGenerator.generate_type_builder):
        (TypeBindings.create_type_declaration_.PlainString.get_code_generator.CodeGenerator):
        (TypeBindings.create_type_declaration_.PlainString.get_code_generator.CodeGenerator.register_use):
        (TypeBindings.create_type_declaration_.PlainString.get_code_generator):
        (TypeBindings.create_type_declaration_.PlainString.get_in_c_type_text.name):
        (TypeBindings.create_type_declaration_.PlainString):
        (TypeBindings.create_type_declaration_):
        (TypeBindings.create_type_declaration_.ClassBinding.get_code_generator):
        (TypeBindings.create_type_declaration_.ClassBinding.get_code_generator.CodeGenerator):
        (TypeBindings.create_type_declaration_.ClassBinding.get_code_generator.CodeGenerator.generate_type_builder):
        (AdHocTypeContextImpl.__init__):
        (AdHocTypeContextImpl.get_type_name_fix.NameFix):
        (AdHocTypeContextImpl.get_type_name_fix.NameFix.output_comment):
        (AdHocTypeContextImpl.get_type_name_fix):
        (AdHocTypeContextImpl):
        (AdHocTypeContextImpl.call_generate_type_builder):
        (generate_forward_declaration):
        (register_use):
        (get_in_c_type_text):
        (reduce_to_raw_type):
        (PlainObjectBinding.get_code_generator):
        (CodeGenerator.generate_type_builder.AdHocTypeContext.get_type_name_fix.NameFix):
        (CodeGenerator.generate_type_builder.AdHocTypeContext.get_type_name_fix.NameFix.output_comment):
        (CodeGenerator.generate_type_builder.AdHocTypeContext.get_type_name_fix):
        (CodeGenerator.generate_type_builder.AdHocTypeContext):
        (CodeGenerator.generate_type_builder.AdHocTypeContext.call_generate_type_builder):
        (CodeGenerator.generate_type_builder):
        (CodeGenerator):
        (CodeGenerator.register_use):
        (RawTypesBinding.get_code_generator):
        (RawTypesBinding.get_in_c_type_text):
        (RawTypesBinding):
        (RawTypesBinding.reduce_to_raw_type):
        (TypeData.__init__):
        (TypeData.get_json_type):
        (resolve_param_type):
        (Generator.go):
        (Generator.process_event.NoOpForwardListener):
        (Generator.process_event.NoOpForwardListener.add_type_data):
        (Generator.process_event.AdHocTypeContext.get_type_name_fix.NameFix):
        (Generator.process_event.AdHocTypeContext.get_type_name_fix.NameFix.output_comment):
        (Generator.process_event.AdHocTypeContext.get_type_name_fix):
        (Generator.process_event.AdHocTypeContext):
        (Generator.process_event.AdHocTypeContext.call_generate_type_builder):
        (Generator.process_event):
        (Generator.process_types.ForwardListener):
        (Generator.process_types.ForwardListener.add_type_data):
        (Generator.process_types.generate_all_domains_code.namespace_lazy_generator):
        (Generator.process_types.generate_all_domains_code):
        (Generator.process_types.call_type_builder):
        (Generator.process_types.generate_forward_callback):
        (Generator):
        (Generator.process_types):
        (flatten_list.fill_recursive):
        (flatten_list):

2011-12-22  Hans Muller  <hmuller@adobe.com>

        Onloadend event is not supported in XMLHttpRequest
        https://bugs.webkit.org/show_bug.cgi?id=40952

        Reviewed by Julien Chaffraix.

        Added support for the loadend ProgressEvent to XMLHttpRequest and XMLHttpRequestUpload.
        A new method, dispatchEventAndLoadEnd(), was added to XMLHttpRequestProgressEventThrottle
        and XMLHttpRequestUpload to foolproof the common case of dispatching a load, abort,
        or error event followed by a loadend event.

        Tests: http/tests/xmlhttprequest/onloadend-event-after-abort.html
               http/tests/xmlhttprequest/onloadend-event-after-error.html
               http/tests/xmlhttprequest/onloadend-event-after-load.html
               http/tests/xmlhttprequest/onloadend-event-after-sync-requests.html
               http/tests/xmlhttprequest/upload-onloadend-event-after-abort.html
               http/tests/xmlhttprequest/upload-onloadend-event-after-load.html
               http/tests/xmlhttprequest/upload-onloadend-event-after-sync-requests.html

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::callReadyStateChangeListener):
        (WebCore::XMLHttpRequest::abort):
        (WebCore::XMLHttpRequest::networkError):
        (WebCore::XMLHttpRequest::abortError):
        (WebCore::XMLHttpRequest::didSendData):
        * xml/XMLHttpRequest.h:
        * xml/XMLHttpRequest.idl:
        * xml/XMLHttpRequestProgressEventThrottle.cpp:
        (WebCore::XMLHttpRequestProgressEventThrottle::dispatchEventAndLoadEnd):
        * xml/XMLHttpRequestProgressEventThrottle.h:
        * xml/XMLHttpRequestUpload.cpp:
        (WebCore::XMLHttpRequestUpload::dispatchEventAndLoadEnd):
        * xml/XMLHttpRequestUpload.h:
        * xml/XMLHttpRequestUpload.idl:

2011-12-22  Mark Pilgrim  <pilgrim@chromium.org>

        [FileSystem API] Entry.getMetadata successCallback is required
        https://bugs.webkit.org/show_bug.cgi?id=69638

        Reviewed by Eric Seidel.

        Test: fast/filesystem/simple-required-arguments-getmetadata.html

        * fileapi/Entry.idl: remove [Optional] flag from successCallback parameter

2011-12-22  Ilya Tikhonovsky  <loislo@chromium.org>

        Unreviewed, rolling out r103405.
        http://trac.webkit.org/changeset/103405
        https://bugs.webkit.org/show_bug.cgi?id=74088

        it broke WorkerDevToolsSanityTest.InspectSharedWorker

        * inspector/Inspector.json:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::didParseSource):
        * inspector/InspectorDebuggerAgent.h:
        * inspector/front-end/DebuggerModel.js:
        (WebInspector.DebuggerModel.prototype._parsedScriptSource):
        (WebInspector.DebuggerDispatcher.prototype.scriptParsed):
        * inspector/front-end/RawSourceCode.js:
        (WebInspector.RawSourceCode):
        * inspector/front-end/Script.js:
        (WebInspector.Script):
        (WebInspector.Script.prototype.searchInContent):

2011-12-21  Darin Adler  <darin@apple.com>

        Make ~CSSParserSelector use Vector<OwnPtr>
        https://bugs.webkit.org/show_bug.cgi?id=73782

        Reviewed by Alexey Proskuryakov.

        * css/CSSParserValues.cpp:
        (WebCore::CSSParserSelector::~CSSParserSelector): Use Vector<OwnPtr>
        so we don't have to call leakPtr or deleteAllValues.

2011-12-21  Yosifumi Inoue  <yosin@chromium.org>

        [Forms] Selection change by type-ahead doesn't fire 'change' event
        https://bugs.webkit.org/show_bug.cgi?id=74590

        Reviewed by Kent Tamura.

        This patch changes when onchange event fired in select element for:
        1 Fire onchange event for type ahead selection.
        2 Don't fire onchange event for Enter key. We've already fired onchange event for cursor key
          and type ahead selection. So, onchange for Enter key is redundant. This behavior is 
          compatible to IE(9.0.8112.16421) and Opera(9.80) on Windows. FF(8.01) doesn't fire onchange
          by cursor key selection change and type ahead. FF requires Enter key press to fire onchange
          event.

        Test: fast/forms/select/menulist-type-ahead-find.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::menuListDefaultEventHandler): Don't fire onchange event for Entry key.
        (WebCore::HTMLSelectElement::typeAheadFind): Add DispatchChangeEvent when
        calling selectOption method.

2011-12-21  Darin Adler  <darin@apple.com>

        Tweak and comment some transform-related code
        https://bugs.webkit.org/show_bug.cgi?id=68670

        Reviewed by Daniel Bates.

        * platform/mac/ScrollbarThemeMac.mm:
        (WebCore::ScrollbarThemeMac::paint): Added a FIXME about additional overhead paid here
        when the scale factor is 2x.
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintBoxShadow): Added a FIXME about this check possibly
        being wrong, and also changed the local vairable name so the check need not stretch over
        multiple lines.

2011-12-21  Kent Tamura  <tkent@chromium.org>

        Change the item type of Document::m_formElementsWithState from Element*
        to HTMLFormControlElementWithState*.
        https://bugs.webkit.org/show_bug.cgi?id=74998

        Reviewed by Andreas Kling.

        No new tests. Just refactoring.

        * dom/Document.cpp:
        (WebCore::Document::formElementsState): Use HTMLFormControlElementWithState*.
        * dom/Document.h:
        (WebCore::Document::registerFormElementWithState): Change the argument type.
        (WebCore::Document::unregisterFormElementWithState): ditto.
        (WebCore::Document::formElements): Renamed from getFormElements().
        * dom/Element.h:
        Removed shouldSaveAndRestoreFormControlState(), saveFormControlState(),
        and restoreFormControlState() because they are not called for Element
        anymore.
        * html/HTMLFormControlElement.h:
        - Make formControlName() and formControlType() public.
         They are called from Document class.
        - Make shouldSaveAndRestoreFormControlState() public, and non-virtual.
         This is called from Document class, and no other classes override this.
        (WebCore::HTMLFormControlElementWithState::saveFormControlState):
        Moved from Element.
        (WebCore::HTMLFormControlElementWithState::restoreFormControlState): ditto.
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::updateCheckedRadioButtons):
        Use HTMLFormControlElementWithState* instead of Element*.

2011-12-21  Alexandre Elias  <aelias@google.com>

        [chromium] Always use border texels on platforms using pageScaleDelta
        https://bugs.webkit.org/show_bug.cgi?id=74226

        Reviewed by James Robinson.

        On platforms where the root layer can be zoomed in at draw time
        (pageScaleDelta), we want to turn on border texels in order for
        scaling to use GL_LINEAR instead of GL_NEAREST.

        No new tests. (Flag flip.)

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::prepareToUpdate):

2011-12-21  Dale Curtis  <dalecurtis@chromium.org>

        [chromium] Scale audio, video tags in MediaDocument to fit in window.
        https://bugs.webkit.org/show_bug.cgi?id=73948

        Add CSS max-height: 100%, max-width: 100% settings to the audio and
        video tags when in MediaDocuments.

        Reviewed by Eric Seidel.

        Test: media/video-scales-in-media-document.html

        * css/mediaControlsChromium.css:
        (audio:-webkit-full-page-media, video:-webkit-full-page-media):

2011-12-21  Konrad Piascik  <kpiascik@rim.com>

        Implement the JavaScriptCore bindings for eventListenerHandlerLocation
        https://bugs.webkit.org/show_bug.cgi?id=74313

        Reviewed by Eric Seidel.

        Implemented the JavaScriptCore binding to allow Web Inspector to
        show the function name and line number for an event listener in
        the Elements panel.

        Tested by opening up a page which has a registered event listener in Safari
        and checking if the Elements panel script name and line number are present
        and clickable.

        * ForwardingHeaders/runtime/Executable.h: Added.
        * ForwardingHeaders/wtf/SegmentedVector.h: Added.
        * bindings/js/ScriptEventListener.cpp:
        (WebCore::eventListenerHandlerLocation):

2011-12-21  Chris Guan  <chris.guan@torchmobile.com.cn>

        Upstream the Multipart feature in Blackberry port
        https://bugs.webkit.org/show_bug.cgi?id=73533

        Reviewed by Rob Buis.

        I refactored Multipart code of Blackberry port. Moved Multipart into
        Blackerry network layer and removed the dependence of std::string.

        Initial upstream, no new test cases.

        * platform/network/blackberry/DeferredData.cpp:
        (WebCore::DeferredData::deferMultipartHeaderReceived):
        (WebCore::DeferredData::processHeaders):
        (WebCore::DeferredData::processDeferredData):
        * platform/network/blackberry/DeferredData.h:
        (WebCore::DeferredData::hasDeferredData):
        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::notifyMultipartHeaderReceived):
        (WebCore::NetworkJob::handleNotifyMultipartHeaderReceived):
        (WebCore::NetworkJob::handleNotifyDataReceived):
        (WebCore::NetworkJob::handleNotifyClose):
        (WebCore::NetworkJob::startNewJobWithRequest):
        (WebCore::NetworkJob::sendResponseIfNeeded):
        (WebCore::NetworkJob::sendMultipartResponseIfNeeded):
        * platform/network/blackberry/NetworkJob.h:

2011-12-21  Eric Carlson  <eric.carlson@apple.com>

        Fix text track cue font size and colors
        https://bugs.webkit.org/show_bug.cgi?id=75051

        Reviewed by Darin Adler.

        No new tests, updated media/track/track-cue-rendering.html for the changes.

        * css/mediaControls.css:
        (video::-webkit-media-text-track-container): Match WebVTT spec.
        (video::-webkit-media-text-track-display): Ditto.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateSizes): Change font size from  4% of the
            video height to 5% as per the spec. Don't enforce a minimum size.

2011-12-21  Andreas Kling  <kling@webkit.org>

        Unreviewed, rolling out r103473.
        http://trac.webkit.org/changeset/103473
        https://bugs.webkit.org/show_bug.cgi?id=74991

        Overestimated my superpowers a bit here.

        * dom/Element.cpp:
        (WebCore::Element::attributeChanged):
        (WebCore::Element::insertedIntoDocument):
        (WebCore::Element::removedFromDocument):
        * dom/Element.h:
        (WebCore::Element::updateId):
        (WebCore::Element::willModifyAttribute):
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::setAttributes):
        * dom/Node.h:
        * html/HTMLAppletElement.cpp:
        (WebCore::HTMLAppletElement::parseMappedAttribute):
        (WebCore::HTMLAppletElement::insertedIntoDocument):
        (WebCore::HTMLAppletElement::removedFromDocument):
        * html/HTMLAppletElement.h:
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::parseMappedAttribute):
        (WebCore::HTMLEmbedElement::insertedIntoDocument):
        (WebCore::HTMLEmbedElement::removedFromDocument):
        * html/HTMLEmbedElement.h:
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::insertedIntoDocument):
        (WebCore::HTMLFormElement::removedFromDocument):
        (WebCore::HTMLFormElement::parseMappedAttribute):
        * html/HTMLFormElement.h:
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::parseMappedAttribute):
        (WebCore::HTMLImageElement::insertedIntoDocument):
        (WebCore::HTMLImageElement::removedFromDocument):
        * html/HTMLImageElement.h:
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parseMappedAttribute):
        (WebCore::HTMLObjectElement::insertedIntoDocument):
        (WebCore::HTMLObjectElement::removedFromDocument):
        (WebCore::HTMLObjectElement::updateDocNamedItem):
        (WebCore::HTMLObjectElement::formControlName):
        * html/HTMLObjectElement.h:
        * html/HTMLPlugInElement.h:

2011-12-21  Simon Fraser  <simon.fraser@apple.com>

        Clean up RenderLayer code that applies filters and transforms
        https://bugs.webkit.org/show_bug.cgi?id=75032
        
        This also fixes:
            Nested filters not working as expected
            https://bugs.webkit.org/show_bug.cgi?id=75029
            
            Filter region is computed incorrectly
            https://bugs.webkit.org/show_bug.cgi?id=74889

        Reviewed by James Robinson.

        RenderLayer::paintLayer() had this confusing behavior where,
        for transforms, it would change the CTM and then re-enter
        the method with a bit set. This was partially, but incorrectly
        copied for filters, so things like nested filters didn't work,
        and the case of a filter + transform was confused.
        
        Clean up by making RenderLayer::paintLayer() be a fairly simple
        method that handles the re-entering with bit set, for both
        transforms and filters. The bulk of the code in RenderLayer::paintLayer()
        is now in RenderLayer::paintLayerContents(). There is no
        behavior change for transforms.
        
        There are two fixes for filters. First, instead of just using
        the layer size to compute the bounds of the filtered region,
        use transparencyClipBox() which already takes descendents, box
        decorations etc into account (it's what we use for opacity).
        Some cleanup of the coordinate math, and separation from transforms
        code was also achieved.
        
        Second, make sure we toggle off the PaintLayerAppliedFilters bit
        (which was renamed for clarity) for sublayers, so that sublayers
        paint their filters correctly.

        Tests: css3/filters/filter-region.html
               css3/filters/nested-filters.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::updateFilterBackingStore):
        * rendering/RenderLayer.h:

2011-12-21  Per-Erik Brodin  <per-erik.brodin@ericsson.com>

        Discard event data not followed by an empty line before eof when parsing an event-stream
        https://bugs.webkit.org/show_bug.cgi?id=68833

        Reviewed by Alexey Proskuryakov.

        Test: http/tests/eventsource/eventsource-eof.html

        * page/EventSource.cpp:
        (WebCore::EventSource::didFinishLoading):
        (WebCore::EventSource::parseEventStreamLine):
        * page/EventSource.h:

2011-12-21  Andreas Kling  <kling@webkit.org>

        Automate elements' registration as document namedItem/extraNamedItem.
        <http://webkit.org/b/74991>

        Reviewed by Antti Koivisto.

        Remove caching of the "id" and "name" attributes on applet, embed, form,
        image and object elements. We were caching them to keep the document's
        map of named and "extra named" (named by id) item counts in sync.

        Instead, add a hook to Element::willModifyAttribute() that detects when
        the attributes are being changed and handle the registration/unregistration
        automatically if the element returns true for shouldRegisterAsNamedItem()
        or shouldRegisterAsExtraNamedItem() respectively.

        This shrinks the elements by two AtomicStrings (8 or 16 bytes) each.

        IFrame elements retain the old mechanism for now, as there are some subtle
        differences to how that's handled.

        * dom/Node.h:
        (WebCore::Node::hasName):
        (WebCore::Node::setHasName):

            Cache whether we have a "name" attribute or not (1 bit on Node.)
            This is done in order to minimize the overhead added to Element's
            insertedIntoDocument() and removeFromDocument().

        * dom/Element.cpp:
        (WebCore::Element::updateNamedItemRegistration):
        (WebCore::Element::updateExtraNamedItemRegistration):

            Added. Called when the "name" and "id" attributes are changed.
            Updates the document's named item maps accordingly.

        (WebCore::Element::insertedIntoDocument):
        (WebCore::Element::removedFromDocument):

            Make sure updateName() is called in addition to updateId() when applicable.

        (WebCore::Element::attributeChanged):

            Update the Node's has-name flag as appropriate.

        * dom/Element.h:
        (WebCore::Element::shouldRegisterAsNamedItem):
        (WebCore::Element::shouldRegisterAsExtraNamedItem):

            Added. If an element returns true for these, it will be automatically
            registered with the document when the name/id attribute changes.

        (WebCore::Element::updateId):
        (WebCore::Element::updateName):

            Register/unregister from the document's named item maps as appropriate.

        (WebCore::Element::willModifyAttribute):

            Add updateName() hook in addition to the existing updateId() hook.

        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::setAttributes):

            Make sure updateName() is called when we're cloning the attributes
            from another element.

        * html/HTMLAppletElement.cpp:
        (WebCore::HTMLAppletElement::parseMappedAttribute):
        * html/HTMLAppletElement.h:
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::parseMappedAttribute):
        (WebCore::HTMLEmbedElement::insertedIntoDocument):
        * html/HTMLEmbedElement.h:
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::insertedIntoDocument):
        (WebCore::HTMLFormElement::removedFromDocument):
        (WebCore::HTMLFormElement::parseMappedAttribute):
        * html/HTMLFormElement.h:
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::parseMappedAttribute):
        (WebCore::HTMLImageElement::insertedIntoDocument):
        * html/HTMLImageElement.h:
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parseMappedAttribute):
        (WebCore::HTMLObjectElement::insertedIntoDocument):
        (WebCore::HTMLObjectElement::removedFromDocument):
        * html/HTMLObjectElement.h:
        * html/HTMLPlugInElement.h:

            Remove duplicated code that is now handled by Element.

        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::updateDocNamedItem):
        (WebCore::HTMLObjectElement::formControlName):

            Use fastGetAttribute() since we no longer cache the name.

2011-12-21  Wyatt Carss  <wcarss@chromium.org>

        Reviewed by Ryosuke Niwa.

        strong and b should be font-weight: bold, not bolder
        https://bugs.webkit.org/show_bug.cgi?id=56400

        Test: fast/html/font-weight-bold-for-b-and-strong.html

        * css/html.css:
        (strong, b):

2011-12-21  Florin Malita  <fmalita@google.com>

        Improper handling of foreignobjects nested in svg groups
        https://bugs.webkit.org/show_bug.cgi?id=69762

        Reviewed by Nikolas Zimmermann.

        Tests: svg/foreignObject/repaint-rect-coordinates-expected.html
               svg/foreignObject/repaint-rect-coordinates.html

        * rendering/svg/RenderSVGForeignObject.h:
        (WebCore::RenderSVGForeignObject::objectBoundingBox):
        (WebCore::RenderSVGForeignObject::strokeBoundingBox):
        (WebCore::RenderSVGForeignObject::repaintRectInLocalCoordinates):
        Return local coordinates.

2011-12-21  Anders Carlsson  <andersca@apple.com>

        Make it possible to use contents layers in scrollbars
        https://bugs.webkit.org/show_bug.cgi?id=75044

        Reviewed by Simon Fraser.

        * page/ScrollingCoordinator.h:
        * page/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
        (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
        Don't pass const GraphicsLayers to these member functions; we need to be able to mutate them.

        * platform/ScrollView.cpp:
        (positionScrollbarLayer):
        If the scrollbar layer has a contents layer, just update its contents rect. Otherwise,
        invalidate the scrollbar layer.

2011-12-21  Anders Carlsson  <andersca@apple.com>

        Always reposition the scrollbar layers when the frame view size changes
        https://bugs.webkit.org/show_bug.cgi?id=75035

        Reviewed by Darin Adler.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
        Remove the layersChanged check and unconditionally call positionScrollbarLayers(). This only
        worked by accident before because we were recreating horizontal and vertical scrollbars on every call.

2011-12-21  Michał Pakuła vel Rutka  <m.pakula@samsung.com>

        [EFL] Add 'Select All' option to context menus in WebKit-EFL.
        https://bugs.webkit.org/show_bug.cgi?id=74920

        Reviewed by Eric Seidel.

        Enable 'Select All' option to context menus called on input fields in WebKit-EFL
        as it is enabled in GTK and QT ports.

        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::contextMenuItemSelected): Add 'Select All' option.
        (WebCore::ContextMenuController::populate): Append 'Select All' item.
        (WebCore::ContextMenuController::checkOrEnableIfNeeded): Enable 'Select All' option.
        * platform/ContextMenuItem.h: Add 'Select All' option.
        * platform/LocalizationStrategy.h: Add constructor for 'Select All' option.
        * platform/LocalizedStrings.h: Add constructor for 'Select All' option.

2011-12-20  Adam Klein  <adamk@chromium.org>

        Make calls to willModifyAttribute and attributeChanged symmetrical
        https://bugs.webkit.org/show_bug.cgi?id=74987

        Reviewed by Ryosuke Niwa.

        Previously, calls to Element::willModifyAttribute sometimes happened
        in one method while calls to Element::attributeChanged happened in
        another. This change makes them symmetrical for all the cases I know
        about: setAttribute, removeAttribute, setNamedItem, removeNamedItem.

        To accomplish this, NamedNodeMap::addAttribute, removeAttribute, and
        replaceAttribute have been reduced to their pure functionality of
        manipulating m_attributes, and their callers are left responsible for
        properly notifying the Element of the underlying changes.

        One other bit of refactoring was done: to simplify
        Element::setAttribute, it now dispatches to
        Element::removeAttributeInternal if the incoming value is null.

        No new tests, no change in behavior.

        * dom/Attribute.h:
        * dom/Element.cpp:
        (WebCore::Element::removeAttribute):
        (WebCore::Element::removeAttributeInternal): Added, sharing code
        between the two removeAttribute overloads.
        (WebCore::Element::setAttributeInternal):
        * dom/Element.h:
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::setNamedItem):
        (WebCore::NamedNodeMap::removeNamedItem):
        (WebCore::NamedNodeMap::addAttribute):
        (WebCore::NamedNodeMap::removeAttribute):
        (WebCore::NamedNodeMap::replaceAttribute):
        * svg/properties/SVGAnimatedPropertySynchronizer.h:
        Call Element::setAttribute unless the attribute is already present,
        and add a comment explaining why the code looks the way it does.

2011-12-21  Adrienne Walker  <enne@google.com>

        Unreviewed, rolling out r103408.
        http://trac.webkit.org/changeset/103408
        https://bugs.webkit.org/show_bug.cgi?id=75017

        WorkerDevToolsSanityTest.InspectSharedWorker is failing
        (Requested by loislo_ on #webkit).

        * inspector/front-end/CompilerSourceMapping.js:
        (WebInspector.ClosureCompilerSourceMapping):
        (WebInspector.ClosureCompilerSourceMapping.prototype.sources):
        (WebInspector.ClosureCompilerSourceMapping.prototype._parseMap):
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype.setCompilerSourceMapping):
        * inspector/front-end/utilities.js:
        (String.prototype.asParsedURL):

2011-12-21  Stephen White  <senorblanco@chromium.org>

        Fix CSS filters crash on zero-sized elements.
        https://bugs.webkit.org/show_bug.cgi?id=75020

        Reviewed by Dean Jackson.

        Test: css3/filters/filter-empty-element-crash.html

        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::inputContext):
        Protect against null ImageBuffer.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayer):
        Protect against null GraphicsContext.

2011-12-21  Anders Carlsson  <andersca@apple.com>

        Inform the scrolling coordinator when scrollbar layers come and go
        https://bugs.webkit.org/show_bug.cgi?id=75028

        Reviewed by Andreas Kling and Simon Fraser.

        * page/ScrollingCoordinator.h:
        * page/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinator::setFrameViewHorizontalScrollbarLayer):
        (WebCore::ScrollingCoordinator::setFrameViewVerticalScrollbarLayer):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):

2011-12-20  Dmitry Lomov  <dslomov@google.com>

        [Chromium] DatabaseTrackerChromium: iterating DatabaseSet races with Database disposal on worker thread 
        https://bugs.webkit.org/show_bug.cgi?id=74554

        Reviewed by David Levin.

        Covered by existing tests in fast/workers/storage.

        * storage/chromium/DatabaseTrackerChromium.cpp:
        (WebCore::NotifyDatabaseObserverOnCloseTask::create):
        (WebCore::NotifyDatabaseObserverOnCloseTask::performTask):
        (WebCore::NotifyDatabaseObserverOnCloseTask::isCleanupTask):
        (WebCore::NotifyDatabaseObserverOnCloseTask::NotifyDatabaseObserverOnCloseTask):
        (WebCore::DatabaseTracker::removeOpenDatabase):

2011-12-21  Eric Carlson  <eric.carlson@apple.com>

        HTMLMediaElement::configureTextTrackDisplay is unnecessary
        https://bugs.webkit.org/show_bug.cgi?id=74945

        Reviewed by Darin Adler.

        Nothing to test, just removing redundant code. Correct behavior tested by 
        media/track/track-cue-rendering.html and media/track/track-cue-nothing-to-render.html.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::configureTextTrackDisplay): Don't show and hide track, just call
            updateTextTrackDisplay and it will do the right thing.

2011-12-21  Anders Carlsson  <andersca@apple.com>

        ScrollingCoordinator functions should take FrameView objects
        https://bugs.webkit.org/show_bug.cgi?id=75023

        Reviewed by Sam Weinig.

        * page/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::syncFrameViewGeometry):
        * page/ScrollingCoordinator.h:
        * page/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinator::setFrameViewScrollLayer):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
        (WebCore::RenderLayerCompositor::updateRootLayerPosition):
        (WebCore::RenderLayerCompositor::ensureRootLayer):

2011-12-21  Anders Carlsson  <andersca@apple.com>

        Get rid of ScrollableAreaClient
        https://bugs.webkit.org/show_bug.cgi?id=75021

        Reviewed by Sam Weinig.

        The ScrollableAreaClient interface will just add an extra level of indirection between ScrollableArea and
        ScrollAnimator, which is unnecessary. Eventually I'd like to rename ScrollAnimator to something that better reflects
        all the different responsibilities it currently has.

        * WebCore.exp.in:
        * page/FrameView.cpp:
        (WebCore::FrameView::FrameView):
        * page/ScrollingCoordinator.cpp:
        * page/ScrollingCoordinator.h:
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::ScrollView):
        * platform/ScrollView.h:
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::ScrollableArea):
        * platform/ScrollableArea.h:
        * platform/ScrollableAreaClient.h: Removed.

2011-12-21  Anders Carlsson  <andersca@apple.com>

        Don't recreate scrollbar layers whenever the frame view size changes
        https://bugs.webkit.org/show_bug.cgi?id=75018

        Reviewed by Darin Adler and Simon Fraser.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):

2011-12-20  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [Extension API] refactor extension API build code, expose experimental APIs conditionally in chromium
        https://bugs.webkit.org/show_bug.cgi?id=74941

        Reviewed by Pavel Feldman.

        * WebCore.gypi:
        * inspector/front-end/ExtensionAPI.js:
        (buildPlatformExtensionAPI.platformExtensionAPI):
        (buildPlatformExtensionAPI):
        (buildExtensionAPIInjectedScript):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype._addExtensions):
        (WebInspector.ExtensionServer.prototype._addExtension):
        (window.addExtension):

2011-12-12  Pavel Podivilov  <podivilov@chromium.org>

        Web Inspector: fix source map url resolving.
        https://bugs.webkit.org/show_bug.cgi?id=74305

        Reviewed by Pavel Feldman.

        Also fix the bug with repeated source urls in mapping sections.

        * inspector/front-end/CompilerSourceMapping.js:
        (WebInspector.ClosureCompilerSourceMapping):
        (WebInspector.ClosureCompilerSourceMapping.prototype.sources):
        (WebInspector.ClosureCompilerSourceMapping.prototype._parseMap):
        (WebInspector.ClosureCompilerSourceMapping.prototype._resolveSourceMapURL):
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype.installCompilerSourceMapping):
        * inspector/front-end/utilities.js:
        (String.prototype.asParsedURL):

2011-12-21  Renata Hodovan  <reni@webkit.org>

        New renderer for SVGRectElement
        https://bugs.webkit.org/show_bug.cgi?id=65769

        Rubber-stamped by Zoltan Herczeg.

        Change the return value of RenderSVGRect::renderName() from RenderSVGPath to RenderSVGRect.
        This is a follow-up patch of r101517 to correct the DRT output.

        * rendering/svg/RenderSVGRect.h:
        (WebCore::RenderSVGRect::renderName):

2011-12-21  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: TabbedPane should use tabElement width measuring to layout tab elements when width is too small to fit them.
        https://bugs.webkit.org/show_bug.cgi?id=75005

        Reviewed by Pavel Feldman.

        Test: inspector/tabbed-pane-max-tab-width-calculation.html

        * inspector/front-end/NetworkItemView.js:
        (WebInspector.NetworkItemView.prototype.wasShown):
        * inspector/front-end/TabbedPane.js:
        (WebInspector.TabbedPane):
        (WebInspector.TabbedPane.prototype.appendTab):
        (WebInspector.TabbedPane.prototype._createTabElement):
        (WebInspector.TabbedPane.prototype.onResize):
        (WebInspector.TabbedPane.prototype._maybeMeasureAndUpdate):
        (WebInspector.TabbedPane.prototype._measureTab):
        (WebInspector.TabbedPane.prototype._updateWidths):
        (WebInspector.TabbedPane.prototype._calculateMaxWidth):
        (WebInspector.TabbedPaneTab):
        * inspector/front-end/inspector.css:
        (.tabbed-pane-header):
        (.tabbed-pane-header-tabs):
        (.tabbed-pane-header-tab):
        (.tabbed-pane-header-tab.measuring):
        (.tabbed-pane-header-tab.selected):
        * inspector/front-end/scriptsPanel.css:
        (#scripts-navigator-tabbed-pane .tabbed-pane-header-tabs):

2011-12-09  Pavel Podivilov  <podivilov@chromium.org>

        Web Inspector: auto detect source map url.
        https://bugs.webkit.org/show_bug.cgi?id=74088

        Reviewed by Pavel Feldman.

        Check to see if "X-SourceMap" HTTP response header was sent with script resource.
        Header value will be used as auto suggestion for source map url in UI.

        * inspector/Inspector.json:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::sourceMapURLForScript):
        (WebCore::InspectorDebuggerAgent::didParseSource):
        * inspector/InspectorDebuggerAgent.h:
        * inspector/front-end/DebuggerModel.js:
        (WebInspector.DebuggerModel.prototype._parsedScriptSource):
        (WebInspector.DebuggerDispatcher.prototype.scriptParsed):
        * inspector/front-end/RawSourceCode.js:
        (WebInspector.RawSourceCode):
        * inspector/front-end/Script.js:
        (WebInspector.Script):

2011-12-21  Pierre Rossi  <pierre.rossi@gmail.com>

        [Qt] Mobile theme refinements
        https://bugs.webkit.org/show_bug.cgi?id=74727

        Mostly to replace most of the rounded-rect-shaped
        controls with squircle-shaped ones.

        Reviewed by Kenneth Rohde Christiansen.

        No new tests needed.

        * platform/qt/RenderThemeQtMobile.cpp:
        (WebCore::drawControlBackground):
        (WebCore::painterScale):
        (WebCore::borderPen):
        (WebCore::StylePainterMobile::drawCheckableBackground): Toned down the gradient a bit.
        (WebCore::StylePainterMobile::findCheckBox):
        (WebCore::StylePainterMobile::drawRadio):
        (WebCore::StylePainterMobile::findRadio):
        (WebCore::StylePainterMobile::drawMultipleComboButton): increase spacing between the dots.
        (WebCore::StylePainterMobile::drawSimpleComboButton): attempt to improve readability.
        (WebCore::StylePainterMobile::getButtonImageSize):
        (WebCore::StylePainterMobile::findComboButton):
        (WebCore::StylePainterMobile::drawLineEdit):
        (WebCore::StylePainterMobile::findLineEdit):
        (WebCore::StylePainterMobile::drawPushButton):
        (WebCore::StylePainterMobile::findPushButton):
        (WebCore::StylePainterMobile::drawComboBox):
        (WebCore::StylePainterMobile::drawProgress):
        (WebCore::StylePainterMobile::drawSliderThumb):
        (WebCore::RenderThemeQtMobile::computeSizeBasedOnStyle):
        (WebCore::RenderThemeQtMobile::paintTextField):
        * platform/qt/RenderThemeQtMobile.h:

2011-12-21  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: CSSStyleSheet::cssRules can return 0 and InspectorStyleSheet dosen't check
        https://bugs.webkit.org/show_bug.cgi?id=74938

        Prevent security checks when retrieving a just-added CSS rule from the "inspector stylesheet".

        Reviewed by Pavel Feldman.

        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::addRule):

2011-12-21  Renata Hodovan  <reni@webkit.org>

        Fulfill FIXME in  HTMLLinkElement.h.
        https://bugs.webkit.org/show_bug.cgi?id=74278

        Rename isStyleSheetLoading() method to styleSheetIsLoading().
        This new one has the correct grammar.

        Reviewed by Darin Adler.

        No new tests because the functionality remains the same.

        * dom/Document.cpp:
        (WebCore::Document::recalcStyleSelector):
        * html/HTMLLinkElement.cpp:
        (WebCore::HTMLLinkElement::setDisabledState):
        (WebCore::HTMLLinkElement::styleSheetIsLoading):
        (WebCore::HTMLLinkElement::sheetLoaded):
        * html/HTMLLinkElement.h:

2011-12-21  Yosifumi Inoue  <yosin@chromium.org>

        [Forms] Add OVERRIDE to WebCore/html/*InputType.h
        https://bugs.webkit.org/show_bug.cgi?id=74996

        Reviewed by Kent Tamura.

        No new tests. Changes are just for compilation.

        * html/BaseButtonInputType.h: Add OVERRIDE.
        * html/BaseCheckableInputType.h: Add OVERRIDE.
        * html/BaseDateAndTimeInputType.h: Add OVERRIDE.
        * html/BaseTextInputType.h: Add OVERRIDE.
        * html/ButtonInputType.h: Add OVERRIDE.
        * html/CheckboxInputType.h: Add OVERRIDE.
        * html/ColorInputType.h: Add OVERRIDE.
        * html/DateInputType.h: Add OVERRIDE.
        * html/DateTimeInputType.h: Add OVERRIDE.
        * html/DateTimeLocalInputType.h: Add OVERRIDE.
        * html/EmailInputType.h: Add OVERRIDE.
        * html/FileInputType.h: Add OVERRIDE.
        * html/HiddenInputType.h: Add OVERRIDE.
        * html/ImageInputType.h: Add OVERRIDE.
        * html/IsIndexInputType.h: Add OVERRIDE.
        * html/MonthInputType.h: Add OVERRIDE.
        * html/NumberInputType.h: Add OVERRIDE.
        * html/PasswordInputType.h: Add OVERRIDE.
        * html/RadioInputType.h: Add OVERRIDE.
        * html/RangeInputType.h: Add OVERRIDE.
        * html/ResetInputType.h: Add OVERRIDE.
        * html/SearchInputType.h: Add OVERRIDE.
        * html/SubmitInputType.h: Add OVERRIDE.
        * html/TelephoneInputType.h: Add OVERRIDE.
        * html/TextFieldInputType.h: Add OVERRIDE.
        * html/TextInputType.h: Add OVERRIDE.
        * html/TimeInputType.h: Add OVERRIDE.
        * html/URLInputType.h: Add OVERRIDE.
        * html/WeekInputType.h: Add OVERRIDE.

2011-12-21  Matt Falkenhagen  <falken@chromium.org>

        Add all ICU languages to LocaleToScriptMappingDefault.cpp
        https://bugs.webkit.org/show_bug.cgi?id=67274

        Reviewed by Kent Tamura.

        This better mimics the behavior of LocaleToScriptMappingICU.cpp. ICU
        languages from ICU 3.6 are added. Also, script suffix in locale is
        handled, so for example "fa_Latn" is mapped to Latin while "fa" is mapped to
        Arabic.

        No new tests, there is no visible effect until default per-script fonts
        are added to non-ICU ports (alternatively, we could extend DumpRenderTree 
        to support overridePreference for per-script fonts as in bug 71110).

        * platform/text/LocaleToScriptMappingDefault.cpp:
        (WebCore::getScriptCode): add script name to script code mapping
        (WebCore::localeToScriptCodeForFontSelection): add ICU languages to map 

2011-12-20  Mary Wu  <mary.wu@torchmobile.com.cn>

        Upstream PageClientBlackBerry.h into WebCore/platform/blackberry
        https://bugs.webkit.org/show_bug.cgi?id=74169

        Reviewed by Daniel Bates.

        Initial upstream, no new tests.

        * platform/blackberry/PageClientBlackBerry.h: Added.

2011-12-20  Mary Wu  <mary.wu@torchmobile.com.cn>

        Upstream PlatformMouseEvent and LocalizedStrings into WebCore/platform/blackberry
        https://bugs.webkit.org/show_bug.cgi?id=74383

        Reviewed by Daniel Bates.

        Other Main Contributors:
        Rob Buis <rbuis@rim.com>
        Mike Fenton <mifenton@rim.com> 

        Initial upstream, no new tests.

        * PlatformBlackBerry.cmake: Modified to rename Localizations.cpp to LocalizedStringsBlackBerry.cpp
        * platform/blackberry/LocalizedStringsBlackBerry.cpp: Added.
        * platform/blackberry/PlatformMouseEventBlackBerry.cpp: Added.

2011-12-20  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGenerator should not use pointers for out params of RefPtr type.
        https://bugs.webkit.org/show_bug.cgi?id=69366

        Reviewed by Pavel Feldman.

        Generator fixed and all usages are changed manually.

        * inspector/CodeGeneratorInspector.py:
        (RawTypes.BaseType):
        (RawTypes.BaseType.get_output_argument_prefix):
        (RawTypes.Object.get_output_argument_prefix):
        (RawTypes.Array.get_output_argument_prefix):
        (RawTypes):
        (Generator.process_command):
        * inspector/InspectorApplicationCacheAgent.cpp:
        (WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
        (WebCore::InspectorApplicationCacheAgent::getApplicationCacheForFrame):
        * inspector/InspectorApplicationCacheAgent.h:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::clearFrontend):
        (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
        (WebCore::InspectorCSSAgent::getInlineStylesForNode):
        (WebCore::InspectorCSSAgent::getComputedStyleForNode):
        (WebCore::InspectorCSSAgent::getAllStyleSheets):
        (WebCore::InspectorCSSAgent::getStyleSheet):
        (WebCore::InspectorCSSAgent::setPropertyText):
        (WebCore::InspectorCSSAgent::toggleProperty):
        (WebCore::InspectorCSSAgent::setRuleSelector):
        (WebCore::InspectorCSSAgent::addRule):
        (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
        (WebCore::InspectorCSSAgent::stopSelectorProfiler):
        (WebCore::InspectorCSSAgent::stopSelectorProfilerImpl):
        * inspector/InspectorCSSAgent.h:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::getDocument):
        (WebCore::InspectorDOMAgent::querySelectorAll):
        (WebCore::InspectorDOMAgent::getEventListenersForNode):
        (WebCore::InspectorDOMAgent::getSearchResults):
        (WebCore::InspectorDOMAgent::resolveNode):
        (WebCore::InspectorDOMAgent::getAttributes):
        * inspector/InspectorDOMAgent.h:
        * inspector/InspectorDOMStorageAgent.cpp:
        (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
        * inspector/InspectorDOMStorageAgent.h:
        * inspector/InspectorDatabaseAgent.cpp:
        (WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
        * inspector/InspectorDatabaseAgent.h:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
        (WebCore::InspectorDebuggerAgent::setBreakpoint):
        (WebCore::InspectorDebuggerAgent::searchInContent):
        (WebCore::InspectorDebuggerAgent::setScriptSource):
        (WebCore::InspectorDebuggerAgent::getFunctionLocation):
        (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
        * inspector/InspectorDebuggerAgent.h:
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getDOMNodeCount):
        * inspector/InspectorMemoryAgent.h:
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::getCookies):
        (WebCore::InspectorPageAgent::getResourceTree):
        (WebCore::InspectorPageAgent::searchInResource):
        (WebCore::InspectorPageAgent::searchInResources):
        * inspector/InspectorPageAgent.h:
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::getProfileHeaders):
        (WebCore::InspectorProfilerAgent::getProfile):
        (WebCore::InspectorProfilerAgent::getObjectByHeapObjectId):
        * inspector/InspectorProfilerAgent.h:
        * inspector/InspectorRuntimeAgent.cpp:
        (WebCore::InspectorRuntimeAgent::evaluate):
        (WebCore::InspectorRuntimeAgent::callFunctionOn):
        (WebCore::InspectorRuntimeAgent::getProperties):
        * inspector/InspectorRuntimeAgent.h:

2011-12-20  Eric Penner  <epenner@google.com>

        [chromium] m_triggerIdlePaints not reset after a compositeAndReadback
        https://bugs.webkit.org/show_bug.cgi?id=74974

        Reviewed by James Robinson.

        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::compositeAndReadback):

2011-12-20  David Levin  <levin@chromium.org>

        Move misplaced assert in SQLiteStatement.cpp
        https://bugs.webkit.org/show_bug.cgi?id=74975

        Reviewed by Dmitry Titov.

        The test is coming with bug 74666.

        * platform/sql/SQLiteStatement.cpp:
        (WebCore::SQLiteStatement::step): If a database was interrupted
        before the prepare method was called, then m_isPrepared will be
        false, so I moved the assert to be after the check for interrupted.

2011-12-20  Eric Carlson  <eric.carlson@apple.com>

        WebVTT cues sometimes render when they should not
        https://bugs.webkit.org/show_bug.cgi?id=74873

        Not reviewed: update Chromium to pass new test added in r103371.

        * html/shadow/MediaControlRootElementChromium.cpp:
        (WebCore::MediaControlRootElementChromium::updateTextTrackDisplay):

2011-12-20  Andreas Kling  <kling@webkit.org>

        HTMLOptionsCollection: Remove incorrect FIXME about having a base class.
        <http://webkit.org/b/74973>

        Reviewed by Alexey Proskuryakov.

        HTMLOptionsCollection should indeed inherit from HTMLCollection according to
        current HTML5, so remove the comment saying we should change that.

        Spec: http://www.whatwg.org/specs/web-apps/current-work/#htmloptionscollection

        * html/HTMLOptionsCollection.idl:

2011-12-20  Florin Malita  <fmalita@google.com>

        td element ignores zero width/height input element
        https://bugs.webkit.org/show_bug.cgi?id=74636

        Reviewed by Kent Tamura.

        Test: fast/forms/input-zero-width.html

        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::computePreferredLogicalWidths):
        Relax the attribute test to allow setting widths == 0.

2011-12-20  Adam Klein  <adamk@chromium.org>

        Avoid unnecessary work when removing attributes from an element
        https://bugs.webkit.org/show_bug.cgi?id=74953

        Reviewed by Ryosuke Niwa.

        Various codepaths in Element and NamedNodeMap repeatedly search
        through the list of attributes during a single operation. To avoid
        this, I've added new getters to NamedNodeMap that return indices
        rather than Attribute*s (they return WTF::notFound if no match is
        found). These new methods are now used during removeAttribute
        operations, as well as setAttribute and NamedNodeMap::setNamedItem
        (along with a new replaceAttribute helper method).

        The other optimization here involves the creation/destruction
        of never-references Attr nodes. This is now avoided by calling
        NamedNodeMap::removeAttribute directly instead of going through
        NamedNodeMap::removeNamedItem.

        As a cleanup after the above changes, the ExceptionCode argument is
        gone from Element::removeAttribute and friends (it was never set
        previously). The bulk of the files mentioned below are simply updating
        callers to these methods.

        No new tests, no change in behavior expected.

        * dom/DatasetDOMStringMap.cpp:
        (WebCore::DatasetDOMStringMap::deleteItem):
        * dom/Element.cpp:
        (WebCore::Element::removeAttribute):
        (WebCore::Element::setBooleanAttribute):
        (WebCore::Element::removeAttributeNS):
        (WebCore::Element::setAttribute):
        (WebCore::Element::setAttributeInternal):
        * dom/Element.h:
        * dom/Element.idl:
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::setNamedItem):
        (WebCore::NamedNodeMap::removeNamedItem):
        (WebCore::NamedNodeMap::getAttributeItemIndexSlowCase):
        (WebCore::NamedNodeMap::replaceAttribute):
        (WebCore::NamedNodeMap::removeAttribute):
        * dom/NamedNodeMap.h:
        (WebCore::NamedNodeMap::getAttributeItem):
        (WebCore::NamedNodeMap::getAttributeItemIndex):
        (WebCore::NamedNodeMap::removeAttribute):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::cloneHierarchyUnderNewBlock):
        * editing/SplitElementCommand.cpp:
        (WebCore::SplitElementCommand::executeApply):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::setContentEditable):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setType):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::setAttributesAsText):
        (WebCore::InspectorDOMAgent::removeAttribute):
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::transferUseAttributesToReplacedElement):

2011-12-20  Eric Carlson  <eric.carlson@apple.com>

        WebVTT cues sometimes render when they should not
        https://bugs.webkit.org/show_bug.cgi?id=74873

        Reviewed by Darin Adler.

        Test: media/track/track-cue-nothing-to-render.html

        * html/shadow/MediaControlRootElement.cpp:
        (WebCore::MediaControlRootElement::updateTextTrackDisplay): Don't return early if the current
            cue is empty so the previous cue is removed.

2011-12-20  Ami Fischman  <fischman@chromium.org>

        Don't crash on the second time VideoLayerChromium::createCCVideoLayer() is called
        https://bugs.webkit.org/show_bug.cgi?id=74963

        Reviewed by James Robinson.

        Manually tested by force-dropping the layer tree in CCLayerTreeHost::didBecomeInvisibleOnImplThread().
        Crashed before the fix, doesn't crash after.

        * platform/graphics/chromium/VideoLayerChromium.cpp:
        (WebCore::VideoLayerChromium::VideoLayerChromium):
        (WebCore::VideoLayerChromium::~VideoLayerChromium):
        (WebCore::VideoLayerChromium::createCCLayerImpl):
        * platform/graphics/chromium/VideoLayerChromium.h:

2011-12-20  Scott Graham  <scottmg@chromium.org>

        wouldTaintOrigin m_cleanURLs cache grows very large when data urls used
        https://bugs.webkit.org/show_bug.cgi?id=74957

        Reviewed by Kenneth Russell.

        No new tests, but memory usage of CanvasRenderingContext::m_cleanURLs
        is reduced.

        * html/canvas/CanvasRenderingContext.cpp:
        (WebCore::CanvasRenderingContext::wouldTaintOrigin):

2011-12-20  Greg Billock  <gbillock@google.com>

        Change adoptPtr(new ...) to ...::create in Page.cpp
        https://bugs.webkit.org/show_bug.cgi?id=74457

        Reviewed by Darin Adler.

        * dom/DeviceMotionController.cpp:
        (WebCore::DeviceMotionController::create):
        * dom/DeviceMotionController.h:
        * dom/DeviceOrientationController.cpp:
        (WebCore::DeviceOrientationController::create):
        * dom/DeviceOrientationController.h:
        * editing/FrameSelection.cpp:
        (WebCore::DragCaretController::create):
        * editing/FrameSelection.h:
        * history/BackForwardController.cpp:
        (WebCore::BackForwardController::create):
        * history/BackForwardController.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::create):
        * inspector/InspectorController.h:
        * loader/ProgressTracker.cpp:
        (WebCore::ProgressTracker::create):
        * loader/ProgressTracker.h:
        * notifications/NotificationController.cpp:
        (WebCore::NotificationController::create):
        * notifications/NotificationController.h:
        * page/Chrome.cpp:
        (WebCore::Chrome::create):
        * page/Chrome.h:
        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::create):
        * page/ContextMenuController.h:
        * page/DragController.cpp:
        (WebCore::DragController::create):
        * page/DragController.h:
        * page/FocusController.cpp:
        (WebCore::FocusController::create):
        * page/FocusController.h:
        * page/GeolocationController.cpp:
        (WebCore::GeolocationController::create):
        * page/GeolocationController.h:
        * page/Page.cpp:
        (WebCore::Page::Page):
        (WebCore::Page::initGroup):
        (WebCore::Page::speechInput):
        * page/PageGroup.cpp:
        (WebCore::PageGroup::create):
        * page/PageGroup.h:
        * page/Settings.cpp:
        (WebCore::Settings::create):
        * page/Settings.h:
        * page/SpeechInput.cpp:
        (WebCore::SpeechInput::create):
        * page/SpeechInput.h:

2011-12-20  Ryosuke Niwa  <rniwa@webkit.org>

        Mac build fix after r103354.

        * platform/mac/ScrollAnimatorMac.mm:
        (systemUptime):

2011-12-20  Anders Carlsson  <andersca@apple.com>

        Add ScrollableArea::contentsResized and have it call the scroll animator
        https://bugs.webkit.org/show_bug.cgi?id=74966

        Reviewed by Sam Weinig.

        * WebCore.exp.in:
        * page/FrameView.cpp:
        (WebCore::FrameView::setContentsSize):
        (WebCore::FrameView::contentsResized):
        * page/FrameView.h:
        * platform/ScrollView.h:
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::contentsResized):
        * platform/ScrollableArea.h:

2011-12-20  Simon Fraser  <simon.fraser@apple.com>

        requestAnimationFrame on Mac fires at 60fps even when drawing is much slower
        https://bugs.webkit.org/show_bug.cgi?id=74964

        Reviewed by Chris Marrin.
        
        On Mac requestAnimationFrame uses a CVDisplayLink, sending notifications
        from the display link thread to the main thread that the display link fired.
        However, there was no throttling on these notifications; if processing an event
        took a long time, notifications would pile up, and then get handled after
        the slow event completed.
        
        This would cause JS animations which animate by changing style to report
        60fps when their display framerate was much lower.
        
        Fix by throttling notifications from the display link thread to the web
        thread; if the previous event hasn't completed yet, don't send any new ones.

        No new tests, since testing this runtime behavior is hard.

        * platform/graphics/DisplayRefreshMonitor.cpp:
        (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
        (WebCore::DisplayRefreshMonitor::refreshDisplayOnMainThread):
        (WebCore::DisplayRefreshMonitor::notifyClients): Factored out of the
        static refreshDisplayOnMainThread method so we can use 'this'.
        * platform/graphics/DisplayRefreshMonitor.h:
        * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
        (WebCore::DisplayRefreshMonitor::displayLinkFired):

2011-12-20  Greg Billock  <gbillock@google.com>

        [Coverity] Fix leak in V8HTMLDocument
        https://bugs.webkit.org/show_bug.cgi?id=74943

        Reviewed by Adam Barth.

        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::V8HTMLDocument::openCallback):

2011-12-20  Sailesh Agrawal <sail@chromium.org>

        Merge ScrollAnimatorChromiumMac.mm back to ScrollAnimatorMac
        https://bugs.webkit.org/show_bug.cgi?id=61144

        Reviewed by Beth Dakin.

        At a high level the main changes are:
            - replace #ifdefs in ScrollAnimatorMac and ScrollbarThemeMac with run time checks
            - delete duplicate code in ScrollbarThemeChromiumMac. Keep the paint code since it does tickmarks and SKIA stuff.
            - delete ScrollAnimatorChromiumMac since ScrollAnimatorMac does the exact same thing
            - delete ScrollbarOverlayUtilitiesChromiumMac since NSScrollerImpDetails does the same thing

        No new tests. Just refactoring.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/chromium/ScrollAnimatorChromiumMac.h: Removed.
        * platform/chromium/ScrollAnimatorChromiumMac.mm: Removed.
        * platform/chromium/ScrollbarOverlayUtilitiesChromiumMac.h: Removed.
        * platform/chromium/ScrollbarOverlayUtilitiesChromiumMac.mm: Removed.
        * platform/chromium/ScrollbarThemeChromiumMac.h:
        * platform/chromium/ScrollbarThemeChromiumMac.mm:
        (WebCore::ScrollbarThemeChromiumMac::ScrollbarThemeChromiumMac):
        (WebCore::scrollbarPainterPaintTrack):
        (WebCore::ScrollbarThemeChromiumMac::paint):
        * platform/mac/EmptyProtocolDefinitions.h:
        * platform/mac/NSScrollerImpDetails.h:
        (WebCore::isScrollbarOverlayAPIAvailable):
        * platform/mac/NSScrollerImpDetails.mm: Added.
        (WebCore::isScrollbarOverlayAPIAvailable):
        (WebCore::recommendedScrollerStyle):
        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (scrollbarPainterForScrollbar):
        (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
        (WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):
        (WebCore::ScrollAnimatorMac::notifyPositionChanged):
        (WebCore::ScrollAnimatorMac::contentAreaWillPaint):
        (WebCore::ScrollAnimatorMac::mouseEnteredContentArea):
        (WebCore::ScrollAnimatorMac::mouseExitedContentArea):
        (WebCore::ScrollAnimatorMac::mouseMovedInContentArea):
        (WebCore::ScrollAnimatorMac::mouseEnteredScrollbar):
        (WebCore::ScrollAnimatorMac::mouseExitedScrollbar):
        (WebCore::ScrollAnimatorMac::willStartLiveResize):
        (WebCore::ScrollAnimatorMac::contentsResized):
        (WebCore::ScrollAnimatorMac::willEndLiveResize):
        (WebCore::ScrollAnimatorMac::contentAreaDidShow):
        (WebCore::ScrollAnimatorMac::contentAreaDidHide):
        (WebCore::ScrollAnimatorMac::didBeginScrollGesture):
        (WebCore::ScrollAnimatorMac::didEndScrollGesture):
        (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
        (WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
        (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
        (WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):
        (WebCore::ScrollAnimatorMac::cancelAnimations):
        (WebCore::ScrollAnimatorMac::setIsActive):
        (WebCore::ScrollAnimatorMac::updateScrollerStyle):
        (WebCore::ScrollAnimatorMac::initialScrollbarPaintTimerFired):
        * platform/mac/ScrollElasticityController.h:
        * platform/mac/ScrollbarThemeMac.h:
        * platform/mac/ScrollbarThemeMac.mm:
        (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
        (+[WebScrollbarPrefsObserver behaviorPrefsChanged:]):
        (WebCore::updateArrowPlacement):
        (WebCore::ScrollbarThemeMac::registerScrollbar):
        (WebCore::ScrollbarThemeMac::setIsCurrentlyDrawingIntoLayer):
        (WebCore::ScrollbarThemeMac::ScrollbarThemeMac):
        (WebCore::ScrollbarThemeMac::scrollbarThickness):
        (WebCore::ScrollbarThemeMac::usesOverlayScrollbars):
        (WebCore::ScrollbarThemeMac::updateScrollbarOverlayStyle):
        (WebCore::ScrollbarThemeMac::hasButtons):
        (WebCore::ScrollbarThemeMac::hasThumb):
        (WebCore::ScrollbarThemeMac::minimumThumbLength):
        (WebCore::ScrollbarThemeMac::scrollbarPartToHIPressedState):
        (WebCore::ScrollbarThemeMac::updateEnabledState):
        (WebCore::scrollbarPainterPaint):
        (WebCore::ScrollbarThemeMac::paint):

2011-12-20  Tony Chang  <tony@chromium.org>

        sizeof(RenderStyle) is 64 instead of 56 on Windows (x86)
        https://bugs.webkit.org/show_bug.cgi?id=74876

        Reviewed by Ryosuke Niwa.

        Move bit fields into a new class and use unsigned for all types so we
        align at 4 byte bounds. Also move the initializers into the header
        file (has the side benefit of not needing to duplicate the initializers
        in 3 places).

        Enable the compile assert on Windows.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::RenderStyle):
        * rendering/style/RenderStyle.h:
        (WebCore::RenderStyleBitfields::affectedByUncommonAttributeSelectors):
        (WebCore::RenderStyleBitfields::setAffectedByUncommonAttributeSelectors):
        (WebCore::RenderStyleBitfields::unique):
        (WebCore::RenderStyleBitfields::setUnique):
        (WebCore::RenderStyleBitfields::affectedByEmpty):
        (WebCore::RenderStyleBitfields::emptyState):
        (WebCore::RenderStyleBitfields::setEmptyState):
        (WebCore::RenderStyleBitfields::childrenAffectedByFirstChildRules):
        (WebCore::RenderStyleBitfields::setChildrenAffectedByFirstChildRules):
        (WebCore::RenderStyleBitfields::childrenAffectedByLastChildRules):
        (WebCore::RenderStyleBitfields::setChildrenAffectedByLastChildRules):
        (WebCore::RenderStyleBitfields::childrenAffectedByDirectAdjacentRules):
        (WebCore::RenderStyleBitfields::setChildrenAffectedByDirectAdjacentRules):
        (WebCore::RenderStyleBitfields::childrenAffectedByForwardPositionalRules):
        (WebCore::RenderStyleBitfields::setChildrenAffectedByForwardPositionalRules):
        (WebCore::RenderStyleBitfields::childrenAffectedByBackwardPositionalRules):
        (WebCore::RenderStyleBitfields::setChildrenAffectedByBackwardPositionalRules):
        (WebCore::RenderStyleBitfields::firstChildState):
        (WebCore::RenderStyleBitfields::setFirstChildState):
        (WebCore::RenderStyleBitfields::lastChildState):
        (WebCore::RenderStyleBitfields::setLastChildState):
        (WebCore::RenderStyleBitfields::childIndex):
        (WebCore::RenderStyleBitfields::setChildIndex):
        (WebCore::RenderStyleBitfields::setHasExplicitlyInheritedProperties):
        (WebCore::RenderStyleBitfields::hasExplicitlyInheritedProperties):

2011-12-20  Tony Chang  <tony@chromium.org>

        [chromium] enable WPO for WebCore libs in official builds
        https://bugs.webkit.org/show_bug.cgi?id=74947

        Reviewed by James Robinson.

        Also move enable_wexit_time_destructors to the top level variables
        so we don't have to add it to all targets.

        * WebCore.gyp/WebCore.gyp:

2011-12-20  Anders Carlsson  <andersca@apple.com>

        Add ScrollableArea wrappers for a bunch of ScrollAnimator member functions
        https://bugs.webkit.org/show_bug.cgi?id=74951

        Reviewed by Sam Weinig.

        * WebCore.exp.in:
        * page/EventHandler.cpp:
        (WebCore::EventHandler::mouseMoved):
        (WebCore::EventHandler::updateMouseEventTargetNode):
        * page/FocusController.cpp:
        (WebCore::FocusController::setActive):
        * page/FrameView.cpp:
        (WebCore::FrameView::didMoveOnscreen):
        (WebCore::FrameView::willMoveOffscreen):
        (WebCore::FrameView::notifyPageThatContentAreaWillPaint):
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::contentAreaWillPaint):
        (WebCore::ScrollableArea::mouseEnteredContentArea):
        (WebCore::ScrollableArea::mouseExitedContentArea):
        (WebCore::ScrollableArea::mouseMovedInContentArea):
        (WebCore::ScrollableArea::mouseEnteredScrollbar):
        (WebCore::ScrollableArea::mouseExitedScrollbar):
        (WebCore::ScrollableArea::contentAreaDidShow):
        (WebCore::ScrollableArea::contentAreaDidHide):
        * platform/ScrollableArea.h:
        * platform/ScrollableAreaClient.h:
        * platform/Scrollbar.cpp:
        (WebCore::Scrollbar::mouseEntered):
        (WebCore::Scrollbar::mouseExited):
        (WebCore::Scrollbar::mouseUp):

2011-12-20  Jarred Nicholls  <jarred@sencha.com>

        Perform case insensitive matching on MIME types in XHR
        https://bugs.webkit.org/show_bug.cgi?id=74800

        Perform case insensitive matching on responseMIMEType() in didReceiveData().
        Workaround case sensitive matching by DOMImplementation::isXMLMIMEType() in responseIsXML().

        Reviewed by Darin Adler.

        Tests: http/tests/xmlhttprequest/xmlhttprequest-mimetype-mixed-case.html
               http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-mixed-case.html

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::didReceiveData):
        (WebCore::XMLHttpRequest::responseIsXML):

2011-12-20  Adam Klein  <adamk@chromium.org>

        Remove no-op DOMAttr* event dispatch methods from Element
        https://bugs.webkit.org/show_bug.cgi?id=74946

        Reviewed by Darin Adler.

        The removed methods had their bodies #if 0'd out, so this should have
        no effect on anything.

        * dom/Element.cpp:
        * dom/Element.h:
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::addAttribute):
        (WebCore::NamedNodeMap::removeAttribute):

2011-12-20  Anders Carlsson  <andersca@apple.com>

        ScrollableArea should have an optional ScrollableAreaClient
        https://bugs.webkit.org/show_bug.cgi?id=74949

        Reviewed by Sam Weinig.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * page/FrameView.cpp:
        (WebCore::scrollableAreaClient):
        (WebCore::FrameView::FrameView):
        * page/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::scrollableAreaClientForFrame):
        * page/ScrollingCoordinator.h:
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::ScrollView):
        * platform/ScrollView.h:
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::ScrollableArea):
        * platform/ScrollableArea.h:
        * platform/ScrollableAreaClient.h: Added.
        (WebCore::ScrollableAreaClient::~ScrollableAreaClient):
        (WebCore::ScrollableAreaClient::ScrollableAreaClient):

2011-12-19  Adam Klein  <adamk@chromium.org>

        Rename Element::setAttributeMap to parserSetAttributeMap and limit its use to the parser
        https://bugs.webkit.org/show_bug.cgi?id=74885

        Reviewed by Ryosuke Niwa.

        Element::setAttributeMap is currently used by the parser in cases
        where a NamedNodeMap of attributes has already been allocated and
        transfers ownership to the Element. Other uses in WebCore don't have
        this ownership-transfer requirement, and so are more clearly expressed
        with normal setAttribute calls.

        Eliminating non-parser callers allows the code to make safe
        assumptions about the state of the Element it's called on: no need to
        worry about, e.g., updating the id in the document's cache or
        enqueueing mutation records.

        No new tests, no change in behavior expected.

        * dom/Element.cpp:
        (WebCore::Element::parserSetAttributeMap): Renamed, added assertions
        to make sure it's not called unexpectedly, update comments.
        * dom/Element.h:
        * html/HTMLViewSourceDocument.cpp: Use setAttribute instead of setAttributeMap.
        (WebCore::HTMLViewSourceDocument::createContainingTable):
        (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
        (WebCore::HTMLViewSourceDocument::addLine):
        (WebCore::HTMLViewSourceDocument::addBase):
        (WebCore::HTMLViewSourceDocument::addLink):
        * html/parser/HTMLConstructionSite.cpp: Reference new name.
        (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
        (WebCore::HTMLConstructionSite::insertScriptElement):
        (WebCore::HTMLConstructionSite::createElement):
        (WebCore::HTMLConstructionSite::createHTMLElement):
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::constructTreeFromToken): Use setAttribute instead of setAttributeMap.
        Also get rid of an unnecessary String -> AtomicString conversion.

2011-12-20  Iain Merrick  <husky@google.com>

        Remove unused parameter from RenderLayerCompositor::rebuildCompositingLayerTree
        https://bugs.webkit.org/show_bug.cgi?id=74936

        Reviewed by Simon Fraser.

        Pure refactoring, no change in functionality.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateCompositingLayers):
        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
        * rendering/RenderLayerCompositor.h:

2011-12-20  Tony Chang  <tony@chromium.org>

        RenderStyle::InheritedFlags and RenderStyle::NonInheritedFlags members should be 4 byte aligned
        https://bugs.webkit.org/show_bug.cgi?id=74880

        Reviewed by Ryosuke Niwa.

        Use unsigned for all types so we get 4 byte boundaries (unsigned char
        means we try to align to 1 byte boundaries) and add setters and
        getters for bool members.

        Move some members around to make sure we're aligned to 4 byte boundaries.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::copyNonInheritedFrom):
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::NonInheritedFlags::affectedByHover):
        (WebCore::InheritedFlags::NonInheritedFlags::setAffectedByHover):
        (WebCore::InheritedFlags::NonInheritedFlags::affectedByActive):
        (WebCore::InheritedFlags::NonInheritedFlags::setAffectedByActive):
        (WebCore::InheritedFlags::NonInheritedFlags::affectedByDrag):
        (WebCore::InheritedFlags::NonInheritedFlags::setAffectedByDrag):
        (WebCore::InheritedFlags::NonInheritedFlags::isLink):
        (WebCore::InheritedFlags::NonInheritedFlags::setIsLink):
        (WebCore::InheritedFlags::setBitDefaults):
        (WebCore::InheritedFlags::affectedByHoverRules):
        (WebCore::InheritedFlags::affectedByActiveRules):
        (WebCore::InheritedFlags::affectedByDragRules):
        (WebCore::InheritedFlags::setAffectedByHoverRules):
        (WebCore::InheritedFlags::setAffectedByActiveRules):
        (WebCore::InheritedFlags::setAffectedByDragRules):
        (WebCore::InheritedFlags::isLink):
        (WebCore::InheritedFlags::setIsLink):

2011-12-20  Julien Chaffraix  <jchaffraix@webkit.org>

        Regression(99212): table rows get incorrect height after changing some cells' height
        https://bugs.webkit.org/show_bug.cgi?id=74303

        Reviewed by Darin Adler.

        Tests: fast/table/resize-table-binding-cell.html
               fast/table/resize-table-cell.html
               fast/table/resize-table-row.html

        r99212 wrongly implemented the row's logicalHeight recalculation.
        The original code would use recalcCells which would properly recalculate a
        row logicalHeight by iterating over the table's cells but throwing out the
        existing result.

        Our approach is just to recompute our row's logicalHeight and leave the
        rest of the section untouched.

        * rendering/RenderTableSection.cpp:
        (WebCore::updateLogicalHeightForCell):
        Added this new helper function to update the RowStruct logicalHeight during
        |addCell| and |rowLogicalHeightChanged|.

        (WebCore::RenderTableSection::addCell):
        Replaced the old code with a call to updateLogicalHeightForCell.
        (WebCore::RenderTableSection::rowLogicalHeightChanged):
        Added a call to updateLogicalHeightForCell for each cells.

2011-12-20  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r103322.
        http://trac.webkit.org/changeset/103322
        https://bugs.webkit.org/show_bug.cgi?id=74927

        seven inspector's tests are crashing on qt (Requested by
        loislo on #webkit).

        * inspector/CodeGeneratorInspector.py:
        (RawTypes.BaseType.is_event_param_check_optional):
        (RawTypes.Object.is_event_param_check_optional):
        (RawTypes.Array.is_event_param_check_optional):
        (RawTypes):
        (Generator.process_command):
        * inspector/InspectorApplicationCacheAgent.cpp:
        (WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
        (WebCore::InspectorApplicationCacheAgent::getApplicationCacheForFrame):
        * inspector/InspectorApplicationCacheAgent.h:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::clearFrontend):
        (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
        (WebCore::InspectorCSSAgent::getInlineStylesForNode):
        (WebCore::InspectorCSSAgent::getComputedStyleForNode):
        (WebCore::InspectorCSSAgent::getAllStyleSheets):
        (WebCore::InspectorCSSAgent::getStyleSheet):
        (WebCore::InspectorCSSAgent::setPropertyText):
        (WebCore::InspectorCSSAgent::toggleProperty):
        (WebCore::InspectorCSSAgent::setRuleSelector):
        (WebCore::InspectorCSSAgent::addRule):
        (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
        (WebCore::InspectorCSSAgent::stopSelectorProfiler):
        * inspector/InspectorCSSAgent.h:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::getDocument):
        (WebCore::InspectorDOMAgent::querySelectorAll):
        (WebCore::InspectorDOMAgent::getEventListenersForNode):
        (WebCore::InspectorDOMAgent::getSearchResults):
        (WebCore::InspectorDOMAgent::resolveNode):
        (WebCore::InspectorDOMAgent::getAttributes):
        * inspector/InspectorDOMAgent.h:
        * inspector/InspectorDOMStorageAgent.cpp:
        (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
        * inspector/InspectorDOMStorageAgent.h:
        * inspector/InspectorDatabaseAgent.cpp:
        (WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
        * inspector/InspectorDatabaseAgent.h:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
        (WebCore::InspectorDebuggerAgent::setBreakpoint):
        (WebCore::InspectorDebuggerAgent::searchInContent):
        (WebCore::InspectorDebuggerAgent::setScriptSource):
        (WebCore::InspectorDebuggerAgent::getFunctionLocation):
        (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
        * inspector/InspectorDebuggerAgent.h:
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getDOMNodeCount):
        * inspector/InspectorMemoryAgent.h:
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::getCookies):
        (WebCore::InspectorPageAgent::getResourceTree):
        (WebCore::InspectorPageAgent::searchInResource):
        (WebCore::InspectorPageAgent::searchInResources):
        * inspector/InspectorPageAgent.h:
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::getProfileHeaders):
        (WebCore::InspectorProfilerAgent::getProfile):
        (WebCore::InspectorProfilerAgent::getObjectByHeapObjectId):
        * inspector/InspectorProfilerAgent.h:
        * inspector/InspectorRuntimeAgent.cpp:
        (WebCore::InspectorRuntimeAgent::evaluate):
        (WebCore::InspectorRuntimeAgent::callFunctionOn):
        (WebCore::InspectorRuntimeAgent::getProperties):
        * inspector/InspectorRuntimeAgent.h:

2011-12-19  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [Extensions API] allow setting extension API per extension security origin
        https://bugs.webkit.org/show_bug.cgi?id=74868

        Reviewed by Pavel Feldman.

        This replaces InspectorExtensionAPI string within InspectorFrontendHost with a map by extension
        security origin, so that we can have APIs customized by extension (in particular, this is needed
        to expose experimental APIs only to certain extensions).

        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::didClearWindowObjectInWorld):
        (WebCore::InspectorAgent::setInjectedScriptForOrigin):
        * inspector/InspectorAgent.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::setInjectedScriptForOrigin):
        * inspector/InspectorController.h:
        * inspector/InspectorFrontendHost.cpp:
        (WebCore::InspectorFrontendHost::setInjectedScriptForOrigin):
        * inspector/InspectorFrontendHost.h:
        * inspector/InspectorFrontendHost.idl:
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype._addExtensions):
        (WebInspector.ExtensionServer.prototype._addExtension):

2011-12-20  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGenerator should not use pointers for out params of RefPtr type.
        https://bugs.webkit.org/show_bug.cgi?id=69366

        Reviewed by Pavel Feldman.

        Generator fixed and all usages are changed manually.

        * inspector/CodeGeneratorInspector.py:
        (RawTypes.BaseType.is_event_param_check_optional):
        (RawTypes.BaseType):
        (RawTypes.BaseType.get_output_argument_prefix):
        (RawTypes.Object.get_output_argument_prefix):
        (RawTypes.Array.get_output_argument_prefix):
        (RawTypes):
        (Generator.process_command):
        * inspector/InspectorApplicationCacheAgent.cpp:
        (WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
        (WebCore::InspectorApplicationCacheAgent::getApplicationCacheForFrame):
        * inspector/InspectorApplicationCacheAgent.h:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::clearFrontend):
        (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
        (WebCore::InspectorCSSAgent::getInlineStylesForNode):
        (WebCore::InspectorCSSAgent::getComputedStyleForNode):
        (WebCore::InspectorCSSAgent::getAllStyleSheets):
        (WebCore::InspectorCSSAgent::getStyleSheet):
        (WebCore::InspectorCSSAgent::setPropertyText):
        (WebCore::InspectorCSSAgent::toggleProperty):
        (WebCore::InspectorCSSAgent::setRuleSelector):
        (WebCore::InspectorCSSAgent::addRule):
        (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
        (WebCore::InspectorCSSAgent::stopSelectorProfiler):
        (WebCore::InspectorCSSAgent::stopSelectorProfilerImpl):
        * inspector/InspectorCSSAgent.h:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::getDocument):
        (WebCore::InspectorDOMAgent::querySelectorAll):
        (WebCore::InspectorDOMAgent::getEventListenersForNode):
        (WebCore::InspectorDOMAgent::getSearchResults):
        (WebCore::InspectorDOMAgent::resolveNode):
        (WebCore::InspectorDOMAgent::getAttributes):
        * inspector/InspectorDOMAgent.h:
        * inspector/InspectorDOMStorageAgent.cpp:
        (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
        * inspector/InspectorDOMStorageAgent.h:
        * inspector/InspectorDatabaseAgent.cpp:
        (WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
        * inspector/InspectorDatabaseAgent.h:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
        (WebCore::InspectorDebuggerAgent::setBreakpoint):
        (WebCore::InspectorDebuggerAgent::searchInContent):
        (WebCore::InspectorDebuggerAgent::setScriptSource):
        (WebCore::InspectorDebuggerAgent::getFunctionLocation):
        (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
        * inspector/InspectorDebuggerAgent.h:
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getDOMNodeCount):
        * inspector/InspectorMemoryAgent.h:
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::getCookies):
        (WebCore::InspectorPageAgent::getResourceTree):
        (WebCore::InspectorPageAgent::searchInResource):
        (WebCore::InspectorPageAgent::searchInResources):
        * inspector/InspectorPageAgent.h:
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::getProfileHeaders):
        (WebCore::InspectorProfilerAgent::getProfile):
        (WebCore::InspectorProfilerAgent::getObjectByHeapObjectId):
        * inspector/InspectorProfilerAgent.h:
        * inspector/InspectorRuntimeAgent.cpp:
        (WebCore::InspectorRuntimeAgent::evaluate):
        (WebCore::InspectorRuntimeAgent::callFunctionOn):
        (WebCore::InspectorRuntimeAgent::getProperties):
        * inspector/InspectorRuntimeAgent.h:

2011-12-20  Julien Chaffraix  <jchaffraix@webkit.org>

        Crash in RenderTable::outerBorderAfter
        http://webkit.org/b/74026
        <rdar://problem/10552313>

        Reviewed by Eric Seidel.

        Test: fast/table/computeLogicalWidth-table-needsSectionRecalc.html

        RenderBlock can call computeLogicalWidth() before calling layout(). The code in
        RenderTable::computeLogicalWidth would make the assumption that layout() was called
        as layout() is responsible for recomputing our sections.

        To prevent the issue, let's just recompute the section if it's needed as this situation
        shouldn't be an error. Also adding more knowledge of table in RenderBlock seems bad.

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::computeLogicalWidth):
        Make sure we recalculate our section if it's needed.

2011-12-20  Kentaro Hara  <haraken@chromium.org>

        [Refactoring] Replace imp with impl in CodeGeneratorJS.pm
        https://bugs.webkit.org/show_bug.cgi?id=74901

        Reviewed by Adam Barth.

        As pointed out in bug 74837, the generated code by CodeGeneratorJS.pm includes
        both 'imp' and 'impl'. This patch unifies them into 'impl'.
        I confirmed that "perl -lne 'print if /imp[^a-z]/' CodeGeneratorJS.pm" outputs nothing.

        No new tests. No change in behavior.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateAttributeEventListenerCall):
        (GenerateEventListenerCall):
        (GenerateImplementation):
        (GenerateParametersCheck):
        (GenerateImplementationFunctionCall):
        (NativeToJSValue):

        * bindings/scripts/test/JS/JSFloat64Array.cpp: Updated run-bindings-tests results.
        (WebCore::jsFloat64ArrayPrototypeFunctionFoo):
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        (WebCore::jsTestEventConstructorAttr1):
        (WebCore::jsTestEventConstructorAttr2):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::jsTestInterfaceStr1):
        (WebCore::jsTestInterfaceStr2):
        (WebCore::jsTestInterfaceStr3):
        (WebCore::setJSTestInterfaceStr2):
        (WebCore::setJSTestInterfaceStr3):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjReadOnlyIntAttr):
        (WebCore::jsTestObjReadOnlyStringAttr):
        (WebCore::jsTestObjReadOnlyTestObjAttr):
        (WebCore::jsTestObjShortAttr):
        (WebCore::jsTestObjUnsignedShortAttr):
        (WebCore::jsTestObjIntAttr):
        (WebCore::jsTestObjLongLongAttr):
        (WebCore::jsTestObjUnsignedLongLongAttr):
        (WebCore::jsTestObjStringAttr):
        (WebCore::jsTestObjTestObjAttr):
        (WebCore::jsTestObjXMLObjAttr):
        (WebCore::jsTestObjCreate):
        (WebCore::jsTestObjReflectedStringAttr):
        (WebCore::jsTestObjReflectedIntegralAttr):
        (WebCore::jsTestObjReflectedUnsignedIntegralAttr):
        (WebCore::jsTestObjReflectedBooleanAttr):
        (WebCore::jsTestObjReflectedURLAttr):
        (WebCore::jsTestObjReflectedNonEmptyURLAttr):
        (WebCore::jsTestObjReflectedCustomIntegralAttr):
        (WebCore::jsTestObjReflectedCustomBooleanAttr):
        (WebCore::jsTestObjReflectedCustomURLAttr):
        (WebCore::jsTestObjReflectedCustomNonEmptyURLAttr):
        (WebCore::jsTestObjAttrWithGetterException):
        (WebCore::jsTestObjAttrWithSetterException):
        (WebCore::jsTestObjStringAttrWithGetterException):
        (WebCore::jsTestObjStringAttrWithSetterException):
        (WebCore::jsTestObjScriptStringAttr):
        (WebCore::jsTestObjConditionalAttr1):
        (WebCore::jsTestObjConditionalAttr2):
        (WebCore::jsTestObjConditionalAttr3):
        (WebCore::jsTestObjCachedAttribute1):
        (WebCore::jsTestObjCachedAttribute2):
        (WebCore::jsTestObjDescription):
        (WebCore::jsTestObjId):
        (WebCore::jsTestObjHash):
        (WebCore::setJSTestObjShortAttr):
        (WebCore::setJSTestObjUnsignedShortAttr):
        (WebCore::setJSTestObjIntAttr):
        (WebCore::setJSTestObjLongLongAttr):
        (WebCore::setJSTestObjUnsignedLongLongAttr):
        (WebCore::setJSTestObjStringAttr):
        (WebCore::setJSTestObjTestObjAttr):
        (WebCore::setJSTestObjXMLObjAttr):
        (WebCore::setJSTestObjCreate):
        (WebCore::setJSTestObjReflectedStringAttr):
        (WebCore::setJSTestObjReflectedIntegralAttr):
        (WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
        (WebCore::setJSTestObjReflectedBooleanAttr):
        (WebCore::setJSTestObjReflectedURLAttr):
        (WebCore::setJSTestObjReflectedNonEmptyURLAttr):
        (WebCore::setJSTestObjReflectedCustomIntegralAttr):
        (WebCore::setJSTestObjReflectedCustomBooleanAttr):
        (WebCore::setJSTestObjReflectedCustomURLAttr):
        (WebCore::setJSTestObjReflectedCustomNonEmptyURLAttr):
        (WebCore::setJSTestObjAttrWithGetterException):
        (WebCore::setJSTestObjAttrWithSetterException):
        (WebCore::setJSTestObjStringAttrWithGetterException):
        (WebCore::setJSTestObjStringAttrWithSetterException):
        (WebCore::setJSTestObjConditionalAttr1):
        (WebCore::setJSTestObjConditionalAttr2):
        (WebCore::setJSTestObjConditionalAttr3):
        (WebCore::setJSTestObjId):
        (WebCore::jsTestObjPrototypeFunctionVoidMethod):
        (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionIntMethod):
        (WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionObjMethod):
        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
        (WebCore::jsTestObjPrototypeFunctionSerializedValue):
        (WebCore::jsTestObjPrototypeFunctionIdbKey):
        (WebCore::jsTestObjPrototypeFunctionOptionsObject):
        (WebCore::jsTestObjPrototypeFunctionMethodWithException):
        (WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
        (WebCore::jsTestObjPrototypeFunctionAddEventListener):
        (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
        (WebCore::jsTestObjPrototypeFunctionWithDynamicFrame):
        (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndArg):
        (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndOptionalArg):
        (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGesture):
        (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD):
        (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoid):
        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
        (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException):
        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
        (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
        (WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
        (WebCore::jsTestObjPrototypeFunctionConditionalMethod2):
        (WebCore::jsTestObjPrototypeFunctionConditionalMethod3):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::jsTestSerializedScriptValueInterfaceValue):

2011-12-20  Alok Priyadarshi  <alokp@chromium.org>

        [chromium] compositing/shadows tests fail with accelerated painting
        https://bugs.webkit.org/show_bug.cgi?id=74871

        Reviewed by James Robinson.
        
        Switched over to new API for creating accelerated canvas GrContext::createPlatformTexture.
        It correctly binds the stencil buffer to the FBO.

        Test: compositing/shadows/shadow-drawing.html (existing)

        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
        (WebCore::createAcceleratedCanvas):
        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
        * platform/graphics/chromium/ManagedTexture.cpp:
        (WebCore::ManagedTexture::allocate):
        (WebCore::ManagedTexture::bindTexture):
        (WebCore::ManagedTexture::framebufferTexture2D):
        * platform/graphics/chromium/ManagedTexture.h:

2011-12-20  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r103291.
        http://trac.webkit.org/changeset/103291
        https://bugs.webkit.org/show_bug.cgi?id=74915

        Looks like it broke fast/events/touch and
        fast/events/touch/gesture/gesture-scroll.html
        http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Mac10.5/builds/7010
        (Requested by loislo on #webkit).

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/chromium/ScrollAnimatorChromiumMac.h: Copied from Source/WebCore/platform/mac/ScrollAnimatorMac.h.
        (WebCore::ScrollAnimatorChromiumMac::setIsDrawingIntoLayer):
        (WebCore::ScrollAnimatorChromiumMac::isDrawingIntoLayer):
        (WebCore::ScrollAnimatorChromiumMac::haveScrolledSincePageLoad):
        (WebCore::ScrollAnimatorChromiumMac::setNeedsScrollerStyleUpdate):
        (WebCore::ScrollAnimatorChromiumMac::needsScrollerStyleUpdate):
        * platform/chromium/ScrollAnimatorChromiumMac.mm: Added.
        (-[NSProcessInfo systemUptime]):
        (abs):
        (-[ScrollAnimationHelperDelegate initWithScrollAnimator:WebCore::]):
        (-[ScrollAnimationHelperDelegate scrollAnimatorDestroyed]):
        (-[ScrollAnimationHelperDelegate bounds]):
        (-[ScrollAnimationHelperDelegate _immediateScrollToPoint:]):
        (-[ScrollAnimationHelperDelegate _pixelAlignProposedScrollPosition:]):
        (-[ScrollAnimationHelperDelegate convertSizeToBase:]):
        (-[ScrollAnimationHelperDelegate convertSizeFromBase:]):
        (-[ScrollAnimationHelperDelegate convertSizeToBacking:]):
        (-[ScrollAnimationHelperDelegate convertSizeFromBacking:]):
        (-[ScrollAnimationHelperDelegate superview]):
        (-[ScrollAnimationHelperDelegate documentView]):
        (-[ScrollAnimationHelperDelegate window]):
        (-[ScrollAnimationHelperDelegate _recursiveRecomputeToolTips]):
        (-[ScrollbarPainterControllerDelegate initWithScrollAnimator:WebCore::]):
        (-[ScrollbarPainterControllerDelegate scrollAnimatorDestroyed]):
        (-[ScrollbarPainterControllerDelegate contentAreaRectForScrollerImpPair:]):
        (-[ScrollbarPainterControllerDelegate inLiveResizeForScrollerImpPair:]):
        (-[ScrollbarPainterControllerDelegate mouseLocationInContentAreaForScrollerImpPair:]):
        (-[ScrollbarPainterControllerDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]):
        (-[ScrollbarPainterControllerDelegate scrollerImpPair:setContentAreaNeedsDisplayInRect:]):
        (-[ScrollbarPainterControllerDelegate scrollerImpPair:updateScrollerStyleForNewRecommendedScrollerStyle:]):
        (-[ScrollbarPartAnimation initWithScrollbarPainter:part:WebCore::scrollAnimator:WebCore::animateAlphaTo:duration:]):
        (-[ScrollbarPartAnimation setCurrentProgress:]):
        (-[ScrollbarPartAnimation scrollAnimatorDestroyed]):
        (-[ScrollbarPainterDelegate initWithScrollAnimator:WebCore::]):
        (-[ScrollbarPainterDelegate cancelAnimations]):
        (-[ScrollbarPainterDelegate convertRectToBacking:]):
        (-[ScrollbarPainterDelegate convertRectFromBacking:]):
        (-[ScrollbarPainterDelegate layer]):
        (-[ScrollbarPainterDelegate setUpAnimation:scrollerPainter:part:WebCore::animateAlphaTo:duration:]):
        (-[ScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]):
        (-[ScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]):
        (-[ScrollbarPainterDelegate scrollerImp:overlayScrollerStateChangedTo:]):
        (-[ScrollbarPainterDelegate scrollAnimatorDestroyed]):
        (WebCore::ScrollAnimator::create):
        (WebCore::chromiumScrollbarTheme):
        (WebCore::ScrollAnimatorChromiumMac::ScrollAnimatorChromiumMac):
        (WebCore::ScrollAnimatorChromiumMac::~ScrollAnimatorChromiumMac):
        (WebCore::ScrollAnimatorChromiumMac::scroll):
        (WebCore::ScrollAnimatorChromiumMac::scrollToOffsetWithoutAnimation):
        (WebCore::ScrollAnimatorChromiumMac::adjustScrollXPositionIfNecessary):
        (WebCore::ScrollAnimatorChromiumMac::adjustScrollYPositionIfNecessary):
        (WebCore::ScrollAnimatorChromiumMac::adjustScrollPositionIfNecessary):
        (WebCore::ScrollAnimatorChromiumMac::immediateScrollToPoint):
        (WebCore::ScrollAnimatorChromiumMac::immediateScrollByDeltaX):
        (WebCore::ScrollAnimatorChromiumMac::immediateScrollByDeltaY):
        (WebCore::ScrollAnimatorChromiumMac::immediateScrollToPointForScrollAnimation):
        (WebCore::ScrollAnimatorChromiumMac::notifyPositionChanged):
        (WebCore::ScrollAnimatorChromiumMac::contentAreaWillPaint):
        (WebCore::ScrollAnimatorChromiumMac::mouseEnteredContentArea):
        (WebCore::ScrollAnimatorChromiumMac::mouseExitedContentArea):
        (WebCore::ScrollAnimatorChromiumMac::mouseMovedInContentArea):
        (WebCore::ScrollAnimatorChromiumMac::willStartLiveResize):
        (WebCore::ScrollAnimatorChromiumMac::contentsResized):
        (WebCore::ScrollAnimatorChromiumMac::willEndLiveResize):
        (WebCore::ScrollAnimatorChromiumMac::contentAreaDidShow):
        (WebCore::ScrollAnimatorChromiumMac::contentAreaDidHide):
        (WebCore::ScrollAnimatorChromiumMac::didBeginScrollGesture):
        (WebCore::ScrollAnimatorChromiumMac::didEndScrollGesture):
        (WebCore::ScrollAnimatorChromiumMac::didAddVerticalScrollbar):
        (WebCore::ScrollAnimatorChromiumMac::willRemoveVerticalScrollbar):
        (WebCore::ScrollAnimatorChromiumMac::didAddHorizontalScrollbar):
        (WebCore::ScrollAnimatorChromiumMac::willRemoveHorizontalScrollbar):
        (WebCore::ScrollAnimatorChromiumMac::cancelAnimations):
        (WebCore::elasticDeltaForTimeDelta):
        (WebCore::elasticDeltaForReboundDelta):
        (WebCore::reboundDeltaForElasticDelta):
        (WebCore::scrollWheelMultiplier):
        (WebCore::isScrollingLeftAndShouldNotRubberBand):
        (WebCore::isScrollingRightAndShouldNotRubberBand):
        (WebCore::ScrollAnimatorChromiumMac::handleWheelEvent):
        (WebCore::ScrollAnimatorChromiumMac::handleGestureEvent):
        (WebCore::ScrollAnimatorChromiumMac::pinnedInDirection):
        (WebCore::ScrollAnimatorChromiumMac::allowsVerticalStretching):
        (WebCore::ScrollAnimatorChromiumMac::allowsHorizontalStretching):
        (WebCore::ScrollAnimatorChromiumMac::smoothScrollWithEvent):
        (WebCore::ScrollAnimatorChromiumMac::beginScrollGesture):
        (WebCore::ScrollAnimatorChromiumMac::endScrollGesture):
        (WebCore::ScrollAnimatorChromiumMac::snapRubberBand):
        (WebCore::roundTowardZero):
        (WebCore::roundToDevicePixelTowardZero):
        (WebCore::ScrollAnimatorChromiumMac::snapRubberBandTimerFired):
        (WebCore::ScrollAnimatorChromiumMac::setIsActive):
        (WebCore::ScrollAnimatorChromiumMac::updateScrollerStyle):
        (WebCore::ScrollAnimatorChromiumMac::startScrollbarPaintTimer):
        (WebCore::ScrollAnimatorChromiumMac::scrollbarPaintTimerIsActive):
        (WebCore::ScrollAnimatorChromiumMac::stopScrollbarPaintTimer):
        (WebCore::ScrollAnimatorChromiumMac::initialScrollbarPaintTimerFired):
        (WebCore::ScrollAnimatorChromiumMac::setVisibleScrollerThumbRect):
        * platform/chromium/ScrollbarOverlayUtilitiesChromiumMac.h: Added.
        * platform/chromium/ScrollbarOverlayUtilitiesChromiumMac.mm: Added.
        (lookUpNSScrollerImpClass):
        (lookUpNSScrollerImpPairClass):
        (scrollbarControlSizeToNSControlSize):
        (preferredScrollerStyle):
        (wkScrollbarPainterUsesOverlayScrollers):
        (wkScrollbarPainterIsHorizontal):
        (wkScrollbarPainterKnobAlpha):
        (wkScrollbarPainterSetOverlayState):
        (wkScrollbarPainterPaint):
        (wkScrollbarPainterPaintTrack):
        (wkScrollbarPainterPaintKnob):
        (wkScrollbarMinimumThumbLength):
        (wkScrollbarPainterSetDelegate):
        (wkScrollbarPainterSetEnabled):
        (wkScrollbarPainterTrackAlpha):
        (wkMakeScrollbarPainter):
        (wkScrollbarThickness):
        (wkScrollbarMinimumTotalLengthNeededForThumb):
        (wkVerticalScrollbarPainterForController):
        (wkHorizontalScrollbarPainterForController):
        (wkScrollbarPainterControllerStyle):
        (wkMakeScrollbarReplacementPainter):
        (wkSetPainterForPainterController):
        (wkSetScrollbarPainterControllerStyle):
        (wkScrollbarPainterKnobRect):
        (wkSetScrollbarPainterKnobAlpha):
        (wkSetScrollbarPainterTrackAlpha):
        (wkSetScrollbarPainterKnobStyle):
        (wkMakeScrollbarPainterController):
        (wkContentAreaScrolled):
        (wkContentAreaWillPaint):
        (wkMouseEnteredContentArea):
        (wkMouseExitedContentArea):
        (wkMouseMovedInContentArea):
        (wkWillStartLiveResize):
        (wkContentAreaResized):
        (wkWillEndLiveResize):
        (wkContentAreaDidShow):
        (wkContentAreaDidHide):
        (wkDidBeginScrollGesture):
        (wkDidEndScrollGesture):
        (wkScrollbarPainterForceFlashScrollers):
        (isScrollbarOverlayAPIAvailable):
        * platform/chromium/ScrollbarThemeChromiumMac.h:
        (WebCore::ScrollbarThemeChromiumMac::supportsControlTints):
        (WebCore::ScrollbarThemeChromiumMac::maxOverlapBetweenPages):
        * platform/chromium/ScrollbarThemeChromiumMac.mm:
        (WebCore::scrollbarMap):
        (+[ScrollbarPrefsObserver appearancePrefsChanged:]):
        (+[ScrollbarPrefsObserver behaviorPrefsChanged:]):
        (+[ScrollbarPrefsObserver registerAsObserver]):
        (WebCore::updateArrowPlacement):
        (WebCore::ScrollbarThemeChromiumMac::registerScrollbar):
        (WebCore::ScrollbarThemeChromiumMac::unregisterScrollbar):
        (WebCore::ScrollbarThemeChromiumMac::setNewPainterForScrollbar):
        (WebCore::ScrollbarThemeChromiumMac::painterForScrollbar):
        (WebCore::ScrollbarThemeChromiumMac::ScrollbarThemeChromiumMac):
        (WebCore::ScrollbarThemeChromiumMac::preferencesChanged):
        (WebCore::ScrollbarThemeChromiumMac::scrollbarThickness):
        (WebCore::ScrollbarThemeChromiumMac::usesOverlayScrollbars):
        (WebCore::toScrollbarPainterKnobStyle):
        (WebCore::ScrollbarThemeChromiumMac::updateScrollbarOverlayStyle):
        (WebCore::ScrollbarThemeChromiumMac::initialAutoscrollTimerDelay):
        (WebCore::ScrollbarThemeChromiumMac::autoscrollTimerDelay):
        (WebCore::ScrollbarThemeChromiumMac::buttonsPlacement):
        (WebCore::ScrollbarThemeChromiumMac::hasButtons):
        (WebCore::ScrollbarThemeChromiumMac::hasThumb):
        (WebCore::buttonRepaintRect):
        (WebCore::ScrollbarThemeChromiumMac::backButtonRect):
        (WebCore::ScrollbarThemeChromiumMac::forwardButtonRect):
        (WebCore::ScrollbarThemeChromiumMac::trackRect):
        (WebCore::ScrollbarThemeChromiumMac::minimumThumbLength):
        (WebCore::ScrollbarThemeChromiumMac::shouldCenterOnThumb):
        (WebCore::ScrollbarThemeChromiumMac::shouldDragDocumentInsteadOfThumb):
        (WebCore::scrollbarPartToHIPressedState):
        (WebCore::ScrollbarThemeChromiumMac::updateEnabledState):
        (WebCore::ScrollbarThemeChromiumMac::paint):
        * platform/mac/EmptyProtocolDefinitions.h:
        * platform/mac/NSScrollerImpDetails.h:
        * platform/mac/NSScrollerImpDetails.mm: Removed.
        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (-[WebScrollbarPainterDelegate layer]):
        (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
        (WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):
        (WebCore::ScrollAnimatorMac::notifyPositionChanged):
        (WebCore::ScrollAnimatorMac::contentAreaWillPaint):
        (WebCore::ScrollAnimatorMac::mouseEnteredContentArea):
        (WebCore::ScrollAnimatorMac::mouseExitedContentArea):
        (WebCore::ScrollAnimatorMac::mouseMovedInContentArea):
        (WebCore::ScrollAnimatorMac::mouseEnteredScrollbar):
        (WebCore::ScrollAnimatorMac::mouseExitedScrollbar):
        (WebCore::ScrollAnimatorMac::willStartLiveResize):
        (WebCore::ScrollAnimatorMac::contentsResized):
        (WebCore::ScrollAnimatorMac::willEndLiveResize):
        (WebCore::ScrollAnimatorMac::contentAreaDidShow):
        (WebCore::ScrollAnimatorMac::contentAreaDidHide):
        (WebCore::ScrollAnimatorMac::didBeginScrollGesture):
        (WebCore::ScrollAnimatorMac::didEndScrollGesture):
        (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
        (WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
        (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
        (WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):
        (WebCore::ScrollAnimatorMac::cancelAnimations):
        (WebCore::ScrollAnimatorMac::setIsActive):
        (WebCore::ScrollAnimatorMac::updateScrollerStyle):
        (WebCore::ScrollAnimatorMac::initialScrollbarPaintTimerFired):
        * platform/mac/ScrollElasticityController.h:
        * platform/mac/ScrollbarThemeMac.h:
        * platform/mac/ScrollbarThemeMac.mm:
        (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
        (+[WebScrollbarPrefsObserver behaviorPrefsChanged:]):
        (WebCore::ScrollbarTheme::nativeTheme):
        (WebCore::updateArrowPlacement):
        (WebCore::ScrollbarThemeMac::registerScrollbar):
        (WebCore::ScrollbarThemeMac::ScrollbarThemeMac):
        (WebCore::ScrollbarThemeMac::scrollbarThickness):
        (WebCore::ScrollbarThemeMac::usesOverlayScrollbars):
        (WebCore::ScrollbarThemeMac::updateScrollbarOverlayStyle):
        (WebCore::ScrollbarThemeMac::hasButtons):
        (WebCore::ScrollbarThemeMac::hasThumb):
        (WebCore::ScrollbarThemeMac::minimumThumbLength):
        (WebCore::scrollbarPartToHIPressedState):
        (WebCore::ScrollbarThemeMac::updateEnabledState):
        (WebCore::ScrollbarThemeMac::paint):

2011-12-19  Adam Klein  <adamk@chromium.org>

        Make all calls to NamedNodeMap::setAttributes go through Element
        https://bugs.webkit.org/show_bug.cgi?id=74895

        Reviewed by Ryosuke Niwa.

        There are two reasons for this change. One is an optimization: some
        callers were previously always creating a NamedNodeMap even if the
        source didn't have any attributes.

        The other reason is forward-looking: setAttributes' behavior is subtly
        wrong in the presence of MutationObservers. This doesn't matter
        for most callers since the element on which setAttributesFromElement
        is called is newly-created. In the editing case, however, it could
        make a difference in behavior, which I hope to fix in a future change
        without sacrificing the performance of cloneNode() on an Element
        (which is what NamedNodeMap::setAttributes is designed for).

        No new tests, no change in behavior.

        * dom/Element.cpp:
        (WebCore::Element::cloneElementWithoutChildren): Call setAttributesFromElement.
        * dom/Element.h:
        (WebCore::Element::setAttributesFromElement): Create new inline helper method
        which conditionally forwards to NamedNodeMap::setAttribute.
        * dom/NamedNodeMap.h: Make setAttributes private (Element is already a friend).
        * editing/ReplaceNodeWithSpanCommand.cpp:
        (WebCore::swapInNodePreservingAttributesAndChildren): Call setAttributesFromElement.
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::setNodeName): Call setAttributesFromElement.
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::expandSymbolElementsInShadowTree): Call setAttributesFromElement.
        (WebCore::SVGUseElement::transferUseAttributesToReplacedElement): Call setAttributesFromElement
        and make use of ASSERT_NO_EXCEPTION to make code easier to read.

2011-12-19  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Upstream the BlackBerry change to ResourceRequestBase.cpp
        https://bugs.webkit.org/show_bug.cgi?id=74910

        Reviewed by Daniel Bates.

        No functionality change to the existing code, no new tests.

        * platform/network/ResourceRequestBase.cpp: The BlackBerry porting has its own
        initializeMaximumHTTPConnectionCountPerHost(). Exclude the default implementation.

2011-12-19  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Upstream the BlackBerry change to NetworkStateNotifier.h
        https://bugs.webkit.org/show_bug.cgi?id=74904

        Reviewed by Daniel Bates.

        No functionality change to existing code, no new tests.

        * platform/network/NetworkStateNotifier.h:

2011-12-19  Yael Aharon  <yael.aharon@nokia.com>

        Update dropzone implementation per spec update
        https://bugs.webkit.org/show_bug.cgi?id=74834

        Reviewed by Tony Chang.

        Update support for dropzone attribute to use file: and string: instead of f: and s:. 
        http://www.whatwg.org/specs/web-apps/current-work/#the-dropzone-attribute

        No new tests. Existing tests cover this and were updated.

        * dom/Clipboard.cpp:
        (WebCore::Clipboard::hasDropZoneType):

2011-12-19  Sam Weinig  <sam@webkit.org>

        Add support for scrollLineDown: and scrollLineUp: NSResponder selectors
        https://bugs.webkit.org/show_bug.cgi?id=74907

        Reviewed by Dan Bernstein.

        Added API test: WebKit2.ScrollByLineCommands

        * editing/EditorCommand.cpp:
        (WebCore::executeScrollLineUp):
        (WebCore::executeScrollLineDown):
        (WebCore::createCommandMap):
        Add implementations for scrollLineUp/Down. Do not expose
        these to execCommand

2011-12-19  Huang Dongsung  <luxtella@company100.net>

        [QT] WebGL can not make the frame buffer with the stencil buffer.
        https://bugs.webkit.org/show_bug.cgi?id=74783

        When initializing a framebuffer in OpenGL ES 2, we need to initialize the depth
        and stencil buffers separately, as opposed to the combined depth-stencil buffer
        we initialize for desktop GL.

        This makes fast/canvas/webgl/context-attributes-depth-stencil-combination.html
        work in OpenGL ES 2.

        Reviewed by Noam Rosenthal.

        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3D::GraphicsContext3D):
        (WebCore::GraphicsContext3D::~GraphicsContext3D):
        (WebCore::GraphicsContext3D::reshape):

2011-12-19  Ami Fischman  <fischman@chromium.org>

        Teach VideoLayerChromium how to render native texture (to support HW video decode).
        https://bugs.webkit.org/show_bug.cgi?id=73043

        Reviewed by James Robinson.
        
        Fix the life-cycle of video frames handled by VideoLayerChromium/CCVideoLayerImpl.
        VideoFrameProvider::{get,put}CurrentFrame provide lease semantics.  Previously
        VideoLayerChromium would acquire the lease for the duration of copying the frame,
        even if that was only a texture ID, and immediately return the lease, while
        CCVideoLayerImpl::draw() would come along later and use the (no-longer locked)
        texture optimistically.  This change makes it so that CCVideoLayerImpl holds
        the frame's lease for the duration of draw(), guaranteeing the frame is valid to read.

        Existing test coverage (compositing/video/, LayoutTests).  HW render of
        HW-decoded textures is not yet tested explicitly.

        * platform/graphics/chromium/VideoLayerChromium.cpp:
        (WebCore::VideoLayerChromium::VideoLayerChromium):
        (WebCore::VideoLayerChromium::~VideoLayerChromium):
        (WebCore::VideoLayerChromium::createCCLayerImpl):
        (WebCore::VideoLayerChromium::releaseProvider):
        * platform/graphics/chromium/VideoLayerChromium.h:
        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
        (WebCore::CCVideoLayerImpl::CCVideoLayerImpl):
        (WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
        (WebCore::CCVideoLayerImpl::setProvider):
        (WebCore::convertVFCFormatToGC3DFormat):
        (WebCore::CCVideoLayerImpl::draw):
        (WebCore::CCVideoLayerImpl::copyFrameToTextures):
        (WebCore::CCVideoLayerImpl::copyPlaneToTexture):
        (WebCore::computeVisibleSize):
        (WebCore::CCVideoLayerImpl::reserveTextures):
        (WebCore::CCVideoLayerImpl::drawYUV):
        (WebCore::CCVideoLayerImpl::drawCommon):
        (WebCore::CCVideoLayerImpl::drawRGBA):
        (WebCore::CCVideoLayerImpl::drawNativeTexture):
        * platform/graphics/chromium/cc/CCVideoLayerImpl.h:

2011-12-19  Sam Weinig  <sam@webkit.org>

        More PlatformEvent cleanup
        https://bugs.webkit.org/show_bug.cgi?id=74831

        Reviewed by Dan Bernstein.

        * platform/PlatformMouseEvent.h:
        (WebCore::PlatformMouseEvent::position):
        Rename pos -> position(). Remove x() and y() accessors.

        (WebCore::PlatformMouseEvent::globalPosition):
        Added. Replaces globalX() and globalY() accessors.

        (WebCore::PlatformMouseEvent::movementDelta):
        Added. Replaces movementX() and movementY() accessors.

        * platform/PlatformWheelEvent.h:
        (WebCore::PlatformWheelEvent::position):
        Renamed pos -> position().

        (WebCore::PlatformWheelEvent::globalPosition):
        Renamed globalPos -> globalPosition().

        * dom/MouseEvent.cpp:
        (WebCore::MouseEvent::create):
        * dom/WheelEvent.cpp:
        (WebCore::WheelEventDispatchMediator::WheelEventDispatchMediator):
        * page/DragController.cpp:
        (WebCore::DragController::startDrag):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEventSingleClick):
        (WebCore::EventHandler::handleMousePressEvent):
        (WebCore::EventHandler::eventMayStartDrag):
        (WebCore::EventHandler::handleMouseReleaseEvent):
        (WebCore::EventHandler::selectCursor):
        (WebCore::EventHandler::handleMouseDoubleClickEvent):
        (WebCore::EventHandler::handleMouseMoveEvent):
        (WebCore::EventHandler::dispatchDragEvent):
        (WebCore::EventHandler::prepareMouseEvent):
        (WebCore::EventHandler::dispatchMouseEvent):
        (WebCore::EventHandler::handleWheelEvent):
        (WebCore::EventHandler::sendContextMenuEvent):
        (WebCore::EventHandler::handleDrag):
        (WebCore::EventHandler::handleTouchEvent):
        * page/chromium/EventHandlerChromium.cpp:
        (WebCore::EventHandler::passMousePressEventToSubframe):
        * platform/Scrollbar.cpp:
        (WebCore::Scrollbar::mouseMoved):
        (WebCore::Scrollbar::mouseDown):
        * platform/ScrollbarThemeComposite.cpp:
        (WebCore::ScrollbarThemeComposite::hitTest):
        * platform/chromium/PopupContainer.cpp:
        (WebCore::constructRelativeMouseEvent):
        (WebCore::constructRelativeWheelEvent):
        * platform/chromium/PopupListBox.cpp:
        (WebCore::PopupListBox::handleMouseDownEvent):
        (WebCore::PopupListBox::handleMouseMoveEvent):
        (WebCore::PopupListBox::handleMouseReleaseEvent):
        (WebCore::PopupListBox::handleWheelEvent):
        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
        (WebCore::ScrollbarThemeChromiumWin::shouldSnapBackToDragOrigin):
        * platform/qt/ScrollbarQt.cpp:
        (WebCore::Scrollbar::contextMenu):
        * platform/qt/ScrollbarThemeQt.cpp:
        (WebCore::ScrollbarThemeQt::hitTest):
        * platform/win/ScrollbarThemeWin.cpp:
        (WebCore::ScrollbarThemeWin::shouldSnapBackToDragOrigin):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::resize):
        Update to use new names, access style.

2011-12-19  Adam Klein  <adamk@chromium.org>

        Remove unused ExceptionCode& argument from Element::setAttribute(QualifiedName)
        https://bugs.webkit.org/show_bug.cgi?id=74740

        Reviewed by Ryosuke Niwa.

        Updated lots of callers to remove third argument. The list of changes
        below only lists things other than updating callers.

        * dom/Document.cpp:
        (WebCore::Document::importNode):
        * dom/Element.cpp:
        (WebCore::Element::setAttribute):
        (WebCore::Element::setAttributeNS):
        (WebCore::Element::setIntegralAttribute):
        (WebCore::Element::setUnsignedIntegralAttribute):
        * dom/Element.h: Removed third arg from method, removed old two-arg
        overload which now has an identical signature.
        * editing/mac/EditorMac.mm: Updated caller and used
        ASSERT_NO_EXCEPTION for nearby code.
        (WebCore::styleForSelectionStart):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::setContentEditable):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::setAttributesAsText):
        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
        * svg/SVGElement.idl: Removed 'setter raises(DOMException)'
        * svg/SVGGlyphRefElement.idl: ditto.
        * svg/SVGStyleElement.cpp:
        (WebCore::SVGStyleElement::setType):
        (WebCore::SVGStyleElement::setMedia):
        (WebCore::SVGStyleElement::setTitle):
        * xml/parser/XMLTreeBuilder.cpp:
        (WebCore::XMLTreeBuilder::processAttributes):

2011-12-19  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests results.

        * bindings/scripts/test/JS/JSFloat64Array.h:
        (WebCore::JSFloat64Array::create):
        (WebCore::JSFloat64ArrayPrototype::create):
        (WebCore::JSFloat64ArrayConstructor::create):
        * bindings/scripts/test/JS/JSTestEventConstructor.h:
        (WebCore::JSTestEventConstructor::create):
        (WebCore::JSTestEventConstructorPrototype::create):
        (WebCore::JSTestEventConstructorConstructor::create):
        * bindings/scripts/test/JS/JSTestInterface.h:
        (WebCore::JSTestInterface::create):
        (WebCore::JSTestInterfacePrototype::create):
        (WebCore::JSTestInterfaceConstructor::create):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
        (WebCore::JSTestMediaQueryListListener::create):
        (WebCore::JSTestMediaQueryListListenerPrototype::create):
        (WebCore::JSTestMediaQueryListListenerConstructor::create):
        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
        (WebCore::JSTestNamedConstructor::create):
        (WebCore::JSTestNamedConstructorPrototype::create):
        (WebCore::JSTestNamedConstructorConstructor::create):
        (WebCore::JSTestNamedConstructorNamedConstructor::create):
        * bindings/scripts/test/JS/JSTestObj.h:
        (WebCore::JSTestObj::create):
        (WebCore::JSTestObjPrototype::create):
        (WebCore::JSTestObjConstructor::create):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
        (WebCore::JSTestSerializedScriptValueInterface::create):
        (WebCore::JSTestSerializedScriptValueInterfacePrototype::create):
        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::create):

2011-12-19  James Robinson  <jamesr@chromium.org>

        [chromium] CCLayerDelegate and WebLayerClient do not need notifySyncRequired
        https://bugs.webkit.org/show_bug.cgi?id=74376

        Reviewed by Kenneth Russell.

        CCLayerDelegate::notifySyncRequired is an odd bit of interface that we originally cargo-culted from the
        CoreAnimation compositor implementation. It is a mechanism by which a LayerChromium instance may request a new
        frame via its CCLayerDelegate, which in WebCore is always a GraphicsLayerClient. In practice, all
        implementations eventually ended up routing to CCLayerTreeHost::setNeedsCommit which then made the proper
        scheduling decision.

        This patch routes all changes that would have gone through CCLayerDelegate::notifySyncRequired directly to
        CCLayerTreeHost::setNeedsCommit, which greatly simplifies the scheduling logic.

        There is a large amount of unit test coverage for this change, largely in LayerChromiumTest

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        * platform/graphics/chromium/GraphicsLayerChromium.h:
        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::setNeedsCommit):
        (WebCore::LayerChromium::insertChild):
        * platform/graphics/chromium/LayerChromium.h:
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
        (WebCore::CCLayerTreeHost::setRootLayer):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        * platform/graphics/chromium/cc/CCScopedThreadProxy.h:
        (WebCore::CCScopedThreadProxy::runTaskIfNotShutdown):

2011-12-19  Sailesh Agrawal <sail@chromium.org>

        Merge ScrollAnimatorChromiumMac.mm back to ScrollAnimatorMac
        https://bugs.webkit.org/show_bug.cgi?id=61144

        Reviewed by Beth Dakin.

        At a high level the main changes are:
            - replace #ifdefs in ScrollAnimatorMac and ScrollbarThemeMac with run time checks
            - delete duplicate code in ScrollbarThemeChromiumMac. Keep the paint code since it does tickmarks and SKIA stuff.
            - delete ScrollAnimatorChromiumMac since ScrollAnimatorMac does the exact same thing
            - delete ScrollbarOverlayUtilitiesChromiumMac since NSScrollerImpDetails does the same thing

        No new tests. Just refactoring.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/chromium/ScrollAnimatorChromiumMac.h: Removed.
        * platform/chromium/ScrollAnimatorChromiumMac.mm: Removed.
        * platform/chromium/ScrollbarOverlayUtilitiesChromiumMac.h: Removed.
        * platform/chromium/ScrollbarOverlayUtilitiesChromiumMac.mm: Removed.
        * platform/chromium/ScrollbarThemeChromiumMac.h:
        * platform/chromium/ScrollbarThemeChromiumMac.mm:
        (WebCore::ScrollbarThemeChromiumMac::ScrollbarThemeChromiumMac):
        (WebCore::scrollbarPainterPaintTrack):
        (WebCore::ScrollbarThemeChromiumMac::paint):
        * platform/mac/EmptyProtocolDefinitions.h:
        * platform/mac/NSScrollerImpDetails.h:
        (WebCore::isScrollbarOverlayAPIAvailable):
        * platform/mac/NSScrollerImpDetails.mm: Added.
        (WebCore::isScrollbarOverlayAPIAvailable):
        (WebCore::recommendedScrollerStyle):
        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (scrollbarPainterForScrollbar):
        (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
        (WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):
        (WebCore::ScrollAnimatorMac::notifyPositionChanged):
        (WebCore::ScrollAnimatorMac::contentAreaWillPaint):
        (WebCore::ScrollAnimatorMac::mouseEnteredContentArea):
        (WebCore::ScrollAnimatorMac::mouseExitedContentArea):
        (WebCore::ScrollAnimatorMac::mouseMovedInContentArea):
        (WebCore::ScrollAnimatorMac::mouseEnteredScrollbar):
        (WebCore::ScrollAnimatorMac::mouseExitedScrollbar):
        (WebCore::ScrollAnimatorMac::willStartLiveResize):
        (WebCore::ScrollAnimatorMac::contentsResized):
        (WebCore::ScrollAnimatorMac::willEndLiveResize):
        (WebCore::ScrollAnimatorMac::contentAreaDidShow):
        (WebCore::ScrollAnimatorMac::contentAreaDidHide):
        (WebCore::ScrollAnimatorMac::didBeginScrollGesture):
        (WebCore::ScrollAnimatorMac::didEndScrollGesture):
        (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
        (WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
        (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
        (WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):
        (WebCore::ScrollAnimatorMac::cancelAnimations):
        (WebCore::ScrollAnimatorMac::setIsActive):
        (WebCore::ScrollAnimatorMac::updateScrollerStyle):
        (WebCore::ScrollAnimatorMac::initialScrollbarPaintTimerFired):
        * platform/mac/ScrollElasticityController.h:
        * platform/mac/ScrollbarThemeMac.h:
        * platform/mac/ScrollbarThemeMac.mm:
        (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
        (+[WebScrollbarPrefsObserver behaviorPrefsChanged:]):
        (WebCore::updateArrowPlacement):
        (WebCore::ScrollbarThemeMac::registerScrollbar):
        (WebCore::ScrollbarThemeMac::setIsCurrentlyDrawingIntoLayer):
        (WebCore::ScrollbarThemeMac::ScrollbarThemeMac):
        (WebCore::ScrollbarThemeMac::scrollbarThickness):
        (WebCore::ScrollbarThemeMac::usesOverlayScrollbars):
        (WebCore::ScrollbarThemeMac::updateScrollbarOverlayStyle):
        (WebCore::ScrollbarThemeMac::hasButtons):
        (WebCore::ScrollbarThemeMac::hasThumb):
        (WebCore::ScrollbarThemeMac::minimumThumbLength):
        (WebCore::ScrollbarThemeMac::scrollbarPartToHIPressedState):
        (WebCore::ScrollbarThemeMac::updateEnabledState):
        (WebCore::scrollbarPainterPaint):
        (WebCore::ScrollbarThemeMac::paint):

2011-12-19  James Robinson  <jamesr@chromium.org>

        [chromium] Set the CCLayerTreeHost pointer on LayerChromium instances eagerly
        https://bugs.webkit.org/show_bug.cgi?id=74477

        Reviewed by Kenneth Russell.

        This enforces that the m_layerTreeHost pointer on LayerChromium instances is always up to date, instead of
        lazily setting it in the paintContents loop. There are two invariants:
        1.) If a LayerChromium is the root layer of a CCLayerTreeHost, or is reachable via the children, mask, or
        replica pointers from the root layer of a CCLayerTreeHost, then that LayerChromium's m_layerTreeHost pointer
        refers to that CCLayerTreeHost
        2.) If a LayerChromium is not a root layer or reachable from a root layer of any CCLayerTreeHost, its
        CCLayerTreeHost pointer is nil.

        Covered by several new layout tests in LayerChromiumTest

        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::setLayerTreeHost):
        (WebCore::LayerChromium::setParent):
        (WebCore::LayerChromium::setMaskLayer):
        (WebCore::LayerChromium::setReplicaLayer):
        * platform/graphics/chromium/LayerChromium.h:
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::createTile):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::setRootLayer):
        (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
        (WebCore::CCLayerTreeHost::paintLayerContents):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:

2011-12-19  Joshua Bell  <jsbell@chromium.org>

        IndexedDB multiple calls to transaction.objectStore(name) should return the same instance
        https://bugs.webkit.org/show_bug.cgi?id=60208

        Reviewed by Tony Chang.

        Ditto for calls to IDBObjectStore.index(). Calling these methods after the
        enclosing transaction has finished now consistently throws an error, which
        allows us to break reference cycles.

        Test: storage/indexeddb/mozilla/object-identity.html

        * storage/IDBDatabase.cpp:
        (WebCore::IDBDatabase::createObjectStore):
        * storage/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::createIndex):
        (WebCore::IDBObjectStore::index):
        (WebCore::IDBObjectStore::transactionFinished):
        * storage/IDBObjectStore.h:
        * storage/IDBTransaction.cpp:
        (WebCore::IDBTransaction::objectStore):
        (WebCore::IDBTransaction::objectStoreCreated):
        (WebCore::IDBTransaction::dispatchEvent):
        * storage/IDBTransaction.h:

2011-12-19  Anders Carlsson  <andersca@apple.com>

        Send gesture events through the event dispatcher and scrolling coordinator
        https://bugs.webkit.org/show_bug.cgi?id=74879

        Reviewed by Andreas Kling.

        * WebCore.exp.in:
        Export ScrollingCoordinator::handleGestureEvent.

        * page/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::handleGestureEvent):
        * page/ScrollingCoordinator.h:
        Add handleGestureEvent stub.

2011-12-19  Kentaro Hara  <haraken@chromium.org>

        Move WebAudio and WebSocket getters from JSDOMWindowCustom.cpp
        to JSDOMWindow{WebAudio,WebSocket}Custom.cpp
        https://bugs.webkit.org/show_bug.cgi?id=74841

        Reviewed by Adam Barth.

        This is the second step for bug 74599. We are planning to enable the [Supplemental]
        IDL and modularize WebAudio and WebSocket on AppleWebKit. This patch moves
        webkitAudioContext() and webSocket() from JSDOMWindowCustom.cpp to JSDOMWindowWebAudioCustom.cpp
        and JSDOMWindowWebSocketCustom.cpp, for modularization.

        Tests: Confirm that build succeeds.
               http/tests/websocket/tests/*

        * GNUmakefile.list.am: Added JSDOMWindowWebAudioCustom.cpp and JSDOMWindowWebSocketCustom.cpp.
        * Target.pri: Ditto.
        * UseJSC.cmake: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * bindings/js/JSBindingsAllInOne.cpp: Ditto.

        * bindings/js/JSDOMWindowCustom.cpp: For now we do not remove settingsForWindow(),
        webkitAudioContext() and webSocket(), since other build systems are still using them.
        We will remove them after all build systems implement the [Supplemental] IDL.
        * bindings/js/JSDOMWindowWebAudioCustom.cpp: Added.
        (WebCore::settingsForWindowWebAudio):
        (WebCore::JSDOMWindow::webkitAudioContext):
        * bindings/js/JSDOMWindowWebSocketCustom.cpp: Added.
        (WebCore::settingsForWindowWebSocket):
        (WebCore::JSDOMWindow::webSocket):

        * bindings/scripts/CodeGeneratorJS.pm: Until we implement the [Supplemental] IDL
        on all build systems, we need to temporarily allow two kinds of webkitAudioContext()
        and webSocket().
        (GenerateHeader):

2011-12-16  Zhenyao Mo  <zmo@google.com>

        Postpone deleteRenderbuffer/deleteTexture until all framebuffer attachment points are removed.
        https://bugs.webkit.org/show_bug.cgi?id=74741

        Reviewed by Kenneth Russell.

        Use WebGLObject's attachment count mechanism to track if a renderbuffer/texture
        is still attached to framebuffers, and if its deletion should be delated or not.

        * html/canvas/WebGLFramebuffer.cpp:
        (WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer):
        (WebCore::WebGLFramebuffer::getAttachment):
        (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
        (WebCore::WebGLFramebuffer::deleteObjectImpl):
        (WebCore::WebGLFramebuffer::isBound):
        * html/canvas/WebGLFramebuffer.h:

2011-12-19  Iain Merrick  <husky@google.com>

        [chromium] Accelerated canvas broken in threaded compositing mode
        https://bugs.webkit.org/show_bug.cgi?id=72738

        We were flushing the Skia canvas in updateCompositorResources, which
        is illegal as it runs on the wrong thread. Moved to paintContentsIfDirty
        instead. For correct rendering on the compositor thread, we make a copy
        of the canvas texture in updateCompositorResources.

        Removed m_textureId and pushPropertiesTo from CanvasLayerChromium, as
        it's no longer common between Canvas2DLayerChromium and
        WebGLLayerChromium. WebGL changes do not change functionality.

        Reviewed by James Robinson.

        * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
        (WebCore::Canvas2DLayerChromium::create):
        (WebCore::Canvas2DLayerChromium::Canvas2DLayerChromium):
        (WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium):
        (WebCore::Canvas2DLayerChromium::setTextureId):
        (WebCore::Canvas2DLayerChromium::contentChanged):
        (WebCore::Canvas2DLayerChromium::drawsContent):
        (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
        (WebCore::Canvas2DLayerChromium::setLayerTreeHost):
        (WebCore::Canvas2DLayerChromium::setTextureManager):
        (WebCore::Canvas2DLayerChromium::updateCompositorResources):
        (WebCore::Canvas2DLayerChromium::pushPropertiesTo):
        (WebCore::Canvas2DLayerChromium::unreserveContentsTexture):
        (WebCore::Canvas2DLayerChromium::cleanupResources):
        * platform/graphics/chromium/Canvas2DLayerChromium.h:
        * platform/graphics/chromium/CanvasLayerChromium.cpp:
        (WebCore::CanvasLayerChromium::CanvasLayerChromium):
        * platform/graphics/chromium/CanvasLayerChromium.h:
        * platform/graphics/chromium/WebGLLayerChromium.cpp:
        (WebCore::WebGLLayerChromium::WebGLLayerChromium):
        (WebCore::WebGLLayerChromium::pushPropertiesTo):
        * platform/graphics/chromium/WebGLLayerChromium.h:
        (WebCore::WebGLLayerChromium::textureId):
        (WebCore::WebGLLayerChromium::setTextureId):
        * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
        (WebCore::CCCanvasLayerImpl::textureId):
        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::createAcceleratedCanvas):

2011-12-19  Mike Reed  <reed@google.com>

        [skia] cache typeface in FontPlatformData
        https://bugs.webkit.org/show_bug.cgi?id=74415

        Reviewed by Stephen White.

        No new tests. optimization only, existing tests in play

        * platform/graphics/chromium/FontChromiumWin.cpp:
        (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
        (WebCore::Font::drawGlyphs):
        * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
        (WebCore::CreateTypefaceFromHFont):
        (WebCore::FontPlatformData::FontPlatformData):
        (WebCore::FontPlatformData::operator=):
        (WebCore::FontPlatformData::~FontPlatformData):
        * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
        (WebCore::FontPlatformData::typeface):
        (WebCore::FontPlatformData::lfQuality):
        (WebCore::FontPlatformData::hash):
        * platform/graphics/skia/SkiaFontWin.cpp:
        (WebCore::setupPaintForFont):
        (WebCore::paintSkiaText):
        * platform/graphics/skia/SkiaFontWin.h:

2011-12-04  Robert Hogan  <robert@webkit.org>

        CSS 2.1 failure: border-conflict-element-*
        https://bugs.webkit.org/show_bug.cgi?id=71244

        Reviewed by Darin Adler.

        From http://www.w3.org/TR/CSS21/tables.html#border-conflict-resolution :
         "When two adjacent cells have the same border-width and the same border-style in a 
          'border-collapse: collapse' table, then the color of the border from the leftmost cell wins
          (if the table's 'direction' is 'ltr'; right, if it is 'rtl') and the color of the border
          from the topmost cell wins."

        RenderTable manages collapsed borders by first creating a list of unique border values sorted in ascending
        priority. A unique border value is determined by style, width and color and cell-type precedence. For each 
        entry in this list RenderTableSection paints each cell in its section starting at the top-left. If a cell 
        is using the border RenderTable is currently iterating for, the cell will paint that border. 

        The problems with this approach are:
          1. Painting cells from the top-left to the bottom-right means that borders further to the right and to the bottom
             of the table will paint over those further to the left and the top, breaking the precedence due to cell position.
          2. It creates more unique borders in the list than necessary. Borders that differ only on color do not need to be painted in 
             a separate iteration. Precedence in such cases is determined by cell position.

        So in order to respect cell position when painting collapsed borders:
          1. RenderTableCell now treats borders with the same style, width and precedence as equal. This results in a performance
             improvement on tables where collapsed borders differ only in color, since RenderTable is no longer painting every cell in the table
             for each unique collapsed border color. It also allows color to be a function of cell position rather than border type.
          2. RenderTableSection now paints collapsed borders separately from cells and from the bottom-right to the top-left instead of top-left
             to bottom-right. If a collapsed border has precedence due to style, width or cell-group-type it will still be respected but precedence 
             due to color is enforced by painting cells nearer to the top and left *after* cells nearer to the bottom and right.

        The order in which collapsed borders paint over each other in the same cell has not changed. Unlike Firefox,
        WebKit does not attempt render them as diagonals or attempt to give borders on the edge of the table precedence
        so that grooved and ridged styles have a smooth edge all round the table.

        This fixes the following failing tests from the border-conflict-element-* set
        in the CSS 2.1 test suite:
          border-conflict-element-001d.htm
          border-conflict-element-0037.htm
          border-conflict-element-0038.htm

        One test in the suite is known to be wrong, so a corrected version has been landed outside the 
        css2.1 folder:
          border-conflict-element-002.htm

        This change entails rebaselining quite a few tests, see the LayoutTests ChangeLog for a full
        explanation of the rebaselines.

        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::paint):
        (WebCore::addBorderStyle):
        (WebCore::compareBorderValuesForQSort):
        (WebCore::RenderTableCell::paintCollapsedBorders):
        * rendering/RenderTableCell.h:
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::paintCell):
        (WebCore::RenderTableSection::paintObject):
        * rendering/style/CollapsedBorderValue.h:
        (WebCore::CollapsedBorderValue::isSameIgnoringColor):

2011-12-19  Jer Noble  <jer.noble@apple.com>

        MediaController: cannot scrub while playing.
        https://bugs.webkit.org/show_bug.cgi?id=74870
        rdar://problem/10602037

        Reviewed by Eric Carlson.

        Updated media/media-controller-playback.html test.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::setController): Change order of operations; set the controllers media
            element before passing controller to the controls.
        * html/MediaController.cpp:
        (MediaController::updatePlaybackState): Stop the playback clock when WAITING or ENDED.
        (MediaController::beginScrubbing): Stop the playback clock.
        (MediaController::endScrubbing): Restart (if necessary) the playback clock.
        (MediaController::canPlay): Return true if paused.
        * platform/mac/PlatformClockCA.cpp:
        (PlatformClockCA::setCurrentTime): Stop the CAClock before changing the current time.

2011-12-19  Adam Barth  <abarth@webkit.org>

        We don't pass all of the html5lib unsafe-text.dat tests
        https://bugs.webkit.org/show_bug.cgi?id=74825

        Reviewed by Eric Seidel.

        This patch is actually three (tiny) related patches.  Together these
        changes cause use to pass the plain-text-unsafe.dat tests from html5lib.

        Tests: html5lib/runner.html

        * html/parser/HTMLTokenizer.cpp:
        (WebCore::::shouldSkipNullCharacters):
            - We're not supposed to skip null characters in the PLAINTEXTState.
              This might cause compatibility problems with text/plain documents
              that contains NUL characters because we use the PLAINTEXTState
              to parse them.  If we run into any trouble, it's easy to fix in
              TextDocumentParser.
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::constructTreeFromToken):
            - Fix typo.
        (WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
            - We're supposed to replace NUL characters if the next character
              token if we're in foreign content.  The previous check didn't
              quite get this case correctly.
        (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
            - Now that we replace NUL characters with the replacement
              character, we need to be more careful about the fact that
              replacement characters don't flip m_framesetOk to false.  Note:
              This new check matches the check for non-foreign content.

2011-12-19  Adam Barth  <abarth@webkit.org>

        WebKit should support HTML entities that expand to more than one character
        https://bugs.webkit.org/show_bug.cgi?id=74826

        Reviewed by Darin Adler.

        Tests: html5lib/runner.html

        * html/parser/HTMLEntityNames.in:
            - Add missing HTML entities from HTML5 spec.  I'll sort this file
              in a followup patch.  (It's not quite sorted perfectly and
              sorting in this patch would introduce noise into the patch.)
        * html/parser/HTMLEntityParser.cpp:
        (WebCore::decodeNamedEntity):
            - convertToUTF16 always returns true, so make it return void instead.
            - Teach the entity parse that some entities expand to two characters.
        * html/parser/HTMLEntityParser.h:
            - Add a warning that decodeNamedEntity is really a broken API.
            - This patch doesn't actually change any behavior of this API, but
              it does illustrate that the two callers of this API (the two XML
              parsers) really need to move a more sensible API.
        * html/parser/HTMLEntitySearch.cpp:
        (WebCore::HTMLEntitySearch::HTMLEntitySearch):
        (WebCore::HTMLEntitySearch::advance):
        * html/parser/HTMLEntitySearch.h:
        (WebCore::HTMLEntitySearch::fail):
            - Remove the concept of currentValue.  This isn't really used for
              anything and conflicts with the idea that entities can expand
              to more than one character.
        * html/parser/HTMLEntityTable.h:
            - Add storage for two UChar32 values per entity.
        * html/parser/create-html-entity-table:
        (convert_value_to_int):
            - Teach this script to handle entities that expand to multiple
              Unicode characters.
        * xml/parser/CharacterReferenceParserInlineMethods.h:
        (WebCore::consumeCharacterReference):
            - Update this function now that convertToUTF16 returns void.
        * xml/parser/XMLCharacterReferenceParser.cpp:
            - The XML version of convertToUTF16 also needs to return void to
              match the HTML signature.  (It used to return true all the time
              as well.)
        * xml/parser/XMLTreeBuilder.cpp:
        (WebCore::XMLTreeBuilder::processHTMLEntity):
            - Update this caller use leftValue instead of value.  My sense is
              that this code is moderately broken today because it's using HTML
              entities in parsing XML.  I've added a FIXME.  This code is
              disabled in all builds, so I don't feel a big need to fix this
              issue in this patch.  We should either finish this project or
              delete this complexity from the project.

2011-12-19  Andreas Kling  <kling@webkit.org>

        Avoid instantiating ScrollAnimators when possible.
        <http://webkit.org/b/74830>

        Reviewed by Beth Dakin.

        Have RenderLayer::scrollToOffset() check if we're scrolling to the already
        current offset. In that case, don't call down to scrollToOffsetWithoutAnimation(),
        avoiding the instantiation of a ScrollAnimator.

        This reduces memory consumption by 400 kB (on 32-bit) when viewing the full HTML5
        spec on <http://whatwg.org/c>, since we were creating a ScrollAnimator for every
        single RenderLayer.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollToOffset):

2011-12-19  Chris Guan  <chris.guan@torchmobile.com.cn>

        [BlackBerry] remove one file related to multipart from the BlackBerry build system
        https://bugs.webkit.org/show_bug.cgi?id=74839

        Reviewed by Daniel Bates.

        After refactored multipart, the code of MultipartResponseDelegate have been moved 
        out of WebCore, we do not need to upstream MultipartResponseDelegate any more. 
        So remove it from PlatformBlackBerry.cmake to update build system. 
        
        * PlatformBlackBerry.cmake:

2011-12-15  Geoffrey Garen  <ggaren@apple.com>

        Placement new does an unnecessary NULL check
        https://bugs.webkit.org/show_bug.cgi?id=74676

        Reviewed by Sam Weinig.

        * bindings/js/JSImageConstructor.h:
        (WebCore::JSImageConstructor::create):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateConstructorDeclaration):
        * bridge/c/CRuntimeObject.h:
        (JSC::Bindings::CRuntimeObject::create):
        * bridge/c/c_instance.cpp:
        (JSC::Bindings::CRuntimeMethod::create):
        * bridge/jni/jsc/JavaInstanceJSC.cpp:
        (JavaRuntimeMethod::create):
        * bridge/jni/jsc/JavaRuntimeObject.h:
        (JSC::Bindings::JavaRuntimeObject::create):
        * bridge/objc/ObjCRuntimeObject.h:
        (JSC::Bindings::ObjCRuntimeObject::create):
        * bridge/objc/objc_instance.mm:
        (ObjCRuntimeMethod::create):
        * bridge/objc/objc_runtime.h:
        (JSC::Bindings::ObjcFallbackObjectImp::create):
        * bridge/runtime_array.h:
        (JSC::RuntimeArray::create):
        * bridge/runtime_method.h:
        (JSC::RuntimeMethod::create):
        * bridge/runtime_object.h:
        (JSC::Bindings::RuntimeObject::create):
        * dom/Document.h:
        (WebCore::FormElementKeyHashTraits::constructDeletedValue): Use NotNull
        placement new, as in JavaScriptCore.

        * platform/PODArena.h:
        (WebCore::PODArena::allocateObject): No need to check for NULL explicitly,
        since that's the built-in behavior of placement new.

        * platform/graphics/FontCache.cpp:
        (WebCore::FontDataCacheKeyTraits::constructDeletedValue):
        * platform/graphics/IntRectHash.h:
        * platform/graphics/IntSizeHash.h: More NotNull.

        * rendering/RenderObject.h: Declaring that we throw is the C++ way to say
        that operator new will not return NULL.

2011-12-19  Eric Carlson  <eric.carlson@apple.com>

        Render text tracks
        https://bugs.webkit.org/show_bug.cgi?id=62886

        Reviewed by Sam Weinig.

        Test: media/track/track-cue-rendering.html

        * css/mediaControls.css:
        (video::-webkit-media-text-track-container):
        (video::-webkit-media-text-track-display):

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_haveVisibleTextTrack.
        (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Trigger an update of the text
            track display.
        (WebCore::HTMLMediaElement::textTrackModeChanged): call configureTextTrackDisplay() so 
            the text track display is hidden or shown when necessary.
        (WebCore::HTMLMediaElement::userIsInterestedInThisTrack): Minor cleanup.
        (WebCore::HTMLMediaElement::createMediaControls): configureMediaControls() always called
            reset after creating the controls, do it here instead.
        (WebCore::HTMLMediaElement::configureMediaControls): Simplify and cleanup.
        (WebCore::HTMLMediaElement::configureTextTrackDisplay): Show and hide text track display.
        * html/HTMLMediaElement.h:
        (WebCore::HTMLMediaElement::currentlyVisibleCues):

        * html/shadow/MediaControlElements.cpp:
        (WebCore::RenderTextTrackContainerElement::RenderTextTrackContainerElement): New.
        (WebCore::RenderTextTrackContainerElement::layout): New. Call the display element so it can
            update the position and font size.
        (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement): New.
        (WebCore::MediaControlTextTrackContainerElement::create): Ditto.
        (WebCore::MediaControlTextTrackContainerElement::createRenderer): Ditto.
        (WebCore::MediaControlTextTrackContainerElement::shadowPseudoId): Ditto.
        (WebCore::MediaControlTextTrackContainerElement::updateSizes): Keep the cue display element
            positioned above the bottom of the video box, and size the font according to the video height.
        (WebCore::MediaControlTextTrackDisplayElement::MediaControlTextTrackDisplayElement): New.
        (WebCore::MediaControlTextTrackDisplayElement::create): Ditto.
        (WebCore::MediaControlTextTrackDisplayElement::shadowPseudoId): Ditto.
        * html/shadow/MediaControlElements.h:
        (WebCore::MediaControlTextTrackContainerElement::displayType):
        (WebCore::MediaControlTextTrackDisplayElement::displayType):

        * html/shadow/MediaControlRootElement.cpp:
        (WebCore::MediaControlRootElement::MediaControlRootElement): New.
        (WebCore::MediaControlRootElement::setMediaController): Ditto.
        (WebCore::MediaControlRootElement::createTextTrackDisplay): Ditto.
        (WebCore::MediaControlRootElement::showTextTrackDisplay): Ditto.
        (WebCore::MediaControlRootElement::hideTextTrackDisplay): Ditto.
        (WebCore::MediaControlRootElement::updateTextTrackDisplay): Ditto.
        * html/shadow/MediaControlRootElement.h:

        * html/shadow/MediaControlRootElementChromium.cpp:
        (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium): New.
        (WebCore::MediaControlRootElement::createTextTrackDisplay): Ditto.
        (WebCore::MediaControlRootElement::showTextTrackDisplay): Ditto.
        (WebCore::MediaControlRootElement::hideTextTrackDisplay): Ditto.
        (WebCore::MediaControlRootElement::updateTextTrackDisplay): Ditto.
        * html/shadow/MediaControlRootElementChromium.h:
        * html/shadow/MediaControls.h:

2011-12-19  Eric Carlson  <eric.carlson@apple.com>

        Enable <track> for Mac build
        https://bugs.webkit.org/show_bug.cgi?id=74838

        Reviewed by Darin Adler.

        * Configurations/FeatureDefines.xcconfig:
        * bindings/generic/RuntimeEnabledFeatures.cpp:

2011-12-19  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Make the Editor::setIgnoreCompositionSelectionChange public as it is needed by Qt

        Reviewed by Simon Hausmann.

        * editing/Editor.h:

2011-12-19  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Implement CSS selector profiler backend
        https://bugs.webkit.org/show_bug.cgi?id=74603

        Reviewed by Pavel Feldman.

        No new tests, as the changed code does not result in visible effects yet.

        * inspector/Inspector.json:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::RuleMatchingStats::RuleMatchingStats):
        (WebCore::SelectorProfile::SelectorProfile):
        (WebCore::SelectorProfile::~SelectorProfile):
        (WebCore::SelectorProfile::totalMatchingTimeMs):
        (WebCore::SelectorProfile::startSelector):
        (WebCore::SelectorProfile::commitSelector):
        (WebCore::SelectorProfile::commitSelectorTime):
        (WebCore::SelectorProfile::toInspectorObject):
        (WebCore::InspectorCSSAgent::clearFrontend):
        (WebCore::InspectorCSSAgent::restore):
        (WebCore::InspectorCSSAgent::startSelectorProfiler):
        (WebCore::InspectorCSSAgent::stopSelectorProfiler):
        (WebCore::InspectorCSSAgent::willMatchRule):
        (WebCore::InspectorCSSAgent::didMatchRule):
        (WebCore::InspectorCSSAgent::willProcessRule):
        (WebCore::InspectorCSSAgent::didProcessRule):
        * inspector/InspectorCSSAgent.h:

2011-12-19  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Status bar button glyph for the "Record" buttons broken
        https://bugs.webkit.org/show_bug.cgi?id=74861

        Reviewed by Pavel Feldman.

        * inspector/front-end/inspector.css:
        (.record-cpu-profile-status-bar-item .glyph, .record-profile-status-bar-item .glyph):
        (.record-cpu-profile-status-bar-item.toggled-on .glyph, .record-profile-status-bar-item.toggled-on .glyph):

2011-12-19  Pavel Feldman  <pavel.feldman@gmail.com>

        Web Inspector: only the first @rule is highlighted in CSS
        https://bugs.webkit.org/show_bug.cgi?id=74568

        Reviewed by Timothy Hatcher.

        * inspector/front-end/SourceCSSTokenizer.js:
        (WebInspector.SourceCSSTokenizer.prototype.nextToken):
        * inspector/front-end/SourceCSSTokenizer.re2js:

2011-12-19  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: Feature Request: Able to remove all breakpoints.
        https://bugs.webkit.org/show_bug.cgi?id=63055

        Reviewed by Pavel Feldman.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/BreakpointManager.js:
        (WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
        * inspector/front-end/BreakpointsSidebarPane.js:
        (WebInspector.JavaScriptBreakpointsSidebarPane):
        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu):
        (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._contextMenu):
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype.removeAllBreakpoints):

2011-12-19  Benjamin Poulain  <benjamin@webkit.org>

        Build fix for ScrollingCoordinatorMac.mm when building on a case sensitive system

        Unreviewed build fix for r103180. StdlibExtras.h->StdLibExtras.h to compile on case sensitive system.

        * page/mac/ScrollingCoordinatorMac.mm:

2011-12-19  Kentaro Hara  <haraken@chromium.org>

        Remove unnecessary [JSCCustomGetter] IDLs from DOMWindow.idl
        https://bugs.webkit.org/show_bug.cgi?id=74829

        Reviewed by Adam Barth.

        Now JSC has implemented the [Constructor] IDL and it generates
        getDOMConstructor() automatically. This patch removes hand-written
        unnecessary getDOMConstructor()s from JSDOMWindowCustom.cpp.

        No new tests. No change in behavior.

        * bindings/js/JSDOMWindowCustom.cpp:
        * page/DOMWindow.idl:

2011-12-19  Adam Barth  <abarth@webkit.org>

        The HTML parser doesn't enforce the "Noah's Ark condition" from the HTML5 spec
        https://bugs.webkit.org/show_bug.cgi?id=74828

        Reviewed by Darin Adler.

        This patch implement the "Noah's Ark condition" from the HTML5
        specification.  This condition limits the number of identitical
        elements that can be in the list of active formatting elements.  I'm not
        entirely sure that enforcing this condition is worth the complexity,
        but given that we've come this far in support of the HTML5 parsing
        algorithm, we might as well finish it.

        After this patch, we pass all but one of the html5lib parsing tests!

        Tests: html5lib/runner.html

        * html/parser/HTMLFormattingElementList.cpp:
        (WebCore::attributeCount):
        (WebCore::HTMLFormattingElementList::append):
        (WebCore::HTMLFormattingElementList::tryToEnsureNoahsArkConditionQuickly):
        (WebCore::HTMLFormattingElementList::ensureNoahsArkCondition):
        * html/parser/HTMLFormattingElementList.h:

2011-12-19  Benjamin Poulain  <bpoulain@apple.com>

        Add support for 8 bits strings to Document::isValidName()
        https://bugs.webkit.org/show_bug.cgi?id=74784

        Reviewed by Darin Adler.

        Avoid the conversion to 16bits when we are in the ASCII fast path,
        otherwise fallback to the Unicode testing in 16bits.

        * dom/Document.cpp:
        (WebCore::isValidNameASCII):
        (WebCore::Document::isValidName):

2011-12-18  Kentaro Hara  <haraken@chromium.org>

        REGRESSION(r101445): [JSC] Generated code for custom getters and setters
        with the [Supplemental] IDL is wrong
        https://bugs.webkit.org/show_bug.cgi?id=74837

        Reviewed by Darin Adler.

        In bug 73162, we implemented the [Supplemental] IDL, but the generated code
        for custom getters and setters was wrong in JSC. This patch fixes CodeGeneratorJS.pm
        so that the result of WebCore/bindings/scripts/test/TestInterface.idl becomes as follows:

        Wrong:
            JSValue jsTestInterfaceStr3(ExecState* exec, JSValue slotBase, const Identifier&)
            {
                JSTestInterface* castedThis = static_cast<JSTestInterface*>(asObject(slotBase));
                return JSTestSupplemental::str3(castedThis, exec);
            }

        Correct:
            JSValue jsTestInterfaceStr3(ExecState* exec, JSValue slotBase, const Identifier&)
            {
                JSTestInterface* castedThis = static_cast<JSTestInterface*>(asObject(slotBase));
                TestInterface* imp = static_cast<TestInterface*>(castedThis->impl());
                return castedThis->str3(imp, exec);
            }

        Tests: bindings/scripts/test/JS/TestInterface.idl

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/test/JS/JSTestInterface.cpp: Updated run-bindings-tests result.
        (WebCore::jsTestInterfaceStr3):
        (WebCore::setJSTestInterfaceStr3):
        * bindings/scripts/test/JS/JSTestInterface.h: Ditto.

2011-12-18  Adam Barth  <abarth@webkit.org>

        Fix typo in comment.

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):

2011-12-18  Keishi Hattori  <keishi@webkit.org>

        Implement <input type=color> UI WebKit chromium part
        https://bugs.webkit.org/show_bug.cgi?id=65897

        Reviewed by Darin Fisher.

        * GNUmakefile.list.am: Removed ColorChooser.cpp and added ColorChooserClient.h
        * WebCore.gypi: Added ColorChooser.h and ColorChooserClient.h
        * WebCore.xcodeproj/project.pbxproj: Removed ColorChooser.cpp and added ColorChooserClient.h

2011-12-18  David Barton  <dbarton@mathscribe.com>

        <msup>, <munder>, <mover>, and <munderover> baseline positions are wrong
        https://bugs.webkit.org/show_bug.cgi?id=72821

        Reviewed by Darin Adler.

        Tested by rebaselining 8 existing tests. (Pardon the pun.)

        * rendering/mathml/RenderMathMLSubSup.cpp:
        (WebCore::RenderMathMLSubSup::baselinePosition):
        Just using the base's (these puns are not my fault) baseline did not leave room for the exponent.
        * rendering/mathml/RenderMathMLUnderOver.cpp:
        (WebCore::RenderMathMLUnderOver::baselinePosition):
        Added a guard condition, and removed some bad lines apparently mistakenly copied from RenderMathMLSubSup.cpp.

2011-12-18  Luke Macpherson   <macpherson@chromium.org>

        Implement CSS line-height property in CSSStyleApplyProperty.
        https://bugs.webkit.org/show_bug.cgi?id=74561

        Reviewed by Andreas Kling.

        No new tests / refactoring only.

        * css/CSSPrimitiveValue.h:
        (WebCore::CSSPrimitiveValue::isNumber):
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyLineHeight::applyValue):
        (WebCore::ApplyPropertyLineHeight::createHandler):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):

2011-12-18  Luke Macpherson   <macpherson@chromium.org>

        Implement CSS outline shorthand property in CSSStyleApplyProperty.
        https://bugs.webkit.org/show_bug.cgi?id=74467

        Reviewed by Andreas Kling.

        No new tests / refactoring only.

        RenderStyle::resetOutline was removed in favor of explicity expanding to the
        initial values of the shorthand expansion. This improves consistency because
        the initial values to use are more clearly (and singularly) defined.

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * rendering/style/RenderStyle.h:

2011-12-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r103205.
        http://trac.webkit.org/changeset/103205
        https://bugs.webkit.org/show_bug.cgi?id=74833

        There are valid characters above 0x80 when the  string is
        8bits (Requested by benjaminp on #webkit).

        * dom/Document.cpp:
        (WebCore::isValidNameASCII):
        (WebCore::Document::isValidName):

2011-12-18  Luke Macpherson   <macpherson@chromium.org>

        Separate box alignment and box pack values into separate enums.
        https://bugs.webkit.org/show_bug.cgi?id=74580

        Reviewed by Andreas Kling.

        No new tests / refactoring only.

        Separating these types cleans up the code by removing several assertions that
        values are in the correct ranges, as this is ensured by the type system.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator EBoxPack):
        (WebCore::CSSPrimitiveValue::operator EBoxAlignment):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * rendering/RenderDeprecatedFlexibleBox.cpp:
        (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
        (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
        * rendering/RenderFullScreen.cpp:
        (createFullScreenStyle):
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::boxPack):
        (WebCore::InheritedFlags::setBoxAlign):
        (WebCore::InheritedFlags::setBoxPack):
        (WebCore::InheritedFlags::initialBoxPack):
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleDeprecatedFlexibleBoxData.h:

2011-12-18  Luke Macpherson   <macpherson@chromium.org>

        Implement CSS font-size property in CSSStyleApplyProperty.
        https://bugs.webkit.org/show_bug.cgi?id=74368

        Reviewed by Andreas Kling.

        No new tests / refactoring only.

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyFontSize::largerFontSize):
        (WebCore::ApplyPropertyFontSize::smallerFontSize):
        (WebCore::ApplyPropertyFontSize::applyInheritValue):
        (WebCore::ApplyPropertyFontSize::applyInitialValue):
        (WebCore::ApplyPropertyFontSize::applyValue):
        (WebCore::ApplyPropertyFontSize::createHandler):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSStyleSelector.h:
        (WebCore::CSSStyleSelector::hasParentNode):

2011-12-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r103199.
        http://trac.webkit.org/changeset/103199
        https://bugs.webkit.org/show_bug.cgi?id=74832

        Caused a bot crashiness extravaganza! (Requested by kling on
        #webkit).

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

2011-12-18  Dan Bernstein  <mitz@apple.com>

        Positioned Floats: Assertion hit in fast/block/positioning/positioned-float-layout-after-image-load.html
        https://bugs.webkit.org/show_bug.cgi?id=67759

        Reviewed by Darin Adler.

        Test: fast/block/positioning/positioned-float-layout-after-image-load.html

        Positioned floats are both floating and positioned. Made the following functions treat them as
        positioned rather than as floats by reordering code.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::LineBreaker::skipTrailingWhitespace):
        (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
        (WebCore::RenderBlock::LineBreaker::nextLineBreak):

2011-12-18  Benjamin Poulain  <bpoulain@apple.com>

        Add support for 8 bits strings to Document::isValidName()
        https://bugs.webkit.org/show_bug.cgi?id=74784

        Reviewed by Andreas Kling.

        The valid name has a fast path for ASCII, and a slow path
        taking Unicode characters into account.

        For 8-bit strings, we don't need to take the non-ASCII path
        as it could never succeed if the ASCII path didn't.

        * dom/Document.cpp:
        (WebCore::isValidNameASCII):
        (WebCore::Document::isValidName):

2011-12-18  Huang Dongsung  <luxtella@company100.net>

        [Qt] Remove redundant m_glWidget->makeCurrent() calls in GraphicsContext3DQt.
        https://bugs.webkit.org/show_bug.cgi?id=73814

        It causes a performance hit.
        Moved the redundant function calls to makeContextCurrent().

        Reviewed by Noam Rosenthal.

        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
        (WebCore::GraphicsContext3DPrivate::paint):
        (WebCore::GraphicsContext3DPrivate::makeCurrentIfNeeded):
        (WebCore::GraphicsContext3D::~GraphicsContext3D):
        (WebCore::GraphicsContext3D::makeContextCurrent):
        (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
        (WebCore::GraphicsContext3D::reshape):
        (WebCore::GraphicsContext3D::activeTexture):
        (WebCore::GraphicsContext3D::attachShader):
        (WebCore::GraphicsContext3D::getAttachedShaders):
        (WebCore::GraphicsContext3D::bindAttribLocation):
        (WebCore::GraphicsContext3D::bindBuffer):
        (WebCore::GraphicsContext3D::bindFramebuffer):
        (WebCore::GraphicsContext3D::bindRenderbuffer):
        (WebCore::GraphicsContext3D::bindTexture):
        (WebCore::GraphicsContext3D::blendColor):
        (WebCore::GraphicsContext3D::blendEquation):
        (WebCore::GraphicsContext3D::blendEquationSeparate):
        (WebCore::GraphicsContext3D::blendFunc):
        (WebCore::GraphicsContext3D::blendFuncSeparate):
        (WebCore::GraphicsContext3D::bufferData):
        (WebCore::GraphicsContext3D::bufferSubData):
        (WebCore::GraphicsContext3D::checkFramebufferStatus):
        (WebCore::GraphicsContext3D::clearColor):
        (WebCore::GraphicsContext3D::clear):
        (WebCore::GraphicsContext3D::clearDepth):
        (WebCore::GraphicsContext3D::clearStencil):
        (WebCore::GraphicsContext3D::colorMask):
        (WebCore::GraphicsContext3D::compileShader):
        (WebCore::GraphicsContext3D::compressedTexImage2D):
        (WebCore::GraphicsContext3D::compressedTexSubImage2D):
        (WebCore::GraphicsContext3D::copyTexImage2D):
        (WebCore::GraphicsContext3D::copyTexSubImage2D):
        (WebCore::GraphicsContext3D::cullFace):
        (WebCore::GraphicsContext3D::depthFunc):
        (WebCore::GraphicsContext3D::depthMask):
        (WebCore::GraphicsContext3D::depthRange):
        (WebCore::GraphicsContext3D::detachShader):
        (WebCore::GraphicsContext3D::disable):
        (WebCore::GraphicsContext3D::disableVertexAttribArray):
        (WebCore::GraphicsContext3D::drawArrays):
        (WebCore::GraphicsContext3D::drawElements):
        (WebCore::GraphicsContext3D::enable):
        (WebCore::GraphicsContext3D::enableVertexAttribArray):
        (WebCore::GraphicsContext3D::finish):
        (WebCore::GraphicsContext3D::flush):
        (WebCore::GraphicsContext3D::framebufferRenderbuffer):
        (WebCore::GraphicsContext3D::framebufferTexture2D):
        (WebCore::GraphicsContext3D::frontFace):
        (WebCore::GraphicsContext3D::generateMipmap):
        (WebCore::GraphicsContext3D::getActiveAttrib):
        (WebCore::GraphicsContext3D::getActiveUniform):
        (WebCore::GraphicsContext3D::getAttribLocation):
        (WebCore::GraphicsContext3D::getError):
        (WebCore::GraphicsContext3D::getString):
        (WebCore::GraphicsContext3D::hint):
        (WebCore::GraphicsContext3D::isBuffer):
        (WebCore::GraphicsContext3D::isEnabled):
        (WebCore::GraphicsContext3D::isFramebuffer):
        (WebCore::GraphicsContext3D::isProgram):
        (WebCore::GraphicsContext3D::isRenderbuffer):
        (WebCore::GraphicsContext3D::isShader):
        (WebCore::GraphicsContext3D::isTexture):
        (WebCore::GraphicsContext3D::lineWidth):
        (WebCore::GraphicsContext3D::linkProgram):
        (WebCore::GraphicsContext3D::pixelStorei):
        (WebCore::GraphicsContext3D::polygonOffset):
        (WebCore::GraphicsContext3D::readPixels):
        (WebCore::GraphicsContext3D::releaseShaderCompiler):
        (WebCore::GraphicsContext3D::renderbufferStorage):
        (WebCore::GraphicsContext3D::sampleCoverage):
        (WebCore::GraphicsContext3D::scissor):
        (WebCore::GraphicsContext3D::shaderSource):
        (WebCore::GraphicsContext3D::stencilFunc):
        (WebCore::GraphicsContext3D::stencilFuncSeparate):
        (WebCore::GraphicsContext3D::stencilMask):
        (WebCore::GraphicsContext3D::stencilMaskSeparate):
        (WebCore::GraphicsContext3D::stencilOp):
        (WebCore::GraphicsContext3D::stencilOpSeparate):
        (WebCore::GraphicsContext3D::texParameterf):
        (WebCore::GraphicsContext3D::texParameteri):
        (WebCore::GraphicsContext3D::uniform1f):
        (WebCore::GraphicsContext3D::uniform1fv):
        (WebCore::GraphicsContext3D::uniform2f):
        (WebCore::GraphicsContext3D::uniform2fv):
        (WebCore::GraphicsContext3D::uniform3f):
        (WebCore::GraphicsContext3D::uniform3fv):
        (WebCore::GraphicsContext3D::uniform4f):
        (WebCore::GraphicsContext3D::uniform4fv):
        (WebCore::GraphicsContext3D::uniform1i):
        (WebCore::GraphicsContext3D::uniform1iv):
        (WebCore::GraphicsContext3D::uniform2i):
        (WebCore::GraphicsContext3D::uniform2iv):
        (WebCore::GraphicsContext3D::uniform3i):
        (WebCore::GraphicsContext3D::uniform3iv):
        (WebCore::GraphicsContext3D::uniform4i):
        (WebCore::GraphicsContext3D::uniform4iv):
        (WebCore::GraphicsContext3D::uniformMatrix2fv):
        (WebCore::GraphicsContext3D::uniformMatrix3fv):
        (WebCore::GraphicsContext3D::uniformMatrix4fv):
        (WebCore::GraphicsContext3D::useProgram):
        (WebCore::GraphicsContext3D::validateProgram):
        (WebCore::GraphicsContext3D::vertexAttrib1f):
        (WebCore::GraphicsContext3D::vertexAttrib1fv):
        (WebCore::GraphicsContext3D::vertexAttrib2f):
        (WebCore::GraphicsContext3D::vertexAttrib2fv):
        (WebCore::GraphicsContext3D::vertexAttrib3f):
        (WebCore::GraphicsContext3D::vertexAttrib3fv):
        (WebCore::GraphicsContext3D::vertexAttrib4f):
        (WebCore::GraphicsContext3D::vertexAttrib4fv):
        (WebCore::GraphicsContext3D::vertexAttribPointer):
        (WebCore::GraphicsContext3D::viewport):
        (WebCore::GraphicsContext3D::getBooleanv):
        (WebCore::GraphicsContext3D::getBufferParameteriv):
        (WebCore::GraphicsContext3D::getFloatv):
        (WebCore::GraphicsContext3D::getFramebufferAttachmentParameteriv):
        (WebCore::GraphicsContext3D::getIntegerv):
        (WebCore::GraphicsContext3D::getProgramiv):
        (WebCore::GraphicsContext3D::getProgramInfoLog):
        (WebCore::GraphicsContext3D::getRenderbufferParameteriv):
        (WebCore::GraphicsContext3D::getShaderiv):
        (WebCore::GraphicsContext3D::getShaderInfoLog):
        (WebCore::GraphicsContext3D::getShaderSource):
        (WebCore::GraphicsContext3D::getTexParameterfv):
        (WebCore::GraphicsContext3D::getTexParameteriv):
        (WebCore::GraphicsContext3D::getUniformfv):
        (WebCore::GraphicsContext3D::getUniformiv):
        (WebCore::GraphicsContext3D::getUniformLocation):
        (WebCore::GraphicsContext3D::getVertexAttribfv):
        (WebCore::GraphicsContext3D::getVertexAttribiv):
        (WebCore::GraphicsContext3D::getVertexAttribOffset):
        (WebCore::GraphicsContext3D::texImage2D):
        (WebCore::GraphicsContext3D::texSubImage2D):
        (WebCore::GraphicsContext3D::createBuffer):
        (WebCore::GraphicsContext3D::createFramebuffer):
        (WebCore::GraphicsContext3D::createProgram):
        (WebCore::GraphicsContext3D::createRenderbuffer):
        (WebCore::GraphicsContext3D::createShader):
        (WebCore::GraphicsContext3D::createTexture):
        (WebCore::GraphicsContext3D::deleteBuffer):
        (WebCore::GraphicsContext3D::deleteFramebuffer):
        (WebCore::GraphicsContext3D::deleteProgram):
        (WebCore::GraphicsContext3D::deleteRenderbuffer):
        (WebCore::GraphicsContext3D::deleteShader):
        (WebCore::GraphicsContext3D::deleteTexture):

2011-12-18  Andreas Kling  <kling@webkit.org>

        Removing unrelated printf() that slipped into my last commit.

        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::scrollToOffsetWithoutAnimation):

2011-12-18  Andreas Kling  <kling@webkit.org>

        KURL::protocolIs() should handle 8-bit strings.
        <http://webkit.org/b/74827>

        Reviewed by Antti Koivisto.

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

            Turned this into a template method so it can be used for both UChar and LChar.

        (WebCore::charactersAreProtocol):
        (WebCore::protocolIs):

            Handle 8/16 bit strings separately to avoid conversion.

2011-12-18  Alice Boxhall  <aboxhall@chromium.org>

        Make AccessibilityObject::lineForPosition return the correct value for cases where the position is not within the current object.
        https://bugs.webkit.org/show_bug.cgi?id=71348

        Reviewed by Chris Fleizach.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::lineForPosition):
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

2011-12-18  Sam Weinig  <sam@webkit.org>

        Make EventHandler::handleWheelEvent take const PlatformWheelEvent&
        https://bugs.webkit.org/show_bug.cgi?id=74824

        Reviewed by Anders Carlsson.

        * WebCore.exp.in:
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleWheelEvent):
        * page/EventHandler.h:
        * page/blackberry/EventHandlerBlackBerry.cpp:
        (WebCore::EventHandler::passWheelEventToWidget):
        * page/chromium/EventHandlerChromium.cpp:
        (WebCore::EventHandler::passWheelEventToWidget):
        * page/efl/EventHandlerEfl.cpp:
        (WebCore::EventHandler::passWheelEventToWidget):
        * page/gtk/EventHandlerGtk.cpp:
        (WebCore::EventHandler::passWheelEventToWidget):
        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::passWheelEventToWidget):
        * page/qt/EventHandlerQt.cpp:
        (WebCore::EventHandler::passWheelEventToWidget):
        * page/win/EventHandlerWin.cpp:
        (WebCore::EventHandler::passWheelEventToWidget):
        * page/wx/EventHandlerWx.cpp:
        (WebCore::EventHandler::passWheelEventToWidget):
        * platform/PlatformWheelEvent.h:
        (WebCore::PlatformWheelEvent::copyTurningVerticalTicksIntoHorizontalTicks):

2011-12-18  James Kozianski  <koz@chromium.org>

        [chromium] Add worldId parameter to allowScriptExtension()
        https://bugs.webkit.org/show_bug.cgi?id=74214

        Chromium uses the worldId to determine what extension is running in a
        v8 context and knowing that at the time allowScriptExtension() is
        called allows us to conditionally inject extension APIs.

        Reviewed by Darin Fisher.

        * bindings/v8/V8DOMWindowShell.cpp:
        (WebCore::V8DOMWindowShell::initContextIfNeeded):
        (WebCore::V8DOMWindowShell::createNewContext):
        * bindings/v8/V8DOMWindowShell.h:
        * bindings/v8/V8IsolatedContext.cpp:
        (WebCore::V8IsolatedContext::V8IsolatedContext):
        * loader/EmptyClients.h:
        (WebCore::EmptyFrameLoaderClient::allowScriptExtension):
        * loader/FrameLoaderClient.h:

2011-12-18  Adam Barth  <abarth@webkit.org>

        Adoption agency iteration limits in HTML parser don't match HTML5 spec
        https://bugs.webkit.org/show_bug.cgi?id=74822

        Reviewed by Eric Seidel.

        Previously, we were using the iteration limits from the old tree
        builder.  Now we use the iteration limits from the HTML5 specification.

        Tests: html5lib/runner.html

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):

2011-12-18  Antti Koivisto  <antti@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=73954
        REGRESSION (r97745): Transitions don't work on links

        Reviewed by Andreas Kling.

        Test: transitions/visited-link-color.html
        
        Since visited link colors are now part of the RenderStyle, they need to be transitioned
        along with the corresponding regular colors.

        * page/animation/AnimationBase.cpp:
        (WebCore::PropertyWrapperVisitedAffectedColor::PropertyWrapperVisitedAffectedColor):
        (WebCore::PropertyWrapperVisitedAffectedColor::equals):
        (WebCore::PropertyWrapperVisitedAffectedColor::blend):
        (WebCore::AnimationBase::ensurePropertyMap):
        
            Add new wrapper class that applies both regular and visited color.
        
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::visitedLinkColor):
        (WebCore::InheritedFlags::visitedLinkBackgroundColor):
        (WebCore::InheritedFlags::visitedLinkBorderLeftColor):
        (WebCore::InheritedFlags::visitedLinkBorderRightColor):
        (WebCore::InheritedFlags::visitedLinkBorderBottomColor):
        (WebCore::InheritedFlags::visitedLinkBorderTopColor):
        (WebCore::InheritedFlags::visitedLinkOutlineColor):
        (WebCore::InheritedFlags::visitedLinkColumnRuleColor):
        (WebCore::InheritedFlags::visitedLinkTextEmphasisColor):
        (WebCore::InheritedFlags::visitedLinkTextFillColor):
        (WebCore::InheritedFlags::visitedLinkTextStrokeColor):
        
            Add accessors.
        
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        
            Opportunistic fix. Don't know how to test.

2011-12-18  Anders Carlsson  <andersca@apple.com>

        Set the main frame view scroll position asynchronously
        https://bugs.webkit.org/show_bug.cgi?id=74823

        Reviewed by Sam Weinig.

        * page/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::ScrollingCoordinator):
        Initialize m_didDispatchDidUpdateMainFrameScrollPosition to false.

        (WebCore::ScrollingCoordinator::didUpdateMainFrameScrollPosition):
        Get the scroll position, reset m_didDispatchDidUpdateMainFrameScrollPosition to false and
        then call FrameView::setScrollOffset to update the scroll position.

        * page/ScrollingCoordinator.h:
        * page/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinator::scrollByOnScrollingThread):
        Update the scroll position and dispatch ScrollingCoordinator::didUpdateMainFrameScrollPosition on
        the main thread if needed.

2011-12-18  Andreas Kling  <kling@webkit.org>

        JSC/HTMLCollection: Optimize canGetItemsForName().
        <http://webkit.org/b/74806>

        Reviewed by Sam Weinig.

        Add HTMLCollection::hasNamedItem(name) and use that in the JSC bindings'
        canGetItemsForName() instead of fetching the list of named items just to
        check if it's empty or not.

        * bindings/js/JSHTMLAllCollectionCustom.cpp:
        (WebCore::JSHTMLAllCollection::canGetItemsForName):
        * bindings/js/JSHTMLCollectionCustom.cpp:
        (WebCore::JSHTMLCollection::canGetItemsForName):
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::hasNamedItem):
        * html/HTMLCollection.h:

2011-12-18  Sam Weinig  <sam@webkit.org>

        Spruce up PlatformWheelEvent a bit
        https://bugs.webkit.org/show_bug.cgi?id=74821

        Reviewed by Dan Bernstein.

        * dom/WheelEvent.cpp:
        (WebCore::WheelEventDispatchMediator::WheelEventDispatchMediator):
        * platform/PlatformWheelEvent.h:
        (WebCore::PlatformWheelEvent::directionInvertedFromDevice):
        Remove x/y getters in favor of direct access to the IntPoints, and rename 
        webkitDirectionInvertedFromDevice() to directionInvertedFromDevice() since
        it is not an exposed API.

2011-12-18  Anders Carlsson  <andersca@apple.com>

        Scroll the main frame on the scrolling thread
        https://bugs.webkit.org/show_bug.cgi?id=74820

        Reviewed by Andreas Kling.

        * page/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::handleWheelEvent):
        Compute a scroll offset from the wheel event and tell the scrolling thread to scroll by the given offset.

        * page/ScrollingCoordinator.h:
        * page/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinator::scrollByOnScrollingThread):
        Clamp the updated position to the minimum and maximum scrollable position.

        (WebCore::ScrollingCoordinator::updateMainFrameScrollLayerPositionOnScrollingThread):
        Actually reposition the layer.

2011-12-18  Andreas Kling  <kling@webkit.org>

        HTMLAllCollection: Get rid of stateful namedItem traversal.
        <http://webkit.org/b/74803>

        Reviewed by Sam Weinig.

        Add a namedItemWithIndex() function to HTMLAllCollection to cover the
        document.all(name, index) use-case. This moves the collection traversal
        into WebCore and allows us to remove some complexity.

        This incidentally fixes a bug where the CollectionCache would point to
        the last node returned by document.all(name, index) without the correct
        associated node index (because info()->current was getting set without
        updating info()->position.) Added a layout test for that.

        Test: fast/dom/htmlallcollection-call-with-index-caching-bug.html

        * bindings/js/JSHTMLAllCollectionCustom.cpp:
        (WebCore::callHTMLAllCollection):
        * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
        (WebCore::V8HTMLAllCollection::callAsFunctionCallback):

            Replace collection traversal by calls to namedItemWithIndex().

        * html/HTMLCollection.h:

            Promoted updateNameCache() to protected (for HTMLAllCollection.)
            Demoted checkForNameMatch() to private.

        * html/HTMLAllCollection.cpp:
        (WebCore::HTMLAllCollection::namedItemWithIndex):

            Added for document.all(name, index). Uses the name/id cache.

        * html/HTMLAllCollection.cpp:
        * html/HTMLAllCollection.h:
        (WebCore::HTMLAllCollection::HTMLAllCollection):

            Removed m_idsDone, HTMLAllCollection is now stateless.


2011-12-18  Anders Carlsson  <andersca@apple.com>

        The scrolling coordinator should know about the main frame scroll layer
        https://bugs.webkit.org/show_bug.cgi?id=74817

        Reviewed by Andreas Kling.

        * page/ScrollingCoordinator.h:
        * page/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingThread::threadCallback):
        Move the * to where it belongs.

        (WebCore::ScrollingCoordinator::setFrameScrollLayer):
        Keep track of the underlying CALayer of the frame scroll layer.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::ensureRootLayer):
        Call ScrollingCoordinator::setFrameScrollLayer.

2011-12-18  Andreas Kling  <kling@webkit.org>

        Interacting with GMail message lists is sluggish.
        <http://webkit.org/b/74813>

        Reviewed by Dan Bernstein.

        Add an argument to collapsed*Border() to control whether the border
        color is computed or not. This allows us to avoid expensive work when
        we're only interested in the metrics.

        RenderStyle::visitedDependentColor() was very hot (4.5%) when hit-testing
        on GMail and this removes its usage altogether.
        This should be an improvement for table rendering as well, since it was
        all happening below RenderBox::overflowClipRect().

        * rendering/RenderTableCell.h:
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::collapsedLeftBorder):
        (WebCore::RenderTableCell::collapsedRightBorder):
        (WebCore::RenderTableCell::collapsedTopBorder):
        (WebCore::RenderTableCell::collapsedBottomBorder):

            Add and propagate an IncludeBorderColorOrNot argument that decides
            whether we compute the CollapsedBorderValue's color.

        (WebCore::RenderTableCell::collapsedStartBorder):
        (WebCore::RenderTableCell::collapsedEndBorder):

            Renamed start & end to startColorProperty & endColorProperty
            for clarity. Also same modifications as the above functions.

        (WebCore::RenderTableCell::collapsedBeforeBorder):
        (WebCore::RenderTableCell::collapsedAfterBorder):

            Renamed before & after to beforeColorProperty & afterColorProperty
            for clarity. Also same modifications as the above functions.

        (WebCore::RenderTableCell::borderHalfStart):
        (WebCore::RenderTableCell::borderHalfEnd):
        (WebCore::RenderTableCell::borderHalfBefore):
        (WebCore::RenderTableCell::borderHalfAfter):

            Pass DoNotIncludeBorderColor to collapsed*Border() since we only care
            about the metrics here.

2011-12-18  Anders Carlsson  <andersca@apple.com>

        The scrolling coordinator should keep track of the main frame geometry
        https://bugs.webkit.org/show_bug.cgi?id=74816

        Reviewed by Andreas Kling.

        * page/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::syncFrameGeometry):
        Update the frame geometry accordingly when it changes.

        * page/ScrollingCoordinator.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
        (WebCore::RenderLayerCompositor::updateRootLayerPosition):
        Call ScrollingCoordinator::syncFrameGeometry.

        (WebCore::RenderLayerCompositor::scrollingCoordinator):
        Add new getter.

2011-12-17  Sam Weinig  <sam@webkit.org>

        Move timestamp down from PlatformEvent subclasses to the base class
        https://bugs.webkit.org/show_bug.cgi?id=74805

        Reviewed by Anders Carlsson.

        * platform/PlatformEvent.h:
        (WebCore::PlatformEvent::type):
        (WebCore::PlatformEvent::timestamp):
        (WebCore::PlatformEvent::PlatformEvent):
        * platform/PlatformGestureEvent.h:
        (WebCore::PlatformGestureEvent::PlatformGestureEvent):
        * platform/PlatformMouseEvent.h:
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        (WebCore::PlatformMouseEvent::clickCount):
        * platform/PlatformTouchEvent.h:
        (WebCore::PlatformTouchEvent::PlatformTouchEvent):
        * platform/PlatformWheelEvent.h:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
        * platform/efl/PlatformKeyboardEventEfl.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/efl/PlatformMouseEventEfl.cpp:
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/efl/PlatformTouchEventEfl.cpp:
        (WebCore::PlatformTouchEvent::PlatformTouchEvent):
        * platform/efl/PlatformWheelEventEfl.cpp:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
        * platform/gtk/PlatformKeyboardEventGtk.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/gtk/PlatformWheelEventGtk.cpp:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
        * platform/mac/KeyEventMac.mm:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/mac/PlatformMouseEventMac.mm:
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/mac/WheelEventMac.mm:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
        * platform/qt/PlatformKeyboardEventQt.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/qt/WheelEventQt.cpp:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
        * platform/win/KeyEventWin.cpp:
        (WebCore::singleCharacterString):
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/win/PlatformMouseEventWin.cpp:
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/win/WheelEventWin.cpp:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
        * platform/wx/KeyboardEventWx.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/wx/MouseEventWx.cpp:
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/wx/MouseWheelEventWx.cpp:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):

2011-12-18  Anders Carlsson  <andersca@apple.com>

        Add a scrolling thread to the scrolling coordinator
        https://bugs.webkit.org/show_bug.cgi?id=74814

        Reviewed by Andreas Kling.

        * WebCore.exp.in:
        Export ScrollingCoordinator::handleWheelEvent.

        * WebCore.xcodeproj/project.pbxproj:
        Add ScrollingCoordinatorMac.mm

        * page/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::handleWheelEvent):
        Add a stub function.

        * page/ScrollingCoordinator.h:
        * page/mac/ScrollingCoordinatorMac.mm: Added.
        Add a ScrollingThread object which creates a thread and attaches a run loop source
        to it, allowing for functions to be dispatched and run on said thread.

        (WebCore::ScrollingCoordinator::isScrollingThread):
        Call ScrollingThread::isCurrentThread.

        (WebCore::ScrollingCoordinator::dispatchOnScrollingThread):
        Call ScrollingThread::dispatch.

2011-12-18  Anders Carlsson  <andersca@apple.com>

        EventDispatcher should keep track of all scrolling coordinators
        https://bugs.webkit.org/show_bug.cgi?id=74810

        Reviewed by Andreas Kling.

        Export symbols needed by WebKit2.

        * WebCore.exp.in:

2011-12-18  Raul Hudea  <rhudea@adobe.com>

        Add transform function completion to web-inspector

        Web Inspector: Auto-complete transform functions for -webkit-transform
        https://bugs.webkit.org/show_bug.cgi?id=74730

        Reviewed by Pavel Feldman.

        No new test. Trivial change.

        * inspector/front-end/CSSKeywordCompletions.js:

2011-12-18  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: chromium profiler: change default root type for retaining paths from GC Roots to DOMWindow.
        https://bugs.webkit.org/show_bug.cgi?id=74697

        Reviewed by Pavel Feldman.

        * inspector/front-end/DetailedHeapshotView.js:
        (WebInspector.DetailedHeapshotView.prototype.get isTracingToWindowObjects):

2011-12-18  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: Switch to type-safe JSON ConsoleMessage.cpp, InspectorDOMAgent.cpp, InspectorDebuggerAgent.cpp, ScriptCallFrame.cpp
        https://bugs.webkit.org/show_bug.cgi?id=74549

        Reviewed by Pavel Feldman.

        Work with InspectorObject is replaced with type-safe generated API
        usage.
        Inspector.json and Inspector-0.1.json are also changed to better
        reflect data types that are actually being transmitted.

        * inspector/ConsoleMessage.cpp:
        (WebCore::ConsoleMessage::addToFrontend):
        * inspector/Inspector-0.1.json:
        * inspector/Inspector.json:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForNode):
        (WebCore::InspectorDOMAgent::buildObjectForEventListener):
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
        * inspector/ScriptCallFrame.cpp:
        (WebCore::ScriptCallFrame::buildInspectorObject):

2011-12-18  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py: use generated types in method parameters
        https://bugs.webkit.org/show_bug.cgi?id=74661

        Reviewed by Pavel Feldman.

        Type binding object is added to raw_type object.

        * inspector/CodeGeneratorInspector.py:
        (TypeBindings.create_for_named_type_declaration.EnumBinding.generate_type_builder):
        (TypeBindings.create_for_named_type_declaration.EnumBinding.get_in_c_type_text):
        (TypeBindings.create_for_named_type_declaration.EnumBinding):
        (TypeBindings.create_for_named_type_declaration.EnumBinding.reduce_to_raw_type):
        (TypeBindings.create_for_named_type_declaration.PlainString.generate_type_builder):
        (TypeBindings.create_for_named_type_declaration.PlainString.reduce_to_raw_type):
        (TypeBindings.create_for_named_type_declaration.PlainString):
        (TypeBindings.create_for_named_type_declaration.PlainString.get_in_c_type_text):
        (TypeBindings):
        (TypeBindings.create_for_named_type_declaration.ClassBinding):
        (get_in_c_type_text):
        (reduce_to_raw_type):
        (PlainObjectBinding.generate_type_builder):
        (PlainObjectBinding.get_in_c_type_text):
        (PlainObjectBinding):
        (PlainObjectBinding.reduce_to_raw_type):
        (RawTypesBinding.generate_type_builder):
        (RawTypesBinding.get_in_c_type_text):
        (RawTypesBinding):
        (RawTypesBinding.reduce_to_raw_type):
        (resolve_param_type.RawTypeBinding.reduce_to_raw_type):
        (resolve_param_type.RawTypeBinding):
        (resolve_param_type.RawTypeBinding.get_in_c_type_text):
        (resolve_param_type):
        (Generator.process_event):

2011-12-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r103169.
        http://trac.webkit.org/changeset/103169
        https://bugs.webkit.org/show_bug.cgi?id=74809

        it broke compilation on many platforms (Requested by loislo_
        on #webkit).

        * WebCore.gypi:
        * platform/ColorChooser.cpp: Renamed from Source/WebKit/chromium/src/ColorChooserProxy.h.
        (WebCore::ColorChooserClient::~ColorChooserClient):
        (WebCore::ColorChooserClient::newColorChooser):
        (WebCore::ColorChooserClient::discardChooser):
        (WebCore::ColorChooser::ColorChooser):
        (WebCore::ColorChooser::create):
        (WebCore::ColorChooser::~ColorChooser):
        (WebCore::ColorChooser::didChooseColor):
        (WebCore::ColorChooser::didCleanup):

2011-12-18  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Shaders] Add FECustomFilter that renders custom filters
        https://bugs.webkit.org/show_bug.cgi?id=73317

        Using a GraphicsContext3D to render the shaders in GPU, read the
        result back and use it in the software filters pipeline.

        Reviewed by Chris Marrin.

        Test: css3/filters/effect-custom.html

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * loader/cache/CachedShader.cpp:
        (WebCore::CachedShader::CachedShader):
        (WebCore::CachedShader::shaderString):
        (WebCore::CachedShader::data):
        * loader/cache/CachedShader.h:
        * platform/graphics/filters/CustomFilterMesh.cpp: Added.
        (WebCore::MeshGenerator::MeshGenerator):
        (WebCore::MeshGenerator::vertices):
        (WebCore::MeshGenerator::indices):
        (WebCore::MeshGenerator::points):
        (WebCore::MeshGenerator::pointsCount):
        (WebCore::MeshGenerator::tiles):
        (WebCore::MeshGenerator::tilesCount):
        (WebCore::MeshGenerator::indicesCount):
        (WebCore::MeshGenerator::floatsPerVertex):
        (WebCore::MeshGenerator::vertexCount):
        (WebCore::MeshGenerator::addTile):
        (WebCore::MeshGenerator::addAttachedMeshIndex):
        (WebCore::MeshGenerator::generateAttachedMesh):
        (WebCore::MeshGenerator::addDetachedMeshVertexAndIndex):
        (WebCore::MeshGenerator::generateDetachedMesh):
        (WebCore::MeshGenerator::addPositionAttribute):
        (WebCore::MeshGenerator::addTexCoordAttribute):
        (WebCore::MeshGenerator::addMeshCoordAttribute):
        (WebCore::MeshGenerator::addTriangleCoordAttribute):
        (WebCore::MeshGenerator::addAttachedMeshVertexAttributes):
        (WebCore::MeshGenerator::addDetachedMeshVertexAttributes):
        (WebCore::MeshGenerator::dumpBuffers):
        (WebCore::CustomFilterMesh::CustomFilterMesh):
        (WebCore::CustomFilterMesh::~CustomFilterMesh):
        * platform/graphics/filters/CustomFilterMesh.h: Added.
        (WebCore::CustomFilterMesh::create):
        (WebCore::CustomFilterMesh::verticesBufferObject):
        (WebCore::CustomFilterMesh::bytesPerVertex):
        (WebCore::CustomFilterMesh::elementsBufferObject):
        (WebCore::CustomFilterMesh::indicesCount):
        (WebCore::CustomFilterMesh::meshBox):
        (WebCore::CustomFilterMesh::meshType):
        * platform/graphics/filters/CustomFilterShader.cpp: Added.
        (WebCore::CustomFilterShader::defaultVertexShaderString):
        (WebCore::CustomFilterShader::defaultFragmentShaderString):
        (WebCore::CustomFilterShader::CustomFilterShader):
        (WebCore::CustomFilterShader::~CustomFilterShader):
        * platform/graphics/filters/CustomFilterShader.h: Added.
        * platform/graphics/filters/FECustomFilter.cpp: Added.
        (WebCore::orthoMatrix):
        (WebCore::FECustomFilter::FECustomFilter):
        (WebCore::FECustomFilter::create):
        (WebCore::FECustomFilter::platformApplySoftware):
        (WebCore::FECustomFilter::dump):
        (WebCore::FECustomFilter::externalRepresentation):
        * platform/graphics/filters/FECustomFilter.h: Added.
        * platform/graphics/gpu/Texture.cpp:
        * platform/graphics/transforms/TransformationMatrix.cpp:
        (WebCore::TransformationMatrix::toColumnMajorFloatArray):
        * platform/graphics/transforms/TransformationMatrix.h:
        * rendering/FilterEffectObserver.h: Copied from Source/WebCore/loader/cache/CachedShader.cpp.
        (WebCore::FilterEffectObserver::~FilterEffectObserver):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::isWebGLEnabled):
        (WebCore::FilterEffectRenderer::FilterEffectRenderer):
        (WebCore::FilterEffectRenderer::build):
        (WebCore::FilterEffectRenderer::notifyFinished):
        * rendering/FilterEffectRenderer.h:
        (WebCore::FilterEffectRenderer::create):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateOrRemoveFilterEffect):
        (WebCore::RenderLayer::filterNeedsRepaint):
        * rendering/RenderLayer.h:
        * rendering/style/StyleCachedShader.h:
        (WebCore::StyleCachedShader::cachedShader):
        * rendering/style/StyleShader.h:
        (WebCore::StyleShader::cachedShader):

2011-12-18  Keishi Hattori  <keishi@webkit.org>

        Implement <input type=color> UI WebKit chromium part
        https://bugs.webkit.org/show_bug.cgi?id=65897

        Reviewed by Darin Fisher.

        * WebCore.gypi: Added ColorChooser.h and ColorChooserClient.h

2011-12-17  Keishi Hattori  <keishi@webkit.org>

        Refactor input type color WebCore part
        https://bugs.webkit.org/show_bug.cgi?id=74591

        Reviewed by Kent Tamura.

        Changing ColorChooser to address issues raised in Bug 65897.
        Chrome::createColorChooser will return a WebCore::ColorChooser instance
        so the WebCore side (ColorInputType) and call the WebKit side. We pass the ColorChooserClient as an argument
        to Chrome::createColorChooser so the WebKit side can call callbacks, didEndChooser and didChooseColor.

        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::~ColorInputType):
        (WebCore::ColorInputType::setValue):
        (WebCore::ColorInputType::handleDOMActivateEvent): Calls createColorChooser to open the color chooser.
        (WebCore::ColorInputType::detach):
        (WebCore::ColorInputType::didEndChooser): Release the ColorChooser object.
        (WebCore::ColorInputType::endColorChooser):
        (WebCore::ColorInputType::updateColorSwatch): Added argument so it will compile again.
        * html/ColorInputType.h:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::selectColorInColorChooser):
        * loader/EmptyClients.h:
        (WebCore::EmptyChromeClient::createColorChooser):
        * loader/FrameLoader.cpp:
        * page/Chrome.cpp:
        (WebCore::Chrome::createColorChooser): Opens the color chooser. Returns a ColorChooser PassOwnPtr.
        * page/Chrome.h:
        * page/ChromeClient.h:
        * platform/ColorChooser.h:
        (WebCore::ColorChooser::~ColorChooser):
        (WebCore::ColorChooser::setSelectedColor):
        (WebCore::ColorChooser::endChooser):
        * platform/ColorChooserClient.h: Added.

2011-12-17  Sam Weinig  <sam@webkit.org>

        Make PlatformTouchEvent inherit from PlatformEvent
        https://bugs.webkit.org/show_bug.cgi?id=74777

        Reviewed by Andreas Kling.

        * platform/PlatformEvent.h:
        Add TouchEvent types.

        * platform/PlatformTouchEvent.h:
        (WebCore::PlatformTouchEvent::PlatformTouchEvent):
        Make inherit from PlatformEvent.

        * platform/blackberry/PlatformTouchEventBlackBerry.cpp:
        (WebCore::touchEventType):
        (WebCore::PlatformTouchEvent::PlatformTouchEvent):
        * platform/efl/PlatformTouchEventEfl.cpp:
        (WebCore::PlatformTouchEvent::PlatformTouchEvent):
        * platform/qt/PlatformTouchEventQt.cpp:
        (WebCore::PlatformTouchEvent::PlatformTouchEvent):
        Make necessary changes to work with new base class.

2011-12-17  Andreas Kling  <kling@webkit.org>

        Cache and reuse the HTMLAllCollection returned by document.all.
        <http://webkit.org/b/74768>

        Reviewed by Antti Koivisto.

        Let Document cache the document.all collection, just like we do for
        the other collections (.links, .images, etc.)
        This is primarily a memory optimization, as repeated calls to
        document.all will no longer cause collection objects to stack up.

        Tests: fast/dom/document-collection-idempotence.html
               fast/dom/gc-9.html

        * dom/Document.h:
        * dom/Document.cpp:
        (WebCore::Document::all):

            Cache the HTMLAllCollection and reuse it across calls instead of
            creating a new one each time.

        * html/HTMLAllCollection.h:
        * html/HTMLAllCollection.cpp:
        (WebCore::HTMLAllCollection::create):
        (WebCore::HTMLAllCollection::HTMLAllCollection):

            Make the HTMLAllCollection constructor take a Document* to enforce
            the fact that it's the only way it should ever be created.

        * html/HTMLAllCollection.idl:
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):

            Custom reachability code for JSC, same as HTMLCollection.

2011-12-17  Andreas Kling  <kling@webkit.org>

        HTMLCollection: Simplify itemAfter().
        <http://webkit.org/b/74795>

        Reviewed by Antti Koivisto.

        Whether to do deep traversal of children depends on m_type which
        doesn't change after construction, so move that decision there
        by caching it in a "m_includeChildren" bit.

        Also factored out the big switch statement in itemAfter() into
        an isAcceptableElement() function.

        Last and least, use fastHasAttribute() to check for itempropAttr
        since it's not SVG animatable.

        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        (WebCore::HTMLCollection::shouldIncludeChildren):
        (WebCore::HTMLCollection::isAcceptableElement):
        (WebCore::HTMLCollection::itemAfter):
        * html/HTMLCollection.h:

2011-12-17  Andreas Kling  <kling@webkit.org>

        TagNodeList: Optimize nodeMatches() for the common case.
        <http://webkit.org/b/74796>

        Reviewed by Antti Koivisto.

        Reject based on tag name mismatch before comparing the namespaces,
        as this case is vastly more common.

        nodeMatches() is very hot on the DOM Query (Dojo) test on Dromaeo.
        This change takes it from 8.3% to 7.7% on my MBP.

        * dom/TagNodeList.cpp:
        (WebCore::TagNodeList::nodeMatches):

2011-12-17  Andreas Kling  <kling@webkit.org>

        NameNodeList: Use fastGetAttribute() in nodeMatches().
        <http://webkit.org/b/74797>

        Reviewed by Darin Adler.

        It's safe and slightly more efficient to use fastGetAttribute()
        for HTMLNames::nameAttr here.

        * dom/NameNodeList.cpp:
        (WebCore::NameNodeList::nodeMatches):

2011-12-17  Andreas Kling  <kling@webkit.org>

        CSSPrimitiveValue: Inline getIdent().
        <http://webkit.org/b/74793>

        Reviewed by Antti Koivisto.

        Inline the trivial getIdent(), the same as its getFoo() siblings.

        * css/CSSPrimitiveValue.cpp:
        * css/CSSPrimitiveValue.h:
        (WebCore::CSSPrimitiveValue::getIdent):

2011-12-17  Andreas Kling  <kling@webkit.org>

        CSSStyleSelector: Clean up matchRules().
        <http://webkit.org/b/74794>

        Reviewed by Antti Koivisto.

        - Early return from the isCollectingRulesOnly() path to reduce nesting.
        - Move the creation of m_ruleList out of the loop that builds the list.
        - Removed some comments from the Captain Obvious department.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchRules):

2011-12-17  Andreas Kling  <kling@webkit.org>

        RuleSet: Remove style sheet null-check in addRulesFromSheet().
        <http://webkit.org/b/74792>

        Reviewed by Antti Koivisto.

        Replace the "sheet" null-check in addRulesFromSheet() by an assertion.
        The only call-site where it could be null was when adding rules from
        an @import'ed sheet, so add a check there instead.

        * css/CSSStyleSelector.cpp:
        (WebCore::RuleSet::addRulesFromSheet):

2011-12-17  Andreas Kling  <kling@webkit.org>

        CSSStyleSelector: Clean up getColorFromPrimitiveValue().
        <http://webkit.org/b/74789>

        Reviewed by Antti Koivisto.

        Rename getColorFromPrimitiveValue() to colorFromPrimitiveValue() and rework
        it to be a bit more readable.

        * css/CSSGradientValue.cpp:
        (WebCore::CSSGradientValue::addStops):
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyColor::applyValue):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        (WebCore::CSSStyleSelector::colorFromPrimitiveValue):
        (WebCore::CSSStyleSelector::createFilterOperations):
        * css/CSSStyleSelector.h:
        * css/SVGCSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applySVGProperty):

2011-12-17  Kenichi Ishibashi  <bashi@chromium.org>

        Text dispappear when SVG font has no latin character
        https://bugs.webkit.org/show_bug.cgi?id=71765

        Reviewed by Nikolas Zimmermann.

        Initialize SVG font metrics even if the font doesn't contain latin characters.

        Test: svg/custom/svg-fonts-no-latin-glyph.html

        * svg/SVGFontData.cpp:
        (WebCore::SVGFontData::initializeFontData): Initializes metrics even if the zeroGlyphPage doesn't exist.

2011-12-17  David Barton  <dbarton@mathscribe.com>

        Radical sign drawn incorrectly due to refactoring typo
        https://bugs.webkit.org/show_bug.cgi?id=74780

        Reviewed by Dan Bernstein.

        LayoutTests/mathml/presentation/roots.xhtml shows the bug, but apparently its .png
        checksum is ok so run-webkit-tests can't detect the problem.

        * rendering/mathml/RenderMathMLRoot.cpp:
        (WebCore::RenderMathMLRoot::paint):
        In revision 88250, one paintOffset should have been adjustedPaintOffset.

2011-12-17  Adrienne Walker  <enne@google.com>

        [chromium] Reverting r103011, r103135 due to Aura test failures

        Unreviewed gardening.

        * platform/graphics/chromium/ContentLayerChromium.cpp:
        (WebCore::ContentLayerChromium::~ContentLayerChromium):
        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::notifySyncRequired):
        * platform/graphics/chromium/GraphicsLayerChromium.h:
        * platform/graphics/chromium/ImageLayerChromium.cpp:
        (WebCore::ImageLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::setLayerTreeHost):
        (WebCore::LayerChromium::setNeedsCommit):
        (WebCore::LayerChromium::setParent):
        (WebCore::LayerChromium::setMaskLayer):
        * platform/graphics/chromium/LayerChromium.h:
        (WebCore::LayerChromium::setReplicaLayer):
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::setLayerTreeHost):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
        (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
        (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
        (WebCore::CCLayerTreeHost::paintLayerContents):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCLayerTreeHost::setRootLayer):

2011-12-16  Chris Marrin  <cmarrin@apple.com>

        Hardware acceleration of W3C Filter Effects
        https://bugs.webkit.org/show_bug.cgi?id=68479

        Reviewed by Simon Fraser.

        Tests: css3/filters/effect-blur-hw.html
               css3/filters/effect-combined-hw.html
               css3/filters/effect-drop-shadow-hw.html
               css3/filters/effect-grayscale-hw.html
               css3/filters/effect-hue-rotate-hw.html
               css3/filters/effect-invert-hw.html
               css3/filters/effect-opacity-hw.html
               css3/filters/effect-saturate-hw.html
               css3/filters/effect-sepia-hw.html

        Implement hardware acceleration of filters. If a filter is
        on a RenderLayer and that layer has a GraphicsLayer, a test
        is done to see if the desired filter can be rendered in hardware.
        If so, skip rendering it when painting, and add the filters to the
        CALayer. Currently Mac only, using CoreImage. Animation is done in
        software, with the filters being recreated every frame. There are
        some fidelity issues with the software renderer, but those will
        be dealt with as bugs to be fixed.

        * platform/graphics/GraphicsLayer.h: Pass down FilterOperations
        (WebCore::GraphicsLayer::filter):
        (WebCore::GraphicsLayer::setFilter):
        * platform/graphics/ca/GraphicsLayerCA.cpp: Deferred passdown of FilterOperations to PlatformCALayer
        (WebCore::GraphicsLayerCA::setFilter):
        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
        (WebCore::GraphicsLayerCA::updateFilter):
        (WebCore::GraphicsLayerCA::ensureStructuralLayer):
        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
        * platform/graphics/ca/GraphicsLayerCA.h:
        * platform/graphics/ca/PlatformCALayer.h:
        * platform/graphics/ca/mac/PlatformCALayerMac.mm: Mac implementation using CI
        (PlatformCALayer::setFilter):
        (PlatformCALayer::filterCanBeComposited): Static function to tell GraphicsLayer if this Filter object can be rendered
        * platform/graphics/filters/FilterOperations.cpp:
        (WebCore::FilterOperations::operator=):
        * platform/graphics/filters/FilterOperations.h:
        (WebCore::FilterOperations::FilterOperations):
        * rendering/RenderLayer.cpp: Pass filter object to GraphicsLayer
        (WebCore::RenderLayer::rendersFilter):
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::updateOrRemoveFilterEffect):
        * rendering/RenderLayer.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::RenderLayerBacking):
        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
        (WebCore::RenderLayerBacking::updateLayerFilter):
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        * rendering/RenderLayerBacking.h:
        (WebCore::RenderLayerBacking::canCompositeFilter):

2011-12-17  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, GTK build fix after r103131.

        * GNUmakefile.list.am: Fix typo... s/.cop/.cpp

2011-12-16  Benjamin Poulain  <bpoulain@apple.com>

        FEComposite does not build when you disable filters on ARMv7
        https://bugs.webkit.org/show_bug.cgi?id=74772

        Reviewed by David Kilzer.

        Add the missing ENABLE(FILTERS).

        * platform/graphics/filters/arm/FECompositeArithmeticNEON.cpp:
        * platform/graphics/filters/arm/FECompositeArithmeticNEON.h:

2011-12-16  Ryosuke Niwa  <rniwa@webkit.org>

        Mac build fix after r103104.

        * WebCore.xcodeproj/project.pbxproj:

2011-12-16  Adam Klein  <adamk@chromium.org>

        Consolidate before-advice regarding attribute modification into a single method
        https://bugs.webkit.org/show_bug.cgi?id=74752

        Reviewed by Ryosuke Niwa.

        Adds a willModifyAttribute method to Element, meant to be called
        before an attribute on that Element is added/removed/changed.

        Replace most calls to Element::updateId and all calls to
        Element::enqueueAttributesMutationRecordIfRequested with calls to
        willModifyAttribute. Moreover, enqueueAttributesMutation... can now
        be private since its only caller is willModifyAttribute.

        The only remaining direct calls to updateId are in cases the entire
        NamedNodeMap is being replaced. These are implementation details of
        WebCore that shouldn't be exposed via MutationObservers.

        No new tests, no expected change in behavior.

        * dom/Attr.cpp:
        (WebCore::Attr::setValue):
        (WebCore::Attr::childrenChanged): Besides the above change, use a
        StringBuilder to build up value, and only do String -> AtomicString
        conversion once.
        * dom/Element.cpp:
        (WebCore::Element::setAttributeInternal):
        * dom/Element.h:
        (WebCore::Element::willModifyAttribute):
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::setNamedItem):
        (WebCore::NamedNodeMap::removeNamedItem):

2011-12-16  James Robinson  <jamesr@chromium.org>

        [chromium] CCLayerDelegate and WebLayerClient do not need notifySyncRequired
        https://bugs.webkit.org/show_bug.cgi?id=74376

        Reviewed by Kenneth Russell.

        CCLayerDelegate::notifySyncRequired is an odd bit of interface that we originally cargo-culted from the
        CoreAnimation compositor implementation. It is a mechanism by which a LayerChromium instance may request a new
        frame via its CCLayerDelegate, which in WebCore is always a GraphicsLayerClient. In practice, all
        implementations eventually ended up routing to CCLayerTreeHost::setNeedsCommit which then made the proper
        scheduling decision.

        This patch routes all changes that would have gone through CCLayerDelegate::notifySyncRequired directly to
        CCLayerTreeHost::setNeedsCommit, which greatly simplifies the scheduling logic.

        There is a large amount of unit test coverage for this change, largely in LayerChromiumTest

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        * platform/graphics/chromium/GraphicsLayerChromium.h:
        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::setNeedsCommit):
        (WebCore::LayerChromium::insertChild):
        * platform/graphics/chromium/LayerChromium.h:
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
        (WebCore::CCLayerTreeHost::setRootLayer):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        * platform/graphics/chromium/cc/CCScopedThreadProxy.h:
        (WebCore::CCScopedThreadProxy::runTaskIfNotShutdown):

2011-12-16  Adam Klein  <adamk@chromium.org>

        Fix typo in MarkupTokenBase: rename takeAtributes to takeAttributes
        https://bugs.webkit.org/show_bug.cgi?id=74766

        Reviewed by Darin Adler.

        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
        (WebCore::HTMLConstructionSite::insertScriptElement):
        (WebCore::HTMLConstructionSite::createElement):
        (WebCore::HTMLConstructionSite::createHTMLElement):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::attributesForIsindexInput):
        * xml/parser/MarkupTokenBase.h:
        (WebCore::AtomicMarkupTokenBase::takeAttributes):

2011-12-16  Adam Barth  <abarth@webkit.org>

        <option><span><option> doesn't parse correctly
        https://bugs.webkit.org/show_bug.cgi?id=74760

        Reviewed by Eric Seidel.

        The <option> start tag shouldn't be quite as aggressive in closing open
        <option> tags.  I'm not sure whether this was a change in the spec or a
        mistranscription, but this patch causes us to match the spec.  I've
        checked the other optionTag checks, and they all seem to be correct.

        * html/parser/HTMLTreeBuilder.cpp:

2011-12-16  Rafael Weinstein  <rafaelw@chromium.org>

        [MutationObservers] Remove platform-dependent code in Document.cpp resulting from Mutation Event histogram collection
        https://bugs.webkit.org/show_bug.cgi?id=73026

        Reviewed by Ryosuke Niwa.

        This patch adds platform/HistogramSupport which has an empty implementation for all ports
        except Chromium.

        No tests need. This patch is just a refactor.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/Document.cpp:
        (WebCore::histogramMutationEventUsage):
        (WebCore::Document::~Document):
        * platform/HistogramSupport.h: Added.
        (WebCore::HistogramSupport::histogramEnumeration):
        * platform/chromium/HistogramSupportChromium.cpp: Added.
        (WebCore::HistogramSupport::histogramEnumeration):

2011-12-16  Brady Eidson  <beidson@apple.com>

        <rdar://problem/10576732> and https://bugs.webkit.org/show_bug.cgi?id=74533
        REGRESSION(r102619): Reproducible crash closing window with video + poster image inside an object element

        Reviewed by Darin Adler.

        Test: media/crash-closing-page-with-media-as-plugin-fallback.html

        At some point documentWillBecomeInactive() was overloaded to not only notify elements they were going in to the page
        cache but also do some other work that was necessary during Document teardown.

        This crash occurs because we're notifying elements they're going in to the page cache at document teardown, so this
        patch breaks that work back out in to a separate function.

        * dom/Document.cpp:
        (WebCore::Document::detach): Remove obsolete comment.
        (WebCore::Document::documentWillBecomeInactive): Handle only accelerated compositing cleanup.
        (WebCore::Document::documentWillSuspendForPageCache): Call documentWillBecomeInactive before notifying elements of suspension.
        (WebCore::Document::documentDidResumeFromPageCache):
        (WebCore::Document::registerForPageCacheSuspensionCallbacks):
        (WebCore::Document::unregisterForPageCacheSuspensionCallbacks):
        * dom/Document.h:

        * history/CachedFrame.cpp:
        (WebCore::CachedFrameBase::restore): Call the renamed documentDidResumeFromPageCache.
        (WebCore::CachedFrame::CachedFrame): Call documentWillSuspendForPageCache instead of documentDidBecomeInactive.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::commitProvisionalLoad): Call the renamed documentDidResumeFromPageCache.

        * dom/Element.h:
        (WebCore::Element::documentWillSuspendForPageCache): Renamed from documentWillBecomeInactive()
        (WebCore::Element::documentDidResumeFromPageCache): Renamed from documentDidBecomeActive()

        Change to the renamed registration and callbacks functions in the handful of classes that use them:
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::~HTMLFormElement):
        (WebCore::HTMLFormElement::parseMappedAttribute):
        (WebCore::HTMLFormElement::documentDidResumeFromPageCache):
        (WebCore::HTMLFormElement::willMoveToNewOwnerDocument):
        (WebCore::HTMLFormElement::didMoveToNewOwnerDocument):
        * html/HTMLFormElement.h:

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::~HTMLInputElement):
        (WebCore::HTMLInputElement::updateType):
        (WebCore::HTMLInputElement::parseMappedAttribute):
        (WebCore::HTMLInputElement::needsSuspensionCallback):
        (WebCore::HTMLInputElement::registerForSuspensionCallbackIfNeeded):
        (WebCore::HTMLInputElement::unregisterForSuspensionCallbackIfNeeded):
        (WebCore::HTMLInputElement::documentDidResumeFromPageCache):
        (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
        (WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
        * html/HTMLInputElement.h:

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::~HTMLPlugInImageElement):
        (WebCore::HTMLPlugInImageElement::createRenderer):
        (WebCore::HTMLPlugInImageElement::willMoveToNewOwnerDocument):
        (WebCore::HTMLPlugInImageElement::didMoveToNewOwnerDocument):
        (WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache):
        (WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache):
        * html/HTMLPlugInImageElement.h:

        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::SVGSVGElement):
        (WebCore::SVGSVGElement::~SVGSVGElement):
        (WebCore::SVGSVGElement::willMoveToNewOwnerDocument):
        (WebCore::SVGSVGElement::didMoveToNewOwnerDocument):
        (WebCore::SVGSVGElement::documentWillSuspendForPageCache):
        (WebCore::SVGSVGElement::documentDidResumeFromPageCache):
        * svg/SVGSVGElement.h:

2011-12-16  Eric Penner  <epenner@google.com>

        [chromium] Need to prepaint tiles in TiledLayerChromium
        https://bugs.webkit.org/show_bug.cgi?id=72686

        Reviewed by James Robinson.

        Tests: TiledLayerChromiumTest (idlePaintOutOfMemory, pushIdlePaintTiles)

        * platform/graphics/chromium/ContentLayerChromium.cpp:
        (WebCore::ContentLayerChromium::idlePaintContentsIfDirty): added idle paint function
        * platform/graphics/chromium/ContentLayerChromium.h: ditto
        * platform/graphics/chromium/LayerChromium.h: ditto
        (WebCore::LayerChromium::idlePaintContentsIfDirty): ditto
        * platform/graphics/chromium/TextureManager.cpp:
        (WebCore::TextureManager::protectTexture): removed assert for protecting a texture twice
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::TiledLayerChromium):
        (WebCore::TiledLayerChromium::cleanupResources):
        (WebCore::TiledLayerChromium::updateCompositorResources): refactoring to use tile indices
        (WebCore::TiledLayerChromium::prepareToUpdateTiles): refactored common code and made idle/visible versions
        (WebCore::TiledLayerChromium::prepareToUpdate): ditto
        (WebCore::TiledLayerChromium::prepareToUpdateIdle): ditto
        (WebCore::TiledLayerChromium::needsIdlePaint): 
        (WebCore::TiledLayerChromium::idlePaintRect):
        * platform/graphics/chromium/TiledLayerChromium.h:
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
        (WebCore::CCLayerTreeHost::compositeAndReadback): set flag to avoid idle paint durring composite and readback
        (WebCore::CCLayerTreeHost::updateLayers): added idle flag parameter
        (WebCore::CCLayerTreeHost::paintContentsIfDirty): ditto
        (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface): ditto
        (WebCore::CCLayerTreeHost::paintLayerContents): chooses idle or visible paint
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:

2011-12-16  Dean Jackson  <dino@apple.com>

        Miscellaneous Filter updates to align with spec
        https://bugs.webkit.org/show_bug.cgi?id=74736

        Reviewed by Simon Fraser.

        Combine a bunch of small updates to filters where
        we were not compliant with the specification.

        - blur() only takes one value, not two
        - blur() does not accept percentages. This allowed us
          to stop passing the borderBoxSize around while building
          the filter chain or calculating visual overflow.
        - gamma() and sharpen() removed
        - brightness() and contrast() added

        Tests: css3/filters/effect-brightness.html
               css3/filters/effect-contrast.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::valueForFilter): Create new
        variations on component transfer functions for brightness() and
        contrast() effects. Also remove sharpen() and gamma().
        * css/CSSParser.cpp:
        (WebCore::filterInfoForName):
        (WebCore::CSSParser::parseBuiltinFilterArguments): Ditto, and blur
        only takes one argument.
        * css/CSSStyleSelector.cpp:
        (WebCore::filterOperationForType):
        (WebCore::CSSStyleSelector::createFilterOperations): Ditto, and
        use ->isPercentage() to test rather than getting the type.
        * css/WebKitCSSFilterValue.cpp:
        (WebCore::WebKitCSSFilterValue::customCssText):
        * css/WebKitCSSFilterValue.h:
        * css/WebKitCSSFilterValue.idl: Remove sharpen and gamma, add
        brightness and contrast.
        * platform/graphics/filters/FilterOperation.cpp:
        (WebCore::BlurFilterOperation::blend): Blurs only need to blend
        between one standard deviation parameter.
        * platform/graphics/filters/FilterOperation.h: Remove sharpen and
        gamma, add brightness and contrast.
        (WebCore::BlurFilterOperation::create):
        (WebCore::BlurFilterOperation::stdDeviation):
        (WebCore::BlurFilterOperation::operator==):
        (WebCore::BlurFilterOperation::BlurFilterOperation): Blur only takes
        one standard deviation / radius parameter.
        * platform/graphics/filters/FilterOperations.cpp:
        (WebCore::outsetSizeForBlur):
        (WebCore::FilterOperations::getOutsets): No need for borderBox now.
        * platform/graphics/filters/FilterOperations.h:
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::build): Build new effect types.
        * rendering/FilterEffectRenderer.h:
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::addVisualEffectOverflow): No need to pass
        borderBox size when calculating overflow on filter.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateOrRemoveFilterEffect):
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::getFilterOutsets): Ditto.

2011-12-16  Andreas Kling  <kling@webkit.org>

        Unreviewed debug build fix after r103115.

        * dom/Document.cpp:
        (WebCore::Document::cachedCollection):

2011-12-16  Mark Hahnenberg  <mhahnenberg@apple.com>

        Windows test fix

        No new tests.

        Unreviewed test fix. All Windows tests were crashing when objects who were pointing to 
        static data members across DLL boundaries were getting garbage in their pointers.

        * WebCore.exp.in:
        * bindings/js/JSDOMWrapper.cpp:
        * bindings/js/JSDOMWrapper.h:

2011-12-16  Ryosuke Niwa  <rniwa@webkit.org>

        Rename registerCommandFor(Undo|Redo) to register(Undo|Redo)Step
        https://bugs.webkit.org/show_bug.cgi?id=74748

        Reviewed by Eric Seidel.

        Renamed registerCommandForUndo and registerCommandForRedo to
        registerUndoStep and registerRedoStep respectively.

        * editing/Editor.cpp:
        (WebCore::Editor::appliedEditing):
        (WebCore::Editor::unappliedEditing):
        (WebCore::Editor::reappliedEditing):
        * loader/EmptyClients.h:
        (WebCore::EmptyEditorClient::registerUndoStep):
        (WebCore::EmptyEditorClient::registerRedoStep):
        * page/EditorClient.h:

2011-12-16  Tim Horton  <timothy_horton@apple.com>

        Canvas should respect backing store scale ratio when used as drawImage() source
        https://bugs.webkit.org/show_bug.cgi?id=74758
        <rdar://problem/10350194>

        Reviewed by Simon Fraser.

        Interpret the source rectangle passed into drawImage() when using a Canvas source in the source Canvas coordinate space,
        instead of in the backing store coordinate space, without changing the behavior of drawImage(canvas, x, y).

        No new tests.

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::convertDeviceToLogical):
        * html/HTMLCanvasElement.h:
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::drawImage):

2011-12-16  Anders Carlsson  <andersca@apple.com>

        Subpixel antialiasing not working in tiled mode
        https://bugs.webkit.org/show_bug.cgi?id=74759

        Reviewed by Simon Fraser.

        Call setContentsOpaque(true) on the main frame render view layer so subpixel aa will be used
        when drawing text into that layer.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):

2011-12-16  Ryosuke Niwa  <rniwa@webkit.org>

        invalidateNodeListsCacheAfterAttributeChanged has too many callers
        https://bugs.webkit.org/show_bug.cgi?id=74692

        Reviewed by Sam Weinig.

        Call invalidateNodeListsCacheAfterAttributeChanged in Element::updateAfterAttributeChanged instead of
        parsedMappedAttribute of various elements. Also make invalidateNodeListsCacheAfterAttributeChanged take
        the qualified name of the changed attribute so that we can exit early when the changed attribute isn't
        one of attributes we care.

        In addition, added a missing call to invalidateNodeListsCacheAfterAttributeChanged in Attr::setValue.

        Test: fast/dom/Attr/invalidate-nodelist-after-attr-setvalue.html

        * dom/Attr.cpp:
        (WebCore::Attr::childrenChanged):
        * dom/Element.cpp:
        (WebCore::Element::updateAfterAttributeChanged):
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::addAttribute):
        (WebCore::NamedNodeMap::removeAttribute):
        * dom/Node.cpp:
        (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged):
        * dom/Node.h:
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::classAttributeChanged):
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::parseMappedAttribute):
        * html/HTMLAppletElement.cpp:
        (WebCore::HTMLAppletElement::parseMappedAttribute):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::parseMappedAttribute):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::parseMappedAttribute):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::parseMappedAttribute):
        * html/HTMLFrameElementBase.cpp:
        (WebCore::HTMLFrameElementBase::parseMappedAttribute):
        * html/HTMLIFrameElement.cpp:
        (WebCore::HTMLIFrameElement::parseMappedAttribute):
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::parseMappedAttribute):
        * html/HTMLMapElement.cpp:
        (WebCore::HTMLMapElement::parseMappedAttribute):
        * html/HTMLMetaElement.cpp:
        (WebCore::HTMLMetaElement::parseMappedAttribute):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parseMappedAttribute):
        * html/HTMLParamElement.cpp:
        (WebCore::HTMLParamElement::parseMappedAttribute):

2011-12-16  Andreas Kling  <kling@webkit.org>

        Cache and reuse HTMLCollections exposed by Document.
        <http://webkit.org/b/71956>

        Reviewed by Antti Koivisto.

        Let Document cache the various HTMLCollection objects it exposes.
        This is a behavior change in two ways:

        1) The lifetime of returned collections is now tied to the lifetime
           of the Document. This matches the behavior of Firefox and Opera.

        2) The cached collections returned by document are now exactly equal
           to those returned by subsequent calls to the same getters.

        This reduces memory consumption by ~800 kB (on 64-bit) when loading
        the full HTML5 spec. document.links was called 34001 times, yielding
        34001 separate HTMLCollections, and now we only need 1.

        The document.all collection retains the old behavior, as caching it
        will be a bit more complicated.

        To avoid a reference cycle between Document and HTMLCollection,
        collections that are cached on Document do not retained their base
        node pointer (controlled by a m_baseIsRetained flag.)

        Tests: fast/dom/document-collection-idempotence.html
               fast/dom/gc-9.html

        * dom/Document.cpp:
        (WebCore::Document::detach):
        (WebCore::Document::cachedCollection):
        (WebCore::Document::images):
        (WebCore::Document::applets):
        (WebCore::Document::embeds):
        (WebCore::Document::plugins):
        (WebCore::Document::objects):
        (WebCore::Document::scripts):
        (WebCore::Document::links):
        (WebCore::Document::forms):
        (WebCore::Document::anchors):
        * dom/Document.h:
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        (WebCore::HTMLCollection::createForCachingOnDocument):
        (WebCore::HTMLCollection::~HTMLCollection):
        (WebCore::HTMLCollection::itemAfter):
        * html/HTMLCollection.h:
        (WebCore::HTMLCollection::base):

2011-12-16  Anders Carlsson  <andersca@apple.com>

        Add a pretty dumb tile cache to WebTileCacheLayer
        https://bugs.webkit.org/show_bug.cgi?id=74753

        Reviewed by Simon Fraser.

        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::requiresTiledLayer):
        If a layer is a tile cache layer, we never want to swap it out for a tiled layer.

        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
        Assert that we don't have a tile cache layer.

        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayer::PlatformCALayer):
        If we have a tile cache layer, add its tile container to the list of custom sublayers.

        * platform/graphics/ca/mac/TileCache.h: Added.
        (WebCore::TileCache::tileContainerLayer):
        Return the tile container layer.

        * platform/graphics/ca/mac/TileCache.mm: Added.
        (WebCore::TileCache::tileCacheLayerBoundsChanged):
        Resize the tile grid if necessary.

        (WebCore::TileCache::setNeedsDisplayInRect):
        Invalidate the necessary tiles.

        (WebCore::TileCache::drawLayer):
        Set up the transform and draw the layer.

        (WebCore::TileCache::getTileRangeForRect):
        Given a rect, return the range of tiles that it covers.

        (WebCore::TileCache::numTilesForGridSize):
        Given a size, return how many tiles are needed to completely cover it.

        (WebCore::TileCache::resizeTileGrid):
        Create new tile layers if needed, or reuse already existing ones.

        (WebCore::TileCache::tileLayerAtPosition):
        Given a position in the grid, return the tile layer.

        (WebCore::TileCache::createTileLayer):
        Create a WebTileLayer and set it up.

        * platform/graphics/ca/mac/WebTileCacheLayer.h:
        * platform/graphics/ca/mac/WebTileCacheLayer.mm:
        (-[WebTileCacheLayer setBounds:]):
        (-[WebTileCacheLayer setNeedsDisplayInRect:]):
        (-[WebTileCacheLayer tileContainerLayer]):
        Call down to the tile cache object.

        * platform/graphics/ca/mac/WebTileLayer.h: Added.
        * platform/graphics/ca/mac/WebTileLayer.mm: Added.

        (-[WebTileLayer drawInContext:]):
        Ask the tile cache to draw the given layer.

        (-[WebTileLayer setTileCache:WebCore::]):

2011-12-16  Sam Weinig  <sam@webkit.org>

        Give PlatformEvents a base class
        https://bugs.webkit.org/show_bug.cgi?id=74685

        Reviewed by Anders Carlsson.

        Add a base class for PlatformMouseEvent, PlatformKeyboardEvent, PlatformWheelEvent
        and PlatformGestureEvent and move Type enumeration and modifiers down to it.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        Add new files.

        * platform/PlatformEvent.cpp: Added.
        * platform/PlatformEvent.h: Added.
        (WebCore::PlatformEvent::type):
        (WebCore::PlatformEvent::shiftKey):
        (WebCore::PlatformEvent::ctrlKey):
        (WebCore::PlatformEvent::altKey):
        (WebCore::PlatformEvent::metaKey):
        (WebCore::PlatformEvent::modifiers):
        (WebCore::PlatformEvent::PlatformEvent):
        Add new class.

        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):
        * dom/KeyboardEvent.cpp:
        (WebCore::eventTypeForKeyboardEventType):
        * dom/MouseEvent.cpp:
        (WebCore::MouseEvent::create):
        * page/DragController.cpp:
        (WebCore::createMouseEvent):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleGestureEvent):
        (WebCore::EventHandler::sendContextMenuEventForKey):
        (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
        (WebCore::EventHandler::handleAccessKey):
        (WebCore::EventHandler::keyEvent):
        (WebCore::EventHandler::handleDrag):
        * page/blackberry/EventHandlerBlackBerry.cpp:
        (WebCore::EventHandler::accessKeyModifiers):
        * page/chromium/EventHandlerChromium.cpp:
        (WebCore::EventHandler::accessKeyModifiers):
        * page/efl/EventHandlerEfl.cpp:
        (WebCore::EventHandler::accessKeyModifiers):
        * page/gtk/EventHandlerGtk.cpp:
        (WebCore::EventHandler::accessKeyModifiers):
        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::accessKeyModifiers):
        * page/qt/EventHandlerQt.cpp:
        (WebCore::EventHandler::accessKeyModifiers):
        * page/win/EventHandlerWin.cpp:
        (WebCore::EventHandler::accessKeyModifiers):
        * page/wx/EventHandlerWx.cpp:
        (WebCore::EventHandler::accessKeyModifiers):
        * platform/PlatformGestureEvent.h:
        (WebCore::PlatformGestureEvent::PlatformGestureEvent):
        * platform/PlatformKeyboardEvent.h:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        (WebCore::PlatformKeyboardEvent::isKeypad):
        * platform/PlatformMouseEvent.h:
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        (WebCore::PlatformMouseEvent::button):
        * platform/PlatformWheelEvent.h:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
        * platform/ScrollAnimatorNone.cpp:
        (WebCore::ScrollAnimatorNone::zoom):
        (WebCore::ScrollAnimatorNone::handleGestureEvent):
        * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
        (WebCore::toWebCorePlatformKeyboardEventType):
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
        * platform/chromium/GestureRecognizerChromium.cpp:
        (WebCore::GestureRecognizerChromium::appendTapDownGestureEvent):
        (WebCore::GestureRecognizerChromium::appendClickGestureEvent):
        (WebCore::GestureRecognizerChromium::appendDoubleClickGestureEvent):
        (WebCore::GestureRecognizerChromium::appendScrollGestureBegin):
        (WebCore::GestureRecognizerChromium::appendScrollGestureEnd):
        (WebCore::GestureRecognizerChromium::appendScrollGestureUpdate):
        * platform/chromium/PlatformKeyboardEventChromium.cpp:
        (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
        * platform/chromium/PopupContainer.cpp:
        (WebCore::PopupContainer::handleGestureEvent):
        * platform/chromium/PopupListBox.cpp:
        (WebCore::isCharacterTypeEvent):
        (WebCore::PopupListBox::handleKeyEvent):
        * platform/chromium/ScrollAnimatorChromiumMac.mm:
        (WebCore::ScrollAnimatorChromiumMac::handleGestureEvent):
        * platform/efl/PlatformKeyboardEventEfl.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
        * platform/efl/PlatformMouseEventEfl.cpp:
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/efl/PlatformWheelEventEfl.cpp:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
        * platform/gtk/PlatformKeyboardEventGtk.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
        * platform/gtk/PlatformMouseEventGtk.cpp:
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/gtk/PlatformWheelEventGtk.cpp:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
        * platform/ios/KeyEventIOS.mm:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
        * platform/mac/KeyEventMac.mm:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/mac/PlatformMouseEventMac.mm:
        (WebCore::mouseEventForNSEvent):
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::handleGestureEvent):
        * platform/mac/WheelEventMac.mm:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
        * platform/qt/PlatformKeyboardEventQt.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
        * platform/qt/PlatformMouseEventQt.cpp:
        (WebCore::mouseEventTypeAndMouseButtonFromQEvent):
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/qt/WheelEventQt.cpp:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
        * platform/win/KeyEventWin.cpp:
        (WebCore::isKeypadEvent):
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/win/PlatformMouseEventWin.cpp:
        (WebCore::messageToEventType):
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/win/WheelEventWin.cpp:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
        * platform/wx/KeyboardEventWx.cpp:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
        * platform/wx/MouseEventWx.cpp:
        (WebCore::typeFromMouseEvent):
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/wx/MouseWheelEventWx.cpp:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent):
        * plugins/mac/PluginViewMac.mm:
        (WebCore::PluginView::handleKeyboardEvent):
        * testing/Internals.cpp:
        (WebCore::Internals::setZoomAnimatorTransform):
        Switch to using new names/class modifier as necessary.

2011-12-16  Adam Barth  <abarth@webkit.org>

        <!doctype html><div><body><frameset> doesn't parse correctly
        https://bugs.webkit.org/show_bug.cgi?id=74745

        Reviewed by Eric Seidel.

        We were missing one place the spec tells us to set this bool.

        Tests: html5lib/runner.html

        * html/parser/HTMLTreeBuilder.cpp:

2011-12-16  Jarred Nicholls  <jarred@sencha.com>

        Support HTML documents in XHR.responseXML
        https://bugs.webkit.org/show_bug.cgi?id=74626

        Latest W3C XHR spec details for the responseXML attribute:
        http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#the-responsexml-attribute
        http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#document-response-entity-body

        XHR.responseXML was not compliant per the latest editor's draft of the XHR spec.
        The following compliance issue have been corrected:
          - A responseType of "text" should disallow access to responseXML by throwing an InvalidState exception.
          - When the error flag is toggled, responseXML should return "null" immediately and not attempt to create a new Document.
          - responseXML should return a valid HTML document when the MIME type is "text/html", but only when the caller has
            explicitly set responseType to "document".

        Reviewed by Alexey Proskuryakov.

        Tests: fast/xmlhttprequest/xmlhttprequest-responseXML-html-document-responsetype-quirks.html
               fast/xmlhttprequest/xmlhttprequest-responseXML-html-document-responsetype-strict.html
               fast/xmlhttprequest/xmlhttprequest-responseXML-html-no-responsetype.html
               fast/xmlhttprequest/xmlhttprequest-responseXML-invalid-xml.html
               fast/xmlhttprequest/xmlhttprequest-responseXML-xml-document-responsetype.html
               fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype.html

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::responseXML):
        (WebCore::XMLHttpRequest::clearResponseBuffers):
        * xml/XMLHttpRequest.h: Rename m_responseXML to m_responseDocument
        (WebCore::XMLHttpRequest::optionalResponseXML):

2011-12-16  Ryosuke Niwa  <rniwa@webkit.org>

        Only EditCommandComposition should implement unapply and reapply
        https://bugs.webkit.org/show_bug.cgi?id=74490

        Reviewed by Eric Seidel.

        Introduce new abstract class UndoStep to replace EditCommand for EditorClient, and make EditCommand
        private to WebCore.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * editing/CompositeEditCommand.cpp:
        (WebCore::EditCommandComposition::create): Takes EditAction instead of boolean for CreateLinkCommand.
        (WebCore::EditCommandComposition::EditCommandComposition): Ditto.
        (WebCore::EditCommandComposition::unapply): Moved from EditCommand; we don't have to call isTopLevelCommand
        anymore because EditCommandComposition is always top-level. In fact, the only thing unapply/reapply do
        in addition to what doUnapply/doReapply do for sub-level commands is disabling and enabling delete button
        and defining an event queue scope. However, these can be done at top-level command anyway, so we now only call
        doApply for sub-level commands.
        (WebCore::EditCommandComposition::reapply): Ditto.
        (WebCore::EditCommandComposition::setStartingSelection): Added.
        (WebCore::EditCommandComposition::setEndingSelection): Added.
        (WebCore::applyCommand): Moved from EditCommand.
        (WebCore::CompositeEditCommand::apply): Moved from EditCommand; doesn't call isTopLevelCommand for the same reason.
        (WebCore::CompositeEditCommand::ensureComposition):
        (WebCore::CompositeEditCommand::applyCommandToComposite): Call doApply instead of apply for the same reason.
        * editing/CompositeEditCommand.h:
        (WebCore::EditCommandComposition::wasCreateLinkCommand):
        (WebCore::EditCommandComposition::startingSelection): Added.
        (WebCore::EditCommandComposition::endingSelection): Added.
        * editing/EditCommand.cpp:
        (WebCore::EditCommand::setStartingSelection):
        (WebCore::EditCommand::setEndingSelection):
        (WebCore::SimpleEditCommand::doReapply): Moved from EditCommand.
        * editing/EditCommand.h:
        * editing/UndoStep.h: Added.
        (WebCore::UndoStep::~UndoStep):
        * loader/EmptyClients.h:
        (WebCore::EmptyEditorClient::shouldInsertNode):
        (WebCore::EmptyEditorClient::didSetSelectionTypesForPasteboard):
        (WebCore::EmptyEditorClient::registerCommandForUndo): Takes UndoStep instead of EditCommand.
        (WebCore::EmptyEditorClient::registerCommandForRedo): Ditto.
        * page/EditorClient.h:

2011-12-16  Simon Fraser  <simon.fraser@apple.com>

        Allow a PlatformCALayer to own its own sublayers
        https://bugs.webkit.org/show_bug.cgi?id=74744

        Reviewed by Anders Carlsson.

        GraphicsLayerCA rebuilds the sublayer list of CALayers, which would
        blow away any custom layers that a PlatformCALayer wants to maintain
        as children.
        
        Make it possible for a PlatformLayerCA to indicate that it wants
        a specific list of sublayers to be maintained as the first layers
        in the child list.
        
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateSublayerList):
        * platform/graphics/ca/PlatformCALayer.h:
        (WebCore::PlatformCALayer::customSublayers):
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayer::PlatformCALayer):

2011-12-16  Adam Barth  <abarth@webkit.org>

        <!DOCTYPE html><pre>&#x0a;&#x0a;A</pre> doesn't parse correctly
        https://bugs.webkit.org/show_bug.cgi?id=74658

        Reviewed by Darin Adler.

        Previously, we handled skipping newlines after <pre> in the tokenizer,
        which isn't how the spec handles them.  Instead, the spec skips them in
        the tree builder.  This isn't usually observable, except in the case of
        an HTML entity.  In that case, the tokenzier sees '&' (because the
        entity hasn't been decoded yet), but the tree builder sees '\n' (the
        decoded entity).  This patch fixes the bug by more closely aligning our
        implementation with the spec.

        Test: html5lib/runner.html

        * html/parser/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::reset):
        (WebCore::HTMLTokenizer::nextToken):
        * html/parser/HTMLTokenizer.h:
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipAtMostOneLeadingNewline):
        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
        (WebCore::HTMLTreeBuilder::processCharacterBuffer):
        * html/parser/HTMLTreeBuilder.h:
        * xml/parser/MarkupTokenizerBase.h:

2011-12-16  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Implement IDBObjectStore.count() and IDBIndex.count()
        https://bugs.webkit.org/show_bug.cgi?id=73686

        Reviewed by Tony Chang.

        These new methods open an internal cursor and iterate through the
        results, returning the number of items found. Note that only
        passing an IDBKeyRange is supported, not an IDBKey. Supporting
        that will require some IDL/binding monkeying; several other
        methods also need the same Key-or-KeyRange behavior.

        Tests: storage/indexeddb/index-count.html
               storage/indexeddb/objectstore-count.html

        * bindings/v8/SerializedScriptValue.cpp:
        (WebCore::SerializedScriptValue::numberValue):
        * bindings/v8/SerializedScriptValue.h:
        * storage/IDBIndex.cpp:
        (WebCore::IDBIndex::openCursor):
        (WebCore::IDBIndex::count):
        * storage/IDBIndex.h:
        (WebCore::IDBIndex::count):
        * storage/IDBIndex.idl:
        * storage/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::countInternal):
        (WebCore::IDBIndexBackendImpl::count):
        * storage/IDBIndexBackendImpl.h:
        * storage/IDBIndexBackendInterface.h:
        * storage/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::count):
        * storage/IDBObjectStore.h:
        (WebCore::IDBObjectStore::count):
        * storage/IDBObjectStore.idl:
        * storage/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::count):
        (WebCore::IDBObjectStoreBackendImpl::countInternal):
        * storage/IDBObjectStoreBackendImpl.h:
        * storage/IDBObjectStoreBackendInterface.h:

2011-12-16  Yael Aharon  <yael.aharon@nokia.com>

        Audio file in video element has a size of 0x0 .
        https://bugs.webkit.org/show_bug.cgi?id=74738

        Reviewed by Kenneth Rohde Christiansen.

        When the source of a video element has audio only, the intrinsic size of the video should
        not be 0x0. Instead, it should be the same as as no media was loaded.

        No new tests. An existing test is covering this case and was modified to reflect this change.

        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::calculateIntrinsicSize):

2011-12-16  Alexis Menard  <alexis.menard@openbossa.org>

        getComputedStyle for border-width is not implemented.
        https://bugs.webkit.org/show_bug.cgi?id=74635

        Reviewed by Tony Chang.

        Implement getComputedStyle for border-width.

        Test: fast/css/getComputedStyle/getComputedStyle-border-width.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2011-12-16  Branimir Lambov  <blambov@google.com>

        [chromium] svg/clip-path/clip-in-mask.svg fails on Windows and Linux
        https://bugs.webkit.org/show_bug.cgi?id=53378

        Reviewed by Tony Chang.

        Fixes a problem in Skia's clipping layer code's handling of coordinate
        transformations that was causing all complex clipping (including text
        and/or masks) to fail.

        The method beginLayerClippedToImage was taking rectangle coordinates
        in one local coordinate space, but it was applying them in a different  
        one because of the delay between the time it is called and the actual 
        application occurs in applyClipFromImage. The fix translates the 
        coordinates passed to beginLayerClippedToImage to absolute ones, so 
        that they are not affected by any change in the transform matrix, and 
        makes sure that applyClipFromImage clears the matrix before drawing
        the clip layer to correctly apply the absolute coordinates.

        * platform/graphics/skia/PlatformContextSkia.cpp:
        (WebCore::PlatformContextSkia::beginLayerClippedToImage):
        (WebCore::PlatformContextSkia::applyClipFromImage):
        * platform/graphics/skia/PlatformContextSkia.h:

2011-12-16  Mark Hahnenberg  <mhahnenberg@apple.com>

        De-virtualize destructors
        https://bugs.webkit.org/show_bug.cgi?id=74331

        Reviewed by Geoffrey Garen.

        No new tests.

        Doing everything here that was done to the JSCell hierarchy in JavaScriptCore. 
        See the ChangeLog for this commit for a more in-depth description.

        * WebCore.exp.in: Add/remove symbols.
        * bindings/js/JSCanvasRenderingContext2DCustom.cpp: Remove first arg from isJSArray call.
        (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
        * bindings/js/JSDOMBinding.cpp: Add trival destructor assert for DOMConstructorObject 
        and DOMConstructorWithDocument.
        * bindings/js/JSDOMGlobalObject.cpp: Add static destroy.  Add implementation for 
        scriptExecutionContext that dispatches to different functions in subclasses 
        depending on our current ClassInfo.  We do this so that we can get rid of the 
        virtual-ness of scriptExecutionContext, because any virtual functions will throw 
        off the layout of the object and we'll crash at runtime.
        (WebCore::JSDOMGlobalObject::destroy):
        (WebCore::JSDOMGlobalObject::scriptExecutionContext):
        * bindings/js/JSDOMGlobalObject.h:
        * bindings/js/JSDOMWindowBase.cpp: Add static destroy.
        (WebCore::JSDOMWindowBase::destroy):
        * bindings/js/JSDOMWindowBase.h: De-virtualize scriptExecutionContext.
        * bindings/js/JSDOMWindowShell.cpp: Add static destroy.
        (WebCore::JSDOMWindowShell::destroy):
        * bindings/js/JSDOMWindowShell.h:
        * bindings/js/JSDOMWrapper.cpp: Add trivial destructor assert.
        * bindings/js/JSDOMWrapper.h: Add a ClassInfo to JSDOMWrapper since it now overrides 
        a MethodTable function. Remove vtableAnchor virtual function.
        * bindings/js/JSImageConstructor.cpp: Add trivial destructor assert.
        * bindings/js/JSNodeCustom.cpp: Change implementation of pushEventHandlerScope so that 
        it dispatches to the correct function depending on the 
        identity of the class as specified by the ClassInfo.  
        See JSDOMGlobalObject::scriptExecutionContext for explanation.
        (WebCore::JSNode::pushEventHandlerScope):
        * bindings/js/JSWebSocketCustom.cpp: Remove first arg to isJSArray call.
        (WebCore::JSWebSocketConstructor::constructJSWebSocket):
        * bindings/js/JSWorkerContextBase.cpp: Add static destroy.
        (WebCore::JSWorkerContextBase::destroy):
        * bindings/js/JSWorkerContextBase.h: 
        * bindings/js/ScriptValue.cpp: Remove first arg to isJSArray call.
        (WebCore::jsToInspectorValue): 
        * bindings/js/SerializedScriptValue.cpp: Ditto.
        (WebCore::CloneSerializer::isArray):
        (WebCore::CloneSerializer::getSparseIndex):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader): Remove virtual-ness of any custom pushEventHandlerScope (see 
        JSNodeCustom::pushEventHandlerScope for explanation).  Remove virtual toBoolean 
        for anybody who masquerades as undefined, since our JSObject implementation handles 
        this based on the TypeInfo in the Structure. Add trivial destructor assert for any 
        class other than DOMWindow or WorkerContexts.
        (GenerateImplementation): Change ClassInfo definitions to use Base::s_info, since 
        typing the parent class more than once is duplication of information and increases 
        the likelihood of mistakes.  Pass ClassInfo to TypeArrayDescriptors instead of vptr. 
        (GenerateConstructorDefinition): Add trivial destructor assert for all generated constructors.
        * bridge/c/CRuntimeObject.cpp: Remove empty virtual destructor.
        * bridge/c/CRuntimeObject.h: 
        * bridge/jni/jsc/JavaRuntimeObject.cpp: Ditto.
        * bridge/jni/jsc/JavaRuntimeObject.h: 
        * bridge/objc/ObjCRuntimeObject.h: Ditto.
        * bridge/objc/ObjCRuntimeObject.mm:
        * bridge/objc/objc_runtime.h: Add static destroy for ObjcFallbackObjectImp. De-virtualize 
        toBoolean in the short term.  Need longer term fix.
        * bridge/objc/objc_runtime.mm:
        (JSC::Bindings::ObjcFallbackObjectImp::destroy):
        * bridge/qt/qt_runtime.cpp: Add static destroy to QtRuntimeMethod.
        (JSC::Bindings::QtRuntimeMethod::destroy):
        * bridge/qt/qt_runtime.h: De-virtualize ~QtRuntimeMethod.
        * bridge/runtime_array.cpp: De-virtualize destructor. Add static destroy.
        (JSC::RuntimeArray::destroy):
        * bridge/runtime_array.h:
        * bridge/runtime_method.cpp: Remove vtableAnchor. Add static destroy.
        (JSC::RuntimeMethod::destroy):
        * bridge/runtime_method.h:
        * bridge/runtime_object.cpp: Add static destroy.
        (JSC::Bindings::RuntimeObject::destroy):
        * bridge/runtime_object.h:

2011-12-15  Alexey Proskuryakov  <ap@apple.com>

        Poor XPath performance when evaluating an expression that returns a lot of nodes
        https://bugs.webkit.org/show_bug.cgi?id=74665
        <rdar://problem/10517146>

        Reviewed by Darin Adler.

        No change in funcitonality. Well covered by existing tests (ran them with zero cutoff to
        execute the new code path).

        Our sorting function is optimized for small node sets in large documents, and this is the
        opposite of it. Added another one that traverses the whole document, adding nodes from the
        node set to sorted list. That doesn't grow with the number of nodes nearly as fast.

        Cutoff amount chosen for the document referenced in bug - this is roughly where the algorithms
        have the same performance on it.

        * xml/XPathNodeSet.cpp:
        (WebCore::XPath::NodeSet::sort):
        (WebCore::XPath::findRootNode):
        (WebCore::XPath::NodeSet::traversalSort):
        * xml/XPathNodeSet.h:

2011-12-15  Antti Koivisto  <antti@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=74677
        Count ResourceLoadScheduler suspends/resumes

        Reviewed by Andreas Kling.

        Using boolean is not robust when there are multiple clients calling suspendPendingRequests/resumePendingRequests.
        
        Increment and decrement suspend count instead of just setting/unsetting a boolean.

        * loader/ResourceLoadScheduler.cpp:
        (WebCore::ResourceLoadScheduler::ResourceLoadScheduler):
        (WebCore::ResourceLoadScheduler::servePendingRequests):
        (WebCore::ResourceLoadScheduler::suspendPendingRequests):
        (WebCore::ResourceLoadScheduler::resumePendingRequests):
        * loader/ResourceLoadScheduler.h:
        (WebCore::ResourceLoadScheduler::isSuspendingPendingRequests):

2011-12-16  Adam Klein  <adamk@chromium.org>

        Improve performance of ChildListMutationScope when no MutationObservers are present
        https://bugs.webkit.org/show_bug.cgi?id=74671

        Reviewed by Ojan Vafai.

        Inline ChildListMutationScope's methods (including constructor and
        destructor), and provide a fast-fail case when no mutation observers
        are present.

        The code reorganization necessary for the above also removed the
        anonymous namespace in ChildListMutationScope.cpp, making both helper
        classes private inner classes of ChildListMutationScope.

        No new tests, refactoring only.

        * dom/ChildListMutationScope.cpp:
        (WebCore::ChildListMutationScope::MutationAccumulator::MutationAccumulator):
        (WebCore::ChildListMutationScope::MutationAccumulator::~MutationAccumulator):
        (WebCore::ChildListMutationScope::MutationAccumulator::isAddedNodeInOrder):
        (WebCore::ChildListMutationScope::MutationAccumulator::childAdded):
        (WebCore::ChildListMutationScope::MutationAccumulator::isRemovedNodeInOrder):
        (WebCore::ChildListMutationScope::MutationAccumulator::willRemoveChild):
        (WebCore::ChildListMutationScope::MutationAccumulator::enqueueMutationRecord):
        (WebCore::ChildListMutationScope::MutationAccumulator::clear):
        (WebCore::ChildListMutationScope::MutationAccumulator::isEmpty):
        (WebCore::ChildListMutationScope::MutationAccumulationRouter::MutationAccumulationRouter):
        (WebCore::ChildListMutationScope::MutationAccumulationRouter::~MutationAccumulationRouter):
        (WebCore::ChildListMutationScope::MutationAccumulationRouter::initialize):
        (WebCore::ChildListMutationScope::MutationAccumulationRouter::instance):
        (WebCore::ChildListMutationScope::MutationAccumulationRouter::childAdded):
        (WebCore::ChildListMutationScope::MutationAccumulationRouter::willRemoveChild):
        (WebCore::ChildListMutationScope::MutationAccumulationRouter::incrementScopingLevel):
        (WebCore::ChildListMutationScope::MutationAccumulationRouter::decrementScopingLevel):
        * dom/ChildListMutationScope.h:
        (WebCore::ChildListMutationScope::ChildListMutationScope):
        (WebCore::ChildListMutationScope::~ChildListMutationScope):
        (WebCore::ChildListMutationScope::childAdded):
        (WebCore::ChildListMutationScope::willRemoveChild):

2011-12-16  Dean Jackson  <dino@apple.com>

        Filters need to affect visual overflow
        https://bugs.webkit.org/show_bug.cgi?id=71930

        Reviewed by Simon Fraser.

        Make sure filters are included in visual overflow.
        Add a new method to calculate the expansion of overflow
        region given a list of FilterOperations. This is a slight
        duplication of code from the rendering path, but is needed
        because overflow is calculated before the FilterEffect
        chain is built.

        Also, filters were always rendered into their
        input rectangle which was wrong for any effect
        that produced a different sized result - drop-shadow
        and blur. This required two changes. First, FilterEffect
        needed a flag to decide whether or not to clip
        output to primitive regions (as required by SVG but not
        what we want here). Second, the rendering operation
        draws into the rectangle the filter claims is its painting
        rectangle.

        Test: css3/filters/regions-expanding.html

        * platform/graphics/filters/FEDropShadow.cpp:
        (WebCore::FEDropShadow::determineAbsolutePaintRect): Only
        clipToBounds if necessary.
        * platform/graphics/filters/FEGaussianBlur.cpp:
        (WebCore::FEGaussianBlur::calculateUnscaledKernelSize): CSS filters
        ask for the kernel size before the Filter object is created, so
        add a new method to return an unscaled kernel.
        (WebCore::FEGaussianBlur::calculateKernelSize):
        (WebCore::FEGaussianBlur::determineAbsolutePaintRect): Only
        clipToBounds if necessary.
        * platform/graphics/filters/FEGaussianBlur.h:
        * platform/graphics/filters/FEMorphology.cpp:
        (WebCore::FEMorphology::determineAbsolutePaintRect): Only
        clipToBounds if necessary.
        * platform/graphics/filters/FEOffset.cpp:
        (WebCore::FEOffset::determineAbsolutePaintRect): Only
        clipToBounds if necessary.
        * platform/graphics/filters/FilterEffect.cpp:
        (WebCore::FilterEffect::FilterEffect): Initialize clipToBounds
        as false so SVG remains unchanged.
        (WebCore::FilterEffect::determineAbsolutePaintRect): Only
        clipToBounds if necessary.
        * platform/graphics/filters/FilterEffect.h:
        (WebCore::FilterEffect::clipsToBounds):
        (WebCore::FilterEffect::setClipsToBounds):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::build): Make sure we set our
        filters here to NOT clip to bounds.
        * rendering/FilterEffectRenderer.h:
        (WebCore::FilterEffectRenderer::outputRect): Asks the filter
        operation for the size of the result image.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computeOverflow):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::addVisualEffectOverflow): Change the name
        from addBoxShadowAndBorderOverflow().
        * rendering/RenderBox.h:
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::layout):
        * rendering/RenderIFrame.cpp:
        (WebCore::RenderIFrame::layout):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayer):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::hasBoxDecorations): Change name from
        hasBorderOutlineOrShadow().
        (WebCore::hasBoxDecorationsOrBackground):
        (WebCore::hasBoxDecorationsOrBackgroundImage):
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::layout):
        * rendering/style/FilterOperations.cpp:
        (WebCore::outsetSizeForBlur): Return an IntSize that is the amount
        of offset.
        (WebCore::FilterOperations::hasOutsets):
        (WebCore::FilterOperations::getOutsets):
        * rendering/style/FilterOperations.h:
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::getFilterOutsets):
        (WebCore::InheritedFlags::hasFilterOutsets):
        * svg/graphics/filters/SVGFEImage.cpp:
        (WebCore::FEImage::determineAbsolutePaintRect): Only
        clipToBounds if necessary.

2011-12-16  Alexis Menard  <alexis.menard@openbossa.org>, Jakub Wieczorek  <jwieczorek@webkit.org>

        Add support for <ol reversed>.
        https://bugs.webkit.org/show_bug.cgi?id=36724

        The reversed attribute makes an ordered list appear with marker values
        decreasing from n, where n is the number of items.
        See: http://www.whatwg.org/specs/web-apps/current-work/#attr-ol-reversed

        Reviewed by Darin Adler.

        Tests: fast/lists/ol-reversed-dynamic-simple.html
               fast/lists/ol-reversed-dynamic.html
               fast/lists/ol-reversed-nested-items.html
               fast/lists/ol-reversed-nested-list.html
               fast/lists/ol-reversed-simple.html

        * html/HTMLAttributeNames.in:
        * html/HTMLOListElement.cpp:
        (WebCore::HTMLOListElement::HTMLOListElement):
        (WebCore::HTMLOListElement::parseMappedAttribute):
        (WebCore::HTMLOListElement::updateItemValues):
        (WebCore::HTMLOListElement::recalculateItemCount):
        * html/HTMLOListElement.h:
        (WebCore::HTMLOListElement::start):
        (WebCore::HTMLOListElement::isReversed):
        (WebCore::HTMLOListElement::itemCountChanged):
        (WebCore::HTMLOListElement::itemCount):
        * html/HTMLOListElement.idl:
        * rendering/RenderListItem.cpp:
        (WebCore::RenderListItem::nextListItem):
        (WebCore::previousListItem):
        (WebCore::RenderListItem::calcValue):
        (WebCore::RenderListItem::explicitValueChanged):
        (WebCore::previousOrNextItem):
        (WebCore::RenderListItem::updateListMarkerNumbers):
        * rendering/RenderListItem.h:

2011-12-16  Mikhail Naganov  <mnaganov@chromium.org>

        Scroll non-visible edit controls and caret into the center of the view when starting typing.
        https://bugs.webkit.org/show_bug.cgi?id=65027

        Reviewed by Ryosuke Niwa.

        Tests: editing/input/caret-at-the-edge-of-contenteditable.html
               editing/input/caret-at-the-edge-of-input.html
               editing/input/reveal-caret-of-multiline-contenteditable.html
               editing/input/reveal-caret-of-multiline-input.html
               editing/input/reveal-contenteditable-on-input-vertically.html
               editing/input/reveal-contenteditable-on-paste-vertically.html
               editing/input/reveal-edit-on-input-vertically.html
               editing/input/reveal-edit-on-paste-vertically.html

        * editing/Editor.cpp:
        (WebCore::Editor::insertTextWithoutSendingTextEvent):
        (WebCore::Editor::revealSelectionAfterEditingOperation):

2011-12-16  Ryosuke Niwa  <rniwa@webkit.org>

        Touch RenderStyle in an attempt to fix linking errors on Chromium Windows bots.

        * rendering/style/RenderStyle.h:

2011-12-14  Nat Duca  <nduca@chromium.org>

        [chromium] DelayBasedTimeSource should not change its timebase on late ticks
        https://bugs.webkit.org/show_bug.cgi?id=74573

        The original DelayBasedTimeSource was designed to shift its timebase
        to the tick time when a tick came back "late." The rationale was that it is
        better to just "start fresh" after a stutter. After profiling this,
        this time-rebasing just destabilizes frame rate anytime the thread gets
        loaded.  This patch keeps the timebase stationary, leading to vastly
        smoother framerates when the message loop is under load.

        Reviewed by James Robinson.

        * platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
        (WebCore::CCDelayBasedTimeSource::updateState):

2011-12-16  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r103062.
        http://trac.webkit.org/changeset/103062
        https://bugs.webkit.org/show_bug.cgi?id=74715

        It broke many tests (Requested by Ossy on #webkit).

        * html/HTMLAttributeNames.in:
        * html/HTMLOListElement.cpp:
        (WebCore::HTMLOListElement::HTMLOListElement):
        (WebCore::HTMLOListElement::parseMappedAttribute):
        * html/HTMLOListElement.h:
        (WebCore::HTMLOListElement::start):
        * html/HTMLOListElement.idl:
        * rendering/RenderListItem.cpp:
        (WebCore::previousListItem):
        (WebCore::RenderListItem::calcValue):
        (WebCore::RenderListItem::explicitValueChanged):
        (WebCore::RenderListItem::updateListMarkerNumbers):
        * rendering/RenderListItem.h:

2011-12-16  Alexis Menard  <alexis.menard@openbossa.org>, Jakub Wieczorek  <jwieczorek@webkit.org>

        Add support for <ol reversed>.
        https://bugs.webkit.org/show_bug.cgi?id=36724

        The reversed attribute makes an ordered list appear with marker values
        decreasing from n, where n is the number of items.
        See: http://www.whatwg.org/specs/web-apps/current-work/#attr-ol-reversed

        Reviewed by Darin Adler.

        Tests: fast/lists/ol-reversed-dynamic-simple.html
               fast/lists/ol-reversed-dynamic.html
               fast/lists/ol-reversed-nested-items.html
               fast/lists/ol-reversed-nested-list.html
               fast/lists/ol-reversed-simple.html

        * html/HTMLAttributeNames.in:
        * html/HTMLOListElement.cpp:
        (WebCore::HTMLOListElement::HTMLOListElement):
        (WebCore::HTMLOListElement::parseMappedAttribute):
        (WebCore::HTMLOListElement::updateItemValues):
        (WebCore::HTMLOListElement::recalculateItemCount):
        * html/HTMLOListElement.h:
        (WebCore::HTMLOListElement::start):
        (WebCore::HTMLOListElement::isReversed):
        (WebCore::HTMLOListElement::itemCountChanged):
        (WebCore::HTMLOListElement::itemCount):
        * html/HTMLOListElement.idl:
        * rendering/RenderListItem.cpp:
        (WebCore::RenderListItem::nextListItem):
        (WebCore::previousListItem):
        (WebCore::RenderListItem::calcValue):
        (WebCore::RenderListItem::explicitValueChanged):
        (WebCore::previousOrNextItem):
        (WebCore::RenderListItem::updateListMarkerNumbers):
        * rendering/RenderListItem.h:

2011-12-15  Stephen White  <senorblanco@chromium.org>

        Enable CSS_FILTERS in Chromium.
        https://bugs.webkit.org/show_bug.cgi?id=74334

        Reviewed by Chris Marrin.

        Covered by css3/filters (when enabled).

        * platform/graphics/filters/FilterOperation.h:
        (WebCore::PassthroughFilterOperation::PassthroughFilterOperation):
        Since wingdi.h #define's PASSTHROUGH, #undef it after the includes.

2011-12-16  Patrick Gansterer  <paroga@webkit.org>

        Unreviewed WinCE build fix after r102979.

        Make everHadLayout() public accessible as it was before the change.

        * rendering/RenderObject.h:
        (WebCore::RenderObject::everHadLayout):

2011-12-15  Hans Wennborg  <hans@chromium.org>

        IndexedDB: Don't prefetch values from key cursors
        https://bugs.webkit.org/show_bug.cgi?id=74604

        Reviewed by Tony Chang.

        Since index key cursors don't have values, prefetching should not try
        to retrieve them. Doing so trips an ASSERT in debug builds.

        This will be tested Chromium-side.

        * storage/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):

2011-12-16  Yosifumi Inoue  <yosin@chromium.org>

        [Forms] The "maxlength" attribute on "textarea" tag miscounts hard newlines
        https://bugs.webkit.org/show_bug.cgi?id=74686

        Reviewed by Kent Tamura.

        This patch counts LF in textarea value as two for LF to CRLF conversion on submission.

        No new tests. Existing tests cover all changes.

        * html/HTMLTextAreaElement.cpp:
        (WebCore::computeLengthForSubmission): Count LF as 2 for CR LF conversion on submission.
        (WebCore::HTMLTextAreaElement::handleBeforeTextInsertedEvent): Use computeLengthForSubmission instead of numGraphemeClusters.
        (WebCore::HTMLTextAreaElement::tooLong): Use computeLengthForSubmission instead of numGraphemeClusters.

2011-12-16  Hajime Morrita  <morrita@chromium.org>

        Unreviewed, rolling out r103045.
        http://trac.webkit.org/changeset/103045
        https://bugs.webkit.org/show_bug.cgi?id=74590

        Breaks select-script-onchange.html on Chromium Windows

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::typeAheadFind):

2011-12-16  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distcheck.

        * GNUmakefile.list.am: Add missing header file.

2011-12-16  Yosifumi Inoue  <yosin@chromium.org>

        [Forms] Selection change by type-ahead doesn't fire 'change' event
        https://bugs.webkit.org/show_bug.cgi?id=74590

        Reviewed by Kent Tamura.

        Fire onchange even for type ahead selection.

        Test: fast/forms/select/menulist-type-ahead-find.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::typeAheadFind): Add DispatchChangeEvent when
        calling selectOption method.

2011-12-16  Andreas Kling  <kling@webkit.org>

        Don't call Document::body() twice in the same function.
        <http://webkit.org/b/74683>

        Reviewed by Dan Bernstein.

        Document::body() is O(n), so we should avoid calling it multiple
        times unnecessarily.

        * dom/Document.cpp:
        (WebCore::Document::updateLayoutIgnorePendingStylesheets):

2011-12-16  Daniel Sievers  <sievers@chromium.org>

        [Chromium] Add trace events for decoding and drawing images.
        https://bugs.webkit.org/show_bug.cgi?id=74547

        Reviewed by James Robinson.

        * platform/graphics/skia/ImageSkia.cpp:
        (WebCore::drawResampledBitmap):
        (WebCore::paintSkBitmap):
        (WebCore::Image::drawPattern):
        * platform/graphics/skia/NativeImageSkia.cpp:
        (WebCore::NativeImageSkia::resizedBitmap):
        * platform/image-decoders/bmp/BMPImageDecoder.cpp:
        (WebCore::BMPImageDecoder::decode):
        * platform/image-decoders/gif/GIFImageDecoder.cpp:
        (WebCore::GIFImageDecoder::decode):
        * platform/image-decoders/ico/ICOImageDecoder.cpp:
        (WebCore::ICOImageDecoder::decode):
        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (WebCore::JPEGImageDecoder::decode):
        * platform/image-decoders/png/PNGImageDecoder.cpp:
        (WebCore::PNGImageDecoder::decode):
        * platform/image-decoders/webp/WEBPImageDecoder.cpp:
        (WebCore::WEBPImageDecoder::decode):

2011-12-15  Martin Robinson  <mrobinson@igalia.com>

        Fix 'make dist' in preparation for the GTK+ release.

        * GNUmakefile.list.am: Add missing header.

2011-12-15  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>

        Don't create empty files on error.
        https://bugs.webkit.org/show_bug.cgi?id=74373

        Reviewed by Ryosuke Niwa.

        * css/makeprop.pl:
        * css/makevalues.pl:
        * make-hash-tools.pl:

2011-12-15  Yongjun Zhang  <yongjun_zhang@apple.com>

        PODIntervalTree takes 1.7MB memory on www.nytimes.com.
        https://bugs.webkit.org/show_bug.cgi?id=73712

        Reviewed by Kenneth Russell.

        For a RenderBlock which has floating objects inside, we will create a PODIntervalTree and a PODArena with
        at least one 16KB chunk.  A page could have a large number of such RenderBlocks and they could take huge
        amount of memory.  To fix that, we can create a shared PODArena in the root RenderView.  Instead of having
        their own PODArena, each RenderBlock with floating objects could share this PODArena to reduce memory consumption.

        The shared PODArena could grow unboundedly if we keep removing and adding floating objects.  We can fix that
        by reusing the freed memory in each chunk.  However, a PODArena could allocate objects of different sizes and
        it would be complex to keep track of the size for each allocation in PODArena.  To address that, this patch
        added class PODFreeListArena<T> which only allocates objects of type T (hence the same size).  We can then use a
        free list to track freed nodes inside the chunk and reuse the free nodes in future allocations.

        Manually tested on nytimes.com and the heap consumption of PODIntervalTree reduced from 1.7MB to 16KB. Performance
        doesn't regress on test PerformanceTests/Layout/floats.html.

        * WebCore.xcodeproj/project.pbxproj: add new header file PODFreeListArena.h.
        * platform/PODArena.h:
        (WebCore::PODArena::~PODArena): change dtor to virtual.
        (WebCore::PODArena::Chunk::~Chunk): ditto.
        * platform/PODFreeListArena.h: Added.
        (WebCore::PODFreeListArena::create): 
        (WebCore::PODFreeListArena::allocateObject): allocate an object.
        (WebCore::PODFreeListArena::freeObject): free an object, find the right chunk and update its free list.
        (WebCore::PODFreeListArena::allocate): allocate memory from the free list or current chunk.
        (WebCore::PODFreeListArena::FreeListChunk::FreeListChunk): add m_freeList to track freed cells.
        (WebCore::PODFreeListArena::FreeListChunk::allocate): reuse a free cell if there is one.
        (WebCore::PODFreeListArena::FreeListChunk::free): make the memory taken by this object is free, and link it to m_freeList.
        (WebCore::PODFreeListArena::FreeListChunk::contains): check if a pointer is inside this chunk.
        (WebCore::PODFreeListArena::FreeListChunk::hasFreeList): check if this chunk has free cells.
        * platform/PODRedBlackTree.h:
        (WebCore::PODRedBlackTree::PODRedBlackTree): take PODFreeListArena instead of PODArena, since nodes of a particular PODRedBlackTree
            is always of the same size.
        (WebCore::PODRedBlackTree::clear): mark all nodes before clearing the tree.
        (WebCore::PODRedBlackTree::initIfNeeded): add initIfNeeded to take an external PODFreeListArena.
        (WebCore::PODRedBlackTree::add):
        (WebCore::PODRedBlackTree::deleteNode): mark the node free in arena after it is removed from the tree.
        (WebCore::PODRedBlackTree::markFree): mark all node free in the tree.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::insertFloatingObject):
        (WebCore::RenderBlock::addOverhangingFloats):
        (WebCore::RenderBlock::addIntrudingFloats):
        (WebCore::RenderBlock::FloatingObjects::computePlacedFloatsTree):  passing the shared PODFreeListArena to m_placedFloatsTree.
        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::FloatingObjects::FloatingObjects):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::intervalArena): create the shared PODFreeListArena lazily.
        * rendering/RenderView.h:

2011-12-15  Tony Chang  <tony@chromium.org>

        Unreviewed, rollout r102825 because it didn't improve performance.
        https://bugs.webkit.org/show_bug.cgi?id=74622

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::styleForElement):
        (WebCore::CSSStyleSelector::pseudoStyleForElement):

2011-12-15  Ryosuke Niwa  <rniwa@webkit.org>

        sizeof(RenderObject) is 32 instead of 24 on Windows
        https://bugs.webkit.org/show_bug.cgi?id=74646

        Reviewed by Darin Adler.

        Make all bitfields in RenderObject to unsigned and wrap them around by RenderObjectBitfields.
        Also add a compilation time assertion to make sure we won't grow RenderObject's size unintentionally.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutBlock):
        (WebCore::RenderBlock::layoutBlockChild):
        (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
        (WebCore::RenderBlock::layoutColumns):
        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::FloatWithRect::FloatWithRect):
        * rendering/RenderObject.cpp:
        (WebCore::SameSizeAsRenderObject::~SameSizeAsRenderObject):
        (WebCore::RenderObject::RenderObject):
        (WebCore::RenderObject::markContainingBlocksForLayout):
        (WebCore::RenderObject::setPreferredLogicalWidthsDirty):
        (WebCore::RenderObject::invalidateContainerPreferredLogicalWidths):
        (WebCore::RenderObject::styleWillChange):
        (WebCore::RenderObject::styleDidChange):
        (WebCore::RenderObject::willBeDestroyed):
        (WebCore::RenderObject::updateDragState):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::hasCounterNodeMap):
        (WebCore::RenderObject::setHasCounterNodeMap):
        (WebCore::RenderObject::childrenInline):
        (WebCore::RenderObject::setChildrenInline):
        (WebCore::RenderObject::hasColumns):
        (WebCore::RenderObject::setHasColumns):
        (WebCore::RenderObject::inRenderFlowThread):
        (WebCore::RenderObject::setInRenderFlowThread):
        (WebCore::RenderObject::isAnonymous):
        (WebCore::RenderObject::setIsAnonymous):
        (WebCore::RenderObject::isAnonymousBlock):
        (WebCore::RenderObject::isFloating):
        (WebCore::RenderObject::isPositioned):
        (WebCore::RenderObject::isRelPositioned):
        (WebCore::RenderObject::isText):
        (WebCore::RenderObject::isBox):
        (WebCore::RenderObject::isInline):
        (WebCore::RenderObject::isDragging):
        (WebCore::RenderObject::isReplaced):
        (WebCore::RenderObject::isHorizontalWritingMode):
        (WebCore::RenderObject::hasLayer):
        (WebCore::RenderObject::hasBoxDecorations):
        (WebCore::RenderObject::needsLayout):
        (WebCore::RenderObject::selfNeedsLayout):
        (WebCore::RenderObject::needsPositionedMovementLayout):
        (WebCore::RenderObject::needsPositionedMovementLayoutOnly):
        (WebCore::RenderObject::posChildNeedsLayout):
        (WebCore::RenderObject::needsSimplifiedNormalFlowLayout):
        (WebCore::RenderObject::normalChildNeedsLayout):
        (WebCore::RenderObject::preferredLogicalWidthsDirty):
        (WebCore::RenderObject::hasOverflowClip):
        (WebCore::RenderObject::hasTransform):
        (WebCore::RenderObject::node):
        (WebCore::RenderObject::setPositioned):
        (WebCore::RenderObject::setRelPositioned):
        (WebCore::RenderObject::setFloating):
        (WebCore::RenderObject::setInline):
        (WebCore::RenderObject::setHasBoxDecorations):
        (WebCore::RenderObject::setIsText):
        (WebCore::RenderObject::setIsBox):
        (WebCore::RenderObject::setReplaced):
        (WebCore::RenderObject::setHorizontalWritingMode):
        (WebCore::RenderObject::setHasOverflowClip):
        (WebCore::RenderObject::setHasLayer):
        (WebCore::RenderObject::setHasTransform):
        (WebCore::RenderObject::setHasReflection):
        (WebCore::RenderObject::hasReflection):
        (WebCore::RenderObject::setHasMarkupTruncation):
        (WebCore::RenderObject::hasMarkupTruncation):
        (WebCore::RenderObject::selectionState):
        (WebCore::RenderObject::setSelectionState):
        (WebCore::RenderObject::hasSelectedChildren):
        (WebCore::RenderObject::isMarginBeforeQuirk):
        (WebCore::RenderObject::isMarginAfterQuirk):
        (WebCore::RenderObject::setMarginBeforeQuirk):
        (WebCore::RenderObject::setMarginAfterQuirk):
        (WebCore::RenderObject::everHadLayout):
        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
        (WebCore::RenderObject::RenderObjectBitfields::selectionState):
        (WebCore::RenderObject::RenderObjectBitfields::setSelectionState):
        (WebCore::RenderObject::setNeedsPositionedMovementLayout):
        (WebCore::RenderObject::setNormalChildNeedsLayout):
        (WebCore::RenderObject::setPosChildNeedsLayout):
        (WebCore::RenderObject::setNeedsSimplifiedNormalFlowLayout):
        (WebCore::RenderObject::setPaintBackground):
        (WebCore::RenderObject::setIsDragging):
        (WebCore::RenderObject::setEverHadLayout):
        (WebCore::RenderObject::setNeedsLayout):
        (WebCore::RenderObject::setChildNeedsLayout):
        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::removeChildNode):
        * rendering/svg/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::layout):

2011-12-15  Wei Charles  <charles.wei@torchmobile.com.cn>

        [BlackBerry] Upstream BlackBerry porting of pluginView
        https://bugs.webkit.org/show_bug.cgi?id=73397

        Reviewed by Daniel Bates.

        No new tests for now.

        * plugins/blackberry/PluginViewBlackBerry.cpp: Added.

2011-12-15  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Can't pass DOMStringList to IDBDatabase.transaction()
        https://bugs.webkit.org/show_bug.cgi?id=74452

        Reviewed by Adam Barth.

        V8 code generator generated checks for DOMStringList arguments, then
        deferred to a function that only handled array inputs. This previously
        worked for IndexedDB because it would fall into a now-removed default
        handler.

        Modified storage/indexeddb/transaction-basics.html to test this.

        * bindings/v8/V8Binding.cpp:
        (WebCore::v8ValueToWebCoreDOMStringList):

2011-12-15  Adam Klein  <adamk@chromium.org>

        Make Element::setAttributeInternal inline in an attempt to avoid function call overhead
        https://bugs.webkit.org/show_bug.cgi?id=74638

        Reviewed by Andreas Kling.

        In r102695, I factored common code in setAttribute into
        Element::setAttributeInternal. This may have caused a perf regression
        due to the extra function call, which inlining should eliminate.

        Running Dromaeo locally suggests that this will improve performance
        by ~9% on the "dom-attr element.property = value" test (which assigns
        a value to an element's id).

        * dom/Element.cpp:
        (WebCore::Element::setAttributeInternal):

2011-12-15  Mary Wu  <mary.wu@torchmobile.com.cn>

        Upstream FileSystemBlackBerry.cpp into WebCore/platform/blackberry
        https://bugs.webkit.org/show_bug.cgi?id=74491

        Reviewed by Rob Buis.

        We are using POSIX porting of FileSystem, so here only implement other 
        necessary functions.

        Initial upstream, no new tests.

        * platform/blackberry/FileSystemBlackBerry.cpp: Added.
        (WebCore::homeDirectoryPath):
        (WebCore::fileSystemRepresentation):
        (WebCore::unloadModule):
        (WebCore::openTemporaryFile):

2011-12-15  Adrienne Walker  <enne@google.com>

        [chromium] Clean up unnecessary leaf functions in GraphicsLayerChromium
        https://bugs.webkit.org/show_bug.cgi?id=74140

        Reviewed by James Robinson.

        Tested by existing compositor layout tests.

        This is a follow-on cleanup to r102196, which made some of these
        functions less useful than they had been in the past.

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setContentsOpaque):
        (WebCore::GraphicsLayerChromium::setBackfaceVisibility):
        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
        * platform/graphics/chromium/GraphicsLayerChromium.h:

2011-12-15  Kenneth Russell  <kbr@google.com>

        Unreviewed, rolling out r103000.
        http://trac.webkit.org/changeset/103000
        https://bugs.webkit.org/show_bug.cgi?id=74658

        Does not handle text/plain documents correctly.

        * html/parser/HTMLTokenizer.cpp:
        * html/parser/HTMLTokenizer.h:
        * html/parser/HTMLTreeBuilder.cpp:
        * html/parser/HTMLTreeBuilder.h:
        * xml/parser/MarkupTokenizerBase.h:

2011-12-15  James Robinson  <jamesr@chromium.org>

        [chromium] Set the CCLayerTreeHost pointer on LayerChromium instances eagerly
        https://bugs.webkit.org/show_bug.cgi?id=74477

        Reviewed by Kenneth Russell.

        This enforces that the m_layerTreeHost pointer on LayerChromium instances is always up to date, instead of
        lazily setting it in the paintContents loop. There are two invariants:
        1.) If a LayerChromium is the root layer of a CCLayerTreeHost, or is reachable via the children, mask, or
        replica pointers from the root layer of a CCLayerTreeHost, then that LayerChromium's m_layerTreeHost pointer
        refers to that CCLayerTreeHost
        2.) If a LayerChromium is not a root layer or reachable from a root layer of any CCLayerTreeHost, its
        CCLayerTreeHost pointer is nil.

        Covered by several new layout tests in LayerChromiumTest

        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::setLayerTreeHost):
        (WebCore::LayerChromium::setParent):
        (WebCore::LayerChromium::setMaskLayer):
        (WebCore::LayerChromium::setReplicaLayer):
        * platform/graphics/chromium/LayerChromium.h:
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::createTile):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::setRootLayer):
        (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
        (WebCore::CCLayerTreeHost::paintLayerContents):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:

2011-12-15  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r102652 and r102717.
        http://trac.webkit.org/changeset/102652
        http://trac.webkit.org/changeset/102717
        https://bugs.webkit.org/show_bug.cgi?id=74674

        Broke too many webs. (Requested by kling on #webkit).

        * WebCore.exp.in:

2011-12-15  Anders Carlsson  <andersca@apple.com>

        Lazily create the scrolling coordinator and add a setting for enabling it
        https://bugs.webkit.org/show_bug.cgi?id=74667

        Reviewed by Darin Adler.

        * WebCore.xcodeproj/project.pbxproj:
        Make ScrollingCoordinator.h a private header so it can be used in WebKit.
        * page/Page.cpp:
        (WebCore::Page::Page):
        Don't create the scrolling coordinator.

        (WebCore::Page::~Page):
        Check for a null scrolling coordinator.

        (WebCore::Page::scrollingCoordinator):
        Create the scrolling coordinator lazily.

        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h:
        (WebCore::Settings::setScrollingCoordinatorEnabled):
        (WebCore::Settings::scrollingCoordinatorEnabled):
        Add a setting for enabling the scrolling coordinator.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::RenderLayerBacking):
        Use a tile cache layer for the main frame when the scrolling coordinator is neabled.

2011-12-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed. Fix build break when data-transfer-items is enabled.

        * platform/efl/ClipboardEfl.cpp:
        (WebCore::ClipboardEfl::items):
        * platform/efl/ClipboardEfl.h:

2011-12-15  Adam Barth  <abarth@webkit.org>

        <ruby><div><p><rp> parses incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=74668

        Reviewed by Darin Adler.

        This patch updates our implementation to match a change to the HTML5
        specification regarding how <ruby> elements parse.  Previously, <rp>
        and similar tags used to pop the stack up to the <ruby> element.  Now
        the popping does not occur.

        Tests: html5lib/runner.html

        * html/parser/HTMLTreeBuilder.cpp:

2011-12-15  Daniel Sievers  <sievers@chromium.org>

        [Chromium] Avoid strdup() for extra argument when tracing is disabled.
        https://bugs.webkit.org/show_bug.cgi?id=74637

        Reviewed by James Robinson.

        * platform/chromium/TraceEvent.h:
        (WebCore::internal::ScopeTracer::ScopeTracer):

2011-12-15  Rafael Weinstein  <rafaelw@chromium.org>

        [MutationObservers] Add a document-level flag that can trivially be checked to avoid doing unnessary work if mutation observers absent
        https://bugs.webkit.org/show_bug.cgi?id=74641

        Reviewed by Ojan Vafai.

        This patch adds a byte of flags to Document, of which three bits are used to signal if any
        node owned by the document has a Mutation Observer of the given type. This is used to
        reduce the cost of discovering there are none to a single (inlined) method call and bit-check.
        Also, a similar byte of flags which was used to optimize a particular case when mutation observers
        are present has been removed, with the reasoning that we should first focus on minimizing impact on
        the null-case before optimizing particular in-use cases.

        Also, MutationObserverInterestGroup is broken out into its own file (which probably should have happened
        earlier, but now avoids a circular header dependency).

        No tests needed. This patch is just a refactor.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSMutableStyleDeclaration.cpp:
        * dom/CharacterData.cpp:
        * dom/ChildListMutationScope.cpp:
        * dom/Document.cpp:
        (WebCore::Document::Document):
        * dom/Document.h:
        (WebCore::Document::hasMutationObserversOfType):
        (WebCore::Document::hasMutationObservers):
        (WebCore::Document::addMutationObserverTypes):
        * dom/Element.cpp:
        * dom/MutationObserverInterestGroup.cpp: Added.
        (WebCore::MutationObserverInterestGroup::createIfNeeded):
        (WebCore::MutationObserverInterestGroup::MutationObserverInterestGroup):
        (WebCore::MutationObserverInterestGroup::isOldValueRequested):
        (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
        * dom/MutationObserverInterestGroup.h: Copied from Source/WebCore/dom/WebKitMutationObserver.h.
        (WebCore::MutationObserverInterestGroup::createForChildListMutation):
        (WebCore::MutationObserverInterestGroup::createForCharacterDataMutation):
        (WebCore::MutationObserverInterestGroup::createForAttributesMutation):
        (WebCore::MutationObserverInterestGroup::hasOldValue):
        * dom/Node.cpp:
        (WebCore::Node::didMoveToNewOwnerDocument):
        (WebCore::Node::getRegisteredMutationObserversOfType):
        (WebCore::Node::notifyMutationObserversNodeWillDetach):
        * dom/Node.h:
        * dom/WebKitMutationObserver.cpp:
        (WebCore::WebKitMutationObserver::observe):
        * dom/WebKitMutationObserver.h:

2011-12-15  Adam Barth  <abarth@webkit.org>

        <!DOCTYPE html><pre>&#x0a;&#x0a;A</pre> doesn't parse correctly
        https://bugs.webkit.org/show_bug.cgi?id=74658

        Reviewed by Darin Adler.

        Previously, we handled skipping newlines after <pre> in the tokenizer,
        which isn't how the spec handles them.  Instead, the spec skips them in
        the tree builder.  This isn't usually observable, except in the case of
        an HTML entity.  In that case, the tokenzier sees '&' (because the
        entity hasn't been decoded yet), but the tree builder sees '\n' (the
        decoded entity).  This patch fixes the bug by more closely aligning our
        implementation with the spec.

        Test: html5lib/runner.html

        * html/parser/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::reset):
        (WebCore::HTMLTokenizer::nextToken):
        * html/parser/HTMLTokenizer.h:
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipAtMostOneLeadingNewline):
        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
        (WebCore::HTMLTreeBuilder::processCharacterBuffer):
        * html/parser/HTMLTreeBuilder.h:
        * xml/parser/MarkupTokenizerBase.h:

2011-12-15  Kenneth Russell  <kbr@google.com>

        Unreviewed, rolling out r102989.
        http://trac.webkit.org/changeset/102989
        https://bugs.webkit.org/show_bug.cgi?id=74580

        Caused SHOULD NOT BE REACHED assertions in debug builds.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator EBoxAlignment):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * rendering/RenderDeprecatedFlexibleBox.cpp:
        (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
        (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
        * rendering/RenderFullScreen.cpp:
        (createFullScreenStyle):
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::boxPack):
        (WebCore::InheritedFlags::setBoxAlign):
        (WebCore::InheritedFlags::setBoxPack):
        (WebCore::InheritedFlags::initialBoxPack):
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleDeprecatedFlexibleBoxData.h:

2011-12-15  Ryosuke Niwa  <rniwa@webkit.org>

        Touch make_name.pl in an attempt to make Qt bots happy.

        * dom/make_names.pl:
        (printNamesHeaderFile):

2011-12-15  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests results.

        * bindings/scripts/test/JS/JSFloat64Array.cpp:
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        * bindings/scripts/test/JS/JSTestObj.cpp:

2011-12-15  Luke Macpherson   <macpherson@chromium.org>

        Separate box alignment and box pack values into separate enums.
        https://bugs.webkit.org/show_bug.cgi?id=74580

        Reviewed by Darin Adler.

        No new tests / refactoring only.

        Separating these types cleans up the code by removing several assertions that
        values are in the correct ranges, as this is ensured by the type system.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator EBoxPack):
        (WebCore::CSSPrimitiveValue::operator EBoxAlignment):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * rendering/RenderDeprecatedFlexibleBox.cpp:
        (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
        (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
        * rendering/RenderFullScreen.cpp:
        (createFullScreenStyle):
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::boxPack):
        (WebCore::InheritedFlags::setBoxAlign):
        (WebCore::InheritedFlags::setBoxPack):
        (WebCore::InheritedFlags::initialBoxPack):
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleDeprecatedFlexibleBoxData.h:

2011-12-15  Kentaro Hara  <haraken@chromium.org>

        REGRESSION(r102663): generate-bindings.pl runs every time
        https://bugs.webkit.org/show_bug.cgi?id=74481

        Reviewed by Adam Barth.

        See the comment #1 of bug 74481 for the cause of this bug.

        This patch fixes generate-bindings.pl so that it generates .h and .cpp files
        even for IDL files that do not need .h and .cpp files. This is just to prevent
        build scripts from trying to generate .h and .cpp files at every build.

        No new tests. No change in behavior.

        * bindings/scripts/generate-bindings.pl:
        (generateEmptyHeaderAndCpp): Generates .h and .cpp files for IDL files
        that do not need .h and .cpp files.
        * bindings/scripts/test/CPP/CPPTestSupplemental.cpp: Added.
        * bindings/scripts/test/CPP/CPPTestSupplemental.h: Added.
        * bindings/scripts/test/GObject/GObjectTestSupplemental.cpp: Added.
        * bindings/scripts/test/GObject/GObjectTestSupplemental.h: Added.
        * bindings/scripts/test/JS/JSTestSupplemental.cpp: Added.
        * bindings/scripts/test/JS/JSTestSupplemental.h: Added.
        * bindings/scripts/test/ObjC/ObjCTestSupplemental.cpp: Added.
        * bindings/scripts/test/ObjC/ObjCTestSupplemental.h: Added.
        * bindings/scripts/test/V8/V8TestSupplemental.cpp: Added.
        * bindings/scripts/test/V8/V8TestSupplemental.h: Added.

2011-12-15  Jarred Nicholls  <jarred@sencha.com>

        Unreviewed build fix. Mac build broken when CSS Filters enabled.
        Needed to move Filter headers out as private headers in WebCore.framework.

        * WebCore.xcodeproj/project.pbxproj:

2011-12-15  Eric Seidel  <eric@webkit.org>

        WebCore has two (disconnected) ways to keep track of updated widgets, should be unified
        https://bugs.webkit.org/show_bug.cgi?id=74367

        Reviewed by Adam Barth.

        It seems the FrameView updateWidgets set is needed for now,
        so just making FrameView::addWidgetToUpdate mark the DOM node
        as needing a widget update and later when it goes to call
        updateWidget() checking first if it needs an update.

        No new tests, just adding an assert.

        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::updateWidget):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::updateWidget):
        * html/HTMLPlugInImageElement.h:
        (WebCore::HTMLPlugInImageElement::needsWidgetUpdate):
        (WebCore::HTMLPlugInImageElement::setNeedsWidgetUpdate):
        * page/FrameView.cpp:
        (WebCore::FrameView::addWidgetToUpdate):
        (WebCore::FrameView::updateWidget):

2011-12-15  Alexandru Chiculita  <achicu@adobe.com>

        Windows project file is broken. It has a missing </File> enclosing tag
        https://bugs.webkit.org/show_bug.cgi?id=74632

        Reviewed by Anders Carlsson.

        No new tests, just fixing the project file.

        * WebCore.vcproj/WebCore.vcproj:

2011-12-15  Adam Barth  <abarth@webkit.org>

        <table><tr><td><svg><desc><td> parses incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=68106

        Reviewed by Eric Seidel.

        This patch updates our implementation of the HTML5 parser to account
        for recent changes in the spec.  The main change in this patch is to
        remove the "in foreign content" state from the tree builder.  Rather
        than maintaining this as a separate state, the parser now introspects
        on the stack of open elements to determine whether the parser is in
        foriegn content.  In the process, I've deleted some now-unused
        machinery in the tree builder.

        Tested by the html5lib LayoutTests.  These tests show the progression
        in our spec compliance.

        * html/parser/HTMLElementStack.cpp:
        * html/parser/HTMLElementStack.h:
        * html/parser/HTMLTreeBuilder.cpp:
        * html/parser/HTMLTreeBuilder.h:
        * mathml/mathattrs.in:

2011-12-15  Ryosuke Niwa  <rniwa@webkit.org>

        m_hasCounterNodeMap and m_everHadLayout should be private to RenderObject
        https://bugs.webkit.org/show_bug.cgi?id=74645

        Reviewed by Eric Seidel.

        Made them private and added getters and setters as needed.

        * rendering/RenderCounter.cpp:
        (WebCore::makeCounterNode):
        (WebCore::RenderCounter::destroyCounterNodes):
        (WebCore::updateCounters):
        (WebCore::RenderCounter::rendererStyleChanged):
        (showCounterRendererTree):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::layout):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::hasCounterNodeMap):
        (WebCore::RenderObject::setHasCounterNodeMap):
        (WebCore::RenderObject::everHadLayout):
        * rendering/svg/RenderSVGForeignObject.cpp:
        (WebCore::RenderSVGForeignObject::layout):
        * rendering/svg/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::layout):
        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::layout):
        * rendering/svg/RenderSVGResourceMarker.cpp:
        (WebCore::RenderSVGResourceMarker::layout):
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::layout):
        * rendering/svg/RenderSVGShape.cpp:
        (WebCore::RenderSVGShape::layout):
        * rendering/svg/RenderSVGText.cpp:
        (WebCore::RenderSVGText::layout):

2011-12-15  Vsevolod Vlasov  <vsevik@chromium.org>

        Not able to navigate the Resource tab options properly with arrow keys after adding the sticky-notes.
        https://bugs.webkit.org/show_bug.cgi?id=72013

        Reviewed by Pavel Feldman.

        * inspector/front-end/DatabaseQueryView.js:
        (WebInspector.DatabaseQueryView):
        (WebInspector.DatabaseQueryView.prototype._messagesClicked):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.DatabaseTreeElement.prototype.onexpand):

2011-12-15  Anders Carlsson  <andersca@apple.com>

        Add ScrollingCoordinator class and ENABLE_THREADED_SCROLLING define
        https://bugs.webkit.org/show_bug.cgi?id=74639

        Reviewed by Andreas Kling.

        Add a ScrollingCoordinator class and make it a member of Page. Tear it down
        when the page goes away.

        * WebCore.xcodeproj/project.pbxproj:
        * page/Page.cpp:
        (WebCore::Page::Page):
        (WebCore::Page::~Page):
        * page/Page.h:
        (WebCore::Page::scrollingCoordinator):
        * page/ScrollingCoordinator.cpp: Added.
        (WebCore::ScrollingCoordinator::create):
        (WebCore::ScrollingCoordinator::ScrollingCoordinator):
        (WebCore::ScrollingCoordinator::~ScrollingCoordinator):
        (WebCore::ScrollingCoordinator::pageDestroyed):
        * page/ScrollingCoordinator.h: Added.

2011-12-15  Kenneth Russell  <kbr@google.com>

        Rename WEBKIT_lose_context to WEBKIT_WEBGL_lose_context
        https://bugs.webkit.org/show_bug.cgi?id=71870

        Reviewed by James Robinson.

        Re-landing after original commit was rolled out.

        Rename largely done with do-webcore-rename with a couple of
        necessary manual fixups. Ran WebGL layout tests.

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::toJS):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::toV8Object):
        * html/canvas/WebGLExtension.h:
        * html/canvas/WebGLLoseContext.cpp: Copied from Source/WebCore/html/canvas/WebKitLoseContext.cpp.
        (WebCore::WebGLLoseContext::WebGLLoseContext):
        (WebCore::WebGLLoseContext::~WebGLLoseContext):
        (WebCore::WebGLLoseContext::getName):
        (WebCore::WebGLLoseContext::create):
        (WebCore::WebGLLoseContext::loseContext):
        (WebCore::WebGLLoseContext::restoreContext):
        * html/canvas/WebGLLoseContext.h: Copied from Source/WebCore/html/canvas/WebKitLoseContext.h.
        * html/canvas/WebGLLoseContext.idl: Copied from Source/WebCore/html/canvas/WebKitLoseContext.idl.
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::getExtension):
        (WebCore::WebGLRenderingContext::getSupportedExtensions):
        (WebCore::WebGLRenderingContext::maybeRestoreContext):
        * html/canvas/WebGLRenderingContext.h:
        * html/canvas/WebKitLoseContext.cpp: Removed.
        * html/canvas/WebKitLoseContext.h: Removed.
        * html/canvas/WebKitLoseContext.idl: Removed.

2011-12-15  Brady Eidson  <beidson@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=74631
        HTMLMediaElement should not register for document activation callbacks as it doesn't use them

        Reviewed by Eric Carlson.

        No new tests. (No behavior change, pruning useless code)

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        (WebCore::HTMLMediaElement::~HTMLMediaElement):
        (WebCore::HTMLMediaElement::willMoveToNewOwnerDocument):
        (WebCore::HTMLMediaElement::didMoveToNewOwnerDocument):

2011-12-15  Eric Carlson  <eric.carlson@apple.com>

        Text tracks should be treated differently according to their kind
        https://bugs.webkit.org/show_bug.cgi?id=72547

        Reviewed by Sam Weinig.

        Tests: media/track/track-default-attribute.html
               media/track/track-mode-not-changed-by-new-track.html
               media/track/track-mode-triggers-loading.html

        * html/HTMLAudioElement.cpp:
        (WebCore::HTMLAudioElement::HTMLAudioElement): Add "createdByParser" parameter.
        (WebCore::HTMLAudioElement::create): Ditto.
        (WebCore::HTMLAudioElement::createForJSConstructor): Deal with constructor change.
        * html/HTMLAudioElement.h:

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement): Add "createdByParser" parameter. Initialize m_parsingInProgress.
        (WebCore::HTMLMediaElement::finishParsingChildren): Clear m_parsingInProgress. Schedule track
            loading if necessary.
        (WebCore::HTMLMediaElement::loadTimerFired): Call configureTextTracks not call scheduleLoad, 
            it just schedules the load timer again.
        (WebCore::HTMLMediaElement::prepareForLoad): Add all non-disabled track elements to a vector
            so we can prevent the media element's readyState from reaching HAVE_METADATA until the
            tracks are ready.
        (WebCore::HTMLMediaElement::textTracksAreReady): New. Return false unless all tracks that were
            not disabled when loading started have loaded or failed.
        (WebCore::HTMLMediaElement::textTrackReadyStateChanged): Call setReadyState when a track is
            stops loading.
        (WebCore::HTMLMediaElement::textTrackModeChanged): Trigger <track> loading when the mode
            changes to hidden or showing for the first time.
        (WebCore::HTMLMediaElement::setReadyState): Do not advance to HAVE_METADATA or higher while
            track elements are loading.
        (WebCore::HTMLMediaElement::addTrack): Removed.
        (WebCore::HTMLMediaElement::showingTrackWithSameKind): New.
        (WebCore::HTMLMediaElement::trackWasAdded):
        (WebCore::HTMLMediaElement::trackWillBeRemoved): Flag a track as unconfigured so it will be
            reconfigured if it is added to another element.
        (WebCore::HTMLMediaElement::userIsInterestedInThisLanguage): New.
        (WebCore::HTMLMediaElement::userIsInterestedInThisTrack): New. Consider user preferences.
        (WebCore::HTMLMediaElement::configureTextTrack): New. Configure a track as per the user's preferences.
        (WebCore::HTMLMediaElement::configureTextTracks): New. Configure all track elements.
        * html/HTMLMediaElement.h:
        * html/HTMLMediaElement.h:

        * html/HTMLTagNames.in: Add constructorNeedsCreatedByParser to audio and video.

        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::HTMLTrackElement): Initialize m_hasBeenConfigured.
        * html/HTMLTrackElement.h:
        (WebCore::HTMLTrackElement::hasBeenConfigured):
        (WebCore::HTMLTrackElement::setHasBeenConfigured):

        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::HTMLVideoElement): Add "createdByParser" parameter.
        (WebCore::HTMLVideoElement::create): Ditto.
        * html/HTMLVideoElement.h:

        * html/TextTrack.cpp:
        (WebCore::TextTrack::TextTrack): Initialize m_mode to DISABLED, not HIDDEN. Initialize m_showingByDefault.
        (WebCore::TextTrack::setMode): Clear the "showing by default" flag when a track's mode is
            explicitly set to SHOWING.
        (WebCore::TextTrack::mode): Return SHOWING whenever the "showing by default" flag is set.
        * html/TextTrack.h:
        (WebCore::TextTrack::showingByDefault):
        (WebCore::TextTrack::setShowingByDefault):

        * html/TextTrackCue.cpp:
        (WebCore::TextTrackCue::isActive): Return false if a cue has no track, or if its track is disabled.
        (WebCore::TextTrackCue::setIsActive): Don't enable a cue if it has no track, or if its track
            is disabled.

2011-12-15  Brady Eidson  <beidson@apple.com>

        Unreviewed, rolling out r102829.
        http://trac.webkit.org/changeset/102829
        https://bugs.webkit.org/show_bug.cgi?id=74533

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

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
        (WebCore::HTMLPlugInImageElement::willMoveToNewOwnerDocument):
        (WebCore::HTMLPlugInImageElement::didMoveToNewOwnerDocument):
        (WebCore::HTMLPlugInImageElement::documentWillBecomeInactive):
        (WebCore::HTMLPlugInImageElement::documentDidBecomeActive):
        * html/HTMLPlugInImageElement.h:

2011-12-15  James Simonsen  <simonjam@chromium.org>

        [Navigation Timing] Use monotonicallyIncreasingTime() instead of currentTime()
        https://bugs.webkit.org/show_bug.cgi?id=58354

        Reviewed by Pavel Feldman.

        No new tests. Relies on existing webtiming-* tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/Document.cpp: Use monotonic times.
        (WebCore::Document::setReadyState):
        (WebCore::Document::finishedParsing):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::didFinishLoadingImpl): Convert monotonicFinishTime to wall time if needed.
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::buildObjectForTiming): Convert monotonic requestTime to wall time.
        (WebCore::buildObjectForResourceResponse): Plumbing for above.
        (WebCore::buildObjectForCachedResource): Ditto.
        (WebCore::InspectorResourceAgent::willSendRequest): Ditto.
        (WebCore::InspectorResourceAgent::didReceiveResponse): Ditto.
        (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache): Ditto.
        * loader/DocumentLoadTiming.cpp: Added.
        (WebCore::DocumentLoadTiming::DocumentLoadTiming):
        (WebCore::DocumentLoadTiming::setNavigationStart): Determine reference time and root reference time.
        (WebCore::DocumentLoadTiming::addRedirect): Moved logic from MainResourceLoader.
        (WebCore::DocumentLoadTiming::convertMonotonicTimeToDocumentTime): Helper to compute wall time from monotonic time.
        * loader/DocumentLoadTiming.h: Turned into class. Made times monotonic.
        (WebCore::DocumentLoadTiming::setUnloadEventStart):
        (WebCore::DocumentLoadTiming::setUnloadEventEnd):
        (WebCore::DocumentLoadTiming::setRedirectStart):
        (WebCore::DocumentLoadTiming::setRedirectEnd):
        (WebCore::DocumentLoadTiming::setFetchStart):
        (WebCore::DocumentLoadTiming::setResponseEnd):
        (WebCore::DocumentLoadTiming::setLoadEventStart):
        (WebCore::DocumentLoadTiming::setLoadEventEnd):
        (WebCore::DocumentLoadTiming::setHasSameOriginAsPreviousDocument):
        (WebCore::DocumentLoadTiming::navigationStart):
        (WebCore::DocumentLoadTiming::unloadEventStart):
        (WebCore::DocumentLoadTiming::unloadEventEnd):
        (WebCore::DocumentLoadTiming::redirectStart):
        (WebCore::DocumentLoadTiming::redirectEnd):
        (WebCore::DocumentLoadTiming::redirectCount):
        (WebCore::DocumentLoadTiming::fetchStart):
        (WebCore::DocumentLoadTiming::responseEnd):
        (WebCore::DocumentLoadTiming::loadEventStart):
        (WebCore::DocumentLoadTiming::loadEventEnd):
        (WebCore::DocumentLoadTiming::hasCrossOriginRedirect):
        (WebCore::DocumentLoadTiming::hasSameOriginAsPreviousDocument):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::stopLoading):
        (WebCore::FrameLoader::commitProvisionalLoad):
        (WebCore::FrameLoader::continueLoadAfterWillSubmitForm):
        (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
        (WebCore::MainResourceLoader::willSendRequest): Moved logic to DocumentLoadTiming.
        (WebCore::MainResourceLoader::didReceiveData): Use monotonic time.
        (WebCore::MainResourceLoader::didFinishLoading): Ditto.
        (WebCore::MainResourceLoader::load):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::dispatchLoadEvent):
        * page/DOMWindow.h: Removed dispatchTimedEvent. It doesn't really help in the new model.
        * page/PerformanceNavigation.cpp:
        (WebCore::PerformanceNavigation::redirectCount):
        * page/PerformanceTiming.cpp: Removed skew correction code. This should never happen now.
        (WebCore::PerformanceTiming::navigationStart):
        (WebCore::PerformanceTiming::unloadEventStart):
        (WebCore::PerformanceTiming::unloadEventEnd):
        (WebCore::PerformanceTiming::redirectStart):
        (WebCore::PerformanceTiming::redirectEnd):
        (WebCore::PerformanceTiming::fetchStart):
        (WebCore::PerformanceTiming::responseEnd):
        (WebCore::PerformanceTiming::domLoading):
        (WebCore::PerformanceTiming::domInteractive):
        (WebCore::PerformanceTiming::domContentLoadedEventStart):
        (WebCore::PerformanceTiming::domContentLoadedEventEnd):
        (WebCore::PerformanceTiming::domComplete):
        (WebCore::PerformanceTiming::loadEventStart):
        (WebCore::PerformanceTiming::loadEventEnd):
        (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute): Used for ResourceLoadTiming.
        (WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds): Used for DocumentTiming and DocumentLoadTiming.
        * page/PerformanceTiming.h:
        * platform/network/ResourceLoadTiming.cpp:
        (WebCore::ResourceLoadTiming::convertResourceLoadTimeToDocumentTime):
        * platform/network/ResourceLoadTiming.h: Added helper function to convert to wall times. Added instructions for use.

2011-12-15  Martin Robinson  <mrobinson@igalia.com>

        plugin crash

        [GTK] Plugins sometimes crash WebKitGTK+ with Gdk-CRITICAL **: gdk_window_get_toplevel: assertion `GDK_IS_WINDOW (window)' failed
        https://bugs.webkit.org/show_bug.cgi?id=73719

        Reviewed by Philippe Normand.

        No new tests. It's difficult to test or reproduce this exact situation
        as it only occurs when running plugins under nspluginwrapper.

        * plugins/gtk/PluginViewGtk.cpp:
        (WebCore::PluginView::platformGetValue): Properly handle when the plugin tries to
        get the window value when the GtkSocket is no longer realized.

2011-12-15  Martin Kosiba  <mkosiba@google.com>

        Fix find on web pages with -webkit-user-select: none for Chromium
        https://bugs.webkit.org/show_bug.cgi?id=72281

        Reviewed by Ryosuke Niwa.

        Adding findStringAndScrollToVisible to Editor. This new method returns
        the new match as a range rather than modify the active selection.

        Test: editing/text-iterator/findString-selection-disabled.html

        * editing/Editor.cpp:
        (WebCore::Editor::findStringAndScrollToVisible):
        * editing/Editor.h:

2011-12-14  Anders Carlsson  <andersca@apple.com>

        Add WTF::Function to wtf/Forward.h
        https://bugs.webkit.org/show_bug.cgi?id=74576

        Reviewed by Adam Roben.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        Add a JSC:: qualifier to the Function flags to avoid ambiguities.

2011-12-15  Julien Chaffraix  <jchaffraix@webkit.org>

        Hardware-backed renderLayer could avoid repainting during a positioned movement layout
        https://bugs.webkit.org/show_bug.cgi?id=74370

        Reviewed by Simon Fraser.

        Tests: compositing/absolute-position-changed-in-composited-layer.html
               compositing/absolute-position-changed-with-composited-parent-layer.html
               compositing/fixed-position-changed-in-composited-layer.html
               compositing/fixed-position-changed-within-composited-parent-layer.html

        To be able to properly skip repainting after a positioned movement layout only, we
        needed to add more state to the current |setNeedsFullRepaint| method. As part of that
        we refactored the callers and internal fields to better match the new meaning.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::styleDidChange):
        Explicitely gave the RepaintStatus to setRepaintStatus.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::removeOnlyThisLayer):
        Updated those function after the renamings.

        (WebCore::RenderLayer::updateLayerPositions):
        Ditto. Also added a sholdRepaintAfterLayout check.

        (WebCore::RenderLayer::shouldRepaintAfterLayout):
        Heart of the optimization, if we just did a positioned movement layout of composited RenderLayer,
        then don't repaint. All the other cases should still trigger a repaint.

        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::setRepaintStatus):
        Renamed setNeedsFullRepaint to setRepaintStatus. Also added a new enum RepaintStatus.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::setLayerNeedsFullRepaint):
        Updated after the renamings.

        (WebCore::RenderObject::setLayerNeedsFullRepaintForPositionedMovementLayout):
        New method that pass a new value to the RenderLayer.

        * rendering/RenderObject.h:
        (WebCore::RenderObject::setNeedsPositionedMovementLayout):
        Switched the call to the dedicated method.

2011-12-15  Antti Koivisto  <antti@apple.com>

        Don't invoke CSSStyleSelector::pushParent before Text::recalcTextStyle
        https://bugs.webkit.org/show_bug.cgi?id=74575

        Reviewed by Darin Adler.
        
        Text::recalcTextStyle never enters the style selector so pushing the state is not necessary

        * dom/Element.cpp:
        (WebCore::Element::recalcStyle):

2011-12-15  Chris Marrin  <cmarrin@apple.com>

        Fixed error in Target.pri.

        Unreviewed.

        * Target.pri:

2011-12-15  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: #hex colors are not highlighted in CSS files
        https://bugs.webkit.org/show_bug.cgi?id=74570

        Reviewed by Pavel Feldman.

        Drive by: highlight color keywords as colors, not as keywords.

        * inspector/front-end/CSSKeywordCompletions.js:
        (WebInspector.CSSKeywordCompletions.colors):
        * inspector/front-end/SourceCSSTokenizer.js:
        (WebInspector.SourceCSSTokenizer):
        (WebInspector.SourceCSSTokenizer.prototype.nextToken):
        * inspector/front-end/SourceCSSTokenizer.re2js:

2011-12-14  Chris Marrin  <cmarrin@apple.com>

        Hardware acceleration of W3C Filter Effects
        https://bugs.webkit.org/show_bug.cgi?id=68479

        Reviewed by Simon Fraser.

        Move FilterOperation(s) to platform/graphics/filters so it can be used to pass filter information 
        down to GraphicsLayer for hardware acceleration. This leaves the CustomFilterOperation subclass in
        rendering/style since it has dependencies outside platform. Some part of that class will
        eventually need to be down in platform.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/filters/FilterOperation.cpp: Renamed from Source/WebCore/rendering/style/FilterOperation.cpp.
        (WebCore::BasicColorMatrixFilterOperation::blend):
        (WebCore::BasicColorMatrixFilterOperation::passthroughAmount):
        (WebCore::BasicComponentTransferFilterOperation::blend):
        (WebCore::BasicComponentTransferFilterOperation::passthroughAmount):
        (WebCore::GammaFilterOperation::blend):
        (WebCore::BlurFilterOperation::blend):
        (WebCore::DropShadowFilterOperation::blend):
        * platform/graphics/filters/FilterOperation.h: Renamed from Source/WebCore/rendering/style/FilterOperation.h.
        (WebCore::FilterOperation::~FilterOperation):
        (WebCore::FilterOperation::operator!=):
        (WebCore::FilterOperation::blend):
        (WebCore::FilterOperation::getOperationType):
        (WebCore::FilterOperation::isSameType):
        (WebCore::FilterOperation::FilterOperation):
        (WebCore::PassthroughFilterOperation::create):
        (WebCore::PassthroughFilterOperation::operator==):
        (WebCore::PassthroughFilterOperation::PassthroughFilterOperation):
        (WebCore::ReferenceFilterOperation::create):
        (WebCore::ReferenceFilterOperation::reference):
        (WebCore::ReferenceFilterOperation::operator==):
        (WebCore::ReferenceFilterOperation::ReferenceFilterOperation):
        (WebCore::BasicColorMatrixFilterOperation::create):
        (WebCore::BasicColorMatrixFilterOperation::amount):
        (WebCore::BasicColorMatrixFilterOperation::operator==):
        (WebCore::BasicColorMatrixFilterOperation::BasicColorMatrixFilterOperation):
        (WebCore::BasicComponentTransferFilterOperation::create):
        (WebCore::BasicComponentTransferFilterOperation::amount):
        (WebCore::BasicComponentTransferFilterOperation::operator==):
        (WebCore::BasicComponentTransferFilterOperation::BasicComponentTransferFilterOperation):
        (WebCore::GammaFilterOperation::create):
        (WebCore::GammaFilterOperation::amplitude):
        (WebCore::GammaFilterOperation::exponent):
        (WebCore::GammaFilterOperation::offset):
        (WebCore::GammaFilterOperation::operator==):
        (WebCore::GammaFilterOperation::GammaFilterOperation):
        (WebCore::BlurFilterOperation::create):
        (WebCore::BlurFilterOperation::stdDeviationX):
        (WebCore::BlurFilterOperation::stdDeviationY):
        (WebCore::BlurFilterOperation::operator==):
        (WebCore::BlurFilterOperation::BlurFilterOperation):
        (WebCore::SharpenFilterOperation::create):
        (WebCore::SharpenFilterOperation::amount):
        (WebCore::SharpenFilterOperation::radius):
        (WebCore::SharpenFilterOperation::threshold):
        (WebCore::SharpenFilterOperation::operator==):
        (WebCore::SharpenFilterOperation::SharpenFilterOperation):
        (WebCore::DropShadowFilterOperation::create):
        (WebCore::DropShadowFilterOperation::x):
        (WebCore::DropShadowFilterOperation::y):
        (WebCore::DropShadowFilterOperation::stdDeviation):
        (WebCore::DropShadowFilterOperation::color):
        (WebCore::DropShadowFilterOperation::operator==):
        (WebCore::DropShadowFilterOperation::DropShadowFilterOperation):
        * platform/graphics/filters/FilterOperations.cpp: Renamed from Source/WebCore/rendering/style/FilterOperations.cpp.
        (WebCore::FilterOperations::FilterOperations):
        (WebCore::FilterOperations::operator==):
        (WebCore::FilterOperations::operationsMatch):
        * platform/graphics/filters/FilterOperations.h: Renamed from Source/WebCore/rendering/style/FilterOperations.h.
        (WebCore::FilterOperations::operator!=):
        (WebCore::FilterOperations::clear):
        (WebCore::FilterOperations::operations):
        (WebCore::FilterOperations::size):
        (WebCore::FilterOperations::at):

2011-12-15  Igor Oliveira  <igor.oliveira@openbossa.org>

        [Qt] Support requestAnimationFrame API
        https://bugs.webkit.org/show_bug.cgi?id=74528

        Add necessary files to Target.pri when enabling requestAnimationFrame option.

        Reviewed by Kenneth Rohde Christiansen.

        * Target.pri:

2011-12-15  Otto Cheung  <ocheung@rim.com>

        Removing BlackBerryCookieCache from the build system
        https://bugs.webkit.org/show_bug.cgi?id=74318

        Reviewed by Rob Buis.

        Removing any references to BlackBerryCookieCache in files that are upstreamed.

        We are removing the BlackBerryCookieCache because the CookieManager cookie structure has been
        refactored to have a similar structure to the cache. Since the read speeds in both structures
        are similar, we no longer need the cache to speed up read performance.

        No new tests, this patch by itself will not work. This patch is only removing
        the references to BlackBerryCookieCache in files that are upstreamed.

        * PlatformBlackBerry.cmake:
        * platform/network/blackberry/NetworkJob.cpp:
        (WebCore::NetworkJob::handleNotifyHeaderReceived):

2011-12-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        [Qt] Mobile theme improvements

        Rubberstamped by Simon Hausmann.

        - Invert the gradient on the checkboxes
        - Make the buttons on the multi select combobox work on floats
        - Mini cleanups

        * platform/qt/RenderThemeQtMobile.cpp:
        (WebCore::StylePainterMobile::drawCheckableBackground):
        (WebCore::StylePainterMobile::drawMultipleComboButton):
        (WebCore::StylePainterMobile::getButtonImageSize):
        (WebCore::StylePainterMobile::drawComboBox):

2011-12-15  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: CodeGeneratorInspector.py convert script conditions to precompiler #ifs
        https://bugs.webkit.org/show_bug.cgi?id=74534

        Reviewed by Pavel Feldman.

        Generator is rewritten to add #if's to output.

        * inspector/CodeGeneratorInspector.py:
        (DomainNameFixes.get_fixed_data.Res.get_guard.Guard.generate_open):
        (DomainNameFixes.get_fixed_data.Res.get_guard.Guard):
        (DomainNameFixes.get_fixed_data.Res.get_guard.Guard.generate_close):
        (DomainNameFixes.get_fixed_data.Res):
        (DomainNameFixes.get_fixed_data.Res.get_guard):
        (Generator.go):
        (Generator.process_event):
        (Generator.process_command):
        (Generator.process_types):

2011-12-15  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>

        [Qt][WK2] Setting Download as action for navigation request crashes WebProcess
        https://bugs.webkit.org/show_bug.cgi?id=74526

        Reviewed by Simon Hausmann.

        Adding checks for networkcontext and networkAccessManager
        and return true in case they don't exist, following the same
        logic as if the CookieJar doesn't exist.

        * platform/qt/ThirdPartyCookiesQt.cpp:
        (WebCore::thirdPartyCookiePolicyPermits):

2011-12-14  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Get rid of layering violation in PluginViewQt

        PluginViewQt has a layering violation in relying on QWebPagePrivate for
        the check if running under DRT. We remove this and add a specific flag
        in the PluginView for this check, enabled from DRTSupport. This isn't
        pretty, but an improvement over what's currently there.

        Reviewed by Simon Hausmann.

        * plugins/PluginView.h:
        * plugins/qt/PluginViewQt.cpp:
        (WebCore::PluginView::updatePluginWidget):
        (WebCore::setXKeyEventSpecificFields):

2011-12-14  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Console should show network messages origins.
        https://bugs.webkit.org/show_bug.cgi?id=74521

        Reviewed by Pavel Feldman.

        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype._formatMessage):

2011-12-15  Rakesh KN  <rakesh.kn@motorola.com>

        "user-select none" causes selection to incorrectly escape from clicked container
        https://bugs.webkit.org/show_bug.cgi?id=57289

        Reviewed by Ryosuke Niwa.

        Not selecting the nearest word from the target node if target node has -webkit-user-select:none

        Test: fast/events/mouse-double-triple-click-should-not-select-next-node-for-user-select-none.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart):
        If target node has webkit-user-select:none style then do not update the selection.

2011-12-13  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: Generated HAR is missing pages.startedDateTime
        https://bugs.webkit.org/show_bug.cgi?id=74188

        Reviewed by Pavel Feldman.

        * inspector/front-end/HAREntry.js:
        (WebInspector.HARLog.prototype._buildPages):
        * inspector/front-end/NetworkLog.js:
        (WebInspector.NetworkLog):
        (WebInspector.NetworkLog.prototype.get mainResourceStartTime):
        (WebInspector.NetworkLog.prototype._mainFrameNavigated):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._updateSummaryBar):

2011-12-15  Kenichi Ishibashi  <bashi@chromium.org>

        Supports Unicode variation selector
        https://bugs.webkit.org/show_bug.cgi?id=50999

        Reviewed by Nikolas Zimmermann.

        Adds SimpleFontData::updateGlyphWithVariationSelector() which substitutes the
        glyph in question based on the selector. WidthIterator::advance() calls it
        when an unicode variation selector follows the character.

        Test: fast/text/unicode-variation-selector.html

        * platform/graphics/SimpleFontData.h: Added updateGlyphWithVariationSelector().
        * platform/graphics/SurrogatePairAwareTextIterator.cpp:
        (WebCore::isUnicodeBMPVariationSelector): Added.
        (WebCore::isUnicodeSupplementaryVariationSelector): Added.
        (WebCore::SurrogatePairAwareTextIterator::hasTrailingVariationSelector): Added.
        * platform/graphics/SurrogatePairAwareTextIterator.h:
        * platform/graphics/WidthIterator.cpp:
        (WebCore::WidthIterator::advance): Changed to detect variation selectors.
        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
        (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Added.
        * platform/graphics/chromium/SimpleFontDataLinux.cpp:
        (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
        (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
        * platform/graphics/mac/SimpleFontDataMac.mm:
        (WebCore::decomposeToUTF16): Ditto.
        (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
        * platform/graphics/pango/SimpleFontDataPango.cpp:
        (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
        * platform/graphics/qt/SimpleFontDataQt.cpp:
        (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
        * platform/graphics/win/SimpleFontDataWin.cpp:
        (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
        * platform/graphics/wince/SimpleFontDataWinCE.cpp:
        (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.
        * platform/graphics/wx/SimpleFontDataWx.cpp:
        (WebCore::SimpleFontData::updateGlyphWithVariationSelector): Ditto.

2011-12-15  Alexander Pavlov  <apavlov@chromium.org>

        [v8] Expose the "filter" property in V8CSSStyleDeclaration
        https://bugs.webkit.org/show_bug.cgi?id=73426

        Reviewed by Adam Barth.

        Test: fast/css/style-enumerate-properties.html

        The "filter" CSS property used to be masked to be compliant with JSC, but JSC has supported
        this property for quite a while.

        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
        (WebCore::hasCSSPropertyNamePrefix): clean up WTF prefixes
        (WebCore::cssPropertyInfo): remove the "wasFilter" flag
        (WebCore::V8CSSStyleDeclaration::namedPropertyEnumerator): remove the "filter" check
        (WebCore::V8CSSStyleDeclaration::namedPropertyGetter): return the "filter" value as v8String

2011-12-15  Hajime Morrita  <morrita@chromium.org>

        Unreviewed build fix attempt for Chromium Mac.

        * page/PerformanceTiming.h:

2011-12-15  Alexander Pavlov  <apavlov@chromium.org>

        Unreviewed, build fix after r102906 (poor merge).

        * inspector/front-end/ProfileView.js:
        (WebInspector.CPUProfileType.prototype.buttonClicked):

2011-12-15  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed revert of r102696 ([Navigation Timing] Use monotonicallyIncreasingTime() instead of currentTime()).
        Breaks inspector's network panel timeline on chromium.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/Document.cpp:
        (WebCore::Document::setReadyState):
        (WebCore::Document::finishedParsing):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::buildObjectForTiming):
        (WebCore::buildObjectForResourceResponse):
        (WebCore::buildObjectForCachedResource):
        (WebCore::InspectorResourceAgent::willSendRequest):
        (WebCore::InspectorResourceAgent::didReceiveResponse):
        (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
        * loader/DocumentLoadTiming.cpp: Removed.
        * loader/DocumentLoadTiming.h:
        (WebCore::DocumentLoadTiming::DocumentLoadTiming):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::stopLoading):
        (WebCore::FrameLoader::commitProvisionalLoad):
        (WebCore::FrameLoader::continueLoadAfterWillSubmitForm):
        (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
        (WebCore::MainResourceLoader::willSendRequest):
        (WebCore::MainResourceLoader::didReceiveData):
        (WebCore::MainResourceLoader::didFinishLoading):
        (WebCore::MainResourceLoader::load):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::dispatchLoadEvent):
        (WebCore::DOMWindow::dispatchTimedEvent):
        * page/DOMWindow.h:
        * page/PerformanceNavigation.cpp:
        (WebCore::PerformanceNavigation::redirectCount):
        * page/PerformanceTiming.cpp:
        (WebCore::getPossiblySkewedTimeInKnownRange):
        (WebCore::PerformanceTiming::navigationStart):
        (WebCore::PerformanceTiming::unloadEventStart):
        (WebCore::PerformanceTiming::unloadEventEnd):
        (WebCore::PerformanceTiming::redirectStart):
        (WebCore::PerformanceTiming::redirectEnd):
        (WebCore::PerformanceTiming::fetchStart):
        (WebCore::PerformanceTiming::responseEnd):
        (WebCore::PerformanceTiming::domLoading):
        (WebCore::PerformanceTiming::domInteractive):
        (WebCore::PerformanceTiming::domContentLoadedEventStart):
        (WebCore::PerformanceTiming::domContentLoadedEventEnd):
        (WebCore::PerformanceTiming::domComplete):
        (WebCore::PerformanceTiming::loadEventStart):
        (WebCore::PerformanceTiming::loadEventEnd):
        (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
        * page/PerformanceTiming.h:
        * platform/network/ResourceLoadTiming.cpp: Removed.
        * platform/network/ResourceLoadTiming.h:

2011-12-15  Alexander Pavlov  <apavlov@chromium.org>

        Unreviewed, fix Closure compiler warnings after r102905.

        * inspector/front-end/CSSStyleModel.js: Add JSDoc annotations

2011-12-14  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: make ProfilesPanel scale as the number of ProfileTypes grows
        https://bugs.webkit.org/show_bug.cgi?id=74391

        Reviewed by Pavel Feldman.

        Whenever a profile is started, this change disables all profile recording buttons, except the one
        that correponds to the running profile. Once the profiling is finished, all buttons get enabled back again.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/ProfileView.js:
        (WebInspector.CPUProfileView.profileCallback):
        (WebInspector.CPUProfileType.prototype.get buttonTooltip):
        (WebInspector.CPUProfileType.prototype.get buttonStyle):
        (WebInspector.CPUProfileType.prototype.buttonClicked):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype.get statusBarItems.clickHandler):
        (WebInspector.ProfilesPanel.prototype.get statusBarItems):
        (WebInspector.ProfilesPanel.prototype._addProfileHeader):
        (WebInspector.ProfilesPanel.prototype.updateProfileTypeButtons):
        (WebInspector.ProfilesPanel.prototype._updateInterface):
        (WebInspector.ProfilesPanel.prototype.setRecordingProfile):
        (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot):
        (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress):
        (WebInspector.ProfilerDispatcher.prototype.setRecordingProfile):
        * inspector/front-end/inspector.css:
        (.record-cpu-profile-status-bar-item .glyph):
        (.record-cpu-profile-status-bar-item.toggled-on .glyph):

2011-12-15  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Styles] Update selected DOM element styles whenever applicable media queries change
        https://bugs.webkit.org/show_bug.cgi?id=74292

        The change introduces and handles in the frontend a new event type for the CSS domain,
        "mediaQueryResultChanged", which gets fired every time a viewport-dependent media feature
        changes its value. This allows users to see live changes of the (media-dependent) matched
        rules for inspected elements.

        Reviewed by Pavel Feldman.

        * inspector/CodeGeneratorInspector.py:
        (DomainNameFixes):
        * inspector/Inspector.json:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::InspectorCSSAgent):
        (WebCore::InspectorCSSAgent::setFrontend):
        (WebCore::InspectorCSSAgent::clearFrontend):
        (WebCore::InspectorCSSAgent::restore):
        (WebCore::InspectorCSSAgent::enable):
        (WebCore::InspectorCSSAgent::disable):
        (WebCore::InspectorCSSAgent::mediaQueryResultChanged):
        * inspector/InspectorCSSAgent.h:
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::mediaQueryResultChangedImpl):
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::mediaQueryResultChanged):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel):
        (WebInspector.CSSStyleModel.prototype.mediaQueryResultChanged):
        (WebInspector.CSSDispatcher):
        (WebInspector.CSSDispatcher.prototype.mediaQueryResultChanged):
        * inspector/front-end/MetricsSidebarPane.js:
        (WebInspector.MetricsSidebarPane):
        (WebInspector.MetricsSidebarPane.prototype._styleSheetOrMediaQueryResultChanged):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane):
        (WebInspector.StylesSidebarPane.prototype._styleSheetOrMediaQueryResultChanged):
        * page/FrameView.cpp:
        (WebCore::FrameView::layout):

2011-12-14  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [Regression] Network manager fails to show resource type and MIME type in incorrect MIME type console message.
        https://bugs.webkit.org/show_bug.cgi?id=74516

        Reviewed by Pavel Feldman.

        Test: http/tests/inspector/network/script-as-text-loading.html

        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
        * inspector/front-end/NetworkManager.js:
        (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):

2011-11-03  Kent Tamura  <tkent@chromium.org>

        A spin button changes the value incorrectly if it is clicked after touch events.
        https://bugs.webkit.org/show_bug.cgi?id=71181

        Reviewed by Ryosuke Niwa.

        SpinButtonElement assumed setHovered(true) was always called before a
        mousemove event in the element. It is not true for touch events.

        We should not reset m_upDownState to Indetermiante in setHovered(true),
        and should reset it when the mouse pointer moves out.

        This change fixes the flakiness of fast/forms/input-step-as-double.html.

        Test: fast/events/touch/touch-before-pressing-spin-button.html

        * html/shadow/TextControlInnerElements.cpp:
        (WebCore::SpinButtonElement::defaultEventHandler):
        Add an assertion that m_upDownState should not be Indetermiante.
        Reset m_upDownState to Indeterminate when the mouse pointer moves out
        from the element.
        (WebCore::SpinButtonElement::setHovered):
        Reset m_upDownState to Indeterminate when the element becomes unhovered.

2011-12-14  Lucas Forschler  <lforschler@apple.com>
    
        https://bugs.webkit.org/show_bug.cgi?id=74543
        Add CSS*.cpp to a new CSSAllInOne.cpp file with two exceptions:
            CSSProperty.cpp
            CSSPrimitiveValue.cpp
        Adding these two broke things with a templates problem that was not easily fixable.

        Reviewed by Steve Falkenburg.

        * WebCore.vcproj/WebCore.vcproj:
        * css/CSSAllInOne.cpp: Added.

2011-12-14  Tim Horton  <timothy_horton@apple.com>

        Generated images should respect the accelerated state of the context they're going to be drawn into
        https://bugs.webkit.org/show_bug.cgi?id=74577
        <rdar://problem/10584392>

        Reviewed by Simon Fraser.

        The tiled code path for GeneratorGeneratedImage and CrossfadeGeneratedImage blindly creates
        an unaccelerated ImageBuffer. Instead, take into account the accelerated state of the destination context.

        No new tests, as this is a simple performance improvement.

        * platform/graphics/CrossfadeGeneratedImage.cpp:
        (WebCore::CrossfadeGeneratedImage::drawPattern):
        * platform/graphics/GeneratorGeneratedImage.cpp:
        (WebCore::GeneratorGeneratedImage::drawPattern):

2011-12-14  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: cleanup unused variable introduced at r102803

        * inspector/front-end/NetworkManager.js:
        (WebInspector.NetworkManager.prototype.enableResourceTracking):
        (WebInspector.NetworkManager.prototype.disableResourceTracking):

2011-12-14  Wei James  <james.wei@intel.com>

        fast path to accelerate processing in AudioBus::processWithGainFromMonoStereo
        https://bugs.webkit.org/show_bug.cgi?id=74054

        Reviewed by Kenneth Russell.

        Avoid de-zippering when the gain has converged on the targetGain. 
        It can get about 75% performance gain at most when all frames don't need
        de-zippering.

        * platform/audio/AudioBus.cpp:
        (WebCore::AudioBus::processWithGainFromMonoStereo):

2011-12-14  Adam Klein  <adamk@chromium.org>

        Optimize MutationObserverInterestGroup construction
        https://bugs.webkit.org/show_bug.cgi?id=74563

        Reviewed by Ojan Vafai.

        Inline MutationObserverInterestGroup's creation methods and fix an
        accidental pass-by-value in an attempt to further reduce the CPU
        footprint of MutationObservers.

        No new tests, refactor only.

        * dom/WebKitMutationObserver.cpp:
        (WebCore::MutationObserverInterestGroup::MutationObserverInterestGroup): Pass observers HashMap by reference.
        * dom/WebKitMutationObserver.h:
        (WebCore::MutationObserverInterestGroup::createForChildListMutation): Inline.
        (WebCore::MutationObserverInterestGroup::createForCharacterDataMutation): Inline.
        (WebCore::MutationObserverInterestGroup::createForAttributesMutation): Inline.
        (WebCore::MutationObserverInterestGroup::hasOldValue): Remove spurious inline keyword.

2011-12-14  Dominic Mazzoni  <dmazzoni@google.com>

        Seeing crash in DRT after loading-iframe-sends-notification.html land
        https://bugs.webkit.org/show_bug.cgi?id=72624

        When an iframe finishes loading, send an accessibility notification
        on the renderer, rather than on a parent node. The only reason it was
        being posted on a parent before was because there was no way to detect
        that in a test. This is simpler and now covered by the test.

        Reviewed by Chris Fleizach.

        Updates existing test:
        accessibility/loading-iframe-sends-notification.html

        * dom/Document.cpp:
        (WebCore::Document::implicitClose):

2011-12-14  Nat Duca  <nduca@chromium.org>

        [chromium] Add inhibitDraw to CCScheduler and drop root impl to prevent background flash on tab restore
        https://bugs.webkit.org/show_bug.cgi?id=74351

        Reviewed by James Robinson.

        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::setNeedsCommit):
        (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
        * platform/graphics/chromium/cc/CCScheduler.cpp:
        (WebCore::CCScheduler::getNextAction):
        (WebCore::CCScheduler::processScheduledActions):
        * platform/graphics/chromium/cc/CCScheduler.h:
        * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
        (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
        (WebCore::CCSchedulerStateMachine::nextAction):
        * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
        (WebCore::CCSchedulerStateMachine::setInhibitDraw):
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::setVisibleOnImplThread):
        (WebCore::CCThreadProxy::inhibitDraw):
        * platform/graphics/chromium/cc/CCThreadProxy.h:

2011-12-14  Ken Buchanan  <kenrb@chromium.org>

        Crash due to incorrect parsing of isolates
        https://bugs.webkit.org/show_bug.cgi?id=74311
        When <bdi> content is wrapped, all hell breaks loose
        https://bugs.webkit.org/show_bug.cgi?id=74396

        Reviewed by Eric Seidel.

        When an isolate was encountered during run layout, the entire isolate
        would be parsed, even if the run started in the middle of the isolate.
        This would sometimes cause parts of the isolate to be added multiple
        times as runs. This patch marks the starting position within the
        isolate so nothing is parsed twice.

        This patch changes appendRun() so that when a run is added that is
        inside an isolate, it saves the start position of the run rather than
        the root. This allows constructBidiRuns() to resume parsing the
        isolate from the correct position.

        The change to RenderBox partially reverts a previous change I had
        done. It makes sense to screen for the condition, as was previously
        the case.

        This patch does not add the test case from 74396 because a separate
        bug is preventing it from rendering correctly.

        * rendering/InlineIterator.h:
        (WebCore::addPlaceholderRunForIsolatedInline)
        (WebCore::IsolateTracker::addFakeRunIfNecessary)
        (WebCore::InlineBidiResolver::appendRun)
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlockLineLayout::constructBidiRuns)
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::positionLineBox)

2011-12-14  Jing Zhao  <jingzhao@chromium.org>

        Opening two popup menus by dispatchEvent() makes problems.
        https://bugs.webkit.org/show_bug.cgi?id=73304

        Reviewed by Kent Tamura.

        By using element.dispatchEvent(), a user written script can open two
        popup menus, which causes various problems in different platforms.

        Add a hasOpenedPopup() method in ChromeClient and a wrapper in Chrome.
        In RenderMenuList::showPopup(), check if there is an opened popup menu
        before opening a new popup menu.

        Test: fast/forms/select-popup-crash.html

        * loader/EmptyClients.h: Overrides hasOpenedPopup().
        (WebCore::EmptyChromeClient::hasOpenedPopup): Returns false as a default case.
        * page/Chrome.cpp:
        (WebCore::Chrome::hasOpenedPopup): Calls ChromeClient::hasOpenedPopup().
        * page/Chrome.h: Declares hasOpenedPopup().
        * page/ChromeClient.h: Declares hasOpenedPopup() as a pure virtual function.
        * rendering/RenderMenuList.cpp:
        (WebCore::RenderMenuList::showPopup): Calls Chrome::hasOpenedPopup() before opening a new popup menu.

2011-12-14  Tony Chang  <tony@chromium.org>

        Clean up style in CSSStyleSelector.cpp
        https://bugs.webkit.org/show_bug.cgi?id=74548

        Reviewed by Ojan Vafai.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::styleForElement):
        (WebCore::CSSStyleSelector::pseudoStyleForElement):

2011-12-14  Kenneth Russell  <kbr@google.com>

        Unreviewed, rolling out r102794.
        http://trac.webkit.org/changeset/102794
        https://bugs.webkit.org/show_bug.cgi?id=74220

        Reapplying patch since it is not the cause of the problems
        described in bug 74220.

        * bindings/v8/V8Proxy.cpp:
        (WebCore::V8Proxy::reportUnsafeAccessTo):
        * bindings/v8/V8Proxy.h:
        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):

2011-12-14  Sam Weinig  <weinig@apple.com>

        Remove whitespace from InheritedPropertySheets attributes in
        vsprops files to appease the Visual Studio project migrator.

        Reviewed by Adam Roben.

        * WebCore.vcproj/QTMovieWinDebug.vsprops:
        * WebCore.vcproj/QTMovieWinDebugAll.vsprops:
        * WebCore.vcproj/QTMovieWinDebugCairoCFLite.vsprops:
        * WebCore.vcproj/QTMovieWinProduction.vsprops:
        * WebCore.vcproj/QTMovieWinRelease.vsprops:
        * WebCore.vcproj/QTMovieWinReleaseCairoCFLite.vsprops:
        * WebCore.vcproj/WebCoreDebug.vsprops:
        * WebCore.vcproj/WebCoreDebugAll.vsprops:
        * WebCore.vcproj/WebCoreDebugCairoCFLite.vsprops:
        * WebCore.vcproj/WebCoreProduction.vsprops:
        * WebCore.vcproj/WebCoreRelease.vsprops:
        * WebCore.vcproj/WebCoreReleaseCairoCFLite.vsprops:

2011-12-14  Enrica Casucci  <enrica@apple.com>

        One more attempt to fix the release build (hopefully the last)

        Unreviewed.

        * editing/ReplaceSelectionCommand.cpp: Added NodeRenderStyle.h

2011-12-14  Kenneth Russell  <kbr@google.com>

        Unreviewed, rolling out r102816.
        http://trac.webkit.org/changeset/102816
        https://bugs.webkit.org/show_bug.cgi?id=74415

        Implicated in font-related crashes on Chromium canaries.

        * platform/graphics/chromium/FontChromiumWin.cpp:
        (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
        (WebCore::Font::drawGlyphs):
        * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
        (WebCore::FontPlatformData::FontPlatformData):
        (WebCore::FontPlatformData::operator=):
        (WebCore::FontPlatformData::~FontPlatformData):
        * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
        (WebCore::FontPlatformData::size):
        (WebCore::FontPlatformData::hash):
        * platform/graphics/skia/SkiaFontWin.cpp:
        (WebCore::setupPaintForFont):
        (WebCore::paintSkiaText):
        * platform/graphics/skia/SkiaFontWin.h:

2011-12-14  Simon Fraser  <simon.fraser@apple.com>

        Filter amounts should accept percentages
        https://bugs.webkit.org/show_bug.cgi?id=74531

        Reviewed by Chris Marrin.
        
        Support percentage arguments for some filter functions, using the FPercent flag
        to validUnit(). Fix CSSStyleSelector::createFilterOperations() to do the divide by 100
        for percentages.
        
        Replaced isValidFilterArgument(), which just tested arguments one by one for validity, with
        parseBuiltinFilterArguments() which tests and creates the CSSValues at the same time, which
        is a little more efficient. It also allows filter-specific behavior to be more localized in this
        method.

        Covered by existing tests.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseBuiltinFilterArguments):
        (WebCore::CSSParser::parseFilter):
        * css/CSSParser.h:
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::createFilterOperations):

2011-12-14  Enrica Casucci  <enrica@apple.com>

        Build fix.

        Unreviewed.

        * editing/ReplaceSelectionCommand.cpp: Added include RenderStyle.h

2011-12-14  Hajime Morrita  <morrita@chromium.org>

        JS_INLINE and WTF_INLINE should be visible from WebCore
        https://bugs.webkit.org/show_bug.cgi?id=73191

        Reviewed by Kevin Ollivier.

        - Moved export related definitions from config.h
          to ExportMacros.h, JSExportMacros.h and PlatformExportMacros.h
        - Added forwarding headers which are referred from config.h

        No new tests. Only build related changes.

        * ForwardingHeaders/runtime/JSExportMacros.h: Added.
        * ForwardingHeaders/wtf/ExportMacros.h: Added.
        * WebCore.xcodeproj/project.pbxproj:
        * config.h:
        * platform/PlatformExportMacros.h: Copied from Source/JavaScriptCore/wtf/ExportMacros.h.

2011-12-14  Enrica Casucci  <enrica@apple.com>

        Need a way to produce leaner markup when pasting a fragment containing verbose markup
        https://bugs.webkit.org/show_bug.cgi?id=74514
        <rdar://problem/10208653>

        Reviewed by Ryosuke Niwa.

        This patch is another step in the direction of reducing the verbosity of the markup
        produced with editing operations.
        After the copied fragment is inserted in the document, it is analyzed to remove all
        the elements that don't contribute to the style. The decision is made comparing the
        render styles. As part of the cleanup, unstyled divs with single child element are
        removed. The logic to determine the blocks that can be removed is the same used in
        DeleteSelectionCommand and has been moved in CompositeEditCommand.
        
        Test: editing/pasteboard/paste-and-sanitize.html

        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::isRemovableBlock): Implements logic to determine
        if a block can be removed.
        * editing/CompositeEditCommand.h: Added isRemovableBlock declaration.
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::removeRedundantBlocks): Implemented using
        isRemovableBlock from CompositeEditCommand.
        * editing/Editor.cpp:
        (WebCore::Editor::replaceSelectionWithFragment): Added SanitizeFragment option.
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand): Added initialization
        of m_sanitizeFragment member.
        (WebCore::ReplaceSelectionCommand::removeRedundantMarkup): New method implementing
        the cleanup logic.
        (WebCore::ReplaceSelectionCommand::doApply): Added call to removeRedundantMarkup
        after the fragment is inserted in the document.
        * editing/ReplaceSelectionCommand.h: Added new value to the enum CommandOption,
        a new member variable and the new method declaration.

2011-12-14  Adrienne Walker  <enne@google.com>

        [chromium] Refactor tile drawing to be more data-driven
        https://bugs.webkit.org/show_bug.cgi?id=73059

        Reviewed by James Robinson.

        Partially tested by compositor layout tests. Debug borders and
        checkerboarding tested manually.

        This is the first part of a move towards rendering quads on screen
        from a bag of data rather than in virtual CCLayerImpl::draw functions.

        CCDrawQuad-derived classes store material-specific pieces of data to
        use when rendering. CCLayerImpl classes now create these CCDrawQuad
        objects rather than issuing direct GL commands. Where this data is
        shared between quads that come from the same layer, that data is
        stored in a CCSharedQuadState object rather than duplicated.

        CCRenderPass is the class that holds the list of quads and the target
        surface that they draw into. Drawing a frame consists of drawing a
        series of render passes onto their respective surfaces.

        CCLayerTreeHostImpl constructs these render passes from the output of
        calculateDrawTransformsAndVisibility by asking each layer to insert
        quads into a list and hands them off to LayerRendererChromium for
        rendering.

        * WebCore.gypi:
        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::clearSurfaceForDebug):
        (WebCore::LayerRendererChromium::beginDrawingFrame):
        (WebCore::LayerRendererChromium::drawRenderPass):
        (WebCore::LayerRendererChromium::drawQuad):
        (WebCore::LayerRendererChromium::drawDebugBorderQuad):
        (WebCore::LayerRendererChromium::drawRenderSurfaceQuad):
        (WebCore::LayerRendererChromium::drawSolidColorQuad):
        (WebCore::tileUniformLocation):
        (WebCore::findTileProgramUniforms):
        (WebCore::LayerRendererChromium::drawTileQuad):
        (WebCore::LayerRendererChromium::drawCustomLayerQuad):
        (WebCore::LayerRendererChromium::finishDrawingFrame):
        (WebCore::LayerRendererChromium::useRenderSurface):
        * platform/graphics/chromium/LayerRendererChromium.h:
        * platform/graphics/chromium/ShaderChromium.h:
        (WebCore::FragmentTexAlphaBinding::edgeLocation):
        (WebCore::FragmentTexAlphaBinding::fragmentTexTransformLocation):
        (WebCore::FragmentTexOpaqueBinding::edgeLocation):
        (WebCore::FragmentTexOpaqueBinding::fragmentTexTransformLocation):
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::pushPropertiesTo):
        * platform/graphics/chromium/cc/CCCustomLayerDrawQuad.cpp: Added.
        (WebCore::CCCustomLayerDrawQuad::create):
        (WebCore::CCCustomLayerDrawQuad::CCCustomLayerDrawQuad):
        * platform/graphics/chromium/cc/CCCustomLayerDrawQuad.h: Added.
        (WebCore::CCCustomLayerDrawQuad::layer):
        * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.cpp: Added.
        (WebCore::CCDebugBorderDrawQuad::create):
        (WebCore::CCDebugBorderDrawQuad::CCDebugBorderDrawQuad):
        * platform/graphics/chromium/cc/CCDebugBorderDrawQuad.h: Added.
        (WebCore::CCDebugBorderDrawQuad::color):
        (WebCore::CCDebugBorderDrawQuad::width):
        * platform/graphics/chromium/cc/CCDrawQuad.cpp: Added.
        (WebCore::CCDrawQuad::CCDrawQuad):
        (WebCore::CCDrawQuad::toDebugBorderDrawQuad):
        (WebCore::CCDrawQuad::toRenderSurfaceDrawQuad):
        (WebCore::CCDrawQuad::toSolidColorDrawQuad):
        (WebCore::CCDrawQuad::toTileDrawQuad):
        (WebCore::CCDrawQuad::toCustomLayerDrawQuad):
        * platform/graphics/chromium/cc/CCDrawQuad.h: Added.
        (WebCore::CCDrawQuad::quadRect):
        (WebCore::CCDrawQuad::quadTransform):
        (WebCore::CCDrawQuad::layerTransform):
        (WebCore::CCDrawQuad::layerRect):
        (WebCore::CCDrawQuad::clipRect):
        (WebCore::CCDrawQuad::opacity):
        (WebCore::CCDrawQuad::drawsOpaque):
        (WebCore::CCDrawQuad::needsBlending):
        (WebCore::CCDrawQuad::isLayerAxisAlignedIntRect):
        (WebCore::CCDrawQuad::material):
        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
        (WebCore::CCLayerImpl::createSharedQuadState):
        (WebCore::CCLayerImpl::appendQuads):
        (WebCore::CCLayerImpl::appendDebugBorderQuad):
        (WebCore::CCLayerImpl::quadTransform):
        * platform/graphics/chromium/cc/CCLayerImpl.h:
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::trackDamageForAllSurfaces):
        (WebCore::computeScreenSpaceTransformForSurface):
        (WebCore::damageInSurfaceSpace):
        (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
        (WebCore::CCLayerTreeHostImpl::drawLayers):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
        * platform/graphics/chromium/cc/CCRenderPass.cpp: Added.
        (WebCore::CCRenderPass::create):
        (WebCore::CCRenderPass::CCRenderPass):
        (WebCore::CCRenderPass::appendQuadsForLayer):
        (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
        * platform/graphics/chromium/cc/CCRenderPass.h: Added.
        (WebCore::CCRenderPass::quadList):
        (WebCore::CCRenderPass::targetSurface):
        (WebCore::CCRenderPass::setSurfaceDamageRect):
        (WebCore::CCRenderPass::surfaceDamageRect):
        * platform/graphics/chromium/cc/CCRenderSurfaceDrawQuad.cpp: Added.
        (WebCore::CCRenderSurfaceDrawQuad::create):
        (WebCore::CCRenderSurfaceDrawQuad::CCRenderSurfaceDrawQuad):
        * platform/graphics/chromium/cc/CCRenderSurfaceDrawQuad.h: Added.
        (WebCore::CCRenderSurfaceDrawQuad::layer):
        (WebCore::CCRenderSurfaceDrawQuad::surfaceDamageRect):
        * platform/graphics/chromium/cc/CCSharedQuadState.cpp: Added.
        (WebCore::CCSharedQuadState::create):
        (WebCore::CCSharedQuadState::CCSharedQuadState):
        (WebCore::CCSharedQuadState::isLayerAxisAlignedIntRect):
        * platform/graphics/chromium/cc/CCSharedQuadState.h: Added.
        (WebCore::CCSharedQuadState::quadTransform):
        (WebCore::CCSharedQuadState::layerTransform):
        (WebCore::CCSharedQuadState::layerRect):
        (WebCore::CCSharedQuadState::clipRect):
        (WebCore::CCSharedQuadState::opacity):
        (WebCore::CCSharedQuadState::isOpaque):
        * platform/graphics/chromium/cc/CCSolidColorDrawQuad.cpp: Added.
        (WebCore::CCSolidColorDrawQuad::create):
        (WebCore::CCSolidColorDrawQuad::CCSolidColorDrawQuad):
        * platform/graphics/chromium/cc/CCSolidColorDrawQuad.h: Added.
        (WebCore::CCSolidColorDrawQuad::color):
        * platform/graphics/chromium/cc/CCTileDrawQuad.cpp: Added.
        (WebCore::CCTileDrawQuad::create):
        (WebCore::CCTileDrawQuad::CCTileDrawQuad):
        * platform/graphics/chromium/cc/CCTileDrawQuad.h: Added.
        (WebCore::CCTileDrawQuad::textureId):
        (WebCore::CCTileDrawQuad::textureOffset):
        (WebCore::CCTileDrawQuad::textureSize):
        (WebCore::CCTileDrawQuad::textureFilter):
        (WebCore::CCTileDrawQuad::swizzleContents):
        (WebCore::CCTileDrawQuad::leftEdgeAA):
        (WebCore::CCTileDrawQuad::topEdgeAA):
        (WebCore::CCTileDrawQuad::rightEdgeAA):
        (WebCore::CCTileDrawQuad::bottomEdgeAA):
        (WebCore::CCTileDrawQuad::isAntialiased):
        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
        (WebCore::CCTiledLayerImpl::CCTiledLayerImpl):
        (WebCore::CCTiledLayerImpl::quadTransform):
        (WebCore::CCTiledLayerImpl::appendQuads):
        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
        (WebCore::CCTiledLayerImpl::setContentsSwizzled):
        (WebCore::CCTiledLayerImpl::contentsSwizzled):

2011-12-14  Ojan Vafai  <ojan@chromium.org>

        Implement flexDirection and flexWrap and make flexFlow a proper shorthand.
        https://bugs.webkit.org/show_bug.cgi?id=74542

        Reviewed by Tony Chang.

        In a followup patch, I'll cleanup all the *Flow methods in RenderFlexibleBox.

        Existing tests cover all the rendering behaviors, so only need to test
        the css property parsing.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator EFlexDirection):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyLonghand.cpp:
        (WebCore::initShorthandMap):
        * css/CSSPropertyNames.in:
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::sizesToIntrinsicLogicalWidth):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::isColumnFlow):
        (WebCore::RenderFlexibleBox::isLeftToRightFlow):
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
        (WebCore::RenderFlexibleBox::alignChildren):
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::flexDirection):
        (WebCore::InheritedFlags::isColumnFlexDirection):
        (WebCore::InheritedFlags::setFlexDirection):
        (WebCore::InheritedFlags::initialFlexDirection):
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleFlexibleBoxData.cpp:
        (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
        (WebCore::StyleFlexibleBoxData::operator==):
        * rendering/style/StyleFlexibleBoxData.h:

2011-12-13  Jon Lee  <jonlee@apple.com>

        Enable notifications on Mac.

        Reviewed by Sam Weinig.

        * Configurations/FeatureDefines.xcconfig:

2011-12-14  Ryosuke Niwa  <rniwa@webkit.org>

        COMPILE_ASSERT in CSSStyleSelector.cpp doesn't compile on Windows
        https://bugs.webkit.org/show_bug.cgi?id=74327

        Reviewed by Darin Adler.

        Always use unsigned instead of bool and unsigned in the bitfields of RuleData to shrink
        its size under MSVC.

        Unlike gcc and clang, MSVC pads each consecutive member variables of the same type
        in bitfields. e.g. if you have:
        sturct AB {
            unsigned m_1 : 31;
            bool m_2 : 1;
        }
        then MSVC pads m_1 and allocates sizeof(unsigned) * 2 for AB whereas gcc and clang
        only allocate sizeof(unsigned) * 1 for AB.

        * css/CSSStyleSelector.cpp:
        (WebCore::RuleData::RuleData):

2011-12-14  Ryosuke Niwa  <rniwa@webkit.org>

        NodeChildList shouldn't be in NodeListNodeData
        https://bugs.webkit.org/show_bug.cgi?id=73969

        Reviewed by Sam Weinig.

        Move NodeChildList out of NodeListNodeData to separate it from the other node lists in order to
        resolve the bug 73853. Unlike other DynamicNodeList, we don't need to invalidate NodeChildList
        on ancestors when children change. Moving ChildNodeList out of NodeListNodeData makes this difference
        apparent and makes DynamicNodeList::Caches in NodeListNodeData always held by a DynamicSubtreeNodeList,
        eliminating the need for hasOwnCaches() checks in various places.

        Also renamed the existing DynamicNodeList to DynamicSubtreeNodeList and re-introduced DynamicNodeList
        from which DynamicSubtreeNodeList and ChildNodeList both inherit to share the code for itemWithName.

        In addition, renamed registerDynamicNodeList and unregisterDynamicNodeList, which updates a counter for
        TreeScope::hasNodeListCaches, to registerDynamicSubtreeNodeList and unregisterDynamicSubtreeNodeList
        respectively. They are no longer called by ChildNodeList in order to avoid walking up the DOM tree
        inside invalidateNodeListsCacheAfterAttributeChanged and invalidateNodeListsCacheAfterChildrenChanged.

        Test: fast/dom/childnode-item-after-itemname.html

        * bindings/js/JSNodeListCustom.cpp:
        (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
        * dom/ChildNodeList.cpp:
        (WebCore::ChildNodeList::ChildNodeList):
        (WebCore::ChildNodeList::length):
        (WebCore::ChildNodeList::item):
        (WebCore::ChildNodeList::nodeMatches):
        * dom/ChildNodeList.h:
        * dom/ClassNodeList.cpp:
        (WebCore::ClassNodeList::ClassNodeList):
        (WebCore::ClassNodeList::~ClassNodeList):
        * dom/ClassNodeList.h:
        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::childrenChanged):
        * dom/DynamicNodeList.cpp:
        (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):
        (WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList):
        (WebCore::DynamicSubtreeNodeList::length):
        (WebCore::DynamicSubtreeNodeList::itemForwardsFromCurrent):
        (WebCore::DynamicSubtreeNodeList::itemBackwardsFromCurrent):
        (WebCore::DynamicSubtreeNodeList::item):
        (WebCore::DynamicNodeList::itemWithName):
        (WebCore::DynamicSubtreeNodeList::isDynamicNodeList):
        (WebCore::DynamicSubtreeNodeList::invalidateCache):
        (WebCore::DynamicSubtreeNodeList::Caches::Caches):
        (WebCore::DynamicSubtreeNodeList::Caches::create):
        (WebCore::DynamicSubtreeNodeList::Caches::reset):
        * dom/DynamicNodeList.h:
        (WebCore::DynamicNodeList::DynamicNodeList):
        (WebCore::DynamicNodeList::~DynamicNodeList):
        (WebCore::DynamicNodeList::node):
        (WebCore::DynamicSubtreeNodeList::rootNode):
        * dom/NameNodeList.cpp:
        (WebCore::NameNodeList::NameNodeList):
        (WebCore::NameNodeList::~NameNodeList):
        * dom/NameNodeList.h:
        * dom/Node.cpp:
        (WebCore::Node::childNodes):
        (WebCore::Node::registerDynamicSubtreeNodeList):
        (WebCore::Node::unregisterDynamicSubtreeNodeList):
        (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged):
        (WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged):
        (WebCore::Node::removeCachedClassNodeList):
        (WebCore::Node::removeCachedNameNodeList):
        (WebCore::Node::removeCachedTagNodeList):
        (WebCore::Node::removeCachedLabelsNodeList):
        (WebCore::NodeListsNodeData::invalidateCaches):
        (WebCore::NodeListsNodeData::isEmpty):
        (WebCore::NodeRareData::clearChildNodeListCache):
        * dom/Node.h:
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::nodeLists):
        (WebCore::NodeRareData::ensureChildNodeListCache):
        * dom/TagNodeList.cpp:
        (WebCore::TagNodeList::TagNodeList):
        (WebCore::TagNodeList::~TagNodeList):
        * dom/TagNodeList.h:
        * html/LabelsNodeList.cpp:
        (WebCore::LabelsNodeList::LabelsNodeList):
        * html/LabelsNodeList.h:

2011-12-14  Ryosuke Niwa  <rniwa@webkit.org>

        Push more member functions from EditCommand to CompositeEditCommand
        https://bugs.webkit.org/show_bug.cgi?id=74249

        Reviewed by Enrica Casucci.

        Moved startingRootEditableElement and endingRootEditableElement from EditCommand to EditCommandComposition,
        and isTypingCommand, preservesTypingStyle, shouldRetainAutocorrectionIndicator,
        setShouldRetainAutocorrectionIndicator, and shouldStopCaretBlinking from EditCommand to CompositeEditCommand.
        Also removed EditCommand::updateLayout().

        * editing/ApplyBlockElementCommand.cpp:
        (WebCore::ApplyBlockElementCommand::doApply):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyBlockStyle):
        (WebCore::ApplyStyleCommand::applyInlineStyle):
        * editing/CompositeEditCommand.cpp:
        (WebCore::EditCommandComposition::EditCommandComposition):
        (WebCore::EditCommandComposition::setStartingSelection):
        (WebCore::EditCommandComposition::setEndingSelection):
        (WebCore::CompositeEditCommand::preservesTypingStyle):
        (WebCore::CompositeEditCommand::isTypingCommand):
        (WebCore::CompositeEditCommand::shouldRetainAutocorrectionIndicator):
        (WebCore::CompositeEditCommand::setShouldRetainAutocorrectionIndicator):
        (WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):
        (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
        (WebCore::CompositeEditCommand::moveParagraphs):
        * editing/CompositeEditCommand.h:
        (WebCore::EditCommandComposition::startingRootEditableElement):
        (WebCore::EditCommandComposition::endingRootEditableElement):
        (WebCore::CompositeEditCommand::shouldStopCaretBlinking):
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::removeNode):
        (WebCore::DeleteSelectionCommand::fixupWhitespace):
        * editing/EditCommand.cpp:
        (WebCore::EditCommand::apply):
        (WebCore::EditCommand::unapply):
        (WebCore::EditCommand::reapply):
        (WebCore::EditCommand::setStartingSelection):
        (WebCore::EditCommand::setEndingSelection):
        (WebCore::EditCommand::setParent):
        * editing/EditCommand.h:
        (WebCore::EditCommand::isEditCommandComposition):
        * editing/Editor.cpp:
        (WebCore::dispatchEditableContentChangedEvents):
        (WebCore::Editor::appliedEditing):
        (WebCore::Editor::unappliedEditing):
        (WebCore::Editor::reappliedEditing):
        * editing/Editor.h:
        (WebCore::Editor::lastEditCommand):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::updateAppearance):
        * editing/IndentOutdentCommand.cpp:
        (WebCore::IndentOutdentCommand::outdentParagraph):
        * editing/InsertLineBreakCommand.cpp:
        (WebCore::InsertLineBreakCommand::doApply):
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply):
        * editing/TypingCommand.cpp:
        (WebCore::TypingCommand::lastTypingCommandIfStillOpenForTyping):
        * editing/TypingCommand.h:
        (WebCore::TypingCommand::shouldRetainAutocorrectionIndicator):

2011-12-14  Tony Chang  <tony@chromium.org>

        Fix compile on gcc on Mac.

        css/CSSStyleSelector.cpp:1254:166: error: unused parameter 'regionForStyling' [-Werror,-Wunused-parameter,3]
        css/CSSStyleSelector.cpp:1425:134: error: unused parameter 'regionForStyling' [-Werror,-Wunused-parameter,3]

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::styleForElement):
        (WebCore::CSSStyleSelector::pseudoStyleForElement):

2011-12-14  Brady Eidson  <beidson@apple.com>

        <rdar://problem/10576732> and https://bugs.webkit.org/show_bug.cgi?id=74533
        REGRESSION(r102619): Reproducible crash closing window with video + poster image inside an object element

        Reviewed by Darin Adler.

        Test: media/crash-closing-page-with-media-as-plugin-fallback.html

        Switch HTMLPlugInImageElement from using document activation callbacks to using the ActiveDOMObject
        mechanism which will prevent the unnecessary (and crashy) work at Document teardown:
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
        (WebCore::HTMLPlugInImageElement::canSuspend):
        (WebCore::HTMLPlugInImageElement::suspend):
        (WebCore::HTMLPlugInImageElement::resume):
        * html/HTMLPlugInImageElement.h:

2011-12-14  Adrienne Walker  <enne@google.com>

        [chromium] Compositor needs to set texture filtering on canvas layers
        https://bugs.webkit.org/show_bug.cgi?id=74530

        Reviewed by James Robinson.

        * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
        (WebCore::CCCanvasLayerImpl::draw):

2011-12-14  Tony Chang  <tony@chromium.org>

        Remove added calls to CSSStyleSelector to gain back another 2% in page cyclers
        https://bugs.webkit.org/show_bug.cgi?id=74537

        Reviewed by Ojan Vafai.

        In r102234, calls to initForRegionStyling() were added in CSSStyleSelector.
        There's still a 2% perf regression in chromium page cyclers, so try removing
        these calls.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::styleForElement):
        (WebCore::CSSStyleSelector::pseudoStyleForElement):

2011-12-14  Jonathan Backer  <backer@chromium.org>

        [chromium] Plumb through flag for enabling partial swap
        https://bugs.webkit.org/show_bug.cgi?id=74513

        Reviewed by James Robinson.

        * page/Settings.h:
        (WebCore::Settings::setPartialSwapEnabled):
        (WebCore::Settings::partialSwapEnabled):
        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::initialize):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):

2011-12-14  Mike Reed  <reed@google.com>

        [skia] cache typeface in FontPlatformData
        https://bugs.webkit.org/show_bug.cgi?id=74415

        Reviewed by Stephen White.

        No new tests. Existing tests apply, this is just an optimization
        to avoid looking up the typeface on each drawText call.

        * platform/graphics/chromium/FontChromiumWin.cpp:
        (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
        (WebCore::Font::drawGlyphs):
        * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
        (WebCore::createTypefaceFromHFont):
        (WebCore::FontPlatformData::FontPlatformData):
        (WebCore::FontPlatformData::operator=):
        (WebCore::FontPlatformData::~FontPlatformData):
        * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
        (WebCore::FontPlatformData::typeface):
        (WebCore::FontPlatformData::lfQuality):
        (WebCore::FontPlatformData::hash):
        (WebCore::FontPlatformData::operator==):
        * platform/graphics/skia/SkiaFontWin.cpp:
        (WebCore::setupPaintForFont):
        (WebCore::paintSkiaText):
        * platform/graphics/skia/SkiaFontWin.h:

2011-12-14  Simon Fraser  <simon.fraser@apple.com>

        Make -webkit-filter animatable
        https://bugs.webkit.org/show_bug.cgi?id=68476

        Reviewed by Chris Marrin.
        
        Add -webkit-filter to the list of CSS properties that are animatable. Animate
        it like we do transforms, by looking for matching lists of filter functions.
        Each kind of filter operation has a blend() method that handles blending
        for that filter.

        Test: css3/filters/filter-animation.html

        * GNUmakefile.list.am: Add FilterOperation.cpp to the build.
        * Target.pri: Ditto
        * WebCore.gypi: Ditto
        * WebCore.vcproj/WebCore.vcproj: Ditto
        * WebCore.xcodeproj/project.pbxproj: Ditto
        * page/animation/AnimationBase.cpp:
        (WebCore::blendFunc): New blendFunc() for FilterOperations, which does per-filter blending.
        (WebCore::AnimationBase::ensurePropertyMap): Make PropertyWrapper for filters.
        (WebCore::AnimationBase::AnimationBase): Adjust initialization order.
        * page/animation/AnimationBase.h: Adjusted the member variable order to minimize padding.
        (WebCore::AnimationBase::filterFunctionListsMatch): Accessor for the flag.
        * page/animation/ImplicitAnimation.cpp:
        (WebCore::ImplicitAnimation::reset):
        (WebCore::ImplicitAnimation::validateTransformFunctionList): Adjust comment. The "is valid" terminology is confusing.
        (WebCore::ImplicitAnimation::checkForMatchingFilterFunctionLists): New method to check for matching lists
        of filter functions.
        * page/animation/ImplicitAnimation.h:
        * page/animation/KeyframeAnimation.cpp:
        (WebCore::KeyframeAnimation::KeyframeAnimation):
        (WebCore::KeyframeAnimation::checkForMatchingFilterFunctionLists): New method to check for matching lists
        of filter functions.
        * page/animation/KeyframeAnimation.h:
        * rendering/style/FilterOperation.cpp: Added.
        (WebCore::BasicColorMatrixFilterOperation::blend):
        (WebCore::BasicColorMatrixFilterOperation::passthroughAmount):
        (WebCore::BasicComponentTransferFilterOperation::blend):
        (WebCore::BasicComponentTransferFilterOperation::passthroughAmount): Different filters have
        different values for m_amount for the "passthrough" behavior. This method returns the appropriate value.
        (WebCore::GammaFilterOperation::blend):
        (WebCore::BlurFilterOperation::blend):
        (WebCore::DropShadowFilterOperation::blend):
        * rendering/style/FilterOperation.h:
        (WebCore::FilterOperation::blend):
        (WebCore::PassthroughFilterOperation::create): New "no-op" filter.
        (WebCore::PassthroughFilterOperation::operator==):
        (WebCore::PassthroughFilterOperation::PassthroughFilterOperation):
        * rendering/style/FilterOperations.cpp:
        (WebCore::FilterOperations::operationsMatch):
        * rendering/style/FilterOperations.h:

2011-12-14  Adam Klein  <adamk@chromium.org>

        Broaden support for mutation observation of attributes
        https://bugs.webkit.org/show_bug.cgi?id=74448

        Reviewed by Ryosuke Niwa.

        The previously-landed MutationObserver support for attributes was incomplete:
        it didn't support mutations related to Attr nodes (methods on Attrs,
        setAttributeNode/removeAttributeNode on Element, or methods on NamedNodeMap).

        This patch adds full support of mutation observation for all these cases,
        and adds test cases for all these situations.

        * dom/Attr.cpp:
        (WebCore::Attr::setValue): Enqueue a mutation record when Attr.value is set from JS.
        (WebCore::Attr::childrenChanged): Enqueue a mutation record when an Attr's value
        changes to due additions/removals of Text children.
        * dom/Element.cpp:
        (WebCore::Element::enqueueAttributesMutationRecordIfRequested): Previously a static,
        expose as part of Element's interface to allow it to be re-used by NamedNodeMap and Attr.
        (WebCore::Element::removeAttribute): Remove enqueue call now handled by NamedNodeMap.
        (WebCore::Element::setAttributeInternal): Fixup call of enqueueAttributesMutationRecordIfRequested.
        * dom/Element.h:
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::setNamedItem): Enqueue a mutation record when an attribute
        is changed via Element.attributes.setNamedItem from JS.
        (WebCore::NamedNodeMap::removeNamedItem): Enqueue a mutation record when an
        attribute is removed, either via Element.attributes.removeNamedItem or Element.removeAttribute.

2011-12-14  Raymond Toy  <rtoy@google.com>

        * platform/audio/Distance.h (WebCore): 

        Incorrect calculation for DistanceEffect linearGain
        https://bugs.webkit.org/show_bug.cgi?id=72871

        Reviewed by Kenneth Russell.

        Tests still need to be written for all distance models.  This
        does not add a new API and just corrects an implementation error. 

        * platform/audio/Distance.cpp:
        (WebCore::DistanceEffect::linearGain): Implement correct
        linearGain function.  (Fix proposed by davidgaleano@hotmail.com.)
        * platform/audio/Distance.h: Add link to Open AL specification. 
        

2011-12-14  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: consider disabling network tracking while running the CPU profile.
        https://bugs.webkit.org/show_bug.cgi?id=74221

        The WebCore instrumentation on the backend affects the performance of inspected page.
        As the result the CPU profiler's stats data are far away from the reality.
        Solution: the profiler code will temporary disable the resource tracking on backend.
        Side effect: the resource tree gets out of sinc because it uses Network Agent's notifications for updating the resource tree.
        Solution: NetworkManager will report about the changes of the resource tracking state and ResourcePanel will re-fetch the resources tree.

        Reviewed by Pavel Feldman.

        * inspector/front-end/NetworkManager.js:
        (WebInspector.NetworkManager.prototype.enableResourceTracking.networkAgentEnabled):
        (WebInspector.NetworkManager.prototype.enableResourceTracking):
        (WebInspector.NetworkManager.prototype.disableResourceTracking.networkAgentDisabled):
        (WebInspector.NetworkManager.prototype.disableResourceTracking):
        (WebInspector.NetworkManager.prototype.inflightResourceForURL):
        * inspector/front-end/ProfileView.js:
        (WebInspector.CPUProfileType.prototype.buttonClicked):
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.ResourceTreeModel):
        (WebInspector.ResourceTreeModel.prototype._onResourceTrackingEnabled):

2011-12-14  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Fix PlatformScreen::screenAvailableRect when there's no view widget
        https://bugs.webkit.org/show_bug.cgi?id=74520

        Reviewed by Martin Robinson.

        Use the default screen to get the available screen area instead of
        just returning an empty rectangle. This is useful for WebKit2,
        since there's no view widget in the web process.

        * platform/gtk/PlatformScreenGtk.cpp:
        (WebCore::screenAvailableRect):

2011-12-14  Eric Carlson  <eric.carlson@apple.com>

        Media url with fragment may not load
        https://bugs.webkit.org/show_bug.cgi?id=74443

        Reviewed by Darin Adler.

        Test: media/media-extension-with-fragment.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::loadResource): Pass the KURL to MediaPlayer, let it extract a
            String when it needs it.

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::load): Take a KURL, not a String. Look for the file extension in the 
            last path component so we don't examine fragments and/or queries.
        * platform/graphics/MediaPlayer.h:

2011-12-14  Jacky Jiang  <zhajiang@rim.com>

        [BlackBerry] Remove some duplicate entries in Source/WebCore/PlatformBlackBerry.cmake
        https://bugs.webkit.org/show_bug.cgi?id=74484

        Reviewed by Daniel Bates.

        Trivial fix, so no new tests.

        * PlatformBlackBerry.cmake:

2011-12-14  Anders Carlsson  <andersca@apple.com>

        Add back the callOnMainThread overload that takes a WTF::Function
        https://bugs.webkit.org/show_bug.cgi?id=74512

        Reviewed by Darin Adler.

        Explicitly qualify the Function enum flag, since MSVC2005 is too stupid to disambiguate
        the Function class template and the enum flag.

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::getOwnPropertySlot):
        (WebCore::JSDOMWindow::getOwnPropertyDescriptor):
        * bindings/js/JSHistoryCustom.cpp:
        (WebCore::JSHistory::getOwnPropertySlotDelegate):
        (WebCore::JSHistory::getOwnPropertyDescriptorDelegate):
        * bindings/js/JSLocationCustom.cpp:
        (WebCore::JSLocation::getOwnPropertySlotDelegate):
        (WebCore::JSLocation::getOwnPropertyDescriptorDelegate):

2011-12-14  Kenneth Russell  <kbr@google.com>

        Unreviewed, rolling out r102688.
        http://trac.webkit.org/changeset/102688
        https://bugs.webkit.org/show_bug.cgi?id=74220

        Under the hypothesis that it might be the cause of
        browser_tests and ui_tests crashes on Chromium canaries --
        will reland if not.

        * bindings/v8/V8Proxy.cpp:
        (WebCore::addMessageToConsole):
        (WebCore::logInfo):
        (WebCore::V8Proxy::reportUnsafeAccessTo):
        * bindings/v8/V8Proxy.h:
        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):

2011-12-14  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: DatabaseTableView should escape table name.
        https://bugs.webkit.org/show_bug.cgi?id=74503

        Reviewed by Pavel Feldman.

        Test: inspector/database-table-name-excaping.html

        * inspector/front-end/DatabaseTableView.js:
        (WebInspector.DatabaseTableView.prototype._escapeTableName):
        (WebInspector.DatabaseTableView.prototype.update):

2011-12-14  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] padTemplate leak in webkitwebaudiosrc
        https://bugs.webkit.org/show_bug.cgi?id=74495

        Reviewed by Martin Robinson.

        Use a GstPadTemplate smart pointer in webkit_web_audio_src_init to
        avoid a memory leak after the ghost pad creation.

        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
        (webkit_web_audio_src_init):
        * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
        (WTF::adoptGRef):
        (WTF::GstPadTemplate):
        * platform/graphics/gstreamer/GRefPtrGStreamer.h:

2011-12-14  Julien Chaffraix  <jchaffraix@webkit.org>

        Crash in RenderBox::paintBoxDecorations when documentElement has no renderer
        https://bugs.webkit.org/show_bug.cgi?id=64284

        Reviewed by Ryosuke Niwa.

        Test: fast/dynamic/crash-paint-no-documentElement-renderer.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintBackground): Check the documentElement's
        renderer before using it which matches what RenderView does.

2011-12-14  Tom Sepez  <tsepez@chromium.org>

        DocumentLoader should ref its mainResourceLoader.
        https://bugs.webkit.org/show_bug.cgi?id=74424

        Reviewed by Adam Barth.

        Tests: platform/chromium/http/tests/security/mixedContent/insecure-iframe-in-main-frame-allowed.html
               platform/chromium/http/tests/security/mixedContent/insecure-iframe-in-main-frame-blocked.html

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::startLoadingMainResource):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::loadNow):

2011-12-14  Stephen White  <senorblanco@chromium.org>

        CSS Filters should support GPU acceleration
        https://bugs.webkit.org/show_bug.cgi?id=74441

        Reviewed by Darin Adler.

        Will be covered by existing CSS filters tests, when run in GPU mode.

        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::prepare):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateOrRemoveFilterEffect):

2011-12-14  Brian Salomon  <bsalomon@google.com>

        [CHROMIUM/SKIA] Handle put[Un/Pre]multipliedImageData conversions in Skia rather than ImageBuffer
        https://bugs.webkit.org/show_bug.cgi?id=73953

        Reviewed by Stephen White.

        Tested by existing canvas2d layout tests.

        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::putImageData):
        (WebCore::ImageBuffer::putUnmultipliedImageData):
        (WebCore::ImageBuffer::putPremultipliedImageData):

2011-12-14  Mary Wu  <mary.wu@torchmobile.com.cn>

        Remove SharedBufferBlackBerry.cpp from WebCore/platform/blackberry
        https://bugs.webkit.org/show_bug.cgi?id=74488

        Reviewed by Rob Buis.

        Remove dead code, no new tests.

        * platform/blackberry/SharedBufferBlackBerry.cpp: Removed.

2011-12-14  Kentaro Hara  <haraken@chromium.org>

        Use [Supplemental] IDL in WebSocket
        https://bugs.webkit.org/show_bug.cgi?id=74160

        Reviewed by Adam Barth.

        By using the [Supplemental] IDL, this patch moves declarations of WebSocket
        attributes from DOMWindow.idl to websocket/DOMWindowWebSocket.idl,
        which helps make WebSocket a self-contained module.

        No new tests, no change in behavior.
        Confirm that http/tests/websocket/* pass.

        * WebCore.gypi: Added DOMWindowWebSocket.idl.
        * page/DOMWindow.idl: Added the [Supplemented] IDL to WebSocket-related attributes. This [Supplemented] IDL will be removed after all platforms support the [Supplemental] IDL (See bug 73394 for more details).
        * websockets/DOMWindowWebSocket.idl: Added. Used the [Supplemental=DOMWindow] IDL. The attributes in this IDL file are treated as if they are described in DOMWindow.idl.

2011-12-14  Pierre Rossi  <pierre.rossi@gmail.com>

        Unreviewed fix. Broke qt minimal release compilation.

        * platform/qt/RenderThemeQtMobile.cpp:

2011-12-14  Allan Sandfeld Jensen  <allan.jensen@nokia.com>

        Add different salt to different types of selectors. So the CSS fast
        path can tell the different between tags and class attributes with
        otherwise identical values.
        https://bugs.webkit.org/show_bug.cgi?id=74284

        Reviewed by Antti Koivisto.

        * css/SelectorChecker.cpp:
        (WebCore::collectElementIdentifierHashes):
        (WebCore::collectDescendantSelectorIdentifierHashes):
        * css/SelectorChecker.h:

2011-12-14  Pierre Rossi  <pierre.rossi@gmail.com>

        [Qt] Mobile theme could use a little refresh
        https://bugs.webkit.org/show_bug.cgi?id=74293

        The look and feel of the "mobile theme" we're
        using in QtWebKit dates back to the maemo 5 days.
        This is an attempt at making it look less out of
        place, and also support progress and range.

        Reviewed by Kenneth Rohde Christiansen.

        No new tests, this is still not the default theme
        for tests.

        * DerivedSources.pri:
        * css/mobileThemeQt.css: Added.
        (input[type="submit"], select):
        (input[type="submit"]:disabled, input[type="submit"]:disabled:active, select:disabled, input[type="text"]:disabled):
        (input[type="submit"]:active):
        * platform/qt/RenderThemeQt.cpp:
        (WebCore::RenderThemeQt::extraDefaultStyleSheet):
        (WebCore::StylePainter::StylePainter):
        (WebCore::StylePainter::init):
        (WebCore::StylePainter::~StylePainter):
        * platform/qt/RenderThemeQt.h:
        * platform/qt/RenderThemeQtMobile.cpp:
        (WebCore::drawRectangularControlBackground):
        (WebCore::shrinkRectToSquare):
        (WebCore::StylePainterMobile::StylePainterMobile):
        (WebCore::StylePainterMobile::~StylePainterMobile):
        (WebCore::StylePainterMobile::drawCheckableBackground):
        (WebCore::StylePainterMobile::sizeForPainterScale):
        (WebCore::StylePainterMobile::drawChecker):
        (WebCore::StylePainterMobile::findCheckBox):
        (WebCore::StylePainterMobile::drawRadio):
        (WebCore::StylePainterMobile::findRadio):
        (WebCore::StylePainterMobile::drawMultipleComboButton):
        (WebCore::StylePainterMobile::drawSimpleComboButton):
        (WebCore::StylePainterMobile::getButtonImageSize):
        (WebCore::StylePainterMobile::findComboButton):
        (WebCore::StylePainterMobile::drawLineEdit):
        (WebCore::StylePainterMobile::drawCheckBox):
        (WebCore::StylePainterMobile::drawRadioButton):
        (WebCore::StylePainterMobile::drawPushButton):
        (WebCore::StylePainterMobile::drawComboBox):
        (WebCore::StylePainterMobile::drawProgress):
        (WebCore::StylePainterMobile::drawSliderThumb):
        (WebCore::RenderThemeQtMobile::paintButton):
        (WebCore::RenderThemeQtMobile::paintTextField):
        (WebCore::RenderThemeQtMobile::setPopupPadding):
        (WebCore::RenderThemeQtMobile::paintMenuList):
        (WebCore::RenderThemeQtMobile::paintMenuListButton):
        (WebCore::RenderThemeQtMobile::animationDurationForProgressBar):
        (WebCore::RenderThemeQtMobile::paintProgressBar):
        (WebCore::RenderThemeQtMobile::paintSliderTrack):
        (WebCore::RenderThemeQtMobile::paintSliderThumb):
        (WebCore::RenderThemeQtMobile::adjustSliderThumbSize):
        * platform/qt/RenderThemeQtMobile.h:

2011-12-14  Rakesh KN  <rakesh.kn@motorola.com>

        [Non-Mac] Change event should be fired when changing option by using keyboard.
        https://bugs.webkit.org/show_bug.cgi?id=74384

        Reviewed by Kent Tamura.

        Fire onchange event when option is changed using up/down/right/left/pageup/pagedown/home/end keys.

        Test: fast/forms/select/menulist-onchange-fired-with-key-up-down.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
        Setting the DispatchChangeEvent selection option flag when the option is selected using
        up/down/right/left/pageup/pagedown/home/end keys.

2011-12-13  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: TreeOutline's is broken when li elements have padding-left different from 14px.
        https://bugs.webkit.org/show_bug.cgi?id=74445

        Reviewed by Pavel Feldman.

        * inspector/front-end/treeoutline.js:
        (TreeElement.prototype.isEventWithinDisclosureTriangle):

2011-12-13  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [Regression] Scripts panel debug sidebar toolbar should not be scrolled out of the screen.
        https://bugs.webkit.org/show_bug.cgi?id=74447

        Reviewed by Pavel Feldman.

        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype.wasShown):
        * inspector/front-end/scriptsPanel.css:
        (#scripts-debug-toolbar):
        (#scripts-debug-sidebar-contents):

2011-12-14  Alexander Færøy  <alexander.faeroy@nokia.com>

        [Qt] DeviceOrientationClientMockQt should be removed in favor of DeviceOrientationClientMock
        https://bugs.webkit.org/show_bug.cgi?id=74417

        Reviewed by Simon Hausmann.

        Based on original patch by Kenneth Christiansen.

        Already covered by current tests.

        * dom/DeviceOrientationController.h:
        (WebCore::DeviceOrientationController::client):

2011-12-14  Jacky Jiang  <zhajiang@rim.com>

        [BlackBerry] Switch to libjpeg for decoding
        https://bugs.webkit.org/show_bug.cgi?id=74475

        Reviewed by Daniel Bates.

        Switch to cross platform JPEG image decoder for decoding as this keeps
        us inline with other ports and less to maintain.

        * PlatformBlackBerry.cmake:

2011-12-03  Philippe Normand  <pnormand@igalia.com>

        [GTK] Bad text rendering since r101343
        https://bugs.webkit.org/show_bug.cgi?id=73744

        Reviewed by Martin Robinson.

        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
        (WebCore::setCairoFontOptionsFromFontConfigPattern): Keep Cairo
        hint metrics unchanged for better visual font rendering results.

2011-12-13  Hajime Morrita  <morrita@chromium.org>

        Unreviewed attempt for fixing windows build.

        - Included <wtf/MathExtras.h> which defined portable version of lround().
        - Add some static_cast<> to suppress warnings.

        * platform/animation/AnimationUtilities.h:
        (WebCore::blend):

2011-12-13  Wei Charles  <charles.wei@torchmobile.com.cn>

        [BlackBerry] Add the new plugin files into the build system.
        https://bugs.webkit.org/show_bug.cgi?id=74483

        Reviewed by Daniel Bates.

        No new tests, just add new files to the build system.

        * PlatformBlackBerry.cmake:

2011-12-13  Yosifumi Inoue  <yosin@chromium.org>

        [Forms] Default selection of select(menulist) should not be disabled
        https://bugs.webkit.org/show_bug.cgi?id=74270

        Reviewed by Kent Tamura.

        This patch changes default selection of select(menulist) element to
          1. Selected option element. If there are multiple options which have
             selected state, we pick the largest index option up. (same as current)
          2. Non-disabled option element (new behavior)
          3. The first option if all options are disabled. (new behavior)

        Tests: fast/forms/select/menulist-disabled-option-expected.html
               fast/forms/select/menulist-disabled-option.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::recalcListItems): Implement new logic for selection.

2011-12-13  Simon Fraser  <simon.fraser@apple.com>

        Share blend progress code
        https://bugs.webkit.org/show_bug.cgi?id=74464

        Reviewed by Dean Jackson.
        
        Lots of places in the code had copies of the animation interpolation
        logic "from + (to - from) * progress", in various forms.
        
        Coalesce all these into calls to a few new inline functions in a new
        AnimationUtilities.h header. Color and Length get their own blend fuctions
        in their respective headers.

        Covered by existing tests.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSGradientValue.cpp:
        * page/animation/AnimationBase.cpp:
        (WebCore::blendFunc):
        * platform/Length.h:
        (WebCore::Length::blend):
        * platform/animation/AnimationUtilities.h: Added.
        (WebCore::blend):
        * platform/graphics/Color.h:
        (WebCore::blend):
        * platform/graphics/transforms/PerspectiveTransformOperation.cpp:
        (WebCore::PerspectiveTransformOperation::blend):
        * platform/graphics/transforms/RotateTransformOperation.cpp:
        (WebCore::RotateTransformOperation::blend):
        * platform/graphics/transforms/ScaleTransformOperation.cpp:
        (WebCore::ScaleTransformOperation::blend):
        * platform/graphics/transforms/SkewTransformOperation.cpp:
        (WebCore::SkewTransformOperation::blend):
        * platform/graphics/transforms/TranslateTransformOperation.cpp:
        (WebCore::TranslateTransformOperation::blend):
        * svg/SVGLength.h:
        (WebCore::SVGLength::blend):
        * svg/SVGPathBlender.cpp:
        (WebCore::blendFloatPoint):
        (WebCore::SVGPathBlender::blendAnimatedDimensonalFloat):
        (WebCore::SVGPathBlender::blendArcToSegment):

2011-12-13  Mary Wu  <mary.wu@torchmobile.com.cn>

        Upstream 3 files into WebCore/platform/blackberry
        ClipboardBlackBerry.cpp/h, PasteboardBlackBerry.cpp
        https://bugs.webkit.org/show_bug.cgi?id=74381

        Reviewed by Rob Buis.

        Main contributor:
        Mike Fenton <mifenton@rim.com>

        Initial upstream, no new tests.

        * platform/blackberry/ClipboardBlackBerry.cpp: Added.
        * platform/blackberry/ClipboardBlackBerry.h: Added.
        * platform/blackberry/PasteboardBlackBerry.cpp: Added.

2011-12-13  James Robinson  <jamesr@chromium.org>

        Unreviewed, rolling out r102726.
        http://trac.webkit.org/changeset/102726
        https://bugs.webkit.org/show_bug.cgi?id=74154

        Does not compile on clang

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::UpdatableTile::UpdatableTile):
        (WebCore::TiledLayerChromium::createTile):
        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
        (WebCore::CCLayerTilingData::addTile):
        (WebCore::CCLayerTilingData::takeTile):
        (WebCore::CCLayerTilingData::tileAt):
        * platform/graphics/chromium/cc/CCLayerTilingData.h:
        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
        (WebCore::DrawableTile::DrawableTile):
        (WebCore::CCTiledLayerImpl::createTile):

2011-12-13  Hajime Morrita  <morrita@chromium.org>

        Unreviewed, rolling out r102732.
        http://trac.webkit.org/changeset/102732

        The last fix makes no sense...

        * platform/graphics/chromium/cc/CCLayerTilingData.h:

2011-12-13  Hajime Morrita  <morrita@chromium.org>

        HTML details summary not working with form controls
        https://bugs.webkit.org/show_bug.cgi?id=74398

        Reviewed by Kent Tamura.

        Allowed HTMLSummaryElement to skip the toggle logic if the event
        target is a form control.

        Test: fast/html/details-click-controls.html

        * html/HTMLSummaryElement.cpp:
        (WebCore::isClickableControl):
        (WebCore::HTMLSummaryElement::defaultEventHandler):

2011-12-13  James Wei <james.wei@intel.com> 

        Optimize to not use pow() in the inner loop in AudioParamTimeline
        https://bugs.webkit.org/show_bug.cgi?id=73530

        Reviewed by Kenneth Russell.

        No new tests.

        * webaudio/AudioParamTimeline.cpp:
        (WebCore:AudioParamTimeline:valuesForTimeRangeImpl):

2011-12-13  Hajime Morrita  <morrita@chromium.org>

        Unreviewed Chromium-Mac build fix trial.

        * platform/graphics/chromium/cc/CCLayerTilingData.h:

2011-12-13  David Reveman  <reveman@chromium.org>

        [Chromium] Initialize Settings::m_perTileDrawingEnabled properly.
        https://bugs.webkit.org/show_bug.cgi?id=74476

        Reviewed by James Robinson.

        Add m_perTileDrawingEnabled(false) to WebCore::Settings initialize list.

        No new tests.

        * page/Settings.cpp:
        (WebCore::Settings::Settings):

2011-12-13  Anders Carlsson  <andersca@apple.com>

        Add a very bare-bones implementation of bind and Function to WTF
        https://bugs.webkit.org/show_bug.cgi?id=74462

        Reviewed by Sam Weinig.

        Add a forwarding header for Functional.h.

        * ForwardingHeaders/wtf/Functional.h: Added.

2011-12-13  Adrienne Walker  <enne@google.com>

        [chromium] Use HashMap<..., OwnPtr<Tile>> for compositor tilemap
        https://bugs.webkit.org/show_bug.cgi?id=74154

        Reviewed by James Robinson.

        After r102410 landed, it's now possible to properly use an OwnPtr to
        store tiles rather than hackily use a RefPtr.

        Covered by the compositing/ layout tests.

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::UpdatableTile::create):
        (WebCore::UpdatableTile::UpdatableTile):
        (WebCore::TiledLayerChromium::createTile):
        * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
        (WebCore::CCLayerTilingData::addTile):
        (WebCore::CCLayerTilingData::takeTile):
        (WebCore::CCLayerTilingData::tileAt):
        * platform/graphics/chromium/cc/CCLayerTilingData.h:
        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
        (WebCore::DrawableTile::create):
        (WebCore::DrawableTile::DrawableTile):
        (WebCore::CCTiledLayerImpl::createTile):

2011-12-13  Dmitry Lomov  <dslomov@google.com>

        https://bugs.webkit.org/show_bug.cgi?id=73691
        [JSC] Implement correct order of window.postMessage arguments.
        This change supports a new signature of windowPostMessage:
          postMessage(message, targetOrigin[, transferrables])
        as well as the legacy webkit-proprietary:
          postMessage(message, [transferrables,] targetOrigin)
        The latter is only supported for cases when targetOrigin is a String.

        Reviewed by David Levin.

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::handlePostMessage):
        * page/DOMWindow.idl:

2011-12-13  Rafael Weinstein  <rafaelw@chromium.org>

        [MutationObservers] Avoid allocations if no observers are present
        https://bugs.webkit.org/show_bug.cgi?id=74423

        Reviewed by Ojan Vafai.

        This patch adds Node::mayHaveMutationObserversOfType which can be used to check
        if there are any observers at all which could receive a give type of mutation.
        MutationObserverInterestGroup uses this to possibly exit early (returning
        null) if no observers are present.

        No tests needed. This patch is just a refactor.

        * css/CSSMutableStyleDeclaration.cpp:
        * dom/CharacterData.cpp:
        (WebCore::CharacterData::dispatchModifiedEvent):
        * dom/ChildListMutationScope.cpp:
        (WebCore::ChildListMutationAccumulator::MutationAccumulationRouter::incrementScopingLevel):
        * dom/Element.cpp:
        (WebCore::enqueueAttributesMutationRecord):
        * dom/Node.cpp:
        (WebCore::Node::mayHaveMutationObserversOfType):
        * dom/Node.h:
        * dom/WebKitMutationObserver.cpp:
        (WebCore::MutationObserverInterestGroup::createIfNeeded):
        (WebCore::MutationObserverInterestGroup::createForChildListMutation):
        (WebCore::MutationObserverInterestGroup::createForCharacterDataMutation):
        (WebCore::MutationObserverInterestGroup::createForAttributesMutation):
        (WebCore::MutationObserverInterestGroup::MutationObserverInterestGroup):
        (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
        * dom/WebKitMutationObserver.h:

2011-12-13  Robin Dunn  <robin@alldunn.com>

        Don't make the bitmap transparent when using theme drawing
        calls that don't support transparent bitmaps.
        https://bugs.webkit.org/show_bug.cgi?id=74319

        Reviewed by Kevin Ollivier.

        * platform/wx/LocalDC.h:
        (WebCore::LocalDC::LocalDC):
        * platform/wx/RenderThemeWx.cpp:
        (WebCore::RenderThemeWx::paintButton):

2011-12-13  Tony Chang  <tony@chromium.org>

        Inline all of initForRegionStyling except for the rarely used part for non-null regions.
        https://bugs.webkit.org/show_bug.cgi?id=74435

        Reviewed by Andreas Kling.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::initForRegionStyling): Inline setting of m_regionForStyling
        (WebCore::CSSStyleSelector::initRegionRules): Move code that only
        applies to CSSRegions into non-inlined code.
        * css/CSSStyleSelector.h:

2011-12-13  James Simonsen  <simonjam@chromium.org>

        Unreviewed, Chromium Mac build fix.

        * page/PerformanceTiming.h:

2011-12-13  Adam Klein  <adamk@chromium.org>

        Update variable names in NamedNodeMap methods to match WebKit style
        https://bugs.webkit.org/show_bug.cgi?id=74437

        Reviewed by Ojan Vafai.

        While reading these methods in preparation for a refactor, I found
        them hard to understand due to short or confusing variable names.
        I think the new names are much clearer, and match WebKit style.

        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::setNamedItem):
        (WebCore::NamedNodeMap::removeNamedItem):

2011-12-13  Xingnan Wang  <xingnan.wang@intel.com>

        Implement a function of vector multiply with SSE2 optimization in VectorMath.cpp.
        https://bugs.webkit.org/show_bug.cgi?id=74048

        Reviewed by Benjamin Poulain.

        The vmul is a function for an element-by-element multiply of two float vectors and we 
        get about 3.4x performance improvement with SSE2 optimization compared with the common 
        multiply.

        Use vmul in AudioBus::copyWithSampleAccurateGainValuesFrom().

        * platform/audio/AudioBus.cpp:
        (WebCore::AudioBus::copyWithSampleAccurateGainValuesFrom):
        * platform/audio/VectorMath.cpp:
        (WebCore::VectorMath::vmul):
        * platform/audio/VectorMath.h:

2011-12-13  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [Regression] ResourceHeadersView sections should be expanded by default.
        https://bugs.webkit.org/show_bug.cgi?id=74434

        Reviewed by Pavel Feldman.

        * inspector/front-end/treeoutline.js:

2011-12-13  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Network item view does not correctly decode "+" in request parameters.
        https://bugs.webkit.org/show_bug.cgi?id=74422

        Reviewed by Pavel Feldman.

        Test: http/tests/inspector/network/request-parameters-decoding.html

        * inspector/front-end/ResourceHeadersView.js:
        (WebInspector.ResourceHeadersView.prototype._formatParameter):
        (WebInspector.ResourceHeadersView.prototype._refreshParms):

2011-12-13  Alok Priyadarshi  <alokp@chromium.org>

        [chromium] compositing/masks layout tests fail with accelerated drawing
        https://bugs.webkit.org/show_bug.cgi?id=72760

        Reviewed by Stephen White.

        Accelerated drawing path used to render bottom-up upright textures, which was opposite of what the software path rendered.
        The textures produced by the accelerated path was flipped along Y in the shader to make it upside down as expected by the compositor.
        This strategy does not work in case of masks which do not go through a shader and hence do not get flipped,
        which results in a case where texture in the render surface is top-down, while that in the mask is bottom-up.
        This patch makes accelerated drawing path render textures in the same orientation as the software path.
        LayerTextureUpdater::Orientation was added to support the difference in texture orientation between software and accelerated paths.
        Now that both paths produce textures in the same orientation, there is no need for it.

        No new tests needed. Covered by existing compositing tests.

        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h:
        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h:
        * platform/graphics/chromium/ImageLayerChromium.cpp:
        * platform/graphics/chromium/LayerTextureUpdater.h:
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::TiledLayerChromium):
        (WebCore::TiledLayerChromium::setLayerTreeHost):
        (WebCore::TiledLayerChromium::pushPropertiesTo):
        * platform/graphics/chromium/TiledLayerChromium.h:
        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
        (WebCore::CCTiledLayerImpl::drawTiles):
        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
        (WebCore::CCTiledLayerImpl::setSkipsDraw):

2011-12-09  Zhenyao Mo  <zmo@google.com>

        Implement GLES2 CheckFramebufferStatus() behavior
        https://bugs.webkit.org/show_bug.cgi?id=74228

        Reviewed by Kenneth Russell.

        * html/canvas/WebGLFramebuffer.cpp:
        (WebCore::WebGLFramebuffer::getColorBufferWidth): Add ColorBuffer to the function name - this is more accurate.
        (WebCore::WebGLFramebuffer::getColorBufferHeight): Ditto.
        (WebCore::WebGLFramebuffer::checkStatus): Implement full semantics of GLES2 glCheckFramebufferStatus().
        (WebCore::WebGLFramebuffer::onAccess): Call checkStatus().
        * html/canvas/WebGLFramebuffer.h:
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::checkFramebufferStatus): Call checkStatus().
        (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter): No longer check framebuffer status.
        (WebCore::WebGLRenderingContext::getBoundFramebufferWidth): Call getColorBufferWidth.
        (WebCore::WebGLRenderingContext::getBoundFramebufferHeight): Call getColorBufferHeight.

2011-12-13  James Simonsen  <simonjam@chromium.org>

        [Navigation Timing] Use monotonicallyIncreasingTime() instead of currentTime()
        https://bugs.webkit.org/show_bug.cgi?id=58354

        Reviewed by Pavel Feldman.

        No new tests. Relies on existing webtiming-* tests.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/Document.cpp: Use monotonic times.
        (WebCore::Document::setReadyState):
        (WebCore::Document::finishedParsing):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::didFinishLoadingImpl): Convert monotonicFinishTime to wall time if needed.
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::buildObjectForTiming): Convert monotonic requestTime to wall time.
        (WebCore::buildObjectForResourceResponse): Plumbing for above.
        (WebCore::buildObjectForCachedResource): Ditto.
        (WebCore::InspectorResourceAgent::willSendRequest): Ditto.
        (WebCore::InspectorResourceAgent::didReceiveResponse): Ditto.
        (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache): Ditto.
        * loader/DocumentLoadTiming.cpp: Added.
        (WebCore::DocumentLoadTiming::DocumentLoadTiming):
        (WebCore::DocumentLoadTiming::setNavigationStart): Determine reference time and root reference time.
        (WebCore::DocumentLoadTiming::addRedirect): Moved logic from MainResourceLoader.
        (WebCore::DocumentLoadTiming::convertMonotonicTimeToDocumentTime): Helper to compute wall time from monotonic time.
        * loader/DocumentLoadTiming.h: Turned into class. Made times monotonic.
        (WebCore::DocumentLoadTiming::setUnloadEventStart):
        (WebCore::DocumentLoadTiming::setUnloadEventEnd):
        (WebCore::DocumentLoadTiming::setRedirectStart):
        (WebCore::DocumentLoadTiming::setRedirectEnd):
        (WebCore::DocumentLoadTiming::setFetchStart):
        (WebCore::DocumentLoadTiming::setResponseEnd):
        (WebCore::DocumentLoadTiming::setLoadEventStart):
        (WebCore::DocumentLoadTiming::setLoadEventEnd):
        (WebCore::DocumentLoadTiming::setHasSameOriginAsPreviousDocument):
        (WebCore::DocumentLoadTiming::navigationStart):
        (WebCore::DocumentLoadTiming::unloadEventStart):
        (WebCore::DocumentLoadTiming::unloadEventEnd):
        (WebCore::DocumentLoadTiming::redirectStart):
        (WebCore::DocumentLoadTiming::redirectEnd):
        (WebCore::DocumentLoadTiming::redirectCount):
        (WebCore::DocumentLoadTiming::fetchStart):
        (WebCore::DocumentLoadTiming::responseEnd):
        (WebCore::DocumentLoadTiming::loadEventStart):
        (WebCore::DocumentLoadTiming::loadEventEnd):
        (WebCore::DocumentLoadTiming::hasCrossOriginRedirect):
        (WebCore::DocumentLoadTiming::hasSameOriginAsPreviousDocument):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::stopLoading):
        (WebCore::FrameLoader::commitProvisionalLoad):
        (WebCore::FrameLoader::continueLoadAfterWillSubmitForm):
        (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::continueAfterNavigationPolicy):
        (WebCore::MainResourceLoader::willSendRequest): Moved logic to DocumentLoadTiming.
        (WebCore::MainResourceLoader::didReceiveData): Use monotonic time.
        (WebCore::MainResourceLoader::didFinishLoading): Ditto.
        (WebCore::MainResourceLoader::load):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::dispatchLoadEvent):
        * page/DOMWindow.h: Removed dispatchTimedEvent. It doesn't really help in the new model.
        * page/PerformanceNavigation.cpp:
        (WebCore::PerformanceNavigation::redirectCount):
        * page/PerformanceTiming.cpp: Removed skew correction code. This should never happen now.
        (WebCore::PerformanceTiming::navigationStart):
        (WebCore::PerformanceTiming::unloadEventStart):
        (WebCore::PerformanceTiming::unloadEventEnd):
        (WebCore::PerformanceTiming::redirectStart):
        (WebCore::PerformanceTiming::redirectEnd):
        (WebCore::PerformanceTiming::fetchStart):
        (WebCore::PerformanceTiming::responseEnd):
        (WebCore::PerformanceTiming::domLoading):
        (WebCore::PerformanceTiming::domInteractive):
        (WebCore::PerformanceTiming::domContentLoadedEventStart):
        (WebCore::PerformanceTiming::domContentLoadedEventEnd):
        (WebCore::PerformanceTiming::domComplete):
        (WebCore::PerformanceTiming::loadEventStart):
        (WebCore::PerformanceTiming::loadEventEnd):
        (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute): Used for ResourceLoadTiming.
        (WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds): Used for DocumentTiming and DocumentLoadTiming.
        * page/PerformanceTiming.h:
        * platform/network/ResourceLoadTiming.cpp:
        (WebCore::ResourceLoadTiming::convertResourceLoadTimeToDocumentTime):
        * platform/network/ResourceLoadTiming.h: Added helper function to convert to wall times. Added instructions for use.

2011-12-13  Adam Klein  <adamk@chromium.org>

        Reduce code duplication in Element::setAttribute methods
        https://bugs.webkit.org/show_bug.cgi?id=74425

        Reviewed by Ryosuke Niwa.

        Two overloads of Element::setAttribute share almost all their code,
        including tricky logic around updating the appropriate Attribute and
        Attr objects and notifying the Inspector and MutationObservers.

        This patch puts the common logic in a new setAttributeInternal method
        which is called by the other two.

        No new tests, refactoring only.

        * dom/Element.cpp:
        (WebCore::Element::setAttribute):
        (WebCore::Element::setAttributeInternal):
        * dom/Element.h:

2011-12-13  Brady Eidson  <beidson@apple.com>

        <http://webkit.org/b/74420> Disable deprecation warnings around more code where we 
        cannot easily switch away from the deprecated APIs.

        Reviewed by Mark Rowe.

        * bindings/objc/DOMInternal.mm:
        * bridge/objc/objc_instance.mm:

2011-12-12  Robert Hogan  <robert@webkit.org>

        CSS 2.1 failure: eof-002.htm fails
        https://bugs.webkit.org/show_bug.cgi?id=74309

        Reviewed by Dean Jackson.

        Test: css2.1/20110323/eof-002-expected.html

        * css/CSSGrammar.y: Treat EOF during a function expression with an open parenthesis as a close parenthesis.

2011-12-13  Adam Klein  <adamk@chromium.org>

        V8Proxy cleanup: replace custom logging methods with standard WebCore calls
        https://bugs.webkit.org/show_bug.cgi?id=74220

        Reviewed by Adam Barth.

        * bindings/v8/V8Proxy.cpp:
        (WebCore::V8Proxy::reportUnsafeAccessTo):
        * bindings/v8/V8Proxy.h:
        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):

2011-12-13  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Get rid of layering violations in includes

        WebKit/qt/API and WebKit/qt/WebCoreSupport should not be included
        in the webcore.prf, but rather in each target that specificly needs
        headers in these location. We used to include them directly in webcore
        since we had layering violations between WebCore and WebKit, but now
        that they are gone there's no reason to do that.

        Reviewed by Simon Hausmann.

        * bridge/qt/qt_instance.cpp:
        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        * platform/graphics/qt/ImageQt.cpp:
        * platform/network/qt/QNetworkReplyHandler.cpp:
        * platform/network/qt/ResourceHandleQt.cpp:
        * platform/qt/CookieJarQt.cpp:
        * platform/qt/RenderThemeQStyle.cpp:
        * platform/qt/RenderThemeQt.cpp:

2011-12-13  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Add scripts navigator sidebar to scripts panel.
        https://bugs.webkit.org/show_bug.cgi?id=73086

        Reviewed by Pavel Feldman.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.sh:
        * inspector/front-end/Images/domain.png: Added.
        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame.prototype.suggestedFileName):
        * inspector/front-end/ScriptsNavigator.js: Added.
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded.get if):
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
        (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect):
        (WebInspector.ScriptsPanel.prototype._reset):
        (WebInspector.ScriptsPanel.prototype._removeSourceFrame):
        (WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced):
        (WebInspector.ScriptsPanel.prototype._sourceFrameLoaded):
        (WebInspector.ScriptsPanel.prototype._updateExecutionLine):
        (WebInspector.ScriptsPanel.prototype._scriptSelectedInNavigator):
        (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
        * inspector/front-end/Settings.js:
        * inspector/front-end/TabbedPane.js:
        (WebInspector.TabbedPane.prototype.appendTab):
        (WebInspector.TabbedPane.prototype.selectTab):
        (WebInspector.TabbedPane.prototype.highlightLine):
        (WebInspector.TabbedPane.prototype.elementsToRestoreScrollPositionsFor):
        * inspector/front-end/UISourceCode.js:
        (WebInspector.UISourceCode.prototype.get domain):
        (WebInspector.UISourceCode.prototype.get folderName):
        (WebInspector.UISourceCode.prototype.get displayName):
        (WebInspector.UISourceCode.prototype._parseURL):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.css:
        (.tabbed-pane):
        (.tabbed-pane-content):
        * inspector/front-end/inspector.html:
        * inspector/front-end/networkPanel.css:
        * inspector/front-end/scriptsPanel.css:
        (#scripts-navigator-resizer-widget):
        (.scripts-navigator-domain-tree-item .icon):
        (.scripts-navigator-folder-tree-item .icon):
        (.scripts-navigator-script-tree-item .icon):
        (.scripts.panel .navigator):
        (#scripts-navigator-tabbed-pane .tabbed-pane-header):
        (#scripts-navigator-tabbed-pane .tabbed-pane-content):
        (.scripts.panel .navigator li):
        (.scripts.panel .navigator :focus li.selected):
        (.scripts.panel .navigator li.selected .selection):
        (.scripts.panel .navigator :focus li.selected .selection):
        (.scripts.panel .navigator .icon):
        (.scripts.panel .base-navigator-tree-element-title):
        * inspector/front-end/treeoutline.js:
        (TreeOutline):
        (TreeOutline.prototype.appendChild):

2011-12-12  Andreas Kling  <kling@webkit.org>

        CollectionCache: Remove unused copy constructor and make it noncopyable.
        <http://webkit.org/b/74378>

        Reviewed by Simon Hausmann.

        * html/CollectionCache.cpp:
        * html/CollectionCache.h:

2011-12-13  Jarred Nicholls  <jarred@sencha.com>

        XHR should use m_responseTypeCode internally to be consistent with WebKit coding style
        https://bugs.webkit.org/show_bug.cgi?id=74330

        Reviewed by Alexey Proskuryakov.

        No new tests needed, no behavioral changes.

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::responseText):
        (WebCore::XMLHttpRequest::responseXML):
        (WebCore::XMLHttpRequest::responseBlob):
        (WebCore::XMLHttpRequest::didReceiveData):
        * xml/XMLHttpRequest.h:
        (WebCore::XMLHttpRequest::asBlob):

2011-12-13  Kentaro Hara  <haraken@chromium.org>

        Use the [Supplemental] IDL for webaudio attributes in Chromium
        https://bugs.webkit.org/show_bug.cgi?id=73394

        Reviewed by Adam Barth.

        - Overview: Using the [Supplemental] IDL, this patch moves the attribute
        declarations of webaudio from DOMWindow.idl into a new IDL file
        webaudio/DOMWindowWebAudio.idl, which helps make webaudio a self-contained
        feature (aka a module).

        - This patch changes the build flow of WebCore.gyp as follows:

            Previous build flow:
                foreach $idl (all IDL files) {
                    generate-bindings.pl depends on $idl;
                    generate-bindings.pl reads $idl;
                    generate-bindings.pl generates .h and .cpp files for $idl;
                }

            New build flow (See the discussions in bug 72138 for more details):
                resolve-supplemental.pl depends on all IDL files;
                resolve-supplemental.pl reads all IDL files;
                resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
                resolve-supplemental.pl outputs supplemental_dependency.tmp;
                foreach $idl (all IDL files) {
                    generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
                    generate-bindings.pl reads $idl;
                    generate-bindings.pl reads supplemental_dependency.tmp;
                    generate-bindings.pl generates .h and .cpp files for $idl, including all attributes in IDL files whilementing $idl;
                }

        - This patch introduces a temporary IDL, [Supplemented]. The [Supplemented] IDL
        will be removed after build scripts for all platforms support the [Supplemental] IDL.
        The motivation for the [Supplemented] IDL is as follows:

        In order to support the [Supplemental] IDL, we need to
        (1) run resolve-supplemental.pl and generate supplemental_dependency.tmp
        (2) and run generate-bindings.pl with the supplemental_dependency.tmp.

        This build flow requires a change on the following build scripts,
        but changing all the build scripts all at once without any regression is too difficult:

            - DerivedSources.make
            - DerivedSources.pri
            - GNUmakefile.am
            - PlatformBlackBerry.cmake
            - UseJSC.cmake
            - UseV8.cmake
            - WebCore.vcproj/MigrateScripts
            - WebCore.vcproj/WebCore.vcproj
            - bindings/gobject/GNUmakefile.am
            - WebCore.gyp/WebCore.gyp

        Thus, we are planning to change the build scripts one by one, which implies that
        we need to allow the temporary state in which some build scripts support [Supplemental] IDL
        but others do not. To accomplish this, we introduce a temporary IDL, [Supplemented].
        The [Supplemented] IDL on an attribute means that the attribute is marked with [Supplemental]
        in another IDL file somewhere, like this:

            DOMWindowWebAudio.idl:
                interface [
                    Supplemental=DOMWindow
                ] DOMWindowWebAudio {
                    attribute attr1;
                    attribute attr2;
                };

            DOMWindow.idl:
                interface [
                ] DOMWindow {
                    attribute [Supplemented] attr1; // This line will be removed after all build scripts support the [Su IDL
                    attribute [Supplemented] attr2; // This line will be removed after all build scripts support the [Su IDL.
                    attribute attr3;
                    attribute attr4;
                };

        Assuming these IDL files, this patch implements the following logic in generate-bindings.pl:

            - If a given build script supports the [Supplemental] IDL,
            generate-bindings.pl ignores all attributes with the [Supplemented] IDL.
            - Otherwise, generate-bindings.pl treats all attributes with the [Supplemented] IDL
            as normal attributes and instead ignores all attributes with the [Supplemental] IDL
            (i.e. generate-bindings.pl generates nothing from the IDL file with the [Supplemental] IDL).

        Tests: webaudio/*

        * WebCore.gyp/WebCore.gyp: Describes the build flow that I described above.
        * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
        (main): Reads the IDL file names from the input file (i.e. supplemental_dependency.tmp),
        which are described at the first column of each line in the input file.
        If the file name is a "/cygdrive/c/..."-style path, it is converted to a "C:\cygwin\..."-style
        path by the cygpath command.
        * WebCore.gypi: Added DOMWindowWebAudio.idl.
        * bindings/scripts/generate-bindings.pl: As a temporary solution, if the platform does not
        support the [Supplemental] IDL, the perl script ignores the [Supplemental] IDL and instead
        uses the [Supplemented] IDL. Otherwise, the perl script ignores the [Supplemented] IDL and
        instead uses the [Supplemental] IDL.
        Added the --additionalIdlFilesList option to specify the IDL files that are not listed in
        supplemental-dependency.tmp but should generate .h and .cpp files.
        * page/DOMWindow.idl: Added the [Supplemented] IDL to webaudio-related attributes.
        As I described above, the [Supplemented] IDL will be removed after all platforms support
        the [Supplemental] IDL.
        * webaudio/DOMWindowWebAudio.idl: Added. Describes the [Supplemental=DOMWindow] IDL.
        The attributes in this IDL file should be treated as if they are written in DOMWindow.idl.

2011-12-13  Yosifumi Inoue  <yosin@chromium.org>

        RenderTheme should have a function for disabled text color adjustment
        https://bugs.webkit.org/show_bug.cgi?id=74143

        Change disabledTextColor to private method.

        Reviewed by Kent Tamura.

        No new tests / existing tests cover this change.

        * rendering/RenderThemeChromiumMac.h: Change disabledTextColor to private.
        * rendering/RenderThemeChromiumSkia.h: Change disabledTextColor to private.

2011-12-12  Daniel Bates  <dbates@webkit.org>

        Unreviewed, rolling out r102656.
        http://trac.webkit.org/changeset/102656
        https://bugs.webkit.org/show_bug.cgi?id=74313

        Broke the Mac, Windows and WinCairo builds. We need to look
        into this patch some more.

        * bindings/js/ScriptEventListener.cpp:
        (WebCore::eventListenerHandlerLocation):

2011-12-12  Konrad Piascik  <kpiascik@rim.com>

        2011-12-12  Konrad Piascik  <kpiascik@rim.com>

        Implement the JavaScriptCore bindings for eventListenerHandlerLocation
        https://bugs.webkit.org/show_bug.cgi?id=74313

        Reviewed by Geoffrey Garen.

        Open any page in Web Inspector and look at the event listeners. They should now
        link to the script which created them.

        * bindings/js/ScriptEventListener.cpp:
        (WebCore::eventListenerHandlerLocation):

2011-12-12  Yosifumi Inoue  <yosin@chromium.org>

        RenderTheme should have a function for disabled text color adjustment
        https://bugs.webkit.org/show_bug.cgi?id=74143

        Reviewed by Kent Tamura.

        No new tests / existing tests cover this change.

        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::adjustInnerTextStyle): Use RenderTheme::disabledTextColor instead of PLATFORM wraped static function. 
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::disabledTextColor): Moved from RenderTextControl.cpp. This method implements for non-Chromium color.
        * rendering/RenderTheme.h: Add new virtual method disabledTextColor.
        * rendering/RenderThemeChromiumMac.h: Implementation of RenderTheme::disabledTextColor for Chrimium Mac.
        * rendering/RenderThemeChromiumSkia.h: Implementation of RenderTheme::disabledTextColor for Chrimium.

2011-12-12  Kenneth Russell  <kbr@google.com>

        Unreviewed, rolling out r102648.
        http://trac.webkit.org/changeset/102648
        https://bugs.webkit.org/show_bug.cgi?id=74313

        Broke the Snow Leopard and Windows builds

        * bindings/js/ScriptEventListener.cpp:
        (WebCore::eventListenerHandlerLocation):

2011-12-12  Andreas Kling  <kling@webkit.org>

        Resizing Cappuccino is very laggy on WebKit since Safari 5.1
        <http://webkit.org/b/71354> and <rdar://problem/10565998>

        Reviewed by Anders Carlsson.

        * WebCore.exp.in: Export FloatPoint(const NSPoint&)

2011-12-12  Jarred Nicholls  <jarred@sencha.com>

        [Qt] QTKIT-based video support must target OS X 10.5 or higher
        https://bugs.webkit.org/show_bug.cgi?id=74294

        WebCore on OS X Lion fails to build when QTKIT video support is enabled, unless a
        deployment target of 10.5+ is specified explicitly.

        Reviewed by Noam Rosenthal.

        No new tests as this is a build issue.

        * Target.pri:

2011-12-12  Luke Macpherson   <macpherson@chromium.org>

        Implement CSS text-decoration property in CSSStyleApplyProperty.
        https://bugs.webkit.org/show_bug.cgi?id=74258

        Reviewed by Andreas Kling.

        No new tests / refactoring only.

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyTextDecoration::applyValue):
        (WebCore::ApplyPropertyTextDecoration::createHandler):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):

2011-12-12  Adrienne Walker  <enne@google.com>

        iframe fails to scroll in composited page
        https://bugs.webkit.org/show_bug.cgi?id=72682

        Reviewed by Simon Fraser.

        FrameView::scrollContentsSlowPath only was catching the case where a
        child iframe had a composited parent. Now detect if the child iframe
        has any composited ancestor.

        Test: compositing/iframes/scroll-grandchild-iframe.html

        * page/FrameView.cpp:
        (WebCore::FrameView::scrollContentsSlowPath):

2011-12-12  Konrad Piascik  <kpiascik@rim.com>

        Implement the JavaScriptCore bindings for eventListenerHandlerLocation
        https://bugs.webkit.org/show_bug.cgi?id=74313

        Reviewed by Geoffrey Garen. 

        Open any page in Web Inspector and look at the event listeners. They should now
        link to the script which created them.

        * bindings/js/ScriptEventListener.cpp:
        (WebCore::eventListenerHandlerLocation):

2011-12-12  Erik Arvidsson  <arv@chromium.org>

        [V8] CodeGeneratorV8.pm does not correctly work with inherited HasIndexGetter
        https://bugs.webkit.org/show_bug.cgi?id=74027

        Reviewed by Adam Barth.

        Instead of having to write a custom indexer when the interface has an inherited indexer
        we get the signature from the super interface.

        Tested by existing tests.

        * Target.pri: Remove V8DOMSettableTokenListCustom.cpp and V8WebKitCSSFilterValueCustom.cpp.
        * UseV8.cmake: Ditto.
        * WebCore.gypi: Ditto.
        * bindings/scripts/CodeGenerator.pm:
        (FindSuperMethod): Returns the first matching function in one of the ancestor interfaces.
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateImplementationIndexer): If the current interface has no indexer try to find an
                                         indexer in one of the super interfaces.
        (GenerateImplementationNamedPropertyGetter): Ditto for named property getter.
        * bindings/v8/custom/V8DOMSettableTokenListCustom.cpp: Removed.
        * bindings/v8/custom/V8WebKitCSSFilterValueCustom.cpp: Removed.

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

        Make it possible to substitute a different CALayer implementation for the main root layer
        https://bugs.webkit.org/show_bug.cgi?id=74369

        Reviewed by Anders Carlsson.
        
        Some platforms may wish to have the main root layer (which corresponds with
        the main frame's RenderView's layer) implemented by a custom platform layer,
        for example to contain a cache of tiles.
        
        Make this possible on Mac by adding a new method to GraphicsLayerClient(),
        and implementing it in RenderLayerBacking. This new behavior is not yet enabled.
        
        Also clean up some WebLayer/WebTiledLayer code.

        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/GraphicsLayerClient.h:
        (WebCore::GraphicsLayerClient::shouldUseTileCache): New client method that indicates that the GraphicsLayer
        should host a tile cache layer instead of a normal layer.
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::GraphicsLayerCA): Ask the client, if any, whether to create a tile cache layer.
        * platform/graphics/ca/PlatformCALayer.h:
        * platform/graphics/ca/mac/PlatformCALayerMac.mm: NSClassFromString(@"CATransformLayer") was for Leopard;
        we can just use the classname now. Handle LayerTypeTileCacheLayer.
        (PlatformCALayer::PlatformCALayer):
        * platform/graphics/ca/mac/WebTileCacheLayer.h: Copied from Source/WebCore/platform/graphics/mac/WebLayer.h.
        * platform/graphics/ca/mac/WebTileCacheLayer.mm: Copied from Source/WebCore/platform/graphics/mac/WebLayer.h.
        * platform/graphics/mac/WebLayer.h: Remove the setLayerNeedsDisplayInRect() hackery.
        * platform/graphics/mac/WebLayer.mm: setLayerNeedsDisplayInRect() tried to share code between WebLayer and WebTiledLayer
        by using Obj-C runtime methods to find the superclass. This causes infinite recursion if Web[Tiled]Layer is subclassed,
        so remove it.
        (-[WebLayer setNeedsDisplayInRect:]): Code moved here from setLayerNeedsDisplayInRect.
        * platform/graphics/mac/WebTiledLayer.mm:
        (-[WebTiledLayer setNeedsDisplayInRect:]): Code copied here from setLayerNeedsDisplayInRect.
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::RenderLayerBacking): Find out, and cache if we're the main frame's layer.
        (WebCore::RenderLayerBacking::shouldUseTileCache): Return m_usingTiledCacheLayer, which is always false for now.
        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): Use m_isMainFrameRenderViewLayer.
        (WebCore::RenderLayerBacking::paintingGoesToWindow): The tile cache layer needs to paint itself.
        * rendering/RenderLayerBacking.h:
        * rendering/RenderLayerCompositor.h: m_compositeForFixedPosition was unused.

2011-12-12  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r102357): respondToUnappliedEditing exits early for CreateLinkCommand
        https://bugs.webkit.org/show_bug.cgi?id=74356

        Reviewed by Enrica Casucci.

        The problem was that isCreateLinkCommand was called on EditCommandComposition by respondToUnappliedEditing.
        Fixed the bug by propagating the value of isCreteLinkCommand from CompositeEditCommand to
        EditCommandComposition via wasCreateLinkCommand.

        Also move isCreateLinkCommand from EditCommand to CompositeEditCommand to prevent this mistake in the future.

        * editing/CompositeEditCommand.cpp:
        (WebCore::EditCommandComposition::create):
        (WebCore::EditCommandComposition::EditCommandComposition):
        (WebCore::CompositeEditCommand::ensureComposition):
        (WebCore::CompositeEditCommand::isCreateLinkCommand):
        * editing/CompositeEditCommand.h:
        (WebCore::EditCommandComposition::wasCreateLinkCommand):
        * editing/SpellingCorrectionController.cpp:
        (WebCore::SpellingCorrectionController::respondToUnappliedEditing):
        * editing/SpellingCorrectionController.h:

2011-12-12  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]Revert RenderObject::style() to its state before region styling
        https://bugs.webkit.org/show_bug.cgi?id=74315

        Reviewed by Tony Chang.

        * rendering/RenderObject.h:
        (WebCore::RenderObject::style):

2011-12-12  Adam Klein  <adamk@chromium.org>

        Don't crash in StyleAttributeMutationScope if the style declaration's element has been GCed
        https://bugs.webkit.org/show_bug.cgi?id=74321

        Reviewed by Ryosuke Niwa.

        In r101101, Rafael Weinstein added code to CSSMutableStyleDeclaration.cpp
        which depended on isInlineStyleDeclaration returning true iff the
        element it pointed to was non-null (it will be nulled-out if the
        element is garbage collected).

        Then, in r101172, Andreas Kling changed the semantics so that
        isInlineStyleDeclaration only described the type of the declaration,
        not the state of the related element.

        This change updates Rafael's code with an explicit check that the
        element is still alive.

        Test: fast/dom/css-inline-style-declaration-crash.html

        * css/CSSMutableStyleDeclaration.cpp:

2011-12-12  Chris Fleizach  <cfleizach@apple.com>

        AX: aria-hidden inheritance broken when applying to some descendants
        https://bugs.webkit.org/show_bug.cgi?id=73940

        Reviewed by Darin Adler.

        When adding children, we were not updating the children cache for direct AX descendants.
        This meant that toggling aria-hidden could result in a stale cache where elements would not be reachable.

        Making this fix also exposed a problem in AccessibilityTable where the AccessibilityHeaderObject was not
        being managed correctly as a mock element.

        Test: platform/mac/accessibility/aria-hidden-changes-for-non-ignored-elements.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::addChildren):
        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::clearChildren):
        (WebCore::AccessibilityTable::headerContainer):
        * accessibility/AccessibilityTable.h:

2011-12-12  Jeremy Apthorp  <jeremya@chromium.org>

        When the mouse is dragged out of an :active element, it should lose :hover.
        https://bugs.webkit.org/show_bug.cgi?id=57206

        Reviewed by Ryosuke Niwa.

        Test: fast/css/hover-active-drag.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMouseMoveEvent): Don't mark mouse-drag hit tests read-only, since they no longer are.
        (WebCore::EventHandler::dragSourceEndedAt): Send a hit test request when the mouse goes up after a drag, so
        RenderLayer has a chance to update the hover/active status.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateHoverActiveState): Only allow the :active state to change on mouse down or mouse up.

2011-12-12  Kenneth Russell  <kbr@google.com>

        Unreviewed Windows build fix after http://trac.webkit.org/changeset/102619 .
        Remove OVERRIDE specifier from virtual destructor.

        * html/HTMLPlugInImageElement.h:

2011-12-12  Ryosuke Niwa  <rniwa@webkit.org>

        WebKit code shouldn't be calling applyCommand directly
        https://bugs.webkit.org/show_bug.cgi?id=74337

        Reviewed by Darin Adler.

        Make WebKit-layer code call Editor::replaceSelectionWithFragment and Editor::replaceSelectionWithText
        instead of manually creating and applying ReplaceSelectionCommand.

        The only behavioral difference is that new code will end up checking for spell checks. However, this
        difference appears to be unintentional since the code predates http://trac.webkit.org/changeset/73886,
        which introduced an invocation of spellcheck code.

        Unfortunately no tests since there doesn't seem to be anyway to test this change.

        * WebCore.exp.in:
        * editing/EditCommand.cpp:
        (WebCore::applyCommand):
        * editing/EditCommand.h:
        * editing/Editor.h:

2011-11-26  Adam Barth  <abarth@webkit.org>

        Remove platform/audio/fftw
        https://bugs.webkit.org/show_bug.cgi?id=73163

        Reviewed by Eric Seidel.

        The FFTW library is GPL, not LGPL, like WebKit.  This patch removes the
        integration with the library so folks who use WebAudio don't
        accidentially violate the GPL by linking in FFTW.

        * GNUmakefile.am:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * platform/audio/FFTFrame.h:
        * platform/audio/FFTFrameStub.cpp:
        * platform/audio/fftw: Removed.
        * platform/audio/fftw/FFTFrameFFTW.cpp: Removed.

2011-12-12  Kenneth Russell  <kbr@google.com>

        COMPILE_ASSERT in CSSStyleSelector.cpp doesn't compile on Windows
        https://bugs.webkit.org/show_bug.cgi?id=74327

        Unreviewed build fix. True fix should follow under above bug.

        * css/CSSStyleSelector.cpp:

2011-12-12  David Grogan  <dgrogan@chromium.org>

        Fix compilation error when !ENABLE(WORKERS)
        https://bugs.webkit.org/show_bug.cgi?id=74029

        Reviewed by Yury Semikhatsky.

        * storage/IDBFactory.cpp:
        (WebCore::IDBFactory::open): add #if ENABLE(WORKERS) guard

2011-12-12  Brady Eidson  <beidson@apple.com>

        Page cache should support pages with plugins.
        <rdar://problem/5190122> and https://bugs.webkit.org/show_bug.cgi?id=13634

        Reviewed by Anders Carlsson.

        By making plugin elements renderers go display:none when entering the page cache,
        we destroy the plug-in in a cross platform way as well as handle invalidating script
        objects created by that plugin.

        By restoring the original style when leaving the page cache and forcing a style recalc
        on the plugin element, the plugin is gracefully reinstantiated when the user goes back.

        Test: plugins/netscape-plugin-page-cache-works.html

        * dom/Document.cpp:
        (WebCore::Document::documentDidBecomeActive): Copy this collection before iterating over
          it, as the callbacks might result in mutating the set.

        * dom/Node.h:
        (WebCore::Node::setHasCustomStyleForRenderer):
        (WebCore::Node::clearHasCustomStyleForRenderer): Expose the ability to stop using a 
          custom renderer and go back to the default renderer.

        * history/CachedFrame.cpp:
        (WebCore::CachedFrame::CachedFrame): Move the document inactivation call to the same place
          we suspend active DOM objects. It is important this call be *after* the beforeunload event
          is dispatched, and was coincidental non of the elements that using Document activation
          had run in to this problem yet.

        * history/PageCache.cpp:
        (WebCore::logCanCacheFrameDecision):
        (WebCore::PageCache::canCachePageContainingThisFrame): If the page contains plugins but
          the PageCacheSupportsPlugins setting is true, allow this page.

        Kill and recreate the plugin by listening for Document activation callbacks and setting a custom
        display:none render style:
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
        (WebCore::HTMLPlugInImageElement::~HTMLPlugInImageElement): Unregister for document activation
          callbacks.
        (WebCore::HTMLPlugInImageElement::createRenderer): Once a renderer (ie. plugin instance) is
          created, this element needs Document (in)activation callbacks.
        (WebCore::HTMLPlugInImageElement::willMoveToNewOwnerDocument): Manage Document activation 
          callback registration.
        (WebCore::HTMLPlugInImageElement::didMoveToNewOwnerDocument): Ditto.
        (WebCore::HTMLPlugInImageElement::documentWillBecomeInactive): Clone the element's current style
          and set the clone's display value to None. Start using this custom style and force a style
          recall. This destroys the renderer and therefore the plugin instance.
        (WebCore::HTMLPlugInImageElement::documentDidBecomeActive): Stop using the custom style and
          force a style recall to reinstantiate the plugin.
        (WebCore::HTMLPlugInImageElement::customStyleForRenderer): Return the stand-in style that has
          display:none set.
        * html/HTMLPlugInImageElement.h:

        Add a setting that allows runtime configuration of whether or not the page cache supports plugins:
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h:
        (WebCore::Settings::setPageCacheSupportsPlugins):
        (WebCore::Settings::pageCacheSupportsPlugins):

2011-12-12  Ojan Vafai  <ojan@chromium.org>

        r102234 caused RuleData to use 33 bits in its bitmask
        https://bugs.webkit.org/show_bug.cgi?id=74314

        Reviewed by Antti Koivisto.

        Lower m_position to something more reasonable. A million
        should be plenty. Current large sites (e.g. gmail) seem to use
        tens of thousands.

        Added a COMPILE_ASSERT to ensure this doesn't regress.

        No new tests.

        * css/CSSStyleSelector.cpp:

2011-12-12  James Robinson  <jamesr@chromium.org>

        Rename webkitCancelRequestAnimationFrame to webkitCancelAnimationFrame to match spec change
        https://bugs.webkit.org/show_bug.cgi?id=74231

        Reviewed by Simon Fraser.

        The RequestAnimationFrame spec has renamed cancelRequestAnimationFrame to cancelAnimationFrame in response to
        feedback from Mozilla and Microsoft that the old name was too long and didn't parallel setTimeout/clearTimeout
        and setInterval/clearInterval very well. This updates our IDL to match, while preserving the old name as an
        alias to be compatible with current content.

        * dom/Document.cpp:
        (WebCore::Document::webkitCancelAnimationFrame):
        * dom/Document.h:
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::webkitCancelAnimationFrame):
        * page/DOMWindow.h:
        (WebCore::DOMWindow::webkitCancelRequestAnimationFrame):
        * page/DOMWindow.idl:

2011-12-12  Shawn Singh  <shawnsingh@chromium.org>

        [chromium] Remove assumption that empty surface is always at end of list
        https://bugs.webkit.org/show_bug.cgi?id=74037

        Reviewed by James Robinson.

        Test case added to CCLayerTreeHostCommonTest.cpp, which reproduces
        a crash reported in http://code.google.com/p/chromium/issues/detail?id=106734

        This patch fixes the crash in a less risky way to be merged into
        m17, but the root of the issue needs to be addressed in a
        follow-up patch.

        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
        (WebCore::calculateDrawTransformsAndVisibilityInternal):

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

        Share code that checks for matching sets of transform operations
        https://bugs.webkit.org/show_bug.cgi?id=74265

        Reviewed by Dan Bernstein.
        
        Add TransformOperations::operationsMatch() and call it from the
        three places that used this same code.
        
        Tested by existing tests.

        * page/animation/ImplicitAnimation.cpp:
        (WebCore::ImplicitAnimation::validateTransformFunctionList):
        * page/animation/KeyframeAnimation.cpp:
        (WebCore::KeyframeAnimation::validateTransformFunctionList):
        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::fetchTransformOperationList):
        * platform/graphics/transforms/TransformOperations.cpp:
        (WebCore::TransformOperations::operationsMatch):
        * platform/graphics/transforms/TransformOperations.h:

2011-12-12  Antti Koivisto  <antti@apple.com>

        Cache visited link hash
        https://bugs.webkit.org/show_bug.cgi?id=74095

        Reviewed by Darin Adler.

        Visited link hash is relatively expensive to compute. We can cache it for anchor elements
        with minimal relative memory cost for faster style resolve.
        
        On my machine this speeds up style matching on full HTML spec by ~100ms or ~1% of the total
        CPU usage. It makes link elements 8 bytes larger, a relatively minor increase to their overall size.
        
        Invalidate the hashes on base URL for completeness sake (lack of style invalidation means
        that this scenario is not properly supported currently).

        Covered by existing tests. No specific test for visited hash invalidation on dynamic base URL 
        change as the effect is not testable due to lack of style invalidation.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::determineLinkStateSlowCase):
        (WebCore::SelectorChecker::visitedStateChanged):
        * html/Document.cpp:
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::HTMLAnchorElement):
        (WebCore::HTMLAnchorElement::parseMappedAttribute):
        * html/HTMLAnchorElement.h:
        (WebCore::HTMLAnchorElement::visitedLinkHash):

2011-12-12  Martin Robinson  <mrobinson@igalia.com>

        [GTK] gtk_widget_size_allocate for plugin widgets should happen in the WebView size-allocate method
        https://bugs.webkit.org/show_bug.cgi?id=72805

        Reviewed by Gustavo Noronha Silva.

        No new tests. This is only a performance tweak.

        Instead of immediately calling gtk_widget_size during painting, defer
        this until the size-allocate method of the WebView.

        * plugins/gtk/PluginViewGtk.cpp:
        (WebCore::PluginView::updateWidgetAllocationAndClip): Instead of immediately changing
        the widget allocation, just record it in a GObject data attachment.

2011-12-12  Nate Chapin  <japhet@chromium.org>

        A SubresourceLoader in the middle of revalidating
        a resource should be treated as finishing (similar to
        didFinishLoading and didFail) to ensure that willCancel()
        doesn't declare the revalidation as having failed reentrantly.
        https://bugs.webkit.org/show_bug.cgi?id=72762

        Reviewed by Adam Barth.

        Test: http/tests/cache/cancel-during-revalidation-succeeded.html

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didReceiveResponse):

2011-12-12  Mary Wu  <mary.wu@torchmobile.com.cn>

        Upstream 3 files into WebCore/platform/blackberry
        https://bugs.webkit.org/show_bug.cgi?id=74275

        Reviewed by Rob Buis.

        Initial upstream, no new tests.

        * platform/blackberry/ContextMenuBlackBerry.cpp: Added.
        * platform/blackberry/ContextMenuItemBlackBerry.cpp: Added.
        * platform/blackberry/TemporaryLinkStubs.cpp: Added.

2011-12-12  Pierre Rossi  <pierre.rossi@gmail.com>

        [Qt] Rendering issues with sliders and QStyle
        https://bugs.webkit.org/show_bug.cgi?id=73921

        With QStyle's origins being deeply rooted with widgets,
        several styles make wrong assumptions, leading to sliders
        not being painted properly in WebKit. We can solve a lot
        of problems by systematically translating the painter to
        the top left corner of the render object.

        Reviewed by Simon Hausmann.

        No new tests. The Qt tests are ran with the Windows
        style, this fixes some quirks affecting other styles.

        * platform/qt/RenderThemeQStyle.cpp:
        (WebCore::RenderThemeQStyle::paintSliderTrack):
        (WebCore::RenderThemeQStyle::paintSliderThumb):

2011-12-12  Mary Wu  <mary.wu@torchmobile.com.cn>

        Upstream 5 files into WebCore/platform/blackberry
        https://bugs.webkit.org/show_bug.cgi?id=73798

        Reviewed by Rob Buis.

        Main contributors:
        Genevieve Mak <gmak@rim.com>
        Mike Lattanzio  <mlattanzio@rim.com>
        George Staikos <gstaikos@rim.com> 

        Initial upstream, no new tests.

        * platform/blackberry/PlatformTouchEventBlackBerry.cpp: Added.
        (WebCore::PlatformTouchEvent::PlatformTouchEvent):
        * platform/blackberry/PlatformTouchPointBlackBerry.cpp: Added.
        (WebCore::PlatformTouchPoint::PlatformTouchPoint):
        * platform/blackberry/SharedBufferBlackBerry.cpp: Added.
        (WebCore::SharedBuffer::createWithContentsOfFile):
        * platform/blackberry/SharedTimerBlackBerry.cpp: Added.
        (WebCore::SharedTimerBlackBerry::SharedTimerBlackBerry):
        (WebCore::SharedTimerBlackBerry::~SharedTimerBlackBerry):
        (WebCore::SharedTimerBlackBerry::instance):
        (WebCore::SharedTimerBlackBerry::start):
        (WebCore::SharedTimerBlackBerry::stop):
        (WebCore::setSharedTimerFiredFunction):
        (WebCore::setSharedTimerFireInterval):
        (WebCore::stopSharedTimer):
        * platform/blackberry/SystemTimeBlackBerry.cpp: Added.
        (WebCore::userIdleTime):

2011-12-12  Alexander Pavlov  <apavlov@chromium.org>

        Implement a cache for CSSStyleRule::selectorText()
        https://bugs.webkit.org/show_bug.cgi?id=74269

        This change is geared towards speeding up the CSS selector profiler,
        its implementation tracked at https://bugs.webkit.org/show_bug.cgi?id=74004.
        Using a proof-of-concept implementation of the profiler, this change reduces
        the profiler temporal overhead on PerformanceTests/Parser/html5-full-render.html
        roughly by 86% (from ~72 seconds down to ~10 seconds). This change also does not
        considerably increase average memory usage, as reading selectorText is a relatively
        rare case during normal web browsing.

        Reviewed by Andreas Kling.

        No new tests, as this functionality is covered by existing tests.

        * css/CSSRule.h:
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::~CSSStyleRule):
        (WebCore::selectorTextCache):
        (WebCore::CSSStyleRule::cleanup):
        (WebCore::CSSStyleRule::generateSelectorText):
        (WebCore::CSSStyleRule::selectorText):
        (WebCore::CSSStyleRule::setSelectorText):
        * css/CSSStyleRule.h:

2011-12-12  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Styles] Modified selector text needs sanitization
        https://bugs.webkit.org/show_bug.cgi?id=74291

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/StylesSidebarPane.js:

2011-12-12  Renata Hodovan  <reni@webkit.org>

        Fulfill FIXME in  HTMLLinkElement.h.
        https://bugs.webkit.org/show_bug.cgi?id=74278

        Rename HTMLLinkElement::isLoading() to isStyleSheetLoading().

        Reviewed by Andreas Kling.

        No new tests because the functionality remains the same.

        * dom/Document.cpp:
        (WebCore::Document::recalcStyleSelector):
        * html/HTMLLinkElement.cpp:
        (WebCore::HTMLLinkElement::setDisabledState):
        (WebCore::HTMLLinkElement::isStyleSheetLoading):
        (WebCore::HTMLLinkElement::sheetLoaded):
        * html/HTMLLinkElement.h:

2011-11-25  Alexander Pavlov  <apavlov@chromium.org>

        WebKit does not enumerate over CSS properties in HTMLElement.style
        https://bugs.webkit.org/show_bug.cgi?id=23946

        Reviewed by Darin Adler.

        This change generates a list of JavaScript mirrors of the CSS properties and allows to enumerate them
        using the "in" operator on the CSSStyleDeclaration object.

        Test: fast/css/style-enumerate-properties.html

        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        (WebCore::JSCSSStyleDeclaration::getOwnPropertyNames): Added.
        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
        (WebCore::V8CSSStyleDeclaration::namedPropertyEnumerator): Added.
        (WebCore::V8CSSStyleDeclaration::namedPropertyQuery): Added.
        (WebCore::V8CSSStyleDeclaration::namedPropertyGetter): A small drive-by optimization (local initialization moved down).
        * css/CSSStyleDeclaration.idl: Use a custom property enumerator.
        * css/makeprop.pl: Add a function to convert CSS property names into JS ones.

2011-12-12  Alexander Pavlov  <apavlov@chromium.org>

        Unreviewed, build fix.

        Revert r102570 which broke SnowLeopard builders.

        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
        (WebCore::V8CSSStyleDeclaration::namedPropertyGetter):
        * css/CSSStyleDeclaration.idl:
        * css/makeprop.pl:

2011-12-12  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: chromium: UI: Detailed Heap snapshot shows too many objects' hidden properties.
        https://bugs.webkit.org/show_bug.cgi?id=74289

        WebCore objects have many hidden properties.
        The Detailed Heap shapshot view shows all these props for a selected object.
        The result view looks too heavy and users usually failed to find a useful information about the object.
        Looks like such ability is unnecessary in the most cases.
        I'd like to introduce a configurable property that will show/hide these props from the view.

        Reviewed by Yury Semikhatsky.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/DetailedHeapshotGridNodes.js:
        * inspector/front-end/DetailedHeapshotView.js:
        * inspector/front-end/HeapSnapshotProxy.js:
        (WebInspector.HeapSnapshotProxy.prototype.createPathFinder):
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsScreen):

2011-12-12  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r102556.
        http://trac.webkit.org/changeset/102556
        https://bugs.webkit.org/show_bug.cgi?id=73394

        clobber build failure

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
        (main):
        * WebCore.gypi:
        * bindings/scripts/generate-bindings.pl:
        * page/DOMWindow.idl:
        * webaudio/DOMWindowWebAudio.idl: Removed.

2011-12-12  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r102558.
        http://trac.webkit.org/changeset/102558
        https://bugs.webkit.org/show_bug.cgi?id=74160

        clobber build failure

        * WebCore.gypi:
        * page/DOMWindow.idl:
        * websockets/DOMWindowWebSocket.idl: Removed.

2011-11-25  Alexander Pavlov  <apavlov@chromium.org>

        WebKit does not enumerate over CSS properties in HTMLElement.style
        https://bugs.webkit.org/show_bug.cgi?id=23946

        Reviewed by Darin Adler.

        This change generates a list of JavaScript mirrors of the CSS properties and allows to enumerate them
        using the "in" operator on the CSSStyleDeclaration object.

        Test: fast/css/style-enumerate-properties.html

        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        (WebCore::JSCSSStyleDeclaration::getOwnPropertyNames): Added.
        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
        (WebCore::V8CSSStyleDeclaration::namedPropertyEnumerator): Added.
        (WebCore::V8CSSStyleDeclaration::namedPropertyQuery): Added.
        (WebCore::V8CSSStyleDeclaration::namedPropertyGetter): A small drive-by optimization (local initialization moved down).
        * css/CSSStyleDeclaration.idl: Use a custom property enumerator.
        * css/makeprop.pl: Add a function to convert CSS property names into JS ones, and a string comparator.

2011-12-09  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: provide per Document Node count statistics
        https://bugs.webkit.org/show_bug.cgi?id=74100

        Memory agent now returns counters for nodes with given names. For each
        object group root user will see total number of its descendtants and per
        tag name counts.

        This patch also moves generic CounterVisitor code out of V8 bindings. It
        may well be used with both JS engines.

        Reviewed by Pavel Feldman.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/ScriptProfiler.h:
        (WebCore::ScriptProfiler::visitJSDOMWrappers):
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::visitJSDOMWrappers):
        * bindings/v8/ScriptProfiler.h:
        * inspector/DOMWrapperVisitor.h: Added.
        (WebCore::DOMWrapperVisitor::~DOMWrapperVisitor):
        * inspector/Inspector.json:
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getDOMNodeCount):
        * inspector/InspectorMemoryAgent.h:

2011-12-12  Noel Gordon  <noel.gordon@gmail.com>

        WebPImageDecoder: Increase image/webp decoding performance 10-20%
        https://bugs.webkit.org/show_bug.cgi?id=74263

        Reviewed by Adam Barth.

        Avoid copying data from the RGB buffer of decoded image output to the
        backing pixel store. That is slow - costs 10% of the overall decoding
        time at libwebp 0.1.2, and 20% at libwebp 0.1.3.

        Instead, instruct the decoder to write the decoded pixels directly to
        the backing pixel store.

        No new tests. Covered by existing tests. No progressive decoding test
        exists in DRT, see https://bugs.webkit.org/show_bug.cgi?id=74062

        * platform/image-decoders/webp/WEBPImageDecoder.cpp:
        (outputMode):  Define output pixel format. On little-endian machines,
        output BGRA pixels to the backing store, for example.
        (WebCore::WEBPImageDecoder::WEBPImageDecoder):
        (WebCore::WEBPImageDecoder::decode):
        * platform/image-decoders/webp/WEBPImageDecoder.h:

2011-12-11  Zoltan Herczeg  <zherczeg@webkit.org>

        Add new CSS nth-children parsing tests
        https://bugs.webkit.org/show_bug.cgi?id=74178

        Reviewed by Darin Adler.

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

        * css/CSSParser.cpp:
        (WebCore::isValidNthToken): Add "-n" to the possible identifiers.

2011-12-11  Kentaro Hara  <haraken@chromium.org>

        Use [Supplemental] IDL in WebSocket
        https://bugs.webkit.org/show_bug.cgi?id=74160

        Reviewed by Adam Barth.

        By using the [Supplemental] IDL, this patch moves declarations of WebSocket
        attributes from DOMWindow.idl to websocket/DOMWindowWebSocket.idl,
        which helps make WebSocket a self-contained module.

        No new tests, no change in behavior.
        Confirm that http/tests/websocket/* pass.

        * WebCore.gypi: Added DOMWindowWebSocket.idl.
        * page/DOMWindow.idl: Added the [Supplemented] IDL to WebSocket-related attributes. This [Supplemented] IDL will be removed after all platforms support the [Supplemental] IDL (See bug 73394 for more details).
        * websockets/DOMWindowWebSocket.idl: Added. Used the [Supplemental=DOMWindow] IDL. The attributes in this IDL file are treated as if they are described in DOMWindow.idl.

2011-12-11  Luke Macpherson   <macpherson@chromium.org>

        Implement webkit-line-grid and webkit-line-grid-snap CSS properties in CSSStyleApplyProperty.
        https://bugs.webkit.org/show_bug.cgi?id=74262

        Reviewed by Andreas Kling.

        No new tests / refactoring only.

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):

2011-12-11  Kentaro Hara  <haraken@chromium.org>

        Use the [Supplemental] IDL for webaudio attributes in Chromium
        https://bugs.webkit.org/show_bug.cgi?id=73394

        Reviewed by Adam Barth.

        - Overview: Using the [Supplemental] IDL, this patch moves the attribute
        declarations of webaudio from DOMWindow.idl into a new IDL file
        webaudio/DOMWindowWebAudio.idl, which helps make webaudio a self-contained
        feature (aka a module).

        - This patch changes the build flow of WebCore.gyp as follows:

            Previous build flow:
                foreach $idl (all IDL files) {
                    generate-bindings.pl depends on $idl;
                    generate-bindings.pl reads $idl;
                    generate-bindings.pl generates .h and .cpp files for $idl;
                }

            New build flow (See the discussions in bug 72138 for more details):
                resolve-supplemental.pl depends on all IDL files;
                resolve-supplemental.pl reads all IDL files;
                resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
                resolve-supplemental.pl outputs supplemental_dependency.tmp;
                foreach $idl (all IDL files) {
                    generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
                    generate-bindings.pl reads $idl;
                    generate-bindings.pl reads supplemental_dependency.tmp;
                    generate-bindings.pl generates .h and .cpp files for $idl, including all attributes in IDL files whilementing $idl;
                }

        - This patch introduces a temporary IDL, [Supplemented]. The [Supplemented] IDL
        will be removed after build scripts for all platforms support the [Supplemental] IDL.
        The motivation for the [Supplemented] IDL is as follows:

        In order to support the [Supplemental] IDL, we need to
        (1) run resolve-supplemental.pl and generate supplemental_dependency.tmp
        (2) and run generate-bindings.pl with the supplemental_dependency.tmp.

        This build flow requires a change on the following build scripts,
        but changing all the build scripts all at once without any regression is too difficult:

            - DerivedSources.make
            - DerivedSources.pri
            - GNUmakefile.am
            - PlatformBlackBerry.cmake
            - UseJSC.cmake
            - UseV8.cmake
            - WebCore.vcproj/MigrateScripts
            - WebCore.vcproj/WebCore.vcproj
            - bindings/gobject/GNUmakefile.am
            - WebCore.gyp/WebCore.gyp

        Thus, we are planning to change the build scripts one by one, which implies that
        we need to allow the temporary state in which some build scripts support [Supplemental] IDL
        but others do not. To accomplish this, we introduce a temporary IDL, [Supplemented].
        The [Supplemented] IDL on an attribute means that the attribute is marked with [Supplemental]
        in another IDL file somewhere, like this:

            DOMWindowWebAudio.idl:
                interface [
                    Supplemental=DOMWindow
                ] DOMWindowWebAudio {
                    attribute attr1;
                    attribute attr2;
                };

            DOMWindow.idl:
                interface [
                ] DOMWindow {
                    attribute [Supplemented] attr1; // This line will be removed after all build scripts support the [Su IDL
                    attribute [Supplemented] attr2; // This line will be removed after all build scripts support the [Su IDL.
                    attribute attr3;
                    attribute attr4;
                };

        Assuming these IDL files, this patch implements the following logic in generate-bindings.pl:

            - If a given build script supports the [Supplemental] IDL,
            generate-bindings.pl ignores all attributes with the [Supplemented] IDL.
            - Otherwise, generate-bindings.pl treats all attributes with the [Supplemented] IDL
            as normal attributes and instead ignores all attributes with the [Supplemental] IDL
            (i.e. generate-bindings.pl generates nothing from the IDL file with the [Supplemental] IDL).

        Tests: webaudio/*

        * WebCore.gyp/WebCore.gyp: Describes the build flow that I described above.
        * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
        (main): Reads the IDL file names from the input file (i.e. supplemental_dependency.tmp), which are described at the first column of each line in the input file. If the file name is a "/cygdrive/c/..."-style path, it is converted to a "C:\cygwin\..."-style path by the cygpath command.
        * WebCore.gypi: Added DOMWindowWebAudio.idl.
        * bindings/scripts/generate-bindings.pl: As a temporary solution, if the platform does not support the [Supplemental] IDL, the perl script ignores the [Supplemental] IDL and instead uses the [Supplemented] IDL. Otherwise, the perl script ignores the [Supplemented] IDL and instead uses the [Supplemental] IDL.
        * page/DOMWindow.idl: Added the [Supplemented] IDL to webaudio-related attributes. As I described above, the [Supplemented] IDL will be removed after all platforms support the [Supplemental] IDL.
        * webaudio/DOMWindowWebAudio.idl: Added. Describes the [Supplemental=DOMWindow] IDL. The attributes in this IDL file should be treated as if they are written in DOMWindow.idl.

2011-12-11  Andreas Kling  <kling@webkit.org>

        Micro-optimize CSSStyleSelector::findSiblingForStyleSharing().
        <http://webkit.org/b/74261>

        Reviewed by Antti Koivisto.

        Move the isStyledElement() check from canShareStyleWithElement() into the
        loop in findSiblingForStyleSharing(), and tighten up the argument/return
        types to StyledElement* as appropriate.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::canShareStyleWithElement):
        (WebCore::CSSStyleSelector::findSiblingForStyleSharing):
        (WebCore::CSSStyleSelector::locateSharedStyle):
        * css/CSSStyleSelector.h:

2011-12-11  Shinya Kawanaka  <shinyak@google.com>

        Asynchronous path synchronous path of SpellChecker should share the code to mark misspellings.
        https://bugs.webkit.org/show_bug.cgi?id=73616

        Reviewed by Hajime Morita.

        Asynchronous spellchecking path should call the same method for the synchronous spellchecking path
        to mark misspellings.

        No new tests. Covered by existing tests.

        * editing/Editor.cpp:
        (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
        (WebCore::Editor::markAndReplaceFor):
          Takes SpellCheckRequest object.
        * editing/Editor.h:
        * editing/SpellChecker.cpp:
        (WebCore::SpellChecker::didCheck):
          Calls the same method of synchronous spellchecking path.

2011-12-11  Luke Macpherson   <macpherson@chromium.org>

        Implement CSS display property in CSSStyleApplyProperty.
        https://bugs.webkit.org/show_bug.cgi?id=73500

        Reviewed by Andreas Kling.

        Refactoring only / no functionality changed.

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyDisplay::isValidDisplayValue):
        (WebCore::ApplyPropertyDisplay::applyInheritValue):
        (WebCore::ApplyPropertyDisplay::applyInitialValue):
        (WebCore::ApplyPropertyDisplay::applyValue):
        (WebCore::ApplyPropertyDisplay::createHandler):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):

2011-12-11  Geoffrey Garen  <ggaren@apple.com>

        Try to fix the Qt build.

        Unreviewed.

        * css/CSSStyleDeclaration.cpp: Maybe an #include will solve our problem?
        Someday, compiler error messages will not suck. Today is not that day.

2011-12-11  Luke Macpherson   <macpherson@chromium.org>

        Implement CSS resize property in CSSStyleApplyProperty.
        https://bugs.webkit.org/show_bug.cgi?id=74162

        Reviewed by Julien Chaffraix.

        No new tests / refactoring only.

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyResize::applyValue):
        (WebCore::ApplyPropertyResize::createHandler):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):

2011-12-11  Andreas Kling  <kling@webkit.org>

        Move CSSElementStyleDeclaration to its own cpp/h files.
        <http://webkit.org/b/74256>

        Reviewed by Sam Weinig.

        CSSElementStyleDeclaration is old enough to move out of CSSMutableStyleDeclaration's
        attic and into her own apartment. 

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSDOMBinding.h:
        * css/CSSElementStyleDeclaration.cpp: Added.
        (WebCore::CSSElementStyleDeclaration::styleSheet):
        * css/CSSElementStyleDeclaration.h: Added.
        (WebCore::CSSElementStyleDeclaration::element):
        (WebCore::CSSElementStyleDeclaration::setElement):
        (WebCore::CSSElementStyleDeclaration::CSSElementStyleDeclaration):
        (WebCore::CSSElementStyleDeclaration::~CSSElementStyleDeclaration):
        * css/CSSInlineStyleDeclaration.h:
        * css/CSSMutableStyleDeclaration.cpp:
        * css/CSSMutableStyleDeclaration.h:
        * dom/CSSMappedAttributeDeclaration.h:

2011-12-11  Benjamin Poulain  <bpoulain@apple.com>

        Add KillRingNone.cpp to Mac build system
        https://bugs.webkit.org/show_bug.cgi?id=74168

        Reviewed by David Kilzer.

        Add KillRingNone.cpp so it can be used on iOS, but
        blacklist the file from the build in order to avoid
        conflicts with KillRingMac.

        * Configurations/WebCore.xcconfig:
        * WebCore.xcodeproj/project.pbxproj:

2011-12-11  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: [protocol] alter some type names generated from Inspector.json
        https://bugs.webkit.org/show_bug.cgi?id=74247

        Reviewed by Pavel Feldman.

        Manually-filled map added that contains problem type names and its replacement.

        * inspector/CodeGeneratorInspector.py:
        (fix_type_name.Result):
        (fix_type_name.Result.output_comment):
        (fix_type_name):
        (TypeBindings.create_for_named_type_declaration.write_doc):
        (TypeBindings.create_for_named_type_declaration.EnumBinding.generate_type_builder):
        (TypeBindings.create_for_named_type_declaration.PlainString.generate_type_builder):
        (TypeBindings):
        (TypeBindings.create_for_named_type_declaration.ClassBinding.generate_type_builder):
        (Generator.process_types):

2011-12-11  Andreas Kling  <kling@webkit.org>

        WK2/NetscapePlugin: Incorrect mouse event coordinates when frameScaleFactor != 1.
        <http://webkit.org/b/74209> and <rdar://problem/10438197>

        Reviewed by Anders Carlsson.

        * WebCore.exp.in: Export AffineTransform::scale(double).

2011-12-10  Andreas Kling  <kling@webkit.org>

        Remove OS(SYMBIAN) block from Settings constructor.
        <http://webkit.org/b/74248>

        Reviewed by Benjamin Poulain.

        Kill the last OS(SYMBIAN) block in WebKit!

        * page/Settings.cpp:
        (WebCore::Settings::Settings):

2011-12-11  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/10561285> REGRESSION (r80438): First word on a line or after collapsed space may not be hyphenated even though it should
        https://bugs.webkit.org/show_bug.cgi?id=74239

        Reviewed by Anders Carlsson.

        Tests: fast/text/hyphenate-first-word-after-skipped-space-expected.html
               fast/text/hyphenate-first-word-after-skipped-space.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::tryHyphenating): Replaced the assumption that the character at lastSpace is a space
        iff lastSpace is non-zero with a test of whether it is a space, in the sense that it should
        not be counted as part of the prefix when comparing it to the value of hyphenate-limit-before.

2011-12-10  Benjamin Poulain  <bpoulain@apple.com>

        #ifdef the parts of the Mac platform which should not be used on iOS
        https://bugs.webkit.org/show_bug.cgi?id=74246

        Reviewed by David Kilzer.

        * Configurations/WebCore.xcconfig:
        * platform/FileSystem.cpp:
        * platform/mac/FileSystemMac.mm:
        * platform/mac/Language.mm:
        (+[WebLanguageChangeObserver _webkit_languagePreferencesDidChange]):
        (WebCore::createHTTPStyleLanguageCode):
        (WebCore::platformDefaultLanguage):
        * platform/mac/LocalizedStringsMac.mm:
        (WebCore::localizedString):
        (+[WebCoreSharedBufferData initialize]):
        * platform/mac/WebCoreNSStringExtras.h:
        * platform/mac/WebCoreNSStringExtras.mm:
        * platform/mac/WebFontCache.mm:
        * platform/mac/WebNSAttributedStringExtras.mm: The value NSAttachmentCharacter is
        not defined in the iOS SDK so we add it here.

2011-12-10  Ryosuke Niwa  <rniwa@webkit.org>

        The previous fix broke Lion release build. Fix that.

        * editing/SpellingCorrectionCommand.cpp:

2011-12-10  Ryosuke Niwa  <rniwa@webkit.org>

        Lion build fix attempt after r102527.

        * editing/SpellingCorrectionCommand.cpp:

2011-12-10  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed build fixes. Add missing header for CPP
        DOM bindings and add stubs for new DPI methods.
        
        * bindings/scripts/CodeGeneratorCPP.pm:
        (AddIncludesForType):
        * platform/wx/ScreenWx.cpp:
        (WebCore::screenHorizontalDPI):
        (WebCore::screenVerticalDPI):

2011-12-10  Ryosuke Niwa  <rniwa@webkit.org>

        Mac build fix. Remove an erroneous OVERRIDE.

        * editing/CompositeEditCommand.h:

2011-12-09  Robert Hogan  <robert@webkit.org>

        CSS 2.1 failure: numerous counter-increment-* tests fail
        https://bugs.webkit.org/show_bug.cgi?id=73360

        Reviewed by Julien Chaffraix.

        Allow counter-increment to handle integer underflow and overflow.
        Also allow 'counter' to inherit.

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyCounter::applyInheritValue):
        (WebCore::ApplyPropertyCounter::applyValue):
        (WebCore::ApplyPropertyCounter::createHandler):

2011-12-09  Ryosuke Niwa  <rniwa@webkit.org>

        There should be a way to count the number of nodes held by undo stack
        https://bugs.webkit.org/show_bug.cgi?id=74099

        Reviewed by Enrica Casucci.

        Add getNodesInCommand to all SimpleEditCommands and EditCommandComposition in debug builds.
        We can easily aggregate the number of nodes held by the undo stack by calling
        this function on each item in the undo stack.

        * editing/AppendNodeCommand.cpp:
        (WebCore::AppendNodeCommand::getNodesInCommand):
        * editing/AppendNodeCommand.h:
        * editing/CompositeEditCommand.cpp:
        (WebCore::EditCommandComposition::getNodesInCommand):
        * editing/CompositeEditCommand.h:
        * editing/DeleteFromTextNodeCommand.cpp:
        (WebCore::DeleteFromTextNodeCommand::getNodesInCommand):
        * editing/DeleteFromTextNodeCommand.h:
        * editing/EditCommand.cpp:
        (WebCore::SimpleEditCommand::addNodeAndDescedents):
        * editing/EditCommand.h:
        * editing/Editor.cpp:
        (WebCore::Editor::appliedEditing):
        * editing/InsertIntoTextNodeCommand.cpp:
        (WebCore::InsertIntoTextNodeCommand::getNodesInCommand):
        * editing/InsertIntoTextNodeCommand.h:
        * editing/InsertNodeBeforeCommand.cpp:
        (WebCore::InsertNodeBeforeCommand::getNodesInCommand):
        * editing/InsertNodeBeforeCommand.h:
        * editing/MergeIdenticalElementsCommand.cpp:
        (WebCore::MergeIdenticalElementsCommand::getNodesInCommand):
        * editing/MergeIdenticalElementsCommand.h:
        * editing/RemoveCSSPropertyCommand.cpp:
        (WebCore::RemoveCSSPropertyCommand::getNodesInCommand):
        * editing/RemoveCSSPropertyCommand.h:
        * editing/RemoveNodeCommand.cpp:
        (WebCore::RemoveNodeCommand::getNodesInCommand):
        * editing/RemoveNodeCommand.h:
        * editing/ReplaceNodeWithSpanCommand.cpp:
        (WebCore::ReplaceNodeWithSpanCommand::getNodesInCommand):
        * editing/ReplaceNodeWithSpanCommand.h:
        * editing/SetNodeAttributeCommand.cpp:
        (WebCore::SetNodeAttributeCommand::getNodesInCommand):
        * editing/SetNodeAttributeCommand.h:
        * editing/SetSelectionCommand.h:
        * editing/SplitElementCommand.cpp:
        (WebCore::SplitElementCommand::getNodesInCommand):
        * editing/SplitElementCommand.h:
        * editing/SplitTextNodeCommand.cpp:
        (WebCore::SplitTextNodeCommand::getNodesInCommand):
        * editing/SplitTextNodeCommand.h:
        * editing/WrapContentsInDummySpanCommand.cpp:
        (WebCore::WrapContentsInDummySpanCommand::getNodesInCommand):
        * editing/WrapContentsInDummySpanCommand.h:

2011-11-09  Robert Hogan  <robert@webkit.org>

        CSS 2.1 failure: outline-color-* tests fail
        https://bugs.webkit.org/show_bug.cgi?id=71931

        Reviewed by Julien Chaffraix.

        Test: css2.1/20110323/outline-color-001.html

        WebKit didn't paint the top block in this series of tests because it ignored the outline
        of objects with a zero size. Fix this by taking account of both offset and width of the
        outline when deciding whether to paint it. 

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::paintOutline): paint the outline even when the block has zero size

2011-12-10   Arko Saha  <arko@motorola.com>

        Microdata: Fix compilation error in MICRODATA enabled build.
        https://bugs.webkit.org/show_bug.cgi?id=74235

        Reviewed by Andreas Kling.

        * dom/Document.cpp:
        (WebCore::Document::getItems):

2011-12-10  Jarred Nicholls  <jarred@sencha.com>

        [V8] Remove old ArrayBuffer guards from V8XMLHttpRequestCustom.cpp
        https://bugs.webkit.org/show_bug.cgi?id=74234

        Reviewed by Adam Barth.

        No new tests are necessary.

        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
        (WebCore::V8XMLHttpRequest::responseAccessorGetter):

2011-12-10  Noel Gordon  <noel.gordon@gmail.com>

        WebPImageDecoder progressive decodes fail to decode valid images
        https://bugs.webkit.org/show_bug.cgi?id=74062

        Reviewed by Adam Barth.

        The WEBP header is followed by a so-called P0 header, then some data to
        decode.  If a partial P0 header is received during progressive decodes,
        WebPIDecGetRGB() returns false; that makes the decoder enter the failed
        state, no image appears on the page.

        James Zern (webp) recommended the following via e-mail:

        WebPIUpdate() validates input data, and will return an error status for
        malformed data (bit-stream error, invalid data).  Otherwise, it returns
        OK or SUSPENDED.  OK means that decoding is done/complete/no-error, and
        SUSPENDED means more input data is needed to complete decoding.  A NULL
        return from WebPIDecGetRGB() is valid at this time due to a partial P0,
        and should not be interpreted as a decoding failure.

        No new tests. Not something DumpRenderTree can easily test.

        * platform/image-decoders/webp/WEBPImageDecoder.cpp:
        (WebCore::WEBPImageDecoder::decode):  A NULL WebPIDecGetRGB() return is
        acceptable here.  Return false instead of failing the decoder.

2011-12-09  Benjamin Poulain  <bpoulain@apple.com>

        Add the FileSystem functions of iOS
        https://bugs.webkit.org/show_bug.cgi?id=74164

        Reviewed by David Kilzer.

        Two functions are needed on iOS for temporary files and directories.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/ios/FileSystemIOS.h: Added.
        * platform/ios/FileSystemIOS.mm: Added.
        (WebCore::createTemporaryDirectory):
        (WebCore::createTemporaryFile):

2011-12-09  Jacky Jiang  <zhajiang@rim.com>

        Remove ResourceHandle::bufferedData() from ResourceHandleBlackBerry.cpp
        https://bugs.webkit.org/show_bug.cgi?id=74197

        The bufferedData() was removed in r95120.

        Reviewed by Rob Buis.

        Trivial fix, so no new tests.

        * platform/network/blackberry/ResourceHandleBlackBerry.cpp:

2011-12-09  Eric Penner  <epenner@google.com>

        [chromium] Prevent ASSERT in legitimate out-of-memory case.
        https://bugs.webkit.org/show_bug.cgi?id=74215

        Reviewed by James Robinson.

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::updateCompositorResources):

2011-12-09   Arko Saha  <arko@motorola.com>

        NameNodeListCache should be invalidated when name attribute changes/modified.
        https://bugs.webkit.org/show_bug.cgi?id=70810

        Reviewed by Ryosuke Niwa.

        Test: fast/dom/getelementsbyname-invalidation-cache.html

        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::parseMappedAttribute):
        * html/HTMLAppletElement.cpp:
        (WebCore::HTMLAppletElement::parseMappedAttribute):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::parseMappedAttribute):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::parseMappedAttribute):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::parseMappedAttribute):
        * html/HTMLFrameElementBase.cpp:
        (WebCore::HTMLFrameElementBase::parseMappedAttribute):
        * html/HTMLIFrameElement.cpp:
        (WebCore::HTMLIFrameElement::parseMappedAttribute):
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::parseMappedAttribute):
        * html/HTMLMapElement.cpp:
        (WebCore::HTMLMapElement::parseMappedAttribute):
        * html/HTMLMetaElement.cpp:
        (WebCore::HTMLMetaElement::parseMappedAttribute):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parseMappedAttribute):
        * html/HTMLParamElement.cpp:
        (WebCore::HTMLParamElement::parseMappedAttribute):

2011-12-09  Anders Carlsson  <andersca@apple.com>

        Fix Lion release build.

        * platform/mac/ScrollAnimatorMac.mm:
        (-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]):

2011-12-09  Mark Pilgrim  <pilgrim@chromium.org>

        [FileSystem API] Entry.remove successCallback is required
        https://bugs.webkit.org/show_bug.cgi?id=69639

        Reviewed by Adam Barth.

        Test: fast/filesystem/simple-required-arguments-remove.html

        * fileapi/Entry.idl: remove [Optional] flag from Entry.remove.successCallback parameter

2011-12-09  Tim Horton  <timothy_horton@apple.com>

        background-image transitions trigger between equivalent images
        https://bugs.webkit.org/show_bug.cgi?id=74229
        <rdar://problem/10558627>

        Reviewed by Darin Adler.
        Patch by Simon Fraser.

        For animation property wrappers around StyleImage properties,
        test the equivalence of the image itself, instead of equality of
        the StyleImage pointer.

        Test: transitions/equivalent-background-image-no-transition.html

        * page/animation/AnimationBase.cpp:
        (WebCore::StyleImagePropertyWrapper::StyleImagePropertyWrapper):
        (WebCore::StyleImagePropertyWrapper::equals):
        (WebCore::FillLayerStyleImagePropertyWrapper::FillLayerStyleImagePropertyWrapper):
        (WebCore::FillLayerStyleImagePropertyWrapper::equals):
        (WebCore::FillLayersPropertyWrapper::FillLayersPropertyWrapper):
        (WebCore::AnimationBase::ensurePropertyMap):

2011-12-09  Mary Wu  <mary.wu@torchmobile.com.cn>

        Small style fix on DragDataBlackBerry.cpp
        https://bugs.webkit.org/show_bug.cgi?id=74171

        Reviewed by Rob Buis.

        Style fix, no function impact, no new tests.

        * platform/blackberry/DragDataBlackBerry.cpp:
        (WebCore::DragData::containsURL):
        (WebCore::DragData::asFilenames):
        (WebCore::DragData::asURL):
        (WebCore::DragData::asFragment):

2011-12-09  Tony Chang  <tony@chromium.org>

        add css parsing for flex-flow: wrap and wrap-reverse
        https://bugs.webkit.org/show_bug.cgi?id=74008

        Reviewed by Ojan Vafai.

        Also save 2 bits in StyleFlexibleBoxData by changing the size of m_flexFlow (there are only 4 enum values).

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Print the wrap value if it exists.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue): Parse a second token and put the values into a CSSValueList.
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator EFlexWrap):
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyFlexFlow::applyInheritValue): Does not inherit.
        (WebCore::ApplyPropertyFlexFlow::applyInitialValue):
        (WebCore::ApplyPropertyFlexFlow::applyValue): Special handler for setting two render style values from one
        CSS property.
        (WebCore::ApplyPropertyFlexFlow::createHandler):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSValueKeywords.in:
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::flexWrap):
        (WebCore::InheritedFlags::setFlexWrap):
        (WebCore::InheritedFlags::initialFlexWrap):
        * rendering/style/RenderStyleConstants.h: EFlexWrap to hold flex wrap values.
        * rendering/style/StyleFlexibleBoxData.cpp:
        (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
        (WebCore::StyleFlexibleBoxData::operator==):
        * rendering/style/StyleFlexibleBoxData.h: 2 bits is enough to hold the 4 flexFlow values.

2011-12-09  KwangHyuk Kim  <hyuki.kim@samsung.com>

        [EFL] Add RefPtrEfl specialization for evas_object.
        https://bugs.webkit.org/show_bug.cgi?id=73790

        Reviewed by Ryosuke Niwa.

        As evas_object is also based on reference count, RefPtr is applied for evas_object.

        * PlatformEfl.cmake:
        * platform/efl/RefPtrEfl.cpp: Added.
        (WTF::refIfNotNull):
        (WTF::derefIfNotNull):
        * platform/efl/RefPtrEfl.h: Added.

2011-12-09  Tony Chang  <tony@chromium.org>

        REGRESSION(102234): 2-3% layout regression
        https://bugs.webkit.org/show_bug.cgi?id=74141

        Reviewed by David Hyatt.

        Don't allocate a RuleSet when there are no regions.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::initForRegionStyling):

2011-12-09  Anders Carlsson  <andersca@apple.com>

        Fix assertion failure in ScrollAnimatorMac
        https://bugs.webkit.org/show_bug.cgi?id=74222

        Reviewed by Andreas Kling.

        * platform/mac/ScrollAnimatorMac.mm:
        (-[WebScrollbarPainterControllerDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]):
        This can be called with a nil scrollerImp, just return NSZeroPoint when that happens.

2011-12-09  Anders Carlsson  <andersca@apple.com>

        Move the "is currently drawing into layer" flag out into ScrollbarThemeMac
        https://bugs.webkit.org/show_bug.cgi?id=74217

        Reviewed by Beth Dakin.

        There's no need to store this flag inside ScrollAnimatorMac, just make it a global and put it in ScrollbarThemeMac instead.

        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (-[WebScrollbarPainterDelegate layer]):
        (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
        * platform/mac/ScrollbarThemeMac.h:
        * platform/mac/ScrollbarThemeMac.mm:
        (WebCore::ScrollbarThemeMac::isCurrentlyDrawingIntoLayer):
        (WebCore::ScrollbarThemeMac::paint):

2011-12-09  Anders Carlsson  <andersca@apple.com>

        Minor cleanup in ScrollAnimatorMac.mm
        https://bugs.webkit.org/show_bug.cgi?id=74211

        Reviewed by Andreas Kling.

        * platform/mac/ScrollAnimatorMac.mm:
        (-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]):
        No need to get the scrollbar from the scroll animator anymore.

        (-[WebScrollbarPainterDelegate setUpAlphaAnimation:scrollerPainter:part:WebCore::animateAlphaTo:duration:]):
        (-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
        Try to get data from the scrollbar and/or the scrollable area instead of the scrollbar painter.

2011-12-09  David Levin  <levin@chromium.org>

        Regression(r53595): Sync xhr requests in workers aren't terminated on worker close.
        https://bugs.webkit.org/show_bug.cgi?id=71695

        Reviewed by Zoltan Herczeg.

        Overview: Message loops rely on the message queue being killed in order
        to exit. r53595 stopped this from happening because killing a message loop
        would also stop it from doing database clean up tasks. The database clean up
        tasks needed to be tasks due to ordering issues. (They wanted to run after
        certain order tasks were run.) This was solved by once again terminating
        the message queue but then still runnning clean-up tasks from the killed
        message queue.

        * workers/WorkerRunLoop.cpp:
        (WebCore::WorkerRunLoop::run): Added the call to run clean-up tasks.
        (WebCore::WorkerRunLoop::runInMode):
        (WebCore::WorkerRunLoop::runCleanupTasks): Loop to simply clear out all clean up tasks.
        (WebCore::WorkerRunLoop::Task::performTask): Stop non-clean up tasks
        from running after the loop has been terminated.
        * workers/WorkerRunLoop.h:
        (WebCore::WorkerRunLoop::terminated): Just made it const.
        * workers/WorkerThread.cpp:
        (WebCore::WorkerThreadShutdownFinishTask::performTask): Removed
        the terminate clause since it was put back in stop.
        (WebCore::WorkerThread::stop): Terminate the run loop so
        that all loops will exit and clean up tasks will run. Also removed a comment
        about nested workers because nested workers are no longer imminent and the
        issue mentioned is one of many that should logically be investigated -- behavior correctness
        in the face of different orderings of shutdown between the document and each worker --
        when implementing them.

2011-12-09  Tony Chang  <tony@chromium.org>

        Unreviewed, rolling out r102416.
        http://trac.webkit.org/changeset/102416
        https://bugs.webkit.org/show_bug.cgi?id=73394

        Chromium Win clobber builds are failing.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
        (main):
        * WebCore.gypi:
        * bindings/scripts/generate-bindings.pl:
        * page/DOMWindow.idl:
        * webaudio/DOMWindowWebAudio.idl: Removed.

2011-12-09  Eric Carlson  <eric.carlson@apple.com>

        JSC wrappers for TextTrack and TextTrackCue should not be collected during event dispatch or when owner is reachable
        https://bugs.webkit.org/show_bug.cgi?id=72179

        Reviewed by Geoff Garen.

        Tests: media/track/text-track-cue-is-reachable.html
               media/track/text-track-is-reachable.html

        * GNUmakefile.list.am: Add JSTextTrackCueCustom.cpp and JSTextTrackCustom.cpp.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto
        * bindings/js/JSBindingsAllInOne.cpp: Ditto.

        * bindings/js/JSTextTrackCueCustom.cpp: Added.
        (WebCore::JSTextTrackCueOwner::isReachableFromOpaqueRoots): New.
        (WebCore::JSTextTrackCueOwner::visitChildren): New.

        * bindings/js/JSTextTrackCustom.cpp: Added.
        (WebCore::JSTextTrackOwner::isReachableFromOpaqueRoots): New.
        (WebCore::JSTextTrack::visitChildren): New, mark all cues.
        * bindings/js/JSTextTrackCustom.h: Added.
        (WebCore::root): New.

        * bindings/js/JSTextTrackListCustom.cpp:
        (WebCore::JSTextTrackList::visitChildren): New, mark all tracks.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::trackWillBeRemoved): TextTracks::remove now takes a TextTrack*.

        * html/LoadableTextTrack.h:
        (WebCore::LoadableTextTrack::trackElement): New, return the <track>.

        * html/TextTrack.cpp:
        (WebCore::TextTrack::TextTrack): Initialize m_mediaElement.
        * html/TextTrack.h:
        (WebCore::TextTrack::setMediaElement): New.
        (WebCore::TextTrack::mediaElement): Ditto.

        * html/TextTrack.idl: Add CustomIsReachable and CustomMarkFunction.

        * html/TextTrackCue.idl: Add CustomIsReachable.

        * html/track/TextTrackList.cpp:
        (TextTrackList::append): Set track's media element.
        (TextTrackList::remove): Clear track's media element. Take a raw ptr, not a PassRefPtr.
        * html/track/TextTrackList.h:
        * html/track/TextTrackList.idl: Add CustomMarkFunction

2011-12-09  Chris Fleizach  <cfleizach@apple.com>

        WebKit should ignore images with @alt matching only whitespace
        https://bugs.webkit.org/show_bug.cgi?id=74189

        Reviewed by Darin Adler.

        Test: accessibility/img-alt-tag-only-whitespace.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):

2011-12-09  Anders Carlsson  <andersca@apple.com>

        Remove NSAnimationContext calls
        https://bugs.webkit.org/show_bug.cgi?id=74207

        Reviewed by Sam Weinig.

        NSAnimationContext is not used for NSAnimation subclasses, so the calls to beginGrouping/endGrouping and setDuration:
        are essentially no-ops. Remove them.

        * platform/mac/ScrollAnimatorMac.mm:
        (-[WebScrollbarPainterDelegate setUpAlphaAnimation:scrollerPainter:part:WebCore::animateAlphaTo:duration:]):
        (-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):

2011-12-09  Anders Carlsson  <andersca@apple.com>

        Rename scrollAnimatorDestroyed to invalidate
        https://bugs.webkit.org/show_bug.cgi?id=74206

        Reviewed by Sam Weinig.

        Since these methods can be called when both scrollbars are destroyed and the scroll animator itself is
        destroyed, rename it to something more neutral.

        * platform/mac/ScrollAnimatorMac.mm:
        (-[WebScrollAnimationHelperDelegate invalidate]):
        (-[WebScrollbarPartAnimation invalidate]):
        (-[WebScrollbarPainterDelegate invalidate]):
        (WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):
        (WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
        (WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):

2011-12-09  Anders Carlsson  <andersca@apple.com>

        WebScrollbarPainterControllerDelegate should know about the ScrollableArea, not the ScrollAnimatorMac
        https://bugs.webkit.org/show_bug.cgi?id=74204

        Reviewed by Sam Weinig.

        It makes more logical sense to associate the WebScrollbarPainterControllerDelegate object with its ScrollableArea, since
        painting has nothing to do with animation.

        * platform/mac/ScrollAnimatorMac.mm:
        (-[WebScrollbarPainterControllerDelegate initWithScrollableArea:]):
        (-[WebScrollbarPainterControllerDelegate invalidate]):
        (-[WebScrollbarPainterControllerDelegate contentAreaRectForScrollerImpPair:]):
        (-[WebScrollbarPainterControllerDelegate inLiveResizeForScrollerImpPair:]):
        (-[WebScrollbarPainterControllerDelegate mouseLocationInContentAreaForScrollerImpPair:]):
        (-[WebScrollbarPainterControllerDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]):
        (-[WebScrollbarPainterControllerDelegate scrollerImpPair:updateScrollerStyleForNewRecommendedScrollerStyle:]):
        (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
        (WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):

2011-12-09  Jarred Nicholls  <jarred@sencha.com>

        [JSC] Allow cached attributes in bindings that declare a custom mark function
        https://bugs.webkit.org/show_bug.cgi?id=74187

        Reviewed by Oliver Hunt.

        No new tests, current binding tests are sufficient.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):

2011-12-09  Anders Carlsson  <andersca@apple.com>

        Remove duplicate animation ivars
        https://bugs.webkit.org/show_bug.cgi?id=74194

        Reviewed by Sam Weinig.

        Since we now have one WebScrollbarPainterDelegate for each scrollbar, we no longer need separate
        vertical/horizontal animation objects, so get rid of them.

        * platform/mac/ScrollAnimatorMac.mm:
        (-[WebScrollbarPainterDelegate cancelAnimations]):
        (-[WebScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]):
        (-[WebScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]):
        (-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
        (-[WebScrollbarPainterDelegate scrollAnimatorDestroyed]):

2011-12-09  Anders Carlsson  <andersca@apple.com>

        WebScrollbarPartAnimation should only know about the scrollbar it's animating
        https://bugs.webkit.org/show_bug.cgi?id=74192

        Reviewed by Sam Weinig.

        * platform/mac/ScrollAnimatorMac.mm:
        (-[WebScrollbarPartAnimation initWithScrollbar:featureToAnimate:animateFrom:animateTo:duration:]):
        Change the designated initializer to just take the scrollbar. Also, make the animation non-blocking here
        so we don't have to do it in all the call sites.

        (-[WebScrollbarPartAnimation startAnimation]):
        Update the scrollbar painter.

        (-[WebScrollbarPartAnimation setCurrentProgress:]):
        Just invalidate the scrollbar we're animating.

        (-[WebScrollbarPainterDelegate setUpAlphaAnimation:scrollerPainter:part:WebCore::animateAlphaTo:duration:]):
        (-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
        Update call sites to use the new designated initializer.

2011-12-08  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>

        Inspector: Don't translate the context when rendering the highlights on a tiled layer.
        https://bugs.webkit.org/show_bug.cgi?id=74085

        Reviewed by Kenneth Rohde Christiansen.

        When the frame view is using fixed layouting, the page overlay is the size of the whole
        page and the context shouldn't be translated. The visible rect is still used in that
        case to display element titles within the visible rect.

        Also:
        - Rename overlayRect to visibleRect to reduce confusion in this case.
        - Remove the superfluous boundingBox check.

        * inspector/DOMNodeHighlighter.cpp:

2011-12-09  Vsevolod Vlasov  <vsevik@chromium.org>

        Unreviewed inspector utilities syntax fix.

        * inspector/front-end/utilities.js:
        ():

2011-12-09  Joone Hur  <joone.hur@collabora.co.uk>, Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk> 

        [GTK] Initial implementation of Accelerated Compositing using Clutter
        https://bugs.webkit.org/show_bug.cgi?id=73319

        Reviewed by Gustavo Noronha Silva.

        No new tests added as this feature will be able to reuse the existing 
        CSS3 transforms layout tests.

        * GNUmakefile.am: Include WebCore/platform/graphics/clutter path.
        * GNUmakefile.list.am: Add GraphicsLayerClutter.
        * platform/clutter/GRefPtrClutter.cpp: Added.
        (WTF::adoptGRef):
        (WTF::ClutterActor):
        * platform/clutter/GRefPtrClutter.h: Added.
        * platform/graphics/GraphicsLayer.h: Define PlatformLayer type, which represents ClutterActor.
        * platform/graphics/clutter/GraphicsLayerClutter.cpp: Boilerplate implementation.
        (WebCore::GraphicsLayerClutter::GraphicsLayerClutter):
        (WebCore::GraphicsLayerClutter::platformLayer):
        * platform/graphics/clutter/GraphicsLayerClutter.h: Boilerplate implementation.

2011-12-08  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Introduce a Map class allowing to store values indexed by arbitrary objects.
        https://bugs.webkit.org/show_bug.cgi?id=74084

        Reviewed by Pavel Feldman.

        Test: inspector/map.html

        * inspector/front-end/treeoutline.js:
        (TreeOutline):
        ():
        (TreeElement.prototype.collapse):
        (TreeElement.prototype.expand):
        * inspector/front-end/utilities.js:
        ():

2011-12-09  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: [protocol] generate C++ classes for protocol JSON named types
        https://bugs.webkit.org/show_bug.cgi?id=72835

        Reviewed by Yury Semikhatsky.

        Extends python generator functionality.
        Makes constructor in InspectorObject public.

        * inspector/CodeGeneratorInspector.py:
        * inspector/InspectorValues.h:

2011-12-08  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>

        [Qt] [WK2] Webkit should release TextureMapper GL objects if page paint node is deallocated.
        https://bugs.webkit.org/show_bug.cgi?id=73591

        Reviewed by Noam Rosenthal.

        Implementation of helper function to remove all GL allocated tiles
        when QQuickWebView gets removed from canvas.

        Tested by new API test in WK2 (tst_QQuickWebView::removeFromCanvas).

        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::purgeNodeTexturesRecursive):
        * platform/graphics/texmap/TextureMapperNode.h:

2011-12-08  Leo Yang  <leo.yang@torchmobile.com.cn>

        Upstream platform/network/blackberry/DeferredData.{h, cpp}, NetworkJob.{h, cpp} and NetworkManager.{h, cpp}
        https://bugs.webkit.org/show_bug.cgi?id=73791

        Reviewed by Rob Buis.

        Other main contributors:
        Joe Mason <jmason@rim.com>
        Lianghui Chen <liachen@rim.com>
        Charles Wei <charles.wei@torchmobile.com.cn>

        Initial upstream, can't be built yet, no new tests.

        * platform/network/blackberry/DeferredData.cpp: Added.
        * platform/network/blackberry/DeferredData.h: Added.
        * platform/network/blackberry/NetworkJob.cpp: Added.
        * platform/network/blackberry/NetworkJob.h: Added.
        * platform/network/blackberry/NetworkManager.cpp: Added.
        * platform/network/blackberry/NetworkManager.h: Added.

2011-12-08  Ryosuke Niwa  <rniwa@webkit.org>

        It's semantically incorrect to call notifyNodeListsAttributeChanged in dispatchSubtreeModifiedEvent
        https://bugs.webkit.org/show_bug.cgi?id=74028

        Reviewed by Darin Adler.

        Remove a call to notifyNodeListsAttributeChanged in dispatchSubtreeModified and add explicit calls
        to notifyNodeListsAttributeChanged at appropriate places.

        Also merge notifyNodeListsChildrenChanged with notifyLocalNodeListsChildrenChanged, and
        notifyNodeListsAttributeChanged with notifyLocalNodeListsAttributeChanged, and rename them to
        invalidateNodeListsCacheAfterAttributeChanges and invalidateNodeListsCacheAfterNodeChanges respectively.

        * dom/Attr.cpp:
        (WebCore::Attr::childrenChanged):
        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::childrenChanged):
        * dom/Document.cpp:
        (WebCore::Document::updateRangesAfterNodeChanges):
        * dom/Document.h:
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::addAttribute):
        (WebCore::NamedNodeMap::removeAttribute):
        * dom/Node.cpp:
        (WebCore::removeNodeListCacheIfPossible):
        (WebCore::Node::unregisterDynamicNodeList):
        (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanges):
        (WebCore::Node::invalidateNodeListsCacheAfterNodeChanges):
        (WebCore::Node::dispatchSubtreeModifiedEvent):
        * dom/Node.h:
        * dom/NodeRareData.h:
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::classAttributeChanged):

2011-12-08  Kenichi Ishibashi  <bashi@chromium.org>

        Unreviewed, rolling out r102418.
        http://trac.webkit.org/changeset/102418
        https://bugs.webkit.org/show_bug.cgi?id=71870

        Caused Chromium build failure.

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::toJS):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::toV8Object):
        * html/canvas/WebGLExtension.h:
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::getExtension):
        (WebCore::WebGLRenderingContext::getSupportedExtensions):
        (WebCore::WebGLRenderingContext::maybeRestoreContext):
        * html/canvas/WebGLRenderingContext.h:
        * html/canvas/WebKitLoseContext.cpp: Renamed from Source/WebCore/html/canvas/WebGLLoseContext.cpp.
        (WebCore::WebKitLoseContext::WebKitLoseContext):
        (WebCore::WebKitLoseContext::~WebKitLoseContext):
        (WebCore::WebKitLoseContext::getName):
        (WebCore::WebKitLoseContext::create):
        (WebCore::WebKitLoseContext::loseContext):
        (WebCore::WebKitLoseContext::restoreContext):
        * html/canvas/WebKitLoseContext.h: Renamed from Source/WebCore/html/canvas/WebGLLoseContext.h.
        * html/canvas/WebKitLoseContext.idl: Renamed from Source/WebCore/html/canvas/WebGLLoseContext.idl.

2011-12-08  Fady Samuel  <fsamuel@chromium.org>

        [Chromium] Enable viewport metatag
        https://bugs.webkit.org/show_bug.cgi?id=73495

        Reviewed by Darin Fisher.

        Recompute viewpot parameters on frame rect resize.

        * page/FrameView.cpp:
        (WebCore::FrameView::setFrameRect):

2011-12-08  Kent Tamura  <tkent@chromium.org>

        Build fix for r102419.
        https://bugs.webkit.org/show_bug.cgi?id=73916

        * platform/PopupMenuClient.h:
        (WebCore::PopupMenuClient::listBoxSelectItem):
        Remove unused argument names.

2011-12-08  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests results.

        * bindings/scripts/test/JS/JSFloat64Array.cpp:
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

2011-12-08  Mary Wu  <mary.wu@torchmobile.com.cn>

        Upstream BlackBerry porting of MIMETypeRegistry/KeyboardEvent
        https://bugs.webkit.org/show_bug.cgi?id=73534

        Reviewed by Rob Buis.

        Other main contributors:
        Mike Fenton <mifenton@rim.com>
        Joe Mason <jmason@rim.com>
        Max Feil <mfeil@qnx.com>
        Lukas Sydorowski <lsydorowski@rim.com>
        Crystal Zhang <haizhang@rim.com> 

        Initial upstream, no new tests.

        * platform/blackberry/MIMETypeRegistryBlackBerry.cpp: Added.
        (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
        (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
        (WebCore::MIMETypeRegistry::isApplicationPluginMIMEType):
        * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp: Added.
        (WebCore::keyIdentifierForBlackBerryCharacter):
        (WebCore::windowsKeyCodeForBlackBerryCharacter):
        (WebCore::adjustCharacterFromOS):
        (WebCore::toWebCorePlatformKeyboardEventType):
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        (WebCore::PlatformKeyboardEvent::currentCapsLockState):
        (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
        (WebCore::PlatformKeyboardEvent::getCurrentModifierState):

2011-12-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r101619.
        http://trac.webkit.org/changeset/101619
        https://bugs.webkit.org/show_bug.cgi?id=74158

        this patch produces bad behaviour on mac (Requested by
        jeremya_ on #webkit).

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMouseMoveEvent):
        (WebCore::EventHandler::dragSourceEndedAt):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateHoverActiveState):

2011-12-08  Adam Klein  <adamk@chromium.org>

        [MutationObservers] V8LazyEventHandler breaks microtask delivery semantics
        https://bugs.webkit.org/show_bug.cgi?id=73492

        Reviewed by Adam Barth.

        Test: fast/mutation/inline-event-listener.html

        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::prepareListenerObject): Call v8::Script::Run directly instead of going through V8Proxy.

2011-12-08  Hayato Ito  <hayato@chromium.org>

        Suppress rendering of light children when ShadowRoot is dynamically created.
        https://bugs.webkit.org/show_bug.cgi?id=72441

        Reviewed by Ryosuke Niwa.

        Tests: fast/dom/shadow/dynamically-created-shadow-root-expected.html
               fast/dom/shadow/dynamically-created-shadow-root.html

        * dom/Element.cpp:
        (WebCore::Element::setShadowRoot):

2011-12-08  Pierre Rossi  <pierre.rossi@gmail.com>

        Drop ENABLE_NO_LISTBOX_RENDERING, and make it a runtime decision.
        https://bugs.webkit.org/show_bug.cgi?id=73916

        This was needed for Qt since the mobile theme, which can be picked
        up at runtime, delegates the rendering of list boxes.

        Reviewed by Kent Tamura.

        No new tests, there's no functional change.

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::usesMenuList):
        * html/HTMLSelectElement.h:
        * platform/PopupMenuClient.h:
        (WebCore::PopupMenuClient::listBoxSelectItem):
        (WebCore::PopupMenuClient::multiple):
        * platform/qt/RenderThemeQtMobile.h:
        (WebCore::RenderThemeQtMobile::delegatesMenuListRendering):
        * rendering/RenderMenuList.cpp:
        (WebCore::RenderMenuList::multiple):
        * rendering/RenderMenuList.h:
        * rendering/RenderTheme.h:
        (WebCore::RenderTheme::delegatesMenuListRendering):

2011-12-08  Kenneth Russell  <kbr@google.com>

        Rename WEBKIT_lose_context to WEBKIT_WEBGL_lose_context
        https://bugs.webkit.org/show_bug.cgi?id=71870

        Reviewed by James Robinson.

        Rename largely done with do-webcore-rename with a couple of
        necessary manual fixups. Ran WebGL layout tests.

        * CMakeLists.txt:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::toJS):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::toV8Object):
        * html/canvas/WebGLExtension.h:
        * html/canvas/WebGLLoseContext.cpp: Copied from Source/WebCore/html/canvas/WebKitLoseContext.cpp.
        (WebCore::WebGLLoseContext::WebGLLoseContext):
        (WebCore::WebGLLoseContext::~WebGLLoseContext):
        (WebCore::WebGLLoseContext::getName):
        (WebCore::WebGLLoseContext::create):
        (WebCore::WebGLLoseContext::loseContext):
        (WebCore::WebGLLoseContext::restoreContext):
        * html/canvas/WebGLLoseContext.h: Copied from Source/WebCore/html/canvas/WebKitLoseContext.h.
        * html/canvas/WebGLLoseContext.idl: Copied from Source/WebCore/html/canvas/WebKitLoseContext.idl.
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::getExtension):
        (WebCore::WebGLRenderingContext::getSupportedExtensions):
        (WebCore::WebGLRenderingContext::maybeRestoreContext):
        * html/canvas/WebGLRenderingContext.h:
        * html/canvas/WebKitLoseContext.cpp: Removed.
        * html/canvas/WebKitLoseContext.h: Removed.
        * html/canvas/WebKitLoseContext.idl: Removed.

2011-12-08  Kentaro Hara  <haraken@chromium.org>

        Use the [Supplemental] IDL for webaudio attributes in Chromium
        https://bugs.webkit.org/show_bug.cgi?id=73394

        Reviewed by Adam Barth.

        - Overview: Using the [Supplemental] IDL, this patch moves the attribute
        declarations of webaudio from DOMWindow.idl into a new IDL file
        webaudio/DOMWindowWebAudio.idl, which helps make webaudio a self-contained
        feature (aka a module).

        - This patch changes the build flow of WebCore.gyp as follows:

            Previous build flow:
                foreach $idl (all IDL files) {
                    generate-bindings.pl depends on $idl;
                    generate-bindings.pl reads $idl;
                    generate-bindings.pl generates .h and .cpp files for $idl;
                }

            New build flow (See the discussions in bug 72138 for more details):
                resolve-supplemental.pl depends on all IDL files;
                resolve-supplemental.pl reads all IDL files;
                resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
                resolve-supplemental.pl outputs supplemental_dependency.tmp;
                foreach $idl (all IDL files) {
                    generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
                    generate-bindings.pl reads $idl;
                    generate-bindings.pl reads supplemental_dependency.tmp;
                    generate-bindings.pl generates .h and .cpp files for $idl, including all attributes in IDL files whilementing $idl;
                }

        - This patch introduces a temporary IDL, [Supplemented]. The [Supplemented] IDL
        will be removed after build scripts for all platforms support the [Supplemental] IDL.
        The motivation for the [Supplemented] IDL is as follows:

        In order to support the [Supplemental] IDL, we need to
        (1) run resolve-supplemental.pl and generate supplemental_dependency.tmp
        (2) and run generate-bindings.pl with the supplemental_dependency.tmp.

        This build flow requires a change on the following build scripts,
        but changing all the build scripts all at once without any regression is too difficult:

            - DerivedSources.make
            - DerivedSources.pri
            - GNUmakefile.am
            - PlatformBlackBerry.cmake
            - UseJSC.cmake
            - UseV8.cmake
            - WebCore.vcproj/MigrateScripts
            - WebCore.vcproj/WebCore.vcproj
            - bindings/gobject/GNUmakefile.am
            - WebCore.gyp/WebCore.gyp

        Thus, we are planning to change the build scripts one by one, which implies that
        we need to allow the temporary state in which some build scripts support [Supplemental] IDL
        but others do not. To accomplish this, we introduce a temporary IDL, [Supplemented].
        The [Supplemented] IDL on an attribute means that the attribute is marked with [Supplemental]
        in another IDL file somewhere, like this:

            DOMWindowWebAudio.idl:
                interface [
                    Supplemental=DOMWindow
                ] DOMWindowWebAudio {
                    attribute attr1;
                    attribute attr2;
                };

            DOMWindow.idl:
                interface [
                ] DOMWindow {
                    attribute [Supplemented] attr1; // This line will be removed after all build scripts support the [Su IDL
                    attribute [Supplemented] attr2; // This line will be removed after all build scripts support the [Su IDL.
                    attribute attr3;
                    attribute attr4;
                };

        Assuming these IDL files, this patch implements the following logic in generate-bindings.pl:

            - If a given build script supports the [Supplemental] IDL,
            generate-bindings.pl ignores all attributes with the [Supplemented] IDL.
            - Otherwise, generate-bindings.pl treats all attributes with the [Supplemented] IDL
            as normal attributes and instead ignores all attributes with the [Supplemental] IDL
            (i.e. generate-bindings.pl generates nothing from the IDL file with the [Supplemental] IDL).

        Tests: webaudio/*

        * WebCore.gyp/WebCore.gyp: Describes the build flow that I described above.
        * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
        (main): Reads the IDL file names from the input file (i.e. supplemental_dependency.tmp), which are described at the first column of each line in the input file. If the file name is a "/cygdrive/c/..."-style path, it is converted to a "C:\cygwin\..."-style path by the cygpath command.
        * WebCore.gypi: Added DOMWindowWebAudio.idl.
        * bindings/scripts/generate-bindings.pl: As a temporary solution, if the platform does not support the [Supplemental] IDL, the perl script ignores the [Supplemental] IDL and instead uses the [Supplemented] IDL. Otherwise, the perl script ignores the [Supplemented] IDL and instead uses the [Supplemental] IDL.
        * page/DOMWindow.idl: Added the [Supplemented] IDL to webaudio-related attributes. As I described above, the [Supplemented] IDL will be removed after all platforms support the [Supplemental] IDL.
        * webaudio/DOMWindowWebAudio.idl: Added. Describes the [Supplemental=DOMWindow] IDL. The attributes in this IDL file should be treated as if they are written in DOMWindow.idl.

2011-12-08  Van Lam  <vanlam@google.com>

        Caret keeps blinking during forward-delete
        https://bugs.webkit.org/show_bug.cgi?id=38564

        Reviewed by Darin Adler.

        Currently updateAppearance determines if the caret should stop blinking
        based on whether or not the editing operation changed the position of
        the caret; so the caret stops blinking in case of typing text and
        backwards delete (which always displace the caret) but does not stop
        blinking in the case of forward delete (which does not displace the
        caret).

        Added a boolean member function shouldStopCaretBlinking in EditCommand
        which will return true if the object is a TypingCommand (my
        understanding here is that all TypingCommands should stop the caret
        from blinking for a cycle, currently 0.5 seconds). Then used this
        function to stop the caret from blinking if the last editing command
        is a TypingCommand.

        * editing/EditCommand.h:
        (WebCore::EditCommand::shouldStopCaretBlinking):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::updateAppearance):
        * editing/TypingCommand.h:
        (WebCore::TypingCommand::shouldStopCaretBlinking):

2011-12-08  Adam Klein  <adamk@chromium.org>

        Use HashMap<Node*, OwnPtr<...>> in ChildListMutationScope
        https://bugs.webkit.org/show_bug.cgi?id=73964

        Reviewed by Darin Adler.

        Re-landing r102267 with a fix for the clang build.

        No new tests, refactoring only.

        * dom/ChildListMutationScope.cpp:
        (WebCore::ChildListMutationAccumulator::MutationAccumulationRouter::childAdded):
        (WebCore::ChildListMutationAccumulator::MutationAccumulationRouter::willRemoveChild):
        (WebCore::ChildListMutationAccumulator::MutationAccumulationRouter::incrementScopingLevel):
        (WebCore::ChildListMutationAccumulator::MutationAccumulationRouter::decrementScopingLevel):

2011-12-08  Anders Carlsson  <andersca@apple.com>

        WebScrollbarPainterDelegate should have a pointer to its Scrollbar
        https://bugs.webkit.org/show_bug.cgi?id=74149

        Reviewed by Darin Adler.

        This is another step towards making the scroll animation code more robust.

        * platform/mac/ScrollAnimatorMac.mm:
        (-[WebScrollbarPainterDelegate initWithScrollbar:WebCore::]):
        (-[WebScrollbarPainterDelegate scrollAnimator]):
        (-[WebScrollbarPainterDelegate layer]):
        (-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]):
        (-[WebScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]):
        (-[WebScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]):
        (-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
        (-[WebScrollbarPainterDelegate scrollAnimatorDestroyed]):
        (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
        (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):

2011-12-08  Rakesh KN  <rakesh.kn@motorola.com>

        keyboard event doesn't fire while moving mouse with button pressed
        https://bugs.webkit.org/show_bug.cgi?id=73821

        Reviewed by Alexey Proskuryakov.

        Autoscroll should not stop on key press.

        Test: fast/events/autoscroll-should-not-stop-on-keypress.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::keyEvent):
        Removed the check for autoscroll so that autoscroll is not stopped on
        key press and key event is processed. 

2011-12-08  Anders Carlsson  <andersca@apple.com>

        Add scrollAnimator getter method to WebScrollbarPainterDelegate
        https://bugs.webkit.org/show_bug.cgi?id=74146

        Reviewed by Beth Dakin.

        * platform/mac/ScrollAnimatorMac.mm:
        (-[WebScrollbarPainterDelegate scrollAnimator]):
        (-[WebScrollbarPainterDelegate layer]):
        (-[WebScrollbarPainterDelegate mouseLocationInScrollerForScrollerImp:]):
        (-[WebScrollbarPainterDelegate setUpAlphaAnimation:scrollerPainter:part:WebCore::animateAlphaTo:duration:]):
        (-[WebScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]):
        (-[WebScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]):
        (-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):

2011-12-08  James Robinson  <jamesr@chromium.org>

        Improve handling of frame removal during requestAnimationFrame callback invocation
        https://bugs.webkit.org/show_bug.cgi?id=74036

        Reviewed by Adam Barth.

        See bug for details.

        Test: fast/animation/request-animation-frame-detach-element.html

        * dom/Document.cpp:
        (WebCore::Document::removedLastRef):
        (WebCore::Document::detach):
        * dom/Document.h:
        * dom/ScriptedAnimationController.cpp:
        (WebCore::ScriptedAnimationController::~ScriptedAnimationController):
        (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
        (WebCore::ScriptedAnimationController::scheduleAnimation):
        * dom/ScriptedAnimationController.h:
        (WebCore::ScriptedAnimationController::create):
        (WebCore::ScriptedAnimationController::clearDocumentPointer):
        * page/FrameView.cpp:
        (WebCore::FrameView::serviceScriptedAnimations):

2011-12-08  Yongjun Zhang  <yongjun_zhang@apple.com>

        Use bitfield for bool data members in BitmapImage.
        https://bugs.webkit.org/show_bug.cgi?id=74102

        Reviewed by Darin Adler.

        Class BitmapImage and FrameData has bool data members, we can use bitfield for those data
        members to reduce the BitmapImage's memory footprint.

        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::BitmapImage):
        * platform/graphics/BitmapImage.h:
        (WebCore::FrameData::FrameData):
        * platform/graphics/cairo/ImageCairo.cpp:
        (WebCore::BitmapImage::BitmapImage):
        * platform/graphics/cg/ImageCG.cpp:
        (WebCore::BitmapImage::BitmapImage):
        * platform/graphics/openvg/ImageOpenVG.cpp:
        (WebCore::BitmapImage::BitmapImage):
        * platform/graphics/qt/ImageQt.cpp:
        (WebCore::BitmapImage::BitmapImage):

2011-12-08  Anders Carlsson  <andersca@apple.com>

        Fix a paste-o in ScrollAnimatorMac::updateScrollerStyle
        https://bugs.webkit.org/show_bug.cgi?id=74145

        Reviewed by Sam Weinig.

        Call setHorizontalScrollerImp to set the horizontal scrollbar painter.

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::updateScrollerStyle):

2011-12-08  Anders Carlsson  <andersca@apple.com>

        Create one WebScrollbarPainterDelegate for each scrollbar
        https://bugs.webkit.org/show_bug.cgi?id=74142

        Reviewed by Sam Weinig.

        Create and destroy WebScrollbarPainterDelegate objects as scrollbars come and go.
        This is a step towards simplifying the WebScrollbarPainterDelegate object.

        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
        (WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):
        (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
        (WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
        (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
        (WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):
        (WebCore::ScrollAnimatorMac::cancelAnimations):

2011-12-08  David Reveman  <reveman@chromium.org>

        [Chromium] Add per-tile painting flag to DumpRenderTree and rename AcceleratedDrawing to AcceleratedPainting in chromium specific code.
        https://bugs.webkit.org/show_bug.cgi?id=74017

        Reviewed by James Robinson.

        Add per-tile drawing to page settings.

        No new tests.

        * page/Settings.h:
        (WebCore::Settings::setPerTileDrawingEnabled):
        (WebCore::Settings::perTileDrawingEnabled):
        * testing/Internals.cpp:
        (WebCore::Internals::setPerTileDrawingEnabled):
        * testing/Internals.h:

2011-12-08  Anders Carlsson  <andersca@apple.com>

        Add a scrollbarPainterForScrollbar helper function
        https://bugs.webkit.org/show_bug.cgi?id=74139

        Reviewed by Sam Weinig.

        * platform/mac/ScrollAnimatorMac.mm:
        (macScrollbarTheme):
        (scrollbarPainterForScrollbar):
        (WebCore::ScrollAnimatorMac::mouseEnteredScrollbar):
        (WebCore::ScrollAnimatorMac::mouseExitedScrollbar):
        (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
        (WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar):
        (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
        (WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar):

2011-12-08  James Robinson  <jamesr@chromium.org>

        [chromium] Move NonCompositedContentHost to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=74047

        Reviewed by Kenneth Russell.

        Updates WebCore.gypi to remove files no longer within WebCore and removes unused forward declaration and include
        from LayerRendererChromium.

        * WebCore.gypi:
        * platform/graphics/chromium/LayerRendererChromium.cpp:
        * platform/graphics/chromium/LayerRendererChromium.h:

2011-12-08  Sami Kyostila  <skyostil@google.com>

        [chromium] Layer contents scale change should trigger invalidation

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

        When the contents scale of a layer is changed, the entire contents of
        the layer should be marked dirty.

        Reviewed by James Robinson.

        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::setContentsScale):

2011-12-08  Stephen White  <senorblanco@chromium.org>

        [chromium] Add CSS_FILTERS custom binding file to WebCore.gypi.
        https://bugs.webkit.org/show_bug.cgi?id=74091

        Reviewed by Adam Barth.

        If it builds, you're happy.

        * WebCore.gypi:

2011-12-08  Ryosuke Niwa  <rniwa@webkit.org>

        Line breaks are lost when pasted into textarea text starting with a blank line set while textarea is hidden
        https://bugs.webkit.org/show_bug.cgi?id=74126

        Reviewed by Tony Chang.

        The bug was caused by the code that generated text out of pre-rendered text was generating div's inside the fragment
        pasted into textarea even though serialization algorithm in textarea doesn't handle block elements.

        Fixed the bug by special-casing this in createFragmentFromText. In the long run, we should really get rid of this
        whole pre-rendering trick.

        * editing/markup.cpp:
        (WebCore::createFragmentFromText):

2011-12-08  Florin Malita  <fmalita@google.com>

        Moving SVG elements on the page doesn't always erase element at the old position
        https://bugs.webkit.org/show_bug.cgi?id=74002

        Reviewed by Darin Adler.

        Test: svg/repaint/container-repaint.svg

        * rendering/svg/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::layout):
        Save the old repaint bounds before updating the viewport.

2011-12-08  Tim Horton  <timothy_horton@apple.com>

        Enable animations of CSS images using -webkit-cross-fade
        https://bugs.webkit.org/show_bug.cgi?id=74049
        <rdar://problem/10209303>

        Reviewed by Simon Fraser.

        Add support for animating CSS images in the following properties:
            - background(-image)
            - border-image(-source)
            - list-style(-image)
            - -webkit-mask-box-image(-source)
            - -webkit-mask-image(-source)
        
        This patch only adds support for transitioning between NinePieceImages
        where all of the properties except the image itself are equal, and the
        size of the images are equal. Other cases will not animate.
        
        Add animation blend functions for StyleImage and NinePieceImage.
        
        Apply the proper compositing operation to -webkit-cross-fade, and
        fix handling of the destination and source areas to support scaling.

        Tests: animations/cross-fade-background-image.html
               animations/cross-fade-border-image-source.html
               animations/cross-fade-list-style-image.html
               animations/cross-fade-webkit-mask-box-image.html
               animations/cross-fade-webkit-mask-image.html

        * css/CSSCrossfadeValue.cpp:
        (WebCore::cachedImageForCSSValue):
        (WebCore::CSSCrossfadeValue::fixedSize):
        (WebCore::CSSCrossfadeValue::image):
        * css/CSSImageValue.cpp:
        (WebCore::CSSImageValue::CSSImageValue):
        * css/CSSImageValue.h:
        (WebCore::CSSImageValue::create):
        * page/animation/AnimationBase.cpp:
        (WebCore::crossfadeBlend):
        (WebCore::blendFunc):
        (WebCore::RefCountedPropertyWrapper::RefCountedPropertyWrapper):
        (WebCore::RefCountedPropertyWrapper::blend):
        (WebCore::FillLayerRefCountedPropertyWrapper::FillLayerRefCountedPropertyWrapper):
        (WebCore::FillLayerRefCountedPropertyWrapper::blend):
        (WebCore::FillLayersPropertyWrapper::FillLayersPropertyWrapper):
        (WebCore::AnimationBase::ensurePropertyMap):
        (WebCore::addShorthandProperties):
        * platform/graphics/CrossfadeGeneratedImage.cpp:
        (WebCore::CrossfadeGeneratedImage::drawCrossfade):
        (WebCore::CrossfadeGeneratedImage::draw):
        (WebCore::CrossfadeGeneratedImage::drawPattern):
        * platform/graphics/CrossfadeGeneratedImage.h:
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::setMaskImage):

2011-12-08  Stephen White  <senorblanco@chromium.org>

        Use Skia's implementation of Gaussian blur when accelerated filters
        are enabled.
        https://bugs.webkit.org/show_bug.cgi?id=73949

        Reviewed by Zoltan Herczeg.

        In the future, this will be covered by the SVG tests run in GPU mode.

        * WebCore.gypi:
        Add FEGaussianBlurSkia.cpp to the build.
        * platform/graphics/filters/FEGaussianBlur.cpp:
        (WebCore::FEGaussianBlur::platformApplySoftware):
        Call out to platformApplySkia() when USE_SKIA is enabled.
        * platform/graphics/filters/FEGaussianBlur.h:
        platformApplySkia() declaration.
        * platform/graphics/filters/skia: Added.
        * platform/graphics/filters/skia/FEGaussianBlurSkia.cpp: Added.
        (WebCore::FEGaussianBlur::platformApplySkia):
        On the Skia port, use SkBlurImageFilter for drawing
        Gaussian blurs in accelerated mode.
        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::ImageBuffer::copyImage):
        Implement ImageBuffer::copyImage() with DontCopyBackingStore semantics.

2011-12-08  Erik Arvidsson  <arv@chromium.org>

        CodeGeneratorV8: Fix issue with overloaded static conditional methods
        https://bugs.webkit.org/show_bug.cgi?id=74114

        Reviewed by Adam Barth.

        The code generator was missing checks for Conditional for overloaded methods.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateOverloadedFunctionCallback): Generate needed #ifdefs.
        (GenerateFunctionCallback): Ditto.
        * bindings/scripts/test/V8/V8TestObj.cpp: Wrap conditional methods with #ifdefs.
        (WebCore::ConfigureV8TestObjTemplate):

2011-12-08  Dominic Mazzoni  <dmazzoni@google.com>

        AccessibilityController should support listening to notifications on all elements.
        https://bugs.webkit.org/show_bug.cgi?id=72866

        Changes accessibilitySetShouldRepostNotifications from an instance method
        into a class method so that it can be used for global notification listeners,
        not just for listeners on a particular object.

        Reviewed by Chris Fleizach.

        Test: accessibility/notification-listeners.html

        * accessibility/mac/WebAccessibilityObjectWrapper.h:
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (+[WebAccessibilityObjectWrapper accessibilitySetShouldRepostNotifications:]):
        (-[WebAccessibilityObjectWrapper accessibilityPostedNotification:]):

2011-12-08  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Rename createScriptCallStack() without parameters to createScriptCallStackForInspector().
        https://bugs.webkit.org/show_bug.cgi?id=74120

        Reviewed by Pavel Feldman.

        * bindings/js/ScriptCallStackFactory.cpp:
        (WebCore::createScriptCallStackForInspector):
        * bindings/js/ScriptCallStackFactory.h:
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateParametersCheck):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateFunctionCallback):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjInternal::customArgsAndExceptionCallback):
        * bindings/v8/ScriptCallStackFactory.cpp:
        (WebCore::createScriptCallStackForInspector):
        * bindings/v8/ScriptCallStackFactory.h:

2011-12-08  Adrienne Walker  <enne@google.com>

        [chromium] Remove dead code in compositor
        https://bugs.webkit.org/show_bug.cgi?id=74103

        Reviewed by James Robinson.

        Tested via the compiler.

        * platform/graphics/chromium/LayerChromium.h:
        * platform/graphics/chromium/LayerRendererChromium.cpp:
        * platform/graphics/chromium/LayerRendererChromium.h:

2011-12-08  Eric Penner  <epenner@google.com>

        [chromium] Need to adjust memory limit and viewport multipliers.
        https://bugs.webkit.org/show_bug.cgi?id=74022

        Reviewed by James Robinson.

        * platform/graphics/chromium/TextureManager.cpp:
        (WebCore::TextureManager::highLimitBytes): Changing constants
        (WebCore::TextureManager::reclaimLimitBytes): ditto

2011-12-08  Benjamin Poulain  <bpoulain@apple.com>

        Add a platform EventLoop for iOS
        https://bugs.webkit.org/show_bug.cgi?id=74043

        Reviewed by David Kilzer.

        * WebCore.xcodeproj/project.pbxproj:
        * platform/ios/EventLoopIOS.mm: Added.
        (WebCore::EventLoop::cycle):

2011-12-08  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: return node counts on the document / detached root basis
        https://bugs.webkit.org/show_bug.cgi?id=74104

        Reviewed by Yury Semikhatsky.

        * bindings/js/ScriptProfiler.h:
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::domNodeCount):
        * bindings/v8/ScriptProfiler.h:
        * inspector/Inspector.json:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorMemoryAgent.cpp:
        (WebCore::InspectorMemoryAgent::getDOMNodeCount):
        (WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
        * inspector/InspectorMemoryAgent.h:
        (WebCore::InspectorMemoryAgent::create):

2011-12-08  Andreas Kling  <kling@webkit.org>

        RenderObject: Rename styleSlowCase() to styleInRegion().

        Rubber-stamped by David Hyatt.

        * WebCore.exp.in:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::styleInRegion):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::style):

2011-12-08  Andreas Kling  <kling@webkit.org>

        Optimize RenderObject::containingBlock().
        <http://webkit.org/b/74109>

        Reviewed by David Hyatt.

        When climbing the parent chain to locate the containing block-level element,
        use !isRenderBlock() to reject renderers rather than checking against an arbitrary
        list of non-block renderers and then rejecting anything that isn't a block anyway.

        RenderObject::containingBlock() was very hot (2.0%) when scrolling on youtube.com.
        This change takes it down to 1.0% (60% of which is RenderObject::isRenderBlock().)

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::containingBlock):

2011-12-08  Nayan Kumar K  <nayankk@motorola.com>

        Define DEBUG_GL_COMMANDS only in debug builds.
        https://bugs.webkit.org/show_bug.cgi?id=74083

        Reviewed by Noam Rosenthal.

        No tests added as this change does not affect functionality.

        * platform/graphics/opengl/TextureMapperGL.cpp:

2011-12-08  Ryosuke Niwa  <rniwa@webkit.org>

        CompositeEditCommand should not be kept alive for undo and redo
        https://bugs.webkit.org/show_bug.cgi?id=64414

        Reviewed by Enrica Casucci.

        This patch introduces EditCommandComposition that replaces CompositeEditCommand for
        undo and redo purposes. Furthermore, we now keep a list of commands instead of a tree of commands
        to unapply and reapply edit commands that composes an undoable action.

        Each top-level CompositeEditCommand holds a ref-pointer to EditCommandComposition,
        and applyCommandToComposite adds new SimpleEditCommands to the list.

        * editing/CompositeEditCommand.cpp:
        (WebCore::EditCommandComposition::create):
        (WebCore::EditCommandComposition::doApply): Never used.
        (WebCore::EditCommandComposition::doUnapply):
        (WebCore::EditCommandComposition::doReapply):
        (WebCore::EditCommandComposition::append):
        (WebCore::CompositeEditCommand::~CompositeEditCommand): Add an assertion to ensure we didn't create
        a composition for CompositeEditCommands that have parents.
        (WebCore::CompositeEditCommand::doUnapply): Never used.
        (WebCore::CompositeEditCommand::doReapply): Never used.
        (WebCore::CompositeEditCommand::ensureComposition): Creates and attaches a EditCommandComposition.
        (WebCore::CompositeEditCommand::applyCommandToComposite): Append a SimpleEditCommand to the composition.

        * editing/CompositeEditCommand.h:
        (WebCore::EditCommandComposition::EditCommandComposition):
        (WebCore::CompositeEditCommand::composition):
        (WebCore::toEditCommandComposition):
        (WebCore::toCompositeEditCommand):

        * editing/DeleteButtonController.cpp: Wrap RemoveNodeCommand in RemoveTargetCommand since top level
        commands are now required to be a CompositeEditCommand.
        (WebCore::RemoveTargetCommand::create):
        (WebCore::RemoveTargetCommand::RemoveTargetCommand):
        (WebCore::RemoveTargetCommand::doApply):
        (WebCore::DeleteButtonController::deleteTarget):

        * editing/EditCommand.cpp:
        (WebCore::EditCommand::EditCommand): New constructor; used by EditCommandComposition.
        (WebCore::EditCommand::apply): Create a composition for a top-level command.
        (WebCore::EditCommand::unapply): Since we clear m_parent of SimpleEditCommand as soon as they are
        added to EditCommandComposition, we can't use isTopLevelCommand() to differentiate EditCommandComposition
        from SimpleEditCommand. Use isEditCommandComposition() instead.
        (WebCore::EditCommand::reapply): Ditto.
        (WebCore::compositionIfPossible):
        (WebCore::EditCommand::setStartingSelection): Update the starting selection of EditCommandComposition. 
        (WebCore::EditCommand::setEndingSelection): Ditto.
        (WebCore::EditCommand::setParent): Accepts a null pointer in order to avoid keeping a stale pointer in
        m_parent inside SimpleEditCommand when CompositeEditCommand goes away.

        * editing/EditCommand.h:
        (WebCore::EditCommand::isSimpleEditCommand):
        (WebCore::EditCommand::isCompositeEditCommand):
        (WebCore::EditCommand::isEditCommandComposition):
        (WebCore::EditCommand::parent):
        (WebCore::toSimpleEditCommand):

        * editing/Editor.cpp:
        (WebCore::Editor::appliedEditing): Register a EditCommandComposition, instead of a CompositeEditCommand
        to the undo stack.
        (WebCore::Editor::unappliedEditing): Unapplied or reapplied commands are now always EditCommandComposition.
        (WebCore::Editor::reappliedEditing):
        * editing/Editor.h:

2011-12-08  Stephen White  <senorblanco@chromium.org>

        Add missing V8 bindings to get CSS_FILTERS to compile in Chromium.
        https://bugs.webkit.org/show_bug.cgi?id=74091

        Reviewed by Kenneth Russell.

        Will be covered by tests in css3/filters (when enabled).

        * bindings/v8/custom/V8WebKitCSSFilterValueCustom.cpp: Added.
        (WebCore::V8WebKitCSSFilterValue::indexedPropertyGetter):

2011-12-08  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=73348
        REGRESSION: Assertion when loading a page with a scrollable RenderLayer 
        -and corresponding-
        <rdar://problem/10518918>

        Reviewed by Darin Adler.

        The main problem here is that certain delegate calls into AppKit for overlay 
        scrollbars can cause AppKit to call back into WebKit looking for more information. 
        The assertion happens when WebKit tells AppKit that the scroll position has 
        changed during a layout, and AppKit immediately asks WebKit to convert some 
        coordinates, and WebKit asserts that you shouldn't do that while a layout is still 
        happening. It's still possible for AppKit to call this delegate method while a 
        layout is happening, and we should guard against that. This patch, however, does 
        not do that.

        This change instead addresses the reason this assertion started happening much 
        more frequently recently, which is that it recently became true that 
        notifyPositionChanged() can be called when the position has not changed. To fix 
        the assertion AND the bug that that change was intended to fix, we can just make 
        sure that either the position OR the scroll origin has changed before calling 
        notifyPositionChanged(). 

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::immediateScrollToPoint):

        Call resetScrollOriginChanged() after the scroll instead of before so that we know 
        whether or not to call notifyPositionChanged().
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::updateScrollbars):

2011-12-08  Kaustubh Atrawalkar  <kaustubh@motorola.com>

        Fixing support for static conditional overloaded functions.
        https://bugs.webkit.org/show_bug.cgi?id=74068

        Reviewed by Adam Barth.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation): Pushing "static" keyword after condition "#if".
        * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
        (WebDOMTestObj::overloadedMethod1): Added newly generated bindings.
        * bindings/scripts/test/CPP/WebDOMTestObj.h: Ditto.
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto.
        (webkit_dom_test_obj_overloaded_method1):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto.
        * bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
        (WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
        (WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
        (WebCore::jsTestObjConstructorFunctionOverloadedMethod1):
        * bindings/scripts/test/JS/JSTestObj.h: Ditto.
        * bindings/scripts/test/ObjC/DOMTestObj.h: Ditto.
        * bindings/scripts/test/ObjC/DOMTestObj.mm: Ditto.
        (-[DOMTestObj overloadedMethod1:]):
        * bindings/scripts/test/TestObj.idl: Ditto.
        * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
        (WebCore::TestObjInternal::overloadedMethod11Callback):
        (WebCore::TestObjInternal::overloadedMethod12Callback):
        (WebCore::TestObjInternal::overloadedMethod1Callback):
        (WebCore::ConfigureV8TestObjTemplate):

2011-12-08  Andreas Kling  <kling@webkit.org>

        Remove EventListenerMap destructor.
        <http://webkit.org/b/74096>

        Reviewed by Darin Adler.

        Let the compiler generate ~EventListenerMap(). We only needed it when the hash map
        was managing raw pointers.

        We're losing the no-iterators assertion from clear() by doing this, but that was
        superfluous to begin with - we were just using it to avoid duplicating code.

        * dom/EventListenerMap.cpp:
        * dom/EventListenerMap.h:

2011-12-08  Takashi Toyoshima  <toyoshim@chromium.org>

        Provide more specific error description for SocketStreamError.
        https://bugs.webkit.org/show_bug.cgi?id=74066

        Reviewed by Martin Robinson.

        No new tests because this change just improve error messages for unexpected failures.

        * platform/network/soup/SocketStreamError.h: Add an argument for passing error description.
        (WebCore::SocketStreamError::SocketStreamError):
        * platform/network/soup/SocketStreamHandleSoup.cpp: Add error description for SocketStreamError.
        (WebCore::SocketStreamHandle::connected):
        (WebCore::SocketStreamHandle::readBytes):
        (WebCore::SocketStreamHandle::platformSend):
        (WebCore::SocketStreamHandle::platformClose):

2011-12-08  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions][CSSOM] Implement NamedFlow interface
        https://bugs.webkit.org/show_bug.cgi?id=66642

        Reviewed by David Hyatt.

        Add WebKitNamedFlow to support the NamedFlow interface. No methods are
        yet implemented on this interface. The NamedFlow object is a live object.
        The first time user asks for it, it gets a valid JS object whose properties
        will reflect the changes to the flow thread.

        Tests: fast/regions/webkit-named-flow-existing-flow.html
               fast/regions/webkit-named-flow-flow-added.html
               fast/regions/webkit-named-flow-modified-flow.html
               fast/regions/webkit-named-flow-non-existing-flow.html
               fast/regions/webkit-named-flow-removed-flow.html
               fast/regions/webkit-named-flow-same-object.html

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/gobject/GNUmakefile.am:
        * dom/DOMAllInOne.cpp:
        * dom/Document.cpp:
        (WebCore::Document::webkitGetFlowByName):
        * dom/Document.h:
        * dom/Document.idl:
        * dom/NodeRenderingContext.cpp:
        (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
        * dom/WebKitNamedFlow.cpp: Added.
        (WebCore::WebKitNamedFlow::WebKitNamedFlow):
        (WebCore::WebKitNamedFlow::~WebKitNamedFlow):
        * dom/WebKitNamedFlow.h: Added.
        (WebCore::WebKitNamedFlow::create):
        * dom/WebKitNamedFlow.idl: Added.
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::ensureNamedFlow):
        * rendering/RenderFlowThread.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createObject):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::ensureRenderFlowThreadWithName):
        * rendering/RenderView.h:

2011-12-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r102321.
        http://trac.webkit.org/changeset/102321
        https://bugs.webkit.org/show_bug.cgi?id=74072

        "Breaks all Chromium clobbered builds" (Requested by apavlov_
        on #webkit).

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
        (main):
        * WebCore.gypi:
        * bindings/scripts/generate-bindings.pl:
        * page/DOMWindow.idl:
        * webaudio/DOMWindowWebAudio.idl: Removed.

2011-12-08  Shinya Kawanaka  <shinyak@google.com>

        Refactoring: Editor::requestCheckingFor should take SpellCheckRequest object.
        https://bugs.webkit.org/show_bug.cgi?id=74033

        Reviewed by Hajime Morita.

        SpellChecker::requestCheckingFor takes SpellCheckRequest object in order to make it easy to
        pass necessary information to requestCheckingFor.

        No new tests. Covered by existing tests.

        * editing/Editor.cpp:
        (WebCore::Editor::replaceSelectionWithFragment):
          Uses the new interface.
        (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): ditto.
        * editing/SpellChecker.cpp:
        (WebCore::SpellCheckRequest::SpellCheckRequest):
        (WebCore::SpellCheckRequest::~SpellCheckRequest):
        (WebCore::SpellCheckRequest::create):
          Creates a new SpellCheckRequest object.
        (WebCore::SpellChecker::requestCheckingFor):
          Uses the new interface.
        (WebCore::SpellChecker::didCheck):
        * editing/SpellChecker.h:
        (WebCore::SpellCheckRequest::setSequence):
        (WebCore::SpellCheckRequest::sequence):
        (WebCore::SpellCheckRequest::checkingRange):
        (WebCore::SpellCheckRequest::paragraphRange):
        (WebCore::SpellCheckRequest::text):
        (WebCore::SpellCheckRequest::mask):
        (WebCore::SpellCheckRequest::rootEditableElement):

2011-12-08  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r102323.
        http://trac.webkit.org/changeset/102323
        https://bugs.webkit.org/show_bug.cgi?id=74069

        Caused Chromium and GTK build failure (Requested by bashi on
        #webkit).

        * testing/Internals.cpp:
        (WebCore::Internals::getPageScaleFactor):
        * testing/Internals.h:
        * testing/Internals.idl:

2011-12-08  Fady Samuel  <fsamuel@chromium.org>

        Move scalePageBy from eventSender to window.internals
        https://bugs.webkit.org/show_bug.cgi?id=64512

        Reviewed by Simon Fraser.

        Added setPageScaleFactor to window.internals.
        Renamed window.internals.getPageScaleFactor to window.internals.pageScaleFactor
        to match the webkit style.

        * testing/Internals.cpp:
        (WebCore::Internals::pageScaleFactor):
        (WebCore::Internals::setPageScaleFactor):
        * testing/Internals.h:
        * testing/Internals.idl:

2011-12-08  Kentaro Hara  <haraken@chromium.org>

        Use the [Supplemental] IDL for webaudio attributes in Chromium
        https://bugs.webkit.org/show_bug.cgi?id=73394

        Reviewed by Adam Barth.

        - Overview: Using the [Supplemental] IDL, this patch moves the attribute
        declarations of webaudio from DOMWindow.idl into a new IDL file
        webaudio/DOMWindowWebAudio.idl, which helps make webaudio a self-contained
        feature (aka a module).

        - This patch changes the build flow of WebCore.gyp as follows:

            Previous build flow:
                foreach $idl (all IDL files) {
                    generate-bindings.pl depends on $idl;
                    generate-bindings.pl reads $idl;
                    generate-bindings.pl generates .h and .cpp files for $idl;
                }

            New build flow (See the discussions in bug 72138 for more details):
                resolve-supplemental.pl depends on all IDL files;
                resolve-supplemental.pl reads all IDL files;
                resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
                resolve-supplemental.pl outputs supplemental_dependency.tmp;
                foreach $idl (all IDL files) {
                    generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
                    generate-bindings.pl reads $idl;
                    generate-bindings.pl reads supplemental_dependency.tmp;
                    generate-bindings.pl generates .h and .cpp files for $idl, including all attributes in IDL files whilementing $idl;
                }

        - This patch introduces a temporary IDL, [Supplemented]. The [Supplemented] IDL
        will be removed after build scripts for all platforms support the [Supplemental] IDL.
        The motivation for the [Supplemented] IDL is as follows:

        In order to support the [Supplemental] IDL, we need to
        (1) run resolve-supplemental.pl and generate supplemental_dependency.tmp
        (2) and run generate-bindings.pl with the supplemental_dependency.tmp.

        This build flow requires a change on the following build scripts,
        but changing all the build scripts all at once without any regression is too difficult:

            - DerivedSources.make
            - DerivedSources.pri
            - GNUmakefile.am
            - PlatformBlackBerry.cmake
            - UseJSC.cmake
            - UseV8.cmake
            - WebCore.vcproj/MigrateScripts
            - WebCore.vcproj/WebCore.vcproj
            - bindings/gobject/GNUmakefile.am
            - WebCore.gyp/WebCore.gyp

        Thus, we are planning to change the build scripts one by one, which implies that
        we need to allow the temporary state in which some build scripts support [Supplemental] IDL
        but others do not. To accomplish this, we introduce a temporary IDL, [Supplemented].
        The [Supplemented] IDL on an attribute means that the attribute is marked with [Supplemental]
        in another IDL file somewhere, like this:

            DOMWindowWebAudio.idl:
                interface [
                    Supplemental=DOMWindow
                ] DOMWindowWebAudio {
                    attribute attr1;
                    attribute attr2;
                };

            DOMWindow.idl:
                interface [
                ] DOMWindow {
                    attribute [Supplemented] attr1; // This line will be removed after all build scripts support the [Su IDL
                    attribute [Supplemented] attr2; // This line will be removed after all build scripts support the [Su IDL.
                    attribute attr3;
                    attribute attr4;
                };

        Assuming these IDL files, this patch implements the following logic in generate-bindings.pl:

            - If a given build script supports the [Supplemental] IDL,
            generate-bindings.pl ignores all attributes with the [Supplemented] IDL.
            - Otherwise, generate-bindings.pl treats all attributes with the [Supplemented] IDL
            as normal attributes and instead ignores all attributes with the [Supplemental] IDL
            (i.e. generate-bindings.pl generates nothing from the IDL file with the [Supplemental] IDL).

        Tests: webaudio/*

        * WebCore.gyp/WebCore.gyp: Describes the build flow that I described above.
        * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
        (main): Reads the IDL file names from the input file (i.e. supplemental_dependency.tmp), which are described at the first column of each line in the input file. If the file name is a "/cygdrive/c/..."-style path, it is converted to a "C:\cygwin\..."-style path by the cygpath command.
        * WebCore.gypi: Added DOMWindowWebAudio.idl.
        * bindings/scripts/generate-bindings.pl: As a temporary solution, if the platform does not support the [Supplemental] IDL, the perl script ignores the [Supplemental] IDL and instead uses the [Supplemented] IDL. Otherwise, the perl script ignores the [Supplemented] IDL and instead uses the [Supplemental] IDL.
        * page/DOMWindow.idl: Added the [Supplemented] IDL to webaudio-related attributes. As I described above, the [Supplemented] IDL will be removed after all platforms support the [Supplemental] IDL.
        * webaudio/DOMWindowWebAudio.idl: Added. Describes the [Supplemental=DOMWindow] IDL. The attributes in this IDL file should be treated as if they are written in DOMWindow.idl.

2011-12-07  Yosifumi Inoue  <yosin@chromium.org>

        CSS color gets adjusted for disabled input elements
        https://bugs.webkit.org/show_bug.cgi?id=54643

        Reviewed by Kent Tamura.

        No new tests. covered by existing tests. Need rebasing some existing tests for Chromimum.

        Remove automatic color adjustment for disabled text control for Chromimum.

        * css/themeChromium.css: Add CSS entries for default style for disabled input and textarea elements.
        * WebCore/rendering/RenderTextControl.cpp:
        (disabledTextColor): Removed for PLATFORM(CHROMIUM)
        (RenderTextControl::adjustInnerTextStyle): Don't call disabledTextColor for Chromium.

2011-12-07  Dmitry Lomov  <dslomov@google.com>

        https://bugs.webkit.org/show_bug.cgi?id=74038
        [V8][Chromium] Support legacy argument order in window.postMessage/window.webkitPostMessage.

        Reviewed by David Levin.

        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::isLegacyTargetOriginDesignation):
        (WebCore::handlePostMessageCallback):

2011-12-07  Mary Wu  <mary.wu@torchmobile.com.cn>

        Upstream 4 files into WebCore/platform/blackberry
        https://bugs.webkit.org/show_bug.cgi?id=73541

        Reviewed by Antonio Gomes.

        Initial upstream of BlackBerry porting of PlatformScreen/
        SSLKeyGenerator/Sound/Widget, no new tests.

        * PlatformBlackBerry.cmake: Modified to remove empty file "WheelEventBlackBerry.cpp"
        * platform/blackberry/PlatformScreenBlackBerry.cpp: Added.
        (WebCore::screenIsMonochrome):
        (WebCore::screenDepthPerComponent):
        (WebCore::screenDepth):
        (WebCore::screenAvailableRect):
        (WebCore::screenRect):
        * platform/blackberry/SSLKeyGeneratorBlackBerry.cpp: Added.
        (WebCore::getSupportedKeySizes):
        (WebCore::signedPublicKeyAndChallengeString):
        * platform/blackberry/SoundBlackBerry.cpp: Added.
        (WebCore::systemBeep):
        * platform/blackberry/WidgetBlackBerry.cpp: Added.
        (WebCore::Widget::Widget):
        (WebCore::Widget::~Widget):
        (WebCore::Widget::hide):
        (WebCore::Widget::paint):
        (WebCore::Widget::setCursor):
        (WebCore::Widget::setFocus):
        (WebCore::Widget::setFrameRect):
        (WebCore::Widget::setIsSelected):
        (WebCore::Widget::show):
        (WebCore::Widget::frameRect):

2011-12-07  Kenichi Ishibashi  <bashi@chromium.org>

        Refactor CSSParser::parseFontFaceSrc()
        https://bugs.webkit.org/show_bug.cgi?id=73989

        Reviewed by Darin Adler.

        Test: fast/css/font-face-src-parsing.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseFontFaceSrcURI): Added.
        (WebCore::CSSParser::parseFontFaceSrcLocal): Added.
        (WebCore::CSSParser::parseFontFaceSrc): Rewrote.
        * css/CSSParser.h:

2011-12-07  Xingnan Wang  <xingnan.wang@intel.com>

        Implement the SSE optimization in SincResampler::process()
        https://bugs.webkit.org/show_bug.cgi?id=73789

        Reviewed by Benjamin Poulain.

        Here is about 70% performance improvement on the hot spot of sample convolving.

        * platform/audio/SincResampler.cpp:

2011-12-07  Luke Macpherson   <macpherson@chromium.org>

        Implement border image source properties in CSSStyleApplyProperty.
        https://bugs.webkit.org/show_bug.cgi?id=73981

        Reviewed by Andreas Kling.

        No new tests / refactoring only.

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyBorderImageSource::applyValue):
        (WebCore::ApplyPropertyBorderImageSource::createHandler):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):

2011-12-07  Noel Gordon  <noel.gordon@gmail.com>

        WebPImageDecoder should not do a full image decode if progressive decoding is active
        https://bugs.webkit.org/show_bug.cgi?id=74041

        Reviewed by Adam Barth.

        If the decoder input data state reaches allDataReceived during a progressive image
        decode, the decoder performs a full image decode.

        On allDataReceived, check if we already have a decoder, and if so, continue to run
        the progressive decoder.

        No new tests. No change in behavior.

        * platform/image-decoders/webp/WEBPImageDecoder.cpp:
        (WebCore::WEBPImageDecoder::decode):

2011-12-07  Alexandre Elias  <aelias@google.com>

        [chromium] Add page-scale animation support to Impl thread
        https://bugs.webkit.org/show_bug.cgi?id=72996

        Reviewed by James Robinson.

        This adds a new math helper class to compute the progress of the
        animation, and code in the CCLayerTreeHostImpl to apply the animation
        frame by frame.

        No new tests. (https://bugs.webkit.org/show_bug.cgi?id=71529 filed.)

        * WebCore.gypi:
        * platform/graphics/chromium/cc/CCInputHandler.h:
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::animate):
        (WebCore::CCLayerTreeHostImpl::startPageScaleAnimation):
        (WebCore::CCLayerTreeHostImpl::processScrollDeltas):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
        * platform/graphics/chromium/cc/CCPageScaleAnimation.cpp: Added.
        (WebCore::CCPageScaleAnimation::CCPageScaleAnimation):
        (WebCore::CCPageScaleAnimation::initialize):
        (WebCore::CCPageScaleAnimation::zoomTo):
        (WebCore::CCPageScaleAnimation::zoomWithAnchor):
        (WebCore::CCPageScaleAnimation::zoomElsewhere):
        (WebCore::CCPageScaleAnimation::scrollOffsetAtTime):
        (WebCore::CCPageScaleAnimation::pageScaleAtTime):
        (WebCore::CCPageScaleAnimation::isAnimationCompleteAtTime):
        (WebCore::CCPageScaleAnimation::progressRatioForTime):
        (WebCore::CCPageScaleAnimation::scrollOffsetAtRatio):
        (WebCore::CCPageScaleAnimation::pageScaleAtRatio):
        * platform/graphics/chromium/cc/CCPageScaleAnimation.h: Added.
        (WebCore::CCPageScaleAnimation::startTime):
        (WebCore::CCPageScaleAnimation::duration):
        (WebCore::CCPageScaleAnimation::endTime):
        (WebCore::CCPageScaleAnimation::finalScrollOffset):
        (WebCore::CCPageScaleAnimation::finalPageScale):

2011-12-07  Shinya Kawanaka  <shinyak@google.com>

        Editor::markAndReplaceFor should take Range instead of TextCheckingParagraph.
        https://bugs.webkit.org/show_bug.cgi?id=74035

        Reviewed by Hajime Morita.

        Editor::markAndReplaceFor takes chekcing range and paragraph range instead of
        spelling paragraph and grammar paragraph.

        No new tests. Covered by existing tests.

        * editing/Editor.cpp:
        (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
        (WebCore::Editor::markAndReplaceFor):
        * editing/Editor.h:
        * editing/TextCheckingHelper.cpp:
        (WebCore::TextCheckingParagraph::TextCheckingParagraph):
        * editing/TextCheckingHelper.h:

2011-12-07  Ami Fischman  <fischman@chromium.org>

        Force LTR layout for media controls even in RTL documents.
        https://bugs.webkit.org/show_bug.cgi?id=74024

        Reviewed by Darin Adler.

        Test: media/controls-layout-direction.html

        * css/mediaControls.css:
        (::-webkit-media-controls):

2011-12-07  Mark Pilgrim  <pilgrim@chromium.org>

        [FileSystem API] requestFileSystem successCallback is required
        https://bugs.webkit.org/show_bug.cgi?id=69637

        Reviewed by Darin Adler.

        * page/DOMWindow.idl: remove [Optional] flag from successCallback parameter

2011-12-07  Leo Yang  <leo.yang@torchmobile.com.cn>

        Upstream the BlackBerry porting of network Resource
        https://bugs.webkit.org/show_bug.cgi?id=73388

        Reviewed by Rob Buis.

        Other main contributors:
        Joe Mason <jmason@rim.com>
        Yong Li  <yoli@rim.com>
        Gary Simmons  <gsimmons@rim.com>
        Genevieve Mak <gmak@rim.com>
        Chris Guan <chris.guan@torchmobile.com.cn>
        Mike Lattanzio <mlattanzio@rim.com>

        Initial upstream, can't be built yet, no new tests.

        * platform/network/blackberry/ResourceError.h: Added.
        * platform/network/blackberry/ResourceErrorBlackBerry.cpp: Added.
        * platform/network/blackberry/ResourceHandleBlackBerry.cpp: Added.
        * platform/network/blackberry/ResourceRequest.h: Added.
        * platform/network/blackberry/ResourceRequestBlackBerry.cpp: Added.
        * platform/network/blackberry/ResourceResponse.h: Added.
        * platform/network/blackberry/ResourceResponseBlackBerry.cpp: Added.

2011-12-07  Fady Samuel  <fsamuel@chromium.org>

        [Chromium] Plumb DPI info into PlatformScreen
        https://bugs.webkit.org/show_bug.cgi?id=70556

        Reviewed by Darin Fisher.

        Make DPI information accessible from WebKit through
        PlatformScreen. This is useful when making scaling 
        computations on various devices (e.g. Viewport meta tag).

        This patch adds DPI plumbing on Chromium Win/Mac/Linux
        platforms.

        * page/Screen.cpp:
        (WebCore::Screen::horizontalDPI):
        (WebCore::Screen::verticalDPI):
        * page/Screen.h:
        * platform/PlatformScreen.h:
        * platform/chromium/PlatformScreenChromium.cpp:
        (WebCore::screenHorizontalDPI):
        (WebCore::screenVerticalDPI):
        * platform/chromium/PlatformSupport.h:
        * platform/efl/PlatformScreenEfl.cpp:
        (WebCore::screenHorizontalDPI):
        (WebCore::screenVerticalDPI):
        * platform/gtk/PlatformScreenGtk.cpp:
        (WebCore::screenHorizontalDPI):
        (WebCore::screenVerticalDPI):
        * platform/mac/PlatformScreenMac.mm:
        (WebCore::screenHorizontalDPI):
        (WebCore::screenVerticalDPI):
        * platform/qt/PlatformScreenQt.cpp:
        (WebCore::screenHorizontalDPI):
        (WebCore::screenVerticalDPI):
        * platform/win/PlatformScreenWin.cpp:
        (WebCore::screenHorizontalDPI):
        (WebCore::screenVerticalDPI):

2011-12-07  Aaron Colwell  <acolwell@chromium.org>

        Revert mixed content handling for video fix and follow-up test expectations & Skipped changes.
        (r101883, r101918, r101927, r101981, r101986, r101997)
        https://bugs.webkit.org/show_bug.cgi?id=72178

        Reviewed by Adam Barth.

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::willSendRequest):
        * loader/cache/CachedRawResource.cpp:
        * loader/cache/CachedRawResource.h:
        * loader/cache/CachedResource.cpp:
        (WebCore::defaultPriorityForResourceType):
        (WebCore::cachedResourceTypeToTargetType):
        * loader/cache/CachedResource.h:
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::createResource):
        (WebCore::CachedResourceLoader::checkInsecureContent):
        (WebCore::CachedResourceLoader::canRequest):
        (WebCore::CachedResourceLoader::requestResource):

2011-12-07  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Introduce AssertMatchingEnums.cpp.
        https://bugs.webkit.org/show_bug.cgi?id=65238

        Reviewed by Filip Pizlo.

        Remove switch statement which convert EWK_TOUCH_PointType enum values to
        WebCore::PlatformTouchPoint::State enum values.
        Newly added AssertMatchingEnums.cpp assure that they are equal.

        No new tests, no new functionality.

        * platform/efl/PlatformTouchEventEfl.cpp:
        (WebCore::PlatformTouchEvent::PlatformTouchEvent):

2011-12-07  Shawn Singh  <shawnsingh@chromium.org>

        [chromium] Clearing root surface should happen after damage tracking
        https://bugs.webkit.org/show_bug.cgi?id=73958

        Reviewed by James Robinson.

        No new semantics, covered by existing layout tests.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::clearSurfaceForDebug):
        (WebCore::LayerRendererChromium::drawLayersOntoRenderSurfaces):
        (WebCore::LayerRendererChromium::drawLayersInternal):
        * platform/graphics/chromium/LayerRendererChromium.h:

2011-12-07  Florin Malita  <fmalita@google.com>

        <li value="0"> behaves like <li> (the same for negative numbers)
        https://bugs.webkit.org/show_bug.cgi?id=73911

        Reviewed by Alexey Proskuryakov.

        Allow LI values <= 0 and consolidate the value processing logic.

        * html/HTMLLIElement.cpp:
        (WebCore::HTMLLIElement::parseMappedAttribute):
        Delegated value parsing to parseValue().

        (WebCore::HTMLLIElement::attach):
        Ditto. Explicit value null testing is no longer necessary,
        as parseValue's toInt() performs an equivalent check.

        (WebCore::HTMLLIElement::parseValue):
        Consolidated value parsing logic.

        * html/HTMLLIElement.h:

2011-12-07  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Replace bool args in IDBKeyRange private methods with enum
        https://bugs.webkit.org/show_bug.cgi?id=70743

        Reviewed by Tony Chang.

        No new tests - no functional changes.

        * storage/IDBKeyRange.cpp:
        (WebCore::IDBKeyRange::IDBKeyRange):
        (WebCore::IDBKeyRange::bound):
        * storage/IDBKeyRange.h:
        (WebCore::IDBKeyRange::create):
        (WebCore::IDBKeyRange::lowerOpen):
        (WebCore::IDBKeyRange::upperOpen):

2011-12-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r102267.
        http://trac.webkit.org/changeset/102267
        https://bugs.webkit.org/show_bug.cgi?id=74032

        Breaks build on Chromium Mac Debug (Requested by aklein on
        #webkit).

        * dom/ChildListMutationScope.cpp:
        (WebCore::MutationAccumulationRouter::MutationAccumulationRouter::childAdded):
        (WebCore::MutationAccumulationRouter::MutationAccumulationRouter::willRemoveChild):
        (WebCore::MutationAccumulationRouter::MutationAccumulationRouter::incrementScopingLevel):
        (WebCore::MutationAccumulationRouter::MutationAccumulationRouter::decrementScopingLevel):

2011-12-07  Kentaro Hara  <haraken@chromium.org>

        REGRESSION (r95249): Right side can be truncated when printing
        https://bugs.webkit.org/show_bug.cgi?id=73868

        Reviewed by Darin Adler.

        When we print a page with an overflowed width, the right side of the page
        can be truncated. This is due to a wrong rendering calculation.
        Since 'maximumShrinkFactor' is a ratio based on 'pageSize',
        'maximumShrinkFactor' should multiply (not 'originalPageSize') but 'pageSize'.
        This bug happens if all the following conditions are met:
            - pageLogicalWidth < docLogicalWidth
            - originalPageSize.width * maximumShrinkFactor < docLogicalWidth
            - docLogicalWidth < pageLogicalWidth * maximumShrinkFactor

        Test: printing/width-overflow.html

        * page/FrameView.cpp:
        (WebCore::FrameView::forceLayoutForPagination):

2011-12-07  Yong Li  <yoli@rim.com>

        Defer ScriptExecutionContext::Task's in Document when page loading is deferred.
        Schedule them with timer when page loading is resumed. The tasks will be performed
        in the original order. This fixes the problem that database callbacks could be missed
        when page loading was deferred.
        https://bugs.webkit.org/show_bug.cgi?id=49401
 

        Reviewed by Darin Adler.

        Manual test added: ManualTests/database-callback-deferred.html. 

        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::didReceiveTask):
        (WebCore::Document::postTask):
        (WebCore::Document::pendingTasksTimerFired):
        (WebCore::Document::suspendScheduledTasks):
        (WebCore::Document::resumeScheduledTasks):
        * dom/Document.h:
        * page/PageGroupLoadDeferrer.cpp:
        (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
        (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):

2011-12-07  Andreas Kling  <kling@webkit.org>

        RenderObject::style(): Inline early-return condition.
        <http://webkit.org/b/74019>

        Reviewed by Anders Carlsson.

        style() was very hot (6.1%) when scrolling around on youtube.com,
        and 100% of the calls were taking the early return path.

        Inlined the !isRenderFlowThread() check and renamed the function to
        styleSlowCase().

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::styleSlowCase):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::style):

2011-12-07  Adam Klein  <adamk@chromium.org>

        Use HashMap<Node*, OwnPtr<...>> in ChildListMutationScope
        https://bugs.webkit.org/show_bug.cgi?id=73964

        Reviewed by Ryosuke Niwa.

        No new tests, refactoring only.

        * dom/ChildListMutationScope.cpp:
        (WebCore::ChildListMutationAccumulator::MutationAccumulationRouter::childAdded):
        (WebCore::ChildListMutationAccumulator::MutationAccumulationRouter::willRemoveChild):
        (WebCore::ChildListMutationAccumulator::MutationAccumulationRouter::incrementScopingLevel):
        (WebCore::ChildListMutationAccumulator::MutationAccumulationRouter::decrementScopingLevel):

2011-12-07  Andreas Kling  <kling@webkit.org>

        RenderLayer::updateZOrderLists(): Inline early-return condition.
        <http://webkit.org/b/74013>

        Reviewed by Anders Carlsson.

        updateZOrderLists() was hot (1.2%) when scrolling around on youtube.com,
        and 85% of the calls were taking the early return path.

        Inlined the two checks for the early return and renamed the function
        to updateZOrderListsSlowCase(). Also reversed their order to avoid the
        virtual call (RenderObject::isRenderView()) if possible.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateZOrderListsSlowCase):
        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::updateZOrderLists):

2011-12-07  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r102244.
        http://trac.webkit.org/changeset/102244
        https://bugs.webkit.org/show_bug.cgi?id=74016

        caused debug test timeouts (Requested by simonjam on #webkit).

        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::putImageData):
        (WebCore::ImageBuffer::putUnmultipliedImageData):
        (WebCore::ImageBuffer::putPremultipliedImageData):

2011-12-07  Adam Klein  <adamk@chromium.org>

        Layout Test inspector/debugger/dom-breakpoints.html fails on chromium linux debug with ENABLE(MUTATION_OBSERVERS)
        https://bugs.webkit.org/show_bug.cgi?id=73919

        Reviewed by Ojan Vafai.

        Use StyleAttributeMutationScope to manage DOM breakpoints for style property changes.

        Instead of calling InspectorInstrumentation::didInvalidateStyleAttr()
        directly in setNeedsStyleRecalc, set a bool in the current
        StyleAttributeMutationScope, and delay the call until the scope's
        counter runs down to zero. This keeps the inspector JS from re-entering
        CSSMutableStyleDeclaration until all StyleAttributeMutationScope work is done.

        Also fix a small bug in StyleAttributeMutationScope, where
        s_shouldDeliver wasn't getting reset properly to false.

        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::setNeedsStyleRecalc):

2011-12-07  Ken Buchanan <kenrb@chromium.org>

        Crash from multicol spans with layers
        https://bugs.webkit.org/show_bug.cgi?id=68030

        Reviewed by David Hyatt.

        The layer tree diverges from the render tree when a span is being split
        between columns. This patch causes the layer tree to be updated when necessary.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::splitFlow)
        (WebCore::RenderBlock::splitBlocks)

2011-12-07  Alexey Proskuryakov  <ap@apple.com>

        Handling of !important in inline style sets is broken
        https://bugs.webkit.org/show_bug.cgi?id=73941

        Reviewed by Dave Hyatt.

        This behavior was introduced in bug 8223 to match IE and Firefox. But it doesn't appear that we're matching
        any browser today, and CSSOM spec agrees with them.

        * WebCore.exp.in: Don't export CSSStyleDeclaration::setProperty(), no one is using it.

        * bindings/js/JSCSSStyleDeclarationCustom.cpp: (WebCore::JSCSSStyleDeclaration::putDelegate): Use regular
        setProperty(), not the incorrect version that's being removed. Properties set via IDL attributes are never
        important.

        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp: (WebCore::V8CSSStyleDeclaration::namedPropertySetter):
        Made the same fix for v8. Why did v8 bindings authors copy/paste the code?!

        * css/CSSStyleDeclaration.cpp:
        * css/CSSStyleDeclaration.h:
        Removed a version of setProperty() that attempted to parse the value and extract !important from it.

        * html/ImageDocument.cpp:
        (WebCore::ImageDocument::resizeImageToFit):
        (WebCore::ImageDocument::restoreImageSize):
        (WebCore::ImageDocument::windowSizeChanged):
        * page/DragController.cpp:
        (WebCore::DragController::concludeEditDrag):
        We never needed to use this version of setProperty() here, it was just unnecessarily slower.

2011-12-07  Xianzhu Wang  <wangxianzhu@chromium.org>

        In FontCacheAndroid.cpp should keep the pointer valid returned from CString::data()
        https://bugs.webkit.org/show_bug.cgi?id=73849

        The changed code has been covered by many existing layout tests.

        Reviewed by Adam Barth.

        * platform/graphics/chromium/FontCacheAndroid.cpp:
        (WebCore::FontCache::createFontPlatformData):

2011-12-07  Xiaomei Ji  <xji@chromium.org>

        Turn on move caret by word visually for Windows platform.
        https://bugs.webkit.org/show_bug.cgi?id=59652

        Reviewed by Ryosuke Niwa.

        We already support (arrow key) moving cursor by character in visual order.
        This patch implements (ctrl/alt-arrow) moving cursor by word in visual order (in Windows).
        It matches Firefox's default behavior.

        Without this patch, ctrl(alt for mac)-arrow key or
        selection.modify("move", "left"/"right", "word") moves cursor by word in logical order. 

        IE implements moving cursor by logical order for both arrow key and ctrl-arrow key.
        Firefox implements moving cursor by visual order for both operations.
        From Chromium bug report, native speakers would like moving cursor by visual order since it
        is more intuitive.

        The patch is only enabled for Windows (by EditingBehavior) because current implementation
        matches Windows' native behavior.
        For exmaple, if the logical text is "abc def hij", the cursor positions are
        "|abc |def |hij|" no matter pressing ctrl-left-arrow or ctrl-right-arrow.

        Mac and Linux's native behavior is slightly different. In which, when pressing
        ctrl-left-arrow, the cursor positions are "|abc |def |hij|". When pressing ctrl-right-arrow,
        the cursor positions are "|abc| def| hij|". We will implement it next.

        Test: editing/selection/move-left-right-by-word-mac.html

        * editing/EditingBehavior.h:
        (WebCore::EditingBehavior::shouldMoveLeftRightByWordInVisualOrder):
        * editing/FrameSelection.cpp: Remove experimental enum WebKitVisualWordGranularity.
        (WebCore::FrameSelection::modifyExtendingRight):
        (WebCore::FrameSelection::modifyExtendingForward):
        (WebCore::FrameSelection::modifyMovingRight):
        (WebCore::FrameSelection::modifyMovingForward):
        (WebCore::FrameSelection::modifyExtendingLeft):
        (WebCore::FrameSelection::modifyExtendingBackward):
        (WebCore::FrameSelection::modifyMovingLeft):
        (WebCore::FrameSelection::modifyMovingBackward):
        * editing/TextGranularity.h: Remove experimental enum WebKitVisualWordGranularity.
        * editing/VisibleSelection.cpp: Remove experimental enum WebKitVisualWordGranularity.
        (WebCore::VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity):
        * page/DOMSelection.cpp: Remove experimental experimental flag -webkit-visual-word.
        (WebCore::DOMSelection::modify):

2011-12-07  Jonathan Backer  <backer@chromium.org>

        [chromium] Plumb damage from WebExternalTextureLayer and WebPluginContainer to CCDamageTracker
        https://bugs.webkit.org/show_bug.cgi?id=73485

        Reviewed by Darin Fisher.

        * platform/graphics/chromium/PluginLayerChromium.cpp:
        (WebCore::PluginLayerChromium::updateCompositorResources):
        (WebCore::PluginLayerChromium::invalidateRect):
        * platform/graphics/chromium/PluginLayerChromium.h:

2011-12-07  Mary Wu  <mary.wu@torchmobile.com.cn>

        Upstream 5 files into WebCore/platform/blackberry
        https://bugs.webkit.org/show_bug.cgi?id=73632

        Reviewed by Rob Buis.

        Initial upstream, no new tests.

        * PlatformBlackBerry.cmake: Remove two empty files from build list.
        * platform/blackberry/PopupMenuBlackBerry.cpp: Added.
        (WebCore::PopupMenuBlackBerry::PopupMenuBlackBerry):
        (WebCore::PopupMenuBlackBerry::~PopupMenuBlackBerry):
        (WebCore::PopupMenuBlackBerry::show):
        (WebCore::PopupMenuBlackBerry::hide):
        (WebCore::PopupMenuBlackBerry::updateFromElement):
        (WebCore::PopupMenuBlackBerry::disconnectClient):
        * platform/blackberry/PopupMenuBlackBerry.h: Added.
        (WebCore::PopupMenuBlackBerry::client):
        * platform/blackberry/ScrollbarThemeBlackBerry.cpp: Added.
        (WebCore::ScrollbarTheme::nativeTheme):
        * platform/blackberry/SearchPopupMenuBlackBerry.cpp: Added.
        (WebCore::SearchPopupMenuBlackBerry::SearchPopupMenuBlackBerry):
        (WebCore::SearchPopupMenuBlackBerry::popupMenu):
        (WebCore::SearchPopupMenuBlackBerry::enabled):
        (WebCore::SearchPopupMenuBlackBerry::saveRecentSearches):
        (WebCore::SearchPopupMenuBlackBerry::loadRecentSearches):
        * platform/blackberry/SearchPopupMenuBlackBerry.h: Added.

2011-12-07  Dan Bernstein  <mitz@apple.com>

        Fixed the definition of BUTTON_CELL_DRAW_WITH_FRAME_DRAWS_FOCUS_RING from r102246.

        * platform/mac/ThemeMac.mm: Added parentheses.

2011-12-07  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/10542095> Focus rings are not drawn around push buttons, radio buttons and checkboxes

        Reviewed by Darin Adler.

        Instead of relying on -setShowsFirstResponder: to make -drawWithFrame:inView: draw the focus
        ring, use -drawFocusRingMaskWithFrame:inView:.

        * platform/mac/ThemeMac.mm:
        (-[NSCell _web_drawFocusRingWithFrame:inView:]): Added. Sets up the focus ring style and a
        transparency layer, then uses -drawFocusRingMaskWithFrame:inView: to draw the focus ring.
        (WebCore::updateStates): Eliminated calls to get and set showsFirstResponder.
        (WebCore::paintCheckbox): Changed to use -_web_drawFocusRingWithFrame:inView:.
        (WebCore::paintRadio): Ditto.
        (WebCore::paintButton): Ditto.

2011-12-07  Brian Salomon  <bsalomon@google.com>

        [CHROMIUM/SKIA] Handle put[Un/Pre]multipliedImageData conversions in Skia rather than ImageBuffer
        https://bugs.webkit.org/show_bug.cgi?id=73953

        Reviewed by Stephen White.

        Tested by existing canvas2d layout tests.

        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::putImageData):
        (WebCore::ImageBuffer::putUnmultipliedImageData):
        (WebCore::ImageBuffer::putPremultipliedImageData):

2011-12-07  Andreas Kling  <kling@webkit.org>

        Micro-optimize ScrollView::visibleContentRect().
        <http://webkit.org/b/74001>

        Reviewed by Anders Carlsson.

        Reorder the scrollbar exclusion code to minimize the number of virtual calls
        to ScrollableArea::verticalScrollbar(), ScrollableArea::horizontalScrollbar()
        and Scrollbar::isOverlayScrollbar().

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::visibleContentRect):

2011-12-07  Andreas Kling  <kling@webkit.org>

        ApplyPropertyBorderImage: Remove unneeded template argument for mapNinePieceImage().
        <http://webkit.org/b/73998>

        Reviewed by Antti Koivisto.

        Have ApplyPropertyBorderImage call mapNinePieceImage() directly now that it's
        public (instead of passing it as a template argument.)

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyBorderImage::applyValue):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):

2011-12-07  Jessie Berlin  <jberlin@apple.com>

        Mac build fix after r102235.

        * WebCore.exp.in:

2011-11-30  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] V8 debug build fixes.

        Reviewed by Tor Arne Vestbø.

        * Target.pri: Add missing files to the build.
        * loader/SubresourceLoader.cpp: Add missing CString.h header file inclusion,
        that is implicitly included with Chromium builds and only needed in ASSERTS
        in debug builds.
        * loader/cache/CachedResource.cpp: Ditto.
        * page/FrameTree.cpp: Ditto.
        * platform/graphics/MediaPlayer.cpp: Ditto.

2011-11-30  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] V8 build fixes.

        Reviewed by Tor Arne Vestbø.

        * Target.pri: Don't load(javascriptcore) if we're building with v8.

2011-12-07  Mary Wu  <mary.wu@torchmobile.com.cn>

        Change function name InitializeLoggingChannelsIfNecessary to follow coding style guideline
        https://bugs.webkit.org/show_bug.cgi?id=73986

        Reviewed by Kenneth Rohde Christiansen.

        Just function name change, no new tests.

        * platform/Logging.h:
        * platform/efl/LoggingEfl.cpp:
        (WebCore::initializeLoggingChannelsIfNecessary):
        * platform/gtk/LoggingGtk.cpp:
        (WebCore::initializeLoggingChannelsIfNecessary):
        * platform/mac/LoggingMac.mm:
        (WebCore::initializeLoggingChannelsIfNecessary):
        * platform/qt/LoggingQt.cpp:
        (WebCore::initializeLoggingChannelsIfNecessary):
        * platform/win/LoggingWin.cpp:
        (WebCore::initializeLoggingChannelsIfNecessary):
        * platform/wx/LoggingWx.cpp:
        (WebCore::initializeLoggingChannelsIfNecessary):

2011-12-07  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]Add support for background-color in region styling
        https://bugs.webkit.org/show_bug.cgi?id=71488

        Reviewed by David Hyatt.

        Tests: fast/regions/region-style-block-background-color.html
               fast/regions/region-style-block-background-color2.html
               fast/regions/region-style-image-background-color.html
               fast/regions/region-style-inline-background-color.html

        * WebCore.exp.in:
        * css/CSSStyleSelector.cpp:
        (WebCore::RuleData::regionStyleRule):
        (WebCore::CSSStyleSelector::CSSStyleSelector):
        (WebCore::CSSStyleSelector::addMatchedDeclaration):
        (WebCore::CSSStyleSelector::matchRules):
        (WebCore::CSSStyleSelector::matchAllRules):
        (WebCore::CSSStyleSelector::initForRegionStyling):
        (WebCore::CSSStyleSelector::styleForElement):
        (WebCore::CSSStyleSelector::pseudoStyleForElement):
        (WebCore::RuleData::RuleData):
        (WebCore::RuleSet::RuleSet):
        (WebCore::RuleSet::addToRuleSet):
        (WebCore::CSSStyleSelector::applyDeclarations):
        (WebCore::isValidRegionStyleProperty):
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSStyleSelector.h:
        (WebCore::CSSStyleSelector::setRegionForStyling):
        (WebCore::CSSStyleSelector::regionForStyling):
        (WebCore::CSSStyleSelector::applyPropertyToRegionStyle):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::clearRenderRegionRangeMap):
        (WebCore::RenderFlowThread::~RenderFlowThread):
        (WebCore::RenderFlowThread::layout):
        (WebCore::RenderFlowThread::clearRenderObjectCustomStyle):
        (WebCore::RenderFlowThread::setRegionRangeForBox):
        * rendering/RenderFlowThread.h:
        * rendering/RenderLayer.cpp:
        (WebCore::CurrentRenderRegionMaintainer::CurrentRenderRegionMaintainer):
        (WebCore::CurrentRenderRegionMaintainer::~CurrentRenderRegionMaintainer):
        (WebCore::RenderLayer::paint):
        (WebCore::RenderLayer::hitTest):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::style):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::canHaveRegionStyle):
        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::removeChildNode):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::layout):
        (WebCore::RenderRegion::renderObjectRegionStyle):
        (WebCore::RenderRegion::computeStyleInRegion):
        (WebCore::RenderRegion::clearObjectStyleInRegion):
        * rendering/RenderRegion.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::RenderView):
        * rendering/RenderView.h:
        (WebCore::RenderView::currentRenderRegion):
        (WebCore::RenderView::setCurrentRenderRegion):

2011-12-01  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Extract default call stack creation and check for front-end from console.
        https://bugs.webkit.org/show_bug.cgi?id=73566

        Reviewed by Yury Semikhatsky.

        * bindings/js/ScriptCallStackFactory.cpp:
        (WebCore::createScriptCallStack):
        * bindings/js/ScriptCallStackFactory.h:
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateParametersCheck):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateFunctionCallback):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjInternal::customArgsAndExceptionCallback):
        * bindings/v8/ScriptCallStackFactory.cpp:
        (WebCore::createScriptCallStack):
        * bindings/v8/ScriptCallStackFactory.h:
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::hasFrontendForScriptContext):
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::hasFrontendForScriptContext):
        * inspector/WorkerInspectorController.h:
        (WebCore::WorkerInspectorController::hasFrontend):
        * page/Console.cpp:
        * page/Console.h:

2011-12-07  Shinya Kawanaka  <shinyak@google.com>

        Internals should have a method to reutrn the max sequence number of spellcheck reqeust.
        https://bugs.webkit.org/show_bug.cgi?id=73511

        Reviewed by Hajime Morita.

        Internal state of SpellChecker should be able to be exposed for testing SpellChecker.
        This patch will enable us to know asynchronous spellcheck has finished or not.

        Test: editing/spelling/spellcheck-sequencenum.html

        * editing/SpellChecker.cpp:
        (WebCore::SpellChecker::SpellChecker):
        (WebCore::SpellChecker::createRequest):
        (WebCore::SpellChecker::didCheck):
        * editing/SpellChecker.h:
        (WebCore::SpellChecker::lastRequestSequence):
          Interface to take SpellCheck sequence numbers.
        (WebCore::SpellChecker::lastProcessedSequence): ditto.
        * testing/Internals.cpp:
        (WebCore::spellchecker):
        (WebCore::Internals::lastSpellCheckRequestSequence):
        (WebCore::Internals::lastSpellCheckProcessedSequence):
        * testing/Internals.h:
        * testing/Internals.idl:

2011-12-07  Ryosuke Niwa  <rniwa@webkit.org>

        TypingCommand duplicates code to obtain the last typing command
        https://bugs.webkit.org/show_bug.cgi?id=73984

        Reviewed by Kent Tamura.

        Extracted lastTypingCommandIfStillOpenForTyping out of isOpenForMoreTypingCommand
        and a bunch of TypingCommand static member functions.

        Also made more member functions of TypingCommand private.

        * editing/Editor.cpp:
        (WebCore::Editor::setComposition):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::setSelection):
        * editing/TypingCommand.cpp:
        (WebCore::TypingCommand::deleteSelection):
        (WebCore::TypingCommand::deleteKeyPressed):
        (WebCore::TypingCommand::forwardDeleteKeyPressed):
        (WebCore::TypingCommand::insertText):
        (WebCore::TypingCommand::insertLineBreak):
        (WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):
        (WebCore::TypingCommand::insertParagraphSeparator):
        (WebCore::TypingCommand::lastTypingCommandIfStillOpenForTyping):
        (WebCore::TypingCommand::closeTyping):
        * editing/TypingCommand.h:
        (WebCore::TypingCommand::isOpenForMoreTyping):
        (WebCore::TypingCommand::closeTyping):

2011-12-06  Mary Wu  <mary.wu@torchmobile.com.cn>

        upstream BlackBerry porting of KURL/Logging
        https://bugs.webkit.org/show_bug.cgi?id=73524

        Reviewed by Antonio Gomes.

        * platform/blackberry/KURLBlackBerry.cpp: Added.
        (WebCore::KURL::fileSystemPath):
        * platform/blackberry/LoggingBlackBerry.cpp: Added.
        (WebCore::initializeWithUserDefault):
        (WebCore::InitializeLoggingChannelsIfNecessary):

2011-12-06  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Remove redundant files in PlatformBlackBerry.cmake
        https://bugs.webkit.org/show_bug.cgi?id=73976

        Reviewed by Antonio Gomes.

        The listing of the following files in PlatformBlackBerry.cmake are redundant. They should be removed.
        platform/network/blackberry/MultipartResponseDelegate.cpp
        platform/network/blackberry/NetworkManager.cpp
        platform/network/blackberry/NetworkStateNotifierBlackBerry.cpp
        platform/network/blackberry/ResourceErrorBlackBerry.cpp
        platform/network/blackberry/ResourceRequestBlackBerry.cpp

        * PlatformBlackBerry.cmake:

2011-12-06  Shinya Kawanaka  <shinyak@google.com>

        Refactoring: Editor::markAllMisspellingsAndBadGrammarInRanges should be refactored.
        https://bugs.webkit.org/show_bug.cgi?id=73628

        Reviewed by Hajime Morita.

        Extracted a code for adding markers and replacing misspelled words from WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges.

        No new tests. covered by existing tests.

        * editing/Editor.cpp:
        (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
          Extracted a code for adding markers and replacing missplled words, and moved to markAndReplaceFor.
        (WebCore::Editor::markAndReplaceFor):
        * editing/Editor.h:

2011-12-06  Julien Chaffraix  <jchaffraix@webkit.org>

        Avoid calling calculateRects in RenderLayer::paintLayer when the rectangles are not needed
        https://bugs.webkit.org/show_bug.cgi?id=73754

        Reviewed by Simon Fraser.

        Performance change, no change in behavior.

        RenderLayer::paintLayer can easily be called a million time when scrolling on a big table with
        td { overflow: hidden; }. We would spend a lot of time recomputing the rectangles that we never
        unused for painting as our layer was not self-painting (clipping layer only) and we did not paint
        some overlay scrollbars.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayer):
        Simplified and moved the shouldPaint logic earlier in the function. Now the branches
        are checking the same boolean which makes the logic more obvious. A consequence of
        filling shouldPaint earlier is that we call |calculateRects| only if there is a chance
        the rectangles will used. Also cached the result of isSelfPaintingLayer() in a local
        variable (isSelfPaintingLayer() is fairly expensive due to several virtual calls).

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::paintIntoLayer):
        For coherency, applied the same optimizations here too: added an early return instead
        of conditionaly call |calculateRects| as we don't have to restore any clip.

2011-12-06  Benjamin Poulain  <benjamin@webkit.org>

        Simplify KURL's checkEncodedString()
        https://bugs.webkit.org/show_bug.cgi?id=73890

        Reviewed by Andreas Kling.

        The Macro UNUSED_PARAM is not supposed to be used for this case,
        use ASSERT_UNUSED instead.

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

2011-12-06  Ryosuke Niwa  <rniwa@webkit.org>

        The code to create a NodeListsNodeData is duplicated everywhere
        https://bugs.webkit.org/show_bug.cgi?id=73961

        Reviewed by Darin Adler.

        Extracted the logic to create NodeListsNodeData as NodeRareData::ensureNodeLists.

        * dom/Document.cpp:
        (WebCore::Document::getItems):
        * dom/Node.cpp:
        (WebCore::Node::childNodes):
        (WebCore::Node::registerDynamicNodeList):
        (WebCore::Node::getElementsByTagName):
        (WebCore::Node::getElementsByTagNameNS):
        (WebCore::Node::getElementsByName):
        (WebCore::Node::getElementsByClassName):
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::ensureNodeLists):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::labels):

2011-12-06  Leo Yang  <leo.yang@torchmobile.com.cn>

        Upstream about: feature in WebKit/blackberry/WebCoreSupport/
        https://bugs.webkit.org/show_bug.cgi?id=73612

        Reviewed by Antonio Gomes.

        * PlatformBlackBerry.cmake: Move platform/network/blackberry/AboutData.{h, cpp}
                                    to WebKit/blackberry/WebCoreSupport

2011-12-06  Benjamin Poulain  <bpoulain@apple.com>

        WebKit Mac does not build without CONTEXT MENU
        https://bugs.webkit.org/show_bug.cgi?id=73962

        Reviewed by Pavel Feldman.

        In the patch r100903, the symbols were exported under ENABLE(CONTEXT_MENUS)
        because the feature is triggered from the menus.

        The implementation has no dependency on the context menu but is necessary to build
        when the inspector is enabled.
        This patch moves the exported symbols from ENABLE(CONTEXT_MENUS) to ENABLE(INSPECTOR).

        * WebCore.exp.in:

2011-12-06  Adrienne Walker  <enne@google.com>

        [chromium] setNeedsCommit on non-composited host layers should trigger commit
        https://bugs.webkit.org/show_bug.cgi?id=73711

        Reviewed by James Robinson.

        Pipe non-composited content host syncs to setNeedsCommit.

        Since now the NonCompositedContentHost generates setNeedsCommit, don't
        call it unnecessarily, e.g. calling setBackgroundColor to the same
        color each frame should not retrigger more commits.

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setAnchorPoint):
        (WebCore::GraphicsLayerChromium::setTransform):
        (WebCore::GraphicsLayerChromium::setChildrenTransform):
        (WebCore::GraphicsLayerChromium::setMasksToBounds):
        (WebCore::GraphicsLayerChromium::setBackgroundColor):
        (WebCore::GraphicsLayerChromium::clearBackgroundColor):
        (WebCore::GraphicsLayerChromium::setContentsOpaque):
        (WebCore::GraphicsLayerChromium::setBackfaceVisibility):
        (WebCore::GraphicsLayerChromium::setOpacity):
        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::setNeedsCommit):
        (WebCore::LayerChromium::setAnchorPoint):
        (WebCore::LayerChromium::setAnchorPointZ):
        (WebCore::LayerChromium::setBackgroundColor):
        (WebCore::LayerChromium::setMasksToBounds):
        (WebCore::LayerChromium::setMaskLayer):
        (WebCore::LayerChromium::setOpacity):
        (WebCore::LayerChromium::setOpaque):
        (WebCore::LayerChromium::setPosition):
        (WebCore::LayerChromium::setSublayerTransform):
        (WebCore::LayerChromium::setTransform):
        (WebCore::LayerChromium::setScrollPosition):
        (WebCore::LayerChromium::setScrollable):
        (WebCore::LayerChromium::setDoubleSided):
        * platform/graphics/chromium/LayerChromium.h:
        (WebCore::LayerChromium::setReplicaLayer):
        * platform/graphics/chromium/NonCompositedContentHost.cpp:
        (WebCore::NonCompositedContentHost::notifySyncRequired):
        * platform/graphics/chromium/NonCompositedContentHost.h:

2011-12-06  Kenichi Ishibashi  <bashi@chromium.org>

        [Chromium] unknown characters symbol on \n in complex script text (RTL and LTR)
        https://bugs.webkit.org/show_bug.cgi?id=73806

        Reviewed by Tony Chang.

        Sets fMergeNeutralItems to 1 instead of merging script items based on their tags.

        Tests: platform/chromium/fast/text/international/chromium-complex-text-non-printable-expected.html
               platform/chromium/fast/text/international/chromium-complex-text-non-printable.html

        * platform/graphics/chromium/UniscribeHelper.cpp:
        (WebCore::UniscribeHelper::fillRuns): Removed a block which merges script items.

2011-12-06  Luke Macpherson   <macpherson@chromium.org>

        Implement remaining border-image and webkit-maskbox-image properties in CSSStyleApplyProperty.
        https://bugs.webkit.org/show_bug.cgi?id=73391

        Reviewed by Hajime Morita.

        No new tests / refacoring only.

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyBorderImageModifier::getValue):
        (WebCore::ApplyPropertyBorderImageModifier::setValue):
        (WebCore::ApplyPropertyBorderImageModifier::applyInheritValue):
        (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue):
        (WebCore::ApplyPropertyBorderImageModifier::applyValue):
        (WebCore::ApplyPropertyBorderImageModifier::createHandler):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSStyleSelector.h:

2011-12-06  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: introduce a memory agent stub.
        https://bugs.webkit.org/show_bug.cgi?id=73930

        Reviewed by Timothy Hatcher.

        We'd like to experiment with the memory stats and hence need a
        nice home for that. Adding this undocumented agent / domain for now.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/ScriptProfiler.h:
        (WebCore::ScriptProfiler::nodeCount):
        * bindings/v8/ScriptProfiler.cpp:
        (WebCore::ScriptProfiler::nodeCount):
        * bindings/v8/ScriptProfiler.h:
        * inspector/Inspector.json:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorMemoryAgent.cpp: Added.
        (WebCore::InspectorMemoryAgent::~InspectorMemoryAgent):
        (WebCore::InspectorMemoryAgent::getNodeCounter):
        (WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
        * inspector/InspectorMemoryAgent.h: Added.
        (WebCore::InspectorMemoryAgent::create):

2011-12-06  Julien Chaffraix  <jchaffraix@webkit.org>

        Unreviewed build fix after 102183.

        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::initialGridTrackValue):
        Use DEFINE_STATIC_LOCAL to avoid having an exit-time destructor.

2011-12-06  Julien Chaffraix  <jchaffraix@webkit.org>

        Inline RenderObject::view()
        https://bugs.webkit.org/show_bug.cgi?id=73733

        Reviewed by Darin Adler.

        Micro-performance optimization, no change in behavior.

        RenderObject::view() is super hot and is taking ~4-5% of the time in some
        benchmarks as it is called several hundred thousands times. For some reason,
        the compiler did not inline it even though it is very simple in release builds.

        * WebCore.exp.in: Removed RenderObject::view() as it is inlined now.

        * rendering/RenderObject.cpp: Moved the implementation from here ...
        * rendering/RenderView.h:
        (WebCore::RenderObject::view): ... to here to avoid a cyclic
        dependency between RenderObject and RenderView. Also marked the
        function as ALWAYS_INLINE.

        * rendering/RenderObject.h:
        * rendering/svg/RenderSVGResourceContainer.cpp:
        Added #include "RenderView.h" as the code checks for view() during repaint.

2011-12-06  Julien Chaffraix  <jchaffraix@webkit.org>

        CSS Grid Layout: Add support for parsing multiple grid-columns or grid-rows
        https://bugs.webkit.org/show_bug.cgi?id=73272

        Reviewed by Tony Chang.

        Test: fast/css-grid-layout/grid-columns-rows-get-set-multiple.html

        Updated our supported syntax to match the following:
        <track-list> := [ <track-breadth> ]+ | 'none'
        <track-breadth> := <length> | <percentage> | 'auto'
        (the naming loosely matches the specification)

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::valueForGridTrackBreadth): Added function to handle a breadth
        (extended with 'auto' that the spec puts in <track-minmax>).

        (WebCore::valueForGridTrackList): Create a space seperated list of
        track breadth or none.

        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Updated
        to use the new functions.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseGridTrackList): Extended the function to
        match the new syntax.

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty): Removed our
        simple implementation. Replaced by the CSSStyleSelector functions.

        * css/CSSStyleSelector.cpp:
        (WebCore::createGridTrackBreadth):
        (WebCore::createGridTrackList):
        Added those 2 functions to convert the CSSPrimitiveValue to a Vector
        as expected by RenderStyle.

        (WebCore::CSSStyleSelector::applyProperty): Added our 2 properties
        now that it is not handled by CSSStyleApplyProperty.

        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::gridColumns):
        (WebCore::InheritedFlags::gridRows):
        (WebCore::InheritedFlags::setGridColumns):
        (WebCore::InheritedFlags::setGridRows):
        (WebCore::InheritedFlags::initialGridColumns):
        (WebCore::InheritedFlags::initialGridRows):
        Updated the previous methods to take a Vector of Length.

        (WebCore::InheritedFlags::initialGridTrackValue):
        Needed function to return a Vector with one 'none' Length (the initial
        value per the specification).

        * rendering/style/StyleGridData.h: Updated to use a Vector.

2011-12-06  David Reveman  <reveman@chromium.org>

        [Chromium] Implement tile-sized painting using SkPicture.
        https://bugs.webkit.org/show_bug.cgi?id=71869

        Reviewed by James Robinson.

        Add texture uploader that paints tile-sized chunks using SkPicture
        recording and playback. Expose setting which allows this texture
        updater to be enabled.

        No new tests. Covered by existing tests.

        * WebCore.gypi:
        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp: Added.
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::Texture):
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::prepareRect):
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::updateRect):
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::create):
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::BitmapSkPictureCanvasLayerTextureUpdater):
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::~BitmapSkPictureCanvasLayerTextureUpdater):
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::createTexture):
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::sampledTexelFormat):
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::prepareToUpdate):
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::paintContentsRect):
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::updateTextureRect):
        * platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h: Added.
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::Texture::textureUpdater):
        (WebCore::BitmapSkPictureCanvasLayerTextureUpdater::orientation):
        * platform/graphics/chromium/ContentLayerChromium.cpp:
        (WebCore::ContentLayerChromium::createTextureUpdater):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):

2011-12-06  Adrienne Walker  <enne@google.com>

        [chromium] Don't crash if tile upload happens without painting first
        https://bugs.webkit.org/show_bug.cgi?id=73939

        Reviewed by James Robinson.

        Remove at least one place (in ImageLayerChromium) where this could
        happen.

        Although this shouldn't happen, we should be robust to it in the
        chance that other code causes it to.

        * platform/graphics/chromium/ImageLayerChromium.cpp:
        (WebCore::ImageLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::updateCompositorResources):

2011-12-06  Ruben  <chromium@hybridsource.org>

        Enable web audio by default on non-Mac POSIX platforms
        https://bugs.webkit.org/show_bug.cgi?id=73491

        Reviewed by Tony Chang.

        No new tests, just changing gyp includes.

        * WebCore.gyp/WebCore.gyp:

2011-12-06  Benjamin Poulain  <benjamin@webkit.org>

        Put length in its own variable in KURL copyASCII
        https://bugs.webkit.org/show_bug.cgi?id=73928

        Reviewed by Darin Adler.

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

2011-12-06  Dana Jansens  <danakj@chromium.org>

        [chromium] Set opaque flag for ImageLayerChromium
        https://bugs.webkit.org/show_bug.cgi?id=72964

        Reviewed by James Robinson.

        Unit test in tests/ImageLayerChromiumTest.cpp.

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setContentsToImage):
        * platform/graphics/chromium/GraphicsLayerChromium.h:
        (WebCore::GraphicsLayerChromium::contentsLayer):
        * platform/graphics/chromium/ImageLayerChromium.cpp:
        (WebCore::ImageLayerChromium::setContents):

2011-12-06  Alexandre Elias  <aelias@google.com>

        [chromium] Apply sent deltas on finishCommit
        https://bugs.webkit.org/show_bug.cgi?id=73884

        Reviewed by James Robinson.

        This moves scroll and pageScale "sent" deltas to be applied to
        the layer at the end of the commit, instead of the beginning.

        This has several advantages, especially for page scale:
        - When pageScale changes, no longer any need to change the scroll's
        coordinate space at beginning of commit, which is complex and prone to
        bugs (this fixes a problem where we were forgetting to modify the
        scrollPosition before).
        - No need for non-commit-related code to consider the "sent" values.
        m_pageScale is now always the content scale factor, and
        m_pageScaleDelta is the scale to be on the impl-side matrix.
        - This will make it easy to send arbitrary fake or future delta
        values for example while pinch zooming out.

        The scroll logic is similarly altered for consistency's sake.  Note that
        I also moved the tree synchronize to the beginning of finishCommit
        in order to avoid having to change the pageScale coordinate space of
        sentScrollDelta in adjustScrollsForPageScaleChange().

        No new tests. (Refactoring of existing code.)

        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::pushPropertiesTo):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::setPageScaleFactorAndLimits):
        (WebCore::CCLayerTreeHostImpl::applyPageScaleDeltaToScrollLayer):
        (WebCore::CCLayerTreeHostImpl::processScrollDeltas):

2011-12-06  Gavin Barraclough  <barraclough@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=68328
        The generator and intrinsic fields in HashTableValue/HashEntry and associated structures and methods are redundant

        Reviewed by Geoff Garen.

        Intrinsic is no longer in the DFG namespace, is always in the
        hash table. Removed ThunkGenerator.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHashTable):

2011-12-06  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, rolling out r102091.
        http://trac.webkit.org/changeset/102091
        https://bugs.webkit.org/show_bug.cgi?id=73711

        Caused Clang Linux compile failure.

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setAnchorPoint):
        (WebCore::GraphicsLayerChromium::setTransform):
        (WebCore::GraphicsLayerChromium::setChildrenTransform):
        (WebCore::GraphicsLayerChromium::setMasksToBounds):
        (WebCore::GraphicsLayerChromium::setBackgroundColor):
        (WebCore::GraphicsLayerChromium::clearBackgroundColor):
        (WebCore::GraphicsLayerChromium::setContentsOpaque):
        (WebCore::GraphicsLayerChromium::setBackfaceVisibility):
        (WebCore::GraphicsLayerChromium::setOpacity):
        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::setNeedsCommit):
        * platform/graphics/chromium/LayerChromium.h:
        (WebCore::LayerChromium::setAnchorPoint):
        (WebCore::LayerChromium::setAnchorPointZ):
        (WebCore::LayerChromium::setBackgroundColor):
        (WebCore::LayerChromium::setMasksToBounds):
        (WebCore::LayerChromium::setMaskLayer):
        (WebCore::LayerChromium::setOpacity):
        (WebCore::LayerChromium::setOpaque):
        (WebCore::LayerChromium::setPosition):
        (WebCore::LayerChromium::setSublayerTransform):
        (WebCore::LayerChromium::setTransform):
        (WebCore::LayerChromium::setScrollPosition):
        (WebCore::LayerChromium::setScrollable):
        (WebCore::LayerChromium::setDoubleSided):
        (WebCore::LayerChromium::setReplicaLayer):
        * platform/graphics/chromium/NonCompositedContentHost.cpp:
        (WebCore::NonCompositedContentHost::notifySyncRequired):
        * platform/graphics/chromium/NonCompositedContentHost.h:

2011-12-06  Dana Jansens  <danakj@chromium.org>

        [Chromium] Make root layer always opaque
        https://bugs.webkit.org/show_bug.cgi?id=70564

        Reviewed by James Robinson.

        * platform/graphics/chromium/NonCompositedContentHost.cpp:
        (WebCore::NonCompositedContentHost::NonCompositedContentHost):
        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
        (WebCore::CCTiledLayerImpl::draw):

2011-12-06  Noel Gordon  <noel.gordon@gmail.com>

        WebPImageDecoder computes image width and height multiple times
        https://bugs.webkit.org/show_bug.cgi?id=73796

        Reviewed by Adam Barth.

        Once sufficient image data arrives, we can compute the decoded image height
        and width from the WEBP image header data.

        From then on, the decoded image size is known so there's no need to re-read
        it from the WEBP image header again.

        No change in behavior, so no new tests.

        * platform/image-decoders/webp/WEBPImageDecoder.cpp:
        (WebCore::WEBPImageDecoder::decode):

2011-12-06  Mike Reed  <reed@google.com>

        optimize TransformationMatrix::scale by not calling through to generic multiply
        https://bugs.webkit.org/show_bug.cgi?id=73830

        Reviewed by Kenneth Russell.

        No new tests. Optimization only, existing tests exercise the code

        * platform/graphics/transforms/TransformationMatrix.cpp:
        (WebCore::TransformationMatrix::scaleNonUniform):
        (WebCore::TransformationMatrix::scale3d):

2011-12-06  Eric Carlson  <eric.carlson@apple.com>

        Revert WebCore track Settings changes made in r101977
        https://bugs.webkit.org/show_bug.cgi?id=73879

        Reviewed by Sam Weinig.

        No new tests yet, still nothing to test.

        * page/Settings.cpp: Move the preference setters back into the .h file.
        * page/Settings.h:
        (WebCore::Settings::setShouldDisplaySubtitles):
        (WebCore::Settings::setShouldDisplayCaptions):
        (WebCore::Settings::setShouldDisplayTextDescriptions):

2011-12-06  Andreas Kling  <kling@webkit.org>

        MediaList: Remove constructor that takes a CSSImportRule*.
        <http://webkit.org/b/73833>

        Reviewed by Antti Koivisto.

        * css/MediaList.h:
        * css/MediaList.cpp:

            Remove MediaList(CSSImportRule*, ...) constructor.

        * css/CSSImportRule.cpp:
        (WebCore::CSSImportRule::CSSImportRule):

            Have CSSImportRule construct its MediaList by passing the parent
            style sheet, which is exactly what the old constructor accomplished.
            Also assert that we're always created with a non-null parent sheet.

2011-12-06  Jarred Nicholls  <jarred@sencha.com>

        getComputedStyle returns wrong value for margin-*
        https://bugs.webkit.org/show_bug.cgi?id=73334

        margin-* getComputedStyle values should return the "used" absolute value when there is a renderer
        and the specified value is relative (percentage, auto, etc.).
        When there is no renderer, the specified value should be returned.
        See http://dev.w3.org/csswg/cssom/#resolved-values.

        Reviewed by Darin Adler.

        Test: fast/css/getComputedStyle/getComputedStyle-resolved-values.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2011-12-06  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (WebKit2): Kill ring is not cleared when selection changes
        https://bugs.webkit.org/show_bug.cgi?id=73888
        <rdar://problem/10532310>

        Reviewed by Mark Rowe.

        Test: editing/pasteboard/emacs-ctrl-k-with-move.html

        * editing/Editor.cpp: (WebCore::Editor::respondToChangedSelection): Moved the code to clear
        kill ring from Mac WebKit, as it's needed in all Mac ports at least.

2011-12-06  Darin Adler  <darin@apple.com>

        Use HashMap<OwnPtr> in CollectionCache
        https://bugs.webkit.org/show_bug.cgi?id=73784

        Reviewed by Andreas Kling.

        * html/CollectionCache.cpp:
        (WebCore::CollectionCache::copyCacheMap): Use adoptPtr.
        (WebCore::CollectionCache::reset): Removed now-unneeded calls to deleteAllValues.
        (WebCore::append): Added. Helper function for appending elements to the maps from
        the collection cache.

        * html/CollectionCache.h: Changed mapped type in NodeCacheMap to OwnPtr.
        Added append function.

        * html/HTMLCollection.cpp:
        (WebCore::nameShouldBeVisibleInDocumentAll): Added, to factor out common code in
        two functions below.
        (WebCore::HTMLCollection::checkForNameMatch): Changed to call nameShouldBeVisibleInDocumentAll.
        (WebCore::HTMLCollection::updateNameCache): Ditto. Also updated cache code to use the append
        function, so it will work with OwnPtr. Also eliminated an unneeded get call before
        each hash table add; we do both at once in the new append function.
        * html/HTMLFormCollection.cpp:
        (WebCore::HTMLFormCollection::updateNameCache): More of the same.

2011-12-06  Yury Semikhatsky  <yurys@chromium.org>

        [Chromium] Web Inspector: getFunctionLocation should return scriptId as String not as int
        https://bugs.webkit.org/show_bug.cgi?id=73892

        Reviewed by Pavel Feldman.

        * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
        (WebCore::V8InjectedScriptHost::functionLocationCallback): scriptId should be a string not a number
        * inspector/Inspector.json: removed unused parameter

2011-11-21  Balazs Kelemen  <kbalazs@webkit.org>

        Enable ParallelJobs by default
        https://bugs.webkit.org/show_bug.cgi?id=70032

        Reviewed by Zoltan Herczeg.

        Covered by existing tests.

        According to measurements on Mac and Linux it is a
        considerable speedup for SVG on multicore.

        Remove the ENABLE(PARALLEL_JOBS) guard. Fix the Windows build
        by qualifying ParallelJobs with the WTF namespace (otherwise
        MSVC believes it belongs to WebCore which is likely a compiler bug).

        * platform/graphics/filters/FEConvolveMatrix.cpp:
        (WebCore::FEConvolveMatrix::setInteriorPixelsWorker):
        (WebCore::FEConvolveMatrix::platformApplySoftware):
        * platform/graphics/filters/FEConvolveMatrix.h:
        * platform/graphics/filters/FEGaussianBlur.cpp:
        (WebCore::FEGaussianBlur::platformApplyWorker):
        (WebCore::FEGaussianBlur::platformApply):
        * platform/graphics/filters/FEGaussianBlur.h:
        * platform/graphics/filters/FELighting.cpp:
        (WebCore::FELighting::platformApplyGenericWorker):
        (WebCore::FELighting::platformApplyGeneric):
        * platform/graphics/filters/FELighting.h:
        * platform/graphics/filters/FEMorphology.cpp:
        (WebCore::FEMorphology::platformApplyWorker):
        (WebCore::FEMorphology::platformApply):
        * platform/graphics/filters/FEMorphology.h:
        * platform/graphics/filters/FETurbulence.cpp:
        (WebCore::FETurbulence::fillRegionWorker):
        (WebCore::FETurbulence::platformApplySoftware):
        * platform/graphics/filters/FETurbulence.h:
        * platform/graphics/filters/arm/FELightingNEON.cpp:
        (WebCore::FELighting::platformApplyNeonWorker):
        * platform/graphics/filters/arm/FELightingNEON.h:
        (WebCore::FELighting::platformApplyNeon):

2011-12-06  Andreas Kling  <kling@webkit.org>

        Unreviewed assertion fix for r102123.

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

2011-12-06  Benjamin Poulain  <benjamin@webkit.org>

        Simplify KURL's checkEncodedString()
        https://bugs.webkit.org/show_bug.cgi?id=73890

        Reviewed by Andreas Kling.

        The method was reimplementing String::containsOnlyASCII().
        Use the method from String and we can remove the #if NDEBUG.

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

2011-12-06  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r102111.
        http://trac.webkit.org/changeset/102111
        https://bugs.webkit.org/show_bug.cgi?id=73902

        Breaks compilation (Requested by vsevik on #webkit).

        * editing/Editor.cpp:
        (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
        * editing/Editor.h:

2011-12-06  Hajime Morrita  <morrita@chromium.org>

        [Refactoring] Accessing Node::m_document should be minimized.
        https://bugs.webkit.org/show_bug.cgi?id=73800

        Reviewed by Kent Tamura.

        No new tests. No behavioral change.

        Replaced m_document reference with the document() accessor
        or temporaril variables. This is a preparation for using
        m_document space to point a shadow root pointer.

        * dom/Document.h:
        (WebCore::Node::Node):
        * dom/Node.cpp:
        (WebCore::Node::~Node):

2011-12-06  Shinya Kawanaka  <shinyak@google.com>

        https://bugs.webkit.org/show_bug.cgi?id=73889
        TextCheckingParagraph::offsetTo should not have a side effect.

        Reviewed by Hajime Morita.

        Since TextCheckingParagraph::offsetTo had a side effect, its cache often became inconsistent.
        This is likely to cause a bug when changing SpellChecker and Editor.

        No new tests. Covered by existing tests.

        * editing/TextCheckingHelper.cpp:
        (WebCore::TextCheckingParagraph::offsetTo):

2011-12-06  Eric Penner  <epenner@google.com>

        [chromium] Set texture limits as multiples of viewport size instead of hardcoded values
        https://bugs.webkit.org/show_bug.cgi?id=72202

        Reviewed by James Robinson.

        * platform/graphics/chromium/LayerRendererChromium.cpp: 
        (WebCore::LayerRendererChromium::drawLayers): added viewport param
        (WebCore::LayerRendererChromium::initializeSharedObjects): ditto 
        * platform/graphics/chromium/TextureManager.cpp: 
        (WebCore::TextureManager::highLimitBytes): calculated based on viewport
        (WebCore::TextureManager::reclaimLimitBytes): ditto
        (WebCore::TextureManager::lowLimitBytes): ditto
        (WebCore::TextureManager::TextureManager): added viewport param
        (WebCore::TextureManager::setMaxMemoryLimitBytes): changed name
        (WebCore::TextureManager::setPreferredMemoryLimitBytes): added function
        (WebCore::TextureManager::requestTexture): added viewport param
        * platform/graphics/chromium/TextureManager.h: ditto
        (WebCore::TextureManager::create): ditto
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: ditto
        (WebCore::CCLayerTreeHost::initialize): ditto
        (WebCore::CCLayerTreeHost::beginCommitOnImplThread): ditto
        (WebCore::CCLayerTreeHost::setViewport): ditto
        (WebCore::CCLayerTreeHost::setVisible): ditto
        (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread): ditto

2011-12-06  Huang Dongsung  <luxtella@company100.net>

        [TexMap][QT] Draw the borders of media and webgl elements in TexMap.
        https://bugs.webkit.org/show_bug.cgi?id=73817

        GraphicsContext3D only draws the content of the WebGL canvas, not the additional
        CSS such as the borders. TextureMapper should render the content of a
        media/webgl layer before drawing the actual canvas.
        This makes LayoutTests/compositing/webgl/webgl-reflection.html work.

        Reviewed by Noam Rosenthal.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::renderContent):
        (WebCore::TextureMapperNode::paintSelf):

2011-12-06  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r102043.
        http://trac.webkit.org/changeset/102043
        https://bugs.webkit.org/show_bug.cgi?id=73898

        Breaks chromium mac-cg compilation. (Requested by vsevik on
        #webkit).

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setContentsToImage):
        * platform/graphics/chromium/GraphicsLayerChromium.h:
        (WebCore::GraphicsLayerChromium::contentsLayer):
        * platform/graphics/chromium/ImageLayerChromium.cpp:
        (WebCore::ImageLayerChromium::setContents):

2011-12-06  Shinya Kawanaka  <shinyak@google.com>

        Refactoring: Editor::markAllMisspellingsAndBadGrammarInRanges should be refactored.
        https://bugs.webkit.org/show_bug.cgi?id=73628

        Reviewed by Hajime Morita.

        Extracted a code for adding markers and replacing misspelled words from WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges.

        No new tests. covered by existing tests.

        * editing/Editor.cpp:
        (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
          Extracted a code for adding markers and replacing missplled words, and moved to markAndReplaceFor.
        (WebCore::Editor::markAndReplaceFor):
        * editing/Editor.h:

2011-12-05  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Audits] Implement "Stop" button and progress bar instead of spinner.
        https://bugs.webkit.org/show_bug.cgi?id=73626

        Reviewed by Yury Semikhatsky.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/AuditLauncherView.js:
        (WebInspector.AuditLauncherView):
        (WebInspector.AuditLauncherView.prototype._setAuditRunning):
        (WebInspector.AuditLauncherView.prototype._launchButtonClicked):
        (WebInspector.AuditLauncherView.prototype._createLauncherUI):
        (WebInspector.AuditLauncherView.prototype._updateResourceProgress):
        (WebInspector.AuditLauncherView.prototype._updateButton):
        * inspector/front-end/AuditRules.js:
        (WebInspector.AuditRules.GzipRule.prototype.doRun):
        (WebInspector.AuditRules.CombineExternalResourcesRule.prototype.doRun):
        (WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype.doRun):
        (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.evalCallback.selectorsCallback):
        (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.evalCallback.documentLoaded):
        (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.evalCallback):
        (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.styleSheetCallback):
        (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.allStylesCallback):
        (WebInspector.AuditRules.UnusedCssRule.prototype.doRun):
        (WebInspector.AuditRules.CacheControlRule.prototype.doRun):
        (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun):
        (WebInspector.AuditRules.CssInHeadRule.prototype.doRun):
        (WebInspector.AuditRules.CssInHeadRule.prototype.doRun.externalStylesheetsReceived):
        (WebInspector.AuditRules.CssInHeadRule.prototype.doRun.inlineStylesReceived):
        (WebInspector.AuditRules.CssInHeadRule.prototype.doRun.onDocumentAvailable):
        (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun):
        (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun.cssBeforeInlineReceived):
        (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun.lateStylesReceived):
        (WebInspector.AuditRules.StylesScriptsOrderRule.prototype.doRun.onDocumentAvailable):
        (WebInspector.AuditRules.CookieRuleBase.prototype.doRun.resultCallback):
        (WebInspector.AuditRules.CookieRuleBase.prototype.doRun):
        * inspector/front-end/AuditsPanel.js:
        (WebInspector.AuditsPanel):
        (WebInspector.AuditsPanel.prototype._executeAudit.ruleResultReadyCallback):
        (WebInspector.AuditsPanel.prototype._executeAudit):
        (WebInspector.AuditsPanel.prototype._auditFinishedCallback):
        (WebInspector.AuditsPanel.prototype.terminateAudit):
        (WebInspector.AuditCategory.prototype.run):
        (WebInspector.AuditRule.prototype.run):
        (WebInspector.AuditRule.prototype.doRun):
        (WebInspector.AuditProgressMonitor):
        (WebInspector.AuditProgressMonitor.prototype.setTotalWork):
        (WebInspector.AuditProgressMonitor.prototype.worked):
        (WebInspector.AuditProgressMonitor.prototype.get indeterminate):
        (WebInspector.AuditProgressMonitor.prototype.done):
        (WebInspector.AuditProgressMonitor.prototype.get canceled):
        (WebInspector.AuditProgressMonitor.prototype.set canceled):

2011-12-06  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>

        [Qt] [WK2] MiniBrowser assert on startup in debug build after r101713
        https://bugs.webkit.org/show_bug.cgi?id=73874

        This change partially reverts r101713 restoring original behaviour for
        KUrl creation from empty string and fixes asserts in debug build.

        Reviewed by Alexey Proskuryakov.

        No new tests. Tests from r101713 pass.

        * platform/KURL.cpp:
        (WebCore::KURL::init):
        (WebCore::KURL::parse):
        * platform/KURL.h:

2011-12-06  Andreas Kling  <kling@webkit.org>

        Use HashMap<OwnPtr> for EventListenerMap's internal map.
        <http://webkit.org/b/73761>

        Reviewed by Benjamin Poulain.

        Changed the value type of EventListenerMap::m_hashMap to OwnPtr<EventListenerVector>.
        This means we no longer need to manually delete the vectors when taking them out of
        the map, which makes the code a little prettier.

        A few tweaks were necessary; release() instead of leakPtr() when switching modes
        and adoptPtr()/get() sprinkled as needed.

        * dom/EventListenerMap.h:
        * dom/EventListenerMap.cpp:
        (WebCore::EventListenerMap::clear):
        (WebCore::EventListenerMap::add):
        (WebCore::EventListenerMap::remove):
        (WebCore::EventListenerMap::find):
        (WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup):
        (WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):

2011-12-05  Rafael Weinstein  <rafaelw@chromium.org>

        [MutationObservers] Support 'attributes' mutation records for element.removeAttribute
        https://bugs.webkit.org/show_bug.cgi?id=73880

        Reviewed by Ojan Vafai.

        * dom/Element.cpp:
        (WebCore::enqueueAttributesMutationRecord):
        (WebCore::Element::removeAttribute):

2011-12-05  Dana Jansens  <danakj@chromium.org>

        Set opaque flag for WebGLLayerChromium
        https://bugs.webkit.org/show_bug.cgi?id=73876

        Reviewed by James Robinson.

        New unit test in tests/WebGLLayerChromiumTest.cpp

        * platform/graphics/chromium/DrawingBufferChromium.cpp:
        (WebCore::DrawingBuffer::platformLayer):

2011-12-05  Benjamin Poulain  <bpoulain@apple.com>

        Upstream the Cursor implementation of iOS
        https://bugs.webkit.org/show_bug.cgi?id=73724

        Reviewed by David Kilzer.

        iOS does not need to support the Cursor of WebKit. For compatibility, Cursor
        is implemented as an empty class on the platform.

        * Configurations/WebCore.xcconfig:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/Cursor.h:
        (WebCore::Cursor::Cursor):
        * platform/ios/CursorIOS.cpp: Added.
        (WebCore::cursor):
        (WebCore::pointerCursor):
        (WebCore::crossCursor):
        (WebCore::handCursor):
        (WebCore::moveCursor):
        (WebCore::iBeamCursor):
        (WebCore::waitCursor):
        (WebCore::helpCursor):
        (WebCore::eastResizeCursor):
        (WebCore::northResizeCursor):
        (WebCore::northEastResizeCursor):
        (WebCore::northWestResizeCursor):
        (WebCore::southResizeCursor):
        (WebCore::southEastResizeCursor):
        (WebCore::southWestResizeCursor):
        (WebCore::westResizeCursor):
        (WebCore::northSouthResizeCursor):
        (WebCore::eastWestResizeCursor):
        (WebCore::northEastSouthWestResizeCursor):
        (WebCore::northWestSouthEastResizeCursor):
        (WebCore::columnResizeCursor):
        (WebCore::rowResizeCursor):
        (WebCore::middlePanningCursor):
        (WebCore::eastPanningCursor):
        (WebCore::northPanningCursor):
        (WebCore::northEastPanningCursor):
        (WebCore::northWestPanningCursor):
        (WebCore::southPanningCursor):
        (WebCore::southEastPanningCursor):
        (WebCore::southWestPanningCursor):
        (WebCore::westPanningCursor):
        (WebCore::verticalTextCursor):
        (WebCore::cellCursor):
        (WebCore::contextMenuCursor):
        (WebCore::noDropCursor):
        (WebCore::notAllowedCursor):
        (WebCore::progressCursor):
        (WebCore::aliasCursor):
        (WebCore::zoomInCursor):
        (WebCore::zoomOutCursor):
        (WebCore::copyCursor):
        (WebCore::noneCursor):
        (WebCore::grabCursor):
        (WebCore::grabbingCursor):
        (WebCore::determineHotSpot):

2011-12-05  Noel Gordon  <noel.gordon@gmail.com>

        [GTK] GIF image test crashes on 32- and 64-bit Release
        https://bugs.webkit.org/show_bug.cgi?id=73812

        Reviewed by Adam Barth.

        Call resize() on the image pixel backing store after allocation to see if
        that stops the GIF image decoder animation tests crashes on GTK.

        No new tests, covered by exiting tests ...
          fast/backgrounds/animated-gif-as-background.html
          fast/images/dont-crash-with-null-gif-frames.html
          fast/images/gif-loop-count.html

        * platform/image-decoders/ImageDecoder.cpp:
        (WebCore::ImageFrame::setSize):

2011-12-05  Erik Arvidsson  <arv@chromium.org>

        Could save a lot of memory in CharacterData by not always storing a String
        https://bugs.webkit.org/show_bug.cgi?id=72404

        Reviewed by Ojan Vafai.

        When a Text node is created by the parser we check if the string is all whitespace
        and if so we put it in the AtomicString table so that all future identical whitespace
        strings can share the StringImpl.

        No new tests. Covered by existing tests.

        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLNames::isAllWhitespace):
        (WebCore::HTMLConstructionSite::insertTextNode):

            If we do not know whether the string is all whitespace this now checks the string
            If the string is all whitespace we create an AtomicString for it.

        * html/parser/HTMLConstructionSite.h:
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipLeadingNonWhitespace): We never cared about the return value here.
        (WebCore::HTMLTreeBuilder::processCharacterBuffer): Pass WhitespaceMode in the case we know whether the string is all whitespace or not.
        (WebCore::HTMLTreeBuilder::defaultForInTableText): Ditto.

2011-12-05  Benjamin Poulain  <benjamin@webkit.org>

        Update KURL's copy copyASCII to avoid String::characters()
        https://bugs.webkit.org/show_bug.cgi?id=73794

        Reviewed by Andreas Kling.

        When the String is already on 8 bits, we can simply copy the
        data. In the 16 bits case, everything remains the same.

        * platform/KURL.cpp:
        (WebCore::copyASCII):
        (WebCore::appendASCII):
        (WebCore::KURL::init):
        (WebCore::KURL::parse):
        (WebCore::KURL::copyToBuffer):

2011-12-05  Yong Li  <yoli@rim.com>

        https://bugs.webkit.org/show_bug.cgi?id=73683
        Implement KeyframeValueList::operator=() and KeyframeValueList::swap().

        Reviewed by Darin Adler.

        No new tests as no functional change.

        * platform/graphics/GraphicsLayer.h: 
        (WebCore::KeyframeValueList::operator=): Added
        (WebCore::KeyframeValueList::swap): Added

2011-12-05  Adrienne Walker  <enne@google.com>

        [chromium] setNeedsCommit on non-composited host layers should trigger commit
        https://bugs.webkit.org/show_bug.cgi?id=73711

        Reviewed by James Robinson.

        Pipe non-composited content host syncs to setNeedsCommit.

        Since now the NonCompositedContentHost generates setNeedsCommit, don't
        call it unnecessarily, e.g. calling setBackgroundColor to the same
        color each frame should not retrigger more commits.

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setAnchorPoint):
        (WebCore::GraphicsLayerChromium::setTransform):
        (WebCore::GraphicsLayerChromium::setChildrenTransform):
        (WebCore::GraphicsLayerChromium::setMasksToBounds):
        (WebCore::GraphicsLayerChromium::setBackgroundColor):
        (WebCore::GraphicsLayerChromium::clearBackgroundColor):
        (WebCore::GraphicsLayerChromium::setContentsOpaque):
        (WebCore::GraphicsLayerChromium::setBackfaceVisibility):
        (WebCore::GraphicsLayerChromium::setOpacity):
        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::setNeedsCommit):
        (WebCore::LayerChromium::setAnchorPoint):
        (WebCore::LayerChromium::setAnchorPointZ):
        (WebCore::LayerChromium::setBackgroundColor):
        (WebCore::LayerChromium::setMasksToBounds):
        (WebCore::LayerChromium::setMaskLayer):
        (WebCore::LayerChromium::setOpacity):
        (WebCore::LayerChromium::setOpaque):
        (WebCore::LayerChromium::setPosition):
        (WebCore::LayerChromium::setSublayerTransform):
        (WebCore::LayerChromium::setTransform):
        (WebCore::LayerChromium::setScrollPosition):
        (WebCore::LayerChromium::setScrollable):
        (WebCore::LayerChromium::setDoubleSided):
        * platform/graphics/chromium/LayerChromium.h:
        (WebCore::LayerChromium::setReplicaLayer):
        * platform/graphics/chromium/NonCompositedContentHost.cpp:
        (WebCore::NonCompositedContentHost::notifySyncRequired):
        * platform/graphics/chromium/NonCompositedContentHost.h:

2011-12-05  Tony Chang  <tony@chromium.org>

        small refactor of RenderFlexibleBox
        https://bugs.webkit.org/show_bug.cgi?id=73854

        Reviewed by Darin Adler.

        No new tests, just a refactor.

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::isLeftToRightFlow): Inline isReverseFlow since it's only used in one place.
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Rename startEdge
        to mainAxisOffset.  Rename logicalTop to crossAxisOffset.  Get rid of
        logicalLeft local variable since it's confusing.  Move shouldFlipMainAxis
        out of the for loop to avoid computing it each iteration.
        * rendering/RenderFlexibleBox.h:

2011-12-05  Florin Malita  <fmalita@google.com>

        Heap-buffer-overflow in WebCore::HTMLTreeBuilder::processEndTag
        https://bugs.webkit.org/show_bug.cgi?id=73765

        Reviewed by Adam Barth.

        Test: fast/parser/foreign-content-crash.html

        Use m_tree.currentNode() instead of m_tree.currentElement() as the top node is not always an Element.

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processEndTag):

2011-12-05  Stephen White  <senorblanco@chromium.org>

        Allow the ImageBuffers used by SVG filters to be accelerated
        https://bugs.webkit.org/show_bug.cgi?id=73842

        Reviewed by Kenneth Russell.

        Regressions covered by existing SVG tests; new functionality to be
        tested by the API exposed on Internals.

        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h:
        (WebCore::Settings::setAcceleratedFiltersEnabled):
        (WebCore::Settings::acceleratedFiltersEnabled):
        * platform/graphics/filters/FETile.cpp:
        (WebCore::FETile::platformApplySoftware):
        * platform/graphics/filters/Filter.h:
        (WebCore::Filter::Filter):
        (WebCore::Filter::renderingMode):
        (WebCore::Filter::setRenderingMode):
        * platform/graphics/filters/FilterEffect.cpp:
        (WebCore::FilterEffect::asImageBuffer):
        (WebCore::FilterEffect::createImageBufferResult):
        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::ImageBuffer::platformTransformColorSpace):
        * rendering/svg/RenderSVGResourceClipper.cpp:
        (WebCore::RenderSVGResourceClipper::applyClippingToContext):
        * rendering/svg/RenderSVGResourceFilter.cpp:
        (WebCore::RenderSVGResourceFilter::applyResource):
        * rendering/svg/RenderSVGResourceMasker.cpp:
        (WebCore::RenderSVGResourceMasker::applyResource):
        * rendering/svg/RenderSVGResourcePattern.cpp:
        (WebCore::RenderSVGResourcePattern::createTileImage):
        * rendering/svg/SVGImageBufferTools.cpp:
        (WebCore::SVGImageBufferTools::createImageBuffer):
        * rendering/svg/SVGImageBufferTools.h:
        * testing/Internals.cpp:
        (WebCore::Internals::setAcceleratedFiltersEnabled):
        * testing/Internals.h:
        * testing/Internals.idl:

2011-12-05  Benjamin Poulain  <bpoulain@apple.com>

        Upstream htmlSelectMultipleItems needed for <select multiple> by iOS
        https://bugs.webkit.org/show_bug.cgi?id=73734

        Reviewed by David Kilzer.

        * platform/DefaultLocalizationStrategy.cpp:
        (WebCore::DefaultLocalizationStrategy::htmlSelectMultipleItems):
        * platform/DefaultLocalizationStrategy.h:

2011-12-05  Darin Adler  <darin@apple.com>

        Use HashMap<OwnPtr> in CrossOriginPreflightResultCache
        https://bugs.webkit.org/show_bug.cgi?id=73785

        Reviewed by Andreas Kling.

        * loader/CrossOriginPreflightResultCache.cpp:
        (WebCore::CrossOriginPreflightResultCache::appendEntry): Changed code to use set
        instead of add, since it wants to replace existing entries. Also removed leakPtr
        and removed the FIXME that documented the memory leak now fixed here.
        (WebCore::CrossOriginPreflightResultCache::canSkipPreflight): Removed unneeded
        std:: prefix here and also unneeded explicit delete call.
        (WebCore::CrossOriginPreflightResultCache::empty): Removed unneeded deleteAllValues
        call here.

        * loader/CrossOriginPreflightResultCache.h: Make mapped value of the
        CrossOriginPreflightResultHashMap be OwnPtr instead of raw pointer.

2011-12-05  Darin Adler  <darin@apple.com>

        Some small improvements to ContainerNode.h
        https://bugs.webkit.org/show_bug.cgi?id=73786

        Reviewed by Alexey Proskuryakov.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::suspendPostAttachCallbacks): Added a FIXME comment about the
        peculiar behavior of this function. Somehow the post-attach suspend state is both
        global and specific to a certain Page object. That can't be right. If it was truly
        global then this would be a static member function. If it was truly per-page, then
        the related functions could not be static.

        * dom/ContainerNode.h: Removed some unneeded argument names. Moved the hasChildNodes
        function up with the other basic getters. Put the other getters, childNodeCount and
        childNode, right after the basic getters. Used ASSERT_NO_EXCEPTION in all the basic
        mutation functions so they can be used in a cleaner fashion in C++ code where we have
        some reason to know an exception won't occur. Grouped all the overrides of functions
        from Node into a single paragraph and used the OVERRIDE macro on all of them. Made the
        queuePostAttachCallback and postAttachCallbacksAreSuspended functions protected.

        * dom/Element.h: Moved the include of ExceptionCodePlaceholder.h into ContainerNode.h.

        * dom/Node.cpp:
        (WebCore::Node::lazyAttach): Use hasChildNodes instead of firstChild for clarity.
        (WebCore::Node::isDescendantOf): Ditto.

2011-12-05  Benjamin Poulain  <benjamin@webkit.org>

        Get rid of KURL::KURL(ParsedURLStringTag, const char*);
        https://bugs.webkit.org/show_bug.cgi?id=73792

        Reviewed by Andreas Kling.

        In all cases where the constructor is used, the constructor
        taking a String is as effective because the string is valid and converted
        to String for m_string.

        This patch remove the constructor KURL::KURL(ParsedURLStringTag, const char*)
        and change the call sites that were using that constructor to build
        empty URLs.

        * dom/Document.cpp:
        (WebCore::Document::initSecurityContext):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::init):
        * loader/archive/cf/LegacyWebArchive.cpp:
        (WebCore::LegacyWebArchive::create):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::createWindow):
        * platform/KURL.cpp:
        * platform/KURL.h:
        * platform/KURLGoogle.cpp:

2011-12-05  Benjamin Poulain  <benjamin@webkit.org>

        Remove methods declared but never implemented with GOOGLEURL
        https://bugs.webkit.org/show_bug.cgi?id=73795

        Reviewed by Adam Barth.

        * platform/KURL.h:

2011-12-05  Darin Adler  <darin@apple.com>

        Change CSSFontSelector to use HashMap<OwnPtr>
        https://bugs.webkit.org/show_bug.cgi?id=73781

        Reviewed by Dan Bernstein.

        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::~CSSFontSelector): Removed calls to deleteAllValues.
        (WebCore::CSSFontSelector::addFontFaceRule): Updated to use OwnPtr instead of raw
        pointer for the entry in m_fontFaces and m_locallyInstalledFontFaces.
        (WebCore::CSSFontSelector::getFontData): Updated to use OwnPtr instead of raw
        pointer for the entry in m_fonts. Also removed an unneeded std:: prefix.

        * css/CSSFontSelector.h: Made m_fontFaces, m_locallyInstalledFontFaces, and m_fonts
        be HashMap<OwnPtr>.

2011-12-05  Adam Klein  <adamk@chromium.org>

        V8RecursionScope should call didLeaveScriptContext when recursionLevel reaches zero
        https://bugs.webkit.org/show_bug.cgi?id=73867

        Reviewed by Adam Barth.

        Moved V8RecursionScope into its own file, and moved
        V8Proxy::didLeaveScriptContext into that file, along with a static
        recursionLevel accessor, hiding the V8BindingPerIsolateData methods
        from V8Proxy.

        This will make it easy and less error-prone to use V8RecursionScope
        properly. I plan to make use of it in V8LazyEventListener to fix
        https://bugs.webkit.org/show_bug.cgi?id=73492.

        No new tests, refactoring only.

        * Target.pri:
        * UseV8.cmake:
        * WebCore.gypi:
        * bindings/v8/V8Binding.h:
        (WebCore::V8BindingPerIsolateData::incrementRecursionLevel): return the new recursion level.
        (WebCore::V8BindingPerIsolateData::decrementRecursionLevel): return the new recursion level.
        * bindings/v8/V8Proxy.cpp: remove didLeaveScriptContext.
        (WebCore::V8Proxy::runScript): remove explicit call to didLeaveScriptContext.
        (WebCore::V8Proxy::instrumentedCallFunction): remove explicit call to didLeaveScriptContext.
        * bindings/v8/V8Proxy.h: remove didLeaveScriptContext.
        * bindings/v8/V8RecursionScope.cpp: Added.
        (WebCore::V8RecursionScope::didLeaveScriptContext): copied from V8Proxy.cpp.
        * bindings/v8/V8RecursionScope.h: Added.
        (WebCore::V8RecursionScope::V8RecursionScope):
        (WebCore::V8RecursionScope::~V8RecursionScope):
        (WebCore::V8RecursionScope::recursionLevel):

2011-12-05  Benjamin Poulain  <bpoulain@apple.com>

        Build fix for SecurityOrigin.cpp when neither BLOB nor FILE_SYSTEM are defined

        Reviewed by David Kilzer.

        When neither BLOB nor FILE_SYSTEM are defined, the parameter is unused.

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

2011-12-05  Darin Adler  <darin@apple.com>

        Change RuleSet to use HashMap<OwnPtr>
        https://bugs.webkit.org/show_bug.cgi?id=73783

        Reviewed by Andreas Kling.

        * css/CSSStyleSelector.cpp: Make RuleSet::AtomRuleMap use OwnPtr for the mapped values.
        (WebCore::RuleSet::addToRuleSet): Use add instead of get/set to set up a new entry in the
        map or find the old entry in the map.

2011-12-05  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Move emissions of AtkDocument signals down to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=73750

        Reviewed by Chris Fleizach.

        Implement the needed infrastructure to allow notifying
        accessibility, in a cross-platform way, when a event related to
        the load of a document happens. Added a generic method, which will
        be called from the FrameLoader, and platform specific versions of
        it so every port has a chance to decide what to do with those
        notifications.

        This patch doesn't include a new test because the one testing this
        functionality is the GTK-specific unit test added along with patch
        for bug 73746: testWebkitAtkDocumentLoadingEvents.

        * accessibility/AXObjectCache.h:
        (WebCore::AXObjectCache::frameLoadingEventNotification): New, called
        from the FrameLoader to notify accessibility when an event happens.
        (WebCore::AXObjectCache::frameLoadingEventPlatformNotification): New,
        platform specific function to let ports decide what to do.
        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::frameLoadingEventNotification): New.
        * accessibility/chromium/AXObjectCacheChromium.cpp:
        (WebCore::AXObjectCache::frameLoadingEventPlatformNotification): Dummy
        implementation of the platform specific function for chromium.
        * accessibility/gtk/AXObjectCacheAtk.cpp:
        (WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
        * accessibility/mac/AXObjectCacheMac.mm:
        (WebCore::AXObjectCache::frameLoadingEventPlatformNotification): Dummy
        implementation of the platform specific function for the Mac.
        * accessibility/win/AXObjectCacheWin.cpp:
        (WebCore::AXObjectCache::frameLoadingEventPlatformNotification): Dummy
        implementation of the platform specific function for Windows.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::prepareForLoadStart): Notify accessibility
        by calling the new frameLoadingEventNotification() function.
        (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Ditto.

2011-12-05  Benjamin Poulain  <benjamin@webkit.org>

        Update String::containsOnlyASCII() to handle 8 bits strings
        https://bugs.webkit.org/show_bug.cgi?id=73799

        Reviewed by Darin Adler.

        When possible, change the call sites from charactersAreAllASCII()
        to the optimized version String::containsOnlyASCII().

        * platform/KURL.cpp:
        (WebCore::KURL::init):
        * platform/cf/BinaryPropertyList.cpp:
        (WebCore::BinaryPropertyListPlan::writeStringObject):
        * platform/graphics/chromium/FontCacheChromiumWin.cpp:
        (WebCore::FontCodepage::if):

2011-12-01  Vangelis Kokkevis  <vangelis@chromium.org>

        [chromium] Use ANGLE's texture_usage and texture_storage extensions when allocating compositor textures
        https://bugs.webkit.org/show_bug.cgi?id=73621

        When the extensions are available, compositor textures are allocated via
        glTexStorage2DEXT instead of glTexImage2D to eliminate creation of unnecessary
        mip levels on the service side. In addition, the GL_FRAMEBUFFER_ATTACHMENT_ANGLE
        is specified for all textures used by RenderSurfaces to eliminate the need for
        a system memory bitmap allocation.

        Reviewed by Kenneth Russell.

        * platform/graphics/chromium/Extensions3DChromium.h:
        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::initialize):
        (WebCore::LayerRendererChromium::initializeSharedObjects):
        * platform/graphics/chromium/TrackingTextureAllocator.cpp:
        (WebCore::TrackingTextureAllocator::TrackingTextureAllocator):
        (WebCore::textureToStorageFormat):
        (WebCore::isTextureFormatSupportedForStorage):
        (WebCore::TrackingTextureAllocator::createTexture):
        * platform/graphics/chromium/TrackingTextureAllocator.h:
        (WebCore::TrackingTextureAllocator::setTextureUsageHint):
        (WebCore::TrackingTextureAllocator::setUseTextureStorageExt):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::LayerRendererCapabilities::LayerRendererCapabilities):

2011-12-05  Chris Fleizach  <cfleizach@apple.com>

        AX: aria-hidden doesn't work on iframe elements
        https://bugs.webkit.org/show_bug.cgi?id=73857

        Reviewed by Darin Adler.

        Test: platform/mac/accessibility/iframe-aria-hidden.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::addAttachmentChildren):
        (WebCore::AccessibilityRenderObject::addChildren):
        * accessibility/AccessibilityRenderObject.h:
        * accessibility/AccessibilityScrollView.cpp:
        (WebCore::AccessibilityScrollView::accessibilityIsIgnored):
        (WebCore::AccessibilityScrollView::addChildren):
        * accessibility/AccessibilityScrollView.h:

2011-12-05  Chris Fleizach  <cfleizach@apple.com>

        AX: web search mechanism does not work with frames
        https://bugs.webkit.org/show_bug.cgi?id=73836

        Reviewed by Beth Dakin.

        This allows searching for, and within, frames for elements using the accessibility
        search mechanism.

        Test: platform/mac/accessibility/search-with-frames.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatch):
        (WebCore::appendAccessibilityObject):
        (WebCore::appendChildrenToArray):

2011-12-05  Anders Carlsson  <andersca@apple.com>

        Make LayerFlushSchedulerClient::flushLayers indicate whether the flush was successful or not
        https://bugs.webkit.org/show_bug.cgi?id=73862

        Reviewed by Andy Estes.

        Change LayerFlushSchedulerClient::flushLayers to return a boolean. If it returns true, the flush was
        successful and the run loop observer will be invalidated.

        * platform/graphics/ca/LayerFlushScheduler.h:
        * platform/graphics/ca/LayerFlushSchedulerClient.h:
        * platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp:
        (WebCore::LayerFlushScheduler::runLoopObserverCallback):

2011-12-05  Dana Jansens  <danakj@chromium.org>

        [chromium] Set opaque flag for ImageLayerChromium
        https://bugs.webkit.org/show_bug.cgi?id=72964

        Reviewed by James Robinson.

        New unit test in tests/ImageLayerChromiumTest.cpp.

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setContentsToImage):
        * platform/graphics/chromium/GraphicsLayerChromium.h:
        (WebCore::GraphicsLayerChromium::contentsLayer):
        * platform/graphics/chromium/ImageLayerChromium.cpp:
        (WebCore::ImageLayerChromium::setContents):

2011-12-05  Julien Chaffraix  <jchaffraix@webkit.org>

        TD width in precentage doesn't work.
        https://bugs.webkit.org/show_bug.cgi?id=34758

        Reviewed by David Hyatt.

        Test: fast/table/colspan-with-all-percent-cells.html

        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::calcEffectiveLogicalWidth):
        In the case where all our columns have percent lengths, split the colspan
        logical width using the percentages from the lengths. This should be properly
        handled by the massive 'else' case but it is not and I did not feel like refactor
        that due to massive compatibility issues that would arise.

2011-12-05  Chris Fleizach  <cfleizach@apple.com>

        platform/mac/accessibility/search-when-element-starts-in-table.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=73751

        When encountering a table, the rows() and not the cells() should be queried (otherwise
        we can end up finding the element we started with).

        When searching in reverse, we also need to account for searching elements within the
        parent hierarchy. because technically it is "behind" the start element.

        Reviewed by Darin Adler.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::appendChildrenToArray):
        (WebCore::AccessibilityObject::objectMatchesSearchCriteriaWithResultLimit):
        (WebCore::AccessibilityObject::findMatchingObjects):
        * accessibility/AccessibilityObject.h:

2011-12-02  Jer Noble  <jer.noble@apple.com>

        <video> elements should disable the system and display sleep when playing on OS X.
        https://bugs.webkit.org/show_bug.cgi?id=73730
        <rdar://problem/9502155>

        Reviewed by Alexey Proskuryakov.

        No new tests; platform specific system behavior only.

        Create a new DisplaySleepDisabler object when the playback rate becomes non-zero, and destroy
        that object when the playback rate drops back to zero.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaPlayerRateChanged):
        * html/HTMLMediaElement.h:

2011-12-05  Peter Beverloo  <peter@chromium.org>

        [Chromium] Add Android keycodes and build Linux clipboard/filesystem files.
        https://bugs.webkit.org/show_bug.cgi?id=73672

        Add the KeyCodeConversionAndroid.cpp file, which is a partial re-land
        of an older file from the Android port:
        http://trac.webkit.org/browser/trunk/WebCore/platform/android/KeyEventAndroid.cpp?rev=56704

        Add IconChromiumAndroid.cpp which nullifies the rendering of icons in
        file upload boxes, which is not something we want to support now. Also
        include ClipboardChromiumLinux.cpp and FileSystemChromiumLinux.cpp
        as their functionality can be re-used for Android.

        Reviewed by Adam Barth.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * platform/chromium/KeyCodeConversionAndroid.cpp: Added.
        (WebCore::windowsKeyCodeForKeyEvent):
        * platform/graphics/chromium/IconChromiumAndroid.cpp: Added.
        (WebCore::Icon::Icon):
        (WebCore::Icon::~Icon):
        (WebCore::Icon::paint):

2011-12-05  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Sam Weinig.

        On Windows, filenames not properly preserved when copied into a file list exposed by Event.dataTransfer
        https://bugs.webkit.org/show_bug.cgi?id=73841
        <rdar://problem/10521879>

        No test since repro case involves dropping a file onto the WebView.
        
        Calling characters() explicitly causes a non-terminated string buffer to get passed back
        to the String() constructor that expects a terminated buffer. The characters() call isn't
        necessary at all, since we have a String and the method we're calling expects a String.

        * platform/win/ClipboardWin.cpp:
        (WebCore::ClipboardWin::files): Remove characters() since it doesn't null terminate.

2011-12-05  Timothy Hatcher  <timothy@apple.com>

        Keep both InspectorBackend.js and InspectorBackendStub.js in Release builds after
        they have been combined into inspector.js.

        The InspectorBackend.js file split out of the generated InspectorBackendStub.js
        in r101670, and both files are needed to be useful.

        https://webkit.org/b/73839

        Reviewed by Joseph Pecoraro and Brian Weinstein.

        * WebCore.xcodeproj/project.pbxproj: Pass -not -name "InspectorBackend*.js" to find
        instead of -not -name InspectorBackendStub.js.

2011-12-05  Mikhail Naganov  <mnaganov@chromium.org>

        Web Inspector: [Chromium] Heap profiler should designate weak references.
        https://bugs.webkit.org/show_bug.cgi?id=69948

        Weak references are now ignored when tracing paths to GC roots.

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshotEdge.prototype.get isWeak):
        (WebInspector.HeapSnapshotEdge.prototype.toString):
        (WebInspector.HeapSnapshotEdge.prototype.get _hasStringName):
        (WebInspector.HeapSnapshotRetainerEdge.prototype.get isWeak):
        (WebInspector.HeapSnapshot.prototype._init):
        (WebInspector.HeapSnapshotPathFinder.prototype._fillRootChildren):
        (WebInspector.HeapSnapshotPathFinder.prototype._skipEdge):

2011-12-05  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r102004.
        http://trac.webkit.org/changeset/102004
        https://bugs.webkit.org/show_bug.cgi?id=73835

        Breaks qt minimal release compilation (Requested by vsevik on
        #webkit).

        * inspector/CodeGeneratorInspector.py:
        (Capitalizer.upper_camel_case_to_lower):
        (RawTypes.get):
        (RawTypes.String.get_c_param_type):
        (RawTypes.Object.get_c_param_type):
        (RawTypes.Object):
        (ParamType):
        (TypeData.__init__):
        (TypeData.get_raw_type):
        (TypeMap.__init__):
        (InspectorFrontend_h):
        (InspectorArray):
        (InspectorObject):
        (String):
        (InspectorBackendDispatcher_h):
        (Generator.process_command):
        * inspector/InspectorValues.h:

2011-12-05  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: [protocol] generate C++ classes for protocol JSON named types
        https://bugs.webkit.org/show_bug.cgi?id=72835

        Reviewed by Yury Semikhatsky.

        Extends python generator functionality.
        Makes constructor in InspectorObject public.

        * inspector/CodeGeneratorInspector.py:
        * inspector/InspectorValues.h:

2011-12-05  Pavel Podivilov  <podivilov@chromium.org>

        Web Inspector: fix fronted compilation.
        https://bugs.webkit.org/show_bug.cgi?id=73831

        Reviewed by Yury Semikhatsky.

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

2011-12-05  Eric Carlson  <eric.carlson@apple.com>

        Out-of-band text tracks may only load from same origin as the media element's Document's origin
        https://bugs.webkit.org/show_bug.cgi?id=73184

        Reviewed by Sam Weinig.

        Test: http/tests/security/text-track-crossorigin.html

        * html/HTMLTrackElement.cpp:
        (WebCore::urlForLogging): Debug-only function for logging urls.
        (WebCore::HTMLTrackElement::scheduleLoad): Call canLoadUrl() before passing control off to
            the Track.
        (WebCore::HTMLTrackElement::canLoadUrl): Don't ask HTMLMediaElement to validate the url, the
            requirements for <track> are different from <video>.
        (WebCore::HTMLTrackElement::didCompleteLoad): Change bool param to enum.
        (WebCore::HTMLTrackElement::mediaElementCrossOriginAttribute): New, return parent 'crossorigin' 
            attribute value.
        * html/HTMLTrackElement.h:

        * html/LoadableTextTrack.cpp:
        (WebCore::LoadableTextTrack::scheduleLoad): Add comments from the spec.
        (WebCore::LoadableTextTrack::loadTimerFired): Always cancel pending loads. Let the caller know 
            if the loader refuses the url immediately.
        (WebCore::LoadableTextTrack::cueLoadingStarted): The <track> deals with readyState.
        (WebCore::LoadableTextTrack::cueLoadingCompleted): HTMLTrackElement::didCompleteLoad takes
            an enum, not a bool.

        * loader/TextTrackLoader.cpp:
        (WebCore::TextTrackLoader::corsPolicyPreventedLoad): New, log the error and set m_state.
        (WebCore::TextTrackLoader::notifyFinished): Check for CORS failure.
        (WebCore::TextTrackLoader::load): Take media element cross-origin attribute as a param so we
            can make the correct checks.
        * loader/TextTrackLoader.h:

2011-12-05  Roland Steiner  <rolandsteiner@chromium.org>

        "Raw" pseudo selectors don't match if immediately after a child or descendant combinator
        https://bugs.webkit.org/show_bug.cgi?id=72933

        Remove shortcut that prevents universal selectors from being created before shadow pseudo-elements.

        Reviewed by Antti Koivisto.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::updateSpecifiersWithElementName):

2011-12-05  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r101983.
        http://trac.webkit.org/changeset/101983
        https://bugs.webkit.org/show_bug.cgi?id=73827

        It broke all tests on GTK and on Qt in debug mode (Requested
        by Ossy on #webkit).

        * dom/Document.h:
        (WebCore::Node::Node):
        * dom/Node.cpp:
        (WebCore::Node::~Node):
        * dom/Node.h:
        (WebCore::Node::inDocument):

2011-12-05  Roland Steiner  <rolandsteiner@chromium.org>

        <style scoped>: Add 'scoped' attribute
        https://bugs.webkit.org/show_bug.cgi?id=67718

        Add 'scoped' attribute to IDL and attribute list,
        implement and test setting/resetting of the attribute.

        Reviewed by Antti Koivisto.

        Test: fast/css/style-scoped/basic-attribute.html

        * html/HTMLAttributeNames.in:
        * html/HTMLStyleElement.cpp:
        (WebCore::HTMLStyleElement::scoped):
        (WebCore::HTMLStyleElement::setScoped):
        (WebCore::HTMLStyleElement::scopingElement):
        * html/HTMLStyleElement.h:
        * html/HTMLStyleElement.idl:

2011-12-05  Hajime Morrita  <morrita@chromium.org>

        [Refactoring] Accessing Node::m_document should be minimized.
        https://bugs.webkit.org/show_bug.cgi?id=73800

        Reviewed by Kent Tamura.

        No new tests. No behavioral change.

        Replaced m_document reference with the document() accessor
        or temporaril variables. This is a preparation for using
        m_document space to point a shadow root pointer.

        * dom/Document.h:
        (WebCore::Node::Node):
        * dom/Node.cpp:
        (WebCore::Node::~Node):
        * dom/Node.h:
        (WebCore::Node::inDocument):

2011-12-05  Shinya Kawanaka  <shinyak@google.com>

        Asynchronous SpellChecker should consider multiple requests.
        https://bugs.webkit.org/show_bug.cgi?id=72939

        Reviewed by Hajime Morita.

        Now SpellChecker saves a request when it is processing the previous spellcheck request.
        If there is a request having the same root editable element, the older request is replaced by newer request

        Test: editing/spelling/spellcheck-queue.html

        * editing/SpellChecker.cpp:
        (WebCore::SpellChecker::SpellCheckRequest::SpellCheckRequest):
          A structure to have spell check request.
        (WebCore::SpellChecker::SpellCheckRequest::sequence):
        (WebCore::SpellChecker::SpellCheckRequest::range):
        (WebCore::SpellChecker::SpellCheckRequest::text):
        (WebCore::SpellChecker::SpellCheckRequest::mask):
        (WebCore::SpellChecker::SpellCheckRequest::rootEditableElement):
        (WebCore::SpellChecker::SpellChecker):
        (WebCore::SpellChecker::createRequest):
        (WebCore::SpellChecker::timerFiredToProcessQueuedRequest):
          When timer is fired, queued request is processed if any.
        (WebCore::SpellChecker::canCheckAsynchronously):
        (WebCore::SpellChecker::requestCheckingFor):
          When the spellchecker is processing another request, the latest request is queued.
        (WebCore::SpellChecker::invokeRequest):
        (WebCore::SpellChecker::enqueueRequest):
          Enqueues a request. If there is an older request whose root editable element is the same as the request,
          it will be replaced.
        (WebCore::SpellChecker::didCheck):
        * editing/SpellChecker.h:

2011-12-05  Eric Carlson  <eric.carlson@apple.com>

        WebCore part of: Add WebKit preferences for text track settings
        https://bugs.webkit.org/show_bug.cgi?id=73721

        Reviewed by John Sullivan.

        No new tests yet, still nothing to test.

        * page/Settings.cpp:
        (WebCore::Settings::setShouldDisplaySubtitles): Move the setters to the .cpp file so they
            aren't inlined.
        (WebCore::Settings::setShouldDisplayCaptions): Ditto.
        (WebCore::Settings::setShouldDisplayTextDescriptions): Ditto.
        * page/Settings.h:

2011-12-05  Noel Gordon  <noel.gordon@gmail.com>

        ImageDecoder setSize() should check for backing store allocation failure
        https://bugs.webkit.org/show_bug.cgi?id=72864

        Reviewed by Adam Barth.

        The backing store of a decoded image is a Vector<PixelData> on the affected
        ports. And Vector<> provides a resize capacity member that returns false if
        memory allocation fails.

        setSize() should be called once only during an image decode - add an ASSERT
        for that. Resize the backing store capacity to the requested image size and
        return false if memory allocation fails.

        ImageDecoder::isOverSize(width, height) is called to check that the decoded
        width and height won't overflow 'width x height x sizeof(PixelData)' before
        calls to setSize(). Refer to http://webkit.org/b/48634

        No new tests. Covered by fast/images/size-failure.html

        * platform/image-decoders/ImageDecoder.cpp:
        (WebCore::ImageFrame::setSize):

2011-12-04  Andreas Kling  <kling@webkit.org>

        CSSStyleSheet can't be reparented, enforce this at compile time.
        <http://webkit.org/b/73793>

        Reviewed by Benjamin Poulain.

        * css/StyleSheet.h:
        (WebCore::StyleSheet::clearOwnerRule):

            Changed setParentRule(CSSImportRule*) to clearOwnerRule() to document and
            enforce the fact that style sheets should never be reparented after creation.

        (WebCore::StyleSheet::ownerRule):

            Renamed parentRule() to ownerRule() to match the CSSOM name.

        (WebCore::StyleSheet::ownerNode):
        (WebCore::StyleSheet::clearOwnerNode):

            Also renamed StyleSheet::m_parentNode to m_ownerNode to match its accessors.

        * css/CSSStyleSheet.h:

            Removed ownerRule() as we now inherit it from StyleSheet.

        * bindings/js/JSDOMBinding.h:
        (WebCore::root):
        * css/CSSImportRule.cpp:
        (WebCore::CSSImportRule::~CSSImportRule):
        (WebCore::CSSImportRule::setCSSStyleSheet):
        * css/StyleSheet.cpp:
        (WebCore::StyleSheet::StyleSheet):
        (WebCore::StyleSheet::parentStyleSheet):
        (WebCore::StyleSheet::baseURL):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::fillMediaListChain):

            Update call sites to use the new names.

2011-12-04  Andreas Kling  <kling@webkit.org>

        border-width: initial and border-color: initial cannot be removed via CSSOM.
        <http://webkit.org/b/68551>

        Reviewed by Darin Adler.

        Test: fast/css/cssom-remove-shorthand-property.html

        When asked to remove a shorthand property, we should toss out both the
        sub-properties of that shorthand as well as the shorthand itself, should the
        declaration contain it. The latter part was missing in our implementation.

        * css/CSSMutableStyleDeclaration.h:
        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
        (WebCore::CSSMutableStyleDeclaration::removeShorthandProperty):

            Changed to return true only if something was actually removed.

2011-12-04  Ryosuke Niwa  <rniwa@webkit.org>

        HIERARCHY_REQUEST_ERR check in checkAcceptChild should be optimized for newChild without children
        https://bugs.webkit.org/show_bug.cgi?id=73737

        Reviewed by Darin Adler.

        It turned out that 50-70% of nodes inserted by DOM APIs such as insertBefore and appendChild
        don't have any descendent nodes. Optimize isDescendantOf which is used by checkAcceptChild for this case.
        On a test case attached on the bug, we see a 40% improvement.

        Also optimize for cases where either new child or new parent but not both are in document as suggested
        by Erik Arvidsson. This appears to happen about 40-70% of the time, and the symmetric difference between
        the two cases is about 50% so it's worth implementing both optimizations.

        Unfortunately no tests because we still have a O(n) algorithm somewhere.

        * dom/Node.cpp:
        (WebCore::Node::isDescendantOf):
        (WebCore::Node::contains):

2011-12-04  Andreas Kling  <kling@webkit.org>

        CSSValuePool: Inline trivial getters.
        <http://webkit.org/b/73763>

        Reviewed by Anders Carlsson.

        * css/CSSValuePool.cpp:
        * css/CSSValuePool.h:
        (WebCore::CSSValuePool::createInheritedValue): Inlined.
        (WebCore::CSSValuePool::createImplicitInitialValue): Ditto.
        (WebCore::CSSValuePool::createExplicitInitialValue): Ditto.

2011-12-03  Noel Gordon  <noel.gordon@gmail.com>

        Fix WebPImageDecoder decoder leak.
        https://bugs.webkit.org/show_bug.cgi?id=73756

        Reviewed by Andreas Kling.

        Delete the m_decoder member in the destructor if needed with WebPIDelete.

        No new tests, it's valgrind territory.

        * platform/image-decoders/webp/WEBPImageDecoder.cpp:
        (WebCore::WEBPImageDecoder::~WEBPImageDecoder):

2011-12-03  Andreas Kling  <kling@webkit.org>

        CSSStyleSheet: Parent rule can only ever be @import, enforce this at compile time.
        <http://webkit.org/b/73725>

        Reviewed by Darin Adler.

        Made StyleSheet::m_parentRule a CSSImportRule* rather than a CSSRule*
        and updated getters, setters and constructors accordingly.

        There is no change in behavior, this simply enforces the status quo.

        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSDOMBinding.h:
        * bindings/scripts/CodeGeneratorV8.pm:
        (AddIncludesForType):
        * css/CSSStyleSheet.cpp:
        (WebCore::CSSStyleSheet::CSSStyleSheet):
        * css/CSSStyleSheet.h:
        (WebCore::CSSStyleSheet::create):
        (WebCore::CSSStyleSheet::ownerRule):
        * css/StyleSheet.cpp:
        (WebCore::StyleSheet::StyleSheet):
        * css/StyleSheet.h:
        (WebCore::StyleSheet::parentRule):
        (WebCore::StyleSheet::setParentRule):

2011-12-03  Andreas Kling  <kling@webkit.org>

        Unreviewed, revert accidental change from r101932.

        * bindings/scripts/CodeGeneratorV8.pm:
        (AddIncludesForType):

2011-12-03  Mary Wu  <mary.wu@torchmobile.com.cn>

        Upstream 4 files into WebCore/platform/blackberry
        https://bugs.webkit.org/show_bug.cgi?id=73614

        Reviewed by Eric Seidel.

        * platform/blackberry/CursorBlackBerry.cpp: Added.
        (WebCore::AllCursors::AllCursors):
        (WebCore::getCursor):
        (WebCore::Cursor::Cursor):
        (WebCore::Cursor::~Cursor):
        (WebCore::Cursor::operator=):
        (WebCore::aliasCursor):
        (WebCore::cellCursor):
        (WebCore::columnResizeCursor):
        (WebCore::contextMenuCursor):
        (WebCore::copyCursor):
        (WebCore::crossCursor):
        (WebCore::eastResizeCursor):
        (WebCore::eastWestResizeCursor):
        (WebCore::grabbingCursor):
        (WebCore::grabCursor):
        (WebCore::handCursor):
        (WebCore::helpCursor):
        (WebCore::iBeamCursor):
        (WebCore::moveCursor):
        (WebCore::noDropCursor):
        (WebCore::noneCursor):
        (WebCore::northEastResizeCursor):
        (WebCore::northEastSouthWestResizeCursor):
        (WebCore::northResizeCursor):
        (WebCore::northSouthResizeCursor):
        (WebCore::northWestResizeCursor):
        (WebCore::northWestSouthEastResizeCursor):
        (WebCore::notAllowedCursor):
        (WebCore::pointerCursor):
        (WebCore::progressCursor):
        (WebCore::rowResizeCursor):
        (WebCore::southEastResizeCursor):
        (WebCore::southResizeCursor):
        (WebCore::southWestResizeCursor):
        (WebCore::verticalTextCursor):
        (WebCore::waitCursor):
        (WebCore::westResizeCursor):
        (WebCore::zoomInCursor):
        (WebCore::zoomOutCursor):
        (WebCore::middlePanningCursor):
        (WebCore::eastPanningCursor):
        (WebCore::northPanningCursor):
        (WebCore::northEastPanningCursor):
        (WebCore::northWestPanningCursor):
        (WebCore::southPanningCursor):
        (WebCore::southEastPanningCursor):
        (WebCore::southWestPanningCursor):
        (WebCore::westPanningCursor):
        * platform/blackberry/DragDataBlackBerry.cpp: Added.
        (WebCore::DragData::canSmartReplace):
        (WebCore::DragData::containsColor):
        (WebCore::DragData::containsCompatibleContent):
        (WebCore::DragData::containsFiles):
        (WebCore::DragData::containsPlainText):
        (WebCore::DragData::containsURL):
        (WebCore::DragData::asFilenames):
        (WebCore::DragData::asColor):
        (WebCore::DragData::asPlainText):
        (WebCore::DragData::asURL):
        (WebCore::DragData::asFragment):
        * platform/blackberry/DragImageBlackBerry.cpp: Added.
        (WebCore::createDragImageFromImage):
        (WebCore::createDragImageIconForCachedImage):
        (WebCore::deleteDragImage):
        (WebCore::dissolveDragImageToFraction):
        (WebCore::scaleDragImage):
        (WebCore::dragImageSize):
        * platform/blackberry/EventLoopBlackBerry.cpp: Added.
        (WebCore::EventLoop::platformInit):
        (WebCore::EventLoop::cycle):

2011-12-03  Andreas Kling  <kling@webkit.org>

        Cache CSSInitialValue instances per-document.
        <http://webkit.org/b/73745>

        Reviewed by Oliver Hunt.

        Test: http/tests/security/cross-origin-css-primitive.html

        Have CSSValuePool manage the caching of CSSInitialValue objects.

        * css/CSSInitialValue.h:
        (WebCore::CSSInitialValue::createExplicit):
        (WebCore::CSSInitialValue::createImplicit):
        (WebCore::CSSInitialValue::CSSInitialValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseFillShorthand):
        (WebCore::CSSParser::parseAnimationShorthand):
        (WebCore::CSSParser::parseTransitionShorthand):
        (WebCore::CSSParser::parseShorthand):
        * css/CSSValuePool.cpp:
        (WebCore::CSSValuePool::CSSValuePool):
        (WebCore::CSSValuePool::createImplicitInitialValue):
        (WebCore::CSSValuePool::createExplicitInitialValue):
        * css/CSSValuePool.h:

2011-12-03  Andreas Kling  <kling@webkit.org>

        Keep CSSInheritedValue in the CSS value pool.
        <http://webkit.org/b/73747>

        Reviewed by Antti Koivisto.

        We only need one CSSInheritedValue instance per document, so cache it
        in CSSValuePool and have the parser create it through there.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSValuePool.cpp:
        (WebCore::CSSValuePool::CSSValuePool):
        (WebCore::CSSValuePool::createInheritedValue):
        * css/CSSValuePool.h:

2011-12-03  Andreas Kling  <kling@webkit.org>

        Rename CSSPrimitiveValueCache to CSSValuePool.
        <http://webkit.org/b/73742>

        Reviewed by Antti Koivisto.

        CSSPrimitiveValueCache -> CSSValuePool
        Document::primitiveValueCache() -> Document::cssValuePool()

        This is in preparation for sharing more than just primitive values.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/scripts/CodeGeneratorV8.pm:
        (AddIncludesForType):
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::valueForNinePieceImageSlice):
        (WebCore::valueForNinePieceImageQuad):
        (WebCore::valueForNinePieceImageRepeat):
        (WebCore::valueForNinePieceImage):
        (WebCore::zoomAdjustedPixelValue):
        (WebCore::zoomAdjustedNumberValue):
        (WebCore::zoomAdjustedPixelValueForLength):
        (WebCore::valueForReflection):
        (WebCore::getPositionOffsetValue):
        (WebCore::CSSComputedStyleDeclaration::currentColorOrValidColor):
        (WebCore::getBorderRadiusCornerValue):
        (WebCore::computedTransform):
        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
        (WebCore::valueForGridTrackList):
        (WebCore::getDelayValue):
        (WebCore::getDurationValue):
        (WebCore::createLineBoxContainValue):
        (WebCore::CSSComputedStyleDeclaration::getFontSizeCSSValuePreferringKeyword):
        (WebCore::CSSComputedStyleDeclaration::valueForShadow):
        (WebCore::valueForFamily):
        (WebCore::renderTextDecorationFlagsToCSSValue):
        (WebCore::fillRepeatToCSSValue):
        (WebCore::fillSizeToCSSValue):
        (WebCore::contentToCSSValue):
        (WebCore::counterToCSSValue):
        (WebCore::fontFamilyFromStyle):
        (WebCore::lineHeightFromStyle):
        (WebCore::fontSizeFromStyle):
        (WebCore::fontStyleFromStyle):
        (WebCore::fontVariantFromStyle):
        (WebCore::fontWeightFromStyle):
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::parseColorValue):
        (WebCore::parseSimpleLengthValue):
        (WebCore::CSSParser::setStyleSheet):
        (WebCore::CSSParser::createPrimitiveNumericValue):
        (WebCore::CSSParser::createPrimitiveStringValue):
        (WebCore::CSSParser::parseValidPrimitive):
        (WebCore::CSSParser::parseValue):
        (WebCore::parseBackgroundClip):
        (WebCore::CSSParser::parseFillShorthand):
        (WebCore::CSSParser::parsePage):
        (WebCore::CSSParser::parseSizeParameter):
        (WebCore::CSSParser::parseContent):
        (WebCore::CSSParser::parseAttr):
        (WebCore::CSSParser::parseBackgroundColor):
        (WebCore::CSSParser::parseFillPositionX):
        (WebCore::CSSParser::parseFillPositionY):
        (WebCore::CSSParser::parseFillPositionComponent):
        (WebCore::CSSParser::parseFillPosition):
        (WebCore::CSSParser::parseFillRepeat):
        (WebCore::CSSParser::parseFillSize):
        (WebCore::CSSParser::parseFillProperty):
        (WebCore::CSSParser::parseAnimationDirection):
        (WebCore::CSSParser::parseAnimationFillMode):
        (WebCore::CSSParser::parseAnimationIterationCount):
        (WebCore::CSSParser::parseAnimationName):
        (WebCore::CSSParser::parseAnimationPlayState):
        (WebCore::CSSParser::parseAnimationProperty):
        (WebCore::CSSParser::parseAnimationTimingFunction):
        (WebCore::CSSParser::parseGridTrackList):
        (WebCore::CSSParser::parseDashboardRegions):
        (WebCore::CSSParser::parseCounterContent):
        (WebCore::CSSParser::parseShape):
        (WebCore::CSSParser::parseWrapShape):
        (WebCore::CSSParser::parseFont):
        (WebCore::CSSParser::parseFontFamily):
        (WebCore::CSSParser::parseFontStyle):
        (WebCore::CSSParser::parseFontVariant):
        (WebCore::CSSParser::parseFontWeight):
        (WebCore::CSSParser::parseColor):
        (WebCore::ShadowParseContext::ShadowParseContext):
        (WebCore::ShadowParseContext::commitLength):
        (WebCore::ShadowParseContext::commitStyle):
        (WebCore::CSSParser::parseShadow):
        (WebCore::CSSParser::parseReflect):
        (WebCore::CSSParser::parseFlex):
        (WebCore::BorderImageParseContext::BorderImageParseContext):
        (WebCore::CSSParser::parseBorderImage):
        (WebCore::CSSParser::parseBorderImageRepeat):
        (WebCore::BorderImageSliceParseContext::BorderImageSliceParseContext):
        (WebCore::BorderImageSliceParseContext::commitNumber):
        (WebCore::BorderImageSliceParseContext::commitBorderImageSlice):
        (WebCore::CSSParser::parseBorderImageSlice):
        (WebCore::BorderImageQuadParseContext::BorderImageQuadParseContext):
        (WebCore::BorderImageQuadParseContext::commitNumber):
        (WebCore::BorderImageQuadParseContext::commitBorderImageQuad):
        (WebCore::CSSParser::parseBorderImageQuad):
        (WebCore::CSSParser::parseBorderRadius):
        (WebCore::CSSParser::parseAspectRatio):
        (WebCore::CSSParser::parseCounter):
        (WebCore::parseDeprecatedGradientPoint):
        (WebCore::parseDeprecatedGradientColorStop):
        (WebCore::CSSParser::parseDeprecatedGradient):
        (WebCore::valueFromSideKeyword):
        (WebCore::parseGradientColorOrKeyword):
        (WebCore::CSSParser::parseLinearGradient):
        (WebCore::CSSParser::parseRadialGradient):
        (WebCore::CSSParser::parseCrossfade):
        (WebCore::CSSParser::parseCustomFilter):
        (WebCore::CSSParser::parseFilter):
        (WebCore::CSSParser::parseFlowThread):
        (WebCore::CSSParser::parseRegionThread):
        (WebCore::CSSParser::parseTextEmphasisStyle):
        (WebCore::CSSParser::parseFontFeatureSettings):
        * css/CSSParser.h:
        (WebCore::CSSParser::cssValuePool):
        * css/CSSValuePool.cpp: Renamed from Source/WebCore/css/CSSPrimitiveValueCache.cpp.
        (WebCore::CSSValuePool::CSSValuePool):
        (WebCore::CSSValuePool::~CSSValuePool):
        (WebCore::CSSValuePool::createIdentifierValue):
        (WebCore::CSSValuePool::createColorValue):
        (WebCore::CSSValuePool::createValue):
        * css/CSSValuePool.h: Renamed from Source/WebCore/css/CSSPrimitiveValueCache.h.
        (WebCore::CSSValuePool::create):
        (WebCore::CSSValuePool::createValue):
        * css/mediaControlsGtk.css:
        (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
        * dom/Document.cpp:
        (WebCore::Document::cssValuePool):
        * dom/Document.h:

2011-12-03  Andreas Kling  <kling@webkit.org>

        Shrink CSSValueList.
        <http://webkit.org/b/73732>

        Reviewed by Antti Koivisto.

        Packed CSSValueList::m_isSpaceSeparated into the CSSValue bit field
        and renamed it to m_isSpaceSeparatedValue, shrinking CSSValueList
        by one CPU word.

        Also renamed CSSValue::m_isImplicit to m_isImplicitInitialValue
        for good measure.

        * css/CSSInitialValue.h:
        (WebCore::CSSInitialValue::CSSInitialValue):
        * css/CSSValue.h:
        (WebCore::CSSValue::isImplicitInitialValue):
        (WebCore::CSSValue::CSSValue):
        * css/CSSValueList.cpp:
        (WebCore::CSSValueList::CSSValueList):
        (WebCore::CSSValueList::copy):
        (WebCore::CSSValueList::customCssText):
        * css/CSSValueList.h:
        (WebCore::CSSValueList::isSpaceSeparated):

2011-12-02  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] Fullscreen controller support for the new WebKit Fullscreen API
        https://bugs.webkit.org/show_bug.cgi?id=66968

        Reviewed by Martin Robinson.

        * GNUmakefile.am: Don't use the Quicktime fullscreen CSS anymore,
        it wasn't suited for GTK in the first place anyway.
        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::extraFullScreenStyleSheet): Simply reuse
        GTK CSS.

2011-12-03  Alejandro G. Castro  <alex@igalia.com>

        [GTK] TextureMapperNode should not use Qt types and functions
        https://bugs.webkit.org/show_bug.cgi?id=73713

        Replace qreal with double and qMin with std::min.

        Reviewed by Noam Rosenthal.

        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::solveCubicBezierFunction):
        (WebCore::solveStepsFunction):

2011-12-03  Dan Winship  <danw@gnome.org>

        [GTK] Remove lots of code that is now unnecessary after
        SoupRequestHTTP API changes.
        https://bugs.webkit.org/show_bug.cgi?id=71611

        Reviewed by Martin Robinson.

        No new tests; behavior is unchanged

        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal): remove
        no-longer-needed fields.
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::finishedCallback): remove this, and m_finished, which
        we no longer need to explicitly track
        (WebCore::statusWillBeHandledBySoup):
        (WebCore::soupErrorShouldCauseLoadFailure): No longer needed;
        SoupRequestHTTP's logic is now aligned with WebKit's.
        (WebCore::gotChunkCallback): remove gotChunkCallback, which
        is no longer needed
        (WebCore::startHTTPRequest):
        (WebCore::sendRequestCallback):
        (WebCore::gotHeadersCallback):
        (WebCore::contentSniffedCallback): merge the code from
        gotHeadersCallback and contentSniffedCallback into
        sendRequestCallback
        * platform/network/soup/ResourceResponseSoup.cpp:
        (WebCore::ResourceResponse::updateFromSoupMessage): move the
        sniffing override logic here

2011-12-03  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r101904.
        http://trac.webkit.org/changeset/101904
        https://bugs.webkit.org/show_bug.cgi?id=73739

        It broke zillions of tests on all bot (Requested by
        Ossy_weekend on #webkit).

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::handlePostMessage):

2011-12-02  Kentaro Hara  <haraken@chromium.org>

        [Refactoring] Use join(", ", @arguments) to build a method argument string in CodeGenerator*.pm
        https://bugs.webkit.org/show_bug.cgi?id=73651

        Reviewed by Darin Adler.

        The code in CodeGenerator*.pm to build a method argument string is really dirty
        and error-prone. It is building an argument string incrementally judging whether
        ", " is necessary or not, like this:

            my $method = ... ? "func(" : "func(a";
            if (...) {
                $method .= $method =~ /\($/ ? "b" : ", b";
            }
            $method .= ")";

        Alternatively, we can refactor the code as follows:

            my $funcName = "func";
            my @arguments;
            push(@arguments, "a") if (...);
            push(@arguments, "b") if (...);
            my $method = $funcName . "(" . join(", ", @arguments) . ")";

        This patch just refactors the code, and generated .h and .cpp files should be
        exactly the same as the current .h and .cpp files.

        Tests: bindings/scripts/test/*

        * bindings/scripts/CodeGenerator.pm:
        (GetterExpression):
        (SetterExpression):
        * bindings/scripts/CodeGeneratorCPP.pm:
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorGObject.pm:
        ():
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrGetter):
        (GenerateNormalAttrSetter):

2011-12-02  David Levin  <levin@chromium.org>

        Rename WTF class from TemporarilyChange to TemporaryChange.
        https://bugs.webkit.org/show_bug.cgi?id=73479

        Reviewed by Eric Seidel.

        * ForwardingHeaders/wtf/TemporarilyChange.h: Removed.
        * ForwardingHeaders/wtf/TemporaryChange.h: Added.
        * page/FrameView.cpp:
        (WebCore::FrameView::forceLayoutParentViewIfNeeded):
        (WebCore::FrameView::layout):
        (WebCore::FrameView::setScrollPosition):
        (WebCore::FrameView::autoSizeIfEnabled):

2011-12-02  Armand Navabi  <armand.navabi@gmail.com>

        ASSERT fails in updateState ACTION_DRAW case
        https://bugs.webkit.org/show_bug.cgi?id=73351

        Reviewed by James Robinson.

        Changed ASSERT in CCSchedulerStateMachine to include ( || !m_visible) as discussed in bug 
        report. m_commitState is set to COMMIT_STATE_WAITING_FOR_FIRST_DRAW if m_needsCommit or
        !m_visible, so in ACTION_DRAW the assert should have both conditions.

        * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
        (WebCore::CCSchedulerStateMachine::updateState):

2011-12-02  Shawn Singh  <shawnsingh@chromium.org>

        [chromium] Scissor rect optimization for chromium compositor
        https://bugs.webkit.org/show_bug.cgi?id=67341

        Reviewed by James Robinson.

        Mostly covered by damage tracker tests. Currently this relies on
        manually running layout tests, because this patch requires partial
        swaps that are not supported by DumpRenderTree. The feature
        automatically disables if partial swap is not supported.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::initialize):
        (WebCore::LayerRendererChromium::trackDamageForAllSurfaces):
        (WebCore::LayerRendererChromium::drawLayersOntoRenderSurfaces):
        (WebCore::LayerRendererChromium::drawLayersInternal):
        (WebCore::LayerRendererChromium::swapBuffers):
        (WebCore::LayerRendererChromium::drawLayer):
        * platform/graphics/chromium/LayerRendererChromium.h:
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):
        (WebCore::LayerRendererCapabilities::LayerRendererCapabilities):
        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
        (WebCore::CCRenderSurface::draw):
        * platform/graphics/chromium/cc/CCRenderSurface.h:

2011-12-02  Dmitry Lomov  <dslomov@google.com>

        https://bugs.webkit.org/show_bug.cgi?id=73691
        [JSC] Implement correct order of window.postMessage arguments.

        Reviewed by Geoffrey Garen.

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::handlePostMessage):

2011-12-02  Stephen Chenney  <schenney@chromium.org>

        REGRESSION (r91125): Polyline tool in google docs is broken
        https://bugs.webkit.org/show_bug.cgi?id=65796

        Reviewed by Darin Adler.

        Work around a bug in CoreGraphics, that caused incorrect bounds for paths
        consisting only of move-to elements. This causes problems in SVG, when the enormous
        bounds prevented the drawing of things behind.

        Tests: svg/custom/path-moveto-only-rendering.svg
               svg/custom/subpaths-moveto-only-rendering.svg

        * platform/graphics/cg/PathCG.cpp:
        (WebCore::PathIsEmptyOrSingleMoveTester::PathIsEmptyOrSingleMoveTester): Class to
        test for isEmpty accoridng ot the same rules as other platforms.
        (WebCore::PathIsEmptyOrSingleMoveTester::isEmpty): Query the result
        (WebCore::PathIsEmptyOrSingleMoveTester::testPathElement): Path iterator method
        (WebCore::PathHasOnlyMoveToTester::PathHasOnlyMoveToTester): Class to test whether a
        path contains only move-to elements, and hence should have null bounds.
        (WebCore::PathHasOnlyMoveToTester::hasOnlyMoveTo): Query the result
        (WebCore::PathHasOnlyMoveToTester::testPathElement): Path iterator method.
        (WebCore::Path::boundingRect): Modified to check for move-to only paths
        (WebCore::Path::fastBoundingRect): Modified to check for move-to only paths
        (WebCore::Path::isEmpty): Now uses the method that matches other platforms.
        (WebCore::Path::hasCurrentPoint): Now uses CGPathIsEmpty directly
        (WebCore::Path::transform) : Now uses CGPathIsEmpty directly

2011-12-02  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]More renaming for region style rules.
        https://bugs.webkit.org/show_bug.cgi?id=73526

        Reviewed by Eric Seidel.

        Rename isRegionStyleRule() -> isRegionRule()
        WEBKIT_REGION_STYLE_RULE -> WEBKIT_REGION_RULE.

        * bindings/objc/DOMCSS.mm:
        (kitClass):
        * bindings/v8/custom/V8CSSRuleCustom.cpp:
        (WebCore::toV8):
        * css/CSSGrammar.y:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::createRegionRule):
        * css/CSSParser.h:
        * css/CSSRule.cpp:
        (WebCore::CSSRule::cssText):
        (WebCore::CSSRule::destroy):
        * css/CSSRule.h:
        (WebCore::CSSRule::isRegionRule):
        * css/CSSRule.idl:
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::addRegionRule):
        (WebCore::RuleSet::addRulesFromSheet):
        * css/CSSStyleSelector.h:
        * css/WebKitCSSRegionRule.cpp:
        (WebCore::WebKitCSSRegionRule::WebKitCSSRegionRule):
        * css/tokenizer.flex:

2011-12-02  Tom Sepez  <tsepez@chromium.org>

        XSSAuditor includes more terminating characters when truncating
        attribute values.
        https://bugs.webkit.org/show_bug.cgi?id=73684

        Reviewed by Daniel Bates.

        * html/parser/XSSAuditor.cpp:
        (WebCore::isTerminatingCharacter):
        (WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):

2011-12-02  Tony Chang  <tony@chromium.org>

        Need to implement flex-flow: column-reverse
        https://bugs.webkit.org/show_bug.cgi?id=73504

        Reviewed by David Hyatt.

        We can't just change the direction of the FlexOrderIterator because we want the overflow to be
        on the top. We can't just position them in the reverse location since we don't know where the
        bottom edge is until we've layed out the flex items. So we do an extra pass, but it should be
        fast since we're not laying out, just moving.

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::flowAwareBorderEnd):
        (WebCore::RenderFlexibleBox::flowAwarePaddingEnd):
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
        (WebCore::RenderFlexibleBox::layoutColumnReverse): Do an extra pass to reposition flexitems in the reverse order.
        * rendering/RenderFlexibleBox.h:

2011-12-02  Stephen Chenney  <schenney@chromium.org>

        Divide by zero for zero-length arcs
        https://bugs.webkit.org/show_bug.cgi?id=73021

        Reviewed by Nikolas Zimmermann.

        A zero-length path produces divide by zero, resulting in nothing being
        drawn. This change modifies the behavior to produce a zero-length line
        which will generate correct linecaps.

        Test: svg/stroke/zero-length-arc-linecaps-rendering.svg

        * svg/SVGPathParser.cpp:
        (WebCore::SVGPathParser::parseArcToSegment): Catch the case of
        zero-length arcs and convert them to lines (the same as would happen
        for zero arc radii).

2011-12-02  James Wei <james.wei@intel.com> & Xingnan Wang <xingnan.wang@intel.com>

        -Implement the SSE optimization for vsmul and vadd.
        https://bugs.webkit.org/show_bug.cgi?id=73182

        Reviewed by Kenneth Russell.

        * platform/audio/VectorMath.cpp:
        (WebCore:VectorMath):

2011-12-02  David Grogan  <dgrogan@chromium.org>

        Grant workers experimental access to IndexedDB.
        https://bugs.webkit.org/show_bug.cgi?id=73609

        Reviewed by Nate Chapin.

        No new tests - there will be chromium ui tests that depend on
        webkit.org/b/73297.

        * storage/IDBFactory.cpp:
        (WebCore::IDBFactory::open): Call new function,
        IDBFactoryBackendInterface::openFromWorker.
        * storage/IDBFactoryBackendImpl.cpp:
        (WebCore::IDBFactoryBackendImpl::open):
        (WebCore::IDBFactoryBackendImpl::openFromWorker):
        (WebCore::IDBFactoryBackendImpl::openInternal):
        * storage/IDBFactoryBackendImpl.h:
        * storage/IDBFactoryBackendInterface.h:
        * workers/WorkerContext.cpp:
        (WebCore::WorkerContext::webkitIndexedDB): Stores
        IDBFactoryBackendInterface, implemented by IDBFactoryBackendProxy in
        chromium, in the WorkerContext.  For the Document case it is stored in
        the PageGroup.  Storing it in the WorkerContext causes more memory
        churn, but that should be trivial.  I don't know of any better
        alternatives.
        * workers/WorkerContext.h:
        * workers/WorkerContext.idl:

2011-12-02  Aaron Colwell  <acolwell@chromium.org>

        Fix mixed content handling for video in Chromium by having
        CachedResourceLoader & SubresourceLoader use the 
        ResourceRequest::TargetType when determining if a RawResource can
        be requested.
        https://bugs.webkit.org/show_bug.cgi?id=72178

        Reviewed by Adam Barth.

        Tests: http/tests/security/mixedContent/insecure-video-in-iframe.html
               http/tests/security/mixedContent/insecure-video-in-main-frame.html
               http/tests/security/mixedContent/redirect-http-to-https-video-in-main-frame.html
               http/tests/security/mixedContent/redirect-https-to-http-video-in-main-frame.html

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::willSendRequest):
        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::CachedRawResource):
        * loader/cache/CachedRawResource.h:
        * loader/cache/CachedResource.cpp:
        (WebCore::defaultPriorityForResourceType):
        (WebCore::cachedResourceTypeToTargetType):
        (WebCore::CachedResource::targetTypeToCachedResourceType):
        * loader/cache/CachedResource.h:
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::createResource):
        (WebCore::CachedResourceLoader::checkInsecureContent):
        (WebCore::CachedResourceLoader::canRequest):
        (WebCore::CachedResourceLoader::requestResource):

2011-12-02  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r101731.
        http://trac.webkit.org/changeset/101731
        https://bugs.webkit.org/show_bug.cgi?id=73706

        Broke copy and paste in chromium. (Requested by dcheng on #webkit).

        * editing/SpellChecker.cpp:
        (WebCore::SpellChecker::SpellChecker):
        (WebCore::SpellChecker::initRequest):
        (WebCore::SpellChecker::clearRequest):
        (WebCore::SpellChecker::canCheckAsynchronously):
        (WebCore::SpellChecker::isBusy):
        (WebCore::SpellChecker::isValid):
        (WebCore::SpellChecker::requestCheckingFor):
        (WebCore::SpellChecker::doRequestCheckingFor):
        (WebCore::SpellChecker::didCheck):
        * editing/SpellChecker.h:

2011-12-02  Fady Samuel  <fsamuel@chromium.org>

        When page scaling is in use position:fixed has incorrect results
        https://bugs.webkit.org/show_bug.cgi?id=68617

        Reviewed by Simon Fraser.

        Add the option for position:fixed elements to be fixed to the frame
        instead of the layout rectangle of the document.

        Tests: fast/repaint/fixed-in-page-scale.html
               fast/repaint/fixed-right-bottom-in-page-scale.html
               fast/repaint/fixed-right-in-page-scale.html

        * WebCore.exp.in:
        * page/FrameView.cpp:
        (WebCore::FrameView::reset):
        (WebCore::FrameView::scrollXForFixedPosition):
        (WebCore::FrameView::scrollYForFixedPosition):
          If position:fixed elements are relative to the frame, disregard the
          drag factor.
        (WebCore::FrameView::setShouldLayoutFixedElementsRelativeToFrame):
        * page/FrameView.h:
        (WebCore::FrameView::shouldLayoutFixedElementsRelativeToFrame):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::shouldLayoutFixedElementRelativeToFrame):
        (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
        (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
          If position:fixed elements are relative to the frame, their container
          is the frame instead of the layout rect of the document. 
          This allows proper positioning of these elements to the right and
          bottom.
        * rendering/RenderBox.h:
        * testing/Internals.cpp:
        (WebCore::Internals::setShouldLayoutFixedElementsRelativeToFrame):
        * testing/Internals.h:
        * testing/Internals.idl:
          Allow enabling and disabling the new behavior in layout tests.

2011-12-02  Benjamin Poulain  <bpoulain@apple.com>

        Build fix for SubresourceLoader when building with Core Foundation
        https://bugs.webkit.org/show_bug.cgi?id=73709

        Reviewed by David Kilzer.

        The patch r100311 removed SubresourceClient and merged it in SubresourceLoader.
        Consequently, m_client does not exist anymore and there is no need to do the check
        before invoking didReceiveData().

        * loader/cf/SubresourceLoaderCF.cpp:
        (WebCore::SubresourceLoader::didReceiveDataArray):

2011-12-02  Andreas Kling  <kling@webkit.org>

        StyledElement: Simplify addCSSColor().
        <http://webkit.org/b/73703>

        Reviewed by Darin Adler.

        The Color(const String&) constructor handles both named and 3/6-digit
        hex colors, so there's no need to handle those separately here.
        Also tweaked some comments and minor things.

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::addCSSColor):

2011-12-02  Benjamin Poulain  <bpoulain@apple.com>

        Update platform/iphone to platform/ios
        https://bugs.webkit.org/show_bug.cgi?id=73708

        Reviewed by Darin Adler.

        The platform is now best known as iOS, update the platform layer accordingly.

        * Configurations/WebCore.xcconfig:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/cocoa/KeyEventCocoa.mm:
        * platform/ios/KeyEventCodesIOS.h: Renamed from Source/WebCore/platform/iphone/KeyEventCodesIPhone.h.
        * platform/ios/KeyEventIOS.mm: Renamed from Source/WebCore/platform/iphone/KeyEventIPhone.mm.
        (WebCore::keyIdentifierForKeyEvent):
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
        (WebCore::PlatformKeyboardEvent::currentCapsLockState):
        (WebCore::PlatformKeyboardEvent::getCurrentModifierState):

2011-12-02  Jonathan Backer  <backer@chromium.org>

        [chromium] Eliminate unnecessary state on previous CL
        https://bugs.webkit.org/show_bug.cgi?id=73661

        Reviewed by Kenneth Russell.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::initialize):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::initialize):
        (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):
        (WebCore::LayerRendererCapabilities::LayerRendererCapabilities):

2011-12-02  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/10520670> REGRESSION (r91738): didFinishLoad is called before custom fonts have finished loading
        https://bugs.webkit.org/show_bug.cgi?id=73688

        Reviewed by Darin Adler.

        The problem was that after CSSFontFaceSource::getFontData() had scheduled a 0-delay timer to
        begin loading the font, but before that timer fired, the subresource loader appeared to have
        had no resources waiting to be loaded, and therefore didFinishLoad could be called. This change
        reworks the fix for <http://webkit.org/b/65123> so that while the load is still started on a
        0-delay timer, the subresource loader’s request count is incremented immediately, preventing
        it from hitting 0 while the font load is scheduled to begin. The delayed load mechanism is
        moved from CSSFontFaceSource into CSSFontSelector in order to safely handle the possibility of
        the latter being decommissioned while waiting for font loading to begin.

        * css/CSSFontFaceSource.cpp:
        (WebCore::CSSFontFaceSource::CSSFontFaceSource): Removed initializer for m_loadStartTimer.
        (WebCore::CSSFontFaceSource::~CSSFontFaceSource): Removed stopping of m_loadStartTimer.
        (WebCore::CSSFontFaceSource::getFontData): Replaced code to schedule loading on a timer with
        a call to CSSFontSelector::beginLoadingFontSoon.
        * css/CSSFontFaceSource.h: Removed m_loadStartTimer and m_fontSelector member variables.
        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::CSSFontSelector): Added initialized for m_beginLoadingTimer.
        (WebCore::CSSFontSelector::~CSSFontSelector): Added call to clearDocument(), to deal with
        anything remaining in m_fontsToBeginLoading at this time.
        (WebCore::CSSFontSelector::clearDocument): Now stops m_beginLoadingTimer and balances
        incrementRequestCount() calls for anything remaining in m_fontsToBeginLoading.
        (WebCore::CSSFontSelector::beginLoadingFontSoon): Added. Schedules the actual call to
        CachedFont::beginLoadingIfNeeded on a 0-delay timer, and meanwhile increments the request count
        on the CachedResourceLoader, which ensures that didFinishLoad will not be called while waiting
        for the timer to fire.
        (WebCore::CSSFontSelector::beginLoadTimerFired): Added. Actually calls
        CachedFont::beginLoadIfNeeded and balances the incrementRequestCount() made when the timer was
        scheduled.
        * css/CSSFontSelector.h:

2011-12-02  David Tseng  <dtseng@google.com>

        Send an AXCheckedStateChanged notification when the aria-checked attribute changes.
        https://bugs.webkit.org/show_bug.cgi?id=72754

        Reviewed by Chris Fleizach.

        Test: accessibility/aria-checkbox-sends-notification.html

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::checkedStateChanged):
        * accessibility/AXObjectCache.h:
        * dom/Element.cpp:
        (WebCore::Element::updateAfterAttributeChanged):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setChecked):

2011-12-02  Grace Kloba  <klobag@chromium.org>

        [chromium] Recycle tile-sized textures during commit to prevent reallocations
        https://bugs.webkit.org/show_bug.cgi?id=70645

        Reviewed by James Robinson.

        Currently texture request is capped by the high limit while we reclaim the
        textures in each commit. This triggers new tiles always allocated when scrolling.
        The proposal is to recycle the texture during request if the total used memory
        is about to exceed the reclaim limit.

        * platform/graphics/chromium/ManagedTexture.cpp:
        (WebCore::ManagedTexture::reserve):
        * platform/graphics/chromium/TextureManager.cpp:
        (WebCore::TextureManager::setMemoryLimitBytes):
        (WebCore::TextureManager::replaceTexture):
        (WebCore::TextureManager::requestTexture):
        * platform/graphics/chromium/TextureManager.h:

2011-12-02  Kent Tamura  <tkent@chromium.org>

        [Chromium] Show placeholder even if the element is focused
        https://bugs.webkit.org/show_bug.cgi?id=73629

        Reviewed by Hajime Morita.

        No new tests. Need to update some existing placeholder tests.

        * rendering/RenderThemeChromiumMac.h: Add shouldShowPlaceholderWhenFocused().
        * rendering/RenderThemeChromiumMac.mm:
        (WebCore::RenderThemeChromiumMac::shouldShowPlaceholderWhenFocused):
        Returns true.
        * rendering/RenderThemeChromiumSkia.cpp:
        (WebCore::RenderThemeChromiumSkia::shouldShowPlaceholderWhenFocused): ditto.
        * rendering/RenderThemeChromiumSkia.h: Add shouldShowPlaceholderWhenFocused().

2011-12-02  Kent Tamura  <tkent@chromium.org>

        [Lion][Windows] Both of placeholder and input text are shown in <input type=number>
        https://bugs.webkit.org/show_bug.cgi?id=73615

        Reviewed by Joseph Pecoraro.

        Placeholder visibility was checked by HTMLInputElement::value
        emptiness. It should be innerTextValue emptiness because it is
        possible that a number field has empty HTMLInputElement::value and
        non-empty innerTextValue.

        Tests: fast/forms/number/number-placeholder-with-unacceptable-value.html

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::updateInnerTextValue):
        We should update placeholder visiblity when the innerTextValue is updated.
        (WebCore::HTMLInputElement::subtreeHasChanged): ditto.
        (WebCore::HTMLInputElement::setSuggestedValue):
        We don't need to call updatePlaceholderVisibility() because updateInnerTextValue() calls it.
        (WebCore::HTMLInputElement::setValueFromRenderer):
        We don't need to call updatePlaceholderVisibility() because subtreeHasChanged() calls it.
        * html/HTMLInputElement.h: Checks innerTextValue emptiness.
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::setValue):
        We don't need to call updatePlaceholderVisibility() because updateInnerTextValue() calls it.

2011-12-01  Alok Priyadarshi  <alokp@chromium.org>

        [chromium] CCLayerQuad does not return FloatQuad in correct order
        https://bugs.webkit.org/show_bug.cgi?id=73247

        Reviewed by James Robinson.

        Returned the FloatQuad coordinates in correct order.
        
        Covered by new unit tests in CCLayerQuadTest.cpp.

        * platform/graphics/chromium/cc/CCLayerQuad.cpp:
        (WebCore::CCLayerQuad::floatQuad):

2011-12-02  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r101833.
        http://trac.webkit.org/changeset/101833
        https://bugs.webkit.org/show_bug.cgi?id=73678

        test_expectations file invalid: run Tools/Scripts/new-run-
        webkit-tests --lint-test-files (Requested by scheib on
        #webkit).

        * platform/graphics/chromium/cc/CCLayerQuad.cpp:
        (WebCore::CCLayerQuad::floatQuad):

2011-12-02  Alok Priyadarshi  <alokp@chromium.org>

        [chromium] CCLayerQuad does not return FloatQuad in correct orientation
        https://bugs.webkit.org/show_bug.cgi?id=73247

        Reviewed by James Robinson.

        Returned the FloatQuad coordinates in correct order.
        
        Covered by new unit tests in CCLayerQuadTest.cpp.

        * platform/graphics/chromium/cc/CCLayerQuad.cpp:
        (WebCore::CCLayerQuad::floatQuad):

2011-12-01  Dmitry Lomov  <dslomov@google.com>

        https://bugs.webkit.org/show_bug.cgi?id=73589
        [V8][Chromium] Adjust postMessage to the latest "implementation-ready" spec.
        - postMessage should support transfer of MessagePorts
        - the order of arguments to Window::postMessage and Window::webkitPostMessage should be (msg, targetOrigin [, transfer])

        Reviewed by David Levin.

        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::handlePostMessageCallback):
        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
        (WebCore::handlePostMessageCallback):
        * bindings/v8/custom/V8MessagePortCustom.cpp:
        (WebCore::handlePostMessageCallback):
        * bindings/v8/custom/V8WorkerCustom.cpp:
        (WebCore::handlePostMessageCallback):

2011-12-02  Enrica Casucci  <enrica@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=73497
        This is a followup to the patch submitted for the bug above.
        Tha patch was landed in r101575 and I missed to make one of the changes
        suggested by the reviewer that had pointed out that the code was still
        making use of the deprecatedNode method.

        Unreviewed.

        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::removeRedundantBlocks): Changed deprecatedNode to containerNode.

2011-12-02  Tom Sepez  <tsepez@chromium.org>

        Content-security-policy script-src not enforced on workers.
        https://bugs.webkit.org/show_bug.cgi?id=73240

        Reviewed by Adam Barth.

        Add a CSP check in AbstractWorker.cpp as part of resolving URL.
        
        Test: http/tests/security/contentSecurityPolicy/worker-script-src.html

        * workers/AbstractWorker.cpp:
        (WebCore::AbstractWorker::resolveURL):

2011-12-02  Daniel Cheng  <dcheng@chromium.org>

        [chromium] Add plumbing for supporting custom MIME types in DataTransfer.
        https://bugs.webkit.org/show_bug.cgi?id=73594

        Reviewed by David Levin.

        Tests: editing/pasteboard/clipboard-customData.html
               fast/events/drag-customData.html

        * platform/chromium/ChromiumDataObject.cpp:
        (WebCore::ChromiumDataObject::types):
        (WebCore::ChromiumDataObject::getData):
        (WebCore::ChromiumDataObject::setData):
        * platform/chromium/ChromiumDataObject.h:
        (WebCore::ChromiumDataObject::customData):
        * platform/chromium/PlatformSupport.h:

2011-12-02  Darin Adler  <darin@apple.com>

        [Mac] Form stream data structures still not threadsafe
        https://bugs.webkit.org/show_bug.cgi?id=73674

        Reviewed by Anders Carlsson.

        * platform/network/mac/FormDataStreamMac.mm:
        (WebCore::streamFieldsMapMutex): Added. 
        (WebCore::associateStreamWithResourceHandle): Use streamFieldsMapMutex.
        (WebCore::formCreate): Ditto.
        (WebCore::formFinalize): Ditto.
        (WebCore::httpBodyFromStream): Ditto.

2011-12-02  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Rename "multientry" to "multiEntry" per spec change
        https://bugs.webkit.org/show_bug.cgi?id=73578

        Reviewed by Darin Fisher.

        * storage/IDBIndex.h:
        (WebCore::IDBIndex::multiEntry):
        * storage/IDBIndex.idl:
        * storage/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
        * storage/IDBIndexBackendImpl.h:
        (WebCore::IDBIndexBackendImpl::create):
        (WebCore::IDBIndexBackendImpl::multiEntry):
        * storage/IDBIndexBackendInterface.h:
        * storage/IDBLevelDBBackingStore.cpp:
        (WebCore::IDBLevelDBBackingStore::getIndexes):
        (WebCore::IDBLevelDBBackingStore::createIndex):
        * storage/IDBLevelDBCoding.cpp:
        * storage/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::createIndex):
        * storage/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::putInternal):
        (WebCore::IDBObjectStoreBackendImpl::createIndex):
        (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
        (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
        * storage/IDBObjectStoreBackendImpl.h:
        * storage/IDBObjectStoreBackendInterface.h:

2011-12-02  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r101805.
        http://trac.webkit.org/changeset/101805
        https://bugs.webkit.org/show_bug.cgi?id=73670

        Many canvas tests started failing due to the isEmpty change
        (Requested by darin on #webkit).

        * platform/graphics/cg/PathCG.cpp:
        (WebCore::Path::boundingRect):
        (WebCore::Path::fastBoundingRect):
        (WebCore::Path::isEmpty):

2011-12-01  Darin Adler  <darin@apple.com>

        [Mac] Reference count threading violation in FormDataStreamMac.mm
        https://bugs.webkit.org/show_bug.cgi?id=73627

        Reviewed by Sam Weinig.

        Shows up as a crash during existing layout test runs so no new tests are required.

        * platform/network/mac/FormDataStreamMac.mm:
        (WebCore::streamFieldsMap): Replaced getStreamFormDataMap with this.
        Use an NSMapTable instead of a HashMap because we need to remove items from this
        on a non-main thread.
        (WebCore::associateStreamWithResourceHandle): Use NSMapGet instead of
        HashMap::contains here.
        (WebCore::formCreate): FormStreamFields now stores a RefPtr to the form data.
        Added the code to fill that in. Did it in a more modern way to avoid the leakRef
        and adoptRef that were used before. Replaced the code that set up the stream
        form data map entry with code that sets an entry in the streamFieldsMap.
        (WebCore::formFinishFinalizationOnMainThread): Added. Contains the work of
        finalization that must be done on the main thread, specifically, destroying the
        fields structure that contains objects with RefPtr in them. We can't touch these
        reference counts on non-main threads.
        (WebCore::formFinalize): Changed this to use NSMapRemove on the streamFieldsMap.
        Added a callOnMainThread to finish the finalization.
        (WebCore::setHTTPBody): Removed the leakRef, no longer needed, that used to be
        balanced by an adoptRef in formCreate.
        (WebCore::httpBodyFromStream): Changed to use NSMapGet.

2011-12-02  Antti Koivisto  <antti@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=73520
        REGRESSION(r101524): Article titles invisible until hover on blaze.com

        Reviewed by Darin Adler.
        
        We need to invalidate the matched declaration cache when new web fonts are loaded.
        Fonts in the cached RenderStyles may not be valid anymore.
        
        Also renamed m_matchStyleDeclarationCache -> m_matchedStyleDeclarationCache.
        
        Test reduction by the Reduction Fairy (aka kling).

        Test: fast/css/font-face-cache-bug.html

        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::dispatchInvalidationCallbacks):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::findFromMatchedDeclarationCache):
        (WebCore::CSSStyleSelector::addToMatchedDeclarationCache):
        (WebCore::CSSStyleSelector::invalidateMatchedDeclarationCache):
        * css/CSSStyleSelector.h:

2011-11-02  Jer Noble  <jer.noble@apple.com>

        MediaControls should use MediaController if present.
        https://bugs.webkit.org/show_bug.cgi?id=71410

        Reviewed by Eric Carlson.

        No new tests; covered by existing tests.

        Add support for individual media controls to control the MediaController of their associated
        HTMLMediaElement, if present.

        The video spec requires that UA provided media controls be implemented in terms of their 
        HTMLMediaElement's MediaController, if present.  So for each of the media controls, modify 
        their constructor to take a Document* instead of an HTMLMediaElement, and add an setter
        taking a MediaControllerInterface.

        Now that MediaControls have an abstract interface instead of an HTMLMediaElement, use toParentMediaElement
        to find the controllingVideoElement.
        * accessibility/AccessibilityMediaControls.cpp:
        (WebCore::AccessibilityMediaControlsContainer::controllingVideoElement):

        Pass the MediaController or the HTMLMediaElement when setting up the elements controls.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::createMediaControls):
        (WebCore::HTMLMediaElement::setMediaController):

        The following functions have only constructor changes:
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlElement::MediaControlElement):
        (WebCore::MediaControlPanelElement::MediaControlPanelElement):
        (WebCore::MediaControlPanelElement::create):
        (WebCore::MediaControlTimelineContainerElement::MediaControlTimelineContainerElement):
        (WebCore::MediaControlTimelineContainerElement::create):
        (WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement):
        (WebCore::MediaControlVolumeSliderContainerElement::create):
        (WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement):
        (WebCore::MediaControlStatusDisplayElement::create):
        (WebCore::MediaControlInputElement::MediaControlInputElement):
        (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement):
        (WebCore::MediaControlMuteButtonElement::defaultEventHandler):
        (WebCore::MediaControlPanelMuteButtonElement::MediaControlPanelMuteButtonElement):
        (WebCore::MediaControlPanelMuteButtonElement::create):
        (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement):
        (WebCore::MediaControlVolumeSliderMuteButtonElement::create):
        (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
        (WebCore::MediaControlPlayButtonElement::create):
        (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement):
        (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement):
        (WebCore::MediaControlSeekForwardButtonElement::create):
        (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement):
        (WebCore::MediaControlSeekBackButtonElement::create):
        (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement):
        (WebCore::MediaControlRewindButtonElement::create):
        (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement):
        (WebCore::MediaControlReturnToRealtimeButtonElement::create):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
        (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
        (WebCore::MediaControlTimelineElement::create):
        (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement):
        (WebCore::MediaControlVolumeSliderElement::create):
        (WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
        (WebCore::MediaControlFullscreenVolumeSliderElement::MediaControlFullscreenVolumeSliderElement):
        (WebCore::MediaControlFullscreenVolumeSliderElement::create):
        (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
        (WebCore::MediaControlFullscreenButtonElement::create):
        (WebCore::MediaControlFullscreenVolumeMinButtonElement::MediaControlFullscreenVolumeMinButtonElement):
        (WebCore::MediaControlFullscreenVolumeMinButtonElement::create):
        (WebCore::MediaControlFullscreenVolumeMaxButtonElement::MediaControlFullscreenVolumeMaxButtonElement):
        (WebCore::MediaControlFullscreenVolumeMaxButtonElement::create):
        (WebCore::MediaControlTimeDisplayElement::MediaControlTimeDisplayElement):
        (WebCore::MediaControlTimeRemainingDisplayElement::create):
        (WebCore::MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement):
        (WebCore::MediaControlCurrentTimeDisplayElement::create):
        (WebCore::MediaControlCurrentTimeDisplayElement::MediaControlCurrentTimeDisplayElement):
        * html/shadow/MediaControlRootElement.cpp:
        (WebCore::MediaControlRootElement::MediaControlRootElement):
        (WebCore::MediaControls::create):
        (WebCore::MediaControlRootElement::create):
        * html/shadow/MediaControlRootElement.h:
        * html/shadow/MediaControls.cpp:
        (WebCore::MediaControls::MediaControls):
        * html/shadow/MediaControls.h:

        The following functions now call MediaControllerInterface instead of HTMLMediaElement directly:
        * html/shadow/MediaControlElements.h:
        (WebCore::MediaControlStatusDisplayElement::update):
        (WebCore::MediaControlMuteButtonElement::updateDisplayType):
        (WebCore::MediaControlPlayButtonElement::defaultEventHandler):
        (WebCore::MediaControlPlayButtonElement::updateDisplayType):
        (WebCore::MediaControlSeekButtonElement::startTimer):
        (WebCore::MediaControlSeekButtonElement::stopTimer):
        (WebCore::MediaControlSeekButtonElement::nextRate):
        (WebCore::MediaControlSeekButtonElement::seekTimerFired):
        (WebCore::MediaControlRewindButtonElement::defaultEventHandler):
        (WebCore::MediaControlReturnToRealtimeButtonElement::defaultEventHandler):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
        (WebCore::MediaControlTimelineElement::defaultEventHandler):
        (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):
        (WebCore::MediaControlFullscreenVolumeMinButtonElement::defaultEventHandler):
        (WebCore::MediaControlFullscreenVolumeMaxButtonElement::defaultEventHandler):
        * html/shadow/MediaControlRootElement.cpp:
        (WebCore::MediaControlRootElement::reset):
        (WebCore::MediaControlRootElement::playbackStarted):
        (WebCore::MediaControlRootElement::playbackProgressed):
        (WebCore::MediaControlRootElement::playbackStopped):
        (WebCore::MediaControlRootElement::updateTimeDisplay):
        (WebCore::MediaControlRootElement::loadedMetadata):
        (WebCore::MediaControlRootElement::changedVolume):
        (WebCore::MediaControlRootElement::enteredFullscreen):
        (WebCore::MediaControlRootElement::showVolumeSlider):
        (WebCore::MediaControlRootElement::defaultEventHandler):
        (WebCore::MediaControlRootElement::startHideFullscreenControlsTimer):
        (WebCore::MediaControlRootElement::hideFullscreenControlsTimerFired):
        * html/shadow/MediaControlRootElementChromium.cpp:
        (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
        (WebCore::MediaControls::create):
        (WebCore::MediaControlRootElementChromium::create):
        (WebCore::MediaControlRootElementChromium::reset):
        (WebCore::MediaControlRootElementChromium::playbackStarted):
        (WebCore::MediaControlRootElementChromium::playbackProgressed):
        (WebCore::MediaControlRootElementChromium::playbackStopped):
        (WebCore::MediaControlRootElementChromium::updateTimeDisplay):
        (WebCore::MediaControlRootElementChromium::defaultEventHandler):
        (WebCore::MediaControlRootElementChromium::changedVolume):
        (WebCore::MediaControlRootElementChromium::showVolumeSlider):
        * html/shadow/MediaControlRootElementChromium.h:

        The following functions set the current MediaControllerInterface.
        * html/shadow/MediaControlRootElement.cpp:
        (WebCore::MediaControlRootElement::setMediaController):
        * html/shadow/MediaControlElements.h:
        (WebCore::MediaControlElement::setMediaController):
        (WebCore::MediaControlElement::mediaController):
        (WebCore::MediaControlInputElement::setMediaController):
        (WebCore::MediaControlInputElement::mediaController):
        * html/shadow/MediaControlRootElementChromium.cpp:
        (WebCore::MediaControlRootElementChromium::setMediaController):

2011-12-02  Stephen Chenney  <schenney@chromium.org>

        REGRESSION (r91125): Polyline tool in google docs is broken
        https://bugs.webkit.org/show_bug.cgi?id=65796

        Reviewed by Darin Adler.

        Work around a bug in CoreGraphics, that caused incorrect bounds for paths
        consisting only of move-to elements. This causes problems in SVG, when the enormous
        bounds prevented the drawing of things behind.

        Tests: svg/custom/path-moveto-only-rendering.svg
               svg/custom/subpaths-moveto-only-rendering.svg

        * platform/graphics/cg/PathCG.cpp:
        (WebCore::PathIsEmptyOrSingleMoveTester::PathIsEmptyOrSingleMoveTester): Class to
        test for isEmpty accoridng ot the same rules as other platforms.
        (WebCore::PathIsEmptyOrSingleMoveTester::isEmpty): Query the result
        (WebCore::PathIsEmptyOrSingleMoveTester::testPathElement): Path iterator method
        (WebCore::PathHasOnlyMoveToTester::PathHasOnlyMoveToTester): Class to test whether a
        path contains only move-to elements, and hence should have null bounds.
        (WebCore::PathHasOnlyMoveToTester::hasOnlyMoveTo): Query the result
        (WebCore::PathHasOnlyMoveToTester::testPathElement): Path iterator method.
        (WebCore::Path::boundingRect): Modified to check for move-to only paths
        (WebCore::Path::fastBoundingRect): Modified to check for move-to only paths
        (WebCore::Path::isEmpty): Now uses the method that matches other platforms.

2011-12-02  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r101794.
        http://trac.webkit.org/changeset/101794
        https://bugs.webkit.org/show_bug.cgi?id=73656

        Broke win build (Requested by vsevik on #webkit).

        * bindings/js/ScriptCallStackFactory.cpp:
        * bindings/js/ScriptCallStackFactory.h:
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateParametersCheck):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateFunctionCallback):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjInternal::customArgsAndExceptionCallback):
        * bindings/v8/ScriptCallStackFactory.cpp:
        * bindings/v8/ScriptCallStackFactory.h:
        * inspector/InspectorInstrumentation.cpp:
        * inspector/InspectorInstrumentation.h:
        * inspector/WorkerInspectorController.h:
        * page/Console.cpp:
        (WebCore::Console::shouldCaptureFullStackTrace):
        * page/Console.h:

2011-12-02  Raphael Kubo da Costa  <kubo@profusion.mobi>

        Unreviewed, revert r101347.
        https://bugs.webkit.org/show_bug.cgi?id=73580

        It breaks the linking of Tools/ targets due to missing functions.

        * PlatformEfl.cmake:
        * platform/graphics/GraphicsLayer.cpp:
        * platform/graphics/GraphicsLayer.h:
        * platform/graphics/efl/GraphicsLayerEfl.cpp: Added.
        (WebCore::GraphicsLayer::create):
        (WebCore::GraphicsLayerEfl::GraphicsLayerEfl):
        (WebCore::GraphicsLayerEfl::~GraphicsLayerEfl):
        (WebCore::GraphicsLayerEfl::setNeedsDisplay):
        (WebCore::GraphicsLayerEfl::setNeedsDisplayInRect):
        * platform/graphics/efl/GraphicsLayerEfl.h: Added.
        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::solveCubicBezierFunction):
        (WebCore::solveStepsFunction):

2011-12-01  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Extract default call stack creation and check for front-end from console.
        https://bugs.webkit.org/show_bug.cgi?id=73566

        Reviewed by Yury Semikhatsky.

        * bindings/js/ScriptCallStackFactory.cpp:
        (WebCore::createScriptCallStack):
        * bindings/js/ScriptCallStackFactory.h:
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateParametersCheck):
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateFunctionCallback):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjInternal::customArgsAndExceptionCallback):
        * bindings/v8/ScriptCallStackFactory.cpp:
        (WebCore::createScriptCallStack):
        * bindings/v8/ScriptCallStackFactory.h:
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::hasFrontendForScriptContext):
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::hasFrontendForScriptContext):
        * inspector/WorkerInspectorController.h:
        (WebCore::WorkerInspectorController::hasFrontend):
        * page/Console.cpp:
        * page/Console.h:

2011-12-02  Gavin Peters  <gavinp@chromium.org>

        Remove instrumentation tracking a fixed bug
        https://bugs.webkit.org/show_bug.cgi?id=73471

        The underlying bug is fixed (bug 72068), and this instrumentation was intrusive and using
        memory, plus the conditional compilation made me sad.

        Reviewed by Nate Chapin.

        No new tests.

        * dom/ScriptElement.cpp:
        (WebCore::ScriptElement::ScriptElement):
        (WebCore::ScriptElement::requestScript):
        (WebCore::ScriptElement::stopLoadRequest):
        (WebCore::ScriptElement::notifyFinished):
        * dom/ScriptElement.h:
        * dom/ScriptRunner.cpp:
        (WebCore::ScriptRunner::queueScriptForExecution):

2011-12-02  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Split view works weirdly in network panel when resizing, showing/hiding main element.
        https://bugs.webkit.org/show_bug.cgi?id=73650

        Reviewed by Pavel Feldman.

        * inspector/front-end/SplitView.js:
        (WebInspector.SplitView.prototype._updateResizer):
        (WebInspector.SplitView.prototype.hideMainElement):
        (WebInspector.SplitView.prototype.showMainElement):
        (WebInspector.SplitView.prototype.onResize):
        (WebInspector.SplitView.prototype._restoreSidebarWidth):

2011-12-02  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r101783.
        http://trac.webkit.org/changeset/101783
        https://bugs.webkit.org/show_bug.cgi?id=73652

        Broke chromium win build. (Requested by vsevik on #webkit).

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
        (main):
        * WebCore.gypi:
        * bindings/scripts/generate-bindings.pl:
        * page/DOMWindow.idl:
        * webaudio/DOMWindowWebAudio.idl: Removed.

2011-11-28  Alexander Pavlov  <apavlov@chromium.org>

        Inline non-replaced elements are reported to have zero width and height
        https://bugs.webkit.org/show_bug.cgi?id=61117

        Reviewed by Antti Koivisto.

        According to http://www.w3.org/TR/CSS21/visudet.html, the "width" and "height" properties
        do not apply for inline non-replaced elements and should have their initial value of "auto"
        as their computed values.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):

2011-12-02  Sami Kyostila  <skyostil@chromium.org>

        [chromium] Make CCInputHandler scrolling stateful
        https://bugs.webkit.org/show_bug.cgi?id=73345

        This change makes the scrolling part of CCInputHandler stateful by
        replacing scrollRootLayer() with scrollBegin(), scrollBy() and
        scrollEnd(). This is done in preparation for scrollable sublayers.
        Specifically, scrollBegin() will allow CCLayerTreeHostImpl to perform
        input event hit testing to find the layer to be scrolled.

        Reviewed by Steve Block.

        Tested in CCLayerTreeHostImplTest.

        * platform/graphics/chromium/cc/CCInputHandler.h:
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
        (WebCore::CCLayerTreeHostImpl::currentTimeMs):
        (WebCore::CCLayerTreeHostImpl::setNeedsRedraw):
        (WebCore::findInnermostScrollableLayerAtPoint):
        (WebCore::CCLayerTreeHostImpl::scrollBegin):
        (WebCore::CCLayerTreeHostImpl::scrollBy):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:

2011-12-02  Kentaro Hara  <haraken@chromium.org>

        Use the [Supplemental] IDL for webaudio attributes in Chromium
        https://bugs.webkit.org/show_bug.cgi?id=73394

        Reviewed by Adam Barth.

        - Overview: Using the [Supplemental] IDL, this patch moves the attribute
        declarations of webaudio from DOMWindow.idl into a new IDL file
        webaudio/DOMWindowWebAudio.idl, which helps make webaudio a self-contained
        feature (aka a module).

        - This patch changes the build flow of WebCore.gyp as follows:

            Previous build flow:
                foreach $idl (all IDL files) {
                    generate-bindings.pl depends on $idl;
                    generate-bindings.pl reads $idl;
                    generate-bindings.pl generates .h and .cpp files for $idl;
                }

            New build flow (See the discussions in bug 72138 for more details):
                resolve-supplemental.pl depends on all IDL files;
                resolve-supplemental.pl reads all IDL files;
                resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
                resolve-supplemental.pl outputs supplemental_dependency.tmp;
                foreach $idl (all IDL files) {
                    generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
                    generate-bindings.pl reads $idl;
                    generate-bindings.pl reads supplemental_dependency.tmp;
                    generate-bindings.pl generates .h and .cpp files for $idl, including all attributes in IDL files whilementing $idl;
                }

        - This patch introduces a temporary IDL, [Supplemented]. The [Supplemented] IDL
        will be removed after build scripts for all platforms support the [Supplemental] IDL.
        The motivation for the [Supplemented] IDL is as follows:

        In order to support the [Supplemental] IDL, we need to
        (1) run resolve-supplemental.pl and generate supplemental_dependency.tmp
        (2) and run generate-bindings.pl with the supplemental_dependency.tmp.

        This build flow requires a change on the following build scripts,
        but changing all the build scripts all at once without any regression is too difficult:

            - DerivedSources.make
            - DerivedSources.pri
            - GNUmakefile.am
            - PlatformBlackBerry.cmake
            - UseJSC.cmake
            - UseV8.cmake
            - WebCore.vcproj/MigrateScripts
            - WebCore.vcproj/WebCore.vcproj
            - bindings/gobject/GNUmakefile.am
            - WebCore.gyp/WebCore.gyp

        Thus, we are planning to change the build scripts one by one, which implies that
        we need to allow the temporary state in which some build scripts support [Supplemental] IDL
        but others do not. To accomplish this, we introduce a temporary IDL, [Supplemented].
        The [Supplemented] IDL on an attribute means that the attribute is marked with [Supplemental]
        in another IDL file somewhere, like this:

            DOMWindowWebAudio.idl:
                interface [
                    Supplemental=DOMWindow
                ] DOMWindowWebAudio {
                    attribute attr1;
                    attribute attr2;
                };

            DOMWindow.idl:
                interface [
                ] DOMWindow {
                    attribute [Supplemented] attr1; // This line will be removed after all build scripts support the [Su IDL
                    attribute [Supplemented] attr2; // This line will be removed after all build scripts support the [Su IDL.
                    attribute attr3;
                    attribute attr4;
                };

        Assuming these IDL files, this patch implements the following logic in generate-bindings.pl:

            - If a given build script supports the [Supplemental] IDL,
            generate-bindings.pl ignores all attributes with the [Supplemented] IDL.
            - Otherwise, generate-bindings.pl treats all attributes with the [Supplemented] IDL
            as normal attributes and instead ignores all attributes with the [Supplemental] IDL
            (i.e. generate-bindings.pl generates nothing from the IDL file with the [Supplemental] IDL).

        Tests: webaudio/*

        * WebCore.gyp/WebCore.gyp: Describes the build flow that I described above.
        * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
        (main): Reads the IDL file names from the input file (i.e. supplemental_dependency.tmp), which are described at the first column of each line in the input file.
        * WebCore.gypi: Added DOMWindowWebAudio.idl.
        * bindings/scripts/generate-bindings.pl: As a temporary solution, if the platform does not support the [Supplemental] IDL, the perl script ignores the [Supplemental] IDL and instead uses the [Supplemented] IDL. Otherwise, the perl script ignores the [Supplemented] IDL and instead uses the [Supplemental] IDL.
        * page/DOMWindow.idl: Added the [Supplemented] IDL to webaudio-related attributes. As I described above, the [Supplemented] IDL will be removed after all platforms support the [Supplemental] IDL.
        * webaudio/DOMWindowWebAudio.idl: Added. Describes the [Supplemental=DOMWindow] IDL. The attributes in this IDL file should be treated as if they are written in DOMWindow.idl.

2011-12-02  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Network panel row highlighting does not work.
        https://bugs.webkit.org/show_bug.cgi?id=73644

        Reviewed by Pavel Feldman.

        * inspector/front-end/networkLogView.css:
        (.network-log-grid tr.highlighted-row):
        (from):
        (to):

2011-12-02  Pavel Feldman  <pfeldman@google.com>

        Not reviewed: remove console.timeStamp from the inspector backend dispatcher.

        * inspector/front-end/InspectorBackend.js:
        (InspectorBackendClass.prototype.sendMessageObjectToBackend):

2011-12-02  Hajime Morrita  <morrita@chromium.org>

        Unreviewed, rolling out r101751 and r101775.
        http://trac.webkit.org/changeset/101751
        http://trac.webkit.org/changeset/101775
        https://bugs.webkit.org/show_bug.cgi?id=73191

        breaks Windows build

        * ForwardingHeaders/runtime/JSExportMacros.h: Removed.
        * ForwardingHeaders/wtf/ExportMacros.h: Removed.
        * WebCore.vcproj/QTMovieWinCommon.vsprops:
        * WebCore.xcodeproj/project.pbxproj:
        * config.h:
        * platform/PlatformExportMacros.h: Removed.

2011-12-02  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: introduce backend stub generation from JSON for the standalone development / remote front-ends.
        https://bugs.webkit.org/show_bug.cgi?id=73636

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/DOMStorage.js:
        * inspector/front-end/Database.js:
        * inspector/front-end/InspectorBackend.js:
        (InspectorBackendClass):
        (InspectorBackendClass.prototype.registerCommand):
        (InspectorBackendClass.prototype.registerEvent):
        (InspectorBackendClass.prototype.runAfterPendingDispatches):
        (InspectorBackendClass.prototype.loadFromJSONIfNeeded):
        * inspector/front-end/TimelineManager.js:
        * inspector/front-end/inspector.js:

2011-12-02  MORITA Hajime  <morrita@google.com>

        Unreviewed, another attempt to build fix for r101751:
        Adding an include path to make PlatformExportMacros.h visibile from QTMovieWin.

        * WebCore.vcproj/QTMovieWinCommon.vsprops:

2011-12-02  Hajime Morrita  <morrita@chromium.org>

        Unreviewed, rolling out r101772.
        http://trac.webkit.org/changeset/101772

        It didn't fix the build failure

        * WebCore.vcproj/QTMovieWinCommon.vsprops:

2011-12-02  MORITA Hajime  <morrita@google.com>

        Unreviewed attempt to build fix for r101751:
        Adding an include path to make PlatformExportMacros.h visibile from QTMovieWin.

        * WebCore.vcproj/QTMovieWinCommon.vsprops:

2011-12-01  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [Extensions API] pass preferred resource line number to extension's open resource handler
        https://bugs.webkit.org/show_bug.cgi?id=73084

        Reviewed by Pavel Feldman.

        * inspector/front-end/ExtensionAPI.js:
        (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler.else.callbackWrapper):
        (injectedExtensionAPI.Panels.prototype.setOpenResourceHandler):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype._handleOpenURL):
        * inspector/front-end/HandlerRegistry.js:
        (get WebInspector.HandlerRegistry.prototype.set dispatch):
        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.FrameResourceTreeElement.prototype._handleContextMenuEvent):
        * inspector/front-end/SourceFrame.js:
        (WebInspector.SourceFrame.prototype.populateLineGutterContextMenu):
        (WebInspector.SourceFrame.prototype.populateTextAreaContextMenu):
        (WebInspector.TextViewerDelegateForSourceFrame.prototype.populateLineGutterContextMenu):
        (WebInspector.TextViewerDelegateForSourceFrame.prototype.populateTextAreaContextMenu):
        * inspector/front-end/TextViewer.js:
        (WebInspector.TextViewer.prototype._contextMenu):
        (WebInspector.TextViewerDelegate.prototype.populateLineGutterContextMenu):
        (WebInspector.TextViewerDelegate.prototype.populateTextAreaContextMenu):
        * inspector/front-end/externs.js:
        (WebInspector.populateResourceContextMenu):
        * inspector/front-end/inspector.js:
        (WebInspector.populateResourceContextMenu):
        (WebInspector._showAnchorLocation):

2011-12-01  Nayan Kumar K  <nayankk@motorola.com>

        [GTK] Add compilation options to enable/disable Accelerated Compositing and to choose texture mapper implementation.
        https://bugs.webkit.org/show_bug.cgi?id=73458

        Reviewed by Martin Robinson.

        No new tests added as this patch doesn't affect any functionality.

        * GNUmakefile.am: Guard the include files.
        * GNUmakefile.list.am: Guard the compilation of few files.
        * platform/graphics/GraphicsLayer.h: Guard the typedef of GraphicsLayer.

2011-12-01  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: use object properties, not element attributes to pass preferred panel/line/request id in linkified anchors
        https://bugs.webkit.org/show_bug.cgi?id=73556

        Reviewed by Pavel Feldman.

        * inspector/front-end/AuditFormatters.js:
        (WebInspector.AuditFormatters.resourceLink):
        * inspector/front-end/ConsoleMessage.js:
        (WebInspector.ConsoleMessageImpl.prototype._formatMessage.else.else.linkifier):
        (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyLocation):
        (WebInspector.DebuggerPresentationModel.Linkifier.prototype._updateAnchor):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkPanel.prototype._resourceByAnchor):
        (WebInspector.NetworkDataGridNode.prototype._refreshInitiatorCell):
        * inspector/front-end/ResourceUtils.js:
        (WebInspector.linkifyStringAsFragment):
        (WebInspector.linkifyResourceAsNode):
        (WebInspector.linkifyRequestAsNode):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.ResourcesPanel.prototype.showAnchorLocation):
        * inspector/front-end/inspector.js:
        (WebInspector._showAnchorLocation):

2011-12-02  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: refactor InspectorBackendDispatcher so that it does not use JSON-serialized command templates.
        https://bugs.webkit.org/show_bug.cgi?id=73569

        Reviewed by Yury Semikhatsky.

        * inspector/CodeGeneratorInspector.py:
        (Generator.process_command):
        * inspector/Inspector.json:
        * inspector/front-end/InspectorBackend.js:
        (InspectorBackendClass.prototype._wrap.callback):
        (InspectorBackendClass.prototype._wrap):
        (InspectorBackendClass.prototype.registerCommand):
        (InspectorBackendClass.prototype._invoke):
        (InspectorBackendClass.prototype._sendMessageToBackend):
        (InspectorBackendClass.prototype._wrapCallbackAndSendMessageObject):

2011-12-02  Yosifumi Inoue  <yosin@chromium.org>

        Range sliders and spin buttons don't work with multi-columns.
        https://bugs.webkit.org/show_bug.cgi?id=70898

        Reviewed by Dan Bernstein.

        This patch makes RenderBlock::hitTestColumns and
        RenderBoxModelObject::mapAbsoluteToLocal to handle point
        in multi-column same logic.

        In multi-column, coordinate of box model rendering object is different
        from absolute coordinate.. Columns in box model rendering object spans
        vertically rather than horizontally.

        When absolute point is represented in (column[i]+dx, column[0]+dy),
        it is (column[0]+dx, column[0] + columnHeight + dy) in box model
        rendering object coordinate.

        Tests: fast/events/document-elementFromPoint.html
               fast/events/offsetX-offsetY.html
               fast/forms/number/spin-in-multi-column.html
               fast/forms/range/slider-in-multi-column.html
               fast/forms/select/listbox-in-multi-column.html

        * rendering/RenderBlock.cpp:
        (WebCore::ColumnRectIterator::ColumnRectIterator): Added
        (WebCore::ColumnRectIterator::advance): Added
        (WebCore::ColumnRectIterator::columnRect): Added
        (WebCore::ColumnRectIterator::hasMore): Added
        (WebCore::ColumnRectIterator::adjust): Added
        (WebCore::ColumnRectIterator::update): Added
        (WebCore::RenderBlock::hitTestColumns): Use ColumnRectIterator.
        (WebCore::RenderBlock::adjustForColumnRect): Added
        * rendering/RenderBlock.h: Add adjustForColumnRect.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::mapAbsoluteToLocalPoint): Call RenderBoxModelObject::mapAbsoluteToLocalPoint.
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint): Move from RenderInline::mapAbsoluteToLocalPoint and call RenderBlock::adjustForColumnRect.
        * rendering/RenderBoxModelObject.h: add mapAbsoluteToLocalPoint.
        * rendering/RenderInline.cpp: Move mapAbsoluteToLocalPoint to RenderBoxModelObject.
        * rendering/RenderInline.h: remove mapAbsoluteToLocalPoint.

2011-12-02  Pavel Feldman  <pfeldman@google.com>

        InspectorController destruction order leads to use-after-free
        https://bugs.webkit.org/show_bug.cgi?id=73582

        Reviewed by Yury Semikhatsky.

        * inspector/InspectorBaseAgent.h:
        (WebCore::InspectorBaseAgentInterface::discardAgent):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::~InspectorCSSAgent):
        (WebCore::InspectorCSSAgent::discardAgent):
        * inspector/InspectorCSSAgent.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::~InspectorController):
        * inspector/InspectorDOMDebuggerAgent.cpp:
        (WebCore::InspectorDOMDebuggerAgent::~InspectorDOMDebuggerAgent):
        (WebCore::InspectorDOMDebuggerAgent::discardAgent):
        * inspector/InspectorDOMDebuggerAgent.h:

2011-12-02  Leo Yang  <leo.yang@torchmobile.com.cn>

        image element with src attribute can't be replaced by content: url() style
        https://bugs.webkit.org/show_bug.cgi?id=42840

        ImageLoader were updating renderer even if the renderer's image is
        style generated content. This was wrong because if an image element
        with src attribute and style="content: url(...)" attribute the
        src image might override content image. The correct behavior should
        be showing content image.

        This patch is differentiating style generated RenderImage from the
        normal RenderImage and keeps the RenderImageSource untouched if the
        renderer is generated content.

        Reviewed by Darin Adler.

        Test: fast/images/image-css3-content-data.html

        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::renderImageResource):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::RenderImage):
        * rendering/RenderImage.h:
        (WebCore::RenderImage::setIsGeneratedContent):
        (WebCore::RenderImage::isGeneratedContent):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createObject):

2011-12-01  David Levin  <levin@chromium.org>

        Add a way to automatically size a single frame to fit its content.
        https://bugs.webkit.org/show_bug.cgi?id=73420

        Reviewed by Dmitry Titov.

        No new functionality exposed so no new tests. (There is a Chromium
        specific test in https://bugs.webkit.org/show_bug.cgi?id=73058.)

        * page/FrameView.cpp:
        (WebCore::FrameView::FrameView): Initialized the new variables.
        (WebCore::FrameView::layout):
        (WebCore::FrameView::autoSizeIfEnabled):
        (WebCore::FrameView::enableAutoSizeMode):
        * page/FrameView.h:

2011-12-01  Hajime Morrita  <morrita@chromium.org>

        JS_INLINE and WTF_INLINE should be visible from WebCore
        https://bugs.webkit.org/show_bug.cgi?id=73191

        Reviewed by Kevin Ollivier.

        - Moved export related definitions from config.h
          to ExportMacros.h, JSExportMacros.h and PlatformExportMacros.h
        - Added forwarding headers which are referred from config.h

        No new tests. Only build related changes.

        * ForwardingHeaders/runtime/JSExportMacros.h: Added.
        * ForwardingHeaders/wtf/ExportMacros.h: Added.
        * WebCore.xcodeproj/project.pbxproj:
        * config.h:
        * platform/PlatformExportMacros.h: Copied from Source/JavaScriptCore/wtf/ExportMacros.h.

2011-12-01  Jon Lee  <jonlee@apple.com>

        [WK2] Add further support for notifications
        https://bugs.webkit.org/show_bug.cgi?id=73572
        <rdar://problem/10472195>

        Reviewed by Darin Adler.

        * WebCore.exp.in: Export constructor and dispatch functions
        * dom/EventNames.h: Add show event.
        * notifications/Notification.cpp:
        (WebCore::Notification::show): For the Mac platform, we just forward the show() call to the
        notification client and update the state, because we cannot get synchronous acknowledgment that the
        notification got delivered.
        (WebCore::Notification::dispatchShowEvent): Create simple events and dispatch to the notification.
        (WebCore::Notification::dispatchClickEvent): Ditto.
        (WebCore::Notification::dispatchCloseEvent): Ditto.
        (WebCore::Notification::dispatchErrorEvent): Ditto.
        * notifications/Notification.h: Add dispatch functions.
        * notifications/Notification.idl: Add onshow event listener. The ondisplay event listener should be
        removed when implementations change the event listener to onshow.

2011-12-01  Max Vujovic  <mvujovic@adobe.com>

        Focus ring of imagemap's area element does not scale when CSS zoom style is applied
        https://bugs.webkit.org/show_bug.cgi?id=73595

        Reviewed by Darin Adler.

        Tests: fast/images/imagemap-focus-ring-zoom-style-expected.html
               fast/images/imagemap-focus-ring-zoom-style.html

        * html/HTMLAreaElement.cpp:
        (WebCore::HTMLAreaElement::computePath):
        The computePath method now uses the RenderObject's effectiveZoom 
        instead of the Frame's page zoom to compute the path for the area
        element's focus ring.

2011-12-01  Kent Tamura  <tkent@chromium.org>

        REGRESSION(r90971): Placeholder text of input control is rendered
        over positioned elements with z-index:0.
        https://bugs.webkit.org/show_bug.cgi?id=67408

        Reviewed by Darin Adler.

        The bug was caused by "position:relative" in the default style of
        -webkit-input-placeholder. If there were other positioned elements
        with z-index:0, a placeholder might be rendered over them.

        "position:relative" is not needed because RenderTextControlSingleLine
        and RenderTextControlMultipleLine lay out the placeholder renderer by
        custom layout code.

        Tests: fast/forms/placeholder-with-positioned-element.html

        * css/html.css:
        (::-webkit-input-placeholder): Remove position:relative.

2011-12-01  Andreas Kling  <kling@webkit.org>

        CSSMutableStyleDeclaration: Removed unused multiLength argument in setLengthProperty().
        <http://webkit.org/b/73602>

        Reviewed by Darin Adler.

        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::setLengthProperty):
        * css/CSSMutableStyleDeclaration.h:

2011-12-01  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r101737.
        http://trac.webkit.org/changeset/101737
        https://bugs.webkit.org/show_bug.cgi?id=73394

        Chromium/Mac and Chromium/Win build are broken

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
        (main):
        * WebCore.gypi:
        * bindings/scripts/generate-bindings.pl:
        * page/DOMWindow.idl:
        * webaudio/DOMWindowWebAudio.idl: Removed.

2011-12-01  Kentaro Hara  <haraken@chromium.org>

        Use the [Supplemental] IDL for webaudio attributes in Chromium
        https://bugs.webkit.org/show_bug.cgi?id=73394

        Reviewed by Adam Barth.

        - Overview: Using the [Supplemental] IDL, this patch moves the attribute
        declarations of webaudio from DOMWindow.idl into a new IDL file
        webaudio/DOMWindowWebAudio.idl, which helps make webaudio a self-contained
        feature (aka a module).

        - This patch changes the build flow of WebCore.gyp as follows:

            Previous build flow:
                foreach $idl (all IDL files) {
                    generate-bindings.pl depends on $idl;
                    generate-bindings.pl reads $idl;
                    generate-bindings.pl generates .h and .cpp files for $idl;
                }

            New build flow (See the discussions in bug 72138 for more details):
                resolve-supplemental.pl depends on all IDL files;
                resolve-supplemental.pl reads all IDL files;
                resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
                resolve-supplemental.pl outputs supplemental_dependency.tmp;
                foreach $idl (all IDL files) {
                    generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
                    generate-bindings.pl reads $idl;
                    generate-bindings.pl reads supplemental_dependency.tmp;
                    generate-bindings.pl generates .h and .cpp files for $idl, including all attributes in IDL files whilementing $idl;
                }

        - This patch introduces a temporary IDL, [Supplemented]. The [Supplemented] IDL
        will be removed after build scripts for all platforms support the [Supplemental] IDL.
        The motivation for the [Supplemented] IDL is as follows:

        In order to support the [Supplemental] IDL, we need to
        (1) run resolve-supplemental.pl and generate supplemental_dependency.tmp
        (2) and run generate-bindings.pl with the supplemental_dependency.tmp.

        This build flow requires a change on the following build scripts,
        but changing all the build scripts all at once without any regression is too difficult:

            - DerivedSources.make
            - DerivedSources.pri
            - GNUmakefile.am
            - PlatformBlackBerry.cmake
            - UseJSC.cmake
            - UseV8.cmake
            - WebCore.vcproj/MigrateScripts
            - WebCore.vcproj/WebCore.vcproj
            - bindings/gobject/GNUmakefile.am
            - WebCore.gyp/WebCore.gyp

        Thus, we are planning to change the build scripts one by one, which implies that
        we need to allow the temporary state in which some build scripts support [Supplemental] IDL
        but others do not. To accomplish this, we introduce a temporary IDL, [Supplemented].
        The [Supplemented] IDL on an attribute means that the attribute is marked with [Supplemental]
        in another IDL file somewhere, like this:

            DOMWindowWebAudio.idl:
                interface [
                    Supplemental=DOMWindow
                ] DOMWindowWebAudio {
                    attribute attr1;
                    attribute attr2;
                };

            DOMWindow.idl:
                interface [
                ] DOMWindow {
                    attribute [Supplemented] attr1; // This line will be removed after all build scripts support the [Su IDL
                    attribute [Supplemented] attr2; // This line will be removed after all build scripts support the [Su IDL.
                    attribute attr3;
                    attribute attr4;
                };

        Assuming these IDL files, this patch implements the following logic in generate-bindings.pl:

            - If a given build script supports the [Supplemental] IDL,
            generate-bindings.pl ignores all attributes with the [Supplemented] IDL.
            - Otherwise, generate-bindings.pl treats all attributes with the [Supplemented] IDL
            as normal attributes and instead ignores all attributes with the [Supplemental] IDL
            (i.e. generate-bindings.pl generates nothing from the IDL file with the [Supplemental] IDL).

        Tests: webaudio/*

        * WebCore.gyp/WebCore.gyp: Describes the build flow that I described above.
        * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
        (main): Reads the IDL file names from the input file (i.e. supplemental_dependency.tmp), which are described at the first column of each line in the input file.
        * WebCore.gypi: Added DOMWindowWebAudio.idl.
        * bindings/scripts/generate-bindings.pl: As a temporary solution, if the platform does not support the [Supplemental] IDL, the perl script ignores the [Supplemental] IDL and instead uses the [Supplemented] IDL. Otherwise, the perl script ignores the [Supplemented] IDL and instead uses the [Supplemental] IDL.
        * page/DOMWindow.idl: Added the [Supplemented] IDL to webaudio-related attributes. As I described above, the [Supplemented] IDL will be removed after all platforms support the [Supplemental] IDL.
        * webaudio/DOMWindowWebAudio.idl: Added. Describes the [Supplemental=DOMWindow] IDL. The attributes in this IDL file should be treated as if they are written in DOMWindow.idl.

2011-12-01  Rafael Weinstein  <rafaelw@chromium.org>

        [MutationObservers] StyleAttributeMutationScope shouldn't be implemented with static classes
        https://bugs.webkit.org/show_bug.cgi?id=73596

        Reviewed by Ojan Vafai.

        No tests needed. This patch is a minor refactor.

        * css/CSSMutableStyleDeclaration.cpp:

2011-12-01  Andreas Kling  <kling@webkit.org>

        CSSMutableStyleDeclaration: Remove unused function setStringProperty().
        <http://webkit.org/b/73597>

        Reviewed by Darin Adler.

        * css/CSSMutableStyleDeclaration.cpp:
        * css/CSSMutableStyleDeclaration.h:

2011-12-01  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r101268): Intermittent assertion failure in fast/block/child-not-removed-from-parent-lineboxes-crash.html
        https://bugs.webkit.org/show_bug.cgi?id=73250

        Reviewed by Darin Adler.

        Reset the position when exiting early in layoutRunsAndFloatsInRange.

        No new tests because we don't have a reliable reproduction for this failure.
        However, the failure is caught by the existing fast/block/child-not-removed-from-parent-lineboxes-crash.html
        intermittently with about 30% probability.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):

2011-12-01  Shinya Kawanaka  <shinyak@google.com>

        Asynchronous SpellChecker should consider multiple requests.
        https://bugs.webkit.org/show_bug.cgi?id=72939

        Reviewed by Hajime Morita.

        Now SpellChecker saves a request when it is processing the previous spellcheck request.
        If there is a request having the same root editable element, the older request is replaced by newer request.

        Test: editing/spelling/spellcheck-queue.html

        * editing/SpellChecker.cpp:
        (WebCore::SpellChecker::SpellCheckRequest::SpellCheckRequest):
          A structure to have spell check request.
        (WebCore::SpellChecker::SpellCheckRequest::sequence):
        (WebCore::SpellChecker::SpellCheckRequest::range):
        (WebCore::SpellChecker::SpellCheckRequest::text):
        (WebCore::SpellChecker::SpellCheckRequest::mask):
        (WebCore::SpellChecker::SpellCheckRequest::rootEditableElement):
        (WebCore::SpellChecker::SpellChecker):
        (WebCore::SpellChecker::createRequest):
        (WebCore::SpellChecker::timerFiredToProcessQueuedRequest):
          When timer is fired, queued request is processed if any.
        (WebCore::SpellChecker::canCheckAsynchronously):
        (WebCore::SpellChecker::requestCheckingFor):
          When the spellchecker is processing another request, the latest request is queued.
        (WebCore::SpellChecker::invokeRequest):
        (WebCore::SpellChecker::enqueueRequest):
          Enqueues a request. If there is an older request whose root editable element is the same as the request,
          it will be replaced.
        (WebCore::SpellChecker::didCheck):
        * editing/SpellChecker.h:

2011-12-01  Takashi Toyoshima  <toyoshim@chromium.org>

        bufferedAmount calculation is wrong in CLOSING and CLOSED state.
        https://bugs.webkit.org/show_bug.cgi?id=73404

        Reviewed by Kent Tamura.

        WebSocket::bufferedAmount() must return buffered frame size including
        disposed frames which are passed via send() calls after close().

        Old implementation had a problem at CLOSING state. Buffered frame size
        was added to m_bufferedAmountAfterClose at close(). But the function
        returns the sum of m_bufferedAmountAfterClose and internally buffered
        frame size, or m_channel->bufferedAmount(). So, buffered frames was
        double counted.

        In new implementation, m_bufferedAmount always represents buffered
        frame size and m_bufferedAmountAfterClose does disposed frame size.
        As a result, bufferedAmount() implementation become just to return the
        sum of m_bufferedAmount and m_bufferedAmountAfterClose.

        Test: http/tests/websocket/tests/hybi/bufferedAmount-after-close-in-busy.html

        * websockets/WebSocket.cpp: Implement new bufferedAmount handling.
        (WebCore::saturateAdd):
        (WebCore::WebSocket::WebSocket):
        (WebCore::WebSocket::send):
        (WebCore::WebSocket::close):
        (WebCore::WebSocket::bufferedAmount):
        (WebCore::WebSocket::didUpdateBufferedAmount):
        (WebCore::WebSocket::didClose):
        * websockets/WebSocket.h:

2011-12-01  Kentaro Hara  <haraken@chromium.org>

        Replace a custom constructor of window.Option with the [NamedConstructor] IDL
        https://bugs.webkit.org/show_bug.cgi?id=73498

        Reviewed by Adam Barth.

        Removes JSOptionConstructor.{h,cpp} and generates the constructor of window.Option
        by the [NamedConstructor] IDL.

        Tests: fast/js/custom-constructors.html
               fast/forms/option-index.html
               fast/forms/add-and-remove-option.html
               fast/dom/dom-add-optionelement.html

        * GNUmakefile.list.am: Removed JSOptionConstructor.{h,cpp}.
        * Target.pri: Ditto.
        * UseJSC.cmake: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.order: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * bindings/js/JSBindingsAllInOne.cpp: Ditto.

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::option): Specifies the NamedConstructor.
        * bindings/js/JSOptionConstructor.cpp: Removed.
        * bindings/js/JSOptionConstructor.h: Removed.
        * page/DOMWindow.idl: Removed the [JSCustomConstructor] IDL.

2011-12-01  Kentaro Hara  <haraken@chromium.org>

        Replace a custom constructor of window.Audio with the [NamedConstructor] IDL
        https://bugs.webkit.org/show_bug.cgi?id=73496

        Reviewed by Adam Barth.

        Removes JSAudioConstructor.{h,cpp} and generates the constructor of window.Audio
        by the [NamedConstructor] IDL.

        Tests: fast/js/custom-constructors.html
               media/audio-constructor.html
               media/audio-constructor-src.html
               media/audio-constructor-preload.html
               media/audio-controls-do-not-fade-out.html
               media/audio-controls-rendering.html

        * GNUmakefile.list.am: Removed JSAudioConstructor.{h,cpp}.
        * Target.pri: Ditto.
        * UseJSC.cmake: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.order: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * bindings/js/JSBindingsAllInOne.cpp: Ditto.

        * bindings/js/JSAudioConstructor.cpp: Removed.
        * bindings/js/JSAudioConstructor.h: Removed.
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::audio): Specifies the NamedConstructor.
        * page/DOMWindow.idl: Removed the [JSCustomConstructor] IDL.

2011-12-01  Mark Pilgrim  <pilgrim@chromium.org>

        [FileSystem API] DirectoryEntry.removeRecursively successCallback is required
        https://bugs.webkit.org/show_bug.cgi?id=69644

        Reviewed by Adam Barth.

        * fileapi/DirectoryEntry.idl: remove [Optional] flag from successCallback

2011-12-01  Mark Pilgrim  <pilgrim@chromium.org>

        [FileSystem API] DirectoryEntry.getDirectory path argument is required
        https://bugs.webkit.org/show_bug.cgi?id=69643

        Reviewed by Adam Barth.

        Test: fast/filesystem/simple-required-arguments-getdirectory.html

        * bindings/js/JSDirectoryEntryCustom.cpp:
        (WebCore::JSDirectoryEntry::getDirectory): throw TypeError if not enough arguments
        * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
        (WebCore::V8DirectoryEntry::getDirectoryCallback): throw TypeError if not enough arguments

2011-12-01  Rafael Weinstein  <rafaelw@chromium.org>

        V8 bindings cleanup: V8WindowErrorHandler shouldn't be directly invoking script
        https://bugs.webkit.org/show_bug.cgi?id=73576

        Reviewed by Adam Barth.

        No tests needed. This patch is just bindings hygiene.

        * bindings/v8/V8WindowErrorHandler.cpp:
        (WebCore::V8WindowErrorHandler::callListenerFunction):

2011-12-01  Benjamin Poulain  <benjamin@webkit.org>

        URLs are encoded in UTF-8, then decoded as if they are Latin1
        https://bugs.webkit.org/show_bug.cgi?id=71758

        Reviewed by Darin Adler.

        Previously, invalid URLs could have a string emanating from a
        partial parsing of the input. The creation of the string was done
        through the Latin1 codec regardless of the encoding of the char* url.

        This caused two types of issues, URLs were evaluated as half-parsed,
        and the coding and decoding of the string was not consistent.

        This patch changes KURL::parse() to fallback on the original string
        whenever the parsing of the URL fails.

        Test: fast/url/invalid-urls-utf8.html

        * platform/KURL.cpp:
        (WebCore::KURL::KURL):
        (WebCore::KURL::init):
        (WebCore::KURL::parse):
        Previously, originalString was only used as an optimization to avoid
        the allocation of a string. Since this optimization depends on the
        comparison of the incoming string and the encoded buffer.
        This patches generalizes originalString to always be the original string
        being parsed by KURL. The optimization is kept by comparing that string
        and the final parsed result.
        * platform/KURL.h:
        (WebCore::KURL::parse):
        * platform/cf/KURLCFNet.cpp:
        (WebCore::KURL::KURL):
        * platform/mac/KURLMac.mm:
        (WebCore::KURL::KURL):

2011-12-01  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Add a helper function to find the current executable's path
        https://bugs.webkit.org/show_bug.cgi?id=73473

        Reviewed by Gustavo Noronha Silva.

        No new tests. This should not change behavior.

        * platform/gtk/FileSystemGtk.cpp:
        (WebCore::applicationDirectoryPath): Now use the new WTF function to get the
        current executable's path.

2011-12-01  Andreas Kling  <kling@webkit.org>

        StyledElement: Clean up inline style accessors.
        <http://webkit.org/b/73568>

        Reviewed by Antti Koivisto.

        Renamed StyledElement's getInlineStyleDecl() to ensureInlineStyleDecl() to
        make it clear that it will always return non-null as opposed to inlineStyleDecl().

        Also updated call sites to store the return value in a CSSInlineStyleDeclaration*
        rather than a CSSMutableStyleDeclaration*, and reduced scoping of temporaries
        in some cases.

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::createInlineStyleDecl):
        (WebCore::StyledElement::destroyInlineStyleDecl):
        (WebCore::StyledElement::parseMappedAttribute):
        (WebCore::StyledElement::ensureInlineStyleDecl):
        (WebCore::StyledElement::style):
        (WebCore::StyledElement::copyNonAttributeProperties):
        (WebCore::StyledElement::addSubresourceAttributeURLs):
        * dom/StyledElement.h:
        (WebCore::StyledElement::inlineStyleDecl):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
        (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
        (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
        (WebCore::ApplyStyleCommand::addBlockStyle):
        (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
        * editing/DeleteButtonController.cpp:
        (WebCore::DeleteButtonController::createDeletionUI):
        (WebCore::DeleteButtonController::show):
        (WebCore::DeleteButtonController::hide):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
        (WebCore::ReplaceSelectionCommand::handleStyleSpans):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::updatePlaceholderVisibility):
        * html/ValidationMessage.cpp:
        (WebCore::adjustBubblePosition):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlElement::show):
        (WebCore::MediaControlElement::hide):
        (WebCore::MediaControlPanelElement::setPosition):
        (WebCore::MediaControlPanelElement::resetPosition):
        (WebCore::MediaControlPanelElement::makeOpaque):
        (WebCore::MediaControlPanelElement::makeTransparent):
        (WebCore::MediaControlInputElement::show):
        (WebCore::MediaControlInputElement::hide):
        * html/shadow/MeterShadowElement.cpp:
        (WebCore::MeterValueElement::setWidthPercentage):
        * html/shadow/ProgressShadowElement.cpp:
        (WebCore::ProgressValueElement::setWidthPercentage):
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::TrackLimiterElement::create):

2011-12-01  Kelly Norton  <knorton@google.com>

        More void functions eager to return values in RenderObject & WebFrameImpl
        https://bugs.webkit.org/show_bug.cgi?id=73571

        Reviewed by Adam Barth.

        * rendering/RenderObject.h:
        (WebCore::RenderObject::computeAbsoluteRepaintRect):

2011-12-01  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r101691.
        http://trac.webkit.org/changeset/101691
        https://bugs.webkit.org/show_bug.cgi?id=73588

        Tests fail on Chromium bots, early warning system warned
        committer, please adjust test_expectations in patch (Requested
        by scheib on #webkit).

        * platform/KURL.cpp:
        (WebCore::KURL::KURL):
        (WebCore::KURL::init):
        (WebCore::KURL::parse):
        * platform/KURL.h:
        * platform/cf/KURLCFNet.cpp:
        (WebCore::KURL::KURL):
        * platform/mac/KURLMac.mm:
        (WebCore::KURL::KURL):

2011-12-01  Peter Beverloo  <peter@chromium.org>

        [Chromium] Add the FontCache implementation for Android
        https://bugs.webkit.org/show_bug.cgi?id=73452

        Add the FontCache implementation specific for the Chromium WebKit
        port on Android, and include various font-related files intended for
        Linux which can be re-used.

        Reviewed by Adam Barth.

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * platform/graphics/chromium/FontCacheAndroid.cpp: Added.
        (WebCore::getFallbackFontName):
        (WebCore::isFallbackFamily):
        (WebCore::FontCache::platformInit):
        (WebCore::FontCache::getFontDataForCharacters):
        (WebCore::FontCache::getSimilarFontPlatformData):
        (WebCore::FontCache::getLastResortFallbackFont):
        (WebCore::FontCache::getTraitsInFamily):
        (WebCore::FontCache::createFontPlatformData):

2011-12-01  Tony Chang  <tony@chromium.org>

        Need to implement flex-flow: row-reverse
        https://bugs.webkit.org/show_bug.cgi?id=70778

        Reviewed by Ojan Vafai.

        We can't just change the direction of the FlexOrderIterator because we want the overflow to be
        on the left side.  Instead, we apply similar logic as when we're laying out RTL content. Putting
        the check in isLeftToRightFlow() lets us flip the flexbox's border and padding and the flexitems'
        margins.  We then layout from right to left in layoutAndPlaceChildren.

        Also remove 2 uncalled functions.

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::isReverseFlow):
        (WebCore::RenderFlexibleBox::isLeftToRightFlow):
        * rendering/RenderFlexibleBox.h:

2011-12-01  Daniel Sievers  <sievers@chromium.org>

        [Chromium] Early returns in calculateDrawTransformsAndVisibilityInternal() are not respected by parent.
        https://bugs.webkit.org/show_bug.cgi?id=73270

        Non-drawing child trees should not be added to the parent render surface's layer list
        and should neither extend the parent layer's drawable content rect.

        This also fixes assertions from the content texture residency logic, which doesn't like it
        if we try to use a render surface through a parent, while that surface itself was never 'used'
        in the same frame.

        Reviewed by James Robinson.

        Added unit test.

        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
        (WebCore::calculateDrawTransformsAndVisibilityInternal):

2011-12-01  David Reveman  <reveman@chromium.org>

        [Chromium] Use contentBounds instead of bounds for invalidation.
        https://bugs.webkit.org/show_bug.cgi?id=73525

        Reviewed by James Robinson.

        Use setNeedsDisplay() instead of setNeedsDisplayRect() when possible.

        No new tests.

        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::setBounds):

2011-12-01  Andreas Kling  <kling@webkit.org>

        CSSStyleSelector: Add missing fields to constructor initializer list.
        <http://webkit.org/b/73565>

        Reviewed by Antti Koivisto.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::CSSStyleSelector):

2011-12-01  Benjamin Poulain  <bpoulain@apple.com>

        Get rid of the unused function nameForCursorType()
        https://bugs.webkit.org/show_bug.cgi?id=73529

        Reviewed by Joseph Pecoraro.

        The function nameForCursorType was introduced in r63339 and has not been used anywhere
        since that commit.

        * WebCore.exp.in:
        * platform/Cursor.cpp:
        * platform/Cursor.h:

2011-12-01  Andreas Kling  <kling@webkit.org>

        CSSMutableStyleDeclaration: Unnecessary double hash lookup in construction.
        <http://webkit.org/b/73564>

        Reviewed by Antti Koivisto.

        Use HashMap::find() instead of contains() followed by get() on
        successful lookup.

        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):

2011-11-30  Benjamin Poulain  <benjamin@webkit.org>

        URLs are encoded in UTF-8, then decoded as if they are Latin1
        https://bugs.webkit.org/show_bug.cgi?id=71758

        Reviewed by Darin Adler.

        Previously, invalid URLs could have a string emanating from a
        partial parsing of the input. The creation of the string was done
        through the Latin1 codec regardless of the encoding of the char* url.

        This caused two types of issues, URLs were evaluated as half-parsed,
        and the coding and decoding of the string was not consistent.

        This patch changes KURL::parse() to fallback on the original string
        whenever the parsing of the URL fails.

        Test: fast/url/invalid-urls-utf8.html

        * platform/KURL.cpp:
        (WebCore::KURL::KURL):
        (WebCore::KURL::init):
        (WebCore::KURL::parse):
        Previously, originalString was only used as an optimization to avoid
        the allocation of a string. Since this optimization depends on the
        comparison of the incoming string and the encoded buffer.
        This patches generalizes originalString to always be the original string
        being parsed by KURL. The optimization is kept by comparing that string
        and the final parsed result.
        * platform/KURL.h:
        (WebCore::KURL::parse):
        * platform/cf/KURLCFNet.cpp:
        (WebCore::KURL::KURL):
        * platform/mac/KURLMac.mm:
        (WebCore::KURL::KURL):

2011-12-01  Wei Charles  <charles.wei@torchmobile.com.cn>

        [Blackberry] Upstream BlackBerry porting of plugin framework -- part 2
        https://bugs.webkit.org/show_bug.cgi?id=73513

        Reviewed by Antonio Gomes.

        No new tests for now.

        * plugins/blackberry/NPCallbacksBlackBerry.cpp: Added.
        * plugins/blackberry/NPCallbacksBlackBerry.h: Added.
        * plugins/blackberry/PluginViewPrivateBlackBerry.cpp: Added.
        * plugins/blackberry/PluginViewPrivateBlackBerry.h: Added.

2011-12-01  Andreas Kling  <kling@webkit.org>

        JSC/CSSOM: root(CSSElementStyleDeclaration) should never need to follow the element.
        <http://webkit.org/b/73561>

        Reviewed by Antti Koivisto.

        A CSSElementStyleDeclaration should always either have a null element pointer,
        or return a valid parentStyleSheet(), since having an element pointer implies
        having an associated element sheet.

        In light of this, replace the opaque-root-from-element path for style declarations
        by an assertion.

        * bindings/js/JSDOMBinding.h:
        (WebCore::root):

2011-12-01  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Make the feature defines for DOM names explicit
        https://bugs.webkit.org/show_bug.cgi?id=72812

        Reviewed by Daniel Bates.

        * CMakeLists.txt:

2011-11-30  Dmitry Lomov  <dslomov@google.com>

        https://bugs.webkit.org/show_bug.cgi?id=73503
        [Chromium][V8] Implement ArrayBuffer transfer in chromium.
        Portions of this patch come from Luke Zarko.

        Reviewed by David Levin.

        Test: fast/canvas/webgl/arraybuffer-transfer-of-control.html

        * bindings/v8/SerializedScriptValue.cpp:
        (WebCore::V8ObjectMap::Writer::writeTransferredArrayBuffer):
        (WebCore::V8ObjectMap::Serializer::Serializer):
        (WebCore::V8ObjectMap::Serializer::writeAndGreyArrayBufferView):
        (WebCore::V8ObjectMap::Serializer::writeArrayBuffer):
        (WebCore::V8ObjectMap::Serializer::writeTransferredArrayBuffer):
        (WebCore::V8ObjectMap::Serializer::doSerialize):
        (WebCore::V8ObjectMap::Reader::read):
        (WebCore::V8ObjectMap::Reader::readArrayBufferView):
        (WebCore::V8ObjectMap::Deserializer::Deserializer):
        (WebCore::V8ObjectMap::Deserializer::tryGetTransferredArrayBuffer):
        (WebCore::SerializedScriptValue::create):
        (WebCore::neuterBinding):
        (WebCore::SerializedScriptValue::transferArrayBuffers):
        (WebCore::SerializedScriptValue::SerializedScriptValue):
        (WebCore::SerializedScriptValue::deserialize):
        * bindings/v8/SerializedScriptValue.h:

2011-12-01  Roland Steiner  <rolandsteiner@chromium.org>

        Shadow ID pseudo-element selectors serialize incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=73542

        Avoid space for ShadowDescendant combinator.

        Reviewed by Dimitri Glazkov.

        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::selectorText):

2011-12-01  Wajahat Siddiqui  <mdwajahatali.siddiqui@motorola.com>

        Popup menu can get stuck in closed state when GtkMenu can't grab mouse.
        https://bugs.webkit.org/show_bug.cgi?id=56466

        Add a check if popup menu is not visible due to no mouse grab,
        Ensure WebCore is in sync with proper state.

        Reviewed by Martin Robinson.

        * platform/gtk/PopupMenuGtk.cpp:
        (WebCore::PopupMenuGtk::show):

2011-12-01  Eric Carlson  <eric.carlson@apple.com>

        When playing audio in <video>, the poster is hidden on play
        https://bugs.webkit.org/show_bug.cgi?id=73405

        Reviewed by Darin Adler.

        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::hasAvailableVideoFrame): Don't return true if the file
            doesn't have video.

2011-12-01  Eric Carlson  <eric.carlson@apple.com>

        Add Settings for text track types
        https://bugs.webkit.org/show_bug.cgi?id=73383

        Reviewed by Darin Adler.

        No new tests, settings are not used yet.

        * page/Settings.cpp:
        (WebCore::Settings::Settings): Initialize new settings.
        * page/Settings.h:
        (WebCore::Settings::setShouldDisplaySubtitles): New.
        (WebCore::Settings::shouldDisplaySubtitles): Ditto.
        (WebCore::Settings::setShouldDisplayCaptions): Ditto.
        (WebCore::Settings::shouldDisplayCaptions): Ditto.
        (WebCore::Settings::setShouldDisplayTextDescriptions): Ditto.
        (WebCore::Settings::shouldDisplayTextDescriptions): Ditto.

2011-12-01  Eric Carlson  <eric.carlson@apple.com>

        HTMLTrackElement.readyState should return TextTrack "readiness state".
        https://bugs.webkit.org/show_bug.cgi?id=73466

        Reviewed by Darin Adler.

        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::HTMLTrackElement): Don't initialize m_readyState.
        (WebCore::HTMLTrackElement::setReadyState): Return the TextTrack state.
        (WebCore::HTMLTrackElement::readyState): Set the TextTrack state.
        * html/HTMLTrackElement.h: Remove m_readyState.

        * html/TextTrack.cpp:
        (WebCore::TextTrack::TextTrack): Initialize m_readinessState.
        * html/TextTrack.h:
        (WebCore::TextTrack::readinessState): New.
        (WebCore::TextTrack::setReadinessState): New.

2011-12-01  Kentaro Hara  <haraken@chromium.org>

        Unreviewed, rolling out r101669.
        http://trac.webkit.org/changeset/101669
        https://bugs.webkit.org/show_bug.cgi?id=73394

        Win build and Mac build are failing

        * WebCore.gyp/WebCore.gyp:
        * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
        (main):
        * WebCore.gypi:
        * bindings/scripts/generate-bindings.pl:
        * page/DOMWindow.idl:
        * webaudio/DOMWindowWebAudio.idl: Removed.

2011-12-01  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: further align front-end configurations: get rid of saveAsAvailable preference, inline drag glass pane.
        https://bugs.webkit.org/show_bug.cgi?id=73555

        Reviewed by Yury Semikhatsky.

        * inspector/InspectorFrontendClient.h:
        * inspector/InspectorFrontendClientLocal.h:
        (WebCore::InspectorFrontendClientLocal::canSaveAs):
        * inspector/InspectorFrontendHost.cpp:
        (WebCore::InspectorFrontendHost::canSaveAs):
        * inspector/InspectorFrontendHost.h:
        * inspector/InspectorFrontendHost.idl:
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype.hasExtensions):
        * inspector/front-end/InspectorFrontendHostStub.js:
        (.WebInspector.InspectorFrontendHostStub.prototype.canSaveAs):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._contextMenu):
        * inspector/front-end/ResourcesPanel.js:
        * inspector/front-end/Settings.js:
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsScreen):
        * inspector/front-end/StylesSidebarPane.js:
        * inspector/front-end/UIUtils.js:
        (WebInspector.elementDragStart):
        (WebInspector.elementDragEnd):

2011-12-01  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: extract static part of the InspectorBackend from the generator.
        https://bugs.webkit.org/show_bug.cgi?id=73562

        Reviewed by Timothy Hatcher.

        We should only generate the mapping between the command parameters and slots,
        rest of the backend is static.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/CodeGeneratorInspector.py:
        (Generator.go):
        (Generator.process_event):
        (Generator.process_command):
        * inspector/compile-front-end.sh:
        * inspector/front-end/InspectorBackend.js: Added.
        (InspectorBackendClass):
        (InspectorBackendClass.prototype.registerCommand):
        (InspectorBackendClass.prototype.registerEvent):
        (InspectorBackendClass.prototype._invoke):
        (InspectorBackendClass.prototype._sendMessageToBackend):
        (InspectorBackendClass.prototype._wrapCallbackAndSendMessageObject):
        (InspectorBackendClass.prototype.sendMessageObjectToBackend):
        (InspectorBackendClass.prototype.registerDomainDispatcher):
        (InspectorBackendClass.prototype.dispatch.messageObject.error.__proto__.getDescription):
        (InspectorBackendClass.prototype.dispatch.messageObject.error.__proto__.toString):
        (InspectorBackendClass.prototype.dispatch.messageObject.error.__proto__.getMessage):
        (InspectorBackendClass.prototype.dispatch):
        (InspectorBackendClass.prototype.reportProtocolError):
        (InspectorBackendClass.prototype.runAfterPendingDispatches):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:

2011-12-01  Kentaro Hara  <haraken@chromium.org>

        Use the [Supplemental] IDL for webaudio attributes in Chromium
        https://bugs.webkit.org/show_bug.cgi?id=73394

        Reviewed by Adam Barth.

        - Overview: Using the [Supplemental] IDL, this patch moves the attribute
        declarations of webaudio from DOMWindow.idl into a new IDL file
        webaudio/DOMWindowWebAudio.idl, which helps make webaudio a self-contained
        feature (aka a module).

        - This patch changes the build flow of WebCore.gyp as follows:

            Previous build flow:
                foreach $idl (all IDL files) {
                    generate-bindings.pl depends on $idl;
                    generate-bindings.pl reads $idl;
                    generate-bindings.pl generates .h and .cpp files for $idl;
                }

            New build flow (See the discussions in bug 72138 for more details):
                resolve-supplemental.pl depends on all IDL files;
                resolve-supplemental.pl reads all IDL files;
                resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
                resolve-supplemental.pl outputs supplemental_dependency.tmp;
                foreach $idl (all IDL files) {
                    generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
                    generate-bindings.pl reads $idl;
                    generate-bindings.pl reads supplemental_dependency.tmp;
                    generate-bindings.pl generates .h and .cpp files for $idl, including all attributes in IDL files whilementing $idl;
                }

        - This patch introduces a temporary IDL, [Supplemented]. The [Supplemented] IDL
        will be removed after build scripts for all platforms support the [Supplemental] IDL.
        The motivation for the [Supplemented] IDL is as follows:

        In order to support the [Supplemental] IDL, we need to
        (1) run resolve-supplemental.pl and generate supplemental_dependency.tmp
        (2) and run generate-bindings.pl with the supplemental_dependency.tmp.

        This build flow requires a change on the following build scripts,
        but changing all the build scripts all at once without any regression is too difficult:

            - DerivedSources.make
            - DerivedSources.pri
            - GNUmakefile.am
            - PlatformBlackBerry.cmake
            - UseJSC.cmake
            - UseV8.cmake
            - WebCore.vcproj/MigrateScripts
            - WebCore.vcproj/WebCore.vcproj
            - bindings/gobject/GNUmakefile.am
            - WebCore.gyp/WebCore.gyp

        Thus, we are planning to change the build scripts one by one, which implies that
        we need to allow the temporary state in which some build scripts support [Supplemental] IDL
        but others do not. To accomplish this, we introduce a temporary IDL, [Supplemented].
        The [Supplemented] IDL on an attribute means that the attribute is marked with [Supplemental]
        in another IDL file somewhere, like this:

            DOMWindowWebAudio.idl:
                interface [
                    Supplemental=DOMWindow
                ] DOMWindowWebAudio {
                    attribute attr1;
                    attribute attr2;
                };

            DOMWindow.idl:
                interface [
                ] DOMWindow {
                    attribute [Supplemented] attr1; // This line will be removed after all build scripts support the [Su IDL
                    attribute [Supplemented] attr2; // This line will be removed after all build scripts support the [Su IDL.
                    attribute attr3;
                    attribute attr4;
                };

        Assuming these IDL files, this patch implements the following logic in generate-bindings.pl:

            - If a given build script supports the [Supplemental] IDL,
            generate-bindings.pl ignores all attributes with the [Supplemented] IDL.
            - Otherwise, generate-bindings.pl treats all attributes with the [Supplemented] IDL
            as normal attributes and instead ignores all attributes with the [Supplemental] IDL
            (i.e. generate-bindings.pl generates nothing from the IDL file with the [Supplemental] IDL).

        Tests: webaudio/*

        * WebCore.gyp/WebCore.gyp: Describes the build flow that I described above.
        * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
        (main): Reads the IDL file names from the input file (i.e. supplemental_dependency.tmp), which are described at the first column of each line in the input file.
        * WebCore.gypi: Added DOMWindowWebAudio.idl.
        * bindings/scripts/generate-bindings.pl: As a temporary solution, if the platform does not support the [Supplemental] IDL, the perl script ignores the [Supplemental] IDL and instead uses the [Supplemented] IDL. Otherwise, the perl script ignores the [Supplemented] IDL and instead uses the [Supplemental] IDL.
        * page/DOMWindow.idl: Added the [Supplemented] IDL to webaudio-related attributes. As I described above, the [Supplemented] IDL will be removed after all platforms support the [Supplemental] IDL.
        * webaudio/DOMWindowWebAudio.idl: Added. Describes the [Supplemental=DOMWindow] IDL. The attributes in this IDL file should be treated as if they are written in DOMWindow.idl.

2011-12-01  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>

        Upstream credential storage files of BlackBerry porting
        https://bugs.webkit.org/show_bug.cgi?id=73280

        Reviewed by Rob Buis.

        Added the basic structure of class CredentialBackingStore
        to persist the credential data, and generated
        platform/network/blackberry/CredentialStorageBlackBerry.cpp,
        to implement CredentialStorage::getFromPersistentStorage
        for BlackBerry porting.
        Contributed by Torch Team.

        * platform/network/blackberry/CredentialBackingStore.cpp: Added.
        (WebCore::CredentialBackingStore::instance):
        (WebCore::CredentialBackingStore::CredentialBackingStore):
        (WebCore::CredentialBackingStore::~CredentialBackingStore):
        (WebCore::CredentialBackingStore::open):
        (WebCore::CredentialBackingStore::close):
        (WebCore::CredentialBackingStore::addLogin):
        (WebCore::CredentialBackingStore::updateLogin):
        (WebCore::CredentialBackingStore::hasLogin):
        (WebCore::CredentialBackingStore::getLogin):
        (WebCore::CredentialBackingStore::removeLogin):
        (WebCore::CredentialBackingStore::clear):
        (WebCore::CredentialBackingStore::encryptedString):
        (WebCore::CredentialBackingStore::decryptedString):
        * platform/network/blackberry/CredentialBackingStore.h: Added.
        * platform/network/blackberry/CredentialStorageBlackBerry.cpp: Added.
        (WebCore::CredentialStorage::getFromPersistentStorage):

2011-11-30  Andreas Kling  <kling@webkit.org>

        StyledElement: Tidy up copyNonAttributeProperties().
        <http://webkit.org/b/73501>

        Reviewed by Antti Koivisto.

        * css/CSSStyleDeclaration.h:

            Made CSSStyleDeclaration non-copyable.

        * css/CSSMutableStyleDeclaration.h:
        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::copyPropertiesFrom):

            copyPropertiesAndStrictnessFrom() redone as copyPropertiesFrom()
            since we can copy the strictness bit using existing accessors.

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::copyNonAttributeProperties):

            Use copyPropertiesFrom() and copy the strictness bit to the new
            inline style using the dedicated accessors. Also added some
            assertions for good measure.

2011-12-01  Kentaro Hara  <haraken@chromium.org>

        run-bindings-tests is failing on Gtk/Qt/SnowLeopard/Lion bots
        https://bugs.webkit.org/show_bug.cgi?id=73558

        Reviewed by Csaba Osztrogonác.

        The cause of the bug:

        foreach my $idlFile (keys %documents) {
            $supplementals{$idlFile} = [];
            foreach my $dataNode (...) {
                if (...) {
                    ...;
                    push(@{$supplementals{$targetIdlFile}}, $idlFile);
                    ...;
                }
            }
        }

        Even if we did push(@{$supplementals{$targetIdlFile}}, $idlFile),
        the $supplementals{$targetIdlFile} can be re-initialized by
        $supplementals{$idlFile} = [] in subsequent loops.
        This patch fixes the bug.

        Tests: bindings/scripts/test/TestInterface.idl

        * bindings/scripts/resolve-supplemental.pl:

2011-12-01  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: restore WebKit2 Safari menu items after capabilities refactoring regression.
        https://bugs.webkit.org/show_bug.cgi?id=73554

        Reviewed by Yury Semikhatsky.

        * inspector/InspectorFrontendClientLocal.cpp:
        (WebCore::InspectorFrontendClientLocal::frontendLoaded):
        (WebCore::InspectorFrontendClientLocal::isDebuggingEnabled):
        (WebCore::InspectorFrontendClientLocal::setDebuggingEnabled):
        (WebCore::InspectorFrontendClientLocal::isTimelineProfilingEnabled):
        (WebCore::InspectorFrontendClientLocal::setTimelineProfilingEnabled):
        (WebCore::InspectorFrontendClientLocal::isProfilingJavaScript):
        (WebCore::InspectorFrontendClientLocal::startProfilingJavaScript):
        (WebCore::InspectorFrontendClientLocal::stopProfilingJavaScript):
        (WebCore::InspectorFrontendClientLocal::showConsole):
        (WebCore::InspectorFrontendClientLocal::evaluateOnLoad):
        * inspector/InspectorFrontendClientLocal.h:
        * inspector/front-end/InspectorFrontendAPI.js:
        (InspectorFrontendAPI._pendingCommands.isDebuggingEnabled):
        (InspectorFrontendAPI.setDebuggingEnabled):
        (InspectorFrontendAPI.isTimelineProfilingEnabled):
        (InspectorFrontendAPI.setTimelineProfilingEnabled):
        (InspectorFrontendAPI.isProfilingJavaScript):
        (InspectorFrontendAPI.startProfilingJavaScript):
        (InspectorFrontendAPI.stopProfilingJavaScript):
        (InspectorFrontendAPI.setAttachedWindow):
        (InspectorFrontendAPI.showConsole):
        (InspectorFrontendAPI.dispatch):
        (InspectorFrontendAPI.loadCompleted):
        * inspector/front-end/inspector.js:

2011-12-01  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: remove capabilities along with the MetaAgent
        https://bugs.webkit.org/show_bug.cgi?id=73550

        Reviewed by Yury Semikhatsky.

        We are now using explicit query commands in order to find out about the capabilities.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/CodeGeneratorInspector.py:
        (Generator.go):
        * inspector/Inspector.json:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorMetaAgent.cpp: Removed.
        * inspector/InspectorMetaAgent.h: Removed.
        * inspector/generate-protocol-externs:

2011-12-01  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: front-end should open with elements panel selected upon Inspect Element action.
        https://bugs.webkit.org/show_bug.cgi?id=73539

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/inspector.js:
        (WebInspector.doLoadedDone.showInitialPanel):
        (WebInspector.inspect):

2011-11-30  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: totalOffsetLeft and totalOffsetTop should take scroll into account.
        https://bugs.webkit.org/show_bug.cgi?id=73443

        Reviewed by Pavel Feldman.

        * inspector/front-end/TextPrompt.js:
        (WebInspector.TextPrompt.prototype._boxForAnchorAtStart):
        (WebInspector.TextPrompt.SuggestBox):
        * inspector/front-end/utilities.js:
        (Element.prototype.totalOffsetLeft):
        (Element.prototype.totalOffsetTop):
        (Element.prototype.boxInWindow):

2011-12-01  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: query backend for capabilities explicitly.
        https://bugs.webkit.org/show_bug.cgi?id=73442

        Reviewed by Yury Semikhatsky.

        This change removes the hardcoded Capabilities values in favor of
        explicit query commands issued against the backend. I'll remove the
        Meta agent in a subsequent change.

        * bindings/js/ScriptDebugServer.h:
        (WebCore::ScriptDebugServer::causesRecompilation):
        (WebCore::ScriptDebugServer::supportsNativeBreakpoints):
        * bindings/js/ScriptProfiler.h:
        (WebCore::ScriptProfiler::causesRecompilation):
        (WebCore::ScriptProfiler::isSampling):
        (WebCore::ScriptProfiler::hasHeapProfiler):
        * bindings/v8/ScriptDebugServer.h:
        (WebCore::ScriptDebugServer::causesRecompilation):
        (WebCore::ScriptDebugServer::supportsNativeBreakpoints):
        * bindings/v8/ScriptProfiler.h:
        (WebCore::ScriptProfiler::causesRecompilation):
        (WebCore::ScriptProfiler::isSampling):
        (WebCore::ScriptProfiler::hasHeapProfiler):
        * inspector/Inspector.json:
        * inspector/InspectorClient.h:
        (WebCore::InspectorClient::canClearBrowserCache):
        (WebCore::InspectorClient::canClearBrowserCookies):
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        (WebCore::InspectorController::connectFrontend):
        (WebCore::InspectorController::show):
        * inspector/InspectorController.h:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::causesRecompilation):
        (WebCore::InspectorDebuggerAgent::canSetScriptSource):
        (WebCore::InspectorDebuggerAgent::supportsNativeBreakpoints):
        * inspector/InspectorDebuggerAgent.h:
        * inspector/InspectorFrontendClientLocal.cpp:
        (WebCore::InspectorFrontendClientLocal::frontendLoaded):
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::causesRecompilation):
        (WebCore::InspectorProfilerAgent::isSampling):
        (WebCore::InspectorProfilerAgent::hasHeapProfiler):
        (WebCore::InspectorProfilerAgent::disable):
        (WebCore::InspectorProfilerAgent::enable):
        (WebCore::InspectorProfilerAgent::setFrontend):
        * inspector/InspectorProfilerAgent.h:
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::canClearBrowserCache):
        (WebCore::InspectorResourceAgent::canClearBrowserCookies):
        * inspector/InspectorResourceAgent.h:
        * inspector/front-end/DebuggerModel.js:
        (WebInspector.DebuggerModel):
        (WebInspector.DebuggerModel.prototype.enableDebugger):
        (WebInspector.DebuggerModel.prototype.canSetScriptSource):
        * inspector/front-end/NetworkItemView.js:
        (WebInspector.NetworkItemView):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.onCanClearBrowserCache):
        (WebInspector.NetworkLogView.onCanClearBrowserCookies):
        (WebInspector.NetworkLogView):
        (WebInspector.NetworkLogView.prototype._contextMenu):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress):
        * inspector/front-end/ScriptsPanel.js:
        * inspector/front-end/Settings.js:
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsScreen):
        * inspector/front-end/inspector.js:
        (WebInspector.get inspectedPageDomain):
        (WebInspector._initializeCapability):
        (WebInspector.doLoadedDone):

2011-11-28  Hans Wennborg  <hans@chromium.org>

        IndexedDB: Fix reverse cursor with non-existent upper bound
        https://bugs.webkit.org/show_bug.cgi?id=73220

        Reviewed by Tony Chang.

        The code previously did not properly handle the case where the
        specified upper bound for a reverse cursor did not exist.

        Test: storage/indexeddb/cursor-reverse-bug.html

        * storage/IDBLevelDBBackingStore.cpp:
        (WebCore::findGreatestKeyLessThanOrEqual):
        (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
        (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
        (WebCore::IDBLevelDBBackingStore::openIndexCursor):

2011-11-29  Hans Wennborg  <hans@chromium.org>

        IndexedDB: Cursor pre-fetching
        https://bugs.webkit.org/show_bug.cgi?id=73025

        Reviewed by Darin Fisher.

        No new tests. This doesn't change any semantics.
        Actual pre-fetching will not happen in DumpRenderTree.
        Chromium will request pre-fetching and have tests for it.

        * storage/IDBBackingStore.h:
        * storage/IDBCallbacks.h:
        * storage/IDBCursor.cpp:
        (WebCore::IDBCursor::continueFunction):
        (WebCore::IDBCursor::postSuccessHandlerCallback):
          Adds a callback that is called everytime the onsuccess handler has
          executed on a cursor. This allows the cursor to see if a new call
          to continue() was made in the onsuccess handler.
        * storage/IDBCursor.h:
        * storage/IDBCursorBackendImpl.cpp:
        (WebCore::IDBCursorBackendImpl::continueFunction):
        (WebCore::IDBCursorBackendImpl::prefetchContinue):
        (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
          This is the function that does actual pre-fetching. When called,
          it will attempt to step the cursor up to n steps and send the
          results back via the new onSuccessWithPrefetch() callback.
        (WebCore::IDBCursorBackendImpl::prefetchReset):
          This resets the cursor to the position it was at before the last
          prefetch call.
        * storage/IDBCursorBackendImpl.h:
        (WebCore::IDBCursorBackendImpl::postSuccessHandlerCallback):
        * storage/IDBCursorBackendInterface.h:
        * storage/IDBKey.h:
        (WebCore::IDBKey::createInvalid):
        (WebCore::IDBKey::createNumber):
        (WebCore::IDBKey::createString):
        (WebCore::IDBKey::createDate):
        (WebCore::IDBKey::createArray):
        (WebCore::IDBKey::sizeEstimate):
        * storage/IDBLevelDBBackingStore.cpp:
        (WebCore::CursorOptions::CursorImplCommon::CursorImplCommon):
        (WebCore::CursorOptions::ObjectStoreCursorImpl::clone):
        (WebCore::CursorOptions::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
        (WebCore::CursorOptions::IndexKeyCursorImpl::clone):
        (WebCore::CursorOptions::IndexKeyCursorImpl::IndexKeyCursorImpl):
        (WebCore::CursorOptions::IndexCursorImpl::clone):
        (WebCore::CursorOptions::IndexCursorImpl::IndexCursorImpl):
        * storage/IDBRequest.cpp:
        (WebCore::IDBRequest::dispatchEvent):
          Update dispatchEvent() to call the postSuccessHandlerCallback()
        * storage/IDBRequest.h:
        (WebCore::IDBRequest::onSuccessWithPrefetch):
        * storage/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::addPendingEvents):
          Allow for adding an arbitrary number of extra pending events.
          When a cursor pre-fetches n elements, the transaction should
          expect to see n extra onsuccess calls.
        * storage/IDBTransactionBackendImpl.h:
        * storage/IDBTransactionBackendInterface.h:

2011-12-01  Philippe Normand  <pnormand@igalia.com>

        [GTK] WebAudio wav resources access and management
        https://bugs.webkit.org/show_bug.cgi?id=73080

        Reviewed by Martin Robinson.

        For the uninstalled case we assume the user will set a
        AUDIO_RESOURCES_PATH environment variable pointing to
        WebCore/platform/audio/resources.

        * GNUmakefile.am: Install WAV resources.
        * platform/audio/gtk/AudioBusGtk.cpp:
        (WebCore::AudioBus::loadPlatformResource): Support for loading
        uninstalled resources.

2011-12-01  Florin Malita  <fmalita@google.com>

        SVG Gaussian blur in 1-dimension is incorrect
        https://bugs.webkit.org/show_bug.cgi?id=73029

        Reviewed by Simon Fraser.

        Ensure that the last blurBox result is stored when applying one-dimensional blurs.

        * platform/graphics/filters/FEGaussianBlur.cpp:
        (WebCore::FEGaussianBlur::platformApplyGeneric):

2011-12-01  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Elements Panel edit as html looks weird with an arrow inside edit box.
        https://bugs.webkit.org/show_bug.cgi?id=73462

        Reviewed by Pavel Feldman.

        * inspector/front-end/elementsPanel.css:
        (#elements-content .editing):
        (.elements-tree-editor):
        * inspector/front-end/inspector.css:

2011-12-01  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Styles] Exclamation mark hint ignores property case
        https://bugs.webkit.org/show_bug.cgi?id=73535

        Reviewed by Pavel Feldman.

        * inspector/front-end/StylesSidebarPane.js:

2011-12-01  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: fix dedicated workers inspection (undefined is not an object).
        https://bugs.webkit.org/show_bug.cgi?id=73537

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.ResourceTreeModel.prototype.resourceForURL):
        * inspector/front-end/WorkerManager.js:
        (WebInspector.WorkerManager.loadCompleted):

2011-12-01  Kentaro Hara  <haraken@chromium.org>

        [JSC] When XXXX has a NamedConstructor, window.XXXX should be XXXXConstructor
        https://bugs.webkit.org/show_bug.cgi?id=73521

        Reviewed by Adam Barth.

        This is a regression caused by a patch of bug 73307.
        If we replaced a custom constructor of window.XXXX (e.g. XXXX is Audio or Option)
        with the [NamedConstructor] IDL, fast/js/global-constructors.html,
        fast/dom/Window/window-properties.html and fast/dom/call-a-constructor-as-a-function.html
        start to fail in JSC.

        Before a patch of bug 73007: (correct behavior)
            window.Audio => AudioConstructor
            window.Option => OptionConstructor
            window.HTMLAudioElement => HTMLAudioElementConstructor
            window.HTMLOptionElement => HTMLOptionElementConstructor

        After a patch of bug 73007: (wrong behavior)
            window.Audio => HTMLAudioElementConstructor
            window.Option => HTMLOptionElementConstructor
            window.HTMLAudioElement => HTMLAudioElementConstructor
            window.HTMLOptionElement => HTMLOptionElementConstructor

        This patch fixes the above behavior.

        Tests: bindings/scripts/test/TestNamedConstructor.idl

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * bindings/scripts/IDLParser.pm:
        (parseExtendedAttributes):
        (ParseInterface):
        * bindings/scripts/test/TestNamedConstructor.idl: The test IDL was wrong. NamedConstructor=XXXX(arguments) is a correct format.
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: Updated a run-bindings-tests result.

2011-11-30  David Grogan  <dgrogan@chromium.org>

        Move data in IDBPendingTransactionMonitor from static to
        ThreadSpecific.
        https://bugs.webkit.org/show_bug.cgi?id=73389

        IDBPendingTransactionMonitor previously stored transactions in
        a static member variable so that they could be aborted if they were
        had no work queued up when leaving script execution.  That was fine when
        IndexedDB could only be used on the main thread, but is insufficient
        for IndexedDB on workers.  In addition to not being thread-safe, this
        caused pending transactions that were created from a worker thread to
        abort when the main thread left script execution.

        Reviewed by David Levin.

        No new tests - IndexedDB worker tests forthcoming.

        * storage/IDBPendingTransactionMonitor.cpp:
        (WebCore::transactions):  Create the TLS.  The other methods used to
        manage the container's memory lifetime but now we just leak it until
        the thread shuts down in the interest of simpler code.
        (WebCore::IDBPendingTransactionMonitor::addPendingTransaction):
        (WebCore::IDBPendingTransactionMonitor::removePendingTransaction):
        (WebCore::IDBPendingTransactionMonitor::abortPendingTransactions):

        * storage/IDBPendingTransactionMonitor.h:

2011-11-30  Leo Yang  <leo.yang@torchmobile.com.cn>

        Upstream platform/network/blackberry/NetworkStateNotifierBlackBerry.cpp
        https://bugs.webkit.org/show_bug.cgi?id=73522

        Reviewed by Daniel Bates.

        Initial upstream, can't be built yet, no new tests.

        * platform/network/blackberry/NetworkStateNotifierBlackBerry.cpp: Added.
        (WebCore::NetworkStateNotifier::NetworkStateNotifier):
        (WebCore::NetworkStateNotifier::networkStateChange):

2011-11-30  David Reveman  <reveman@chromium.org>

        [Chromium] Improve tile invalidation
        https://bugs.webkit.org/show_bug.cgi?id=71872

        Reviewed by James Robinson.

        Virtualize LayerChromium::setNeedsDisplay so that dirty rectangles can
        be handled directly by the TiledLayerChromium class. Replace
        LayerChromium::dirtyRect() with LayerChromium::needsDisplay() and
        remove unnecessary union of dirty rectangles. By invalidating existing
        tiles using the initial dirty rectangles instead of their union we
        avoid a large amount of unnecessary tile updates.

        Update LayerChromiumTest.

        * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
        (WebCore::Canvas2DLayerChromium::updateCompositorResources):
        * platform/graphics/chromium/ContentLayerChromium.cpp:
        (WebCore::ContentLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
        * platform/graphics/chromium/ImageLayerChromium.cpp:
        (WebCore::ImageLayerChromium::setContents):
        (WebCore::ImageLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::LayerChromium):
        (WebCore::LayerChromium::setBounds):
        (WebCore::LayerChromium::setNeedsDisplayRect):
        * platform/graphics/chromium/LayerChromium.h:
        (WebCore::LayerChromium::setNeedsDisplay):
        (WebCore::LayerChromium::needsDisplay):
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::setNeedsDisplayRect):
        (WebCore::TiledLayerChromium::invalidateRect):
        * platform/graphics/chromium/TiledLayerChromium.h:
        * platform/graphics/chromium/VideoLayerChromium.cpp:
        (WebCore::VideoLayerChromium::updateCompositorResources):
        * platform/graphics/chromium/WebGLLayerChromium.cpp:
        (WebCore::WebGLLayerChromium::updateCompositorResources):

2011-11-30  Alexey Proskuryakov  <ap@apple.com>

        SocketStreamHandleCFNet doesn't check for proxy errors
        https://bugs.webkit.org/show_bug.cgi?id=71965

        Reviewed by Darin Adler.

        * platform/network/cf/SocketStreamHandleCFNet.cpp:
        (WebCore::getStoredCONNECTProxyCredentials): Added a FIXME about retrieving proxy credentials.
        (WebCore::SocketStreamHandle::addCONNECTCredentials): Added human readable messages to errors,
        they go to Web Inspector console.
        (WebCore::SocketStreamHandle::readStreamCallback): Handle proxy response codes other than 200
        and 407 by failing cleanly.

2011-11-30  Jeremy Apthorp  <jeremya@google.com>

        When the mouse is dragged out of an :active element, it should lose :hover.
        https://bugs.webkit.org/show_bug.cgi?id=57206

        Reviewed by Ryosuke Niwa.

        Test: fast/css/hover-active-drag.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMouseMoveEvent): Don't mark mouse-drag hit tests read-only, since they no longer are.
        (WebCore::EventHandler::dragSourceEndedAt): Send a hit test request when the mouse goes up after a drag, so
        RenderLayer has a chance to update the hover/active status.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateHoverActiveState): Only allow the :active state to change on mouse down or mouse up.

2011-11-30  Hans Muller  <hmuller@adobe.com>

        XHR 'progress' event code assumes wrongly that expectedLength >= 0
        https://bugs.webkit.org/show_bug.cgi?id=36156

        Reviewed by Alexey Proskuryakov

        Avoid passing a negative value as the dispatchProgressEvent's total parameter and always use 0 when lengthComputable is false.

        Test: http/tests/xmlhttprequest/chunked-progress-event-expectedLength.html

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::didReceiveData):

2011-11-30  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed. Fix build error when NOTIFICATIONS feature is enabled.

        * CMakeLists.txt:

2011-11-30  Noel Gordon  <noel.gordon@gmail.com>

        Remove ImageFrame::setSize() style nits
        https://bugs.webkit.org/show_bug.cgi?id=73490

        Reviewed by Andreas Kling.

        Equality comparisons to 0 should be performed with the not operator, write
        width() == 0 && height() == 0 as !width() && !height().

        No new tests, style refactor.

        * platform/image-decoders/qt/ImageFrameQt.cpp:
        (WebCore::ImageFrame::setSize):
        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
        (WebCore::ImageFrame::setSize):

2011-11-30  Alexey Proskuryakov  <ap@apple.com>

        Remove an unneeded argument from FrameLoaderClient::download
        https://bugs.webkit.org/show_bug.cgi?id=73486

        Reviewed by Andreas Kling.

        No change in functionality.

        * loader/FrameLoaderClient.h: Removed initialRequest argument.

        * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::continueAfterContentPolicy):
        We're already passing ResourceHandle, why also pass its data member?

        * loader/EmptyClients.h: (WebCore::EmptyFrameLoaderClient::download): Updated for the change.

2011-11-30  Alexey Proskuryakov  <ap@apple.com>

        Original page URL is not set in quarantine information when downloading using context menu Save Linked File
        https://bugs.webkit.org/show_bug.cgi?id=73475
        <rdar://problem/10500337>

        Reviewed by Dan Bernstein.

        * WebCore.exp.in: Exported FrameLoader::setOriginalURLForDownloadRequest.

2011-11-30  Mark Pilgrim  <pilgrim@chromium.org>

        [FileSystem API] DirectoryEntry.getFile path argument is required
        https://bugs.webkit.org/show_bug.cgi?id=69642

        Reviewed by Adam Barth.

        Test: fast/filesystem/simple-required-arguments-getfile.html

        * bindings/js/JSDirectoryEntryCustom.cpp:
        (WebCore::JSDirectoryEntry::getFile): check args length and throw TypeError if not enough arguments
        * bindings/v8/custom/V8DirectoryEntryCustom.cpp:
        (WebCore::V8DirectoryEntry::getFileCallback): check args length and throw TypeError if not enough arguments

2011-11-30  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Implement IDBIndex multientry feature
        https://bugs.webkit.org/show_bug.cgi?id=73232

        Reviewed by Tony Chang.

        The multientry flag is used when populating indexes, either when the index
        is created on an existing store or as new values are added to the store.
        Per the spec the semantics are: if the flag is set and the index key is
        calculated to be an array, each member of the array is used as an index key
        instead.

        Test: storage/indexeddb/index-multientry.html

        * storage/IDBBackingStore.h:
        * storage/IDBIndex.h:
        (WebCore::IDBIndex::multientry):
        * storage/IDBIndex.idl:
        * storage/IDBIndexBackendImpl.cpp:
        (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
        * storage/IDBIndexBackendImpl.h:
        (WebCore::IDBIndexBackendImpl::create):
        (WebCore::IDBIndexBackendImpl::multientry):
        * storage/IDBIndexBackendInterface.h:
        * storage/IDBLevelDBBackingStore.cpp:
        (WebCore::checkIndexAndMetaDataKey):
        (WebCore::IDBLevelDBBackingStore::getIndexes):
        (WebCore::IDBLevelDBBackingStore::createIndex):
        * storage/IDBLevelDBBackingStore.h:
        * storage/IDBLevelDBCoding.cpp:
        * storage/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::createIndex):
        * storage/IDBObjectStoreBackendImpl.cpp:
        (WebCore::IDBObjectStoreBackendImpl::putInternal):
        (WebCore::IDBObjectStoreBackendImpl::populateIndex):
        (WebCore::IDBObjectStoreBackendImpl::createIndex):
        (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
        (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
        * storage/IDBObjectStoreBackendImpl.h:
        * storage/IDBObjectStoreBackendInterface.h:

2011-11-30  David Reveman  <reveman@chromium.org>

        [Chromium] Add support for painting into an SkPicture and then rasterizing into tile-sized chunks.
        https://bugs.webkit.org/show_bug.cgi?id=71388

        Reviewed by James Robinson.

        Add UpdatableTexture class, which allows texture updater to
        allocate tile specific resources and paint tiles separately.
        Rename texture uploader classes and move them to separate files.

        No new tests. Covered by existing tests.

        * WebCore.gypi:
        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp: Added.
        (WebCore::BitmapCanvasLayerTextureUpdater::Texture::Texture):
        (WebCore::BitmapCanvasLayerTextureUpdater::Texture::~Texture):
        (WebCore::BitmapCanvasLayerTextureUpdater::Texture::updateRect):
        (WebCore::BitmapCanvasLayerTextureUpdater::create):
        (WebCore::BitmapCanvasLayerTextureUpdater::BitmapCanvasLayerTextureUpdater):
        (WebCore::BitmapCanvasLayerTextureUpdater::~BitmapCanvasLayerTextureUpdater):
        (WebCore::BitmapCanvasLayerTextureUpdater::createTexture):
        (WebCore::BitmapCanvasLayerTextureUpdater::sampledTexelFormat):
        (WebCore::BitmapCanvasLayerTextureUpdater::prepareToUpdate):
        (WebCore::BitmapCanvasLayerTextureUpdater::updateTextureRect):
        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h: Copied from Source/WebCore/platform/graphics/chromium/LayerTextureUpdater.h.
        (WebCore::BitmapCanvasLayerTextureUpdater::Texture::textureUpdater):
        (WebCore::BitmapCanvasLayerTextureUpdater::orientation):
        * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp: Copied from Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdater.h.
        (WebCore::CanvasLayerTextureUpdater::CanvasLayerTextureUpdater):
        (WebCore::CanvasLayerTextureUpdater::~CanvasLayerTextureUpdater):
        (WebCore::CanvasLayerTextureUpdater::paintContents):
        * platform/graphics/chromium/CanvasLayerTextureUpdater.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdater.h.
        (WebCore::CanvasLayerTextureUpdater::contentRect):
        * platform/graphics/chromium/ContentLayerChromium.cpp:
        (WebCore::ContentLayerChromium::createTextureUpdater):
        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp: Added.
        (WebCore::FrameBuffer::FrameBuffer::FrameBuffer):
        (WebCore::FrameBuffer::FrameBuffer::~FrameBuffer):
        (WebCore::FrameBuffer::FrameBuffer::initialize):
        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::Texture):
        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::~Texture):
        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::updateRect):
        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::create):
        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::FrameBufferSkPictureCanvasLayerTextureUpdater):
        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::~FrameBufferSkPictureCanvasLayerTextureUpdater):
        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::createTexture):
        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::sampledTexelFormat):
        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h: Copied from Source/WebCore/platform/graphics/chromium/LayerTextureUpdater.h.
        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::Texture::textureUpdater):
        (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::orientation):
        * platform/graphics/chromium/ImageLayerChromium.cpp:
        (WebCore::ImageLayerTextureUpdater::Texture::Texture):
        (WebCore::ImageLayerTextureUpdater::Texture::updateRect):
        (WebCore::ImageLayerTextureUpdater::Texture::textureUpdater):
        (WebCore::ImageLayerTextureUpdater::createTexture):
        * platform/graphics/chromium/LayerRendererChromium.cpp:
        * platform/graphics/chromium/LayerTextureUpdater.h:
        (WebCore::LayerTextureUpdater::Texture::~Texture):
        (WebCore::LayerTextureUpdater::Texture::texture):
        (WebCore::LayerTextureUpdater::Texture::prepareRect):
        (WebCore::LayerTextureUpdater::Texture::Texture):
        (WebCore::LayerTextureUpdater::prepareToUpdate):
        * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp: Removed.
        * platform/graphics/chromium/LayerTextureUpdaterCanvas.h: Removed.
        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp: Copied from Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdater.h.
        (WebCore::SkPictureCanvasLayerTextureUpdater::SkPictureCanvasLayerTextureUpdater):
        (WebCore::SkPictureCanvasLayerTextureUpdater::~SkPictureCanvasLayerTextureUpdater):
        (WebCore::SkPictureCanvasLayerTextureUpdater::prepareToUpdate):
        (WebCore::SkPictureCanvasLayerTextureUpdater::drawPicture):
        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCTextureUpdater.h.
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::UpdatableTile::UpdatableTile):
        (WebCore::UpdatableTile::texture):
        (WebCore::UpdatableTile::managedTexture):
        (WebCore::TiledLayerChromium::updateCompositorResources):
        (WebCore::TiledLayerChromium::pushPropertiesTo):
        (WebCore::TiledLayerChromium::createTile):
        (WebCore::TiledLayerChromium::protectTileTextures):
        (WebCore::TiledLayerChromium::prepareToUpdate):
        * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
        (WebCore::CCTextureUpdater::append):
        (WebCore::CCTextureUpdater::update):
        * platform/graphics/chromium/cc/CCTextureUpdater.h:

2011-11-30  Rafael Weinstein  <rafaelw@chromium.org>

        [MutationObservers] Make WebKitMutationObserver::deliverAllMutations() tolerant of re-entrant calls
        https://bugs.webkit.org/show_bug.cgi?id=73472

        Reviewed by Ojan Vafai.

        No new tests. This patch just adds a static guard which makes more explicit the current semantics.

        * dom/WebKitMutationObserver.cpp:
        (WebCore::WebKitMutationObserver::deliverAllMutations):

2011-11-30  Takashi Toyoshima  <toyoshim@chromium.org>

        Add OVERRIDE to WebSocket related sources for safe inheritances.
        https://bugs.webkit.org/show_bug.cgi?id=73308

        Reviewed by Kent Tamura.

        No new tests because this change contains no functional change.

        * platform/network/chromium/SocketStreamHandle.h:
        * websockets/CloseEvent.h:
        * websockets/WebSocket.h:
        * websockets/WebSocketChannel.h:
        * websockets/WorkerThreadableWebSocketChannel.h:

2011-11-30  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]Rename CSSRegionStyleRule to WebKitCSSRegionRule
        https://bugs.webkit.org/show_bug.cgi?id=73450

        Reviewed by Andreas Kling.

        No functionality changed so no new tests. The new name has the webkit prefix as required for new api.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::createRegionStylingRule):
        * css/CSSRule.cpp:
        (WebCore::CSSRule::cssText):
        (WebCore::CSSRule::destroy):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::addRegionStyleRule):
        (WebCore::CSSStyleSelector::checkRegionStyle):
        (WebCore::RuleSet::addRulesFromSheet):
        * css/CSSStyleSelector.h:
        * css/WebKitCSSRegionRule.cpp: Renamed from Source/WebCore/css/CSSRegionStyleRule.cpp.
        (WebCore::WebKitCSSRegionRule::WebKitCSSRegionRule):
        (WebCore::WebKitCSSRegionRule::~WebKitCSSRegionRule):
        (WebCore::WebKitCSSRegionRule::cssText):
        * css/WebKitCSSRegionRule.h: Renamed from Source/WebCore/css/CSSRegionStyleRule.h.

2011-11-30  Jeff Timanus  <twiz@chromium.org>

        Alter an early return that was preventing HTMLCanvasElement::didDraw notifications
        from being triggered when accelerated compositing was enabled. The notification is
        necessary to make sure that any cached state is cleared in the HTMLCanvasElement object.
        To prevent performance regressions, the cached state is explicitly cleared, as the didDraw
        machinery is not necessary for accelerated canvases.
        https://bugs.webkit.org/show_bug.cgi?id=73257

        Reviewed by Stephen White.

        Test: fast/canvas/webgl/canvas-2d-webgl-texture.html

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::didDraw):
        (WebCore::HTMLCanvasElement::setSurfaceSize):
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::didDraw):

2011-11-30  Kentaro Hara  <haraken@chromium.org>

        Implement the StorageEvent constructor
        https://bugs.webkit.org/show_bug.cgi?id=71685

        Reviewed by Adam Barth.

        This patch makes StorageEvent constractable.
        The spec: http://www.whatwg.org/specs/web-apps/current-work/#storageevent

        Test: fast/events/constructors/storage-event-constructor.html

        * bindings/js/JSDictionary.cpp:
        (WebCore::JSDictionary::tryGetProperty):
        (WebCore::JSDictionary::convertValue): Returns a Storage object corresponding to a given key.
        * bindings/js/JSDictionary.h:
        (WebCore::JSDictionary::tryGetProperty):
        * bindings/v8/OptionsObject.cpp:
        (WebCore::OptionsObject::get): Ditto.
        * bindings/v8/OptionsObject.h:
        * storage/StorageEvent.cpp: Added an implementation of the StorageEvent constructor.
        (WebCore::StorageEventInit::StorageEventInit):
        (WebCore::StorageEvent::create):
        (WebCore::StorageEvent::StorageEvent):
        * storage/StorageEvent.h: Added a definition of StorageEventInit.
        (WebCore::StorageEvent::key):
        (WebCore::StorageEvent::oldValue):
        (WebCore::StorageEvent::newValue):
        (WebCore::StorageEvent::url):
        (WebCore::StorageEvent::storageArea):
        * storage/StorageEvent.idl: Added [ConstructorTemplate=Event] IDL.

2011-11-30  Naveen Bobbili  <qghc36@motorola.com>

        window.getMatchedCSSRules() not supporting pseudo element
        https://bugs.webkit.org/show_bug.cgi?id=72930

        Reviewed by Darin Adler.

        Added functionality to retrieve CSS rules of psuedo elements using
        getMatchedCSSRules.

        Test: fast/dom/Window/getMatchedCSSRules-with-pseudo-elements.html

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::getMatchedCSSRules):
        Retreiving CSS Rules of the appropriate pseudo element.

2011-11-30  Grace Kloba  <klobag@chromium.org>

        [chromium] TextureManager LRU list is not fully honor the order tiles are used
        https://bugs.webkit.org/show_bug.cgi?id=73344

        Reviewed by James Robinson.

        Reorder the texture in the LRU list only when protectTexture() is called.

        * platform/graphics/chromium/TextureManager.cpp:
        (WebCore::TextureManager::hasTexture):
        (WebCore::TextureManager::protectTexture):

2011-11-30  Ken Buchanan <kenrb@chromium.org>

        Crash from first letter text fragments having flows split
        https://bugs.webkit.org/show_bug.cgi?id=72759

        Reviewed by David Hyatt.

        When an inline flow is split that contains a first letter block
        and its remaining text, it can prevent the remaining text fragment
        from getting updated if the first letter block is replaced. This
        patch enables the text fragment to be found and updated properly.

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

2011-11-30  Takashi Toyoshima  <toyoshim@chromium.org>

        Get rid of AllowCrossThreadAccess throughout ThreadableWebSocketChannelClientWrapper.
        https://bugs.webkit.org/show_bug.cgi?id=73336

        Reviewed by David Levin.

        No new tests because it contains no functional change.

        * websockets/ThreadableWebSocketChannelClientWrapper.cpp:
        (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didConnectCallback):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageCallback):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryDataCallback):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmountCallback):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshakeCallback):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didCloseCallback):
        * websockets/ThreadableWebSocketChannelClientWrapper.h:

2011-11-30  Leo Yang  <leo.yang@torchmobile.com.cn>

        [BlackBerry] Add 2 cpp files to the BlackBerry build system
        https://bugs.webkit.org/show_bug.cgi?id=73408

        platform/network/blackberry/DeferredData.cpp and platform/network/blackberry/NetworkJob.cpp
        will be added, change build system first.

        Reviewed by Antonio Gomes.

        * PlatformBlackBerry.cmake:

2011-11-30  Gregg Tavares  <gman@google.com>

        Implement draft WEBGL_compressed_textures WebGL extension
        https://bugs.webkit.org/show_bug.cgi?id=72086

        Reviewed by Kenneth Russell.

        No new tests. Will write final test once on hardware.

        * CMakeLists.txt:
        * DerivedSources.make:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::toJS):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::toV8Object):
        * html/canvas/WebGLCompressedTextures.cpp: Added.
        (WebCore::WebGLCompressedTextures::WebGLCompressedTextures):
        (WebCore::WebGLCompressedTextures::~WebGLCompressedTextures):
        (WebCore::WebGLCompressedTextures::getName):
        (WebCore::WebGLCompressedTextures::create):
        (WebCore::WebGLCompressedTextures::supported):
        (WebCore::WebGLCompressedTextures::validateCompressedTexFormat):
        (WebCore::WebGLCompressedTextures::validateCompressedTexFuncData):
        (WebCore::WebGLCompressedTextures::validateCompressedTexSubDimensions):
        (WebCore::WebGLCompressedTextures::compressedTexImage2D):
        (WebCore::WebGLCompressedTextures::compressedTexSubImage2D):
        (WebCore::WebGLCompressedTextures::getCompressedTextureFormats):
        * html/canvas/WebGLCompressedTextures.h: Added.
        * html/canvas/WebGLCompressedTextures.idl: Added.
        * html/canvas/WebGLExtension.h:
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::getExtension):
        (WebCore::WebGLRenderingContext::getParameter):
        (WebCore::WebGLRenderingContext::getSupportedExtensions):
        * html/canvas/WebGLRenderingContext.h:
        * platform/graphics/Extensions3D.h:
        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::compressedTexImage2D):
        (WebCore::GraphicsContext3D::compressedTexSubImage2D):
        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
        (WebCore::GraphicsContext3D::compressedTexImage2D):
        (WebCore::GraphicsContext3D::compressedTexSubImage2D):
        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3D::compressedTexImage2D):
        (WebCore::GraphicsContext3D::compressedTexSubImage2D):

2011-11-18  Nat Duca  <nduca@chromium.org>

        [chromium] Enable threaded compositing via CCThreadProxy::hasThread only
        https://bugs.webkit.org/show_bug.cgi?id=70838

        Reviewed by James Robinson.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::initialize):
        * platform/graphics/chromium/WebGLLayerChromium.cpp:
        (WebCore::WebGLLayerChromium::layerRendererContext):
        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
        (WebCore::CCHeadsUpDisplay::enabled):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::initialize):
        (WebCore::CCLayerTreeHost::context):
        (WebCore::CCLayerTreeHost::setNeedsAnimate):
        (WebCore::CCLayerTreeHost::setNeedsCommit):
        (WebCore::CCLayerTreeHost::setNeedsRedraw):
        (WebCore::CCLayerTreeHost::composite):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):
        * platform/graphics/chromium/cc/CCProxy.cpp:
        (WebCore::CCProxy::isMainThread):
        (WebCore::CCProxy::isImplThread):
        (WebCore::CCProxy::setMainThreadIsImplThread):
        * platform/graphics/chromium/cc/CCProxy.h:
        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
        (WebCore::DebugScopedSetImplThread::DebugScopedSetImplThread):
        (WebCore::DebugScopedSetImplThread::~DebugScopedSetImplThread):

2011-11-30  Enrica Casucci  <enrica@apple.com>

        Copy/paste of the same content produces increasingly nested markup
        https://bugs.webkit.org/show_bug.cgi?id=73497
        <rdar://problem/10208605>
        
        When pasting a fragment over a selection, we perfom a DeleteSelection command
        followed by a ReplaceSelection command. Delete selection preserves the style
        of the selection start, leaving all the blocks containing the insertion point.
        This patch eliminates all the nested divs that don't provide additional style,
        avoiding the proliferation of nested divs. 

        Reviewed by Darin Adler.

        Tests: editing/deleting/delete-and-cleanup.html
               editing/pasteboard/paste-without-nesting.html

        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::removeRedundantBlocks):
        (WebCore::DeleteSelectionCommand::doApply):
        * editing/DeleteSelectionCommand.h:

2011-11-30  Dan Bernstein  <mitz@apple.com>

        WebCore part of: Allow the length of a page along the pagination axis to differ from the length of the view
        https://bugs.webkit.org/show_bug.cgi?id=73476

        Reviewed by Anders Carlsson.

        * page/Page.cpp:
        (WebCore::Page::setPagination): Changed to use Pagination::operator==.
        * page/Page.h:
        (WebCore::Page::Pagination::Pagination): Added initializer for the new pageLength member variable.
        (WebCore::Page::Pagination::operator==): Added.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::layoutColumns): Narrowed the scope of a local variable.
        * rendering/RenderBlock.h: Promoted setDesiredColumnCountAndWidth() from private to protected,
        allowing its use from RenderView::calcColumnWidth(). Made calcColumnWidth() virtual.
        * rendering/RenderView.cpp:
        (WebCore::RenderView::calcColumnWidth): Added. Uses the page length specified in the pagination
        parameters to set the column width, if pages are to be laid out one next to the other.
        (WebCore::RenderView::viewLogicalHeight): Added. Uses the page length specified in the pagination
        parameters as the height, if pages are to be laid out one after the other.
        * rendering/RenderView.h:

2011-11-30  Chris Fleizach  <cfleizach@apple.com>

        AX: Nodes are reporting that focus can be set when they really can't
        https://bugs.webkit.org/show_bug.cgi?id=72791

        Reviewed by Beth Dakin.

        Whether focus can be set on a node shouldn't rely only on the role.
        It should depend on whether the node supports focus.

        Test: platform/mac/accessibility/supports-focus-setting.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::canSetFocusAttribute):

2011-11-30  Chris Fleizach  <cfleizach@apple.com>

        WebKit does not send mouse down/up/click events to ARIA tabs
        https://bugs.webkit.org/show_bug.cgi?id=72573

        Reviewed by Darin Adler.

        There are a number of "control" type elements that should perform a click on the actual element.

        Test: accessibility/press-works-on-control-types.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::actionElement):

2011-11-30  Chris Fleizach  <cfleizach@apple.com>

        AX: Searching mechanism is too slow when finding the element.
        https://bugs.webkit.org/show_bug.cgi?id=72523

        Reviewed by Beth Dakin.

        This makes the element searching mechanism much faster. Previously, searching literally went 
        through every element, looking for the start element before "starting" the search.

        Now we only go through the elements that need to be searched. This is done by going up the 
        start object parent chain. At each level, a DFS is done. As we go up the parent chain, 
        only the elements before/after the current element are examined.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::appendChildrenToArray):
        (WebCore::AccessibilityObject::findMatchingObjects):

2011-11-30  Ryosuke Niwa  <rniwa@webkit.org>

        Cannot select RTL text inside LTR text from right to left by a mouse drag
        https://bugs.webkit.org/show_bug.cgi?id=73056

        Reviewed by Eric Seidel.

        The bug was caused by positionAtRightBoundaryOfBiDiRun using current inline box's offset
        even when creating a position with previous inline box. Fixed the bug by using the correct offset.

        * editing/RenderedPosition.cpp:
        (WebCore::RenderedPosition::positionAtLeftBoundaryOfBiDiRun):
        (WebCore::RenderedPosition::positionAtRightBoundaryOfBiDiRun):

2011-11-30 Chris Fleizach  <cfleizach@apple.com>

        AX: Searching mechanism gets stuck when searching tables
        https://bugs.webkit.org/show_bug.cgi?id=72519

        When searching through the elements within a data table, the children() method should not
        be used, since that contains elements (like a table header column) which have the same children
        as the table itself. Instead the cells() should be searched.

        Reviewed by Beth Dakin.

        Test: platform/mac/accessibility/search-when-element-starts-in-table.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::findMatchingObjects):

2011-11-29  Ryosuke Niwa  <rniwa@webkit.org>

        Assertion failure (m_nestedIsolateCount >= 1) in BidiResolver::exitIsolate()
        https://bugs.webkit.org/show_bug.cgi?id=69267

        Reviewed by Eric Seidel.

        The failure was caused by our updating bidi resolver's current position in layoutRunsAndFloatsInRange
        without updating the number of nested isolated ancestors. Fixed the bug by computing the number of
        isolated ancestors when setting a new position to the bidi resolver.

        Also renamed the existing BidiResolver::setPosition to setPositionIgnoringNestedIsolates because this
        version can be used only when we don't have to update the number of nested isolates.

        Tests: fast/text/bidi-isolate-hang-with-neutral-expected.html
               fast/text/bidi-isolate-hang-with-neutral.html
               fast/text/bidi-isolate-nextlinebreak-failure.html

        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawBidiText):
        * platform/text/BidiResolver.h:
        (WebCore::BidiResolver::setPositionIgnoringNestedIsolates):
        (WebCore::BidiResolver::setPosition):
        * rendering/InlineIterator.h:
        (WebCore::numberOfIsolateAncestors): Takes InlineIterator instead of object and root.
        (WebCore::InlineBidiResolver::appendRun):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::constructBidiRuns):
        (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
        (WebCore::RenderBlock::determineStartPosition):

2011-11-30  Brent Fulgham  <bfulgham@webkit.org>

        [WinCairo] Correct SimpleFontData implementation to match Apple results.
        https://bugs.webkit.org/show_bug.cgi?id=73474

        Reviewed by Adam Roben.

        Tested by existing dom/xhtml/level3/core/nodegetbaseuri05.xhtml
        and dom/xhtml/level3/core/nodegetbaseuri07.xhtml

        * platform/graphics/SimpleFontData.h: Add declaration for new
          'ascentConsideringMacAscentHack' method.
        * platform/graphics/win/SimpleFontDataCGWin.cpp: Remove implementation
          of 'platformCharWidthInit' (moved to SimpleFontDataWin.cpp). Also
          use new 'ascentConsideringMacAscentHack' method.
        * platform/graphics/win/SimpleFontDataCairoWin.cpp: Remove dummy
          implementation.
        (WebCore::SimpleFontData::platformInit): Add logic to handle the
          'shouldApplyMacAscentHack' case, as well as to identify system font
          using the same criteria as the Apple port.
        (WebCore::SimpleFontData::platformWidthForGlyph): Add check for
          missing font data state.
        * platform/graphics/win/SimpleFontDataWin.cpp:
        (WebCore::SimpleFontData::ascentConsideringMacAscentHack): New
        (WebCore::SimpleFontData::platformCharWidthInit): Moved from the
          CG implementation.

2011-11-30  David Levin  <levin@chromium.org>

        Make FrameView use TemporarilyChange in a few places.
        https://bugs.webkit.org/show_bug.cgi?id=73403

        Reviewed by Dmitry Titov.

        No new functionality exposed so no new tests.

        * page/FrameView.cpp:
        (WebCore::FrameView::forceLayoutParentViewIfNeeded): Since this function isn't
        re-entrant, TemporarilyChange does the same thing but in a more robust manner
        in case there would be a return added in the function.
        (WebCore::FrameView::layout): This place is the key reason for the change.
        layout is re-entrant, but layout will set m_layoutSchedulingEnabled to true when
        leaving though the "layout" function higher in the stack would still have it set
        to false (which works ok but is hit by another change I'm working on).
        The majority of the change is due to indenting the code to make m_layoutSchedulingEnabled
        and TemporarilyChange behave like they did before. A few variables were moved before
        the scoping to allow them to be used after the scope is closed.
        (WebCore::FrameView::setScrollPosition): TemporarilyChange does exactly what
        this code did before (saving the old value and restoring it).

2011-11-30  Alejandro G. Castro  <alex@igalia.com>

        [GTK] Add TextureMapperCairo boilerplate implementation
        https://bugs.webkit.org/show_bug.cgi?id=73440

        Add TextureMapperCairo class and TextureMapper classes compilation
        for GTK+.

        Reviewed by Martin Robinson.

        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/GraphicsLayer.cpp:
        * platform/graphics/GraphicsLayer.h:
        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
        (WebCore::GraphicsContext3D::platformLayer):
        * platform/graphics/cairo/TextureMapperCairo.cpp: Added.
        (WebCore::BitmapTextureCairo::destroy):
        (WebCore::BitmapTextureCairo::size):
        (WebCore::BitmapTextureCairo::reset):
        (WebCore::BitmapTextureCairo::beginPaint):
        (WebCore::BitmapTextureCairo::endPaint):
        (WebCore::BitmapTextureCairo::updateContents):
        (WebCore::BitmapTextureCairo::save):
        (WebCore::BitmapTextureCairo::setContentsToImage):
        (WebCore::TextureMapperCairo::beginClip):
        (WebCore::TextureMapperCairo::endClip):
        (WebCore::TextureMapperCairo::viewportSize):
        (WebCore::TextureMapperCairo::TextureMapperCairo):
        (WebCore::TextureMapperCairo::setGraphicsContext):
        (WebCore::TextureMapperCairo::graphicsContext):
        (WebCore::TextureMapperCairo::bindSurface):
        (WebCore::TextureMapperCairo::drawTexture):
        (WebCore::TextureMapper::create):
        (WebCore::TextureMapperCairo::createTexture):
        (WebCore::BitmapTextureCairo::BitmapTextureCairo):
        (WebCore::TextureMapperCairo::beginPainting):
        (WebCore::TextureMapperCairo::endPainting):
        * platform/graphics/cairo/TextureMapperCairo.h: Added.
        (WebCore::BitmapTextureCairo::~BitmapTextureCairo):
        (WebCore::BitmapTextureCairo::isValid):
        (WebCore::BitmapTextureCairo::sourceRect):
        (WebCore::BitmapTextureCairo::pack):
        (WebCore::BitmapTextureCairo::unpack):
        (WebCore::BitmapTextureCairo::isPacked):
        (WebCore::BitmapTextureCairo::cr):
        (WebCore::TextureMapperCairo::allowSurfaceForRoot):
        (WebCore::TextureMapperCairo::create):

2011-11-30  Tim Horton  <timothy_horton@apple.com>

        Implement CSS3 Images cross-fade() image function
        https://bugs.webkit.org/show_bug.cgi?id=52162
        <rdar://problem/10209254>

        Reviewed by Simon Fraser.

        Fix platform layering violation by moving CachedImage invalidation code into
        CSSCrossfadeValue (instead of CrossfadeGeneratedImage).

        No new tests.

        * css/CSSCrossfadeValue.cpp:
        (WebCore::loadSubimage):
        (WebCore::CSSCrossfadeValue::~CSSCrossfadeValue):
        (WebCore::CSSCrossfadeValue::customCssText):
        (WebCore::CSSCrossfadeValue::fixedSize):
        (WebCore::CSSCrossfadeValue::isPending):
        (WebCore::CSSCrossfadeValue::loadSubimages):
        (WebCore::CSSCrossfadeValue::image):
        (WebCore::CSSCrossfadeValue::CrossfadeSubimageObserverProxy::imageChanged):
        * css/CSSCrossfadeValue.h:
        (WebCore::CSSCrossfadeValue::create):
        (WebCore::CSSCrossfadeValue::setPercentage):
        (WebCore::CSSCrossfadeValue::CSSCrossfadeValue):
        (WebCore::CSSCrossfadeValue::CrossfadeSubimageObserverProxy::CrossfadeSubimageObserverProxy):
        (WebCore::CSSCrossfadeValue::CrossfadeSubimageObserverProxy::~CrossfadeSubimageObserverProxy):
        (WebCore::CSSCrossfadeValue::CrossfadeSubimageObserverProxy::setReady):
        * platform/graphics/CrossfadeGeneratedImage.cpp:
        (WebCore::CrossfadeGeneratedImage::CrossfadeGeneratedImage):
        (WebCore::CrossfadeGeneratedImage::drawCrossfade):
        (WebCore::CrossfadeGeneratedImage::drawPattern):
        * platform/graphics/CrossfadeGeneratedImage.h:
        (WebCore::CrossfadeGeneratedImage::create):

2011-11-30  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: [Regression] Successfully loaded XHRs are shown as canceled.
        https://bugs.webkit.org/show_bug.cgi?id=72873

        Reviewed by Nate Chapin.

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::cancelIfNotFinishing):
        * loader/SubresourceLoader.h:
        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::allClientsRemoved):

2011-11-30  Simon Hausmann  <simon.hausmann@nokia.com>

        [V8] Make WebCoreTestingSupport::resetInternalsObject more robust
        https://bugs.webkit.org/show_bug.cgi?id=73437

        Reviewed by Adam Barth.

        The Qt DRT may end up calling resetInternalsObject at a time when
        there's no internals object yet. In that case the looking of the internals
        object in the global object fails and returns undefined. V8Internals::toNative
        doesn't handle that and causing failing assertions. This patch adds a simple
        check to handle this case.

        * testing/v8/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::resetInternalsObject):

2011-11-30  James Simonsen  <simonjam@chromium.org>

        Fix valgrind issue in SubresourceLoader::didFinishLoading
        https://bugs.webkit.org/show_bug.cgi?id=72787

        Hang on to CachedResource until finish() is called.

        Reviewed by Nate Chapin.

        Test: fast/loader/subresource-load-failed-crash.html (under asan)

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didFinishLoading):
        (WebCore::SubresourceLoader::didFail):

2011-11-30  Tim Horton  <timothy_horton@apple.com>

        feImage referencing a primitive draws incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=71731
        <rdar://problem/10408178>

        Reviewed by Simon Fraser.

        If the target of an <feImage> appears to be a local fragment identifier, but
        it hasn't resolved yet, defer resolution instead of loading a bogus image.

        Invalidate <feImage> if the xlink:href attribute changes.

        Don't attempt to render an <feImage> if the referenced element is of size 0x0.

        Tests: svg/filters/feImage-reference-invalidation.svg
               svg/filters/feImage-reference-svg-primitive.svg
               svg/filters/feImage-zero-size-crash.svg

        * svg/SVGFEImageElement.cpp:
        (WebCore::SVGFEImageElement::parseMappedAttribute):
        (WebCore::SVGFEImageElement::build):

2011-11-30  Robin Dunn  <robin@alldunn.com>

        [wx] Ensure we always notify the popup client that the popup
        was hidden, and fix handling of empty menu items.
        https://bugs.webkit.org/show_bug.cgi?id=73464
        
        Reviewed by Kevin Ollivier.

        * platform/wx/PopupMenuWx.cpp:
        (WebCore::PopupMenuEventHandler::OnMenuItemSelected):
        (WebCore::PopupMenuWx::show):

2011-11-30  Tim Horton  <timothy_horton@apple.com>

        dx causes non-BMP characters to fail to render
        https://bugs.webkit.org/show_bug.cgi?id=18039
        <rdar://problem/10422142>

        Reviewed by Simon Fraser.

        Don't split the surrogate pairs of non-BMP characters across
        elements of <text> positioning lists.

        Test: svg/text/non-bmp-positioning-lists.svg

        * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
        (WebCore::SVGTextLayoutAttributesBuilder::propagateLayoutAttributes):

2011-11-30  Robin Dunn  <robin@alldunn.com>

        [wx] Add a scope for the raw bitmap access so that wx
        will not make a copy when creating the wxMemoryDC.
        https://bugs.webkit.org/show_bug.cgi?id=73461
        
        Reviewed By Kevin Ollivier.

        * platform/wx/LocalDC.h:
        (WebCore::LocalDC::LocalDC):

2011-11-30  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Inspect element does not highlight element in elements panel when inspector is opened.
        https://bugs.webkit.org/show_bug.cgi?id=73459

        Reviewed by Pavel Feldman.

        This regressed in r101503.

        * inspector/InjectedScriptHost.cpp:
        (WebCore::InjectedScriptHost::InjectedScriptHost):
        (WebCore::InjectedScriptHost::disconnect):
        (WebCore::InjectedScriptHost::inspectImpl):
        * inspector/InjectedScriptHost.h:
        (WebCore::InjectedScriptHost::init):
        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::enable):
        (WebCore::InspectorAgent::inspect):
        * inspector/InspectorAgent.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::connectFrontend):
        (WebCore::InspectorController::disconnectFrontend):
        * inspector/WorkerInspectorController.cpp:
        (WebCore::WorkerInspectorController::connectFrontend):
        (WebCore::WorkerInspectorController::disconnectFrontend):

2011-11-30  Tony Chang  <tony@chromium.org>

        Remove dead flexible box code
        https://bugs.webkit.org/show_bug.cgi?id=73377

        Reviewed by Darin Adler.

        We used to use these with an earlier version of the spec where margins
        set to auto were treated as flex(1).

        No new tests, just removing some uncalled methods.

        * rendering/RenderFlexibleBox.cpp:
        * rendering/RenderFlexibleBox.h:

2011-11-30  Antti Koivisto  <antti@apple.com>

        Reuse cached style fully if the parent inherited styles are equal 
        https://bugs.webkit.org/show_bug.cgi?id=73421

        Reviewed by Oliver Hunt.

        The matched declaration cache currently restores the non-inherted properties from the cache
        entry but still applies all inherited properties normally. In case the current parent
        inherited style is equivalent to the cache entry's, also the inherited style can be reused
        and no properties need to be applied. This is faster and saves memory (by sharing the
        style substructures better).
        
        The new optimized code path has a pretty good hit rate, >50% of all cases on many pages.
        
        Loading the HTML5 spec this reduces style memory consumption by ~20% (5MB, ~2.5% of total) and 
        speeds up style applying by ~25% for ~0.4s (2-3%) gain in the spec loading benchmark.
        
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyDeclaration):
        (WebCore::CSSStyleSelector::applyDeclarations):
        
            Remove the code that dynamically disables inherited only applying. We now don't allow
            styles with explicitly inherited properties to be cached in the first place.
        
        (WebCore::CSSStyleSelector::findFromMatchedDeclarationCache):
        
            Return the full cache item.
        
        (WebCore::CSSStyleSelector::addToMatchedDeclarationCache):
        
            Also the parent style is now needed for the check for full sharing.
        
        (WebCore::isCacheableInMatchedDeclarationCache):

            Don't allow styles with explicitly inherited properties to be cached at all.
        
        (WebCore::CSSStyleSelector::applyMatchedDeclarations):
        
            If the parent inherited styles are equal reuse the cache entry fully and return without
            doing anything else.
        
        * css/CSSStyleSelector.h:
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::inheritedDataShared):
        * rendering/style/RenderStyle.h:
        
            Add fast check for equal inherited properties.

2011-11-30  Renata Hodovan  <reni@webkit.org>

        CG buildfix after r101517.

        Rubber stamped by Zoltan Herczeg.

        * rendering/svg/RenderSVGRect.cpp:
        (WebCore::RenderSVGRect::fillShape):

2011-11-30  Anna Cavender  <annacc@chromium.org>

        Missing RuntimeEnabled check for <track>
        https://bugs.webkit.org/show_bug.cgi?id=73398

        Reviewed by Eric Carlson.

        No new tests. This fixes a problem when --enable-video-track is not used,
        but the tests use this flag.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::trackWillBeRemoved):

2011-11-30  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [refactoring] do not clone nodes that contain linkified URLs
        https://bugs.webkit.org/show_bug.cgi?id=73323

        Reviewed by Pavel Feldman.

        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylePropertiesSection):
        (WebInspector.StylePropertiesSection.prototype._createRuleOriginNode):
        (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted.successCallback):
        (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted):
        (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
        (WebInspector.BlankStylePropertiesSection.prototype.makeNormal):
        * inspector/front-end/elementsPanel.css:
        (.styles-section a[data-uncopyable]):
        (.styles-section a[data-uncopyable]::before):

2011-11-30  Renata Hodovan  <reni@webkit.org>

        Add new renderer for SVGRectElement.
        https://bugs.webkit.org/show_bug.cgi?id=65769

        Reviewed by Nikolas Zimmermann.

        This patch introduces a new common base class called RenderSVGShape which
        replaces the RenderSVGPath. This new base class has the same purpose
        as the replaced class and has specialized descendants for common
        shapes (like Rectangles and Circles), which allows faster painting
        of these shapes when certain conditions are fulfilled. On some
        benchmark programs we have seen 5% speedup.

        The biggest motivation of this refactor is taking advantage
        of faster primitive drawing in the most common and frequent
        cases. However in some rare cases, like painting rounded
        rects, we need to fallback to the original code path, which
        is fully kept in the RenderSVGShape base class. Some other
        cases, like dashed strokes, can be painted but mouse pointer
        events cannot be handled by the descendant classes. A different
        fallback mechanism is used in such cases which redirects
        only the pointer event handling to the base class.

        Tests: svg/custom/pointer-events-on-rounded-rect.xhtml
               svg/custom/pointer-events-with-linecaps-and-miterlimits.xhtml

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * platform/graphics/FloatRect.cpp:
        (WebCore::FloatRect::contains):
        * platform/graphics/FloatRect.h:
        (WebCore::FloatRect::contains):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::isSVGRect):
        (WebCore::RenderObject::isSVGShape):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::write):
        * rendering/svg/RenderSVGAllInOne.cpp:
        * rendering/svg/RenderSVGModelObject.cpp:
        (WebCore::isGraphicsElement):
        * rendering/svg/RenderSVGPath.cpp:
        (WebCore::RenderSVGPath::RenderSVGPath):
        (WebCore::RenderSVGPath::inflateWithStrokeAndMarkerBounds): Unite the markerBounds with strokeBoundingBox.
        * rendering/svg/RenderSVGPath.h:
        * rendering/svg/RenderSVGRect.cpp: Added.
        (WebCore::RenderSVGRect::RenderSVGRect):
        (WebCore::RenderSVGRect::~RenderSVGRect):
        (WebCore::RenderSVGRect::createShape):
        (WebCore::RenderSVGRect::objectBoundingBox):
        (WebCore::RenderSVGRect::strokeBoundingBox):
        (WebCore::RenderSVGRect::fillShape):
        (WebCore::RenderSVGRect::strokeShape):
        (WebCore::RenderSVGRect::shapeDependentStrokeContains):
        (WebCore::RenderSVGRect::shapeDependentFillContains):
        * rendering/svg/RenderSVGRect.h: Added.
        (WebCore::RenderSVGRect::isSVGRect):
        (WebCore::RenderSVGRect::renderName):
        (WebCore::RenderSVGRect::isEmpty):
        * rendering/svg/RenderSVGResource.h:
        (WebCore::RenderSVGResource::postApplyResource): A new shape argument was added to allow shape specific faster painting.
        * rendering/svg/RenderSVGResourceClipper.cpp:
        (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
        (WebCore::RenderSVGResourceClipper::calculateClipContentRepaintRect):
        (WebCore::RenderSVGResourceClipper::hitTestClipContent):
        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke):
        * rendering/svg/RenderSVGResourceFilter.cpp:
        (WebCore::RenderSVGResourceFilter::postApplyResource):
        * rendering/svg/RenderSVGResourceFilter.h:
        * rendering/svg/RenderSVGResourceGradient.cpp:
        (WebCore::RenderSVGResourceGradient::applyResource):
        * rendering/svg/RenderSVGResourceGradient.h:
        * rendering/svg/RenderSVGResourcePattern.cpp:
        (WebCore::RenderSVGResourcePattern::postApplyResource):
        * rendering/svg/RenderSVGResourcePattern.h:
        * rendering/svg/RenderSVGResourceSolidColor.cpp:
        (WebCore::RenderSVGResourceSolidColor::postApplyResource):
        * rendering/svg/RenderSVGResourceSolidColor.h:
        * rendering/svg/RenderSVGShape.cpp: Copied from Source/WebCore/rendering/svg/RenderSVGPath.cpp.
        (WebCore::RenderSVGShape::RenderSVGShape):
        (WebCore::RenderSVGShape::~RenderSVGShape):
        (WebCore::RenderSVGShape::createShape):
        (WebCore::RenderSVGShape::isEmpty):
        (WebCore::RenderSVGShape::fillShape):
        (WebCore::RenderSVGShape::objectBoundingBox):
        (WebCore::RenderSVGShape::strokeBoundingBox):
        (WebCore::RenderSVGShape::strokeShape):
        (WebCore::RenderSVGShape::shapeDependentStrokeContains):
        The purpose of this virtual function allows decendants to use their own fast checks.
        (WebCore::RenderSVGShape::shapeDependentFillContains):
        The purpose of this virtual function allows decendants to use their own fast checks.
        (WebCore::RenderSVGShape::fillContains):
        (WebCore::RenderSVGShape::strokeContains):
        (WebCore::RenderSVGShape::layout):
        (WebCore::RenderSVGShape::shouldStrokeZeroLengthSubpath):
        (WebCore::RenderSVGShape::zeroLengthSubpathRect):
        (WebCore::RenderSVGShape::setupSquareCapPath):
        (WebCore::RenderSVGShape::setupNonScalingStrokePath):
        (WebCore::RenderSVGShape::fillAndStrokePath):
        (WebCore::RenderSVGShape::paint):
        (WebCore::RenderSVGShape::addFocusRingRects):
        (WebCore::RenderSVGShape::nodeAtFloatPoint):
        (WebCore::RenderSVGShape::calculateMarkerBoundsIfNeeded):
        (WebCore::RenderSVGShape::updateCachedBoundaries):
        (WebCore::RenderSVGShape::strokeWidth):
        * rendering/svg/RenderSVGShape.h: Copied from Source/WebCore/rendering/svg/RenderSVGPath.h.
        (WebCore::BoundingRectStrokeStyleApplier::BoundingRectStrokeStyleApplier):
        (WebCore::BoundingRectStrokeStyleApplier::strokeStyle):
        (WebCore::RenderSVGShape::setNeedsShapeUpdate):
        (WebCore::RenderSVGShape::setNeedsBoundariesUpdate):
        (WebCore::RenderSVGShape::setNeedsTransformUpdate):
        (WebCore::RenderSVGShape::isPaintingFallback):
        (WebCore::RenderSVGShape::path):
        (WebCore::RenderSVGShape::setIsPaintingFallback):
        (WebCore::RenderSVGShape::setStrokeAndMarkerBoundingBox):
        (WebCore::RenderSVGShape::hasPath):
        (WebCore::RenderSVGShape::repaintRectInLocalCoordinates):
        (WebCore::RenderSVGShape::localToParentTransform):
        (WebCore::RenderSVGShape::localTransform):
        (WebCore::RenderSVGShape::isSVGShape):
        (WebCore::RenderSVGShape::renderName):
        (WebCore::RenderSVGShape::isRoundedRect):
        (WebCore::RenderSVGShape::inflateWithMarkerBounds):
        (WebCore::toRenderSVGShape):
        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::releasePaintingResource):
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::finishRenderSVGContent):
        (WebCore::SVGRenderSupport::layoutChildren):
        * rendering/svg/SVGRenderTreeAsText.cpp:
        (WebCore::writeStyle):
        (WebCore::operator<<):
        (WebCore::write):
        * rendering/svg/SVGRenderTreeAsText.h:
        * rendering/svg/SVGTextRunRenderingContext.cpp:
        (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):
        * svg/SVGCircleElement.cpp:
        (WebCore::SVGCircleElement::svgAttributeChanged):
        * svg/SVGEllipseElement.cpp:
        (WebCore::SVGEllipseElement::svgAttributeChanged):
        * svg/SVGLineElement.cpp:
        (WebCore::SVGLineElement::svgAttributeChanged):
        * svg/SVGPathElement.cpp:
        (WebCore::SVGPathElement::svgAttributeChanged):
        (WebCore::SVGPathElement::pathSegListChanged):
        (WebCore::SVGPathElement::createRenderer):
        * svg/SVGPathElement.h:
        * svg/SVGPolyElement.cpp:
        (WebCore::SVGPolyElement::svgAttributeChanged):
        * svg/SVGRectElement.cpp:
        (WebCore::SVGRectElement::svgAttributeChanged):
        (WebCore::SVGRectElement::createRenderer):
        * svg/SVGRectElement.h:

2011-11-30  Adam Roben  <aroben@apple.com>

        Another Clang build fix after r101507

        * platform/network/SocketStreamHandleClient.h:
        (WebCore::SocketStreamHandleClient::didUpdateBufferedAmount): Removed unused parameter.

2011-11-30  Renata Hodovan  <reni@webkit.org>

        MAC build fix after r101507.

        Rubber stamped by Csaba Osztrogonac.

        * platform/network/SocketStreamHandleClient.h:
        (WebCore::SocketStreamHandleClient::didUpdateBufferedAmount):
        * websockets/WebSocket.cpp:
        (WebCore::WebSocket::didUpdateBufferedAmount):
        * websockets/WebSocket.h:
        * websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::didUpdateBufferedAmount):
        * websockets/WebSocketChannel.h:

2011-11-30  John Knottenbelt  <jknotten@chromium.org>

        Remove unnecessary asserts in HTMLTextAreaElement.
        https://bugs.webkit.org/show_bug.cgi?id=73135

        http://code.google.com/p/chromium/issues/detail?id=103228 shows
        that sometimes we are hitting the following assert in
        HTMLTextAreaElement::updateFocusAppearance:

        ASSERT(!document()->childNeedsAndNotInStyleRecalc());

        This assert was added by https://bugs.webkit.org/show_bug.cgi?id=27474
        as part of a fix for a crash when the selection is set immediately
        after setting display:none.

        All the methods called by updateFocusAppearance already handle the
        case of the document having the childNeedsStyleRecalc flag set, so
        this assert is unnecessary. The ASSERT(renderer()) is similarly
        redundant.

        Reviewed by Kent Tamura.

        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::updateFocusAppearance):

2011-11-30  Adam Roben  <aroben@apple.com>

        Clang build fix after r101507

        * websockets/WebSocketChannelClient.h:
        (WebCore::WebSocketChannelClient::didUpdateBufferedAmount): Removed unused parameter.

2011-11-30  Nikita Vasilyev  <me@elv1s.ru>

        Web Inspector: Preserve an indentation level when inserting a new line
        https://bugs.webkit.org/show_bug.cgi?id=71625

        Indent one level more when a line ends with either "{", "[" or "(".

        Reviewed by Pavel Feldman.

        * inspector/front-end/TextEditorModel.js:
        (WebInspector.TextRange.prototype.collapseToEnd):
        (WebInspector.TextRange.prototype.normalize):
        * inspector/front-end/TextViewer.js:
        (WebInspector.TextViewer.prototype._registerShortcuts):
        (WebInspector.TextViewer.prototype._handleKeyDown):
        (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
        (WebInspector.TextEditorMainPanel.prototype._getSelection):

2011-11-30  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Display of data URIs cumbersome in the Elements panel
        https://bugs.webkit.org/show_bug.cgi?id=73438

        Reviewed by Pavel Feldman.

        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeElement.prototype._buildAttributeDOM):

2011-11-28  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: TreeOutline elements should be formatted using margin-left instead of text-indent.
        https://bugs.webkit.org/show_bug.cgi?id=73234

        Reviewed by Pavel Feldman.

        * inspector/front-end/ResourceHeadersView.js:
        (WebInspector.ResourceHeadersView.prototype._refreshHeadersText):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.BaseStorageTreeElement.prototype.get searchMatchesCount):
        * inspector/front-end/auditsPanel.css:
        (.audit-result-tree li):
        (.audit-result-tree li.parent):
        (.audit-result img):
        * inspector/front-end/inspector.css:
        (.outline-disclosure li):
        (.outline-disclosure li.parent):
        * inspector/front-end/networkPanel.css:
        * inspector/front-end/resourcesPanel.css:
        (.resources.panel .sidebar-resizer-vertical):
        (.resources.panel .sidebar li):
        * inspector/front-end/treeoutline.js:
        (TreeElement.prototype.isEventWithinDisclosureTriangle):

2011-11-30  Kentaro Hara  <haraken@chromium.org>

        Implement the [NamedConstructor] IDL in CodeGeneratorJS.pm
        https://bugs.webkit.org/show_bug.cgi?id=73307

        Reviewed by Adam Barth.

        This patch implements the [NamedConstructor] IDL for JSC.
        The spec: http://www.w3.org/TR/WebIDL/#NamedConstructor

        Tests: bindings/scripts/test/JS/JSTestNamedConstructor.idl

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader): Removed unnecessary conditions '$dataNode->extendedAttributes->{"JSCustomConstructor"} || $dataNode->extendedAttributes->{"CustomConstructor"}'.
        (GenerateImplementation): Calls GenerateConstructorDefinition() to generate a NamedConstructor.
        (GenerateConstructorDeclaration): Generates a header for a NamedConstructor.
        (GenerateConstructorDefinition): Generates a NamedConstructor implementation and getConstructData() for the NamedConstructor.
        (IsConstructable): Added a NamedConstructor condition.

        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp: Updated a run-bindings-tests result.
        (WebCore::JSTestNamedConstructorNamedConstructor::JSTestNamedConstructorNamedConstructor):
        (WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
        (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
        (WebCore::JSTestNamedConstructorNamedConstructor::getConstructData):
        * bindings/scripts/test/JS/JSTestNamedConstructor.h: Ditto.
        (WebCore::JSTestNamedConstructorNamedConstructor::create):
        (WebCore::JSTestNamedConstructorNamedConstructor::createStructure):

2011-11-30  Takashi Toyoshima  <toyoshim@chromium.org>

        Add didUpdateBufferedAmount() callback to SocketStreamHandleClient
        and WebSocketChannelClient.
        https://bugs.webkit.org/show_bug.cgi?id=73290

        Reviewed by Kent Tamura.

        No new tests because this callback is not used in WebCore.

        * platform/network/SocketStreamHandleBase.cpp: Invoke new callback.
        (WebCore::SocketStreamHandleBase::send):
        (WebCore::SocketStreamHandleBase::sendPendingData):
        * platform/network/SocketStreamHandleBase.h: Change returning value type.
        (WebCore::SocketStreamHandleBase::bufferedAmount):
        * platform/network/SocketStreamHandleClient.h: Add new callback definition.
        (WebCore::SocketStreamHandleClient::didUpdateBufferedAmount):
        * websockets/ThreadableWebSocketChannelClientWrapper.cpp: Add new callback handling.
        (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmountCallback):
        * websockets/ThreadableWebSocketChannelClientWrapper.h: Add new callback inheritance and its helper method.
        * websockets/WebSocket.cpp: Add new callback handling.
        (WebCore::WebSocket::didUpdateBufferedAmount):
        * websockets/WebSocket.h: Add new callback inheritance.
        * websockets/WebSocketChannel.cpp: Add new callback handling.
        (WebCore::WebSocketChannel::didUpdateBufferedAmount):
        * websockets/WebSocketChannel.h: Add new callback inheritacne.
        * websockets/WebSocketChannelClient.h: Add new callback definition.
        (WebCore::WebSocketChannelClient::didUpdateBufferedAmount):
        * websockets/WorkerThreadableWebSocketChannel.cpp: Add new callback handling.
        (WebCore::workerContextDidUpdateBufferedAmount):
        (WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
        * websockets/WorkerThreadableWebSocketChannel.h: Add new callback inheritance and its helper method.

2011-11-30  Kentaro Hara  <haraken@chromium.org>

        [Refactoring] In preprocessor.pm, remove double quotations from $defines
        https://bugs.webkit.org/show_bug.cgi?id=73160

        Reviewed by Adam Barth.

        In preprocessor.pm, we need to extract gcc macros from $defines.
        $defines can contain unnecessary double quotations.
        For example, if $defines is ' "A=1" "B=1" C=1 ""    D  ',
        then it should be converted into four macros, -DA=1, -DB=1, -DC=1 and -DD.
        This patch refactors the logic in preprocessor.pm.

        No new tests. No change in behavior.

        * bindings/scripts/generate-bindings.pl: Removed a code for $defines conversion, since it is now done in preprocessor.pm.
        * bindings/scripts/preprocessor.pm:
        (applyPreprocessor):

2011-11-30  Kenichi Ishibashi  <bashi@chromium.org>

        @font-face: unquoted local font names containing spaces don't work
        https://bugs.webkit.org/show_bug.cgi?id=64783

        Allows local font names with spaces.
        Rejects the src descriptor if there is invalid identifiers in local(), as the same as Firefox.

        Reviewed by Ryosuke Niwa.

        Tests: fast/css/font-face-unquoted-local-expected.html
               fast/css/font-face-unquoted-local.html

        * css/CSSParser.cpp:
        (WebCore::parseFontFaceSrcFunction): Added. Treats multiple identifiers in local() as a font name separated by spaces.
        (WebCore::CSSParser::parseFontFaceSrc): Moved the code block which parses local() and format() to parseFontFaceSrcFunction().

2011-11-30  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: get rid of deferred backend->front-end commands processing.
        https://bugs.webkit.org/show_bug.cgi?id=73439

        We should issue tests upon InspectorAgent::enable and should not do any deferred command processing.

        Reviewed by Yury Semikhatsky.

        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::InspectorAgent):
        (WebCore::InspectorAgent::setFrontend):
        (WebCore::InspectorAgent::clearFrontend):
        (WebCore::InspectorAgent::enable):
        (WebCore::InspectorAgent::evaluateForTestInFrontend):
        * inspector/InspectorAgent.h:
        * inspector/front-end/inspector.js:

2011-11-30  Andreas Kling  <kling@webkit.org>

        REGRESSION(r101172): It made fast/dom/clone-node-style.html assert.
        <http://webkit.org/b/73227>

        Reviewed by Antti Koivisto.

        r101172 inadvertently introduced a default assignment operator for CSSElementStyleDeclaration
        which caused StyledElement::copyNonAttributeProperties() to associate the element's inline
        style declaration with the element being cloned.

        Replace CSSMutableStyleDeclaration::operator= by copyPropertiesAndStrictnessFrom()
        that matches the old behavior.

        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::copyPropertiesAndStrictnessFrom):
        * css/CSSMutableStyleDeclaration.h:
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::copyNonAttributeProperties):

2011-11-30  Mary Wu  <mary.wu@torchmobile.com.cn>

        remove buildinformation from BlackBerry porting build system
        https://bugs.webkit.org/show_bug.cgi?id=73276

        Reviewed by Daniel Bates.

        * PlatformBlackBerry.cmake: remove generated files BuildInformation.cpp/.h

2011-11-30  Luke Macpherson   <macpherson@chromium.org>

        Implement Zoom Property in CSSSStyleApplyProperty.
        https://bugs.webkit.org/show_bug.cgi?id=72840

        Reviewed by Andreas Kling.

        Covered by fast/css/*zoom*.html

        * css/CSSStyleApplyProperty.cpp:
        Add new handler for zoom property (based on existing code from CSSStyleSelector.cpp)
        (WebCore::ApplyPropertyZoom::resetEffectiveZoom):
        (WebCore::ApplyPropertyZoom::applyInheritValue):
        (WebCore::ApplyPropertyZoom::applyInitialValue):
        (WebCore::ApplyPropertyZoom::applyValue):
        (WebCore::ApplyPropertyZoom::createHandler):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        Remove existing implementation.
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSStyleSelector.h:
        (WebCore::CSSStyleSelector::document):
        Add getter for Document.

2011-11-30  David Reveman  <reveman@chromium.org>

        [Chromium] Re-enable layer anti-aliasing on ChromeOS.
        https://bugs.webkit.org/show_bug.cgi?id=73361

        Reviewed by James Robinson.

        Anti-aliasing should be enabled by default on ChromeOS.

        No new tests.

        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
        (WebCore::CCRenderSurface::drawLayer):
        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
        (WebCore::CCTiledLayerImpl::draw):

2011-11-30  Michael Nordman  <michaeln@google.co>

        [chromium] WebSQLDatabase could use some better error reporting.
        Instruments the database classes to report errors to a DatabaseObserver.
        https://bugs.webkit.org/show_bug.cgi?id=73258

        Reviewed by David Levin.

        No new tests, no content observable artifacts.

        * storage/AbstractDatabase.cpp:
        (WebCore::AbstractDatabase::AbstractDatabase):
        (WebCore::AbstractDatabase::performOpenAndVerify):
        (WebCore::AbstractDatabase::incrementalVacuumIfNeeded):
        (WebCore::AbstractDatabase::reportOpenDatabaseResult):
        (WebCore::AbstractDatabase::reportChangeVersionResult):
        (WebCore::AbstractDatabase::reportStartTransactionResult):
        (WebCore::AbstractDatabase::reportCommitTransactionResult):
        (WebCore::AbstractDatabase::reportExecuteStatementResult):
        (WebCore::AbstractDatabase::reportVacuumDatabaseResult):
        * storage/AbstractDatabase.h:
        (WebCore::AbstractDatabase::isSyncDatabase):
        * storage/ChangeVersionWrapper.cpp:
        (WebCore::ChangeVersionWrapper::performPreflight):
        (WebCore::ChangeVersionWrapper::performPostflight):
        * storage/Database.cpp:
        (WebCore::Database::Database):
        * storage/DatabaseSync.cpp:
        (WebCore::DatabaseSync::DatabaseSync):
        (WebCore::DatabaseSync::changeVersion):
        * storage/SQLStatement.cpp:
        (WebCore::SQLStatement::execute):
        (WebCore::SQLStatement::setDatabaseDeletedError):
        (WebCore::SQLStatement::setVersionMismatchedError):
        (WebCore::SQLStatement::setFailureDueToQuota):
        * storage/SQLStatement.h:
        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::executeSQL):
        (WebCore::SQLTransaction::openTransactionAndPreflight):
        (WebCore::SQLTransaction::deliverTransactionCallback):
        (WebCore::SQLTransaction::runCurrentStatement):
        (WebCore::SQLTransaction::handleCurrentStatementError):
        (WebCore::SQLTransaction::deliverStatementCallback):
        (WebCore::SQLTransaction::postflightAndCommit):
        * storage/SQLTransactionSync.cpp:
        (WebCore::SQLTransactionSync::begin):
        (WebCore::SQLTransactionSync::commit):
        * storage/chromium/DatabaseObserver.h:

2011-11-30  Rafael Weinstein  <rafaelw@chromium.org>

        [MutationObservers] V8 bindings don't properly wrap all calls into JS
        https://bugs.webkit.org/show_bug.cgi?id=72063

        Reviewed by Adam Barth.

        This patch changes cleans up script invocation in V8Proxy. It removes callFunctionWithoutFrame
        and changes callers to simply call instrumentedFunctionCall with a null Page. Also, it implements
        the non-static callFunction to be implemented in terms of instrumentedFunctionCall.

        No new tests.

        * bindings/v8/ScriptFunctionCall.cpp:
        (WebCore::ScriptCallback::call):
        * bindings/v8/V8NodeFilterCondition.cpp:
        (WebCore::V8NodeFilterCondition::acceptNode):
        * bindings/v8/V8Proxy.cpp:
        (WebCore::V8Proxy::callFunction):
        (WebCore::V8Proxy::instrumentedCallFunction):
        * bindings/v8/V8Proxy.h:
        * bindings/v8/custom/V8CustomXPathNSResolver.cpp:
        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI):

2011-11-30  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r101440 and r101442.
        http://trac.webkit.org/changeset/101440
        http://trac.webkit.org/changeset/101442
        https://bugs.webkit.org/show_bug.cgi?id=73429

        multiple crashes on layout tests (Requested by hayato on
        #webkit).

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::initialize):
        * platform/graphics/chromium/WebGLLayerChromium.cpp:
        (WebCore::WebGLLayerChromium::layerRendererContext):
        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
        (WebCore::CCHeadsUpDisplay::enabled):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
        (WebCore::CCLayerTreeHost::initialize):
        (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
        (WebCore::CCLayerTreeHost::context):
        (WebCore::CCLayerTreeHost::setNeedsAnimate):
        (WebCore::CCLayerTreeHost::setNeedsCommit):
        (WebCore::CCLayerTreeHost::setNeedsRedraw):
        (WebCore::CCLayerTreeHost::composite):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):
        * platform/graphics/chromium/cc/CCProxy.cpp:
        (WebCore::CCProxy::isMainThread):
        (WebCore::CCProxy::isImplThread):
        (WebCore::CCProxy::setImplThread):
        * platform/graphics/chromium/cc/CCProxy.h:
        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
        (WebCore::DebugScopedSetImplThread::DebugScopedSetImplThread):
        (WebCore::DebugScopedSetImplThread::~DebugScopedSetImplThread):

2011-11-30  Alexey Proskuryakov  <ap@apple.com>

        Download page URL should be set by WebCore
        https://bugs.webkit.org/show_bug.cgi?id=73358

        Reviewed by Darin Adler.

        No change in behavior, just refactoring.

        * loader/FrameLoader.h:
        * loader/FrameLoader.cpp:
        (WebCore::originatingURLFromBackForwardList):
        (WebCore::FrameLoader::setOriginalURLForDownloadRequest):
        Moved implementations from WebKit, added a bunch of FIXMEs.

        * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::continueAfterContentPolicy):
        Set main document URL (incorrectly renamed to "first party for cookies" in WebCore), so that
        CFNetwork would automatically use it.

        * loader/PolicyChecker.cpp: (WebCore::PolicyChecker::continueAfterNavigationPolicy): Ditto
        for requests that start as downloads (as opposed to being converted after reading first bits
        of response).

2011-11-30  Rafael Weinstein  <rafaelw@chromium.org>

        Remove unused isInlineCode from V8Proxy
        https://bugs.webkit.org/show_bug.cgi?id=73341

        Reviewed by Adam Barth.

        No tests needed. This patch only removes unnecessary code.

        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::prepareListenerObject):
        * bindings/v8/V8Proxy.cpp:
        (WebCore::V8Proxy::V8Proxy):
        (WebCore::V8Proxy::evaluate):
        (WebCore::V8Proxy::runScript):
        * bindings/v8/V8Proxy.h:

2011-11-30  Andrew Wason  <rectalogic@rectalogic.com>

        Replace Qt QThread threading back-end with pthread/Win32 threading back-ends
        https://bugs.webkit.org/show_bug.cgi?id=72155

        Reviewed by Simon Hausmann.

        Need to include qglobal.h since ThreadingPrimitives.h no longer does.

        * platform/network/NetworkingContext.h:

2011-11-30  Jongseok Yang  <js45.yang@samsung.com>

        [SOUP][WK2] Implement the functions to manager cookies in CookieJar for WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=72353

        r79722 inserted the functions to manange cookies from web process.
        (getHostnamesWithCookies,deleteCookiesForHostname,deleteAllCookies)
        Implement the functions for soup network backend.

        Reviewed by Martin Robinson.

        * platform/network/soup/CookieJarSoup.cpp:
        (WebCore::getHostnamesWithCookies):
        (WebCore::deleteCookiesForHostname):
        (WebCore::deleteAllCookies):

2011-11-30  Daniel Sievers  <sievers@chromium.org>

        [Chromium] Avoid ASSERT_NOT_REACHED() from creating FBO with content texture of size 0
        https://bugs.webkit.org/show_bug.cgi?id=73266

        Remove render surface layers with no children after clipping to
        the parent layer.

        Move the check for empty render surfaces after the piece of code
        used to apply the parent's clip, as we might end up calling
        renderSurface->clearLayerList().

        Render surfaces with no children or visible content are unexpected
        especially at draw time where we might try to create a content
        texture and FBO with a size of zero, which will fail. This fixes
        an ASSERT_NOT_REACHED() for checkFramebufferStatus() != COMPLETE

        Reviewed by James Robinson.

        Added unit test.

        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
        (WebCore::calculateDrawTransformsAndVisibilityInternal):

2011-11-30  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: do not report worker-related events unless inspector agent is enabled.
        https://bugs.webkit.org/show_bug.cgi?id=73411

        Backend should not generate messages until the client requests that they are sent.

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector.json:
        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::setFrontend):
        (WebCore::InspectorAgent::clearFrontend):
        (WebCore::InspectorAgent::enable):
        (WebCore::InspectorAgent::disable):
        (WebCore::InspectorAgent::postWorkerNotificationToFrontend):
        (WebCore::InspectorAgent::didCreateWorker):
        (WebCore::InspectorAgent::didDestroyWorker):
        (WebCore::InspectorAgent::developerExtrasEnabled):
        * inspector/InspectorAgent.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::enabled):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
        (WebCore::InspectorInstrumentation::didOpenDatabaseImpl):
        (WebCore::InspectorInstrumentation::didUseDOMStorageImpl):
        (WebCore::InspectorInstrumentation::didCreateWebSocketImpl):
        * inspector/InspectorPageAgent.cpp:
        * inspector/PageConsoleAgent.cpp:
        (WebCore::PageConsoleAgent::developerExtrasEnabled):
        * inspector/front-end/WorkerManager.js:
        (WebInspector.WorkerManager.prototype._workerInspectorClosing):
        (WebInspector.WorkerManager.prototype._disconnectedFromWorker):
        (WebInspector.DedicatedWorkerMessageForwarder.prototype.dispatchMessageFromWorker):
        (WebInspector.DedicatedWorkerMessageForwarder.prototype.disconnectedFromWorker):
        * inspector/front-end/inspector.js:

2011-11-30  Jacky Jiang  <zhajiang@rim.com>

        Upstream BlackBerry porting of WebCore/editing.
        https://bugs.webkit.org/show_bug.cgi?id=73275

        Reviewed by Daniel Bates.

        Initial upstream, no new tests.

        * editing/blackberry/EditorBlackBerry.cpp: Added.
        (WebCore::Editor::newGeneralClipboard):
        * editing/blackberry/SmartReplaceBlackBerry.cpp: Added.
        (WebCore::isCharacterSmartReplaceExempt):

2011-11-30  Noel Gordon  <noel.gordon@gmail.com>

        JPEGImageDecoder: Code input color space case entries in numerical order
        https://bugs.webkit.org/show_bug.cgi?id=73287

        Reviewed by Adam Barth.

        No new tests. Covered by existing tests.

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (WebCore::JPEGImageReader::decode): JCS_YCbCr is one greater than JSC_RGB.

2011-11-30  Alexandru Chiculita  <achicu@adobe.com>

        FilterOperation* should stay in rendering/style, because it is directly referenced from RenderStyle
        https://bugs.webkit.org/show_bug.cgi?id=72539

        Reviewed by Dean Jackson.

        No new tests, just moving some files.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * rendering/style/CustomFilterOperation.h: Renamed from Source/WebCore/platform/graphics/filters/CustomFilterOperation.h.
        * rendering/style/FilterOperation.h: Renamed from Source/WebCore/platform/graphics/filters/FilterOperation.h.
        * rendering/style/FilterOperations.cpp: Renamed from Source/WebCore/platform/graphics/filters/FilterOperations.cpp.
        * rendering/style/FilterOperations.h: Renamed from Source/WebCore/platform/graphics/filters/FilterOperations.h.

2011-11-29  Kentaro Hara  <haraken@chromium.org>

        StorageEvent.key should not be nullable
        https://bugs.webkit.org/show_bug.cgi?id=73125

        Reviewed by Adam Barth.

        Currently, document.createEvent('StorageEvent').key is evaluated as null.
        However, the spec (http://www.whatwg.org/specs/web-apps/current-work/#storageevent)
        says that StorageEvent.key is not a nullable type, and thus
        document.createEvent('StorageEvent').key should be '' (an empty string).

        * storage/StorageEvent.idl: Removed a [ConvertNullStringTo=Null] IDL from StorageEvent.key.

2011-11-29  Philip Rogers  <pdr@google.com>

        Fix for fill color not being applied inside visited links
        https://bugs.webkit.org/show_bug.cgi?id=70434

        Reviewed by Antti Koivisto.

        Test: svg/custom/visited-link-color.svg

        * rendering/style/SVGRenderStyle.h:
        (WebCore::SVGRenderStyle::setFillPaint):
        (WebCore::SVGRenderStyle::setStrokePaint):

2011-11-29  David Levin  <levin@chromium.org>

        Add a way to revert a variable to its previous value after leaving a scope.
        https://bugs.webkit.org/show_bug.cgi?id=73371

        Reviewed by Adam Barth.

        * ForwardingHeaders/wtf/TemporarilyChange.h: Added.

2011-11-28  Kentaro Hara  <haraken@chromium.org>

        Implement [Supplemental] IDL and support it in run-bindings-tests
        https://bugs.webkit.org/show_bug.cgi?id=73162

        Reviewed by Adam Barth.

        - Overview:
            - Implement the [Supplemental] IDL in resolve-supplemental.pl and generate-bindings.pl.
            - Support the [Supplemental] IDL in run-bindings-tests.
            - Add TestSupplemental.idl as a binding test and confirm that it works.

        - The spec for the [Supplemental] IDL: http://dev.w3.org/2006/webapi/WebIDL/#dfn-supplemental-interface

        - This patch affects run-bindings-tests results only and does not affect any real builds
        since no [Supplemental] IDL has been written in real WebCore IDL files for now.

        - This patch makes a change on CodeGenerator*.pm to support the [Supplemental] IDL
        for (custom) getters and setters.

        - Added perl scripts implement the [Supplemental] IDL as follows:

            Previous build flow:
                foreach $idl (all IDL files) {
                    generate-bindings.pl depends on $idl;
                    generate-bindings.pl reads $idl;
                    generate-bindings.pl generates .h and .cpp files for $idl;
                }

            New build flow (See the discussions in bug 72138 for more details):
                resolve-supplemental.pl depends on all IDL files;
                resolve-supplemental.pl reads all IDL files;
                resolve-supplemental.pl resolves the dependency of [Supplemental=XXXX];
                resolve-supplemental.pl outputs supplemental_dependency.tmp;
                foreach $idl (all IDL files) {
                    generate-bindings.pl depends on $idl and supplemental_dependency.tmp;
                    generate-bindings.pl reads $idl;
                    generate-bindings.pl reads supplemental_dependency.tmp;
                    generate-bindings.pl generates .h and .cpp files for $idl, including all attributes in IDL files which are implementing $idl;
                }

        Tests: bindings/scripts/test/TestSupplemental.idl

        * bindings/scripts/generate-bindings.pl: The input is an IDL file |x| and the dependency file. generate-bindings.pl generates .h and .cpp files for the IDL file |x|, including all the attributes in the IDL files which are implementing the IDL file |x|. generate-bindings.pl addes the [ImplementedBy] IDL to the attributes with the [Supplemental] IDL in order to indicate what IDL is implementing the attributes.
        * bindings/scripts/resolve-supplemental.pl: Added. resolve-supplemental.pl reads all IDL files, resolves [Supplemental=XXX] dependencies, and then outputs the dependency file. See the comment in resolve-supplemental.pl for the format of the dependency file.

        * bindings/scripts/CodeGenerator.pm:
        (GenerateConditionalStringFromAttributeValue): Avoids duplicated conditions.
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader): If an attribute is [ImplementedBy] another IDL, then we omit the declaration of the custom getter and setter.
        (GenerateImplementation): If an attribute is [ImplementedBy] another IDL, then we call back the (custom) getter and setter of the IDL.
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateHeader): If an attribute is [ImplementedBy] another IDL, then we omit the declaration of the custom getter and setter.
        (GenerateNormalAttrGetter): If an attribute is [ImplementedBy] another IDL, then we call back the getter of the IDL.
        (GenerateNormalAttrSetter): If an attribute is [ImplementedBy] another IDL, then we call back the setter of the IDL.
        (GenerateSingleBatchedAttribute): If an attribute is [ImplementedBy] another IDL, then we call back the custom getter or setter of the IDL.
        * bindings/scripts/CodeGeneratorCPP.pm:
        (GenerateImplementation): If an attribute is [ImplementedBy] another IDL, then we call back the getter and setter of the IDL. CodeGeneratorCPP.pm does not support a custom getter and setter.
        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateProperty): Ditto.
        * bindings/scripts/CodeGeneratorObjC.pm:
        (GenerateImplementation): Ditto.

        * bindings/scripts/test/TestSupplemental.idl: Added. A test case for the [Supplemental] IDL.
        * bindings/scripts/test/CPP/WebDOMTestInterface.cpp: Updated a run-bindings-tests result.
        (WebDOMTestInterface::str1):
        (WebDOMTestInterface::str2):
        (WebDOMTestInterface::setStr2):
        * bindings/scripts/test/CPP/WebDOMTestInterface.h: Ditto.
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: Ditto.
        (webkit_dom_test_interface_get_str1):
        (webkit_dom_test_interface_get_str2):
        (webkit_dom_test_interface_set_str2):
        (webkit_dom_test_interface_set_property):
        (webkit_dom_test_interface_get_property):
        (webkit_dom_test_interface_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h: Ditto.
        * bindings/scripts/test/JS/JSTestInterface.cpp: Ditto.
        (WebCore::jsTestInterfaceStr1):
        (WebCore::jsTestInterfaceStr2):
        (WebCore::jsTestInterfaceStr3):
        (WebCore::JSTestInterface::put):
        (WebCore::setJSTestInterfaceStr2):
        (WebCore::setJSTestInterfaceStr3):
        * bindings/scripts/test/JS/JSTestInterface.h: Ditto.
        * bindings/scripts/test/ObjC/DOMTestInterface.h: Ditto.
        * bindings/scripts/test/ObjC/DOMTestInterface.mm: Ditto.
        (-[DOMTestInterface str1]):
        (-[DOMTestInterface str2]):
        (-[DOMTestInterface setStr2:]):
        (-[DOMTestInterface str3]):
        (-[DOMTestInterface setStr3:]):
        * bindings/scripts/test/V8/V8TestInterface.cpp: Ditto.
        (WebCore::TestInterfaceInternal::str1AttrGetter):
        (WebCore::TestInterfaceInternal::str2AttrGetter):
        (WebCore::TestInterfaceInternal::str2AttrSetter):
        (WebCore::ConfigureV8TestInterfaceTemplate):

2011-11-29  Leo Yang  <leo.yang@torchmobile.com.cn>

        Upstream platform/network/blackberry/ProxyServerBlackBerry.cpp
        https://bugs.webkit.org/show_bug.cgi?id=73288

        Reviewed by Antonio Gomes.

        Initial upstream, can't be built yet, no new tests.

        * platform/network/blackberry/ProxyServerBlackBerry.cpp: Added.
        (WebCore::proxyServersForURL):

2011-11-29  Jessie Berlin  <jberlin@apple.com>

        WKKeyValueStorageManagerGetKeyValueStorageOrigins may not report the correct list of origins
        the first time it is called.
        https://bugs.webkit.org/show_bug.cgi?id=73374 (<rdar://problem/10196057>)

        Reviewed by Brady Eidson.

        Add a callback for when the Storage Tracker is done loading the list of origins with Local
        Storage.

        * storage/StorageTracker.cpp:
        (WebCore::StorageTracker::StorageTracker):
        Keep track of whether the import from disk has been completed.
        (WebCore::StorageTracker::notifyFinishedImportingOriginIdentifiersOnMainThread):
        (WebCore::StorageTracker::finishedImportingOriginIdentifiers):
        Set m_finishedImportingOriginIdentifiers to true and tell the client.
        (WebCore::StorageTracker::syncImportOriginIdentifiers):
        When finished, notify the shared StorageTracker on the main thread.
        * storage/StorageTracker.h:
        (WebCore::StorageTracker::originsLoaded):

        * storage/StorageTrackerClient.h:
        Add didFinishLoadingOrigins.

2011-11-18  Nat Duca  <nduca@chromium.org>

        [chromium] Enable threaded compositing via CCThreadProxy::hasThread only
        https://bugs.webkit.org/show_bug.cgi?id=70838

        Reviewed by James Robinson.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::initialize):
        * platform/graphics/chromium/WebGLLayerChromium.cpp:
        (WebCore::WebGLLayerChromium::layerRendererContext):
        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
        (WebCore::CCHeadsUpDisplay::enabled):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::initialize):
        (WebCore::CCLayerTreeHost::context):
        (WebCore::CCLayerTreeHost::setNeedsAnimate):
        (WebCore::CCLayerTreeHost::setNeedsCommit):
        (WebCore::CCLayerTreeHost::setNeedsRedraw):
        (WebCore::CCLayerTreeHost::composite):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):
        * platform/graphics/chromium/cc/CCProxy.cpp:
        (WebCore::CCProxy::isMainThread):
        (WebCore::CCProxy::isImplThread):
        (WebCore::CCProxy::setMainThreadIsImplThread):
        * platform/graphics/chromium/cc/CCProxy.h:
        * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
        (WebCore::DebugScopedSetImplThread::DebugScopedSetImplThread):
        (WebCore::DebugScopedSetImplThread::~DebugScopedSetImplThread):

2011-11-29  Erik Arvidsson  <arv@chromium.org>

        WebIDL: Add support for static for JSC and V8
        https://bugs.webkit.org/show_bug.cgi?id=72998

        Reviewed by Adam Barth.

        WebIDL uses "static" for class methods. We used to use "[ClassMethod]". This change makes us use the WebIDL syntax instead.

        No new tests: Covered by existing tests.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GetFunctionName): Use isStatic instead.
        (GenerateOverloadedFunction): Ditto.
        (GenerateImplementation): Ditto.
        (GenerateParametersCheck): Ditto.
        (GenerateImplementationFunctionCall): Ditto.
        (GenerateConstructorDefinition): Ditto.
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateFunctionCallback): Ditto.
        (GenerateImplementation): Ditto.
        (GenerateFunctionCallString): Ditto.
        * bindings/scripts/IDLParser.pm:
        (ParseInterface): Set isStatic as needed.
        * bindings/scripts/IDLStructure.pm: Update regular expression to parse "static".
        * bindings/scripts/test/TestObj.idl: Use static instead of [ClassMethod].
        * storage/IDBKeyRange.idl: Ditto.

2011-11-29  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined a run-bindings-tests result.

        * bindings/scripts/test/JS/JSFloat64Array.h:

2011-11-10  Xiaomei Ji  <xji@chromium.org>

        --webkit-visual-word should be able to reach end of text, instead of end of line
        https://bugs.webkit.org/show_bug.cgi?id=72048

        Reviewed by Ryosuke Niwa.

        Revert r92223 -- webkit-visual-word should reach boundary of line.
        When there is no more left or right words in the same editing boundary and
        current position is an editable position, return start or end position in this
        editable content.

        Test: editing/selection/move-by-word-visually-textarea.html

        * editing/visible_units.cpp:
        (WebCore::collectWordBreaksInBoxInsideBlockWithSameDirectionality):
        (WebCore::collectWordBreaksInBoxInsideBlockWithDifferntDirectionality):
        (WebCore::leftWordPosition):
        (WebCore::rightWordPosition):

2011-11-29  Oliver Hunt  <oliver@apple.com>

        Allow WebCore to describe typed arrays to JSC
        https://bugs.webkit.org/show_bug.cgi?id=73355

        Reviewed by Gavin Barraclough.

        Update bindings codegen to report the data layout to JSC.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/test/JS/JSFloat64Array.cpp:
        (WebCore::JSFloat64Array::finishCreation):
        * bindings/scripts/test/JS/JSFloat64Array.h:

2011-11-29  Tony Chang  <tony@chromium.org>

        Rename some flexbox functions to be less confusing
        https://bugs.webkit.org/show_bug.cgi?id=73363

        Reviewed by Ojan Vafai.

        These methods no longer have anything to do with block/inline direction.

        No new tests, just renaming some functions.

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock):
        (WebCore::RenderFlexibleBox::layoutFlexItems):
        (WebCore::RenderFlexibleBox::runFreeSpaceAllocationAlgorithm):
        (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
        (WebCore::RenderFlexibleBox::alignChildren):
        * rendering/RenderFlexibleBox.h:

2011-11-29  Erik Arvidsson  <arv@chromium.org>

        Add support for [ClassMethod] to CodeGeneratorJS.pm
        https://bugs.webkit.org/show_bug.cgi?id=73342

        Reviewed by Adam Barth.

        If a method is annotated with [ClassMethod] it will become a method on the JS constructor object and it will
        call a static function on the C++ class. 

        This was previously only implemented in CodeGeneratorV8.pm so this brings JSC up to par.

        No new tests: Covered by bindings/scripts/test/

        * bindings/scripts/CodeGeneratorJS.pm:
        (GetFunctionName): Refactor to reduce code duplication.
        (GenerateHeader): Ditto.
        (GenerateOverloadedFunction): This now handles both prototype functions and constructor functions.
        (GenerateImplementation): Define class methods too. 
        (GenerateParametersCheck): Generate the right function access string.
        (GenerateImplementationFunctionCall): SVG properties are not static methods.
        (GenerateConstructorDefinition): For classes that have static methods we may now return function properties.
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::JSTestObjConstructor::getOwnPropertySlot): Ditto.
        (WebCore::JSTestObjConstructor::getOwnPropertyDescriptor): Ditto.
        (WebCore::jsTestObjConstructorFunctionClassMethod): Now calls a static function.
        (WebCore::jsTestObjConstructorFunctionClassMethodWithOptional): Ditto.
        * bindings/scripts/test/JS/JSTestObj.h:

2011-11-29  Sam Weinig  <sam@webkit.org>

        Remove unused JSDOMWrapperOwner
        https://bugs.webkit.org/show_bug.cgi?id=73357

        Reviewed by Adam Barth.

        * bindings/js/DOMWrapperWorld.cpp:
        (WebCore::DOMWrapperWorld::DOMWrapperWorld):
        * bindings/js/DOMWrapperWorld.h:
        (WebCore::DOMWrapperWorld::globalData):
        Remove JSDOMWrapperOwner. It is unused.

2011-11-29  Anders Carlsson  <andersca@apple.com>

        Use contentsToRootView when converting the mouse coordinates for the context menu key event
        https://bugs.webkit.org/show_bug.cgi?id=73352

        Reviewed by Adam Roben.

        No new tests: Already covered by existing tests.

        This is another step towards fixing https://bugs.webkit.org/show_bug.cgi?id=71945, by getting
        rid of a call to ScrollView::contentsToWindow.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::sendContextMenuEventForKey):

2011-11-15  Anders Carlsson  <andersca@apple.com>

        DragClient::dragSourceActionMaskForPoint should use root view coordinates
        https://bugs.webkit.org/show_bug.cgi?id=72409

        Reviewed by Sam Weinig.

        * page/DragClient.h:
        Rename parameter and remove obsolete comment.

        * page/DragController.cpp:
        (WebCore::DragController::delegateDragSourceAction):
        * page/DragController.h:
        Rename parameter.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::updateDragSourceActionsAllowed):
        Use contentsToRootView instead of contentsToWindow.

2011-11-15  Anders Carlsson  <andersca@apple.com>

        EditorClient::showCorrectionPanel should pass the string bounding box in root view coordinates
        https://bugs.webkit.org/show_bug.cgi?id=72408

        Reviewed by Sam Weinig.

        Rename windowRectForRange to rootViewRectForRange and use contentsToRootView instead of contentsToWindow.

        * editing/SpellingCorrectionController.cpp:
        (WebCore::SpellingCorrectionController::show):
        (WebCore::SpellingCorrectionController::correctionPanelTimerFired):
        (WebCore::SpellingCorrectionController::rootViewRectForRange):
        * editing/SpellingCorrectionController.h:
        
2011-11-29  Ojan Vafai  <ojan@chromium.org>

        invalid cast in WebCore::toRenderBox / WebCore::RenderBox::firstChildBox
        https://bugs.webkit.org/show_bug.cgi?id=72668

        Reviewed by David Hyatt.

        For new flexible boxes, we were setting childrenInline to true when
        merging anonymous blocks, which we should never do. Do the same thing
        we do for the deprecated flexboxes.

        Test: css3/flexbox/anonymous-block-merge-crash.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::removeChild):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::setChildrenInline):
        The default value of true was never used. Better to keep it explicit.

2011-11-28  Ryosuke Niwa  <rniwa@webkit.org>

        Crash in IsolateTracker::addFakeRunIfNecessary(), preceded by assertion failure (m_nestedIsolateCount >= 1)
        in IsolateTracker::exitIsolate()
        https://bugs.webkit.org/show_bug.cgi?id=69275

        Reviewed by Eric Seidel.

        The crash was caused by our false assumption that at most one isolated container exists between the start
        and the root when appending a new run. Fixed the crash by computing the actual number of isolated containers
        between the start and the root.

        Test: fast/text/nested-bidi-isolate-crash.html

        * rendering/InlineIterator.h:
        (WebCore::numberOfIsolateAncestors):
        (WebCore::IsolateTracker::IsolateTracker):
        (WebCore::InlineBidiResolver::appendRun):

2011-11-29  Oliver Hunt  <oliver@apple.com>

        Revert that last change, apparently it destroys everything in the world.

        * bindings/js/DOMWrapperWorld.h:
        * bindings/js/JSArrayBufferViewHelper.h:
        (WebCore::toJSArrayBufferView):
        * bindings/js/JSCSSRuleCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSCSSValueCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSDOMBinding.h:
        (WebCore::setInlineCachedWrapper):
        (WebCore::clearInlineCachedWrapper):
        (WebCore::getCachedWrapper):
        (WebCore::cacheWrapper):
        (WebCore::wrap):
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::history):
        (WebCore::JSDOMWindow::location):
        * bindings/js/JSDocumentCustom.cpp:
        (WebCore::JSDocument::location):
        (WebCore::toJS):
        * bindings/js/JSEventCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSHTMLCollectionCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSImageDataCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSSVGPathSegCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSStyleSheetCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSTrackCustom.cpp:
        (WebCore::toJS):

2011-11-29  Tony Chang  <tony@chromium.org>

        flex-align:stretch + max-height needs to clamp to max-height and position appropriately
        https://bugs.webkit.org/show_bug.cgi?id=70780

        Reviewed by David Hyatt.

        Test: css3/flexbox/flex-align-max.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::sizesToIntrinsicLogicalWidth): When laying out columns, if the flex item is stretching,
        we don't need to shrink wrap.
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::isColumnFlow): Switch to RenderStyle helper method.
        (WebCore::RenderFlexibleBox::alignChildrenBlockDirection): For columns, we don't need to do anything.
        For rows, handle max logical height by setting the height and recomputing (which will take max-height
        into consideration).
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::isColumnFlexFlow): Helper method.

2011-11-29  Tony Chang  <tony@chromium.org>

        [chromium] Remove unused variable (gcc 4.6 complains about this)
        https://bugs.webkit.org/show_bug.cgi?id=73335

        ../../third_party/WebKit/Source/WebCore/platform/graphics/chromium/cc/CCDamageTracker.cpp:296:19:
        error: variable 'oldReplicaMaskRect' set but not used [-Werror=unused-but-set-variable]

        * platform/graphics/chromium/cc/CCDamageTracker.cpp:
        (WebCore::CCDamageTracker::extendDamageForRenderSurface):

2011-11-29  Oliver Hunt  <oliver@apple.com>

        DOM wrapper cache doesn't need to use JSDOMWrapper
        https://bugs.webkit.org/show_bug.cgi?id=73333

        Reviewed by Sam Weinig.

        Make JSDOMWrapperCache use JSObject rather than JSDOMWrapper
        and propagate the type change out. 

        * bindings/js/DOMWrapperWorld.h:
        * bindings/js/JSArrayBufferViewHelper.h:
        (WebCore::toJSArrayBufferView):
        * bindings/js/JSCSSRuleCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSCSSValueCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSDOMBinding.h:
        (WebCore::setInlineCachedWrapper):
        (WebCore::clearInlineCachedWrapper):
        (WebCore::getCachedWrapper):
        (WebCore::cacheWrapper):
        (WebCore::wrap):
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::history):
        (WebCore::JSDOMWindow::location):
        * bindings/js/JSDocumentCustom.cpp:
        (WebCore::JSDocument::location):
        (WebCore::toJS):
        * bindings/js/JSEventCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSHTMLCollectionCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSImageDataCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSSVGPathSegCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSStyleSheetCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSTrackCustom.cpp:
        (WebCore::toJS):

2011-11-29  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, GTK build fix after r101392.

        * GNUmakefile.am: USE_WEBAUDIO_FFTW was removed, don't use it anymore.

2011-11-28  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: TextPrompt should show suggest above or under so that it has maximal height.
        https://bugs.webkit.org/show_bug.cgi?id=73239

        Reviewed by Pavel Feldman.

        Fixed suggest box vertical position / height calculation.
        Added round corners when suggest box is positioned under text prompt.

        * inspector/front-end/TextPrompt.js:
        (WebInspector.TextPrompt.SuggestBox.prototype._updateBoxPosition):
        * inspector/front-end/inspector.css:
        (.suggest-box.generic-suggest.under-anchor):

2011-11-29  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix the GTK+ port build after r101307.

        * GNUmakefile.list.am: Add missing files to compilation.

2011-11-29  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: split Preferences into Preferences and Capabilities.
        https://bugs.webkit.org/show_bug.cgi?id=73321

        Part of the Preferences defined in Settings.js are in fact backend capabilities.
        Split them into two separate objects for further capabilities refactoring.

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/DebuggerModel.js:
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel):
        (WebInspector.ElementsPanel.prototype.wasShown):
        (WebInspector.ElementsPanel.prototype._populateContextMenu):
        * inspector/front-end/NetworkItemView.js:
        (WebInspector.NetworkItemView):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._createTable):
        (WebInspector.NetworkLogView.prototype.switchToDetailedView):
        (WebInspector.NetworkLogView.prototype.switchToBriefView):
        (WebInspector.NetworkLogView.prototype._contextMenu):
        (WebInspector.NetworkDataGridNode.prototype.createCells):
        (WebInspector.NetworkDataGridNode.prototype.refreshResource):
        * inspector/front-end/ProfileDataGridTree.js:
        (WebInspector.ProfileDataGridNode.prototype.get data.formatMilliseconds):
        * inspector/front-end/ProfileView.js:
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype._enableDetailedHeapProfiles):
        * inspector/front-end/Resource.js:
        (WebInspector.Resource.prototype.populateImageSource):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype.wasShown):
        (WebInspector.ScriptsPanel.prototype._clearInterface):
        * inspector/front-end/Settings.js:
        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsScreen):
        * inspector/front-end/StylesSidebarPane.js:
        * inspector/front-end/inspector.js:

2011-11-29  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Make WebCore compile with Qt 5 and V8
        https://bugs.webkit.org/show_bug.cgi?id=73313

        Reviewed by Tor Arne Vestbø.

        * DerivedSources.pri: Add missing V8 specific IDL files to the build.
        * Target.pri: Ditto.
        * bindings/v8/ScriptController.h: V8 NPAPI bindings don't really support
        building with ENABLE_NETSCAPE_PLUGIN_API=0. These functions are always
        defined, so they also need to be declared.
        * platform/qt/PlatformSupportQt.cpp: 
        (WebCore::PlatformSupport::pluginScriptableObject): Don't return a
        scriptable object when compiling without npapi.
        * storage/StorageAreaImpl.cpp: Add missing Document.h include that is
        included implicitly with the Chromium build but not with Qt.
        * xml/XSLTProcessorQt.cpp: Ditto.

2011-11-29  Pavel Feldman  <pfeldman@google.com>

        Not reviewed: fixing clang build.

        * inspector/InspectorBaseAgent.h:
        (WebCore::InspectorBaseAgentInterface::getAgentCapabilities):
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::getAgentCapabilities):
        * inspector/InspectorDebuggerAgent.h:

2011-11-29  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: introduce generic capabilities concept, migrate debugger domain to generic capabilities.
        https://bugs.webkit.org/show_bug.cgi?id=73311

        This step is necessary for getting rid of the 'capability' aspect in the Preferences. As a result,
        single front-end will be applicable to multiple backend configurations.

        Reviewed by Yury Semikhatsky.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/Inspector.json:
        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::InspectorAgent):
        * inspector/InspectorApplicationCacheAgent.cpp:
        (WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):
        * inspector/InspectorBaseAgent.cpp:
        (WebCore::InspectorBaseAgentInterface::InspectorBaseAgentInterface):
        (WebCore::InspectorBaseAgentInterface::~InspectorBaseAgentInterface):
        * inspector/InspectorBaseAgent.h:
        (WebCore::InspectorBaseAgentInterface::getCapabilities):
        (WebCore::InspectorBaseAgentInterface::name):
        (WebCore::InspectorBaseAgent::InspectorBaseAgent):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::InspectorCSSAgent):
        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorController.h:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::InspectorDOMAgent):
        * inspector/InspectorDOMDebuggerAgent.cpp:
        (WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
        * inspector/InspectorDOMStorageAgent.cpp:
        (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
        * inspector/InspectorDatabaseAgent.cpp:
        (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
        (WebCore::InspectorDebuggerAgent::getCapabilities):
        * inspector/InspectorDebuggerAgent.h:
        * inspector/InspectorFileSystemAgent.cpp:
        (WebCore::InspectorFileSystemAgent::InspectorFileSystemAgent):
        * inspector/InspectorMetaAgent.cpp: Added.
        (WebCore::InspectorMetaAgent::~InspectorMetaAgent):
        (WebCore::InspectorMetaAgent::getCapabilities):
        (WebCore::InspectorMetaAgent::InspectorMetaAgent):
        * inspector/InspectorMetaAgent.h: Added.
        (WebCore::InspectorMetaAgent::create):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::InspectorPageAgent):
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::InspectorResourceAgent):
        * inspector/InspectorRuntimeAgent.cpp:
        (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
        * inspector/InspectorValues.h:
        (WebCore::InspectorArray::begin):
        (WebCore::InspectorArray::end):
        * inspector/InspectorWorkerAgent.cpp:
        (WebCore::InspectorWorkerAgent::InspectorWorkerAgent):
        * inspector/front-end/DebuggerModel.js:
        (WebInspector.DebuggerModel.prototype.enableDebugger):

2011-11-29  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Make WebKit/qt build with V8 and Qt 5
        https://bugs.webkit.org/show_bug.cgi?id=73315

        Reviewed by Kenneth Rohde Christiansen.

        For the Qt 5 / V8 build we use QJSEngine/QJSValue instead of
        QScriptEngine/QScriptValue.

        * bindings/v8/ScriptController.cpp:
        * bindings/v8/ScriptController.h:
        * bindings/v8/ScriptControllerQt.cpp:
        (WebCore::ScriptController::qtScriptEngine):

2011-11-29  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt][V8] Add missing ExceptionCode.h include for SVG bindings
        https://bugs.webkit.org/show_bug.cgi?id=73314

        Reviewed by Kenneth Rohde Christiansen.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNormalAttrSetter): Similarly to other places where we use DOM
        exceptions, make sure we include ExceptionCode.h here. It appears to be
        an implicit inclusion in the Chromium build, but it should be explicit
        like in the rest of the bindings.
        (GenerateFunctionCallback): Ditto.

2011-11-29  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: remove usage of innerHTML from inspector front-end
        https://bugs.webkit.org/show_bug.cgi?id=73305

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/FontView.js:
        (WebInspector.FontView.prototype._createContentIfNeeded):
        * inspector/front-end/ShortcutsScreen.js:
        (WebInspector.ShortcutsSection.prototype.addKey):
        (WebInspector.ShortcutsSection.prototype.addRelatedKeys):
        (WebInspector.ShortcutsSection.prototype.addAlternateKeys):
        (WebInspector.ShortcutsSection.prototype._addLine):
        (WebInspector.ShortcutsSection.prototype.renderSection):
        (WebInspector.ShortcutsSection.prototype._renderSequence):
        (WebInspector.ShortcutsSection.prototype._renderKey):
        (WebInspector.ShortcutsSection.prototype.get _height):
        (WebInspector.ShortcutsSection.prototype._createSpan):
        (WebInspector.ShortcutsSection.prototype._joinNodes):
        * inspector/front-end/WelcomeView.js:
        (WebInspector.WelcomeView.prototype.addMessage):

2011-11-29  Zoltan Herczeg  <zherczeg@webkit.org>

        [Qt] Couple of tests have different results on 64 bit and/or in debug mode compared to 32 bit and/or release mode
        https://bugs.webkit.org/show_bug.cgi?id=52810

        Reviewed by Nikolas Zimmermann.

        This avoids precision loss in getCTM, which is used whenever mapping repaint rects to a parent coordinate system
        - it affects several DRT results on Mac, all of them are progressions.

        * svg/SVGPreserveAspectRatio.cpp:
        (WebCore::SVGPreserveAspectRatio::getCTM): Use double-precision internally.

2011-11-25  Pavel Podivilov  <podivilov@chromium.org>

        Web Inspector: support concatenated source maps.
        https://bugs.webkit.org/show_bug.cgi?id=73138

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/CompilerSourceMapping.js:
        (WebInspector.ClosureCompilerSourceMapping):
        (WebInspector.ClosureCompilerSourceMapping.prototype.loadSourceCode):
        (WebInspector.ClosureCompilerSourceMapping.prototype._parseMappingPayload):
        (WebInspector.ClosureCompilerSourceMapping.prototype._parseSections):
        (WebInspector.ClosureCompilerSourceMapping.prototype._parseMap):
        (WebInspector.ClosureCompilerSourceMapping.prototype._canonicalizeURL):
        * inspector/front-end/inspector.js:
        (WebInspector.installSourceMappingForTest):

2011-11-29  Mario Sanchez Prada  <msanchez@igalia.com>

        [Gtk] Regression: text-inserted events lack text inserted and current line
        https://bugs.webkit.org/show_bug.cgi?id=72830

        Reviewed by Chris Fleizach.

        Replace the emission of the old (and now deprecated) AtkObject's
        'text-changed:insert' and 'text-changed:remove' signals with the
        new 'text-insert' and 'text-remove' ones, which are better and
        less fragile since they emit the modified text too, along with the
        typical 'offset' and 'count' values associated to the change.

        Also, change the signature of the nodeTextChangeNotification() and
        nodeTextChangePlatformNotification() to allow specifying the text
        being modified from the place we better know about it, that is,
        the text editing commands.

        * accessibility/gtk/AXObjectCacheAtk.cpp:
        (WebCore::emitTextChanged): Emit 'text-insert' and 'text-remove',
        instead of the old and now deprecated 'text-changed' signal.
        (WebCore::AXObjectCache::nodeTextChangePlatformNotification):
        Update this function to receive a String with the text being
        modified, instead of just the number of characters.

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::nodeTextChangeNotification): Update this
        function to receive a String with the text being modified.
        * accessibility/AXObjectCache.h:
        (WebCore::AXObjectCache::nodeTextChangeNotification): Ditto.
        (WebCore::AXObjectCache::nodeTextChangePlatformNotification): Ditto.

        Adapt the text editing commants to pass the whole text string
        being modified, instead of just its number of characters.

        * editing/AppendNodeCommand.cpp:
        (WebCore::sendAXTextChangedIgnoringLineBreaks): Adapt to the new
        signature of nodeTextChangeNotification(), so pass the whole text.
        * editing/DeleteFromTextNodeCommand.cpp:
        (WebCore::DeleteFromTextNodeCommand::doApply): Ditto.
        (WebCore::DeleteFromTextNodeCommand::doUnapply): Ditto.
        * editing/InsertIntoTextNodeCommand.cpp:
        (WebCore::InsertIntoTextNodeCommand::doApply): Ditto.
        (WebCore::InsertIntoTextNodeCommand::doUnapply): Ditto.
        * editing/InsertNodeBeforeCommand.cpp:
        (WebCore::InsertNodeBeforeCommand::doApply): Ditto.
        (WebCore::InsertNodeBeforeCommand::doUnapply): Ditto.

        Update mac, win and chromium's specific parts of AXObjectCache to
        match the new signature for nodeTextChangePlatformNotification(),
        which won't affect their behaviour as they were not implementing
        that method anyway.

        * accessibility/chromium/AXObjectCacheChromium.cpp:
        (WebCore::AXObjectCache::nodeTextChangePlatformNotification):
        * accessibility/mac/AXObjectCacheMac.mm:
        (WebCore::AXObjectCache::nodeTextChangePlatformNotification):
        * accessibility/win/AXObjectCacheWin.cpp:
        (WebCore::AXObjectCache::nodeTextChangePlatformNotification):

2011-11-29  Mario Sanchez Prada  <msanchez@igalia.com>

        [Gtk] Regression: Push buttons no longer expose their displayed text/name
        https://bugs.webkit.org/show_bug.cgi?id=72804

        Reviewed by Chris Fleizach.

        Use AccessibilityObject::title() as the last fallback in
        webkit_accessible_get_name() right before relying on the
        stringValue() method, if no better alternative was found.

        Test: platform/gtk/accessibility/button-accessible-name.html

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (webkit_accessible_get_name): Use title() as the last fallback
        method before using stringValue().

2011-11-29  Hyowon Kim  <hw1008.kim@samsung.com>

        [Texmap][EFL] Accelerated compositing support using TextureMapper on EFL port
        https://bugs.webkit.org/show_bug.cgi?id=73111

        This patch adds Texture Mapper related files to PlatformEfl.cmake
        and removes Qt-specific types in TextureMapperNode.cpp.

        Reviewed by Noam Rosenthal.

        * PlatformEfl.cmake:
        * platform/graphics/GraphicsLayer.cpp:
        * platform/graphics/GraphicsLayer.h:
        * platform/graphics/efl/GraphicsLayerEfl.cpp: Removed.
        * platform/graphics/efl/GraphicsLayerEfl.h: Removed.
        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::solveCubicBezierFunction):
        (WebCore::solveStepsFunction):

2011-11-28  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: put inspector agents into a vector in the InspectorController.
        https://bugs.webkit.org/show_bug.cgi?id=73225

        Inspector controller should maintain agents in the vector, while accessing
        them using the same base agent interface. We should not manually call
        base agent methods on their concrete instances.

        Reviewed by Yury Semikhatsky.

        * inspector/CodeGeneratorInspector.py:
        (DomainNameFixes.get_fixed_data.Res):
        (DomainNameFixes):
        (Generator.go):
        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::InspectorAgent):
        (WebCore::PostWorkerNotificationToFrontendTask::performTask):
        * inspector/InspectorAgent.h:
        (WebCore::InspectorAgent::create):
        * inspector/InspectorApplicationCacheAgent.cpp:
        (WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):
        * inspector/InspectorApplicationCacheAgent.h:
        (WebCore::InspectorApplicationCacheAgent::create):
        * inspector/InspectorBaseAgent.cpp:
        * inspector/InspectorBaseAgent.h:
        (WebCore::InspectorBaseAgentInterface::InspectorBaseAgentInterface):
        (WebCore::InspectorBaseAgentInterface::~InspectorBaseAgentInterface):
        (WebCore::InspectorBaseAgentInterface::setFrontend):
        (WebCore::InspectorBaseAgentInterface::clearFrontend):
        (WebCore::InspectorBaseAgentInterface::restore):
        (WebCore::InspectorBaseAgentInterface::inspectedPageDestroyed):
        (WebCore::InspectorBaseAgent::~InspectorBaseAgent):
        (WebCore::InspectorBaseAgent::registerDispatcher):
        (WebCore::InspectorBaseAgent::InspectorBaseAgent):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::InspectorCSSAgent):
        * inspector/InspectorCSSAgent.h:
        (WebCore::InspectorCSSAgent::create):
        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
        * inspector/InspectorConsoleAgent.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        (WebCore::InspectorController::inspectedPageDestroyed):
        (WebCore::InspectorController::connectFrontend):
        (WebCore::InspectorController::disconnectFrontend):
        (WebCore::InspectorController::restoreInspectorStateFromCookie):
        * inspector/InspectorController.h:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::InspectorDOMAgent):
        * inspector/InspectorDOMAgent.h:
        * inspector/InspectorDOMDebuggerAgent.cpp:
        (WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
        * inspector/InspectorDOMDebuggerAgent.h:
        (WebCore::InspectorDOMDebuggerAgent::inspectedPageDestroyed):
        * inspector/InspectorDOMStorageAgent.cpp:
        (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
        * inspector/InspectorDOMStorageAgent.h:
        * inspector/InspectorDatabaseAgent.cpp:
        (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
        * inspector/InspectorDatabaseAgent.h:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
        * inspector/InspectorDebuggerAgent.h:
        (WebCore::InspectorDebuggerAgent::inspectedPageDestroyed):
        * inspector/InspectorFileSystemAgent.cpp:
        (WebCore::InspectorFileSystemAgent::InspectorFileSystemAgent):
        * inspector/InspectorFileSystemAgent.h:
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::InspectorPageAgent):
        * inspector/InspectorPageAgent.h:
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
        * inspector/InspectorProfilerAgent.h:
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::InspectorResourceAgent):
        * inspector/InspectorResourceAgent.h:
        (WebCore::InspectorResourceAgent::create):
        * inspector/InspectorRuntimeAgent.cpp:
        (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
        * inspector/InspectorRuntimeAgent.h:
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
        * inspector/InspectorTimelineAgent.h:
        * inspector/InspectorWorkerAgent.cpp:
        (WebCore::InspectorWorkerAgent::InspectorWorkerAgent):
        * inspector/InspectorWorkerAgent.h:
        * inspector/PageConsoleAgent.h:
        (WebCore::PageConsoleAgent::create):
        * inspector/PageRuntimeAgent.h:
        (WebCore::PageRuntimeAgent::create):
        * inspector/WorkerConsoleAgent.h:
        (WebCore::WorkerConsoleAgent::create):
        * inspector/WorkerInspectorController.cpp:
        (WebCore::WorkerInspectorController::WorkerInspectorController):
        (WebCore::WorkerInspectorController::connectFrontend):
        * inspector/WorkerRuntimeAgent.h:
        (WebCore::WorkerRuntimeAgent::create):

2011-11-25  Philippe Normand  <pnormand@igalia.com>

        [GTK] Improve FontMetrics accuracy
        https://bugs.webkit.org/show_bug.cgi?id=72614

        Reviewed by Martin Robinson.
        Patch by Nikolas Zimmermann.

        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
        (WebCore::setCairoFontOptionsFromFontConfigPattern):
        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
        (WebCore::SimpleFontData::platformInit):

2011-11-29  Nikolas Zimmermann  <nzimmermann@rim.com>

        SVG <path> DRT dumps have rounding problems across platforms
        https://bugs.webkit.org/show_bug.cgi?id=47467

        Reviewed by Zoltan Herczeg.

        Next step towards fixing rounding differences across 32/64, release/debug builds and various platforms.
        Switch TextStream::operator<<(double) and SVGPathStringBuilder to use the newly introduced String::number(double, ConversionMode, precision)
        instead of using snprintf/String::format() directly. This uses wtf/dtoas rounding facilities and has proven to be faster & more precise!

        In order to make use of these new floating-point dumping facilities following work was done:
        - The InlineBox logicalHeight is still integer based, while logicalWidth switched to float recently, continue that work and switch logicalTop/Bottom
          to floats as well. This allows us to avoid calling enclosingIntRect() when figuring out the bounds of a RenderSVGText.
          Instead DRT can ask for the floating point metrics and round on its own to the desired precision. It's not obviously clear why this makes a difference.
          Consider a rect with width 9.99999999, enclosingIntRect() would yield 10 as width, on this machine, but another may store 10.000000003, yielding 11.
          That's part of the reason why this is more safe and ultimately should eliminate the rounding error induced by this in the DRT results.

        - absoluteClippedOverflowRectForRepaint(): when figuring out the repaint rect we'd retrieve the repaintRectInLocalCoordinates(), and call
          enclosingIntRect on it. Instead of doing that, to avoid the error described above, add a computeFloatRectForRepaint() call to RenderObject that's
          only used in a SVG subtree, just like its done for nodeAtFloatPoint. Do a single final enclosingIntRect() step when crossing the boundary from
          the SVG subtree in RenderSVGRoot to its parent, thus reducing the rounding instabilities.

        - The new String::number() implementation enforces a unique zero eliminating the 0.0 vs -0.0 issue for free.

        This has been tested on Gtk&Mac - and requires lots of new baseline. The hope is to be able to share a lot more with Mac now, except for obvious
        font family differences, that influence RenderSVGInlineText/Text results, and thus all containers that contains such objects.

        * platform/text/TextStream.cpp:
        (WebCore::TextStream::operator<<):
        * rendering/InlineBox.cpp:
        (WebCore::InlineBox::logicalHeight):
        * rendering/InlineBox.h:
        (WebCore::InlineBox::virtualLogicalHeight):
        (WebCore::InlineBox::calculateBoundaries):
        (WebCore::InlineBox::pixelSnappedLogicalTop):
        (WebCore::InlineBox::pixelSnappedLogicalBottom):
        (WebCore::InlineBox::logicalTop):
        (WebCore::InlineBox::logicalBottom):
        (WebCore::InlineBox::setLogicalTop):
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
        (WebCore::InlineFlowBox::addBoxShadowVisualOverflow):
        (WebCore::InlineFlowBox::addBorderOutsetVisualOverflow):
        (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
        * rendering/InlineTextBox.h:
        (WebCore::InlineTextBox::calculateBoundaries):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::paintOutline):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::computeFloatRectForRepaint):
        * rendering/RenderObject.h:
        * rendering/RenderText.cpp:
        (WebCore::RenderText::absoluteRectsForRange):
        (WebCore::RenderText::absoluteQuads):
        (WebCore::RenderText::absoluteQuadsForRange):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::hasFractions):
        (WebCore::formatNumberRespectingIntegers):
        (WebCore::operator<<):
        (WebCore::write):
        * rendering/RenderTreeAsText.h:
        * rendering/TrailingFloatsRootInlineBox.h:
        (WebCore::TrailingFloatsRootInlineBox::virtualLogicalHeight):
        * rendering/svg/RenderSVGForeignObject.cpp:
        (WebCore::RenderSVGForeignObject::computeFloatRectForRepaint):
        * rendering/svg/RenderSVGForeignObject.h:
        * rendering/svg/RenderSVGInline.cpp:
        (WebCore::RenderSVGInline::computeFloatRectForRepaint):
        * rendering/svg/RenderSVGInline.h:
        * rendering/svg/RenderSVGInlineText.cpp:
        (WebCore::RenderSVGInlineText::floatLinesBoundingBox):
        (WebCore::RenderSVGInlineText::linesBoundingBox):
        (WebCore::RenderSVGInlineText::computeNewScaledFontForStyle):
        * rendering/svg/RenderSVGInlineText.h:
        (WebCore::RenderSVGInlineText::objectBoundingBox):
        * rendering/svg/RenderSVGModelObject.cpp:
        (WebCore::RenderSVGModelObject::computeFloatRectForRepaint):
        * rendering/svg/RenderSVGModelObject.h:
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
        * rendering/svg/RenderSVGRoot.h:
        * rendering/svg/RenderSVGText.cpp:
        (WebCore::RenderSVGText::computeRectForRepaint):
        (WebCore::RenderSVGText::computeFloatRectForRepaint):
        * rendering/svg/RenderSVGText.h:
        * rendering/svg/SVGInlineFlowBox.cpp:
        (WebCore::SVGInlineFlowBox::calculateBoundaries):
        * rendering/svg/SVGInlineFlowBox.h:
        (WebCore::SVGInlineFlowBox::virtualLogicalHeight):
        (WebCore::SVGInlineFlowBox::setLogicalHeight):
        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::calculateBoundaries):
        * rendering/svg/SVGInlineTextBox.h:
        (WebCore::SVGInlineTextBox::virtualLogicalHeight):
        (WebCore::SVGInlineTextBox::setLogicalHeight):
        (WebCore::SVGInlineTextBox::selectionHeight):
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
        (WebCore::SVGRenderSupport::computeFloatRectForRepaint):
        * rendering/svg/SVGRenderSupport.h:
        * rendering/svg/SVGRenderTreeAsText.cpp:
        (WebCore::operator<<):
        (WebCore::roundedFloatRect):
        (WebCore::writeRenderSVGTextBox):
        (WebCore::writeSVGText):
        (WebCore::writeSVGInlineText):
        * rendering/svg/SVGRenderTreeAsText.h:
        * rendering/svg/SVGRootInlineBox.cpp:
        (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
        (WebCore::SVGRootInlineBox::layoutChildBoxes):
        (WebCore::SVGRootInlineBox::layoutRootBox):
        * rendering/svg/SVGRootInlineBox.h:
        (WebCore::SVGRootInlineBox::virtualLogicalHeight):
        (WebCore::SVGRootInlineBox::setLogicalHeight):
        * svg/SVGPathStringBuilder.cpp:
        (WebCore::SVGPathStringBuilder::moveTo):
        (WebCore::SVGPathStringBuilder::lineTo):
        (WebCore::SVGPathStringBuilder::lineToHorizontal):
        (WebCore::SVGPathStringBuilder::lineToVertical):
        (WebCore::SVGPathStringBuilder::curveToCubic):
        (WebCore::SVGPathStringBuilder::curveToCubicSmooth):
        (WebCore::SVGPathStringBuilder::curveToQuadratic):
        (WebCore::SVGPathStringBuilder::curveToQuadraticSmooth):
        (WebCore::SVGPathStringBuilder::arcTo):

2011-11-28  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: remove WebInspector.linkifyURL and TreeElement.titleHTML
        https://bugs.webkit.org/show_bug.cgi?id=73217

        Reviewed by Pavel Feldman.

        * inspector/front-end/AuditFormatters.js:
        (WebInspector.applyFormatters):
        * inspector/front-end/AuditResultView.js:
        (WebInspector.AuditCategoryResultPane.prototype._appendResult):
        * inspector/front-end/AuditRules.js:
        (WebInspector.AuditRules.GzipRule.prototype.doRun):
        (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.evalCallback.selectorsCallback):
        (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun):
        (WebInspector.AuditRules.CssInHeadRule.prototype.doRun):
        * inspector/front-end/AuditsPanel.js:
        (WebInspector.AuditRuleResult):
        (WebInspector.AuditRuleResult.linkifyDisplayName):
        (WebInspector.AuditRuleResult.prototype.addSnippet):
        (WebInspector.AuditRuleResult.prototype.addFormatted):
        (WebInspector.AuditRuleResult.prototype._append):
        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeElement.prototype.adjustCollapsedRange):
        * inspector/front-end/ObjectPropertiesSection.js:
        (WebInspector.ObjectPropertiesSection.prototype.updateProperties):
        * inspector/front-end/ResourceHeadersView.js:
        (WebInspector.ResourceHeadersView.prototype._formatHeader):
        (WebInspector.ResourceHeadersView.prototype._formatParameter):
        (WebInspector.ResourceHeadersView.prototype._refreshURL):
        (WebInspector.ResourceHeadersView.prototype._refreshUrlFragment):
        (WebInspector.ResourceHeadersView.prototype._refreshRequestPayload):
        (WebInspector.ResourceHeadersView.prototype._refreshParms):
        (WebInspector.ResourceHeadersView.prototype._refreshHTTPInformation):
        (WebInspector.ResourceHeadersView.prototype._refreshHeaders):
        * inspector/front-end/ResourceUtils.js:
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
        * inspector/front-end/WorkersSidebarPane.js:
        (WebInspector.WorkersSidebarPane.prototype.addWorker):
        * inspector/front-end/treeoutline.js:
        (TreeElement.prototype._setListItemNodeContent):

2011-11-29  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r101302.
        http://trac.webkit.org/changeset/101302
        https://bugs.webkit.org/show_bug.cgi?id=73293

        massive crashes on gtk/win bots - m_bytes assertion fires
        (Requested by WildFox on #webkit).

        * platform/image-decoders/ImageDecoder.cpp:
        (WebCore::ImageFrame::setSize):

2011-11-29  Sean Wang  <Xuewen.Wang@torchmobile.com.cn>

        Upstream BlackBerry porting of platform/image-decoders
        https://bugs.webkit.org/show_bug.cgi?id=73118

        Reviewed by Daniel Bates.

        Initial upstream, can't be built yet, no test cases.

        The initial author is David Tapuska <dtapuska@rim.com>.

        * platform/image-decoders/blackberry/JPEGImageDecoder.cpp: Added.
        (WebCore::libInit):
        (WebCore::ImageReader::ImageReader):
        (WebCore::imgDecodeSetup):
        (WebCore::ImageReader::updateData):
        (WebCore::ImageReader::setSize):
        (WebCore::ImageReader::sizeExtract):
        (WebCore::ImageReader::decode):
        (WebCore::JPEGImageDecoder::JPEGImageDecoder):
        (WebCore::JPEGImageDecoder::setData):
        (WebCore::JPEGImageDecoder::isSizeAvailable):
        (WebCore::JPEGImageDecoder::frameBufferAtIndex):
        * platform/image-decoders/blackberry/JPEGImageDecoder.h: Added.
        (WebCore::JPEGImageDecoder::filenameExtension):
        (WebCore::JPEGImageDecoder::supportsAlpha):

2011-11-28  David Grogan  <dgrogan@chromium.org>

        WebWorkerRunLoop wrapper around WorkerRunLoop
        https://bugs.webkit.org/show_bug.cgi?id=71757

        Reviewed by Darin Fisher.

        No new tests - IndexedDB tests forthcoming.

        * platform/chromium/PlatformSupport.h: Add two methods that allow
        WebCore to notify chromium when workers start and stop.
        * workers/WorkerThread.cpp:
        (WebCore::WorkerThread::workerThread): Call into PlatformSupport when
        the worker's runloop is started and stopped.

2011-11-29  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Filters] Filters do not render correctly when the layer has a transform
        https://bugs.webkit.org/show_bug.cgi?id=73077

        Reviewed by Dean Jackson.

        Corrected the root layer that was used when no transform was applied.
        Using PaintLayerAppliedTransform when calling paintLayer again, to avoid
        applying the transform inside the filter's graphics context. Now we apply that
        on the result image.

        Tests: css3/filters/filter-with-transform.html
               css3/filters/nested-filter.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayer):

2011-11-28  Wei Charles  <charles.wei@torchmobile.com.cn>

        [blackberry] Upstream BlackBerry porting of plugin framework
        https://bugs.webkit.org/show_bug.cgi?id=73185

        Reviewed by Daniel Bates.

        No new tests for now.

        * plugins/blackberry: Added.
        * plugins/blackberry/PluginDataBlackBerry.cpp: Added.
        * plugins/blackberry/PluginPackageBlackBerry.cpp: Added.

2011-11-28  Noel Gordon  <noel.gordon@gmail.com>

        [chromium] Remove V8MessagePortCustom.h from the gyp projects
        https://bugs.webkit.org/show_bug.cgi?id=73281

        Reviewed by David Levin.

        V8MessagePortCustom.h was removed in r101118

        * WebCore.gypi: remove bindings\v8\custom\V8MessagePortCustom.h

2011-11-28  Leo Yang  <leo.yang@torchmobile.com.cn>

        Upstream the BlackBerry porting of SocketStream
        https://bugs.webkit.org/show_bug.cgi?id=73283

        Reviewed by Daniel Bates.

        Other main contributors:
        Joe Mason <jmason@rim.com>
        Lyon Chen <liachen@rim.com>

        Initial upstream, can't be built yet, no new tests.

        * platform/network/blackberry/SocketStreamError.h: Added.
        (WebCore::SocketStreamError::SocketStreamError):
        * platform/network/blackberry/SocketStreamHandle.h: Added.
        (WebCore::SocketStreamHandle::create):
        * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp: Added.
        (WebCore::SocketStreamHandle::SocketStreamHandle):
        (WebCore::SocketStreamHandle::~SocketStreamHandle):
        (WebCore::SocketStreamHandle::platformSend):
        (WebCore::SocketStreamHandle::platformClose):
        (WebCore::SocketStreamHandle::didReceiveAuthenticationChallenge):
        (WebCore::SocketStreamHandle::receivedCredential):
        (WebCore::SocketStreamHandle::receivedRequestToContinueWithoutCredential):
        (WebCore::SocketStreamHandle::receivedCancellation):
        (WebCore::SocketStreamHandle::notifyStatusReceived):
        (WebCore::SocketStreamHandle::notifyDataReceived):
        (WebCore::SocketStreamHandle::notifyReadyToSendData):
        (WebCore::SocketStreamHandle::notifyClose):

2011-11-28  Yongjun Zhang  <yongjun_zhang@apple.com>

        Size of ResourceRequestBase could be reduced by using bitfields.
        https://bugs.webkit.org/show_bug.cgi?id=73271

        Reviewed by Alexey Proskuryakov.

        Add bitfield for bool members in ResourceRequestBase to reduce its memory size.

        * platform/network/ResourceRequestBase.h:

2011-11-28  Yuta Kitamura  <yutak@chromium.org>

        WebSocket: Split Hixie76 length-prefixed frames aren't handled correctly
        https://bugs.webkit.org/show_bug.cgi?id=68522

        Reviewed by Kent Tamura.

        Test: http/tests/websocket/tests/hixie76/split-binary-frame-header.html

        * websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::processFrameHixie76):
        Do not consume the data if the length field is not finished.

2011-11-28  Stephen White  <senorblanco@chromium.org>

        [chromium] Fix SVG filters when running in accelerated drawing mode.
        https://bugs.webkit.org/show_bug.cgi?id=73249

        Reviewed by Kenneth Russell.

        Test: platform/chromium/compositing/accelerated-drawing/svg-filters.html

        * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
        (WebCore::LayerTextureUpdaterSkPicture::prepareToUpdate):
        When doing accelerated drawing, mark the PlatformContextSkia as
        deferred.
        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::drawNeedsCopy):
        When doing a cross-context draw, if the destination context is 
        deferred, copy the image.  Also refactor conditions under which the
        image is copied into a new function.
        (WebCore::ImageBuffer::draw):
        (WebCore::ImageBuffer::drawPattern):
        Use the refactored function for conditional copies.
        * platform/graphics/skia/PlatformContextSkia.cpp:
        (WebCore::PlatformContextSkia::PlatformContextSkia):
        * platform/graphics/skia/PlatformContextSkia.h:
        (WebCore::PlatformContextSkia::isDeferred):
        (WebCore::PlatformContextSkia::setDeferred):
        Add m_isDeferred flag, initializer and accessors.

2011-11-29  Roland Steiner  <rolandsteiner@chromium.org>

        <style scoped>: add ENABLE(STYLE_SCOPED) flag to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=72848

        Reviewed by Dimitri Glazkov.

        No new tests. (no code)

        * Configurations/FeatureDefines.xcconfig:
        * GNUmakefile.am:

2011-11-28  Vangelis Kokkevis  <vangelis@chromium.org>

        [chromium] Disable compositing for RTL pages even in forceCompositingMode
        https://bugs.webkit.org/show_bug.cgi?id=73195

        Reviewed by James Robinson.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):

2011-11-29  Roland Steiner  <rolandsteiner@chromium.org>

        From @keyframes rules with the same name, the last rule should be used
        https://bugs.webkit.org/show_bug.cgi?id=73113

        Have later rules override previously stored rules.

        Reviewed by Simon Fraser.

        Test: animations/duplicated-keyframes-name.html

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::addKeyframeStyle):

2011-11-28  Jacky Jiang  <zhajiang@rim.com>

        Upstream BlackBerry porting of page.
        https://bugs.webkit.org/show_bug.cgi?id=73143

        Reviewed by Daniel Bates.

        Upstream BlackBerry porting of WebCore/page.
        Define DragImageRef for BlackBerry platform.

        Initial upstream, can't be built yet, no test cases.

        * page/blackberry/DragControllerBlackBerry.cpp: Added.
        (WebCore::DragController::isCopyKeyDown):
        (WebCore::DragController::maxDragImageSize):
        (WebCore::DragController::cleanupAfterSystemDrag):
        (WebCore::DragController::dragOperation):
        * page/blackberry/EventHandlerBlackBerry.cpp: Added.
        (WebCore::EventHandler::eventActivatedView):
        (WebCore::EventHandler::passMouseMoveEventToSubframe):
        (WebCore::EventHandler::passMousePressEventToSubframe):
        (WebCore::EventHandler::passMouseReleaseEventToSubframe):
        (WebCore::EventHandler::passWheelEventToWidget):
        (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
        (WebCore::EventHandler::tabsToAllFormControls):
        (WebCore::EventHandler::accessKeyModifiers):
        (WebCore::EventHandler::focusDocumentView):
        (WebCore::EventHandler::createDraggingClipboard):
        * page/blackberry/FrameBlackBerry.cpp: Added.
        (WebCore::Frame::dragImageForSelection):
        * platform/DragImage.h:

2011-11-28  Shawn Singh  <shawnsingh@chromium.org>

        [chromium] Create CCDamageTracker class to determine regions of change for a surface.
        https://bugs.webkit.org/show_bug.cgi?id=72520

        Reviewed by James Robinson.

        Added CCDamageTrackerTest and updated other tests.

        * WebCore.gypi:
        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::drawLayersOntoRenderSurfaces):
        (WebCore::LayerRendererChromium::drawLayer):
        * platform/graphics/chromium/cc/CCDamageTracker.cpp: Added.
        (WebCore::CCDamageTracker::create):
        (WebCore::CCDamageTracker::CCDamageTracker):
        (WebCore::CCDamageTracker::~CCDamageTracker):
        (WebCore::CCDamageTracker::updateDamageRectForNextFrame):
        (WebCore::CCDamageTracker::removeRectFromCurrentFrame):
        (WebCore::CCDamageTracker::saveRectForNextFrame):
        (WebCore::CCDamageTracker::computeDamageFromActiveLayers):
        (WebCore::CCDamageTracker::computeDamageFromSurfaceMask):
        (WebCore::CCDamageTracker::computeDamageFromLeftoverRects):
        (WebCore::CCDamageTracker::extendDamageForLayer):
        (WebCore::CCDamageTracker::extendDamageForRenderSurface):
        * platform/graphics/chromium/cc/CCDamageTracker.h: Added.
        (WebCore::CCDamageTracker::currentDamageRect):
        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
        (WebCore::CCLayerImpl::resetAllChangeTrackingForSubtree):
        * platform/graphics/chromium/cc/CCLayerImpl.h:
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::paintLayerContents):
        (WebCore::CCLayerTreeHost::updateCompositorResources):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):
        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h:
        (WebCore::CCLayerTreeHostCommon::renderSurfaceContributesToTarget):
        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
        (WebCore::CCRenderSurface::CCRenderSurface):
        (WebCore::CCRenderSurface::dumpSurface):
        (WebCore::CCRenderSurface::surfacePropertyChangedOnlyFromDescendant):
        * platform/graphics/chromium/cc/CCRenderSurface.h:
        (WebCore::CCRenderSurface::damageTracker):

2011-11-28  Luke Macpherson   <macpherson@chromium.org>

        Implement CSSPropertySize in CSSStyleApplyProperty.
        https://bugs.webkit.org/show_bug.cgi?id=73000

        Reviewed by Andreas Kling.

        This refactoring moves the implementation of the page size calculation into CSSStyleApplyProperty
        and removes the existing code from CSSStyleSelector.

        No new tests / refactoring only.

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyPageSize::mmLength):
        (WebCore::ApplyPropertyPageSize::inchLength):
        (WebCore::ApplyPropertyPageSize::pageSizeFromName):
        (WebCore::ApplyPropertyPageSize::applyInheritValue):
        (WebCore::ApplyPropertyPageSize::applyInitialValue):
        (WebCore::ApplyPropertyPageSize::applyValue):
        (WebCore::ApplyPropertyPageSize::createHandler):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSStyleSelector.h:

2011-11-28  Timothy Hatcher  <timothy@apple.com>

        Add support for knowing when a TreeElement is added or changed anywhere in a TreeOutline.

        Reviewed by Brian Weinstein.

        * inspector/front-end/treeoutline.js:
        (TreeOutline.prototype.appendChild): Call onadd if it exists.
        (TreeOutline.prototype.insertChild): Ditto.
        (TreeOutline.prototype._treeElementDidChange): Added. Call onchange if it exists.
        (TreeElement.prototype.set title): Call didChange.
        (TreeElement.prototype.set titleHTML): Ditto.
        (TreeElement.prototype.set tooltip): Ditto.
        (TreeElement.prototype.set hasChildren): Ditto.
        (TreeElement.prototype._fireDidChange): Added. Call TreeOutline._treeElementDidChange.
        (TreeElement.prototype.didChange): Added. Schedule a timeout for _fireDidChange.
        (TreeElement.prototype.expand): Move the code that sets the expanded flag to the beginning
        which is before onpopulate. Since onpopulate can add elements and call onadd, this makes
        sure the expanded flag is true before calling those functions.

2011-11-28  Timothy Hatcher  <timothy@apple.com>

        Skip selecting TreeElements that are hidden when keyboard navigating.

        We already skipped non-selectable tree elements in the common cases, this just makes selectable
        take the hidden flag into account.

        Reviewed by Brian Weinstein.

        * inspector/front-end/treeoutline.js:
        (TreeOutline.prototype._treeKeyDown): Skip non-selectable elements when pressing Left or Right,
        similar to what we already do when pressing Up and Down.
        (TreeElement): Set _selectable to true.
        (TreeElement.prototype.get selectable): Added. Return false when hidden.
        (TreeElement.prototype.set selectable): Added. Set _selectable.
        (TreeElement.prototype.traverseNextTreeElement): Renamed skipHidden to skipUnrevealed to prevent confusion with
        the hidden property of TreeElement.
        (TreeElement.prototype.traversePreviousTreeElement): Ditto.

2011-11-28  Timothy Hatcher  <timothy@apple.com>

        Use classList instead of addStyleClass and removeStyleClass in TreeOutline.

        https://webkit.org/b/72803

        Reviewed by Dan Bernstein.

        * inspector/front-end/treeoutline.js:
        (TreeOutline.prototype.appendChild):
        (TreeOutline.prototype.insertChild):
        (TreeElement.prototype.set hasChildren):
        (TreeElement.prototype.set hidden):
        (TreeElement.prototype._attach):
        (TreeElement.prototype.collapse):
        (TreeElement.prototype.expand):
        (TreeElement.prototype.select):
        (TreeElement.prototype.deselect):

2011-11-28  Leo Yang  <leo.yang@torchmobile.com.cn>

        Upstream platform/network/blackberry/AuthenticationChallenge.h
        https://bugs.webkit.org/show_bug.cgi?id=73196

        Reviewed by Daniel Bates.

        This is the BlackBerry implementation of WebCore::AuthenticationChallenge.
        Contributed by Torch Team.

        Initial upstream, can't be built yet, no new tests.

        * platform/network/blackberry/AuthenticationChallenge.h: Added.
        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
        (WebCore::AuthenticationChallenge::setStored):
        (WebCore::AuthenticationChallenge::isStored):

2011-11-28  Dana Jansens  <danakj@chromium.org>

        Synchronization problem in Canvas/WebGLRenderingContext when listener asks for image
        https://bugs.webkit.org/show_bug.cgi?id=73228

        Reviewed by Kenneth Russell.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::markContextChanged):

2011-11-28  Rafael Weinstein  <rafaelw@chromium.org>

        [MutationObservers] Fix build breakage after CSSInlineDeclaration refactor
        https://bugs.webkit.org/show_bug.cgi?id=73243

        Reviewed by Ryosuke Niwa.

        No tests needed. This patch only contains compile fixes.

        * css/CSSMutableStyleDeclaration.cpp:

2011-11-28  Jon Lee  <jonlee@apple.com>

        Fix Chromium bot build error related to b73253.

        * WebCore.gypi: Added missing references to NotificationController.

2011-11-28  Jon Lee  <jonlee@apple.com>

        Create skeleton framework for notifications support in WK2
        https://bugs.webkit.org/show_bug.cgi?id=73253
        <rdar://problem/10356943>

        Reviewed by Sam Weinig.

        Some refactoring was done to make notifications follow a similar pattern to our other clients, like
        geolocation and context menu.

        * Configurations/FeatureDefines.xcconfig: Split out ENABLE_NOTIFICATIONS based on platform.
        * WebCore.xcodeproj/project.pbxproj: Adding new NotificationController class, and exposing
        Notification and NotificationController as private headers.
        * Target.pri: Ditto.
        * WebCore.gypi: Ditto.

        * notifications/NotificationContents.h: Converted class to struct. Members need to be accessible
        in order to do WK2 argument encoding.
        (WebCore::NotificationContents::NotificationContents):

        * notifications/Notification.cpp: Update style of entire file.
        (WebCore::Notification::Notification): Added default constructor (for WK2), and minor refactoring
        with NotificationContents.
        * notifications/Notification.h: Added set methods for WK2 serialization. Also, update indenting.
        (WebCore::Notification::setHTML): Added.
        (WebCore::Notification::setURL): Added.
        (WebCore::Notification::contents): Added const version for WK2.
        * notifications/NotificationCenter.h: Update style.

        * notifications/NotificationController.cpp: Added.
        (WebCore::NotificationController::NotificationController):
        (WebCore::NotificationController::~NotificationController):
        * notifications/NotificationController.h: Added.
        (WebCore::NotificationController::client):
        * notifications/NotificationPresenter.h: This acts like a client, and should probably be renamed as such.
        Removed ifdef for exposure to WK2.
        (WebCore::NotificationPresenter::~NotificationPresenter): Moved as protected instead of public.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::webkitNotifications):  We move the request for the notification client from the chrome
        to the controller.
        * page/Page.cpp:
        (WebCore::Page::Page): The page now owns a notification controller.
        (WebCore::Page::PageClients::PageClients): Add notification client as a page client.
        * page/Page.h:
        (WebCore::Page::notificationController): Retrieve the notification controller.

        * page/ChromeClient.h: We move the request for the notification client from the chrome to the controller.
        Remove notificationPresenter().
        * page/Chrome.cpp: Remove notificationPresenter().
        * page/Chrome.h: Remove notificationPresenter().
        * loader/EmptyClients.h: Remove notificationPresenter().

2011-11-28  Noel Gordon  <noel.gordon@gmail.com>

        ImageDecoder setSize() should check for backing store allocation failure
        https://bugs.webkit.org/show_bug.cgi?id=72864

        Reviewed by Adam Barth.

        The backing store of a decoded image is a Vector<PixelData> on the affected
        ports. And Vector<> provides a resize capacity member that returns false if
        memory allocation fails.

        setSize() should be called once only during an image decode - add an ASSERT
        for that. Resize the backing store capacity to the requested image size and
        return false if memory allocation fails.

        ImageDecoder::isOverSize(width, height) is called to check that the decoded
        width and height won't overflow 'width x height x sizeof(PixelData)' before
        calls to setSize(). Refer to http://webkit.org/b/48634

        No new tests. Covered by fast/images/size-failure.html

        * platform/image-decoders/ImageDecoder.cpp:
        (WebCore::ImageFrame::setSize):

2011-11-28  Oliver Hunt  <oliver@apple.com>

        Fix V8 bindings codegen and add yet more tests for the typed
        array bindings.

        * bindings/scripts/CodeGeneratorV8.pm:
        (AddIncludesForType):
        * bindings/scripts/test/CPP/WebDOMFloat64Array.cpp:
        (WebDOMFloat64Array::foo):
        * bindings/scripts/test/CPP/WebDOMFloat64Array.h:
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
        (webkit_dom_float64array_foo):
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
        * bindings/scripts/test/JS/JSFloat64Array.cpp:
        (WebCore::jsFloat64ArrayPrototypeFunctionFoo):
        * bindings/scripts/test/ObjC/DOMFloat64Array.h:
        * bindings/scripts/test/ObjC/DOMFloat64Array.mm:
        (-[DOMFloat64Array foo:]):
        * bindings/scripts/test/TestTypedArray.idl:
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::Float64ArrayInternal::fooCallback):

2011-11-28  Dana Jansens  <danakj@chromium.org>

        FloatQuad::isRectilinear() returns false for 180degree rotations
        https://bugs.webkit.org/show_bug.cgi?id=73040

        Reviewed by James Robinson.

        Added unit test FloatQuadTest.cpp.

        * platform/graphics/FloatQuad.cpp:
        (WebCore::withinEpsilon): Check two values are as close as can be represented by floats.
        (WebCore::FloatQuad::isRectilinear): Use withinEpsilon().

2011-11-28  Beth Dakin  <bdakin@apple.com>

        Speculative Chromium build-fix.

        * platform/chromium/ScrollAnimatorChromiumMac.mm:
        (WebCore::ScrollAnimatorChromiumMac::updateScrollerStyle):

2011-11-28  Oliver Hunt  <oliver@apple.com>

        Move typed array implementations into wtf
        https://bugs.webkit.org/show_bug.cgi?id=73248

        Reviewed by Sam Weinig.

        Removed the typed array implementation files from WebCore and
        added forwarding headers.

        * CMakeLists.txt:
        * ForwardingHeaders/wtf/ArrayBuffer.h: Added.
        * ForwardingHeaders/wtf/ArrayBufferView.h: Added.
        * ForwardingHeaders/wtf/Float32Array.h: Added.
        * ForwardingHeaders/wtf/Float64Array.h: Added.
        * ForwardingHeaders/wtf/Int16Array.h: Added.
        * ForwardingHeaders/wtf/Int32Array.h: Added.
        * ForwardingHeaders/wtf/Int8Array.h: Added.
        * ForwardingHeaders/wtf/Uint16Array.h: Added.
        * ForwardingHeaders/wtf/Uint32Array.h: Added.
        * ForwardingHeaders/wtf/Uint8Array.h: Added.
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSArrayBufferCustom.cpp:
        * bindings/js/JSArrayBufferViewHelper.h:
        * bindings/js/JSAudioContextCustom.cpp:
        * bindings/js/JSFileReaderCustom.cpp:
        * bindings/js/JSFloat32ArrayCustom.cpp:
        * bindings/js/JSFloat64ArrayCustom.cpp:
        * bindings/js/JSInt16ArrayCustom.cpp:
        * bindings/js/JSInt32ArrayCustom.cpp:
        * bindings/js/JSInt8ArrayCustom.cpp:
        * bindings/js/JSUint16ArrayCustom.cpp:
        * bindings/js/JSUint32ArrayCustom.cpp:
        * bindings/js/JSUint8ArrayCustom.cpp:
        * bindings/js/JSWaveShaperNodeCustom.cpp:
        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        * bindings/js/JSXMLHttpRequestCustom.cpp:
        * bindings/scripts/CodeGeneratorJS.pm:
        (AddIncludesForType):
        (GenerateHeader):
        (NativeToJSValue):
        * bindings/scripts/test/JS/JSFloat64Array.cpp:
        * bindings/scripts/test/JS/JSFloat64Array.h:
        * dom/MessageEvent.h:
        * fileapi/FileReader.cpp:
        * fileapi/FileReaderLoader.cpp:
        * fileapi/FileReaderSync.cpp:
        * fileapi/WebKitBlobBuilder.cpp:
        * html/HTMLMediaElement.cpp:
        * html/canvas/ArrayBuffer.h: Removed.
        * html/canvas/ArrayBufferView.cpp: Removed.
        * html/canvas/DataView.h:
        * html/canvas/Float64Array.cpp: Removed.
        * html/canvas/Int16Array.h: Removed.
        * html/canvas/Int32Array.h: Removed.
        * html/canvas/Int8Array.h: Removed.
        * html/canvas/Uint16Array.h: Removed.
        * html/canvas/Uint32Array.h: Removed.
        * html/canvas/Uint8Array.cpp: Removed.
        * html/canvas/WebGLBuffer.cpp:
        * html/canvas/WebGLBuffer.h:
        * html/canvas/WebGLGetInfo.cpp:
        * html/canvas/WebGLGetInfo.h:
        * html/canvas/WebGLRenderingContext.cpp:
        * html/canvas/WebGLRenderingContext.h:
        * page/Crypto.cpp:
        * platform/graphics/GraphicsContext3D.cpp:
        * platform/graphics/mac/GraphicsContext3DMac.mm:
        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
        * webaudio/AsyncAudioDecoder.cpp:
        * webaudio/AudioBuffer.h:
        * webaudio/AudioContext.cpp:
        * webaudio/AudioParam.h:
        * webaudio/AudioParamTimeline.h:
        * webaudio/JavaScriptAudioNode.cpp:
        * webaudio/RealtimeAnalyser.cpp:
        * webaudio/WaveShaperProcessor.h:
        * websockets/WebSocketChannel.cpp:
        * websockets/WorkerThreadableWebSocketChannel.cpp:
        * xml/XMLHttpRequest.cpp:

2011-11-28  Robert Hogan  <robert@webkit.org>

        Unreviewed, rolling out r101202.
        http://trac.webkit.org/changeset/101202
        https://bugs.webkit.org/show_bug.cgi?id=71244

        Caused performance regressions when painting collapsed borders

        * rendering/RenderTableCell.cpp:
        (WebCore::compareBorders):
        (WebCore::RenderTableCell::collapsedStartBorder):
        (WebCore::RenderTableCell::collapsedEndBorder):
        (WebCore::RenderTableCell::collapsedBeforeBorder):
        (WebCore::RenderTableCell::collapsedAfterBorder):
        * rendering/style/CollapsedBorderValue.h:
        (WebCore::CollapsedBorderValue::CollapsedBorderValue):
        (WebCore::CollapsedBorderValue::operator==):
        * rendering/style/RenderStyleConstants.h:

2011-11-28  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=72551
        When the recommended scrollbar style changes, WKView's tracking options should 
        adjust accordingly
        -and corresponding-
        <rdar://problem/10409328>

        Reviewed by Darin Adler.

        This new ChromeClient function is called when the recommended scrollbar style 
        changes. This way, WebKit can respond to the change by adjusting its mouse 
        tracking.
        * page/ChromeClient.h:
        (WebCore::ChromeClient::recommendedScrollbarStyleDidChange):

        Existing ScrollableArea function scrollbarStyleChanged() now takes an int 
        indicating the new scrollbar style and a bool indicating whether it is necessary 
        to force an update. It used to be the case that this function was ONLY used to 
        force an update (and only called when an updated was needed), but now that it must 
        also call into the ChromeClient, it is necessary to include a bool tracking 
        whether we need to force an update. New implementation on FrameView is responsible 
        for calling ChromeClient, and then that calls into the pre-existing ScrollView 
        function for the forceUpdate part.
        * page/FrameView.cpp:
        (WebCore::FrameView::scrollbarStyleChanged):
        * page/FrameView.h:
        * platform/ScrollView.cpp:
        (WebCore::ScrollView:: scrollbarStyleChanged):
        * platform/ScrollView.h:
        * platform/ScrollableArea.h:
        (WebCore::ScrollableArea::scrollbarStyleChanged):
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::updateScrollerStyle):

2011-11-28  Julien Chaffraix  <jchaffraix@webkit.org>

        Add limited parsing support for grid-columns and grid-rows
        https://bugs.webkit.org/show_bug.cgi?id=72531

        Reviewed by Tony Chang.

        Test: fast/css-grid-layout/grid-columns-rows-get-set.html

        Added support for:
        <track-list> := <length> | <percentage> | 'none' | 'auto'

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * rendering/style/StyleAllInOne.cpp:
        Updated our build systems.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::valueForGridTrackList):
        Helper function to convert our RenderStyle information to a proper CSSValue.
        It doesn't do much now but it will be expanded as we add more support.

        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Call the previous
        function.

        * css/CSSParser.h:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseGridTrackList):
        CSS parsing part of this change. Pretty simple for now.

        * css/CSSPropertyNames.in:
        Added -webkit-grid-columns and -webkit-grid-rows.

        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        Style application plumbing.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::RenderStyle):
        (WebCore::RenderStyle::diff):
        This change is required for later when we add layout for our grid.

        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::gridColumns):
        (WebCore::InheritedFlags::gridRows):
        (WebCore::InheritedFlags::setGridColumns):
        (WebCore::InheritedFlags::setGridRows):
        (WebCore::InheritedFlags::initialGridColumns):
        (WebCore::InheritedFlags::initialGridRows):
        Getters / Setters and initial values.

        * rendering/style/StyleGridData.cpp: Added.
        (WebCore::StyleGridData::StyleGridData):
        * rendering/style/StyleGridData.h: Added.
        (WebCore::StyleGridData::create):
        (WebCore::StyleGridData::copy):
        (WebCore::StyleGridData::operator==):
        (WebCore::StyleGridData::operator!=):
        This class holds the grid element information. For now pretty simple
        shell that will be used for the rest of the support.

        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:
        Added StyleGridElementData to StyleRareNonInheritedData.

2011-11-28  Noel Gordon  <noel.gordon@gmail.com>

        [chromium] Use data decoding swizzle for turbo JPEG image decoding.
        https://bugs.webkit.org/show_bug.cgi?id=59670

        Reviewed by Kenneth Russell.

        Add a BGRX row decode data swizzle for the little-endian ports that use libjpeg-turbo
        (Chromium win/linux/mac) to reduce JPEG image decoding time by ~2x.

        JPEG images of type JSC_GRAYSCALE are excluded since layout regressions were observed
        for grayscale images produced by older tools (XV 3.10a 12/19/94). libjpeg decodes the
        images without error; libjpeg-turbo caused visible artifacts (see bug for examples).

        This patch is based on the work of Hironori Bono. He provided the original patch, and
        the quantitative results confirming the significant performance improvement.

        No new tests. Covered by many existing tests.

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (rgbOutputColorSpace):  If JCS_EXTENSIONS is defined (libjpeg-turbo), and the port is
        little-endian, define a BGRX data swizzle for use when decoding pixel rows.
        (turboSwizzled):
        (WebCore::JPEGImageReader::decode):  Select a possibly swizzled rgbOutputColorSpace()
        for JSC_RGB and JCS_YCbCr input color space images.  Exclude JSC_GRAYSCALE images.
        (WebCore::JPEGImageDecoder::outputScanlines):  Swizzle decode, if applicable.

2011-11-28  Fady Samuel  <fsamuel@chromium.org>

        Fix Aspect Ratio Property Inheritance And Make the Computed Value Equal the Specified Value
        https://bugs.webkit.org/show_bug.cgi?id=73038

        Reviewed by Ojan Vafai.

        hasAspectRatio was not being set if the -webkit-aspect-ratio property was inherited from the parent.

        Additionally, the computed value of -webkit-aspect-ratio was returning a number instead of a ratio.

        Test: fast/css/aspect-ratio-inheritance.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyAspectRatio::applyInheritValue):

2011-11-28  Ken Buchanan  <kenrb@chromium.org>

        Crash due to bidi style in isolated run
        https://bugs.webkit.org/show_bug.cgi?id=72978

        Reviewed by Eric Seidel.

        Prevent the UBA from changing the embedding level when inside an isolated run.

        * rendering/InlineIterator.h:
        (WebCore::notifyObserverEnteredObject):
        (WebCore::notifyObserverWillExitObject):

2011-11-28  Martin Robinson  <mrobinson@igalia.com>

        Fix 'make dist' by adding two missing files to source list.

        * GNUmakefile.list.am: Add missing files.

2011-11-25  Ryosuke Niwa  <rniwa@webkit.org>

        dir=auto should imply unicode-bidi:isolate by default
        https://bugs.webkit.org/show_bug.cgi?id=63903

        Reviewed by Dan Bernstein.

        Fixed WebKit's implementation of bdo, bdi, and output elements to match HTML5 spec section 10.3.5:
        http://dev.w3.org/html5/spec/Overview.html#bidirectional-text

        Any element with dir=auto other than bdo, textarea, and pre should use unicode-bidi: -webkit-isolate by default.

        We still don't use -webkit-isolate for non-phrasing elements by default and unicode-override -webkit-isolate for
        bdo[dir=auto] so these two cases are failing in the added test.

        Test: fast/css/default-bidi-css-rules.html

        * css/html.css:
        (bdi, output): bdi and output should both use -webkit-isolate as the default value for unicode-bidi.
        (bdo): bdo should use bidi-override as the default value for unicode-bidi.
        * dom/MappedAttributeEntry.h: Add eBDI, which is used by bdi and output elements.
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::mapToEntry): Don't share the cache for dir attribute between bdi and other elements
        just like we don't share the cache for dir attribute between bdo and other elements.
        (WebCore::unicodeBidiAttributeForDirAuto): Don't set bidi-override for bdo element since this is done
        in the UA stylesheet now. Set unicode-bidi to -webkit-isolate for elements other than pre and textarea now that
        this function is called only when dir=auto.
        called when dir=auto as the name implies.
        (WebCore::HTMLElement::parseMappedAttribute): Don't call unicodeBidiAttributeForDirAuto when dir is not
        auto. Also set unicode-bidi to embed when dir is not auto and the element is neither bdi, bdo, nor output.
        * html/HTMLOutputElement.cpp:
        (WebCore::HTMLOutputElement::mapToEntry): Don't share the cache for dir between output and other elements.
        * html/HTMLOutputElement.h:
        * html/HTMLTagNames.in:

2011-11-28  Jer Noble  <jer.noble@apple.com>

        WebAudio: AudioContext::uninitialize() can caused AudioContext deletion before deleting marked nodes.
        https://bugs.webkit.org/show_bug.cgi?id=72755

        Reviewed by Eric Carlson.

        No new tests.

        Protect AudioContext from being deleted before uninitialize() returns. Fixes an assertion in ~AudioContext() and 
        a potential source of leaks.

        * webaudio/AudioContext.cpp:
        (WebCore::AudioContext::uninitialize):

2011-11-28  Andreas Kling  <kling@webkit.org>

        InspectorCSSAgent: Remove unused function inlineStyleElement().
        <http://webkit.org/b/73221>

        Reviewed by Pavel Feldman.

        * inspector/InspectorCSSAgent.cpp:
        * inspector/InspectorCSSAgent.h:

2011-11-28  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Build system fixes against V8.

        Reviewed by Tor Arne Vestbø.

        * DerivedSources.pri: Add missing binding files to the build and also added
        the regexp table generation needed for Yarr, which is compiled statically into
        WebCore to implement WebCore::RegularExpression.
        * Target.pri: Adapt to latest v8 binding files.

2011-11-28  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: resource status image is mis-aligned in the network headers view
        https://bugs.webkit.org/show_bug.cgi?id=73211

        Reviewed by Pavel Feldman.

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

2011-11-28  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: console evaluation doesn't work when navigating from a page with several frames to another one
        https://bugs.webkit.org/show_bug.cgi?id=73210

        Reviewed by Yury Semikhatsky.

        Test: http/tests/inspector/resource-tree/resource-tree-events.html

        * inspector/Inspector.json:
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.ResourceTreeModel.prototype._frameDetached):
        (WebInspector.ResourceTreeFrame.prototype.navigate):
        (WebInspector.ResourceTreeFrame.prototype.removeChildFrame):
        (WebInspector.ResourceTreeFrame.prototype.removeChildFrames):

2011-11-28  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: introduce InspectorBaseAgent.
        https://bugs.webkit.org/show_bug.cgi?id=73203

        Now that inspector controller does not depend on concrete inspector agent
        classes, we can collect agent instances using abstract type.

        Reviewed by Yury Semikhatsky.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::InspectorAgent):
        * inspector/InspectorAgent.h:
        * inspector/InspectorApplicationCacheAgent.cpp:
        (WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):
        * inspector/InspectorApplicationCacheAgent.h:
        * inspector/InspectorBaseAgent.cpp: Copied from Source/WebCore/inspector/InspectorFileSystemAgent.h.
        (WebCore::InspectorBaseAgent::InspectorBaseAgent):
        (WebCore::InspectorBaseAgent::~InspectorBaseAgent):
        * inspector/InspectorBaseAgent.h: Copied from Source/WebCore/inspector/InspectorFileSystemAgent.h.
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::InspectorCSSAgent):
        * inspector/InspectorCSSAgent.h:
        (WebCore::InspectorCSSAgent::setFrontend):
        (WebCore::InspectorCSSAgent::restore):
        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
        (WebCore::InspectorConsoleAgent::~InspectorConsoleAgent):
        (WebCore::InspectorConsoleAgent::enable):
        (WebCore::InspectorConsoleAgent::disable):
        (WebCore::InspectorConsoleAgent::clearMessages):
        (WebCore::InspectorConsoleAgent::restore):
        (WebCore::InspectorConsoleAgent::clearFrontend):
        (WebCore::InspectorConsoleAgent::resourceRetrievedByXMLHttpRequest):
        (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
        (WebCore::InspectorConsoleAgent::addConsoleMessage):
        * inspector/InspectorConsoleAgent.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::InspectorDOMAgent):
        (WebCore::InspectorDOMAgent::clearFrontend):
        (WebCore::InspectorDOMAgent::setDocument):
        (WebCore::InspectorDOMAgent::getDocument):
        (WebCore::InspectorDOMAgent::mainFrameDOMContentLoaded):
        * inspector/InspectorDOMAgent.h:
        * inspector/InspectorDOMStorageAgent.cpp:
        (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
        (WebCore::InspectorDOMStorageAgent::restore):
        (WebCore::InspectorDOMStorageAgent::enable):
        (WebCore::InspectorDOMStorageAgent::disable):
        * inspector/InspectorDOMStorageAgent.h:
        * inspector/InspectorDatabaseAgent.cpp:
        (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
        (WebCore::InspectorDatabaseAgent::enable):
        (WebCore::InspectorDatabaseAgent::disable):
        (WebCore::InspectorDatabaseAgent::restore):
        * inspector/InspectorDatabaseAgent.h:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
        (WebCore::InspectorDebuggerAgent::disable):
        (WebCore::InspectorDebuggerAgent::enabled):
        (WebCore::InspectorDebuggerAgent::enable):
        (WebCore::InspectorDebuggerAgent::clearFrontend):
        (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
        (WebCore::InspectorDebuggerAgent::removeBreakpoint):
        (WebCore::InspectorDebuggerAgent::didParseSource):
        * inspector/InspectorDebuggerAgent.h:
        * inspector/InspectorFileSystemAgent.cpp:
        (WebCore::InspectorFileSystemAgent::InspectorFileSystemAgent):
        * inspector/InspectorFileSystemAgent.h:
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::InspectorPageAgent):
        * inspector/InspectorPageAgent.h:
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
        (WebCore::InspectorProfilerAgent::enable):
        (WebCore::InspectorProfilerAgent::disable):
        (WebCore::InspectorProfilerAgent::restore):
        (WebCore::InspectorProfilerAgent::restoreEnablement):
        (WebCore::InspectorProfilerAgent::start):
        (WebCore::InspectorProfilerAgent::stop):
        * inspector/InspectorProfilerAgent.h:
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::InspectorResourceAgent):
        * inspector/InspectorResourceAgent.h:
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
        * inspector/InspectorTimelineAgent.h:
        * inspector/InspectorWorkerAgent.cpp:
        (WebCore::InspectorWorkerAgent::InspectorWorkerAgent):
        (WebCore::InspectorWorkerAgent::restore):
        (WebCore::InspectorWorkerAgent::clearFrontend):
        (WebCore::InspectorWorkerAgent::setWorkerInspectionEnabled):
        (WebCore::InspectorWorkerAgent::setAutoconnectToWorkers):
        (WebCore::InspectorWorkerAgent::shouldPauseDedicatedWorkerOnStart):
        (WebCore::InspectorWorkerAgent::didStartWorkerContext):
        (WebCore::InspectorWorkerAgent::createWorkerFrontendChannel):
        * inspector/InspectorWorkerAgent.h:

2011-11-28  Ilya Tikhonovsky  <loislo@chromium.org>

        Web Inspector: chromium: Unreviewed one-line fix for Summary view filter.

        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshot.prototype.createNodesProviderForClass):

2011-11-28  Pavel Feldman  <pfeldman@google.com>

        Not reviewed: disable filesystem instrumentation to unbreak Qt tests.

        * inspector/front-end/inspector.js:

2011-11-28  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r101249.
        http://trac.webkit.org/changeset/101249
        https://bugs.webkit.org/show_bug.cgi?id=73205

        it broke qt-minimal and wince builds (Requested by loislo on
        #webkit).

        * inspector/CodeGeneratorInspector.py:
        (Capitalizer.upper_camel_case_to_lower):
        (RawTypes.get):
        (RawTypes.String.get_c_param_type):
        (RawTypes.Object.get_c_param_type):
        (RawTypes.Object):
        (ParamType):
        (TypeData.__init__):
        (TypeData.get_raw_type):
        (TypeMap.__init__):
        (InspectorFrontend_h):
        (InspectorArray):
        (InspectorObject):
        (String):
        (InspectorBackendDispatcher_h):
        (Generator.process_command):
        * inspector/InspectorValues.h:

2011-11-28  Andreas Kling  <kling@webkit.org>

        CSSStyleDeclaration: Remove ability to have style sheet as parent.
        <http://webkit.org/b/73199>

        Reviewed by Antti Koivisto.

        Refactor so we don't have to support style sheets as parents of style declarations.
        The users of this mechanism were mapped attributes and inline styles, which instead
        now know how to find the relevant style sheet via their document().

        * css/CSSMutableStyleDeclaration.h:
        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSElementStyleDeclaration::styleSheet):

            Added CSSElementStyleDeclaration::styleSheet(). The default implementation
            returns the associated element's document()->elementSheet(). It is virtual
            because SVGFontFaceElement needs document()->mappedElementSheet() instead.

        * css/CSSStyleDeclaration.h:
        (WebCore::CSSStyleDeclaration::parentRule):
        (WebCore::CSSStyleDeclaration::setParentRule):
        * css/CSSStyleDeclaration.cpp:
        (WebCore::CSSStyleDeclaration::CSSStyleDeclaration):

            Remove m_parentIsRule and m_parentStyleSheet, leaving only m_parentRule.

        * css/CSSStyleDeclaration.cpp:
        (WebCore::CSSStyleDeclaration::parentStyleSheet):

            Out-of-lined so it can return the CSSElementStyleDeclaration::styleSheet() for
            declarations with an associated element.

        * css/WebKitCSSKeyframeRule.cpp:
        (WebCore::WebKitCSSKeyframeRule::~WebKitCSSKeyframeRule):
        (WebCore::WebKitCSSKeyframeRule::setDeclaration):

            Use setParentRule() instead of setParentStyleSheet() on the internal
            CSSMutableStyleDeclaration in keyframe rules.

        * dom/StyledElement.h:

            Removed StyledElement::didMoveToNewOwnerDocument() since we no longer need to
            manually keep the inline style's parent style sheet pointer up-to-date.

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::createInlineStyleDecl):
        (WebCore::StyledElement::destroyInlineStyleDecl):
        (WebCore::StyledElement::attributeChanged):
        (WebCore::StyledElement::createMappedDecl):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::additionalAttributeStyleDecls):
        (WebCore::HTMLTableElement::addSharedCellBordersDecl):
        (WebCore::HTMLTableElement::addSharedCellPaddingDecl):
        (WebCore::HTMLTableElement::addSharedGroupDecls):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::SVGFontFaceElement):

            Remove setParentStyleSheet() calls on mapped attributes and inline styles.
            They now find the relevant style sheet by following the associated element ptr.

        * svg/SVGFontFaceElement.cpp:
        (WebCore::FontFaceStyleDeclaration::FontFaceStyleDeclaration):
        (WebCore::FontFaceStyleDeclaration::~FontFaceStyleDeclaration):
        (WebCore::FontFaceStyleDeclaration::styleSheet):

            Subclass CSSElementStyleDeclaration for SVG's font-face elment in order to
            override styleSheet(). This is necessary because they operate on the document's
            mappedElementSheet() rather than the elementSheet().

2011-11-28  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: [protocol] generate C++ classes for protocol JSON named types
        https://bugs.webkit.org/show_bug.cgi?id=72835

        Reviewed by Pavel Feldman.

        Extends python generator functionality.
        Makes constructor in InspectorObject public.

        * inspector/CodeGeneratorInspector.py:
        * inspector/InspectorValues.h:

2011-11-28  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] WTF should be built as separate static library
        https://bugs.webkit.org/show_bug.cgi?id=73201

        Reviewed by Tor Arne Vestbø.

        * Target.pri: Require wtf and don't claim to be building it
        with BUILDING_WTF in DEFINES (otherwise we won't link it with
        debug-shlib builds).

2011-11-28  Taiju TSUIKI  <tzik@chromium.org>

        Fix build error on Chromium/Windows.
        https://bugs.webkit.org/show_bug.cgi?id=73200

        Unreviewed build fix.

        * inspector/InspectorFileSystemAgent.cpp:

2011-11-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distcheck issues.

        * GNUmakefile.list.am: Add missing files.
        * bindings/gobject/GNUmakefile.am: Only build
        WebKitDOMHTMLPropertiesCollection when microdate is enabled.

2011-11-28  Luke Macpherson   <macpherson@chromium.org>

        Implement CSS border image properties in CSSStyleApplyProperty.
        https://bugs.webkit.org/show_bug.cgi?id=72846

        Reviewed by Andreas Kling.

        Refactoring that implements CSS border image properties in CSSStyleApplyProperty.
        Part of the larger refactoring aimed at removing CSSStyleSelector::applyProperty().

        Covered by existing tests in fast/css.

        * css/CSSStyleApplyProperty.cpp:
        Implement property handlers based on existing code.
        (WebCore::ApplyPropertyBorderImage::setValue):
        (WebCore::ApplyPropertyBorderImage::applyValue):
        (WebCore::ApplyPropertyBorderImage::createHandler):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        Remove old code.
        (WebCore::CSSStyleSelector::applyProperty):

2011-11-28  Luke Macpherson   <macpherson@chromium.org>

        Implement CSS hyphenate-limit properties in CSSStyleApplyProperty
        https://bugs.webkit.org/show_bug.cgi?id=73107

        Reviewed by Andreas Kling.

        Covered by existing tests under fast/css (parsing-hyphenate-limit-lines.html, parsing-hyphenate-limit.html, text/hyphenate-limit-lines.html)

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyNumber::setValue):
        (WebCore::ApplyPropertyNumber::applyValue):
        (WebCore::ApplyPropertyNumber::createHandler):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):

2011-11-28  Taiju TSUIKI  <tzik@chromium.org>

        [Inspector][FileSystem]: Capture DOMFileSystem object.
        Adding files for FileSystem support to Inspector.
        Adding hooks into DOMFileSystem creation and destruction.
        https://bugs.webkit.org/show_bug.cgi?id=72456

        Reviewed by Pavel Feldman.

        Tests should be added in later CL.

        * CMakeLists.txt:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * fileapi/DOMFileSystem.cpp:
        (WebCore::DOMFileSystem::create):
        * fileapi/DOMFileSystem.h:
        * inspector/CodeGeneratorInspector.py:
        * inspector/Inspector.json:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        (WebCore::InspectorController::connectFrontend):
        (WebCore::InspectorController::disconnectFrontend):
        (WebCore::InspectorController::restoreInspectorStateFromCookie):
        * inspector/InspectorController.h:
        * inspector/InspectorFileSystemAgent.cpp: Added.
        * inspector/InspectorFileSystemAgent.h: Added.
        * inspector/InspectorFileSystemInstrumentation.h: Added.
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::didOpenFileSystemImpl):
        * inspector/InspectorInstrumentation.h:
        * inspector/InstrumentingAgents.h:
        (WebCore::InstrumentingAgents::InstrumentingAgents):
        (WebCore::InstrumentingAgents::inspectorFileSystemAgent):
        (WebCore::InstrumentingAgents::setInspectorFileSystemAgent):
        * inspector/WorkerInspectorController.cpp:
        (WebCore::WorkerInspectorController::connectFrontend):
        * inspector/front-end/inspector.js:

2011-11-28  Luke Macpherson   <macpherson@chromium.org>

        Implement CSSPropertyWebkitFlowInto and CSSPropertyWebkitFlowFrom in CSSStyleApplyProperty.
        https://bugs.webkit.org/show_bug.cgi?id=73110

        Reviewed by Andreas Kling.

        Covered by existing tests under fast/regions.

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):

2011-11-27  Luke Macpherson   <macpherson@chromium.org>

        Implement vertical-align property in CSSStyleApplyProperty.
        https://bugs.webkit.org/show_bug.cgi?id=72926

        Reviewed by Andreas Kling.

        Part of the ongoing refactoring of CSSStyleSelector::applyProperty.

        Covered by several tests under fast/css.

        * css/CSSPrimitiveValue.h:
        (WebCore::CSSPrimitiveValue::isPercent):
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyVerticalAlign::applyValue):
        (WebCore::ApplyPropertyVerticalAlign::createHandler):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::setVerticalAlignLength):
        Calling setVerticalAlignLength now automatically sets verticalAlign to LENGTH.

2011-11-27  Luke Macpherson   <macpherson@chromium.org>

        Implement CSSPropertyTextAlign in CSSStyleApplyProperty.
        https://bugs.webkit.org/show_bug.cgi?id=73102

        Reviewed by Andreas Kling.

        Covered by fast/css/text-align*.html

        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyTextAlign::applyValue):
        (WebCore::ApplyPropertyTextAlign::createHandler):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):

2011-11-27  Andreas Kling  <kling@webkit.org>

        CSSStyleRule: Pack m_sourceLine with CSSRule bits.
        <http://webkit.org/b/73168>

        Reviewed by Antti Koivisto.

        Make CSSStyleRule::m_sourceLine a 27-bit integer and pack it with the rest
        of the members in CSSRule. This shrinks CSSStyleRule by one CPU word
        and reduces memory consumption by 81 kB on the GMail inbox (on 64-bit.)

        * css/CSSRule.h:
        (WebCore::CSSRule::CSSRule):
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::CSSStyleRule):
        * css/CSSStyleRule.h:

2011-11-27  Mark Rowe  <mrowe@apple.com>

        <http://webkit.org/b/72665> Switch to a more modern approach to retrieving the OS marketing version

        Reviewed by Dan Bernstein.

        * WebCore.exp.in: Expose the necessary symbol.
        * platform/mac/WebCoreSystemInterface.h: Ditto.
        * platform/mac/WebCoreSystemInterface.mm: Ditto.

2011-11-27  Anna Cavender  <annacc@chromium.org>

        Move readyState from TextTrack to HTMLTrackElement
        https://bugs.webkit.org/show_bug.cgi?id=72553

        Fix for r101057 after it was rolled out in r101088

        Reviewed by Eric Carlson.

        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::HTMLTrackElement):
            Set initial readyState to NONE.
        (WebCore::HTMLTrackElement::didCompleteLoad):
            Set readyState based on load completed status.
        (WebCore::HTMLTrackElement::setReadyState):
            This replaces textTrackReadyStateChanged() because only LoadableTextTrack
            needs to notify HTMLTrackElement of readyState changes (i.e.
            textTrackReadyStateChanged() is no longer required of TextTrackClient).
        * html/HTMLTrackElement.h:
            ReadyState enum and m_readyState member variable moved from TextTrack.
        (WebCore::HTMLTrackElement::readyState):
            New: readyState() getter.
        * html/HTMLTrackElement.idl:
            Add readyState attribute and associated constants.

        * html/LoadableTextTrack.cpp:
        (WebCore::LoadableTextTrack::loadTimerFired): Set readyState on HTMLTrackElement.
        (WebCore::LoadableTextTrack::cueLoadingStarted): Ditto.
        (WebCore::LoadableTextTrack::cueLoadingCompleted): Move code to set readyState
            to HTMLTrackElement (it can set it based on loading status).

        * html/TextTrack.cpp: Remove readyState from TextTrack.
        (WebCore::TextTrack::TextTrack): Ditto.
        * html/TextTrack.h: Ditto.
        * html/TextTrack.idl: Ditto.

2011-11-27  Anna Cavender  <annacc@chromium.org>

        Don't allow attribute changes on <track> if feature is not enabled.
        https://bugs.webkit.org/show_bug.cgi?id=73046

        Reviewed by Eric Carlson.

        No new tests. This fixes a problem when --enable-video-track is not used,
        but the tests use this flag.

        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::attributeChanged):

2011-11-27  Andreas Kling  <kling@webkit.org>

        CSSMutableStyleDeclaration: setCssText() mostly duplicates parseDeclaration().
        <http://webkit.org/b/73171>

        Reviewed by Antti Koivisto.

        Let setCssText() call parseDeclaration() instead of duplicating the functionality.

        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::setCssText):

2011-11-27  Andreas Kling  <kling@webkit.org>

        CSS/XSLStyleSheet: checkLoaded() needn't be virtual.
        <http://webkit.org/b/73169>

        Reviewed by Antti Koivisto.

        Devirtualize checkLoaded() in CSSStyleSheet and XSLStyleSheet as they
        are not overriding anything, nor are they ever overridden.

        * css/CSSStyleSheet.h:
        * xml/XSLStyleSheet.h:

2011-11-27  Andreas Kling  <kling@webkit.org>

        Add assertions that CSSMappedAttributeDeclarations aren't using strict parsing.
        <http://webkit.org/b/73167>

        Reviewed by Antti Koivisto.

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::createMappedDecl):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::additionalAttributeStyleDecls):
        (WebCore::HTMLTableElement::addSharedCellBordersDecl):
        (WebCore::HTMLTableElement::addSharedCellPaddingDecl):
        (WebCore::HTMLTableElement::addSharedGroupDecls):

2011-11-27  Andreas Kling  <kling@webkit.org>

        CSSStyleSheet: Removed unused create() overload.
        <http://webkit.org/b/73170>

        Reviewed by Antonio Gomes.

        Nobody was using CSSStyleSheet::create(ownerNode, originalURL, finalURL)
        so remove it.

        * css/CSSStyleSheet.h:
        (WebCore::CSSStyleSheet::create):

2011-11-27  Robert Hogan  <robert@webkit.org>

        CSS 2.1 failure: border-conflict-element-*
        https://bugs.webkit.org/show_bug.cgi?id=71244

        Reviewed by Julien Chaffraix.
        
        From http://www.w3.org/TR/CSS21/tables.html#border-conflict-resolution :
          "When two adjacent cells have the same border-width and the same border-style in a 
          'border-collapse: collapse' table, then the color of the border from the leftmost cell wins
          (if the table's 'direction' is 'ltr'; right, if it is 'rtl') and the color of the border
          from the topmost cell wins."

        So WebCore::compareBorders needs to account for the position of the cell when 
        deciding which border wins the comparison. This will ensure that the winning border is 
        sorted to the appropriate position in the sorted list of borders for painting.

        When conflicting collapsed borders are in the same cell, the following order of
        precedence is used (where 4 has highest precedence):

                           __3__
                          |     |
                        4 |     | 1
                          |_____|
                             2

        This fixes the following failing tests from the border-conflict-element-* set
        in the CSS 2.1 test suite:
          border-conflict-element-001d.htm
          border-conflict-element-0037.htm

        One test in the suite is known to be wrong, so a corrected version has been landed outside the 
        css2.1 folder:
          border-conflict-element-002.htm

        This change entails rebaselining quite a few tests, see the LayoutTests ChangeLog for a full
        explanation of the rebaselines.

        * rendering/RenderTableCell.cpp:
        (WebCore::compareBorders): Compare the cells' position from the left (in 'ltr') and right (in 'rtl')
                                   of the table and the cells' position from the top of the table when nothing
                                   else in the style, width, or grouping of the borders determines precedence.
                                   If the conflicting borders are in the same cell, apply the same logic to the position of the borders.
        (WebCore::RenderTableCell::collapsedStartBorder): Pass the cell's position and its table's direction to CollapsedBorderValue
        (WebCore::RenderTableCell::collapsedEndBorder): ditto
        (WebCore::RenderTableCell::collapsedBeforeBorder): ditto
        (WebCore::RenderTableCell::collapsedAfterBorder): ditto
        * rendering/style/CollapsedBorderValue.h:
        (WebCore::CollapsedBorderValue::CollapsedBorderValue): Learn the position of the border's cell and the direction of its table
        (WebCore::CollapsedBorderValue::columnOffset): the cell's offset from the top of the table
        (WebCore::CollapsedBorderValue::rowOffset): the cell's offset from the start of the table
        (WebCore::CollapsedBorderValue::edge): which edge of the cell the border is on
        (WebCore::CollapsedBorderValue::operator==): cells with the same position in the table are equal

2011-11-26  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: remove disconnectFromBackend from the protocol.
        https://bugs.webkit.org/show_bug.cgi?id=73127

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector.json:
        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::inspectedPageDestroyed):
        * inspector/InspectorClient.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::close):
        * inspector/InspectorFrontendClient.h:
        * inspector/InspectorFrontendHost.cpp:
        * inspector/InspectorFrontendHost.h:
        * inspector/InspectorFrontendHost.idl:
        * inspector/front-end/InspectorFrontendHostStub.js:
        * inspector/front-end/inspector.js:
        (WebInspector.disconnectFromWorker):
        * loader/EmptyClients.h:
        (WebCore::EmptyInspectorClient::closeInspectorFrontend):

2011-11-26  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] Unreviewed build fix. Change the order of wx header includes
        to avoid a windows.h inclusion order issue, and make sure a stub
        method returns a value.

        * platform/wx/FileSystemWx.cpp:
        (WebCore::openFile):

2011-11-26  Alejandro G. Castro  <alex@igalia.com>

        Fix compilation after r101157.

        Reviewed by Martin Robinson.

        * bindings/scripts/preprocessor.pm:
        (applyPreprocessor): In case we have a string with
        double-quotations (") we replace it with the empty string.

2011-11-26  Igor Oliveira  <igor.oliveira@openbossa.org>

        [TexMapper][WK2][Qt] Simple opacity animations are not working
        https://bugs.webkit.org/show_bug.cgi?id=73157

        LayerTreeHostQt needs to know what nodes in the TextureMapper are visible, to associate
        a tile to it. It is done using TextureMapperNode::collectVisibleContentsRects.

        However TextureMapperNode::collectVisibleContentsRects has an optimization to check if
        the current tile has opacity greater than 0.01, otherwise it will not create a tile for
        the current node.

        For opacity animations from 0 to 1, it is a problem because the tile is never created
        and the animation never happens.

        This patch fixes opacity animations.

        Reviewed by Noam Rosenthal.

        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::countDescendantsWithContent):
        (WebCore::TextureMapperNode::collectVisibleContentsRects):

2011-11-26  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r101193.
        http://trac.webkit.org/changeset/101193
        https://bugs.webkit.org/show_bug.cgi?id=73158

        Breaks Windows and Qt minimal. (Requested by pfeldman on
        #webkit).

        * inspector/Inspector.json:
        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::inspectedPageDestroyed):
        * inspector/InspectorClient.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::close):
        * inspector/InspectorFrontendClient.h:
        * inspector/InspectorFrontendHost.cpp:
        (WebCore::InspectorFrontendHost::disconnectFromBackend):
        * inspector/InspectorFrontendHost.h:
        * inspector/InspectorFrontendHost.idl:
        * inspector/front-end/InspectorFrontendHostStub.js:
        (.WebInspector.InspectorFrontendHostStub.prototype.disconnectFromBackend):
        * inspector/front-end/inspector.js:
        (WebInspector.disconnectFromBackend):
        * loader/EmptyClients.h:

2011-11-26  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: remove disconnectFromBackend from the protocol.
        https://bugs.webkit.org/show_bug.cgi?id=73127

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector.json:
        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::inspectedPageDestroyed):
        * inspector/InspectorClient.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::close):
        * inspector/InspectorFrontendClient.h:
        * inspector/InspectorFrontendHost.cpp:
        * inspector/InspectorFrontendHost.h:
        * inspector/InspectorFrontendHost.idl:
        * inspector/front-end/InspectorFrontendHostStub.js:
        * inspector/front-end/inspector.js:
        (WebInspector.disconnectFromWorker):
        * loader/EmptyClients.h:
        (WebCore::EmptyInspectorClient::closeInspectorFrontend):

2011-11-26  Timothy Hatcher  <timothy@apple.com>

        Fix a bug in TreeOutline which would cause parent elements to show up as expanded and empty
        when removed and added back to the tree.

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

        Reviewed by Pavel Feldman.

        * inspector/front-end/treeoutline.js:
        (TreeElement.prototype.collapse): Set _treeElementsExpandedState to false instead of true.
        Only TreeElement.prototype.expand should set it to true, which it does.

2011-11-26  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Fix some warnings in WebCore GTK+
        https://bugs.webkit.org/show_bug.cgi?id=73137

        Reviewed by Philippe Normand.

        No new tests. This patch just fixes compilation warnings.

        * platform/gtk/CursorGtk.cpp:
        (WebCore::createNamedCursor): Remove unused variable.
        * platform/gtk/RenderThemeGtk3.cpp:
        (WebCore::RenderThemeGtk::paintSliderTrack): ASSERT_UNUSED instead of ASSERT.
        * platform/gtk/SharedTimerGtk.cpp: Ditto.
        (WebCore::stopSharedTimer):

2011-11-25  Eric Carlson  <eric.carlson@apple.com>

        Implement addCue and removeCue in TextTrack
        https://bugs.webkit.org/show_bug.cgi?id=72554

        Reviewed by Darin Adler.

        Test: media/track/track-add-remove-cue.html

        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::ensureTrack): Go ahead and allocate a Track even if the feature 
            is disabled, it just won't load anything.
        (WebCore::HTMLTrackElement::scheduleLoad): Early return if the featue is disabled.
        (WebCore::HTMLTrackElement::canLoadUrl): Ditto.

        * html/LoadableTextTrack.cpp:
        (WebCore::LoadableTextTrack::newCuesAvailable): Add new cues one at a time because 
            cues->add(Vector<TextTrackCue*>&) is gone.

        * html/TextTrack.cpp:
        (WebCore::TextTrack::addCue): Implement.
        (WebCore::TextTrack::removeCue): Ditto.
        * html/TextTrack.h:

        (WebCore::TextTrackCue::TextTrackCue): Initialize every member variable.
        (WebCore::TextTrackCue::track): m_track is now a RefPtr.
        (WebCore::TextTrackCue::setTrack): Ditto.
        * html/TextTrackCue.h:

        * html/TextTrackCueList.cpp:
        (WebCore::TextTrackCueList::add): Don't ignore out of order cues, the spec text is not 
            a conformance requirement. Return bool to indicate success or failure.
        (WebCore::TextTrackCueList::remove): Return bool to indicate success or failure.
        * html/TextTrackCueList.h:

        * loader/TextTrackLoader.cpp:
        (WebCore::TextTrackLoader::notifyFinished): Don't change m_state once it is set to Failed.

2011-11-25  Kentaro Hara  <haraken@chromium.org>

        Refactoring CodeGenerator*.pm for bug 72138
        https://bugs.webkit.org/show_bug.cgi?id=73115

        Reviewed by Adam Barth.

        Tests: bindings/scripts/test/TestObj.idl

        * bindings/scripts/CodeGeneratorGObject.pm: Added "1;" at the end since this perl script is loaded as a package.
        * bindings/scripts/CodeGeneratorV8.pm: Ditto. Removed unnecessary variable names from method declarations in order to supress style check errors when a new run-bindings-tests IDL is added.
        (GenerateHeaderCustomCall):
        * bindings/scripts/test/V8/V8TestObj.h: Updated a run-bindings-tests result.

2011-11-25  Kentaro Hara  <haraken@chromium.org>

        Implement the WebGLContextEvent constructor
        https://bugs.webkit.org/show_bug.cgi?id=72856

        Reviewed by Adam Barth.

        This patch makes WebGLContextEvent constructable.
        The spec: http://www.khronos.org/registry/webgl/specs/latest/#5.14

        Test: fast/events/constructors/webgl-context-event-constructor.html

        * html/canvas/WebGLContextEvent.cpp: Added an implementation of the WebGLContextEvent constructor.
        (WebCore::WebGLContextEventInit::WebGLContextEventInit):
        (WebCore::WebGLContextEvent::WebGLContextEvent):
        * html/canvas/WebGLContextEvent.h: Added a definition of WebGLContextEventInit.
        (WebCore::WebGLContextEvent::create):
        * html/canvas/WebGLContextEvent.idl: Added [ConstructorTemplate=Event] IDL.

2011-11-25  Jeff Timanus  <twiz@chromium.org>

        [Chromium] The DrawingBuffer::bind method was incorrectly resetting the
        GL viewport parameters. This was unnecessary, and resulted in the corruption
        of the WebGL context's state.
        https://bugs.webkit.org/show_bug.cgi?id=73091

        Reviewed by Stephen White.

        Tests: fast/canvas/webgl/webgl-viewport-parameters-preserved.html

        * platform/graphics/gpu/DrawingBuffer.cpp:
        (WebCore::DrawingBuffer::bind):

2011-11-25  Ryosuke Niwa  <rniwa@webkit.org>

        Crash in BidiRunList<Run>::replaceRunWithRuns with an empty bdi element
        https://bugs.webkit.org/show_bug.cgi?id=73116

        Reviewed by Eric Seidel.

        The assertion failure was caused because isolatedResolver is initialized with
        null start object due to the isolated run being empty.

        Fixed the failure by skipping empty isolated runs.

        Test: fast/text/empty-bdi-crash.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::constructBidiRuns):

2011-11-25  Antti Koivisto  <antti@apple.com>

        StyleGeneratedImage should ref CSSImageGeneratorValue
        https://bugs.webkit.org/show_bug.cgi?id=73074

        Reviewed by Andreas Kling and Nikolas Zimmermann.
        
        RenderStyle owns a bunch of StyleImage objects. However StyleGeneratedImage does not ref the
        CSSImageGeneratorValue it holds so we currently rely on the stylesheet to keep the CSSImageGeneratorValues
        alive as long as RenderStyle stays alive. While this works (RenderStyles are thrown away if stylesheets
        change) it is not particularly robust or nice.

        - Use RefPtr<CSSImageGeneratorValue> in StyleGeneratedImage
        - Remove the RefPtr<StyleGeneratedImage> from CSSImageGeneratorValue.
          There is no good reason to cache StyleGeneratedImage as it is a small and
          uncommon object. With that the whole back-reference becomes unnecessary.
        - Switch more places to use (Pass)RefPtr<StyleImage> for consistency.

        * css/CSSImageGeneratorValue.cpp:
        (WebCore::CSSImageGeneratorValue::CSSImageGeneratorValue):
        * css/CSSImageGeneratorValue.h:
        * css/CSSStyleApplyProperty.cpp:
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        (WebCore::CSSStyleSelector::styleImage):
        (WebCore::CSSStyleSelector::cachedOrPendingFromValue):
        (WebCore::CSSStyleSelector::generatedOrPendingFromValue):
        (WebCore::CSSStyleSelector::loadPendingImage):
        (WebCore::CSSStyleSelector::loadPendingImages):
        * css/CSSStyleSelector.h:
        * rendering/style/FillLayer.h:
        (WebCore::FillLayer::setImage):
        * rendering/style/NinePieceImage.h:
        (WebCore::NinePieceImage::NinePieceImage):
        * rendering/style/StyleGeneratedImage.cpp:
        (WebCore::StyleGeneratedImage::StyleGeneratedImage):
        (WebCore::StyleGeneratedImage::cssValue):
        (WebCore::StyleGeneratedImage::imageSize):
        (WebCore::StyleGeneratedImage::addClient):
        (WebCore::StyleGeneratedImage::removeClient):
        (WebCore::StyleGeneratedImage::image):
        * rendering/style/StyleGeneratedImage.h:
        (WebCore::StyleGeneratedImage::create):
        (WebCore::StyleGeneratedImage::data):

2011-11-25  Andreas Kling  <kling@webkit.org>

        Remove redundant setStrictParsing(false) calls on CSSMappedAttributeDeclarations.
        <http://webkit.org/b/73134>

        Reviewed by Antti Koivisto.

        CSSMappedAttributeDeclarations always use non-strict parsing since they use
        the argument-less CSSMutableStyleDeclaration constructor.

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::createMappedDecl):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::additionalAttributeStyleDecls):
        (WebCore::HTMLTableElement::addSharedCellBordersDecl):
        (WebCore::HTMLTableElement::addSharedCellPaddingDecl):
        (WebCore::HTMLTableElement::addSharedGroupDecls):

2011-11-25  Andreas Kling  <kling@webkit.org>

        Factor element pointer out of CSSMutableStyleDeclaration.
        <http://webkit.org/b/73121>

        Reviewed by Antti Koivisto.

        Move the StyledElement pointer out of CSSMutableStyleDeclaration and into a subclass
        for the cases where it's needed. This reduces the size of vanilla style declarations
        by one CPU word (4 or 8 bytes, depending on architecture.)

        * css/CSSMutableStyleDeclaration.h:
        (WebCore::CSSElementStyleDeclaration::element):
        (WebCore::CSSElementStyleDeclaration::setElement):
        (WebCore::CSSElementStyleDeclaration::CSSElementStyleDeclaration):
        (WebCore::CSSElementStyleDeclaration::~CSSElementStyleDeclaration):

            Added CSSElementStyleDeclaration, a common parent class for inline styles
            and mapped attributes. It extends CSSMutableStyleDeclaration by adding a backpointer
            to the StyledElement that owns it.

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSInlineStyleDeclaration.h: Added.
        (WebCore::CSSInlineStyleDeclaration::~CSSInlineStyleDeclaration):
        (WebCore::CSSInlineStyleDeclaration::create):
        (WebCore::CSSInlineStyleDeclaration::CSSInlineStyleDeclaration):

            Added CSSInlineStyleDeclaration.

        * bindings/js/JSDOMBinding.h:
        (WebCore::root):
        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::setNeedsStyleRecalc):
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::setSelectorText):

            Only follow the associated element on CSSElementStyleDeclarations.

        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
        (WebCore::CSSMutableStyleDeclaration::operator=):

            Remove comment about m_element since the field was moved to a subclass.

        * css/CSSStyleDeclaration.cpp:
        (WebCore::CSSStyleDeclaration::CSSStyleDeclaration):
        * css/CSSStyleDeclaration.h:
        (WebCore::CSSStyleDeclaration::isElementStyleDeclaration):
        (WebCore::CSSStyleDeclaration::isInlineStyleDeclaration):

            We no longer need to track whether a style declaration is mutable or not,
            so the constructors are slightly simplified.
            Added two bits (isElementStyleDeclaration and isInlineStyleDeclaration) for
            runtime type checking. These are protected and set by the CSSElementStyleDeclaration
            constructor.

        * dom/CSSMappedAttributeDeclaration.h:
        (WebCore::CSSMappedAttributeDeclaration::create):
        (WebCore::CSSMappedAttributeDeclaration::CSSMappedAttributeDeclaration):

            Remove pointless CSSRule* argument to constructor since we always passed 0.

        * dom/StyledElement.h:
        (WebCore::StyledElement::inlineStyleDecl):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::createInlineStyleDecl):
        (WebCore::StyledElement::getInlineStyleDecl):
        (WebCore::StyledElement::addSubresourceAttributeURLs):

            Make the inline style on StyledElement a CSSInlineStyleDeclaration.

        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::inlineStyleElement):

            Slightly simplified by having CSSInlineStyleDeclaration.

2011-11-25  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: unflake timeline-network tests
        https://bugs.webkit.org/show_bug.cgi?id=73123

        We should capture stack only when it makes sense. Otherwise loading from cache
        results in different data sets (stacks) than regular load.

        Reviewed by Yury Semikhatsky.

        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::willCallFunction):
        (WebCore::InspectorTimelineAgent::willDispatchEvent):
        (WebCore::InspectorTimelineAgent::willLayout):
        (WebCore::InspectorTimelineAgent::willRecalculateStyle):
        (WebCore::InspectorTimelineAgent::willPaint):
        (WebCore::InspectorTimelineAgent::willWriteHTML):
        (WebCore::InspectorTimelineAgent::didInstallTimer):
        (WebCore::InspectorTimelineAgent::didRemoveTimer):
        (WebCore::InspectorTimelineAgent::willFireTimer):
        (WebCore::InspectorTimelineAgent::willChangeXHRReadyState):
        (WebCore::InspectorTimelineAgent::willLoadXHR):
        (WebCore::InspectorTimelineAgent::willEvaluateScript):
        (WebCore::InspectorTimelineAgent::didScheduleResourceRequest):
        (WebCore::InspectorTimelineAgent::willReceiveResourceData):
        (WebCore::InspectorTimelineAgent::willReceiveResourceResponse):
        (WebCore::InspectorTimelineAgent::didFinishLoadingResource):
        (WebCore::InspectorTimelineAgent::didTimeStamp):
        (WebCore::InspectorTimelineAgent::didMarkDOMContentEvent):
        (WebCore::InspectorTimelineAgent::didMarkLoadEvent):
        (WebCore::InspectorTimelineAgent::didRegisterAnimationFrameCallback):
        (WebCore::InspectorTimelineAgent::didCancelAnimationFrameCallback):
        (WebCore::InspectorTimelineAgent::willFireAnimationFrameEvent):
        (WebCore::InspectorTimelineAgent::appendRecord):
        (WebCore::InspectorTimelineAgent::pushCurrentRecord):
        * inspector/InspectorTimelineAgent.h:
        * inspector/TimelineRecordFactory.cpp:
        (WebCore::TimelineRecordFactory::createGenericRecord):

2011-11-25  Yury Semikhatsky  <yurys@chromium.org>

        [Chromium] Web Inspector: get rid of WebDevToolsFrontendClient::sendFrontendLoaded method
        https://bugs.webkit.org/show_bug.cgi?id=73126

        Notify embedder that front-end is loadded only when all dispatchers, panels and models
        have been created so that it could dispatch messages synchronously in the loaded handler.

        Reviewed by Pavel Feldman.

        * inspector/front-end/inspector.js:

2011-11-25  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: don't send Console.messagesCleared on front-end connection if console agent is not enabled
        https://bugs.webkit.org/show_bug.cgi?id=73122

        Console agent should stay silent if it is not enabled.

        Reviewed by Pavel Feldman.

        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::clearMessages):
        (WebCore::InspectorConsoleAgent::addConsoleMessage):

2011-11-25  Wei Charles  <charles.wei@torchmobile.com.cn>

        Upstream the QNX/RIM specific HistoryItemViewState
        https://bugs.webkit.org/show_bug.cgi?id=73114

        Reviewed by Daniel Bates.

        This patch is to upstream RIM/QNX specific HistoryItemViewState extension
        to store some extra view state.

        No new tests. It's not built yet.

        * history/blackberry: Added.
        * history/blackberry/HistoryItemViewState.h: Added.
        (WebCore::HistoryItemViewState::HistoryItemViewState):

2011-11-25  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Split scripts panel top status bar into debug toolbar and editor toolbar.
        https://bugs.webkit.org/show_bug.cgi?id=73087

        Reviewed by Pavel Feldman.

        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._reset):
        (WebInspector.ScriptsPanel.prototype._createEditorToolbar):
        (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
        (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
        * inspector/front-end/scriptsPanel.css:
        (#scripts-debug-toolbar):
        (#scripts-editor-toolbar):
        (#scripts-debug-sidebar-resizer-widget):
        (.script-view):

2011-11-25  Leo Yang  <leo.yang@torchmobile.com.cn>

        Upstream BlackBerry porting of platform/text
        https://bugs.webkit.org/show_bug.cgi?id=73117

        Reviewed by Daniel Bates.

        Initial upstream, can't be built yet, no test cases.

        * platform/text/blackberry/StringBlackBerry.cpp: Added.
        (WTF::String::String):
        (WTF::String::operator WebString):
        * platform/text/blackberry/TextBreakIteratorInternalICUBlackBerry.cpp: Added.
        (WebCore::currentSearchLocaleID):
        (WebCore::currentTextBreakLocaleID):

2011-11-25  Kentaro Hara  <haraken@chromium.org>

        Remove WebCore.gyp/scripts/rule_binding.py
        https://bugs.webkit.org/show_bug.cgi?id=73109

        Reviewed by Adam Barth.

        rule_binding.py is used by WebCore.gyp only. rule_binding.py is just a wrapper
        of generate-bindings.pl and thus we can remove it.

        No new tests. No change in behavior.

        * WebCore.gyp/WebCore.gyp: Replaces rule_binding.py with generate-bindings.pl.
        * WebCore.gyp/scripts/rule_binding.py: Removed.
        * bindings/scripts/preprocessor.pm: When '"ENABLE_SOMETHING=1" "ENABLE_OTHERS=0"' is passed as a define macro, the string is passed to our perl scripts without the double-quotations (") omitted. We need to omit the double quatations here.
        (applyPreprocessor):

2011-11-24  Yury Semikhatsky  <yurys@chromium.org>

        [Chromium] Web Inspector: remove legacy debugger support
        https://bugs.webkit.org/show_bug.cgi?id=73081

        Removed classed providing access to V8 debugging protocol. Clients should
        use Web Inspector protocol instead.

        Reviewed by Pavel Feldman.

        * bindings/v8/PageScriptDebugServer.cpp:
        (WebCore::PageScriptDebugServer::PageScriptDebugServer):
        (WebCore::PageScriptDebugServer::addListener):
        * bindings/v8/PageScriptDebugServer.h:

2011-11-24  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: refactor resource tree model and introduce explicit class for ResourceTreeFrame.
        https://bugs.webkit.org/show_bug.cgi?id=73078

        Otherwise we are managing frames and their resources using too many maps.

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector.json:
        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::restore):
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::didReceiveResponse):
        * inspector/front-end/ApplicationCacheModel.js:
        (WebInspector.ApplicationCacheModel.prototype._frameNavigated):
        (WebInspector.ApplicationCacheModel.prototype._frameDetached):
        * inspector/front-end/JavaScriptContextManager.js:
        (WebInspector.JavaScriptContextManager.prototype._frameAdded):
        (WebInspector.JavaScriptContextManager.prototype._frameNavigated):
        (WebInspector.FrameEvaluationContext.prototype.get displayName):
        * inspector/front-end/NetworkManager.js:
        (WebInspector.NetworkDispatcher.prototype.requestWillBeSent):
        (WebInspector.NetworkDispatcher.prototype.responseReceived):
        (WebInspector.NetworkDispatcher.prototype.loadingFinished):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._mainFrameNavigated):
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.ResourceTreeModel):
        (WebInspector.ResourceTreeModel.prototype._fetchResourceTree):
        (WebInspector.ResourceTreeModel.prototype._processCachedResources):
        (WebInspector.ResourceTreeModel.prototype._addFrame):
        (WebInspector.ResourceTreeModel.prototype._frameNavigated):
        (WebInspector.ResourceTreeModel.prototype._frontendReused):
        (WebInspector.ResourceTreeModel.prototype._frameDetached):
        (WebInspector.ResourceTreeModel.prototype._onResourceUpdated):
        (WebInspector.ResourceTreeModel.prototype._onResourceUpdateDropped):
        (WebInspector.ResourceTreeModel.prototype.frameForId):
        (WebInspector.ResourceTreeModel.prototype.forAllResources):
        (WebInspector.ResourceTreeModel.prototype.resourceForURL):
        (WebInspector.ResourceTreeModel.prototype._addFramesRecursively):
        (WebInspector.ResourceTreeModel.prototype._createResourceFromFramePayload):
        (WebInspector.ResourceTreeModel.prototype._createResource):
        (WebInspector.ResourceTreeFrame):
        (WebInspector.ResourceTreeFrame.prototype.get id):
        (WebInspector.ResourceTreeFrame.prototype.get name):
        (WebInspector.ResourceTreeFrame.prototype.get url):
        (WebInspector.ResourceTreeFrame.prototype.get loaderId):
        (WebInspector.ResourceTreeFrame.prototype.get parentFrame):
        (WebInspector.ResourceTreeFrame.prototype.get childFrames):
        (WebInspector.ResourceTreeFrame.prototype.isMainFrame):
        (WebInspector.ResourceTreeFrame.prototype.navigate):
        (WebInspector.ResourceTreeFrame.prototype.get mainResource):
        (WebInspector.ResourceTreeFrame.prototype.addChildFrame):
        (WebInspector.ResourceTreeFrame.prototype.removeChildFrame):
        (WebInspector.ResourceTreeFrame.prototype._addResource):
        (WebInspector.ResourceTreeFrame.prototype.resources):
        (WebInspector.ResourceTreeFrame.prototype.resourceForURL.filter):
        (WebInspector.ResourceTreeFrame.prototype.resourceForURL):
        (WebInspector.ResourceTreeFrame.prototype._callForFrameResources):
        (WebInspector.PageDispatcher.prototype.frameNavigated):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.ResourcesPanel):
        (WebInspector.ResourcesPanel.prototype.wasShown):
        (WebInspector.ResourcesPanel.prototype._initialize):
        (WebInspector.ResourcesPanel.prototype._resetWithFrames):
        (WebInspector.ResourcesPanel.prototype._reset):
        (WebInspector.ResourcesPanel.prototype._populateResourceTree.populateFrame):
        (WebInspector.ResourcesPanel.prototype._populateResourceTree):
        (WebInspector.ResourcesPanel.prototype._frameAdded):
        (WebInspector.ResourcesPanel.prototype._frameDetached):
        (WebInspector.ResourcesPanel.prototype._frameNavigated):
        (WebInspector.ResourcesPanel.prototype._cachedResourcesLoaded):
        * inspector/front-end/ScriptFormatter.js:
        (WebInspector.ScriptFormatter.prototype.formatContent):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestResource):

2011-11-24  Kentaro Hara  <haraken@chromium.org>

        Initialize global variables during IDLParser object creation
        https://bugs.webkit.org/show_bug.cgi?id=73108

        Reviewed by Adam Barth.

        Currently, IDLParser.pm initializes global variables in a global scope,
        which means that the global variables are initialized just once at the beginning.
        On the other hand, implementing [Supplemental] IDL (bug 72138) requires a change
        on generate-bindings.pl that initializes the global variables whenever a new IDLParser
        object is created. Thus, this patch initializes the global variables during
        the IDLParser object creation.

        No new tests. No change in behavior.

        * bindings/scripts/IDLParser.pm:
        (InitializeGlobalData):
        (new):

2011-11-24  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Build fix for NOT ENABLE_WEB_SOCKETS.

        * CMakeLists.txt: Move CloseEvent.idl to the unconditional files.

2011-11-24  Patrick Gansterer  <paroga@webkit.org>

        Build fix for C++ bindings.

        * bindings/cpp/WebDOMEventTarget.cpp: Added #if ENABLE() guards.

2011-11-24  Arko Saha  <arko@motorola.com>

        Microdata: Support for properties attribute.
        https://bugs.webkit.org/show_bug.cgi?id=71050

        Reviewed by Adam Barth.

        The properties attribute returns an HTMLPropertiesCollection object with all the element's
        properties. Otherwise, an empty HTMLPropertiesCollection object.

        Tests: fast/dom/MicroData/itemref-refers-first-element-with-given-id.html
               fast/dom/MicroData/names-property-must-be-correct.html
               fast/dom/MicroData/names-property-test.html
               fast/dom/MicroData/properties-collection-add-remove-itemref.html
               fast/dom/MicroData/properties-collection-add-remove-property.html
               fast/dom/MicroData/properties-collection-behavior-add-remove-itemscope-attr.html
               fast/dom/MicroData/properties-collection-must-be-correct.html
               fast/dom/MicroData/properties-collection-must-ignore-properties-of-nested-items.html
               fast/dom/MicroData/properties-collection-must-see-the-properties-added-in-itemref.html
               fast/dom/MicroData/properties-collection-test.html

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * DerivedSources.pri:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/gobject/GNUmakefile.am:
        * bindings/js/JSHTMLCollectionCustom.cpp:
        (WebCore::toJS):
        * dom/MicroDataItemList.cpp:
        * dom/Node.cpp:
        (WebCore::Node::itemProp):
        (WebCore::Node::setItemProp):
        (WebCore::Node::itemRef):
        (WebCore::Node::setItemRef):
        (WebCore::Node::itemType):
        (WebCore::Node::setItemType):
        (WebCore::Node::properties):
        * dom/Node.h:
        * dom/NodeRareData.h:
        (WebCore::NodeRareData::itemProp):
        (WebCore::NodeRareData::setItemProp):
        (WebCore::NodeRareData::itemRef):
        (WebCore::NodeRareData::setItemRef):
        (WebCore::NodeRareData::itemType):
        (WebCore::NodeRareData::setItemType):
        (WebCore::NodeRareData::properties):
        * html/CollectionType.h:
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::itemAfter):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::setItemValueText):
        * html/HTMLElement.h:
        * html/HTMLElement.idl:
        * html/HTMLPropertiesCollection.cpp: Added.
        (WebCore::compareTreeOrder):
        (WebCore::HTMLPropertiesCollection::create):
        (WebCore::HTMLPropertiesCollection::HTMLPropertiesCollection):
        (WebCore::HTMLPropertiesCollection::~HTMLPropertiesCollection):
        (WebCore::HTMLPropertiesCollection::findPropetiesOfAnItem): Finds the properties of an item.
        (WebCore::HTMLPropertiesCollection::length): Returns the number of elements in the properties collection.
        (WebCore::HTMLPropertiesCollection::item): Returns the element with index 'index' from the collection. The items are sorted in tree order.
        (WebCore::HTMLPropertiesCollection::names): Returns a DOMStringList with the property names of the elements in the collection with the order preserved but with duplicates removed.
        * html/HTMLPropertiesCollection.h: Added.
        * html/HTMLPropertiesCollection.idl: Added.
        * page/DOMWindow.idl:

2011-11-24  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Indexes should be secondarily sorted on primary key
        https://bugs.webkit.org/show_bug.cgi?id=72567

        Reviewed by Tony Chang.

        Implemented by adding the primary key (i.e. unique key in the
        object store) to the IndexDataKey (i.e. the composite key used
        in the index. Previously, non-unique entries in the index were
        stored with a unique (and hidden) sequenceNumber, so ordering was
        not predictable by scripts (or per spec). The sequenceNumber
        is now deprecated but still present in the LevelDB backing store
        to avoid having to do a data migration.

        Test: storage/indexeddb/cursor-primary-key-order.html

        * storage/IDBLevelDBBackingStore.cpp:
        (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
        * storage/IDBLevelDBCoding.cpp:
        (WebCore::IDBLevelDBCoding::compare):
        (WebCore::IDBLevelDBCoding::IndexDataKey::decode):
        (WebCore::IDBLevelDBCoding::IndexDataKey::encode):
        (WebCore::IDBLevelDBCoding::IndexDataKey::compare):
        (WebCore::IDBLevelDBCoding::IndexDataKey::primaryKey):
        * storage/IDBLevelDBCoding.h:

2011-11-24  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: WebInspector.inspectedPageDomain is not calculated for about:blank
        https://bugs.webkit.org/show_bug.cgi?id=73082

        Reviewed by Timothy Hatcher.

        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.ResourceTreeModel.prototype._processCachedResources):
        (WebInspector.ResourceTreeModel.prototype._frameNavigated):
        (WebInspector.ResourceTreeModel.prototype._addFramesRecursively):
        * inspector/front-end/inspector.js:
        (WebInspector.networkResourceById):
        (WebInspector.get inspectedPageDomain):

2011-11-24  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: provide context menu items to open resources using extensions
        https://bugs.webkit.org/show_bug.cgi?id=73076

        Reviewed by Yury Semikhatsky.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype._onSetOpenResourceHandler):
        (WebInspector.ExtensionServer.prototype._handleOpenURL):
        * inspector/front-end/HandlerRegistry.js:
        (get WebInspector.HandlerRegistry.prototype.set dispatch):
        (get WebInspector.HandlerRegistry.prototype.dispatchToHandler):
        * inspector/front-end/JavaScriptSourceFrame.js:
        (WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.FrameResourceTreeElement.prototype._handleContextMenuEvent):
        * inspector/front-end/SourceFrame.js:
        (WebInspector.SourceFrame.prototype.populateTextAreaContextMenu):
        * inspector/front-end/externs.js:
        (WebInspector.populateResourceContextMenu):
        * inspector/front-end/inspector.js:
        (WebInspector.populateResourceContextMenu):
        (WebInspector._showAnchorLocation):

2011-10-27  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] WebAudio AudioDestination
        https://bugs.webkit.org/show_bug.cgi?id=69835

        Reviewed by Martin Robinson.

        New GStreamer source element pulling data from the AudioBus and
        outputing audio interleaved GstBuffers suitable for playback.

        * GNUmakefile.list.am: Added the new GStreamer WebAudio element
        source files to the build.
        * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
        (WebCore::onGStreamerWavparsePadAddedCallback): Function called
        when the playback pipeline successfully parsed the audio source
        into a WAV stream.
        (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
        Configure the initial playback pipeline up to the WAV parser. The
        audio sink is added only after the WAV parser was configured.
        (WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
        Reset the playback pipeline and delete it.
        (WebCore::AudioDestinationGStreamer::finishBuildingPipelineAfterWavParserPadReady):
        Method to add the audio sink to the pipeline and link it to the
        WAV parser.
        (WebCore::AudioDestinationGStreamer::start): Set pipeline to
        PLAYING, at the first run it will trigger the WAV parser and hence
        the audio-sink plugging.
        (WebCore::AudioDestinationGStreamer::stop): Pause the pipeline.
        * platform/audio/gstreamer/AudioDestinationGStreamer.h:
        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp: Added.
        (getGStreamerMonoAudioCaps): Utility function to generate
        GStreamer caps representing a single audio channel for a given
        sample rate.
        (webKitWebAudioGStreamerChannelPosition): Utility function to
        convert AudioBus channel representations to GStreamer positional
        audio channel values.
        (webkit_web_audio_src_class_init): GObject configuration of the
        GStreamer source element.
        (webkit_web_audio_src_init): Initialization of the private data of
        the element.
        (webKitWebAudioSourceConstructed): Configure the GstBin elements
        depending on the AudioBus layout.
        (webKitWebAudioSourceFinalize): Clean up the GstBin and free private
        data of the element.
        (webKitWebAudioSourceSetProperty): GObject property setter.
        (webKitWebAudioSourceGetProperty): GObject property getter.
        (webKitWebAudioSourceLoop): GstTask used to pull data from the
        AudioBus and push it as GstBuffers to the src pad of the element.
        (webKitWebAudioSourceChangeState): Start or stop the above GstTask
        depending on the asked state transition.
        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.h: Added.
        * platform/graphics/gstreamer/GRefPtrGStreamer.cpp: GstTask support in GRefPtr.
        (WTF::adoptGRef):
        (WTF::GstTask):
        * platform/graphics/gstreamer/GRefPtrGStreamer.h:

2011-11-24  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        [Qt] Get rid of the buildDirForSource() function in the build system

        At some point the plan was to allow for running qmake on sub-trees
        of the sources, into the top level build directory, but this is no
        longer possible, so no reason to keep the convenience function around.

        Reviewed by Simon Hausmann.

        * DerivedSources.pri:

2011-11-24  Patrick Gansterer  <paroga@webkit.org>

        [CMake] Add missing source files
        https://bugs.webkit.org/show_bug.cgi?id=73052

        Reviewed by Andreas Kling.

        * CMakeLists.txt:

2011-11-24  Philippe Normand  <pnormand@igalia.com>

        Fix ASSERTs added in r101082.

        Rubber-Stamped by Martin Robinson.

        * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
        (WTF::adoptGRef): Check for valid pointer before
        GST_OBJECT_IS_FLOATING().

2011-11-23  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: shift focus to the source view when a resource is selected in the Scripts panel
        https://bugs.webkit.org/show_bug.cgi?id=69738

        Reviewed by Timothy Hatcher.

        The source viewer is focused whenever a file name option is clicked, and is NOT focused when the script list
        is traversed with the Up/Down keys.

        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._filesSelectChanged):
        * inspector/front-end/SourceFrame.js:
        (WebInspector.SourceFrame.prototype.focus):
        * inspector/front-end/TextViewer.js:
        (WebInspector.TextViewer.prototype.focus):

2011-11-23  Pavel Podivilov  <podivilov@chromium.org>

        Web Inspector: add integration test for compiler source maps.
        https://bugs.webkit.org/show_bug.cgi?id=72730

        Reviewed by Pavel Feldman.

        Test: http/tests/inspector/compiler-source-mapping-debug.html

        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype._bindScriptToRawSourceCode):
        (WebInspector.DebuggerPresentationModel.prototype.setCompilerSourceMapping):
        (WebInspector.DebuggerPresentationModel.prototype.evaluateInSelectedCallFrame):
        (WebInspector.DebuggerPresentationModel.prototype.get executionLineLocation):
        (WebInspector.DebuggerPresentationModel.DefaultLinkifierFormatter.prototype.formatRawSourceCodeAnchor):
        (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyLocation):
        (WebInspector.DebuggerPresentationModel.Linkifier.prototype._updateAnchor):

2011-11-23  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: get rid of the WebInspector.mainResource, use WebInspector.inspectedPageURL instead.
        https://bugs.webkit.org/show_bug.cgi?id=73024

        We use it for the URL mostly, no need to create artificial resource for that upon
        attaching to the existing page.

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/AuditsPanel.js:
        * inspector/front-end/HAREntry.js:
        (WebInspector.HARLog.prototype._buildPages):
        (WebInspector.HARLog.prototype._pageEventTime):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView.prototype._updateSummaryBar):
        (WebInspector.NetworkLogView.prototype._exportAll):
        * inspector/front-end/Resource.js:
        (WebInspector.Resource.prototype.set url):
        (WebInspector.Resource.prototype.get displayName):
        (WebInspector.Resource.prototype.get displayDomain):
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.ResourceTreeModel.prototype._processCachedResources):
        (WebInspector.ResourceTreeModel.prototype._dispatchInspectedURLChanged):
        (WebInspector.ResourceTreeModel.prototype._frameNavigated):
        (WebInspector.ResourceTreeModel.prototype._addFramesRecursively):
        * inspector/front-end/ResourceUtils.js:
        (WebInspector.displayNameForURL):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.ResourcesPanel.prototype._initDefaultSelection):
        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel.prototype._addRecordToTimeline):
        * inspector/front-end/utilities.js:
        (String.prototype.asParsedURL):

2011-11-23  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: exceptions in shared workers should be logged to web inspector console
        https://bugs.webkit.org/show_bug.cgi?id=73022

        According to section "4.7 Runtime script errors" of Web Workers spec "For shared
        workers, if the error is still not handled afterwards, or if the error occurred
        while handling a previous script error, the error may be reported to the user."

        This change adds uncaugh exceptions to the shared worker web inspector console.

        Reviewed by Pavel Feldman.

        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::restore):
        * inspector/InspectorConsoleInstrumentation.h:
        (WebCore::InspectorInstrumentation::addMessageToConsole):
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::restore):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::instrumentingAgentsForWorkerContext):
        * inspector/InspectorInstrumentation.h:
        * inspector/WorkerInspectorController.cpp:
        (WebCore::WorkerInspectorController::connectFrontend):
        (WebCore::WorkerInspectorController::disconnectFrontend):
        (WebCore::WorkerInspectorController::restoreInspectorStateFromCookie):
        * inspector/WorkerInspectorController.h:
        * inspector/front-end/WorkerManager.js:
        (WebInspector.WorkerManager.showWorkerTerminatedScreen):
        * inspector/front-end/inspector.js:
        * workers/SharedWorkerContext.cpp:
        (WebCore::SharedWorkerContext::logExceptionToConsole):
        * workers/SharedWorkerContext.h:
        * workers/WorkerContext.cpp:
        (WebCore::WorkerContext::addMessage): console messages are now added to
        the worker console agent.
        (WebCore::WorkerContext::addMessageToWorkerConsole):
        * workers/WorkerContext.h:

2011-11-23  Jeff Timanus  <twiz@chromium.org>

        [Chromium]  Prevent DrawingBuffer instances from corrupting the active
        texture state of the WebGL contexts. The DrawingBuffer now tracks the
        state of texture unit 0, and the active texture unit, so that state can
        be restored.
        https://bugs.webkit.org/show_bug.cgi?id=73033

        Reviewed by Kenneth Russell.

        Test: fast/canvas/webgl/webgl-texture-binding-preserved.html

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::activeTexture):
        (WebCore::WebGLRenderingContext::bindTexture):
        * platform/graphics/chromium/DrawingBufferChromium.cpp:
        (WebCore::DrawingBuffer::DrawingBuffer):
        (WebCore::DrawingBuffer::publishToPlatformLayer):
        * platform/graphics/gpu/DrawingBuffer.h:
        (WebCore::DrawingBuffer::setTexture2DBinding):
        (WebCore::DrawingBuffer::setActiveTextureUnit):
        * platform/graphics/gpu/mac/DrawingBufferMac.mm:
        (WebCore::DrawingBuffer::DrawingBuffer):
        * platform/graphics/gpu/qt/DrawingBufferQt.cpp:
        (WebCore::DrawingBuffer::DrawingBuffer):
        * platform/graphics/gtk/DrawingBufferGtk.cpp:
        (WebCore::DrawingBuffer::DrawingBuffer):

2011-11-23  Luke Macpherson   <macpherson@chromium.org>

        CSSValue: reorder ClassType enum to allow faster comparisons, add COMPILE_ASSERT on class size.
        https://bugs.webkit.org/show_bug.cgi?id=72924

        Reviewed by Andreas Kling.

        Note that the change from unsigned to unsigned char is to improve bit packing when using MSVC.

        Covered by existing CSS tests.

        * css/CSSValue.h:
        (WebCore::CSSValue::isPrimitiveValue):
        (WebCore::CSSValue::isValueList):
        (WebCore::CSSValue::isImageGeneratorValue):
        (WebCore::CSSValue::isTimingFunctionValue):
        (WebCore::CSSValue::CSSValue):

2011-11-23  Dmitry Lomov  <dslomov@google.com>

        https://bugs.webkit.org/show_bug.cgi?id=73054
        [V8][Chromium] Add list of transferred ArrayBuffers to SerializedScriptValue::create.

        Reviewed by David Levin.

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateParametersCheck):
        * bindings/scripts/test/V8/V8TestObj.cpp:
        (WebCore::TestObjInternal::serializedValueCallback):
       * bindings/v8/OptionsObject.cpp:
        * bindings/v8/SerializedScriptValue.cpp:
        (WebCore::SerializedScriptValue::create):
        * bindings/v8/SerializedScriptValue.h:
        * bindings/v8/V8Utilities.cpp:
        (WebCore::extractTransferables):
        (WebCore::getMessagePortArray):
        * bindings/v8/V8Utilities.h:
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::handlePostMessageCallback):
        * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
        (WebCore::handlePostMessageCallback):
        * bindings/v8/custom/V8HistoryCustom.cpp:
        (WebCore::V8History::pushStateCallback):
        (WebCore::V8History::replaceStateCallback):
        * bindings/v8/custom/V8MessageEventCustom.cpp:
        * bindings/v8/custom/V8MessagePortCustom.cpp:
        (WebCore::handlePostMessageCallback):
        * bindings/v8/custom/V8MessagePortCustom.h: Removed.
        * bindings/v8/custom/V8WorkerCustom.cpp:
        (WebCore::handlePostMessageCallback):

2011-11-23  Rafael Weinstein  <rafaelw@chromium.org>

        Cleanup #if usage in V8GCController
        https://bugs.webkit.org/show_bug.cgi?id=73060

        Reviewed by Ojan Vafai.

        No tests needed. Just code cleanup

        * bindings/v8/V8GCController.cpp:
        (WebCore::V8GCController::checkMemoryUsage):

2011-11-23  Rafael Weinstein  <rafaelw@chromium.org>

        Change CSSMutableStyleDeclaration::m_node to m_element (along with getter/setter)
        https://bugs.webkit.org/show_bug.cgi?id=73050

        Reviewed by Ojan Vafai.

        No tests needed. This is just a refactor.

        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
        (WebCore::CSSMutableStyleDeclaration::operator=):
        (WebCore::CSSMutableStyleDeclaration::isInlineStyleDeclaration):
        (WebCore::CSSMutableStyleDeclaration::setNeedsStyleRecalc):
        * css/CSSMutableStyleDeclaration.h:
        (WebCore::CSSMutableStyleDeclaration::setElement):
        (WebCore::CSSMutableStyleDeclaration::element):
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::setSelectorText):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::createInlineStyleDecl):
        (WebCore::StyledElement::destroyInlineStyleDecl):
        (WebCore::StyledElement::attributeChanged):
        (WebCore::StyledElement::createMappedDecl):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::additionalAttributeStyleDecls):
        (WebCore::HTMLTableElement::addSharedCellBordersDecl):
        (WebCore::HTMLTableElement::addSharedCellPaddingDecl):
        (WebCore::HTMLTableElement::addSharedGroupDecls):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::inlineStyleElement):

2011-11-23  Ami Fischman  <fischman@chromium.org>

        Teach VideoLayerChromium how to render native texture (to support HW video decode).
        https://bugs.webkit.org/show_bug.cgi?id=73043

        Reviewed by Kenneth Russell.

        No new tests. (depends on chromium support landing, and supporting HW being available)

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::drawLayersOntoRenderSurfaces):
        (WebCore::LayerRendererChromium::videoLayerNativeTextureProgram):
        * platform/graphics/chromium/LayerRendererChromium.h:
        * platform/graphics/chromium/VideoFrameChromium.h:
        * platform/graphics/chromium/VideoLayerChromium.cpp:
        (WebCore::VideoLayerChromium::VideoLayerChromium):
        (WebCore::VideoLayerChromium::updateCompositorResources):
        (WebCore::VideoLayerChromium::pushPropertiesTo):
        (WebCore::VideoLayerChromium::determineTextureFormat):
        * platform/graphics/chromium/VideoLayerChromium.h:
        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
        (WebCore::CCVideoLayerImpl::setNativeTexture):
        (WebCore::CCVideoLayerImpl::draw):
        (WebCore::CCVideoLayerImpl::drawNativeTexture):
        * platform/graphics/chromium/cc/CCVideoLayerImpl.h:

2011-11-23  Vincent Scheib  <scheib@chromium.org>

        Pointer Lock: Plumb movement coordinates from PlatformMouseEvent to MouseEvents.
        https://bugs.webkit.org/show_bug.cgi?id=73031

        Reviewed by Dimitri Glazkov.

        No tests for now, but this patch gets us closer to being able to write layout tests for pointer lock.

        * dom/MouseEvent.cpp:
        (WebCore::MouseEvent::create):
        (WebCore::MouseEvent::MouseEvent):
        (WebCore::SimulatedMouseEvent::SimulatedMouseEvent):
        * dom/MouseEvent.h:
        (WebCore::MouseEvent::create):
        * dom/MouseRelatedEvent.cpp:
        (WebCore::MouseRelatedEvent::MouseRelatedEvent):
        * dom/MouseRelatedEvent.h:
        * dom/TouchEvent.cpp:
        (WebCore::TouchEvent::TouchEvent):
        * dom/WheelEvent.cpp:
        (WebCore::WheelEvent::WheelEvent):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::dispatchDragEvent):
        * platform/PlatformMouseEvent.h:
        (WebCore::PlatformMouseEvent::movementX):
        (WebCore::PlatformMouseEvent::movementY):

2011-11-23  Nico Weber  <thakis@chromium.org>

        Remove one static initializer (for kTickTime)
        https://bugs.webkit.org/show_bug.cgi?id=73049

        Reviewed by Adam Barth.

        * platform/ScrollAnimatorNone.cpp:

2011-11-23  Jonathan Backer  <backer@chromium.org>

        [chromium] Drop root layer tiles on platforms that cache the front buffer
        https://bugs.webkit.org/show_bug.cgi?id=72956

        Reviewed by Kenneth Russell.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::initialize):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::initialize):
        (WebCore::CCLayerTreeHost::didBecomeInvisibleOnImplThread):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):
        (WebCore::LayerRendererCapabilities::LayerRendererCapabilities):

2011-11-23  Erik Arvidsson  <arv@chromium.org>

        Binding CodeGenerators don't support Conditional= on constants
        https://bugs.webkit.org/show_bug.cgi?id=67666

        Reviewed by Adam Barth.

        Adds support for [Conditional=LABEL] to const IDL fields.

        * bindings/scripts/CodeGenerator.pm:
        (GenerateConditionalStringFromAttributeValue): Moved out of CodeGenerator{CPP,JS,V8}.pm.
        (GenerateCompileTimeCheckForEnumsIfNeeded): Wrap in conditional #if.
        * bindings/scripts/CodeGeneratorCPP.pm:
        (GenerateConditionalString):
        (GenerateHeader): Ditto.
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateConditionalString):
        (GenerateHeader): Ditto.
        (GenerateImplementation): Ditto.
        (GenerateHashTable):
        (WriteData):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (GenerateHeader): Ditto.
        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateConditionalString): Ditto.
        (GenerateImplementation):
        (WriteData):
        * bindings/scripts/test/CPP/WebDOMTestObj.h: Generated code now wraps conditional const in #if.
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjCONDITIONAL_CONST): Ditto
        * bindings/scripts/test/JS/JSTestObj.h: Ditto
        * bindings/scripts/test/ObjC/DOMTestObj.h: Ditto
        * bindings/scripts/test/TestObj.idl: Added a conditional const.
        * bindings/scripts/test/V8/V8TestObj.cpp: Generated code now wraps conditional const in #if.

2011-11-23  Rafael Weinstein  <rafaelw@chromium.org>

        [MutationObservers] Modifications to the style property don't dispatch "attributes" Mutation Records
        https://bugs.webkit.org/show_bug.cgi?id=70137

        Reviewed by Ryosuke Niwa.

        This patch adds a private AttributesMutationScope mechanism to CSSMutableStyleDeclaration (which uses
        the RAII pattern similar to the public ChildListMutationScope). This manages the (sometimes conditional)
        pre-change serialization of the style attribute (if an observer has requested oldValue), creation of
        the mutation record, and dispatch if the declaration was actual affected.

        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::removeProperty):
        (WebCore::CSSMutableStyleDeclaration::setProperty):
        (WebCore::CSSMutableStyleDeclaration::setPropertyInternal):
        (WebCore::CSSMutableStyleDeclaration::parseDeclaration):
        (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
        (WebCore::CSSMutableStyleDeclaration::addParsedProperty):
        (WebCore::CSSMutableStyleDeclaration::setCssText):
        (WebCore::CSSMutableStyleDeclaration::merge):
        (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
        * dom/Element.cpp:
        (WebCore::Element::setAttribute):

2011-11-23  Dmitry Lomov  <dslomov@google.com>

        Unreviewed, rebaseline binding tests after http://trac.webkit.org/changeset/101064.

        * bindings/scripts/test/JS/JSFloat64Array.cpp:
        (WebCore::toFloat64Array):
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WebCore::V8Float64Array::wrapSlow):

2011-11-23  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r101069.
        http://trac.webkit.org/changeset/101069
        https://bugs.webkit.org/show_bug.cgi?id=73032

        New test always times out (Requested by aklein on #webkit).

        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype._bindScriptToRawSourceCode):
        (WebInspector.DebuggerPresentationModel.prototype.evaluateInSelectedCallFrame):
        (WebInspector.DebuggerPresentationModel.prototype.get executionLineLocation):
        (WebInspector.DebuggerPresentationModel.DefaultLinkifierFormatter.prototype.formatRawSourceCodeAnchor):
        (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyLocation):
        (WebInspector.DebuggerPresentationModel.Linkifier.prototype._updateAnchor):

2011-11-23  Antti Koivisto  <antti@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=72354
        Image pointer in FillLayer not cleared correctly

        Reviewed by Dan Bernstein.

        Test: fast/css/fill-layer-crash.html
        
        We should clear the image pointer too, not just the m_imageSet bit.

        * rendering/style/FillLayer.h:
        (WebCore::FillLayer::clearImage):

2011-11-23  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r101057.
        http://trac.webkit.org/changeset/101057
        https://bugs.webkit.org/show_bug.cgi?id=73027

        Broke Chromium Windows build (Requested by aklein on #webkit).

        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::HTMLTrackElement):
        (WebCore::HTMLTrackElement::didCompleteLoad):
        (WebCore::HTMLTrackElement::textTrackReadyStateChanged):
        * html/HTMLTrackElement.h:
        * html/HTMLTrackElement.idl:
        * html/LoadableTextTrack.cpp:
        (WebCore::LoadableTextTrack::loadTimerFired):
        (WebCore::LoadableTextTrack::cueLoadingStarted):
        (WebCore::LoadableTextTrack::cueLoadingCompleted):
        * html/TextTrack.cpp:
        (WebCore::TextTrack::TextTrack):
        (WebCore::TextTrack::setReadyState):
        * html/TextTrack.h:
        (WebCore::TextTrack::readyState):
        * html/TextTrack.idl:

2011-11-23  Yury Semikhatsky  <yurys@chromium.org>

        Unreviewed. Build fix. Added missing ENABLE(WORKERS) guards.

        * inspector/WorkerConsoleAgent.cpp:
        * inspector/WorkerConsoleAgent.h:
        * inspector/WorkerRuntimeAgent.cpp:
        * inspector/WorkerRuntimeAgent.h:

2011-11-23  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] improper usage of gst_object_ref_sink
        https://bugs.webkit.org/show_bug.cgi?id=73014

        Reviewed by Martin Robinson.

        No new tests. Existing tests cover this already.

        * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
        (WTF::adoptGRef): Ensure this is called with non-floating GstObjects.
        (WTF::GstElement): Replace gst_object_ref_sink with
        gst_object_ref+gst_object_sink like advised in the GstObject documentation.
        (WTF::GstPad): Ditto.
        * platform/graphics/gstreamer/GRefPtrGStreamer.h:

2011-11-23  Yury Semikhatsky  <yurys@chromium.org>

        Web Inspector: split console agent into worker and page console agents
        https://bugs.webkit.org/show_bug.cgi?id=73019

        InspectorConsoleAgent now has two descendants: WorkerConsoleAgent and PageConsoleAgent
        which encapsulate functionality specific for the type of inspected instance.

        Reviewed by Pavel Feldman.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
        (WebCore::InspectorConsoleAgent::~InspectorConsoleAgent):
        (WebCore::InspectorConsoleAgent::clearMessages):
        (WebCore::InspectorConsoleAgent::addMessageToConsole):
        (WebCore::InspectorConsoleAgent::resourceRetrievedByXMLHttpRequest):
        (WebCore::InspectorConsoleAgent::didReceiveResponse):
        (WebCore::InspectorConsoleAgent::didFailLoading):
        (WebCore::InspectorConsoleAgent::addConsoleMessage):
        * inspector/InspectorConsoleAgent.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorStyleTextEditor.cpp:
        * inspector/InspectorStyleTextEditor.h:
        * inspector/PageConsoleAgent.cpp: Copied from Source/WebCore/inspector/PageDebuggerAgent.cpp.
        (WebCore::PageConsoleAgent::PageConsoleAgent):
        (WebCore::PageConsoleAgent::~PageConsoleAgent):
        (WebCore::PageConsoleAgent::clearMessages):
        (WebCore::PageConsoleAgent::addInspectedNode):
        (WebCore::PageConsoleAgent::developerExtrasEnabled):
        * inspector/PageConsoleAgent.h: Copied from Source/WebCore/inspector/PageDebuggerAgent.h.
        * inspector/PageDebuggerAgent.cpp:
        * inspector/PageDebuggerAgent.h:
        * inspector/PageRuntimeAgent.cpp: Copied from Source/WebCore/inspector/PageDebuggerAgent.h.
        (WebCore::PageRuntimeAgent::PageRuntimeAgent): PageRuntimeAgent was moved into its own file.
        (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
        (WebCore::PageRuntimeAgent::scriptStateForFrameId):
        (WebCore::PageRuntimeAgent::getDefaultInspectedState):
        * inspector/PageRuntimeAgent.h: Copied from Source/WebCore/inspector/PageDebuggerAgent.h.
        * inspector/WorkerConsoleAgent.cpp: Copied from Source/WebCore/inspector/PageDebuggerAgent.h.
        (WebCore::WorkerConsoleAgent::WorkerConsoleAgent):
        (WebCore::WorkerConsoleAgent::~WorkerConsoleAgent):
        (WebCore::WorkerConsoleAgent::addInspectedNode):
        (WebCore::WorkerConsoleAgent::developerExtrasEnabled):
        * inspector/WorkerConsoleAgent.h: Copied from Source/WebCore/inspector/PageDebuggerAgent.h.
        * inspector/WorkerDebuggerAgent.cpp:
        * inspector/WorkerDebuggerAgent.h:
        * inspector/WorkerInspectorController.cpp:
        (WebCore::WorkerInspectorController::WorkerInspectorController):
        * inspector/WorkerInspectorController.h:
        * inspector/WorkerRuntimeAgent.cpp: Copied from Source/WebCore/inspector/PageDebuggerAgent.h.
        (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent): WorkerRuntimeAgent was moved into its own file.
        (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
        (WebCore::WorkerRuntimeAgent::scriptStateForFrameId):
        (WebCore::WorkerRuntimeAgent::getDefaultInspectedState):
        * inspector/WorkerRuntimeAgent.h: Copied from Source/WebCore/inspector/PageDebuggerAgent.h.

2011-11-23  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: warning icon for unrecognized style rule should have tooltip
        https://bugs.webkit.org/show_bug.cgi?id=50638

        Reviewed by Yury Semikhatsky.

        * English.lproj/localizedStrings.js: Add new tooltip strings.
        * inspector/front-end/CSSCompletions.js:
        (WebInspector.CSSCompletions.prototype.keySet): Added.
        * inspector/front-end/StylesSidebarPane.js: Create a separate IMG element for an exclamation mark.
        * inspector/front-end/elementsPanel.css:
        (.styles-section .properties li.not-parsed-ok img.exclamation-mark):

2011-11-23  Halton Huo  <halton.huo@intel.com>

        [EFL] Add zlib depend when freetype is used.
        https://bugs.webkit.org/show_bug.cgi?id=66365

        Unreviewed build fix.

        When freetype is enabled, uncompress() function is used by
        WOFFFileFormat.cpp. Since zlib is not required by freetype, we need to
        add libz as dependency for fix linking issue.

        No new test because this change is only to fix linking issue.

        * PlatformEfl.cmake: add ZLIB as dependency when using freetype

2011-11-23  Mihnea Ovidenie  <mihnea@adobe.com>

        CSS Exclusions: parse the shorthand "wrap" property
        https://bugs.webkit.org/show_bug.cgi?id=71905

        Reviewed by Dean Jackson.

        Test: fast/exclusions/wrap-parsing.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyLonghand.cpp:
        (WebCore::initShorthandMap):
        * css/CSSPropertyNames.in:
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):

2011-11-23  Alexandru Chiculita  <achicu@adobe.com>

        [CSS Filters] WebKit crashes when changing the filter
        https://bugs.webkit.org/show_bug.cgi?id=72723

        Reviewed by Simon Fraser.

        There are three things fixed with this patch:
        1. The list of effects wasn't cleared when the FilterOperations were changed.
        2. The sourceImage was going to be 0, because the m_sourceGraphicBuffer.release()
        was also clearing the reference to m_sourceGraphicBuffer. Next time the build() method
        was called m_graphicsBufferAttached was set to false, but the m_sourceGraphicBuffer was
        not regenerated, because the size was not invalidated.
        3. maxEffectRects were not updated when a new list of effects was built.
         
        Test: css3/filters/crash-filter-change.html

        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::build):
        (WebCore::FilterEffectRenderer::prepare):
        * rendering/FilterEffectRenderer.h:
        (WebCore::FilterEffectRenderer::setSourceImageRect):

2011-11-23  Elliot Poger  <epoger@google.com>

        [Skia] fix duplicate symbol __ZN7WebCore11BitmapImage16initPlatformDataEv error
        https://bugs.webkit.org/show_bug.cgi?id=72954

        Reviewed by Adam Barth.

        * WebCore.gyp/WebCore.gyp:

2011-11-18  Pavel Podivilov  <podivilov@chromium.org>

        Web Inspector: add integration test for compiler source maps.
        https://bugs.webkit.org/show_bug.cgi?id=72730

        Reviewed by Pavel Feldman.

        Test: http/tests/inspector/compiler-source-mapping-debug.html

        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype._bindScriptToRawSourceCode):
        (WebInspector.DebuggerPresentationModel.prototype.setCompilerSourceMapping):
        (WebInspector.DebuggerPresentationModel.prototype.evaluateInSelectedCallFrame):
        (WebInspector.DebuggerPresentationModel.prototype.get executionLineLocation):
        (WebInspector.DebuggerPresentationModel.DefaultLinkifierFormatter.prototype.formatRawSourceCodeAnchor):
        (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyLocation):
        (WebInspector.DebuggerPresentationModel.Linkifier.prototype._updateAnchor):

2011-11-23  Martin Robinson  <mrobinson@igalia.com>

        Build fix for GTK+.

        * platform/graphics/gtk/DrawingBufferGtk.cpp:
        (WebCore::DrawingBuffer::DrawingBuffer): Update signature and ASSERT
        for the GTK+ port.

2011-11-23  Rafael Weinstein  <rafaelw@chromium.org>

        Remove notifyChange from the public interface of CSSMutableStyleDeclaration
        https://bugs.webkit.org/show_bug.cgi?id=72660

        Reviewed by Ojan Vafai.

        No tests needed. This is only a refactor.

        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
        (WebCore::CSSMutableStyleDeclaration::addParsedProperty):
        * css/CSSMutableStyleDeclaration.h:
        (WebCore::CSSMutableStyleDeclaration::setProperty):
        (WebCore::CSSMutableStyleDeclaration::removeProperty):
        (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
        * css/CSSStyleSelector.cpp:
        (WebCore::leftToRightDeclaration):
        (WebCore::rightToLeftDeclaration):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::setContentEditable):

2011-11-23  Scott Graham  <scottmg@chromium.org>

        Adding gamepad support
        https://bugs.webkit.org/show_bug.cgi?id=69451

        Reviewed by Darin Fisher.

        Plumb gamepad data access through platform.

        Test: gamepad/gamepad-polling-access.html

        * WebCore.gypi:
        * page/Navigator.cpp:
        (WebCore::Navigator::webkitGamepads):
        * page/Navigator.h:
        * platform/Gamepads.h: Added.
        * platform/chromium/GamepadsChromium.cpp: Added.
        (WebCore::sampleGamepads):
        * platform/chromium/PlatformSupport.h:

2011-11-23  Dmitry Lomov  <dslomov@google.com>

        Get rid of WebCore dependencies from TypedArray implementation types
        https://bugs.webkit.org/show_bug.cgi?id=72783

        Reviewed by David Levin.

        Remove WebCore specific logic for neutering Typed Array implementations.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        * html/canvas/ArrayBuffer.cpp:
        (WTF::ArrayBuffer::transfer):
        * html/canvas/ArrayBuffer.h:
        * html/canvas/ArrayBufferView.cpp:
        (WTF::ArrayBufferView::neuter):
        * html/canvas/ArrayBufferView.h:
        * html/canvas/DataView.cpp:
        (WebCore::DataView::neuter):
        * html/canvas/DataView.h:
        * html/canvas/Float32Array.h:
        * html/canvas/Float64Array.h:
        * html/canvas/Int16Array.h:
        * html/canvas/Int32Array.h:
        * html/canvas/Int8Array.h:
        * html/canvas/Uint16Array.h:
        * html/canvas/Uint32Array.h:
        * html/canvas/Uint8Array.h:

2011-11-23  Raul Hudea  <rhudea@adobe.com>

        First step towards http://webkit.org/b/70025

        Allow -webkit-transform to be have effect to SVG elements.
        Currently, the CSS transform takes precedence over the SVG transform attribute

        Allow SVG elements to be transformed using webkit-transform
        https://bugs.webkit.org/show_bug.cgi?id=71309

        Reviewed by Nikolas Zimmermann.

        Tests: svg/clip-path/clip-path-css-transform-1.svg
               svg/clip-path/clip-path-css-transform-2.svg
               svg/custom/clip-path-with-css-transform-1.svg
               svg/custom/clip-path-with-css-transform-2.svg
               svg/custom/pointer-events-image-css-transform.svg
               svg/custom/pointer-events-text-css-transform.svg
               svg/dom/css-transforms.xhtml
               svg/dynamic-updates/SVG-dynamic-css-transform.html
               svg/dynamic-updates/SVGClipPathElement-css-transform-influences-hitTesting.html
               svg/transforms/svg-css-transforms-clip-path.xhtml
               svg/transforms/svg-css-transforms.xhtml

        * manual-tests/svg-animation-css-transform.html: Added.
        * manual-tests/svg-css-animate-compound.html: Added.
        * manual-tests/svg-css-transition-compound.html: Added.
        * rendering/svg/RenderSVGModelObject.cpp:
        (WebCore::RenderSVGModelObject::styleWillChange):

        Set the updateTransform flag on SVG elements whenever a CSS transform is present on the style

        * svg/SVGStyledTransformableElement.cpp:
        (WebCore::SVGStyledTransformableElement::animatedLocalTransform):

        Use the RenderStyle's transform (if it exists) over the SVG's transform

        * svg/SVGTextElement.cpp:
        (WebCore::SVGTextElement::animatedLocalTransform):

        Use the RenderStyle's transform (if it exists) over the SVG's transform

2011-11-23  Rafael Weinstein  <rafaelw@chromium.org>

        [MutationObservers] Cleanup duplicated code in Element & CharacterData
        https://bugs.webkit.org/show_bug.cgi?id=72986

        Reviewed by Ojan Vafai.

        This patch creates a MutationObserverInterestGroup which represents the set
        of MutationObservers which should receive all mutations of a given type generated
        from a specific node.

        No tests needed. This patch is only a refactor.

        * dom/CharacterData.cpp:
        (WebCore::CharacterData::dispatchModifiedEvent):
        * dom/ChildListMutationScope.cpp:
        (WebCore::MutationAccumulationRouter::ChildListMutationAccumulator::ChildListMutationAccumulator):
        (WebCore::MutationAccumulationRouter::ChildListMutationAccumulator::enqueueMutationRecord):
        (WebCore::MutationAccumulationRouter::MutationAccumulationRouter::incrementScopingLevel):
        * dom/Element.cpp:
        (WebCore::enqueueAttributesMutationRecord):
        * dom/WebKitMutationObserver.cpp:
        (WebCore::MutationObserverInterestGroup::createForChildListMutation):
        (WebCore::MutationObserverInterestGroup::createForCharacterDataMutation):
        (WebCore::MutationObserverInterestGroup::createForAttributesMutation):
        (WebCore::MutationObserverInterestGroup::MutationObserverInterestGroup):
        (WebCore::MutationObserverInterestGroup::isOldValueRequested):
        (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
        * dom/WebKitMutationObserver.h:
        (WebCore::MutationObserverInterestGroup::isEmpty):
        (WebCore::MutationObserverInterestGroup::hasOldValue):

2011-11-23  Marc-Andre Decoste  <mad@chromium.org>

        [chromium] HDC leak in Uniscribe Helper
        https://bugs.webkit.org/show_bug.cgi?id=68598

        Reviewed by Darin Fisher.

        For some reason the Script functions on Windows sometimes return
        E_PENDING even with a non-NULL DC, so we must handle that case.
        Also, we should not use the screen DC to select font since this
        refreshes the whole desktop, so I added a cached compatible DC.

        Note that this doesn't reproduce with WebKit alone, it only reproduces
        within Chrome, so we can't write a WebKit test for it. A chromium
        browser test will be added once this change gets rolled in the
        chromium DEPS file.

        * platform/graphics/chromium/UniscribeHelper.cpp:
        (WebCore::UniscribeHelper::shape):
        (WebCore::UniscribeHelper::EnsureCachedDCCreated):
        (WebCore::UniscribeHelper::fillShapes):
        * platform/graphics/chromium/UniscribeHelper.h:

2011-11-23  Anna Cavender  <annacc@chromium.org>

        Move readyState from TextTrack to HTMLTrackElement
        https://bugs.webkit.org/show_bug.cgi?id=72553

        Reviewed by Eric Carlson.

        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::HTMLTrackElement):
            Set initial readyState to NONE.
        (WebCore::HTMLTrackElement::didCompleteLoad):
            Set readyState based on load completed status.
        (WebCore::HTMLTrackElement::setReadyState):
            This replaces textTrackReadyStateChanged() because only LoadableTextTrack
            needs to notify HTMLTrackElement of readyState changes (i.e.
            textTrackReadyStateChanged() is no longer required of TextTrackClient).
        * html/HTMLTrackElement.h:
            ReadyState enum and m_readyState member variable moved from TextTrack.
        (WebCore::HTMLTrackElement::readyState):
            New: readyState() getter.
        * html/HTMLTrackElement.idl:
            Add readyState attribute and associated constants.

        * html/LoadableTextTrack.cpp:
        (WebCore::LoadableTextTrack::loadTimerFired): Set readyState on HTMLTrackElement.
        (WebCore::LoadableTextTrack::cueLoadingStarted): Ditto.
        (WebCore::LoadableTextTrack::cueLoadingCompleted): Move code to set readyState
            to HTMLTrackElement (it can set it based on loading status).

        * html/TextTrack.cpp: Remove readyState from TextTrack.
        (WebCore::TextTrack::TextTrack): Ditto.
        * html/TextTrack.h: Ditto.
        * html/TextTrack.idl: Ditto.

2011-11-23  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [CMake] Move the top-level logic to the top-level directory.
        https://bugs.webkit.org/show_bug.cgi?id=72685

        Reviewed by Brent Fulgham.

        No new tests, this is a buildsystem changes.

        * CMakeLists.txt: Adjust the Source/ directory.
        * PlatformBlackBerry.cmake: Ditto.

2011-11-23  Mihnea Ovidenie  <mihnea@adobe.com>

        CSS Exclusions: update the name of the shape CSS properties
        https://bugs.webkit.org/show_bug.cgi?id=71898
        Instead of a single wrap-shape property, we have wrap-shape-inside and wrap-shape-outside.

        Reviewed by Dean Jackson.

        Tests: fast/exclusions/parsing-wrap-shape-inside.html
               fast/exclusions/parsing-wrap-shape-outside.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseWrapShape):
        * css/CSSParser.h:
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff):
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::setWrapShapeInside):
        (WebCore::InheritedFlags::wrapShapeInside):
        (WebCore::InheritedFlags::setWrapShapeOutside):
        (WebCore::InheritedFlags::wrapShapeOutside):
        (WebCore::InheritedFlags::initialWrapShapeInside):
        (WebCore::InheritedFlags::initialWrapShapeOutside):
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:

2011-11-23  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [Extensions API] avoid exception in initExtensions() if elements panel is not present
        https://bugs.webkit.org/show_bug.cgi?id=73007

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/ExtensionServer.js:

2011-11-23  Brian Salomon  <bsalomon@google.com>

        Use new name for pixel config field of GrTextureDesc
        https://bugs.webkit.org/show_bug.cgi?id=72543

        Reviewed by Stephen White.

        Tested by every canvas2d layout test.

        * platform/graphics/skia/ImageBufferSkia.cpp:
        (WebCore::createAcceleratedCanvas):

2011-11-23  Emil A Eklund  <eae@chromium.org>

        Change remaining scrollTop/Left/Width/Height methods back to int
        https://bugs.webkit.org/show_bug.cgi?id=72771

        Reviewed by Eric Seidel.

        Change remaining scrollTop/Left/Width/Height, setScrollLeft/Top and
        verticalScrollbarWidth, horizontalScrollbarHeight methods back to int as
        scrolling will remain int based to line up with device pixels.

        No new tests.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::scrollWidth):
        (WebCore::RenderBox::scrollHeight):
        (WebCore::RenderBox::scrollLeft):
        (WebCore::RenderBox::scrollTop):
        (WebCore::RenderBox::setScrollLeft):
        (WebCore::RenderBox::setScrollTop):
        (WebCore::RenderBox::verticalScrollbarWidth):
        (WebCore::RenderBox::horizontalScrollbarHeight):
        * rendering/RenderBox.h:
        (WebCore::RenderBox::scrollbarLogicalHeight):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::verticalScrollbarWidth):
        (WebCore::RenderListBox::scrollHeight):
        (WebCore::RenderListBox::scrollLeft):
        (WebCore::RenderListBox::setScrollLeft):
        (WebCore::RenderListBox::scrollTop):
        (WebCore::RenderListBox::setScrollTop):
        * rendering/RenderListBox.h:
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::scrollWidth):
        (WebCore::RenderTextControlSingleLine::scrollHeight):
        (WebCore::RenderTextControlSingleLine::scrollLeft):
        (WebCore::RenderTextControlSingleLine::scrollTop):
        (WebCore::RenderTextControlSingleLine::setScrollLeft):
        (WebCore::RenderTextControlSingleLine::setScrollTop):
        * rendering/RenderTextControlSingleLine.h:

2011-11-22  Kenneth Russell  <kbr@google.com>

        [chromium] Support Core Animation plugins in compositor
        https://bugs.webkit.org/show_bug.cgi?id=72921

        Reviewed by Stephen White.

        Added support to PluginLayerChromium and CCPluginLayerImpl for
        using an IOSurface as the backing store for a plugin. Added minimal
        ARB_texture_rectangle support to Extensions3D.h and a Chromium-
        specific extension for binding an IOSurface to a texture.

        These changes themselves do not have any effect. A follow-on
        Chromium CL will make the switch to this new code path.

        Tested manually both with and without the Chromium side changes;
        Chromium's DumpRenderTree port does not support Core Animation
        plugins. Ran video and Stage3D in Flash, and Unity 3D content, to
        verify.

        * platform/graphics/Extensions3D.h:
        * platform/graphics/chromium/Extensions3DChromium.h:
        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::initialize):
        (WebCore::LayerRendererChromium::pluginLayerTexRectProgram):
        (WebCore::LayerRendererChromium::pluginLayerTexRectProgramFlip):
        * platform/graphics/chromium/LayerRendererChromium.h:
        * platform/graphics/chromium/PluginLayerChromium.cpp:
        (WebCore::PluginLayerChromium::PluginLayerChromium):
        (WebCore::PluginLayerChromium::setIOSurfaceProperties):
        (WebCore::PluginLayerChromium::getIOSurfaceId):
        (WebCore::PluginLayerChromium::pushPropertiesTo):
        * platform/graphics/chromium/PluginLayerChromium.h:
        * platform/graphics/chromium/ShaderChromium.cpp:
        (WebCore::FragmentShaderRGBATexRectFlipAlpha::getShaderString):
        (WebCore::FragmentShaderRGBATexRectAlpha::getShaderString):
        * platform/graphics/chromium/ShaderChromium.h:
        * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
        (PluginProgramBinding::TexStretchPluginProgramBinding::set):
        (PluginProgramBinding::TexTransformPluginProgramBinding::set):
        (WebCore::CCPluginLayerImpl::CCPluginLayerImpl):
        (WebCore::CCPluginLayerImpl::~CCPluginLayerImpl):
        (WebCore::CCPluginLayerImpl::draw):
        (WebCore::CCPluginLayerImpl::setIOSurfaceProperties):
        (WebCore::CCPluginLayerImpl::cleanupResources):
        * platform/graphics/chromium/cc/CCPluginLayerImpl.h:

2011-11-22  Daniel Cheng  <dcheng@chromium.org>

        [chromium] Fix plumbing for differentiating between clipboard/selection pastes.
        https://bugs.webkit.org/show_bug.cgi?id=72056

        Reviewed by Tony Chang.

        Add a buffer parameter when retrieving the clipboard sequence number and fix several call
        sites that incorrectly assume use of the standard buffer in pastes.

        * platform/chromium/ChromiumDataObject.cpp:
        (WebCore::ChromiumDataObject::types):
        (WebCore::ChromiumDataObject::getData):
        (WebCore::ChromiumDataObject::containsFilenames):
        * platform/chromium/ChromiumDataObject.h:
        * platform/chromium/ClipboardChromium.cpp:
        (WebCore::ClipboardChromium::ClipboardChromium):
        (WebCore::ClipboardChromium::getData):
        (WebCore::ClipboardChromium::platformClipboardChanged):
        * platform/chromium/ClipboardUtilitiesChromium.cpp:
        (WebCore::currentPasteboardBuffer):
        * platform/chromium/ClipboardUtilitiesChromium.h:
        * platform/chromium/DataTransferItemChromium.cpp:
        (WebCore::DataTransferItemChromium::getAsString):
        * platform/chromium/PlatformSupport.h:

2011-11-22  Andrey Kosyakov  <caseq@chromium.org>

        Layout Test inspector/extensions/extensions-events.html is timing out
        https://bugs.webkit.org/show_bug.cgi?id=72966

        Reviewed by Pavel Feldman.

        - always bind to {add,remove}EventListener() of event target, not WebInspector.Object

        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype._registerAutosubscriptionHandler):

2011-11-22  Adam Klein  <adamk@chromium.org>

        Move splitView.css (added in r100991) to the correct target.

        * WebCore.gypi:

2011-11-22  Andreas Kling  <kling@webkit.org>

        CSSProperty: Remove unnecessary operator overloads.
        <http://webkit.org/b/72953>

        Reviewed by Antti Koivisto.

        * css/CSSProperty.cpp:
        * css/CSSProperty.h:

            Remove operator= and operator== from CSSProperty. They were neither
            implemented correctly nor used anywhere.

2011-11-22  Andreas Kling  <kling@webkit.org>

        CSSStyleDeclaration: Kill FIXME in setProperty().
        <http://webkit.org/b/72958>

        Reviewed by Antonio Gomes.

        Remove FIXME about possibly throwing an exception when setProperty()
        is called with an invalid property name. CSSOM specifies that the
        method should simply return in this case.

        Spec: http://dev.w3.org/csswg/cssom/#dom-cssstyledeclaration-setproperty

        * css/CSSStyleDeclaration.cpp:
        (WebCore::CSSStyleDeclaration::setProperty):

2011-11-22  Shinya Kawanaka  <shinyak@google.com>

        Spellcheck should be able to run asynchronously.
        https://bugs.webkit.org/show_bug.cgi?id=71991

        Reviewed by Hajime Morita.

        Run asynchronous spell checker if both asynchronous flag and unified text checker flag are ON.

        When multiple asynchronous spellchecking are requested, only the first request will be processed.

        Test: editing/spelling/spellcheck-async.html

        * editing/Editor.cpp:
        (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
          Uses asynchronous spell checker if asynchronous flag is ON.

2011-11-22  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [SuggestBox] Grayed prompt displayed with non-collapsed selection in place
        https://bugs.webkit.org/show_bug.cgi?id=72951

        Reviewed by Pavel Feldman.

        * inspector/front-end/TextPrompt.js:
        (WebInspector.TextPrompt.prototype.complete):

2011-11-22  Pavel Feldman  <pfeldman@google.com>

        Not reviewed: fix inspector front-end compilation.

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

2011-11-22  Adam Bergkvist  <adam.bergkvist@ericsson.com>

        Add WebCore platform interface needed by updated MediaStream API design
        https://bugs.webkit.org/show_bug.cgi?id=70895

        Reviewed by Adam Barth.

        This is one in a series of patches that update the MediaStream feature
        to use WebCore platform interfaces.

        Tests will be provided by http://webkit.org/b/56587

        * GNUmakefile.list.am:
        * WebCore.gypi:
        * mediastream/LocalMediaStream.cpp:
        (WebCore::LocalMediaStream::stopTimerFired):
        * mediastream/MediaStream.h:
        * mediastream/MediaStreamTrack.cpp:
        (WebCore::MediaStreamTrack::setEnabled):
        * mediastream/PeerConnection.cpp:
        (WebCore::PeerConnection::didRemoveRemoteStream):
        * mediastream/UserMediaRequest.cpp:
        (WebCore::UserMediaRequest::start):
        * mediastream/UserMediaRequest.h:
        * platform/mediastream/MediaStreamCenter.cpp: Added.
        (WebCore::MediaStreamCenter::instance):
        (WebCore::MediaStreamCenter::endLocalMediaStream):
        (WebCore::MediaStreamCenter::MediaStreamCenter):
        (WebCore::MediaStreamCenter::~MediaStreamCenter):
        (WebCore::MediaStreamCenter::queryMediaStreamSources):
        (WebCore::MediaStreamCenter::didSetMediaStreamTrackEnabled):
        (WebCore::MediaStreamCenter::didStopLocalMediaStream):
        * platform/mediastream/MediaStreamCenter.h: Added.
        (WebCore::MediaStreamSourcesQueryClient::~MediaStreamSourcesQueryClient):
        * platform/mediastream/MediaStreamDescriptor.h:
        (WebCore::MediaStreamDescriptorOwner::~MediaStreamDescriptorOwner):
        (WebCore::MediaStreamDescriptor::owner):
        (WebCore::MediaStreamDescriptor::setOwner):

2011-11-22  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: remove Inspector::bringToFront from the protocol.
        https://bugs.webkit.org/show_bug.cgi?id=72937

        Inspector::bringToFront protocol method is currently used on the backend
        in order to reveal the front-end window. We should do that by means of
        the inspector client interface instead.

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector.json:
        * inspector/InspectorClient.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::show):
        * loader/EmptyClients.h:
        (WebCore::EmptyInspectorClient::bringFrontendToFront):

2011-11-21  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [Extensions API][refactoring] remove dependencies on the ExtensionsServer from most of the insepctor
        https://bugs.webkit.org/show_bug.cgi?id=72899

        Reviewed by Pavel Feldman.

        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype._selectedNodeChanged):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype._notifyResourceContentCommitted):
        (WebInspector.ExtensionServer.prototype._notifyElementsSelectionChanged):
        * inspector/front-end/Resource.js:
        (WebInspector.Resource.prototype.addRevision):
        * inspector/front-end/externs.js:

2011-11-22  Zoltan Horvath  <zoltan@webkit.org>

        [Qt] Build fix for MHTML support

        * Target.pri: Add missing includepath.

2011-11-22  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Extract SplitView from Panel.createSidebar() method and reuse in Elements and Scripts panels.
        https://bugs.webkit.org/show_bug.cgi?id=72920

        Reviewed by Pavel Feldman.

        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/compile-front-end.sh:
        * inspector/front-end/ApplicationCacheModel.js:
        * inspector/front-end/AuditsPanel.js:
        (WebInspector.AuditsPanel):
        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel):
        (WebInspector.ElementsPanel.prototype.wasShown):
        (WebInspector.ElementsPanel.prototype.sidebarResized):
        (WebInspector.ElementsPanel.prototype.toggleSearchingForNode):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkPanel.prototype.wasShown):
        (WebInspector.NetworkPanel.prototype._showResource):
        (WebInspector.NetworkPanel.prototype._closeVisibleResource):
        (WebInspector.NetworkPanel.prototype._toggleGridMode):
        (WebInspector.NetworkPanel.prototype._toggleViewingResourceMode):
        * inspector/front-end/Panel.js:
        (WebInspector.Panel.prototype.wasShown):
        (WebInspector.Panel.prototype.createSplitView):
        (WebInspector.Panel.prototype.createSplitViewWithSidebarTree):
        (WebInspector.Panel.prototype.sidebarResized):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype._reset):
        (WebInspector.ProfilesPanel.prototype.sidebarResized):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.ResourcesPanel.prototype.sidebarResized):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype.wasShown):
        (WebInspector.ScriptsPanel.prototype.sidebarResized):
        * inspector/front-end/SplitView.js: Added.
        (WebInspector.SplitView):
        * inspector/front-end/TimelineOverviewPane.js:
        (WebInspector.TimelineOverviewPane.prototype.sidebarResized):
        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel):
        (WebInspector.TimelinePanel.prototype.sidebarResized):
        (WebInspector.TimelinePanel.prototype._refreshRecords):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/auditsPanel.css:
        * inspector/front-end/elementsPanel.css:
        * inspector/front-end/inspector.css:
        (.sidebar):
        * inspector/front-end/inspector.html:
        * inspector/front-end/networkLogView.css:
        * inspector/front-end/networkPanel.css:
        (#network-views):
        * inspector/front-end/profilesPanel.css:
        (#profile-views):
        * inspector/front-end/resourcesPanel.css:
        * inspector/front-end/scriptsPanel.css:
        (#scripts-split-view):
        * inspector/front-end/splitView.css: Added.
        * inspector/front-end/timelinePanel.css:
        (.timeline .sidebar):
        (.timeline-sidebar-background):
        (#resources-container-content):

2011-11-22  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r100988.
        http://trac.webkit.org/changeset/100988
        https://bugs.webkit.org/show_bug.cgi?id=72941

        "Broke pixel tests on Chromium-Linux" (Requested by kbalazs on
        #webkit).

        * platform/graphics/filters/FEConvolveMatrix.cpp:
        (WebCore::FEConvolveMatrix::platformApplySoftware):
        * platform/graphics/filters/FEConvolveMatrix.h:
        * platform/graphics/filters/FEGaussianBlur.cpp:
        (WebCore::FEGaussianBlur::platformApply):
        * platform/graphics/filters/FEGaussianBlur.h:
        * platform/graphics/filters/FELighting.cpp:
        (WebCore::FELighting::platformApplyGeneric):
        * platform/graphics/filters/FELighting.h:
        * platform/graphics/filters/FEMorphology.cpp:
        (WebCore::FEMorphology::platformApply):
        * platform/graphics/filters/FEMorphology.h:
        * platform/graphics/filters/FETurbulence.cpp:
        (WebCore::FETurbulence::platformApplySoftware):
        * platform/graphics/filters/FETurbulence.h:
        * platform/graphics/filters/arm/FELightingNEON.cpp:
        * platform/graphics/filters/arm/FELightingNEON.h:
        (WebCore::FELighting::platformApplyNeon):

2011-11-21  Balazs Kelemen  <kbalazs@webkit.org>

        Enable ParallelJobs by default
        https://bugs.webkit.org/show_bug.cgi?id=70032

        Reviewed by Zoltan Herczeg.

        Covered by existing tests.

        According to measurements on Mac and Linux it is a
        considerable speedup for SVG on multicore.

        Remove the ENABLE(PARALLEL_JOBS) guard. Fix the Windows build
        by qualifying ParallelJobs with the WTF namespace (otherwise
        MSVC believes it belongs to WebCore which is likely a compiler bug).

        * platform/graphics/filters/FEConvolveMatrix.cpp:
        (WebCore::FEConvolveMatrix::setInteriorPixelsWorker):
        (WebCore::FEConvolveMatrix::platformApplySoftware):
        * platform/graphics/filters/FEConvolveMatrix.h:
        * platform/graphics/filters/FEGaussianBlur.cpp:
        (WebCore::FEGaussianBlur::platformApplyWorker):
        (WebCore::FEGaussianBlur::platformApply):
        * platform/graphics/filters/FEGaussianBlur.h:
        * platform/graphics/filters/FELighting.cpp:
        (WebCore::FELighting::platformApplyGenericWorker):
        (WebCore::FELighting::platformApplyGeneric):
        * platform/graphics/filters/FELighting.h:
        * platform/graphics/filters/FEMorphology.cpp:
        (WebCore::FEMorphology::platformApplyWorker):
        (WebCore::FEMorphology::platformApply):
        * platform/graphics/filters/FEMorphology.h:
        * platform/graphics/filters/FETurbulence.cpp:
        (WebCore::FETurbulence::fillRegionWorker):
        (WebCore::FETurbulence::platformApplySoftware):
        * platform/graphics/filters/FETurbulence.h:
        * platform/graphics/filters/arm/FELightingNEON.cpp:
        (WebCore::FELighting::platformApplyNeonWorker):
        * platform/graphics/filters/arm/FELightingNEON.h:
        (WebCore::FELighting::platformApplyNeon):

2011-11-22  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [protocol] actual JSON messages do not conform to Inspector.json in CSS
        https://bugs.webkit.org/show_bug.cgi?id=72733

        Reviewed by Pavel Feldman.

        * inspector/Inspector.json:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::getComputedStyleForNode):
        * inspector/InspectorCSSAgent.h:
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyle::buildArrayForComputedStyle):
        * inspector/InspectorStyleSheet.h:
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel.prototype.getComputedStyleAsync):
        (WebInspector.CSSStyleDeclaration.parseComputedStylePayload):

2011-11-22  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: strip unused InspectorController methods.
        https://bugs.webkit.org/show_bug.cgi?id=72886

        This is a follow up to the https://bugs.webkit.org/show_bug.cgi?id=63009.
        I am now able to remove following InspectorController methods:
        ::startUserInitiatedProfiling,
        ::isRecordingUserInitiatedProfile,
        ::stopUserInitiatedProfiling,
        ::showAndEnableDebugger,
        ::debuggerEnabled,
        ::disableDebugger,
        ::startTimelineProfiler,
        ::stopTimelineProfiler,
        ::timelineProfilerEnabled,
        ::showConsole.

        Reviewed by Yury Semikhatsky.

        * WebCore.exp.in:
        * WebCore.order:
        * inspector/Inspector.json:
        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::setFrontend):
        * inspector/InspectorAgent.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        (WebCore::InspectorController::connectFrontend):
        * inspector/InspectorController.h:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::enable):
        (WebCore::InspectorDebuggerAgent::disable):
        * inspector/InspectorDebuggerAgent.h:
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::resetState):
        (WebCore::InspectorProfilerAgent::clearFrontend):
        (WebCore::InspectorProfilerAgent::restore):
        (WebCore::InspectorProfilerAgent::start):
        (WebCore::InspectorProfilerAgent::stop):
        * inspector/InspectorProfilerAgent.h:
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::start):
        (WebCore::InspectorTimelineAgent::stop):
        * inspector/InspectorTimelineAgent.h:
        * inspector/front-end/DebuggerModel.js:
        (WebInspector.DebuggerModel.prototype.enableDebugger):
        (WebInspector.DebuggerModel.prototype.disableDebugger):
        * inspector/front-end/TimelineManager.js:
        (WebInspector.TimelineManager.prototype.start):
        (WebInspector.TimelineManager.prototype.stop):
        (WebInspector.TimelineManager.prototype._started):
        (WebInspector.TimelineManager.prototype._stopped):
        * inspector/front-end/inspector.js:

2011-11-17  Nat Duca  <nduca@chromium.org>

        [chromium] Route willDraw/setNeedsRedraw to CCInputHandler and fix double-drawing issues that result
        https://bugs.webkit.org/show_bug.cgi?id=72688

        This allows CCInputFilter and CCLayerTreeHostImpl to
        perform requestAnimationFrame-style animations. The bulk of
        work here is to make the scheduler recover gracefully when you
        call setNeedsRedraw inside scheduledActionDraw.

        Reviewed by James Robinson.

        * WebCore.gypi:
        * platform/graphics/chromium/cc/CCInputHandler.h:
        (WebCore::CCInputHandlerTarget::CCInputHandlerTarget):
        (WebCore::CCInputHandlerTarget::~CCInputHandlerTarget):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::currentTimeMs):
        (WebCore::CCLayerTreeHostImpl::setNeedsRedraw):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
        * platform/graphics/chromium/cc/CCScheduler.cpp:
        (WebCore::CCScheduler::CCScheduler):
        (WebCore::CCScheduler::setVisible):
        (WebCore::CCScheduler::setNeedsRedraw):
        (WebCore::CCScheduler::beginFrame):
        (WebCore::CCScheduler::processScheduledActions):
        * platform/graphics/chromium/cc/CCScheduler.h:
        * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
        (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
        (WebCore::CCSchedulerStateMachine::nextAction):
        (WebCore::CCSchedulerStateMachine::updateState):
        (WebCore::CCSchedulerStateMachine::setInsideVSync):
        (WebCore::CCSchedulerStateMachine::setOutsideVSync):
        * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
        * platform/graphics/chromium/cc/CCScrollController.h: Removed.
        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):

2011-11-22  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: Design of the autocomplete suggest
        https://bugs.webkit.org/show_bug.cgi?id=72798

        Reviewed by Pavel Feldman.

        Implemented a combination of grayed text for the first/only completion and hid
        the suggest box for a single suggestion (the grayed text is displayed instead.)
        Drive-by fix for the "trailing spaces in the prompt" issue
        (got regressed when the suggest box was introduced for the first time.)

        * inspector/front-end/ConsoleView.js:
        (WebInspector.ConsoleView): Fix the "trailing spaces" issue
        * inspector/front-end/TextPrompt.js:
        (WebInspector.TextPrompt):
        (WebInspector.TextPrompt.prototype.renderAsBlock): Fix the "trailing spaces" issue
        (WebInspector.TextPrompt.prototype._attachInternal):
        (WebInspector.TextPrompt.prototype.acceptAutoComplete):
        (WebInspector.TextPrompt.prototype._completionsReady):
        (WebInspector.TextPrompt.prototype.applySuggestion):
        (WebInspector.TextPrompt.prototype.acceptSuggestion):
        (WebInspector.TextPrompt.SuggestBox.prototype._completionsReady):

2011-11-21  David Barr  <davidbarr@chromium.org>

        REGRESSION(r98542): Chromium: CSS text is rendered on page
        https://bugs.webkit.org/show_bug.cgi?id=71703

        Reviewed by Dimitri Glazkov.

        Matched UA declarations uncacheable when using simpleDefaultStyleSheet.

        Test: fast/css/style-tag-display-none.html

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchUARules):

2011-11-21  Rob Brackett  <rob@robbrackett.com>
        
        If an event listener is a function, it should be called and not checked for handleEvent.
        This also covers callbacks, which follow the same spec but are implemented separately.
        https://bugs.webkit.org/show_bug.cgi?id=62518

        Reviewed by Sam Weinig.

        Tests: fast/events/dispatch-to-function-with-handle-event.html
               fast/js/callback-function-with-handle-event.html

        * bindings/js/JSCallbackData.cpp:
        (WebCore::JSCallbackData::invokeCallback):
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::handleEvent):

2011-11-21  Rakesh KN  <rakesh.kn@motorola.com>

        Need support for dirname attribute
        https://bugs.webkit.org/show_bug.cgi?id=65542

        Reviewed by Eric Seidel.

        Implemented 'dirname' form attribute.

        Tests: fast/forms/form-dirname-attribute.html
               fast/forms/submit-form-with-dirname-attribute-with-ancestor-dir-attribute.html
               fast/forms/submit-form-with-dirname-attribute-with-nonhtml-ancestor.html
               fast/forms/submit-form-with-dirname-attribute.html

        * html/HTMLAttributeNames.in:
        Added "dirname" attribute.
        * html/HTMLInputElement.idl:
        Add "dirName" property to HTMLInputElement interface.
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::appendFormData):
        Append dirname form data.
        * html/HTMLTextAreaElement.idl:
        Add "dirName" property to HTMLTextAreaElement interface.
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::parentHTMLElement):
        Helper function which returns only HTML parent element.
        (WebCore::HTMLTextFormControlElement::directionForFormData):
        Helper function for finding directionality of the Element.
        * html/HTMLTextFormControlElement.h:
        Helper function for finding directionality of the Element.
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::appendFormData):
        Append dirname form data.
        * html/TextFieldInputType.h:
        Append dirname form data.

2011-11-21  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Close database connections, abort transactions, and terminate requests on stop()
        https://bugs.webkit.org/show_bug.cgi?id=72066

        Reviewed by Tony Chang.

        No new tests; addresses race conditions on document navigate/script context stop.

        * dom/DocumentEventQueue.cpp:
        (WebCore::DocumentEventQueue::enqueueEvent):
        * dom/DocumentEventQueue.h:
        * dom/EventQueue.h:
        * storage/IDBDatabase.cpp:
        (WebCore::IDBDatabase::IDBDatabase):
        (WebCore::IDBDatabase::~IDBDatabase):
        (WebCore::IDBDatabase::transaction):
        (WebCore::IDBDatabase::close):
        (WebCore::IDBDatabase::onVersionChange):
        (WebCore::IDBDatabase::enqueueEvent):
        (WebCore::IDBDatabase::stop):
        * storage/IDBDatabase.h:
        * storage/IDBFactory.cpp:
        (WebCore::IDBFactory::IDBFactory):
        (WebCore::IDBFactory::getDatabaseNames):
        (WebCore::IDBFactory::open):
        (WebCore::IDBFactory::deleteDatabase):
        * storage/IDBFactory.h:
        * storage/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::IDBObjectStore):
        (WebCore::IDBObjectStore::name):
        (WebCore::IDBObjectStore::keyPath):
        (WebCore::IDBObjectStore::indexNames):
        (WebCore::IDBObjectStore::get):
        (WebCore::IDBObjectStore::add):
        (WebCore::IDBObjectStore::put):
        (WebCore::IDBObjectStore::deleteFunction):
        (WebCore::IDBObjectStore::clear):
        (WebCore::IDBObjectStore::createIndex):
        (WebCore::IDBObjectStore::index):
        (WebCore::IDBObjectStore::deleteIndex):
        (WebCore::IDBObjectStore::openCursor):
        * storage/IDBObjectStore.h:
        * storage/IDBRequest.cpp:
        (WebCore::IDBRequest::IDBRequest):
        (WebCore::IDBRequest::abort):
        (WebCore::IDBRequest::onSuccess):
        (WebCore::IDBRequest::onSuccessWithContinuation):
        (WebCore::IDBRequest::stop):
        (WebCore::IDBRequest::dispatchEvent):
        (WebCore::IDBRequest::enqueueEvent):
        * storage/IDBRequest.h:
        * storage/IDBTransaction.cpp:
        (WebCore::IDBTransaction::IDBTransaction):
        (WebCore::IDBTransaction::abort):
        (WebCore::IDBTransaction::onAbort):
        (WebCore::IDBTransaction::onComplete):
        (WebCore::IDBTransaction::dispatchEvent):
        (WebCore::IDBTransaction::stop):
        (WebCore::IDBTransaction::enqueueEvent):
        * storage/IDBTransaction.h:
        * storage/IDBTransactionBackendImpl.cpp:
        (WebCore::IDBTransactionBackendImpl::abort):
        (WebCore::IDBTransactionBackendImpl::commit):
        * workers/WorkerEventQueue.cpp:
        (WebCore::WorkerEventQueue::enqueueEvent):
        * workers/WorkerEventQueue.h:

2011-11-21  James Robinson  <jamesr@chromium.org>

        [chromium] Avoid pushing dirty tiles to the impl layer
        https://bugs.webkit.org/show_bug.cgi?id=72765

        Reviewed by Kenneth Russell.

        If a tile has invalidations at pushPropertiesTo, then we know the contents of that tile are no longer valid even
        if they still have valid backing textures. This avoids pushing that texture to the impl side so it is not
        displayed to the user. The texture is still kept around (managed by the TextureManager) so that when we later do
        decide to update the contents for that tile we can use partial results if they are still valid.

        Covered by new unit test in TiledLayerChromiumTest.cpp

        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::UpdatableTile::isDirty):
        (WebCore::TiledLayerChromium::updateTileSizeAndTilingOption):
        (WebCore::TiledLayerChromium::setTileSize):
        (WebCore::TiledLayerChromium::setLayerTreeHost):
        (WebCore::TiledLayerChromium::createTiler):
        (WebCore::TiledLayerChromium::updateCompositorResources):
        (WebCore::TiledLayerChromium::pushPropertiesTo):
        * platform/graphics/chromium/TiledLayerChromium.h:
        (WebCore::TiledLayerChromium::setTextureFormat):
        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
        (WebCore::CCTiledLayerImpl::hasTileAt):
        (WebCore::CCTiledLayerImpl::drawTiles):
        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:

2011-11-21  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Speed up debug builds.
        https://bugs.webkit.org/show_bug.cgi?id=72882

        Reviewed by Tor Arne Vestbø.

        * Target.pri: Make BUILDING_WebCore available earlier, so it can be
        used by the build system.

2011-11-17  Robert Hogan  <robert@webkit.org>

        CSS 2.1 failure: empty-inline-003.htm fails
        https://bugs.webkit.org/show_bug.cgi?id=72638

        Reviewed by Ryosuke Niwa.

        Empty inline elements need to share their inline height with siblings.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::inlineFlowRequiresLineBox): In strict mode, add a LineBox for an empty element if it is
        going to affect the line-height.
        (WebCore::requiresLineBox): Pass LineInfo to inlineFlowRequiresLineBox
        (WebCore::RenderBlock::LineBreaker::nextLineBreak): Pass LineInfo to inlineFlowRequiresLineBox

2011-11-21  Adrienne Walker  <enne@google.com>

        [chromium] Remove incorrect render surface layer list asserts from compositor
        https://bugs.webkit.org/show_bug.cgi?id=72744

        Reviewed by James Robinson.

        These asserts are incorrect, because it's valid for the default render
        surface to be created but to have a root layer that doesn't draw. It
        won't get added to the single render surface and it'll have an empty
        layer list.

        Test: compositor_unittests

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::drawLayersOntoRenderSurfaces):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::paintLayerContents):
        (WebCore::CCLayerTreeHost::updateCompositorResources):

2011-11-21  Andreas Kling  <kling@webkit.org>

        StyleSheet: Move completeURL() to CSSStyleSheet.
        <http://webkit.org/b/72888>

        Reviewed by Antti Koivisto.

        Since completeURL() is only used on CSSStyleSheets, move it there (and make
        it non-virtual) to make StyleSheet a little leaner.

        * css/CSSStyleSheet.cpp:
        (WebCore::CSSStyleSheet::completeURL):
        * css/CSSStyleSheet.h:
        * css/StyleSheet.cpp:
        * css/StyleSheet.h:

2011-11-21  Robin Dunn  <robin@alldunn.com>

        [wx] Fix image translation calculations.
        https://bugs.webkit.org/show_bug.cgi?id=72892

        Reviewed by Kevin Ollivier.

        * platform/graphics/wx/ImageWx.cpp:
        (WebCore::Image::drawPattern):

2011-11-21  Scott Graham  <scottmg@chromium.org>

        copyright comment style to C from C++ for gamepad module
        https://bugs.webkit.org/show_bug.cgi?id=72894

        Reviewed by Sam Weinig.

        Just changes comment format, no code/test changes.

        * Modules/gamepad/Gamepad.cpp:
        * Modules/gamepad/Gamepad.h:
        * Modules/gamepad/Gamepad.idl:
        * Modules/gamepad/GamepadList.cpp:
        * Modules/gamepad/GamepadList.h:
        * Modules/gamepad/GamepadList.idl:

2011-11-21  Andreas Kling  <kling@webkit.org>

        JSC/CSSOM: Merge root() for style declaration objects.
        <http://webkit.org/b/72881>

        Reviewed by Antti Koivisto.

        Fold root(CSSMutableStyleDeclaration*) into root(CSSStyleDeclaration*),
        removing a duplicated chunk and making it a little easier on the eyes.

        * bindings/js/JSDOMBinding.h:
        (WebCore::root):

2011-11-21  Igor Oliveira  <igor.oliveira@openbossa.org>

        [WK2][Qt] Move Accelerated Composite animations to UIProcess
        https://bugs.webkit.org/show_bug.cgi?id=72753
        
        Add helper method to synchronize animations in TextureMapper.

        Reviewed by Noam Rosenthal.

        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::syncAnimationsRecursively):
        * platform/graphics/texmap/TextureMapperNode.h:

2011-11-21  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r100913.
        http://trac.webkit.org/changeset/100913
        https://bugs.webkit.org/show_bug.cgi?id=72885

        "Break Windows build" (Requested by kbalazs on #webkit).

        * platform/graphics/filters/FEConvolveMatrix.cpp:
        (WebCore::FEConvolveMatrix::platformApplySoftware):
        * platform/graphics/filters/FEConvolveMatrix.h:
        * platform/graphics/filters/FEGaussianBlur.cpp:
        (WebCore::FEGaussianBlur::platformApply):
        * platform/graphics/filters/FEGaussianBlur.h:
        * platform/graphics/filters/FELighting.cpp:
        (WebCore::FELighting::platformApplyGeneric):
        * platform/graphics/filters/FELighting.h:
        * platform/graphics/filters/FEMorphology.cpp:
        (WebCore::FEMorphology::platformApply):
        * platform/graphics/filters/FEMorphology.h:
        * platform/graphics/filters/FETurbulence.cpp:
        (WebCore::FETurbulence::platformApplySoftware):
        * platform/graphics/filters/FETurbulence.h:
        * platform/graphics/filters/arm/FELightingNEON.cpp:
        * platform/graphics/filters/arm/FELightingNEON.h:
        (WebCore::FELighting::platformApplyNeon):

2011-11-21  Balazs Kelemen  <kbalazs@webkit.org>

        Enable ParallelJobs by default
        https://bugs.webkit.org/show_bug.cgi?id=70032

        Reviewed by Zoltan Herczeg.

        Covered by existing tests.

        According to measurements on Mac and Linux it is a
        considerable speedup for SVG on multicore.

        Remove the ENABLE(PARALLEL_JOBS) guard. Fix the Windows build
        by qualifying ParallelJobs with the WTF namespace (otherwise
        MSVC believes it belongs to WebCore which is likely a compiler bug).

        * platform/graphics/filters/FEConvolveMatrix.cpp:
        (WebCore::FEConvolveMatrix::setInteriorPixelsWorker):
        (WebCore::FEConvolveMatrix::platformApplySoftware):
        * platform/graphics/filters/FEConvolveMatrix.h:
        * platform/graphics/filters/FEGaussianBlur.cpp:
        (WebCore::FEGaussianBlur::platformApplyWorker):
        (WebCore::FEGaussianBlur::platformApply):
        * platform/graphics/filters/FEGaussianBlur.h:
        * platform/graphics/filters/FELighting.cpp:
        (WebCore::FELighting::platformApplyGenericWorker):
        (WebCore::FELighting::platformApplyGeneric):
        * platform/graphics/filters/FELighting.h:
        * platform/graphics/filters/FEMorphology.cpp:
        (WebCore::FEMorphology::platformApplyWorker):
        (WebCore::FEMorphology::platformApply):
        * platform/graphics/filters/FEMorphology.h:
        * platform/graphics/filters/FETurbulence.cpp:
        (WebCore::FETurbulence::fillRegionWorker):
        (WebCore::FETurbulence::platformApplySoftware):
        * platform/graphics/filters/FETurbulence.h:
        * platform/graphics/filters/arm/FELightingNEON.cpp:
        (WebCore::FELighting::platformApplyNeonWorker):
        * platform/graphics/filters/arm/FELightingNEON.h:
        (WebCore::FELighting::platformApplyNeon):

2011-11-21  Antti Koivisto  <antti@apple.com>

        Remove CSSStyleSelector::m_additionalAttributeStyleDecls field
        https://bugs.webkit.org/show_bug.cgi?id=72876

        Reviewed by Andreas Kling.

        There is no reason for this temporary to be a field.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchAllRules):
        * css/CSSStyleSelector.h:

2011-11-21  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: [REGRESSION] Assertion failed in ScriptsPanel.js
        https://bugs.webkit.org/show_bug.cgi?id=72877

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/ScriptsPanel.js:

2011-11-18  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: get rid of Panel::reset in the front-end.
        https://bugs.webkit.org/show_bug.cgi?id=72587

        I'm slowly getting rid of the Inspector protocol domain. It currently
        contains methods that did not find their home in the meaningful domains.
        This change removes reset protocol method.

        Reviewed by Yury Semikhatsky.

        * inspector/Inspector.json:
        * inspector/InspectorAgent.cpp:
        (WebCore::InspectorAgent::didCommitLoad):
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::didClearMainFrameWindowObject):
        * inspector/InspectorDebuggerAgent.h:
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
        * inspector/front-end/ApplicationCacheModel.js:
        (WebInspector.ApplicationCacheModel.prototype._frameNavigated):
        (WebInspector.ApplicationCacheModel.prototype._frameDetached):
        * inspector/front-end/DebuggerModel.js:
        (WebInspector.DebuggerModel.prototype._globalObjectCleared):
        (WebInspector.DebuggerDispatcher.prototype.globalObjectCleared):
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel):
        (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer):
        (WebInspector.ExtensionServer.prototype._mainFrameNavigated):
        * inspector/front-end/JavaScriptContextManager.js:
        (WebInspector.JavaScriptContextManager.prototype._frameDetached):
        (WebInspector.FrameEvaluationContext.prototype.get frameId):
        * inspector/front-end/NetworkLog.js:
        (WebInspector.NetworkLog):
        (WebInspector.NetworkLog.prototype._mainFrameNavigated):
        * inspector/front-end/NetworkPanel.js:
        (WebInspector.NetworkLogView):
        (WebInspector.NetworkLogView.prototype._mainFrameNavigated):
        * inspector/front-end/ResourceTreeModel.js:
        (WebInspector.ResourceTreeModel.prototype._frameNavigated):
        (WebInspector.ResourceTreeModel.prototype._frameDetached):
        (WebInspector.ResourceTreeModel.prototype._clearChildFramesAndResources):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.ResourcesPanel.prototype._reset):
        (WebInspector.ResourcesPanel.prototype._frameDetached):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._debuggerWasDisabled):
        (WebInspector.ScriptsPanel.prototype._reset):
        * inspector/front-end/WorkerManager.js:
        (WebInspector.WorkerManager):
        (WebInspector.WorkerManager.prototype._mainFrameNavigated):
        * inspector/front-end/inspector.js:

2011-06-20  Pavel Feldman  <pfeldman@chromium.org>

        Web Inspector: introduce InspectorFrontendAPI for actions initiated from the application menu.
        https://bugs.webkit.org/show_bug.cgi?id=62985

        Both: inspector protocol and WebCore/InspectorController have a number of unnecessary
        methods for plumbing the menu action handlers through the WebKit and WebCore.
        I intend to remove this menu support from the protocol and WebCore/InspectorController API.
        I am starting with exposing the new front-end API in the WebCore and using it in the WebKit/mac port.
        WebKit/win and WebKit2 to follow.

        Reviewed by Yury Semikhatsky.

        * WebCore.exp.in:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * inspector/InspectorFrontendClientLocal.cpp:
        (WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal):
        (WebCore::InspectorFrontendClientLocal::frontendLoaded):
        (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
        (WebCore::InspectorFrontendClientLocal::isDebuggingEnabled):
        (WebCore::InspectorFrontendClientLocal::setDebuggingEnabled):
        (WebCore::InspectorFrontendClientLocal::isJavaScriptProfilingEnabled):
        (WebCore::InspectorFrontendClientLocal::setJavaScriptProfilingEnabled):
        (WebCore::InspectorFrontendClientLocal::isTimelineProfilingEnabled):
        (WebCore::InspectorFrontendClientLocal::setTimelineProfilingEnabled):
        (WebCore::InspectorFrontendClientLocal::isProfilingJavaScript):
        (WebCore::InspectorFrontendClientLocal::startProfilingJavaScript):
        (WebCore::InspectorFrontendClientLocal::stopProfilingJavaScript):
        (WebCore::InspectorFrontendClientLocal::evaluateAsBoolean):
        (WebCore::InspectorFrontendClientLocal::evaluateOnLoad):
        * inspector/InspectorFrontendClientLocal.h:
        * inspector/front-end/InspectorFrontendAPI.js: Added.
        (InspectorFrontendAPI.isDebuggingEnabled):
        (InspectorFrontendAPI.setDebuggingEnabled):
        (InspectorFrontendAPI.isJavaScriptProfilingEnabled):
        (InspectorFrontendAPI.setJavaScriptProfilingEnabled):
        (InspectorFrontendAPI.isTimelineProfilingEnabled):
        (InspectorFrontendAPI.setTimelineProfilingEnabled):
        (InspectorFrontendAPI.isProfilingJavaScript):
        (InspectorFrontendAPI.startProfilingJavaScript):
        (InspectorFrontendAPI.stopProfilingJavaScript):
        (InspectorFrontendAPI.setAttachedWindow):
        * inspector/front-end/ProfileView.js:
        (WebInspector.CPUProfileType):
        (WebInspector.CPUProfileType.prototype.isRecordingProfile):
        (WebInspector.CPUProfileType.prototype.startRecordingProfile):
        (WebInspector.CPUProfileType.prototype.stopRecordingProfile):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype.get profilerEnabled):
        (WebInspector.ProfilesPanel.prototype.enableProfiler):
        (WebInspector.ProfilesPanel.prototype.disableProfiler):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel):
        (WebInspector.ScriptsPanel.prototype.get debuggingEnabled):
        (WebInspector.ScriptsPanel.prototype.enableDebugging):
        (WebInspector.ScriptsPanel.prototype.disableDebugging):
        (WebInspector.ScriptsPanel.prototype.toggleDebugging):
        * inspector/front-end/TimelinePanel.js:
        (WebInspector.TimelinePanel.prototype._memoryOverviewItemSelected):
        (WebInspector.TimelinePanel.prototype.setTimelineProfilingEnabled):
        (WebInspector.TimelinePanel.prototype.get timelineProfilingEnabled):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.html:
        * inspector/front-end/inspector.js:

2011-11-18  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Protocol] Retain a single universal method for loading a required combination of element styles
        https://bugs.webkit.org/show_bug.cgi?id=72701

        Reviewed by Pavel Feldman.

        * inspector/Inspector.json:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
        (WebCore::InspectorCSSAgent::getInlineStylesForNode):
        (WebCore::InspectorCSSAgent::getComputedStyleForNode):
        * inspector/InspectorCSSAgent.h:
        * inspector/front-end/AuditRules.js:
        (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun):
        (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun.getStyles.inlineCallback):
        (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun.getStyles.matchedCallback):
        (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun.getStyles):
        * inspector/front-end/CSSStyleModel.js:
        (WebInspector.CSSStyleModel.prototype.getMatchedStylesAsync):
        (WebInspector.CSSStyleModel.prototype.getComputedStyleAsync):
        (WebInspector.CSSStyleModel.prototype.getInlineStylesAsync):
        * inspector/front-end/MetricsSidebarPane.js:
        (WebInspector.MetricsSidebarPane.prototype._innerUpdate):
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.prototype.get forcedPseudoClasses):
        (WebInspector.StylesSidebarPane.prototype._executeRebuildUpdate):
        (WebInspector.StylesSidebarPane.prototype._executeRebuildUpdate.inlineCallback):
        (WebInspector.StylesSidebarPane.prototype._executeRebuildUpdate.computedCallback):
        (WebInspector.StylesSidebarPane.prototype._innerUpdate):

2011-11-21  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r100856.
        http://trac.webkit.org/changeset/100856
        https://bugs.webkit.org/show_bug.cgi?id=72867

        New test fast/css/style-tag-display-none.html fails on
        Chromium (Requested by steveblock on #webkit).

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchUARules):

2011-11-21  Jochen Eisinger  <jochen@chromium.org>

        Implement Meta referrer
        https://bugs.webkit.org/show_bug.cgi?id=72674

        Reviewed by Adam Barth.

        http://wiki.whatwg.org/wiki/Meta_referrer

        Tests: http/tests/security/referrer-policy-always.html
               http/tests/security/referrer-policy-default.html
               http/tests/security/referrer-policy-https-always.html
               http/tests/security/referrer-policy-https-default.html
               http/tests/security/referrer-policy-https-never.html
               http/tests/security/referrer-policy-https-origin.html
               http/tests/security/referrer-policy-never.html
               http/tests/security/referrer-policy-origin.html
               http/tests/security/referrer-policy-redirect.html
               http/tests/security/referrer-policy-rel-noreferrer.html

        * WebCore.exp.in: updated
        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::processReferrerPolicy):
        * dom/Document.h:
        (WebCore::Document::referrerPolicy):
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::handleClick):
        * html/HTMLMetaElement.cpp:
        (WebCore::HTMLMetaElement::process):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadFrameRequest):
        (WebCore::FrameLoader::loadResourceSynchronously):
        * loader/PingLoader.cpp:
        (WebCore::PingLoader::loadImage):
        (WebCore::PingLoader::sendPing):
        (WebCore::PingLoader::reportContentSecurityPolicyViolation):
        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::loadSubframe):
        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::create):
        * page/SecurityPolicy.cpp:
        (WebCore::SecurityPolicy::generateReferrerHeader):
        * page/SecurityPolicy.h:

2011-11-21  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: ApplicationCache view should show navigator.onLine indicator.
        https://bugs.webkit.org/show_bug.cgi?id=72618

        Reviewed by Pavel Feldman.

        * inspector/InspectorApplicationCacheAgent.cpp:
        (WebCore::InspectorApplicationCacheAgent::enable):
        * inspector/front-end/ApplicationCacheItemsView.js:
        (WebInspector.ApplicationCacheItemsView):
        (WebInspector.ApplicationCacheItemsView.prototype.wasShown):
        * inspector/front-end/ApplicationCacheModel.js:
        (WebInspector.ApplicationCacheModel):
        (WebInspector.ApplicationCacheModel.prototype.get onLine):
        (WebInspector.ApplicationCacheModel.prototype._networkStateUpdated):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.ResourcesPanel.prototype.showApplicationCache):
        (WebInspector.ResourcesPanel.prototype._applicationCacheNetworkStateChanged):

2011-11-21  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix make distcheck build.

        * GNUmakefile.list.am:

2011-11-21  Dominic Mazzoni  <dmazzoni@google.com>

        Accessibility: Multiselect list boxes need to report the active option in addition to which items are selected.
        https://bugs.webkit.org/show_bug.cgi?id=72479

        Reviewed by Chris Fleizach.

        Test: accessibility/multiselect-list-reports-active-option.html

        * accessibility/AccessibilityListBoxOption.cpp:
        (WebCore::AccessibilityListBoxOption::isSelectedOptionActive):
        * accessibility/AccessibilityListBoxOption.h:
        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::isSelectedOptionActive):

2011-11-21  Yuta Kitamura  <yutak@chromium.org>

        [Qt] WebSocket close tests are failing
        https://bugs.webkit.org/show_bug.cgi?id=72865

        Reviewed by Simon Hausmann.

        * platform/network/qt/SocketStreamHandleQt.cpp:
        (WebCore::SocketStreamHandlePrivate::close):
        Emit didCloseSocketStream() callback even before the connection is established.
        Call m_socket->abort() to prevent "connected" signal from firing.

2011-11-21  Shinya Kawanaka  <shinyak@google.com>

        Refactoring: SpellChecker::requestCheckingFor should take Range instead of Node.
        https://bugs.webkit.org/show_bug.cgi?id=72847

        Reviewed by Hajime Morita.

        Covered by existing test.

        * editing/Editor.cpp:
        (WebCore::Editor::replaceSelectionWithFragment):
          Passes Range to requestCheckingFor instead of Node.
        * editing/SpellChecker.cpp:
          Changed argument type from Node to Range.
          The corresponding changes are also done in dependent methods.
        (WebCore::SpellChecker::initRequest):
        (WebCore::SpellChecker::clearRequest):
        (WebCore::SpellChecker::canCheckAsynchronously):
        (WebCore::SpellChecker::isBusy):
        (WebCore::SpellChecker::isValid):
        (WebCore::SpellChecker::isCheckable):
        (WebCore::SpellChecker::requestCheckingFor):
          Changed argument type from Node to Range.
        (WebCore::SpellChecker::doRequestCheckingFor):
        (WebCore::SpellChecker::didCheck):
        * editing/SpellChecker.h:

2011-11-20  Kenichi Ishibashi  <bashi@chromium.org>

        [Chromium] Remove old getFontFamilyForCharacters() and familyForChars() APIs.
        https://bugs.webkit.org/show_bug.cgi?id=72844

        Respects bold and italic properties that is given by fontconfig.

        Reviewed by Darin Fisher.

        * platform/graphics/chromium/FontCacheLinux.cpp:
        (WebCore::FontCache::getFontDataForCharacters): Removed #if and old logic.

2011-11-20  Noel Gordon  <noel.gordon@gmail.com>

        [chromium] Remove qt/QtMobileWebStyle from the gyp projects
        https://bugs.webkit.org/show_bug.cgi?id=72843

        Reviewed by Antonio Gomes.

        platform/qt/QtMobileWebStyle.{h,cpp} were removed in r100123

        * WebCore.gypi: remove platform/qt/QtMobileWebStyle.{h,cpp}

2011-11-20  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests results.

        * bindings/scripts/test/CPP/WebDOMFloat64Array.cpp:
        (WebDOMFloat64Array::WebDOMFloat64Array):
        (WebDOMFloat64Array::impl):
        (toWebCore):
        (toWebKit):
        * bindings/scripts/test/CPP/WebDOMFloat64Array.h:

2011-11-20  Adam Barth  <abarth@webkit.org>

        REGRESSION(r100691): Safari error pages and Growl notifications fail to load stylesheets
        https://bugs.webkit.org/show_bug.cgi?id=72836

        Reviewed by Sam Weinig.

        This patch removes a (minor) security mitigation.  Previously, we tried
        sequester "directory listings" into unique origins to make it more
        difficult for an attacker to crawl the user's local file system.
        Unfortunately, this mitigation doesn't really buy us much security
        because if the attacker has access to local files, we've probably lost
        anyway.

        The larger problem, however, is that this condition is overly
        complicated and has broken in sublte ways several times in its
        (relatively short) lifetime.  In the cases reported in this bug, we see
        that this check affects error pages in Safari and Growl notifications,
        even those have nothing to do with directory listings.

        If we have our heart set on this directory listing mitigation, we'll
        need a more robust way of triggering the behavior than examining URLs
        and guess whether they contain directory listings.  For example, if we
        implement Allow-From or Access-Control-Deny-Origin, then the embedder
        can supply those policies along with the directory listings.  Those
        seem like much better solutions than the in-engine hack this patch
        removes.

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

2011-10-17  Antonio Gomes  <agomes@rim.com>

        Pass a Frame* parameter in EditorClient::respondToChangedSelection
        https://bugs.webkit.org/show_bug.cgi?id=70248

        Reviewed by Ryosuke Niwa.

        Most of the port specific implementations of EditorClient::respondToChangedSelection
        (like EditorClient{Qt,Gtk,etc}) are wrongly relying on FocusController::focusedOrMainFrame
        method to get the Frame where the selection is happening on.
        It is not right, since a selection can be easily triggered in an inner
        frame that is not focused.

        No new tests since it is a hard thing to test without
        to hook into editor client in layout tests. We could
        change the "Dumped Delegate" messages, but it would
        require a rebasile of +1200 for a minor change.

        * editing/Editor.cpp: Pass the Frame on where the selection is changing to the client.
        (WebCore::Editor::respondToChangedSelection): Ditto.
        (WebCore::Editor::changeSelectionAfterCommand): Ditto.
        (WebCore::EmptyEditorClient::respondToChangedSelection):
        * page/EditorClient.h:  Pass Frame* to indicate where the selection is happening.
        * loader/EmptyClients.h: Changed signature as per base class change.

2011-11-17  Mark Rowe  <mrowe@apple.com>

        <http://webkit.org/b/72646> Disable deprecation warnings around code where we cannot easily
        switch away from the deprecated APIs.

        Reviewed by Sam Weinig.

        * platform/mac/WebCoreNSStringExtras.mm:
        * platform/network/cf/SocketStreamHandleCFNet.cpp:
        (WebCore::SocketStreamHandle::reportErrorToClient):

2011-11-19  Kevin Ollivier  <kevino@theolliviers.com>

        [wx] C++ bindings build fix for move of array classes to WTF.
        
        * bindings/scripts/CodeGeneratorCPP.pm:
        (GetCPPTypeGetter):
        (GetNamespaceForClass):
        (GenerateHeader):
        (GenerateImplementation):

2011-11-19  Scott Graham  <scottmg@chromium.org>

        Move gamepad to Modules/ (+ some cleanup)
        https://bugs.webkit.org/show_bug.cgi?id=72785

        Reviewed by Adam Barth.

        Move main files from page/ to Modules/gamepad/. #include guard the
        gamepad header inclusions in Navigator.cpp to avoid including for
        ports that do not enable GAMEPAD.

        * Modules/gamepad/Gamepad.cpp: Renamed from Source/WebCore/page/Gamepad.cpp.
        (WebCore::Gamepad::Gamepad):
        (WebCore::Gamepad::axes):
        (WebCore::Gamepad::buttons):
        (WebCore::Gamepad::~Gamepad):
        * Modules/gamepad/Gamepad.h: Renamed from Source/WebCore/page/Gamepad.h.
        * Modules/gamepad/Gamepad.idl: Renamed from Source/WebCore/page/Gamepad.idl.
        * Modules/gamepad/GamepadList.cpp: Renamed from Source/WebCore/page/GamepadList.cpp.
        (WebCore::GamepadList::~GamepadList):
        (WebCore::GamepadList::set):
        (WebCore::GamepadList::length):
        (WebCore::GamepadList::item):
        * Modules/gamepad/GamepadList.h: Renamed from Source/WebCore/page/GamepadList.h.
        (WebCore::GamepadList::create):
        (WebCore::GamepadList::GamepadList):
        * Modules/gamepad/GamepadList.idl: Renamed from Source/WebCore/page/GamepadList.idl.
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * page/Navigator.cpp:

2011-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r100834.
        http://trac.webkit.org/changeset/100834
        https://bugs.webkit.org/show_bug.cgi?id=72806

        this patch makes Qt run-webkit-test exit before finishing
        (Requested by igoroliveira on #webkit).

        * platform/graphics/texmap/TextureMapperNode.cpp:
        * platform/graphics/texmap/TextureMapperNode.h:

2011-11-19  Huang Dongsung  <luxtella@company100.net>

        Remove WebCore/ForwardingHeaders/runtime/JSObjectWithGlobalObject.h because
        JSObjectWithGlobalObject.h has been removed.
        https://bugs.webkit.org/show_bug.cgi?id=72794

        r94701 removed JSObjectWithGlobalObject.h.

        Reviewed by Oliver Hunt.

        * ForwardingHeaders/runtime/JSObjectWithGlobalObject.h: Removed.

2011-11-19  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector:[protocol] actual JSON messages do not conform to Inspector.json in InspectorApplicationCacheAgent.cpp
        https://bugs.webkit.org/show_bug.cgi?id=72734

        Reviewed by Timothy Hatcher.

        * inspector/Inspector.json:

2011-11-19  David Barr  <davidbarr@chromium.org>

        REGRESSION(r98542): Chromium: CSS text is rendered on page
        https://bugs.webkit.org/show_bug.cgi?id=71703

        Reviewed by Antti Koivisto.

        Matched UA declarations uncacheable when using simpleDefaultStyleSheet.

        Test: fast/css/style-tag-display-none.html

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::matchUARules):

2011-11-19  Jay Civelli  <jcivelli@chromium.org>

        When loading a MHTML document, make sure we set the base URL before
        we notify the frame was committed (so the document has the right base
        URL when the notification happens). 
        https://bugs.webkit.org/show_bug.cgi?id=72788

        Reviewed by Adam Barth.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::receivedFirstData):

2011-11-19  Adam Barth  <abarth@webkit.org>

        Integrate Source/WTF with the Chromium build system
        https://bugs.webkit.org/show_bug.cgi?id=72790

        Reviewed by Eric Seidel.

        Add a dependency on the new WTF.

        * WebCore.gyp/WebCore.gyp:

2011-11-18  Takashi Toyoshima  <toyoshim@chromium.org>

        [Chromium] [WebSocket] export WebSocketChannel interface for plugins
        https://bugs.webkit.org/show_bug.cgi?id=72016

        Reviewed by Darin Fisher.

        Add a interface to send raw binary data.
        This interface is used by WebWebSocketChannel implementation
        in WebKit API.

        No new tests because just export a interface.

        * websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::send):
        * websockets/WebSocketChannel.h:

2011-11-18  Vineet Chaudhary  <vineet.chaudhary@motorola.com>

        https://bugs.webkit.org/show_bug.cgi?id=72591
        Remove document.width / document.height

        Reviewed by Darin Adler.

        Removed document.width/document.height from JS bindings,
        but keeping the same for ObjC bindings. Also it should use
        document.body.clientWidth and document.body.clientHeight instead.

        * html/HTMLDocument.idl:

2011-11-18  Martin Robinson  <mrobinson@igalia.com>

        Fix the GTK+ build.

        * page/Navigator.idl: Properly disable the webkitGamepads API if gamepad
        isn't enabled at compile time.

2011-11-18  Daniel Bates  <dbates@rim.com>

        Add CMake build infrastructure for the BlackBerry port
        https://bugs.webkit.org/show_bug.cgi?id=72768

        Reviewed by Antonio Gomes.

        * CMakeLists.txt: At this time the BlackBerry port doesn't support generating
          DOM bindings from the SVG IDLs. See WebKit bug #72773.
        * PlatformBlackBerry.cmake: Added.

2011-11-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r100826.
        http://trac.webkit.org/changeset/100826
        https://bugs.webkit.org/show_bug.cgi?id=72786

        Broke Chromium Mac build (Requested by aklein on #webkit).

        * page/ChromeClient.h:
        * page/FrameView.cpp:
        * page/FrameView.h:
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::wheelEvent):
        * platform/ScrollView.h:
        * platform/ScrollableArea.h:
        (WebCore::ScrollableArea::scrollbarStyleChanged):
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::updateScrollerStyle):

2011-11-18  Alpha Lam  <hclam@chromium.org>

        [chromium] composited layers are blurry with a zoom-in page scale factor
        https://bugs.webkit.org/show_bug.cgi?id=71225

        Reviewed by James Robinson.

        Pass contents scale factor to the compositor such that it can:
        1. Adjust contentBounds() of the compositoer layers with content scale.
        2. Apply the content scale in the painter for texture update in better resolution.
        3. Apply the content scale to the dirty rect in CanvasLayerTextureUpdater.

        This change fixed blurry problem for all tiled layer types and is not limited to
        position:fixed layers.

        Tests: compositing/geometry/fixed-position-composited-page-scale-down.html
               compositing/geometry/fixed-position-composited-page-scale.html
               compositing/geometry/fixed-position-iframe-composited-page-scale-down.html
               compositing/geometry/fixed-position-iframe-composited-page-scale.html
               compositing/geometry/fixed-position-transform-composited-page-scale-down.html
               compositing/geometry/fixed-position-transform-composited-page-scale.html

        * platform/graphics/chromium/GraphicsLayerChromium.cpp:
        (WebCore::GraphicsLayerChromium::setTransform):
        (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
        (WebCore::GraphicsLayerChromium::updateContentsScale):
        (WebCore::GraphicsLayerChromium::contentsScale):
        (WebCore::GraphicsLayerChromium::deviceOrPageScaleFactorChanged):
        * platform/graphics/chromium/GraphicsLayerChromium.h:
        * platform/graphics/chromium/ImageLayerChromium.cpp:
        (WebCore::ImageLayerTextureUpdater::prepareToUpdate):
        (WebCore::ImageLayerChromium::needsContentsScale):
        * platform/graphics/chromium/ImageLayerChromium.h:
        * platform/graphics/chromium/LayerChromium.cpp:
        (WebCore::LayerChromium::LayerChromium):
        (WebCore::LayerChromium::setContentsScale):
        * platform/graphics/chromium/LayerChromium.h:
        (WebCore::LayerChromium::needsContentsScale):
        (WebCore::LayerChromium::contentsScale):
        * platform/graphics/chromium/LayerTextureUpdater.h:
        * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
        (WebCore::LayerTextureUpdaterCanvas::paintContents):
        (WebCore::LayerTextureUpdaterBitmap::prepareToUpdate):
        (WebCore::LayerTextureUpdaterSkPicture::prepareToUpdate):
        * platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::TiledLayerChromium::needsContentsScale):
        (WebCore::TiledLayerChromium::contentBounds):
        (WebCore::TiledLayerChromium::prepareToUpdate):
        * platform/graphics/chromium/TiledLayerChromium.h:

2011-11-18  Igor Oliveira  <igor.oliveira@openbossa.org>

        [WK2][Qt] Move Accelerated Composite animations to UIProcess
        https://bugs.webkit.org/show_bug.cgi?id=72753

        Add helper method to synchronize animations in TextureMapper.

        Reviewed by Noam Rosenthal.

        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::syncAnimationsRecursively):
        * platform/graphics/texmap/TextureMapperNode.h:

2011-11-18  Scott Graham  <scottmg@chromium.org>

        IDL changes for gamepad support
        https://bugs.webkit.org/show_bug.cgi?id=71753

        Reviewed by Adam Barth.

        IDL changes and associated plumbing to expose list of gamepad objects
        on navigator object (per current spec). Full patch is
        https://bugs.webkit.org/show_bug.cgi?id=69451. Only basic existence
        test until more plumbing in future patches.

        Test: gamepad/gamepad-api.html

        * WebCore.gypi:
        * bindings/generic/RuntimeEnabledFeatures.h:
        (WebCore::RuntimeEnabledFeatures::setWebkitGamepadsEnabled):
        (WebCore::RuntimeEnabledFeatures::webkitGamepadsEnabled):
        * page/Gamepad.cpp: Added.
        (WebCore::Gamepad::Gamepad):
        (WebCore::Gamepad::axes):
        (WebCore::Gamepad::buttons):
        (WebCore::Gamepad::~Gamepad):
        * page/Gamepad.h: Added.
        * page/Gamepad.idl: Added.
        * page/GamepadList.cpp: Added.
        (WebCore::GamepadList::~GamepadList):
        (WebCore::GamepadList::set):
        (WebCore::GamepadList::length):
        (WebCore::GamepadList::item):
        * page/GamepadList.h: Added.
        (WebCore::GamepadList::create):
        (WebCore::GamepadList::GamepadList):
        * page/GamepadList.idl: Added.
        * page/Navigator.cpp:
        (WebCore::Navigator::webkitGamepads):
        * page/Navigator.h:
        * page/Navigator.idl:

2011-11-18  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r100693.
        http://trac.webkit.org/changeset/100693
        https://bugs.webkit.org/show_bug.cgi?id=72779

        This patch caused a rendering regression (see bug 72770)
        (Requested by philip__ on #webkit).

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::setStyle):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff):

2011-11-18  Simon Fraser  <simon.fraser@apple.com>

        Reflection on composited element doesn't update if the element changes to show no content
        https://bugs.webkit.org/show_bug.cgi?id=72774

        Reviewed by Chris Marrin.
        
        When a style change results in a reflected element losing its backing store,
        we need to clear the backing stores on the layer clones as well.

        Test: compositing/reflections/become-simple-composited-reflection.html

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateLayerDrawsContent):

2011-11-18  Daniel Cheng  <dcheng@chromium.org>

        [chromium] Use correct backing store for ChromiumDataObject in pasteboard writes.
        https://bugs.webkit.org/show_bug.cgi?id=72767

        Reviewed by Tony Chang.

        Covered by existing tests.

        * editing/chromium/EditorChromium.cpp:
        (WebCore::Editor::newGeneralClipboard):
        * page/chromium/EventHandlerChromium.cpp:
        (WebCore::EventHandler::createDraggingClipboard):
        * platform/chromium/ChromiumDataObject.cpp:
        (WebCore::ChromiumDataObject::types):
        (WebCore::ChromiumDataObject::getData):
        (WebCore::ChromiumDataObject::containsFilenames):
        (WebCore::ChromiumDataObject::ChromiumDataObject):
        * platform/chromium/ChromiumDataObject.h:
        (WebCore::ChromiumDataObject::createFromPasteboard):
        (WebCore::ChromiumDataObject::create):
        (WebCore::ChromiumDataObject::storageMode):
        * platform/chromium/ClipboardChromium.cpp:
        (WebCore::ClipboardChromium::hasData):

2011-11-18  Chris Evans  <cevans@google.com>

        Crash with ranges across a detached, reparented node tree
        https://bugs.webkit.org/show_bug.cgi?id=72757

        Reviewed by Adam Barth.

        Test: fast/dom/move-detached-child-in-range.html

        * dom/RangeBoundaryPoint.h:
        (WebCore::RangeBoundaryPoint::childBefore): protect the raw child node from getting pulled from under us.

2011-11-18  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=72551
        When the recommended scrollbar style changes, WKView's tracking options should 
        adjust accordingly
        -and corresponding-
        <rdar://problem/10409328>

        Reviewed by Darin Adler.

        This new ChromeClient function is called when the recommended scrollbar style 
        changes. This way, WebKit can respond to the change by adjusting its mouse 
        tracking.
        * page/ChromeClient.h:
        (WebCore::ChromeClient::recommendedScrollbarStyleDidChange):

        Existing ScrollableArea function scrollbarStyleChanged() now takes an int 
        indicating the new scrollbar style and a bool indicating whether it is necessary 
        to force an update. It used to be the case that this function was ONLY used to 
        force an update (and only called when an updated was needed), but now that it must 
        also call into the ChromeClient, it is necessary to include a bool tracking 
        whether we need to force an update. New implementation on FrameView is responsible 
        for calling ChromeClient, and then that calls into the pre-existing ScrollView 
        function for the forceUpdate part.
        * page/FrameView.cpp:
        (WebCore::FrameView::scrollbarStyleChanged):
        * page/FrameView.h:
        * platform/ScrollView.cpp:
        (WebCore::ScrollView:: scrollbarStyleChanged):
        * platform/ScrollView.h:
        * platform/ScrollableArea.h:
        (WebCore::ScrollableArea::scrollbarStyleChanged):
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::updateScrollerStyle):

2011-11-18  Kelly Norton  <knorton@google.com>

        Fixes several more void functions in RenderObject that return values.
        https://bugs.webkit.org/show_bug.cgi?id=72750

        Reviewed by Adam Barth.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::updateBeforeAfterContent):
        (WebCore::RenderBlock::addChildToContinuation):
        (WebCore::RenderBlock::addChildToAnonymousColumnBlocks):
        (WebCore::RenderBlock::addChild):
        (WebCore::RenderBlock::addChildIgnoringContinuation):

2011-11-18  Shawn Singh  <shawnsingh@chromium.org>

        [chromium] Add some useful text to existing debug dump
        https://bugs.webkit.org/show_bug.cgi?id=72576

        Reviewed by James Robinson.

        No new tests needed.

        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
        (WebCore::CCLayerImpl::dumpLayerProperties):
        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
        (WebCore::CCRenderSurface::dumpSurface):

2011-11-18  Xiaomei Ji  <xji@chromium.org>

        REGRESSION: rtl horizontal scrollbar / resize bug - Body shifts on resize when scrolled all the way to the left
        https://bugs.webkit.org/show_bug.cgi?id=70395

        Reviewed by Tony Chang.

        This patch fixes the problem in Mac and Chromium Mac.
   
        The existing test fast/dom/rtl-scroll-to-leftmost-and-resize.html seems does not really work in Mac DRT
        (the browswer window is not resized). It works in Chromium-Mac. And Chromium-Mac's code
        is forked from Mac.

        * platform/chromium/ScrollAnimatorChromiumMac.mm:
        (WebCore::ScrollAnimatorChromiumMac::immediateScrollToPoint):
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::immediateScrollToPoint):

2011-11-18  Martin Robinson  <mrobinson@igalia.com>

        REGRESSION (r99924): broke 2 pasteboard tests on GTK
        https://bugs.webkit.org/show_bug.cgi?id=72131

        Reviewed by Tony Chang.

        * platform/gtk/ClipboardGtk.cpp:
        (WebCore::ClipboardGtk::clearData): Call clearAll now.
        (WebCore::ClipboardGtk::clearAllData): Call clearAllExceptFilenames now.
        * platform/gtk/DataObjectGtk.cpp:
        (WebCore::DataObjectGtk::clearAllExceptFilenames): Renamed from clear.
        (WebCore::DataObjectGtk::clearAll): Added this method which also clear filenames.
        * platform/gtk/DataObjectGtk.h:
        * platform/gtk/PasteboardGtk.cpp: Call clear before setting new clipboard data.
        (WebCore::Pasteboard::writeSelection): Ditto.
        (WebCore::Pasteboard::writePlainText): Ditto.
        (WebCore::Pasteboard::writeURL): Ditto.
        (WebCore::Pasteboard::writeImage): Ditto.
        * platform/gtk/PasteboardHelper.cpp:
        (WebCore::clearClipboardContentsCallback): Use the clearAll method now.

2011-11-18  Vineet Chaudhary  <vineet.chaudhary@motorola.com>

        Access key should work on all elements.
        https://bugs.webkit.org/show_bug.cgi?id=71854

        Reviewed by Ryosuke Niwa.

        All HTML elements can have the accesskey content attribute set.
        Specification http://dev.w3.org/html5/spec/Overview.html#the-accesskey-attribute
        Adding "accessKey" attribute to HTMLElement.idl file as [Reflect].

        Test: fast/forms/access-key-for-all-elements.html

        * bindings/objc/PublicDOMInterfaces.h: Moved properties form subclass to base class.
        * html/BaseButtonInputType.cpp: 
        (WebCore::BaseButtonInputType::accessKeyAction): Renamed variable sendToAnyElement to sendMouseEvents.
        * html/BaseButtonInputType.h: Ditto
        * html/BaseCheckableInputType.cpp:
        (WebCore::BaseCheckableInputType::accessKeyAction): Ditto
        * html/BaseCheckableInputType.h: Ditto
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::accessKeyAction): Ditto
        * html/HTMLAnchorElement.h: Ditto
        * html/HTMLAnchorElement.idl: Removed redundant IDL attribute entries.
        * html/HTMLAreaElement.idl: Removed redundant IDL attribute entries.
        * html/HTMLButtonElement.cpp:
        (WebCore::HTMLButtonElement::accessKeyAction): Renamed variable sendToAnyElement to sendMouseEvents.
        * html/HTMLButtonElement.h: Ditto
        * html/HTMLButtonElement.idl: Removed redundant IDL attribute entries.
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::accessKeyAction): Renamed variable sendToAnyElement to sendMouseEvents.
        If the element does not have a defined activation behavior, fire a click event at the element.
        * html/HTMLElement.h: Ditto
        * html/HTMLElement.idl: Added accessKey IDL attribute.
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::accessKeyAction): Renamed variable sendToAnyElement to sendMouseEvents.
        * html/HTMLInputElement.h: Ditto
        * html/HTMLInputElement.idl: Removed redundant IDL attribute entries.
        * html/HTMLLabelElement.cpp:
        (WebCore::HTMLLabelElement::accessKeyAction): Renamed variable sendToAnyElement to sendMouseEvents.
        * html/HTMLLabelElement.h: Ditto
        * html/HTMLLabelElement.idl: Removed redundant IDL attribute entries.
        * html/HTMLLegendElement.cpp:
        (WebCore::HTMLLegendElement::accessKeyAction): Renamed variable sendToAnyElement to sendMouseEvents.
        * html/HTMLLegendElement.h: Ditto
        * html/HTMLLegendElement.idl: Removed redundant IDL attribute entries.
        * html/HTMLOptGroupElement.h: Renamed variable sendToAnyElement to sendMouseEvents.
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::accessKeyAction): Ditto
        * html/HTMLSelectElement.h: Ditto
        * html/HTMLTextAreaElement.h: Ditto
        * html/HTMLTextAreaElement.idl: Removed redundant IDL attribute entries.
        * html/HiddenInputType.h: Renamed variable sendToAnyElement to sendMouseEvents.
        * html/InputType.h: Ditto
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::accessKeyAction): Ditto
        * html/RangeInputType.h: Ditto

2011-11-18  Simon Fraser  <simon.fraser@apple.com>

        Appearance of compound transform animations under apps linked on SnowLeopard is incorrect
        https://bugs.webkit.org/show_bug.cgi?id=72641
        and
        <rdar://problem/10314267>

        Reviewed by Dean Jackson.

        GraphicsLayerCA contains a "linked on or after" check to account for a bug in
        Core Animation on SnowLeopard and earlier, which is that CA would apply the list
        of animations in reverse order.
        
        Our previous fix was incorrect, because it only adjusted the 'additive' property
        of the animation list based on ordering, rather than flipping the entire list.
        This change reverses the list of animations before giving them to CA, which fixes
        the bug.
                
        Test: animations/additive-transform-animations.html

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
        (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
        * platform/graphics/ca/GraphicsLayerCA.h:

2011-11-18  Tim Horton  <timothy_horton@apple.com>

        -webkit-cross-fade rendered incorrectly in overflow divs
        https://bugs.webkit.org/show_bug.cgi?id=72693
        <rdar://problem/10468564>

        Reviewed by Simon Fraser.

        Respect the desired source rectangle when rendering the cross-fade.

        Test: css3/images/cross-fade-overflow-position.html

        * platform/graphics/CrossfadeGeneratedImage.cpp:
        (WebCore::CrossfadeGeneratedImage::drawCrossfade):
        (WebCore::CrossfadeGeneratedImage::draw):
        (WebCore::CrossfadeGeneratedImage::drawPattern):
        * platform/graphics/CrossfadeGeneratedImage.h:

2011-11-18  Raphael Kubo da Costa  <kubo@profusion.mobi>

        Unreviewed build fix; r100686 broke the EFL build when Geolocation
        support is enabled.

        * platform/efl/GeolocationServiceEfl.cpp: Only declare
        s_factoryFunction if CLIENT_BASED_GEOLOCATION is off, otherwise it is
        also declared in GeolocationService.cpp.

2011-11-18  Igor Oliveira  <igor.oliveira@openbossa.org>

        [TextureMapper] computePerspectiveTransformIfNeeded is called twice in TextureMapperNode::syncCompositingState
        https://bugs.webkit.org/show_bug.cgi?id=72727

        TextureMapperNode::computeAllTransforms already has a call to TextureMapperNode::computePerspectiveTransformIfNeeded,
        so it does not need to be called again after TextureMapperNode::computeAllTransforms.

        Reviewed by Noam Rosenthal.

        * platform/graphics/texmap/TextureMapperNode.cpp:
        (WebCore::TextureMapperNode::syncCompositingState):

2011-11-18  Mihnea Ovidenie  <mihnea@adobe.com>

        Fix compilation warning in ComplexTextControllerCoreText.mm
        https://bugs.webkit.org/show_bug.cgi?id=72702

        Reviewed by Andreas Kling.

        No functionality changed, so no new tests.

        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
        (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText):

2011-11-18  Pavel Feldman  <pfeldman@google.com>

        Not reviewed: restore front-end compilability via updating externs and JS generator.

        * inspector/front-end/ElementsPanel.js:
        (WebInspector.ElementsPanel.prototype.jumpToNextSearchResult):
        (WebInspector.ElementsPanel.prototype.jumpToPreviousSearchResult):
        * inspector/front-end/externs.js:
        (WebInspector.showPanelForAnchorNavigation):
        * inspector/generate-protocol-externs:

2011-11-17  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: dispatch messages from the front-end to the backend asynchronously.
        https://bugs.webkit.org/show_bug.cgi?id=72621

        We should align the way we dispatch messages from the front-end to backend across the environments:
          - WebKit has it synchronoulsly
          - Chromium has it asynchronously
          - Remote debugging has it asynchronously
        Making it asynchronous made a number of flaky Qt tests pass.

        Tests uncovered console agent problem that was also fixed.

        Reviewed by Yury Semikhatsky.

        * inspector/InspectorConsoleAgent.cpp:
        (WebCore::InspectorConsoleAgent::clearFrontend):
        * inspector/InspectorFrontendClient.h:
        * inspector/InspectorFrontendClientLocal.cpp:
        (WebCore::InspectorBackendDispatchTask::InspectorBackendDispatchTask):
        (WebCore::InspectorBackendDispatchTask::dispatch):
        (WebCore::InspectorBackendDispatchTask::reset):
        (WebCore::InspectorBackendDispatchTask::onTimer):
        (WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal):
        (WebCore::InspectorFrontendClientLocal::windowObjectCleared):
        (WebCore::InspectorFrontendClientLocal::sendMessageToBackend):
        * inspector/InspectorFrontendClientLocal.h:

2011-11-18  Iain Merrick  <husky@google.com>

        [chromium] Pass screen refresh rate into compositor.
        https://bugs.webkit.org/show_bug.cgi?id=71040

        Reviewed by Tony Gentilcore.

        Covered by CCLayerTreeHostTest.

        * platform/PlatformScreen.h:
        * platform/chromium/PlatformScreenChromium.cpp:
        (WebCore::screenRefreshRate):
        * platform/chromium/PlatformSupport.h:
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::initializeImplOnImplThread):

2011-11-18  Alexandru Chiculita  <achicu@adobe.com>

        [CSSShaders] Implement the computed style for mesh parameters of the custom() filter
        https://bugs.webkit.org/show_bug.cgi?id=72478

        Reviewed by Dean Jackson.

        Added parsing and computed style for the mesh rows, columns, mesh box type 
        (filter-box, border-box, content-box and padding-box) and the detached mode.
        
        Also fixed a case where "custom(none, 10, 10 filter-box)" was incorrectly
        treated as "custom(none, 10)".

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseCustomFilter): Fixed a case where invalid syntax was parsed as correct syntax.
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator CustomFilterOperation::MeshBoxType):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::createCustomFilterOperation):
        * css/CSSValueList.h:
        (WebCore::CSSValueListIterator::isPrimitiveValue):
        * platform/graphics/filters/CustomFilterOperation.h:

2011-11-18  Adam Barth  <abarth@webkit.org>

        Remove unneeded include (and ifdef) from V8DOMWindowCustom.cpp
        https://bugs.webkit.org/show_bug.cgi?id=72705

        Reviewed by Eric Seidel.

        Death to ifdefs!

        * bindings/v8/custom/V8DOMWindowCustom.cpp:

2011-11-18  Adam Barth  <abarth@webkit.org>

        Move some mediastream related files into the mediastream directory
        https://bugs.webkit.org/show_bug.cgi?id=72695

        Reviewed by Eric Seidel.

        Just moving the files to the proper directory.

        * GNUmakefile.list.am:
        * WebCore.gypi:
        * mediastream/NavigatorUserMediaError.h: Renamed from Source/WebCore/page/NavigatorUserMediaError.h.
        (WebCore::NavigatorUserMediaError::create):
        (WebCore::NavigatorUserMediaError::~NavigatorUserMediaError):
        (WebCore::NavigatorUserMediaError::code):
        (WebCore::NavigatorUserMediaError::NavigatorUserMediaError):
        * mediastream/NavigatorUserMediaError.idl: Renamed from Source/WebCore/page/NavigatorUserMediaError.idl.
        * mediastream/NavigatorUserMediaErrorCallback.h: Renamed from Source/WebCore/page/NavigatorUserMediaErrorCallback.h.
        (WebCore::NavigatorUserMediaErrorCallback::~NavigatorUserMediaErrorCallback):
        * mediastream/NavigatorUserMediaErrorCallback.idl: Renamed from Source/WebCore/page/NavigatorUserMediaErrorCallback.idl.
        * mediastream/NavigatorUserMediaSuccessCallback.h: Renamed from Source/WebCore/page/NavigatorUserMediaSuccessCallback.h.
        (WebCore::NavigatorUserMediaSuccessCallback::~NavigatorUserMediaSuccessCallback):
        * mediastream/NavigatorUserMediaSuccessCallback.idl: Renamed from Source/WebCore/page/NavigatorUserMediaSuccessCallback.idl.

2011-11-18  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [Extensions API] Provide a way for extension to create a status bar icon
        https://bugs.webkit.org/show_bug.cgi?id=45955

        Reviewed by Pavel Feldman.

        * inspector/front-end/ExtensionAPI.js:
        (injectedExtensionAPI.ExtensionPanelImpl.prototype.createStatusBarButton):
        (injectedExtensionAPI):
        (injectedExtensionAPI.ButtonImpl.prototype.update):
        * inspector/front-end/ExtensionPanel.js:
        (WebInspector.ExtensionPanel):
        (WebInspector.ExtensionPanel.prototype.get statusBarItems):
        (WebInspector.ExtensionPanel.prototype.addStatusBarItem):
        (WebInspector.ExtensionButton):
        (WebInspector.ExtensionButton.prototype.update):
        (WebInspector.ExtensionButton.prototype._onClicked):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer):
        (WebInspector.ExtensionServer.prototype.notifyButtonClicked):
        (WebInspector.ExtensionServer.prototype._onCreateStatusBarButton):
        (WebInspector.ExtensionServer.prototype._onUpdateButton):
        (WebInspector.ExtensionServer.prototype._onCreateSidebarPane):
        * inspector/front-end/inspector.css:
        (button.status-bar-item.extension):

2011-11-18  Tommy Widenflycht  <tommyw@google.com>

        MediaStream API: Merging the PeerConnectionHandler.h files
        https://bugs.webkit.org/show_bug.cgi?id=72611

        Reviewed by Adam Barth.

        No actual code changes.

        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * WebCore.gyp/WebCore.gyp:
        * WebCore.gypi:
        * platform/mediastream/PeerConnectionHandler.h: Renamed from Source/WebCore/platform/mediastream/chromium/PeerConnectionHandler.h.
        * platform/mediastream/gstreamer/PeerConnectionHandler.h: Removed.

2011-11-17  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Layer violation: ThirdPartyCookiesQt.cpp uses QWebSettings in two places
        https://bugs.webkit.org/show_bug.cgi?id=72597

        Reviewed by Kenneth Rohde Christiansen.

        Moved code that queries the third party cookie policy from QWebSettings
        out of WebCore. Instead NetworkingContext has now the interface that allows
        delegating the functionality into WebKit/qt.

        In order to do that we need to pass the NetworkingContext around, which is used to
        retrieve the cookie jar and the originating frame object pointer.

        * platform/network/NetworkingContext.h: Add interface.
        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::QNetworkReplyHandler): Pass NetworkingContext to ResourceRequest::toNetworkRequest.
        (WebCore::QNetworkReplyHandler::redirect): Ditto.
        * platform/network/qt/ResourceRequest.h: Replaced originatingObject parameter with NetworkingContext, which can
        also provide the same plus more (cookie jar, policy callback).
        * platform/network/qt/ResourceRequestQt.cpp:
        (WebCore::ResourceRequest::toNetworkRequest): Ditto.
        * platform/qt/CookieJarQt.cpp: Simplify to use NetworkingContext to get cookie jar and
        call new thirdPartyCookiePolicyPermits API that takes the context as parameter.
        (WebCore::networkingContext):
        (WebCore::setCookies):
        (WebCore::cookies):
        (WebCore::cookieRequestHeaderFieldValue):
        (WebCore::cookiesEnabled):
        * platform/qt/ThirdPartyCookiesQt.cpp: Replace up-casting to QWebFrame and use of QWebSettings
        with useage of NetworkingContext.
        (WebCore::thirdPartyCookiePolicyPermits):
        * platform/qt/ThirdPartyCookiesQt.h:

2011-11-17  Kenichi Ishibashi  <bashi@chromium.org>

        crash: WebCore::FontPlatformData::roundsGlyphAdvances on Lion
        https://bugs.webkit.org/show_bug.cgi?id=71997

        Reviewed by Dan Bernstein.

        The cause is a null dereference of a fontData that is stored in
        ComplexTextRun. The fontData is initialized by using the
        fontCache, but it could be null when the font is in fallback
        list. The reason a font from the fallback list might not be in the
        font Cache is that it may be a web font. Before looking up the
        fontCache, try to see whether the font is in the fallback list.

        No new tests. We don't have webfonts that can produce the problem.

        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
        (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText): See fallback list first, then lookup cache.

2011-11-17  Kaustubh Atrawalkar  <kaustubh@motorola.com>

        Remove initProgressEvent method
        https://bugs.webkit.org/show_bug.cgi?id=71340

        Reviewed by Adam Barth.

        This method has been removed from the spec draft.
        http://www.w3.org/TR/progress-events/#interface-progressevent

        No new tests. Removed method.

        * dom/ProgressEvent.cpp:
        * dom/ProgressEvent.h:
        * dom/ProgressEvent.idl:

2011-11-17  Eunmi Lee  <eunmi15.lee@samsung.com>

        [EFL] Move keyIdentifierForEvasKeyName() and windowsKeyCodeForEvasKeyName() to the
        EflKeyboardUtilities.cpp to use in the WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=62451

        Reviewed by Martin Robinson.

        The keyIdentifierForEvasKeyName() and windowsKeyCodeForEvasKeyName() were static functions
        in the PlatformKeyboardEventEfl.cpp. But they are also needed in the WebKit2 EFL port, so I
        moved them to the separated file - EflKeyboardUtilities.cpp.

        * PlatformEfl.cmake:
        * platform/efl/EflKeyboardUtilities.cpp: Copied from Source/WebCore/platform/efl/PlatformKeyboardEventEfl.cpp.
        (WebCore::createKeyMap):
        (WebCore::createWindowsKeyMap):
        (WebCore::keyIdentifierForEvasKeyName):
        (WebCore::windowsKeyCodeForEvasKeyName):
        * platform/efl/EflKeyboardUtilities.h: Added.
        * platform/efl/PlatformKeyboardEventEfl.cpp:

2011-11-17  Martin Robinson  <mrobinson@igalia.com>

        [GTK] The process freezes when you right click on windowless Flash
        https://bugs.webkit.org/show_bug.cgi?id=69123

        Reviewed by Xan Lopez.

        No new tests. I tried to create a layout test that exercised this
        issue, but it appears that EventSender clicks do not trigger
        it. This is covered by the manual tests containing Flash.

        * plugins/PluginPackage.cpp:
        (WebCore::PluginPackage::determineQuirks): Always activate the
        windowless Flash quirk if on x86_64 and X11.
        * plugins/gtk/PluginViewGtk.cpp:
        (WebCore::PluginView::handleMouseEvent): Avoid sending right-click
        events if we have the quirk.

2011-11-17  Peter Rybin  <peter.rybin@gmail.com>

        Web Inspector: clear fixme in generator script
        https://bugs.webkit.org/show_bug.cgi?id=71372

        Remove unnecessary field name map and update license year number.

        Reviewed by Pavel Feldman.

        * inspector/CodeGeneratorInspector.py:

2011-11-17  Raphael Kubo da Costa  <kubo@profusion.mobi>

        [EFL] Clean up the use of DATA_DIR in the buildsystem
        https://bugs.webkit.org/show_bug.cgi?id=72681

        Reviewed by Daniel Bates.

        Add the -DDATA_DIR definition here instead of defining it globally in
        OptionsEfl.cmake, as WebCore is the only place which needs it.

        No new tests, this is a buildsystem change.

        * PlatformEfl.cmake:

2011-11-17  Adam Klein  <adamk@chromium.org>

        Move JS recursion counter from V8Proxy to V8BindingPerIsolateData
        https://bugs.webkit.org/show_bug.cgi?id=72645

        Reviewed by Adam Barth.

        With the JS recursion level stored as a member of V8Proxy, it's tied
        to a frame. But this is incorrect, as there's no reason that a JS call
        stack need be restricted to a single frame (see my new test case for
        an example of code going across frames).

        In order to get the correct accounting of JS recursion level, per-Isolate
        is the right granularity (per dslomov), which is what this patch accomplishes.

        Test: storage/indexeddb/transaction-abort-with-js-recursion-cross-frame.html

        * bindings/v8/V8Binding.cpp:
        (WebCore::V8BindingPerIsolateData::V8BindingPerIsolateData):
        * bindings/v8/V8Binding.h:
        (WebCore::V8BindingPerIsolateData::recursionLevel):
        (WebCore::V8BindingPerIsolateData::incrementRecursionLevel):
        (WebCore::V8BindingPerIsolateData::decrementRecursionLevel):
        (WebCore::V8RecursionScope::V8RecursionScope):
        (WebCore::V8RecursionScope::~V8RecursionScope):
        * bindings/v8/V8Proxy.cpp:
        (WebCore::incrementRecursionLevel):
        (WebCore::decrementRecursionLevel):
        (WebCore::recursionLevel):
        (WebCore::V8Proxy::V8Proxy):
        (WebCore::V8Proxy::runScript):
        (WebCore::V8Proxy::callFunction):
        (WebCore::V8Proxy::didLeaveScriptContext):
        * bindings/v8/V8Proxy.h:

2011-11-17  Robin Cao  <robin.cao@torchmobile.com.cn>

        [chromium] Font::drawComplexText can not draw a segment of text run
        https://bugs.webkit.org/show_bug.cgi?id=72095

        Reviewed by Adam Barth.

        drawComplexText() should respect the 'from' and 'to' arguments.
        Drawing the whole text run may result in text overlapping.

        Test: platform/chromium-linux/fast/text/international/draw-complex-text-from-to.html

        * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
        (WebCore::ComplexTextController::glyphsForRange):
        * platform/graphics/chromium/ComplexTextControllerLinux.h:
        * platform/graphics/chromium/FontLinux.cpp:
        (WebCore::Font::drawComplexText):

2011-11-17  Adam Barth  <abarth@webkit.org>

        Unique SecurityOrigins shouldn't remember their old schemes and hosts
        https://bugs.webkit.org/show_bug.cgi?id=71745

        Reviewed by Darin Adler.

        This is the final step in this series of patches.

        This patch removes the forceUnique flag from SecurityOrigin::create.
        Now, we create unique origins without passing in the document's URL,
        preventing information from the document's URL from leaking into the
        unique origin.

        * WebCore.exp.in:
        * dom/Document.cpp:
        (WebCore::Document::setIsViewSource):
        (WebCore::Document::initSecurityContext):
        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::getOriginsWithCache):
            - Update this callsite to use createFromString, which does exactly
              what this code is doing manually.
        * page/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::create):
        * page/SecurityOrigin.h:

2011-11-17  Vincent Scheib  <scheib@chromium.org>

        Pointer Lock: Page Settings unecessary
        https://bugs.webkit.org/show_bug.cgi?id=72662

        Reviewed by Darin Fisher.

        No new tests.

        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h:

2011-11-17  James Robinson  <jamesr@chromium.org>

        [chromium] Disable incremental uploading in threaded compositing path
        https://bugs.webkit.org/show_bug.cgi?id=72669

        Reviewed by Kenneth Russell.

        Since we don't currently support atomic incremental uploads, incremental uploads in the threaded path result in
        very strange-looking texture popping as tiles come in on pages that require more than 16 tile uploads per frame.
        This disables that logic (by setting the upload limit per frame to 99999) until we handle the incremental
        updates in an atomic fashion.

        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::scheduledActionUpdateMoreResources):

2011-11-06  Nat Duca  <nduca@chromium.org>

        [chromium] Fix handling of setNeedsCommit and setNeedsAnimate in threaded mode
        https://bugs.webkit.org/show_bug.cgi?id=71638

        Reviewed by James Robinson.

        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::CCThreadProxy):
        (WebCore::CCThreadProxy::setNeedsAnimate):
        (WebCore::CCThreadProxy::beginFrameAndCommit):

2011-11-17  Adam Barth  <abarth@webkit.org>

        Remove bogus ASSERT.

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

2011-11-17  Peter Kasting  <pkasting@google.com>

        Unreviewed, rolling out r100698.
        http://trac.webkit.org/changeset/100698
        https://bugs.webkit.org/show_bug.cgi?id=72239

        This change wasn't the problem either.

        * dom/Document.cpp:
        (WebCore::Document::implicitClose):

2011-11-17  David Reveman  <reveman@chromium.org>

        [Chromium] Calls to paintContentsIfDirty() and updateCompositorResources() should be balanced.
        https://bugs.webkit.org/show_bug.cgi?id=72630

        Reviewed by James Robinson.

        Layer property changes during paintContent() can leave the layer
        in an invalid state as paintContentsIfDirty() has been called
        without a matching updateCompositorResources() call. Removing
        conditionals around these calls ensure they are balanced.

        This patch is tested by the following unit test:
        - CCLayerTreeHostTestOpacityChange.runMultiThread

        * platform/graphics/chromium/ContentLayerChromium.cpp:
        (WebCore::ContentLayerChromium::paintContentsIfDirty):
        * platform/graphics/chromium/VideoLayerChromium.cpp:
        (WebCore::VideoLayerChromium::updateCompositorResources):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
        (WebCore::CCLayerTreeHost::paintLayerContents):
        (WebCore::CCLayerTreeHost::updateCompositorResources):
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:

2011-11-17  Peter Kasting  <pkasting@google.com>

        Unreviewed, rolling out r100584.
        http://trac.webkit.org/changeset/100584
        https://bugs.webkit.org/show_bug.cgi?id=72239

        See if this change caused Linux dbg crashes.

        * dom/Document.cpp:
        (WebCore::Document::implicitClose):

2011-11-17  Adam Barth  <abarth@webkit.org>

        Remove cargo-cult copy/pasting of ScriptExecutionContext namespace
        https://bugs.webkit.org/show_bug.cgi?id=72676

        Reviewed by Eric Seidel.

        It looks like this cargo-cult started with initDNSPrefetch being hacked
        into setSecurityOrigin.  I've removed this hack along with the
        copy/paste code.

        * dom/DOMImplementation.cpp:
        * dom/Document.cpp:
        (WebCore::Document::setIsViewSource):
        (WebCore::Document::open):
        (WebCore::Document::initSecurityContext):
        (WebCore::Document::setSecurityOrigin):
        * dom/Document.h:
        * xml/XSLTProcessor.cpp:

2011-11-17  Peter Kasting  <pkasting@google.com>

        Unreviewed, rolling out r100676.
        http://trac.webkit.org/changeset/100676
        https://bugs.webkit.org/show_bug.cgi?id=72393

        Looks like r100572 was not the source of the crashes.

        * bindings/js/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::canSetScriptSource):
        * bindings/js/ScriptDebugServer.h:
        * bindings/v8/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::stepOutOfFunction):
        (WebCore::ScriptDebugServer::canSetScriptSource):
        * bindings/v8/ScriptDebugServer.h:
        * inspector/CodeGeneratorInspector.py:
        * inspector/Inspector.json:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::getCapabilities):
        * inspector/InspectorDebuggerAgent.h:
        * inspector/front-end/DebuggerModel.js:
        (WebInspector.DebuggerModel):
        (WebInspector.DebuggerModel.prototype.enableDebugger):
        (WebInspector.DebuggerModel.prototype.disableDebugger):
        (WebInspector.DebuggerModel.prototype.canSetScriptSource):
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype.canEditScriptSource):
        * inspector/front-end/Settings.js:

2011-11-17  Konstantin Scheglov  <scheglov@google.com>

        Absolute child is not repainted when parent opacity changes
        https://bugs.webkit.org/show_bug.cgi?id=68777

        Reviewed by Simon Fraser.

        First time when we change opacity for parent we don't have layer, so
        diff=StyleDifferenceRepaint is used instead of diff=StyleDifferenceRepaintLayer.
        Layer is created later, in styleDidChange().
        So, when we recalculate later diff, we now check for diff=StyleDifferenceRepaintLayer and
        performs repaintIncludingDescendants().

        Test: fast/layers/layer-absolute-parent-opacity.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::setStyle): Call repaintIncludingDescendants() instead of repaint().
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff): Add ContextSensitivePropertyOpacity when change opacity.

2011-11-17  Nate Chapin  <japhet@chromium.org>

        r100311 dropped a RefPtr that is very
        helpful. Add it back.
        https://bugs.webkit.org/show_bug.cgi?id=72647

        Reviewed by Adam Barth.

        http/tests/misc/xslt-bad-import.html should
        stop crashing in full chromium builds.

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::loadDone):

2011-11-17  Adam Barth  <abarth@webkit.org>

        Refactor SecurityOrigin::create to be easier to understand
        https://bugs.webkit.org/show_bug.cgi?id=72342

        Reviewed by Eric Seidel.

        Over time, the SecurityOrigin constructor has grown a bit out of
        control.  This patch attempts to separate the different concerns into
        free functions.  The general approach is to put more logic in the
        "create" function and introduce a simple constructor for unique
        origins.

        This patch shouldn't change any behavior.

        * page/SecurityOrigin.cpp:
        (WebCore::schemeRequiresAuthority):
        (WebCore::shouldUseInnerURL):
        (WebCore::extractInnerURL):
        (WebCore::isDirectory):
        (WebCore::shouldTreatAsUniqueOrigin):
        (WebCore::SecurityOrigin::SecurityOrigin):
        (WebCore::SecurityOrigin::create):
        (WebCore::SecurityOrigin::createUnique):
        (WebCore::SecurityOrigin::databaseIdentifier):
        * page/SecurityOrigin.h:

2011-11-17  Shawn Singh  <shawnsingh@chromium.org>

        [chromium] Fix minor style nit in CCLayerImpl
        https://bugs.webkit.org/show_bug.cgi?id=71070

        Reviewed by James Robinson.

        Fixes if-statements on several settors to follow WebKit
        conventions. Existing CCLayerImplTest unit tests already cover
        this change.

        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
        (WebCore::CCLayerImpl::setBounds):
        (WebCore::CCLayerImpl::setMaskLayer):
        (WebCore::CCLayerImpl::setReplicaLayer):
        (WebCore::CCLayerImpl::setDrawsContent):
        (WebCore::CCLayerImpl::setAnchorPoint):
        (WebCore::CCLayerImpl::setAnchorPointZ):
        (WebCore::CCLayerImpl::setBackgroundColor):
        (WebCore::CCLayerImpl::setMasksToBounds):
        (WebCore::CCLayerImpl::setOpaque):
        (WebCore::CCLayerImpl::setOpacity):
        (WebCore::CCLayerImpl::setPosition):
        (WebCore::CCLayerImpl::setPreserves3D):
        (WebCore::CCLayerImpl::setZoomAnimatorTransform):
        (WebCore::CCLayerImpl::setSublayerTransform):
        (WebCore::CCLayerImpl::setTransform):
        (WebCore::CCLayerImpl::setDebugBorderColor):
        (WebCore::CCLayerImpl::setDebugBorderWidth):
        (WebCore::CCLayerImpl::setContentBounds):
        (WebCore::CCLayerImpl::setScrollPosition):
        (WebCore::CCLayerImpl::setScrollDelta):
        (WebCore::CCLayerImpl::setScaleDelta):
        (WebCore::CCLayerImpl::setDoubleSided):

2011-11-17  Michael Saboff  <msaboff@apple.com>

        Leaks seen in MemoryPressureHandlerMac.mm on Leaks bot
        https://bugs.webkit.org/show_bug.cgi?id=72416

        Added code to release _cache_event_source and _timer_event_source
        after they are canceled.  Also added defensive code to
        clean up the _timer_event_source in uninstall().

        Reviewed by Geoffrey Garen.

        No new tests, fixing leaks caught by leaks bot.

        * platform/mac/MemoryPressureHandlerMac.mm:
        (WebCore::MemoryPressureHandler::uninstall):
        (WebCore::MemoryPressureHandler::holdOff):

2011-11-17  Ken Buchanan <kenrb@chromium.org>

        Crash from positioned generated content under run-in
        https://bugs.webkit.org/show_bug.cgi?id=70456

        Reviewed by David Hyatt.

        Modified handling of run-in children to clear generated children
        before removing the parent from the render tree. This caused problems
        with absolute positioned children being not properly removed from the
        positioned object list of the RenderView.

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

2011-11-17  Peter Kasting  <pkasting@google.com>

        Unreviewed, rolling out r100572.
        https://bugs.webkit.org/show_bug.cgi?id=72393
        https://bugs.webkit.org/show_bug.cgi?id=72651

        May have caused seg faults on Chromium Linux dbg bot.

        * bindings/js/ScriptDebugServer.cpp:
        * bindings/js/ScriptDebugServer.h:
        * bindings/v8/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::stepOutOfFunction):
        * bindings/v8/ScriptDebugServer.h:
        * inspector/CodeGeneratorInspector.py:
        * inspector/Inspector.json:
        * inspector/InspectorDebuggerAgent.cpp:
        * inspector/InspectorDebuggerAgent.h:
        * inspector/front-end/DebuggerModel.js:
        (WebInspector.DebuggerModel):
        (WebInspector.DebuggerModel.prototype.enableDebugger):
        (WebInspector.DebuggerModel.prototype.disableDebugger):
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype.canEditScriptSource):
        * inspector/front-end/Settings.js:

2011-11-17  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r100652.
        http://trac.webkit.org/changeset/100652
        https://bugs.webkit.org/show_bug.cgi?id=72648

        "Caused outline-offset-min-assert.html to assert on debug
        builds" (Requested by mwenge2 on #webkit).

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::paintOutline):

2011-11-17  Mark Rowe  <mrowe@apple.com>

        <http://webkit.org/b/72637> Stop performing runtime version checks on OS versions where the check can never possibly fail.

        Reviewed by Simon Fraser.

        * platform/graphics/cg/ImageBufferDataCG.cpp:
        (WebCore::haveVImageRoundingErrorFix): When not targeting Snow Leopard we always have the fix.

2011-11-17  Chris Fleizach  <cfleizach@apple.com>

        AX: The scrollArea is not correctly returning the scrollbars
        https://bugs.webkit.org/show_bug.cgi?id=70247

        Reviewed by Beth Dakin.

        A few bugs that were preventing this from working.
           1) In accessibilityAttributeValue: when an element did not have a renderer() we were returning earlier than we should have
           2) We were not updating and clearing the scrollbars correctly when children were cleared or when asked for.

        Test: platform/mac/accessibility/scrollbars.html

        * accessibility/AccessibilityScrollView.cpp:
        (WebCore::AccessibilityScrollView::scrollBar):
        (WebCore::AccessibilityScrollView::clearChildren):
        * accessibility/AccessibilityScrollView.h:
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

2011-11-14  Adam Barth  <abarth@webkit.org>

        Unique origins shouldn't remember their scheme, host, or port
        https://bugs.webkit.org/show_bug.cgi?id=72308

        Reviewed by Eric Seidel.

        This patch contains the bulk (all?) of the behavior differences in this
        patch series.  Unique origins shouldn't remember their schemes.  Doing
        so causes some privileges (e.g., local access) to leak into unique
        origins.

        * page/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::SecurityOrigin):
            - Explicitly clear out the protocol, host, and port for unique
              origins.  A future patch will refactor all this code to be more
              elegant.
        * platform/SchemeRegistry.cpp:
        (WebCore::schemesWithUniqueOrigins):
            - Merge "about" and "javascript" in with the general case now that
              we don't have a separate notion of an empty origin.

2011-11-17  Chris Fleizach  <cfleizach@apple.com>

        AX: cleanup style and naming and code in accessibility search mechanism
        https://bugs.webkit.org/show_bug.cgi?id=72570

        Reviewed by Beth Dakin.

        Cleanup the naming and code style within the element searching mechanism.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatch):
        (WebCore::AccessibilityObject::isAccessibilityTextSearchMatch):
        (WebCore::AccessibilityObject::firstAccessibleObjectFromNode):
        (WebCore::AccessibilityObject::findMatchingObjects):
        * accessibility/AccessibilityObject.h:
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

2011-11-17  Julien Chaffraix  <jchaffraix@webkit.org>

        CSS table with 100% width can overflow their containing block
        https://bugs.webkit.org/show_bug.cgi?id=72180

        Reviewed by David Hyatt.

        Tests: fast/table/table-in-table-percent-width-collapsing-border-quirks-mode.html
               fast/table/table-in-table-percent-width-collapsing-border.html
               fast/table/table-in-table-percent-width-quirks-mode.html
               fast/table/table-in-table-percent-width.html

        After r97555, we would include the borders in a CSS table's logical width even if the 'width'
        property was a percent. This does not match what Firefox and IE are doing. Thus don't apply
        this behavior to percent 'width'.

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::computeLogicalWidth):

2011-11-17  Adrienne Walker  <enne@google.com>

        [chromium] Implicitly skip render surfaces that won't be drawn
        https://bugs.webkit.org/show_bug.cgi?id=71038

        Rather than having redundant checks in three places for how to walk
        through a render surface list, instead don't add render surfaces that
        don't need to get rendered to the render surface list.

        Reviewed by James Robinson.

        Covered by existing layout tests and unit tests.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::drawLayersOntoRenderSurfaces):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::paintLayerContents):
        (WebCore::CCLayerTreeHost::updateCompositorResources):
        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
        (WebCore::calculateDrawTransformsAndVisibilityInternal):

2011-11-17  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Layer violation: qt_runtime.cpp accesses QWebElement and QTDRTNode
        https://bugs.webkit.org/show_bug.cgi?id=72595

        Reviewed by Noam Rosenthal.

        Removed QWebElement and QtDRTNode usage that reached from WebCore into
        WebKit/qt and replaced it with the ability to register custom JSValue
        conversion functions. The old code has been moved to WebKit/qt.

        * bridge/qt/qt_instance.cpp:
        (JSC::Bindings::QtInstance::QtInstance): Remove unnecessary meta type registration
        (now done in QtWebElementRuntime::initialize in WebKit/qt).
        * bridge/qt/qt_runtime.cpp:
        (JSC::Bindings::registerCustomType):
        (JSC::Bindings::convertValueToQVariant):
        (JSC::Bindings::convertQVariantToValue):
        * bridge/qt/qt_runtime.h:

2011-11-17  Fady Samuel  <fsamuel@chromium.org>

        Pass Aspect Ratio to RenderStyle
        https://bugs.webkit.org/show_bug.cgi?id=72350

        Reviewed by Ojan Vafai.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyAspectRatio::applyInheritValue):
        (WebCore::ApplyPropertyAspectRatio::applyInitialValue):
        (WebCore::ApplyPropertyAspectRatio::applyValue):
        (WebCore::ApplyPropertyAspectRatio::createHandler):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSValue.h:
        (WebCore::CSSValue::isAspectRatioValue):
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::hasAspectRatio):
        (WebCore::InheritedFlags::aspectRatio):
        (WebCore::InheritedFlags::aspectRatioDenominator):
        (WebCore::InheritedFlags::aspectRatioNumerator):
        (WebCore::InheritedFlags::setHasAspectRatio):
        (WebCore::InheritedFlags::setAspectRatioDenominator):
        (WebCore::InheritedFlags::setAspectRatioNumerator):
        (WebCore::InheritedFlags::initialHasAspectRatio):
        (WebCore::InheritedFlags::initialAspectRatioDenominator):
        (WebCore::InheritedFlags::initialAspectRatioNumerator):
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:

2011-11-09  Robert Hogan  <robert@webkit.org>

        CSS 2.1 failure: outline-color-* tests fail
        https://bugs.webkit.org/show_bug.cgi?id=71931

        Reviewed by Julien Chaffraix.

        WebKit wasn't displaying the top block in these tests because it did not paint the outline
        of divs with zero size.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::paintOutline): paint the outline even when the block has zero size

2011-11-17  Sergio Villar Senin  <svillar@igalia.com>

        [GTK] plugins/get-url-notify-with-url-that-fails-to-load.html on bots after r100466
        https://bugs.webkit.org/show_bug.cgi?id=72613

        Reviewed by Martin Robinson.

        Do not assume that a SoupRequest always exists, it is not
        generated for example when the provided URL is
        invalid. ResourceHandle::platformSetDefersLoading was crashing
        because of that.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandle::platformSetDefersLoading):

2011-11-17  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Remove onlineDetectionEnabled from Preferences
        https://bugs.webkit.org/show_bug.cgi?id=72617

        Reviewed by Pavel Feldman.

        * inspector/front-end/ApplicationCacheItemsView.js:
        (WebInspector.ApplicationCacheItemsView):
        (WebInspector.ApplicationCacheItemsView.prototype.get statusBarItems):
        * inspector/front-end/Settings.js:

2011-11-17  Ken Buchanan  <kenrb@chromium.org>

        Crash from nested tables with generated content
        https://bugs.webkit.org/show_bug.cgi?id=68811

        Reviewed by David Hyatt.

        When adding a child to a table that has generated content, this change
        ensures that we leave alone any generated content renderers that belong
        to descendants in the tree. They don't need to be touched, and doing so
        can create confusion about who the content belongs to.

        This patch also simplifies some existing code for finding pseudoelement
        renderers. 

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::addChild):
        (WebCore::RenderObject::isBeforeAfterContentGeneratedByAncestor): Added
        * rendering/RenderObject.h:
        (WebCore::RenderObject::findAfterContentRenderer): Deleted
        (WebCore::RenderObject::findBeforeContentRenderer): Deleted
        * rendering/RenderObjectChildList.cpp:
        (WebCore::RenderObjectChildList::beforePseudoElementRenderer):
        (WebCore::RenderObjectChildList::afterPseudoElementRenderer):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::addChild):
        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::addChild):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::addChild):

2011-11-17  Patrick Gansterer  <paroga@webkit.org>

        Unreviewed WinCE build fix for r94119.

        MSVC throws multiply defined symbols linker error when using local class in inline function.

        * bindings/js/JSDictionary.h:
        (WebCore::JSDictionary::IdentitySetter::identitySetter):
        (WebCore::JSDictionary::tryGetProperty):

2011-11-17  Eric Carlson  <eric.carlson@apple.com>

        TextTrackList not sorted correctly
        https://bugs.webkit.org/show_bug.cgi?id=72545

        Reviewed by Darin Adler.

        Test: media/track/track-texttracks.html

        * WebCore.xcodeproj/project.pbxproj: Add TextTrack.h to WebCore private headers because 
            it is included by HTMLMediaElement.h.
        * html/LoadableTextTrack.cpp:
        (WebCore::LoadableTextTrack::LoadableTextTrack): Pass track type to base class constructor.
        (WebCore::LoadableTextTrack::trackElementIndex): New, return the <track> element's tree order
            for sorting.
        * html/LoadableTextTrack.h:

        * html/TextTrack.cpp:
        (WebCore::TextTrack::TextTrack): Set track type.
        * html/TextTrack.h:
        (WebCore::TextTrack::create): Ditto.
        (WebCore::TextTrack::trackType): Ditto.

        * html/track/TextTrackList.cpp:
        (TextTrackList::length): Update to deal with two TextTrack vectors.
        (TextTrackList::item): Ditto.
        (TextTrackList::append): Ditto.
        (TextTrackList::remove): Ditto
        * html/track/TextTrackList.h: Store the two types of TextTracks in separate Vectors to make
            it simpler to keep them in the correct order.

2011-11-17  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Layer violation: WebCore::dnsPrefetch uses QWebSettings::globalSettings()
        https://bugs.webkit.org/show_bug.cgi?id=72596

        Reviewed by Kenneth Rohde Christiansen.

        We don't need to use QWebSettings here, because we now propagate the DNS prefetch
        setting to WebCore::Settings and the rest of WebCore checks the setting before calling
        WebCore::prefetchDNS.

        * platform/network/qt/DnsPrefetchHelper.cpp:
        (WebCore::prefetchDNS): Removed the use of QWebSettings.
        * platform/network/qt/DnsPrefetchHelper.h: Remove offending qwebsettings.h inclusion.

2011-11-17  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Layer violation: Image::loadPlatformResource uses QWebSettings::webGraphic
        https://bugs.webkit.org/show_bug.cgi?id=72594

        Reviewed by Kenneth Rohde Christiansen.

        Move the cache for the resource pixmaps into ImageQt.cpp.

        * platform/graphics/Image.h: Add Qt specific setter for resource pixmaps.
        * platform/graphics/qt/ImageQt.cpp: Moved resource pixmap hash from qwebsettings.
        (earlyClearGraphics):
        (graphics):
        (loadResourcePixmap):
        (WebCore::Image::setPlatformResource):

2011-11-17  Zeno Albisser  <zeno@webkit.org>

        [Qt][WK2] Touch/Mouse events are delivered with wrong coordinates.
        https://bugs.webkit.org/show_bug.cgi?id=72604

        When using the QtViewportInterationEngine for zooming/panning,
        no additional scroll offset should be applied to input events
        by the ScrollView.

        This patch is based on work by Andreas Kling.

        Reviewed by Kenneth Rohde Christiansen.

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::windowToContents):
        (WebCore::ScrollView::contentsToWindow):

2011-11-17  Ben Murdoch  <benm@google.com>

        Unreviewed build fix.

        Fix the Windows builds by adding WorkerEventQueue.cpp|h to the
        vcproj. Build break was introduced in
        https://bugs.webkit.org/show_bug.cgi?id=72528

        * WebCore.vcproj/WebCore.vcproj: Add missing files.

2011-11-17  Mihnea Ovidenie  <mihnea@adobe.com>

        CSS Exclusions: parse the wrap-margin and wrap-padding properties
        https://bugs.webkit.org/show_bug.cgi?id=71900

        Reviewed by Dean Jackson.

        Tests: fast/exclusions/wrap-margin-parsing.html
               fast/exclusions/wrap-padding-parsing.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::isSimpleLengthPropertyID):
        (WebCore::CSSParser::parseValue):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff):
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::wrapPadding):
        (WebCore::InheritedFlags::setWrapPadding):
        (WebCore::InheritedFlags::initialWrapPadding):
        (WebCore::InheritedFlags::wrapMargin):
        (WebCore::InheritedFlags::setWrapMargin):
        (WebCore::InheritedFlags::initialWrapMargin):
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:

2011-11-17  Kenichi Ishibashi  <bashi@chromium.org>

        [chromium] don't call fontconfig twice in complex text path
        https://bugs.webkit.org/show_bug.cgi?id=38701

        Adds a new API for getting font family. For now, FontCacheLinux calls the new API, but don't use additional properties for compatibility. The old API will be removed when Chromium is ready to use new API.

        Reviewed by Tony Chang.

        No new tests. No behavior changes for now.

        * platform/chromium/PlatformSupport.h: Added FontFamily struct and changed the declaration of getFontFamilyForCharacters().
        * platform/graphics/chromium/FontCacheLinux.cpp:
        (WebCore::FontCache::getFontDataForCharacters): Uses new PlatformSupport::getFontFamilyForCharacters().
        * platform/graphics/chromium/FontPlatformDataLinux.h:
        (WebCore::FontPlatformData::setFakeBold): Added.
        (WebCore::FontPlatformData::setFakeItalic): Added.

2011-11-17  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Consider parent AtkObject in webkit_accessible_get_parent(), if already set
        https://bugs.webkit.org/show_bug.cgi?id=72525

        Reviewed by Xan Lopez.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (webkit_accessible_get_parent): Call to the implementation of
        atk_object_get_parent in AtkObject class to check whether a parent
        AtkObject has been previously set, before trying to find one.

2011-11-17  Pavel Feldman  <pfeldman@google.com>

        Not reviewed: fix IE user agents strings in the inspector.

        * inspector/front-end/SettingsScreen.js:
        (WebInspector.SettingsScreen.prototype._createUserAgentSelectRowElement.get const):

2011-11-16  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Make use-fixed-layout work reliable
        https://bugs.webkit.org/show_bug.cgi?id=72511

        Reviewed by Simon Hausmann.

        Always send a viewport update per page load as we depend on that,
        to reset all viewport handling before doing layout.

        * page/Page.cpp:
        (WebCore::Page::updateViewportArguments):

2011-11-16  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: inspector follows javascript: hrefs as relative
        https://bugs.webkit.org/show_bug.cgi?id=72373

        javascript: hrefs should never be linkified for security.

        Reviewed by Yury Semikhatsky.

        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeElement.prototype._buildAttributeDOM):
        * inspector/front-end/ResourceUtils.js:
        (WebInspector.completeURL):

2011-11-17  Nikolas Zimmermann  <nzimmermann@rim.com>

        Not reviewed. Fix 32bit builds.

        * platform/ClockGeneric.cpp:
        (ClockGeneric::now): Use narrowPrecisionToFloat.
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::build): Use it correctly.

2011-11-17  Dominic Mazzoni  <dmazzoni@google.com>

        Accessibility: Chromium requires an AX notification when an iframe loads.
        https://bugs.webkit.org/show_bug.cgi?id=72239

        When a document finishes loading, we were sending an AXLoadComplete if it
        was the top document. Now, if it's a document in an iframe, send an
        AXLayoutComplete on the iframe.

        Reviewed by Chris Fleizach.

        Test: accessibility/loading-iframe-sends-notification.html

        * dom/Document.cpp:
        (WebCore::Document::implicitClose):

2011-11-16  Mark Rowe  <mrowe@apple.com>

        <http://webkit.org/b/72574> Remove unnecessary use of CarbonCore APIs from Audio code

        Reviewed by Andy Estes.

        * platform/audio/mac/AudioDestinationMac.cpp:
        (WebCore::AudioDestinationMac::AudioDestinationMac): Switch from using the Carbon Component Manager
        to using AudioUnit's own component interface.
        (WebCore::AudioDestinationMac::~AudioDestinationMac): Ditto.
        * platform/audio/mac/AudioFileReaderMac.cpp:
        (WebCore::AudioFileReader::AudioFileReader): Remove an unncessary trip through the Carbon File Manager
        when converting a char* path to a CFURLRef representing the same.

2011-11-17  Adam Barth  <abarth@webkit.org>

        CSP report-only mode doesn't work from an HTTP header
        https://bugs.webkit.org/show_bug.cgi?id=71958

        Reviewed by Eric Seidel.

        "It's tested or it's broken." -- Adam Leventhal

        Test: http/tests/security/contentSecurityPolicy/report-only-from-header.php

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::didBeginDocument):

2011-11-15  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: introduce Debugger domain capabilities concept.
        https://bugs.webkit.org/show_bug.cgi?id=72393

        Many of the Preferences that we have in Settings.js and override in DevTools.js
        are really not preferences, but capabilities. Protocol clients should have a way
        of figuring out whether some capability is present before using it.

        Reviewed by Yury Semikhatsky.

        * bindings/js/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::canSetScriptSource):
        * bindings/js/ScriptDebugServer.h:
        * bindings/v8/ScriptDebugServer.cpp:
        (WebCore::ScriptDebugServer::canSetScriptSource):
        * bindings/v8/ScriptDebugServer.h:
        * inspector/CodeGeneratorInspector.py:
        * inspector/Inspector.json:
        * inspector/InspectorDebuggerAgent.cpp:
        (WebCore::InspectorDebuggerAgent::getCapabilities):
        * inspector/InspectorDebuggerAgent.h:
        * inspector/front-end/DebuggerModel.js:
        (WebInspector.DebuggerModel):
        (WebInspector.DebuggerModel.prototype.enableDebugger):
        (WebInspector.DebuggerModel.prototype.canSetScriptSource):
        * inspector/front-end/DebuggerPresentationModel.js:
        (WebInspector.DebuggerPresentationModel.prototype.canEditScriptSource):
        * inspector/front-end/Settings.js:

2011-11-17  Mihnea Ovidenie  <mihnea@adobe.com>

        CSS exclusions: parse the wrap-flow and wrap-through properties
        https://bugs.webkit.org/show_bug.cgi?id=71904

        Reviewed by Dean Jackson.

        Tests: fast/exclusions/wrap-flow-parsing.html
               fast/exclusions/wrap-through-parsing.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator WrapFlow):
        (WebCore::CSSPrimitiveValue::operator WrapThrough):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSValueKeywords.in:
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::diff):
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::wrapFlow):
        (WebCore::InheritedFlags::wrapThrough):
        (WebCore::InheritedFlags::setWrapFlow):
        (WebCore::InheritedFlags::setWrapThrough):
        (WebCore::InheritedFlags::initialWrapFlow):
        (WebCore::InheritedFlags::initialWrapThrough):
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:

2011-11-16  Dean Jackson  <dino@apple.com>

        Implement filter function shorthands
        https://bugs.webkit.org/show_bug.cgi?id=68475

        Reviewed by Simon Fraser.

        Implement the shorthand functions for filter effects.
        This includes grayscale, sepia, invert, hue-rotate, saturate,
        opacity, gamma, drop-shadow and blur. At the moment sharpen
        and url are not supported.

        CSSParser needed to be updated because it was mistakenly
        clamping saturation values to [0,1]. Any positive number
        is allowed so you can produce super-saturated images.

        The biggest change was the API to FilterEffectRenderer. It now
        builds a list of effects and applies the filter itself.

        Note that the drop-shadow and blur operations don't yet
        provide accurate results because they produce an output image
        that is larger than the input. See
        https://bugs.webkit.org/show_bug.cgi?id=71929
        https://bugs.webkit.org/show_bug.cgi?id=71930

        While I was there, I fixed a small style issue in
        CustomFilterOperation.

        Tests: css3/filters/effect-blur.html
               css3/filters/effect-combined.html
               css3/filters/effect-drop-shadow.html
               css3/filters/effect-gamma.html
               css3/filters/effect-grayscale.html
               css3/filters/effect-hue-rotate.html
               css3/filters/effect-invert.html
               css3/filters/effect-opacity.html
               css3/filters/effect-saturate.html
               css3/filters/effect-sepia.html

        * WebCore.xcodeproj/project.pbxproj: Add StyleShader.h to
        the project (missing from earlier commit).
        * css/CSSParser.cpp:
        (WebCore::CSSParser::isValidFilterArgument): Don't clamp
        saturate to [0,1]
        * platform/graphics/filters/CustomFilterOperation.h:
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::endMatrixRow):
        (WebCore::lastMatrixRow):
        (WebCore::FilterEffectRenderer::FilterEffectRenderer):
        (WebCore::FilterEffectRenderer::inputContext):
        (WebCore::FilterEffectRenderer::build):
        (WebCore::FilterEffectRenderer::prepare):
        (WebCore::FilterEffectRenderer::apply):
        * rendering/FilterEffectRenderer.h:
        (WebCore::FilterEffectRenderer::setSourceImageRect):
        (WebCore::FilterEffectRenderer::output):
        (WebCore::FilterEffectRenderer::setMaxEffectRects):
        (WebCore::FilterEffectRenderer::lastEffect):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::updateOrRemoveFilterEffect):
        (WebCore::RenderLayer::updateFilterBackingStore):

2011-11-16  Kentaro Hara  <haraken@chromium.org>

        Remove all custom constructors of Events from JSC
        https://bugs.webkit.org/show_bug.cgi?id=72577

        Reviewed by Adam Barth.

        - Makes CodeGeneratorJS.pm generate Event constructors
        if [ConstructorTemplate=Event] IDL is specified.
        - Removes EventConstructors.h and JSEventConstructors.cpp.
        - Replaces all JSC custom constructors of Events
        with the generated code by [ConstructorTemplate=Event] IDL.

        Tests: fast/events/constructors/before-load-event-constructor.html
               fast/events/constructors/close-event-constructor.html
               fast/events/constructors/custom-event-constructor.html
               fast/events/constructors/error-event-constructor.html
               fast/events/constructors/event-constructors.html
               fast/events/constructors/hash-change-event-constructor.html
               fast/events/constructors/message-event-constructor.html
               fast/events/constructors/overflow-event-constructor.html
               fast/events/constructors/page-transition-event-constructor.html
               fast/events/constructors/pop-state-event-constructor.html
               fast/events/constructors/progress-event-constructor.html
               fast/events/constructors/track-event-constructor.html
               fast/events/constructors/webkit-animation-event-constructor.html
               fast/events/constructors/webkit-transition-event-constructor.html

        * bindings/generic/EventConstructors.h: Removed. This is what we wanted to do in this patch.
        * bindings/js/JSEventConstructors.cpp: Ditto.
        * GNUmakefile.list.am: Removed EventConstructors.h and JSEventConstructors.cpp.
        * Target.pri: Ditto.
        * UseJSC.cmake: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * bindings/js/JSBindingsAllInOne.cpp: Ditto.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader): Added JSDictionary.h.
        (GenerateConstructorDeclaration): Added a header for fillXXXXEventInit(...).
        (GenerateConstructorDefinition): Generates an Event constructor. The generated code is the same as the code that had been written in JSEventConstructors.cpp.
        (IsConstructable): Judges if a given interface is constructable.
        (IsConstructorTemplate): Judges if a given interface has a given template, e.g. judges if an interface has [ConstructorTemplate=Event].

        * bindings/scripts/test/TestEventConstructor.idl: Changed 'CustomConstructor=Event' to 'ConstructorTemplate=Event'. We should have changed this in r100108.
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp: Updated a run-bindings-tests result.
        (WebCore::JSTestEventConstructorConstructor::constructJSTestEventConstructor):
        (WebCore::fillTestEventConstructorInit):
        * bindings/scripts/test/JS/JSTestEventConstructor.h: Ditto.
        * bindings/scripts/test/V8/V8TestEventConstructor.cpp: Ditto.
        (WebCore::V8TestEventConstructor::constructorCallback):
        (WebCore::fillTestEventConstructorInit):
        * bindings/scripts/test/V8/V8TestEventConstructor.h: Ditto.

        * dom/BeforeLoadEvent.idl: In essence, replaced [JSCustomConstructor] IDL with [JSConstructorTemplate=Event] IDL.
        * dom/CustomEvent.idl: Ditto.
        * dom/ErrorEvent.idl: Ditto.
        * dom/Event.idl: Ditto.
        * dom/HashChangeEvent.idl: Ditto.
        * dom/MessageEvent.idl: Ditto.
        * dom/OverflowEvent.idl: Ditto.
        * dom/PageTransitionEvent.idl: Ditto.
        * dom/PopStateEvent.idl: Ditto.
        * dom/ProgressEvent.idl: Ditto.
        * dom/WebKitAnimationEvent.idl: Ditto.
        * dom/WebKitTransitionEvent.idl: Ditto.
        * html/track/TrackEvent.idl: Ditto.
        * websockets/CloseEvent.idl: Ditto.

2011-11-16  Dean Jackson  <dino@apple.com>

        Build fix for Apple WebKit due to r100560.
        When I removed the violating header file it lost the
        reference to Color.

        No review.

        * platform/graphics/filters/FilterOperation.h:

2011-11-16  Dean Jackson  <dino@apple.com>

        DropShadowFilterOperation violates platform isolation
        https://bugs.webkit.org/show_bug.cgi?id=72544

        Reviewed by Simon Fraser.

        Move ShadowData properties into the DropShadowFilterOperation
        to avoid depending on something outside platform.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::createFilterOperations):
        * platform/graphics/filters/FilterOperation.h:
        (WebCore::DropShadowFilterOperation::create):
        (WebCore::DropShadowFilterOperation::x):
        (WebCore::DropShadowFilterOperation::y):
        (WebCore::DropShadowFilterOperation::stdDeviation):
        (WebCore::DropShadowFilterOperation::color):
        (WebCore::DropShadowFilterOperation::operator==):
        (WebCore::DropShadowFilterOperation::DropShadowFilterOperation):

2011-11-16  Adam Bergkvist  <adam.bergkvist@ericsson.com>

        Use a simple page client for user consent in getUserMedia()
        https://bugs.webkit.org/show_bug.cgi?id=70897

        Reviewed by Adam Barth.

        This is one in a series of patches that update the MediaStream feature
        to use WebCore platform interfaces.

        Covered by existing tests.

        * GNUmakefile.list.am:
        * WebCore.gypi:
        * mediastream/MediaStreamClient.h: Removed.
        * mediastream/MediaStreamController.cpp: Removed.
        * mediastream/MediaStreamController.h: Removed.
        * mediastream/MediaStreamFrameController.cpp: Removed.
        * mediastream/MediaStreamFrameController.h: Removed.
        * mediastream/UserMediaClient.h: Added.
        (WebCore::UserMediaClient::~UserMediaClient):
        * mediastream/UserMediaRequest.cpp: Added.
        (WebCore::UserMediaRequest::create):
        (WebCore::UserMediaRequest::UserMediaRequest):
        (WebCore::UserMediaRequest::~UserMediaRequest):
        (WebCore::UserMediaRequest::start):
        (WebCore::UserMediaRequest::mediaStreamSourcesQueryCompleted):
        (WebCore::UserMediaRequest::succeed):
        (WebCore::UserMediaRequest::fail):
        (WebCore::UserMediaRequest::contextDestroyed):
        (WebCore::UserMediaRequest::parseOptions):
        * mediastream/UserMediaRequest.h: Added.
        (WebCore::UserMediaRequest::audio):
        (WebCore::UserMediaRequest::video):
        (WebCore::UserMediaRequest::cameraPreferenceUser):
        (WebCore::UserMediaRequest::cameraPreferenceEnvironment):
        (WebCore::UserMediaRequest::successCallback):
        (WebCore::UserMediaRequest::errorCallback):
        * page/CallbackTask.h: Removed.
        * page/Frame.cpp:
        (WebCore::Frame::Frame):
        (WebCore::Frame::~Frame):
        (WebCore::Frame::pageDestroyed):
        (WebCore::Frame::transferChildFrameToNewDocument):
        * page/Frame.h:
        * page/Navigator.cpp:
        (WebCore::Navigator::webkitGetUserMedia):
        * page/NavigatorUserMediaErrorCallback.h:
        * page/Page.cpp:
        (WebCore::Page::Page):
        (WebCore::Page::~Page):
        (WebCore::Page::PageClients::PageClients):
        * page/Page.h:
        (WebCore::Page::userMediaClient):

2011-11-16  David Grogan  <dgrogan@chromium.org>

        instantiate WorkerEventQueue in WorkerContext
        https://bugs.webkit.org/show_bug.cgi?id=72528

        Reviewed by David Levin.

        No new tests - nothing uses it yet.

        * workers/WorkerContext.cpp:
        (WebCore::WorkerContext::WorkerContext):
        Instantiate WorkerEventQueue in InitializerList

        * workers/WorkerEventQueue.h:
        Don't inherit from RefCounted, WorkerContext has an OwnPtr to it

2011-11-16  Kentaro Hara  <haraken@chromium.org>

        Unreviewed. Rebaselined run-bindings-tests results.

        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        (WebCore::JSTestEventConstructor::JSTestEventConstructor):
        (WebCore::JSTestEventConstructorOwner::finalize):
        * bindings/scripts/test/JS/JSTestEventConstructor.h:
        (WebCore::JSTestEventConstructor::impl):
        (WebCore::JSTestEventConstructor::releaseImpl):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::JSTestInterface::JSTestInterface):
        (WebCore::JSTestInterfaceOwner::finalize):
        * bindings/scripts/test/JS/JSTestInterface.h:
        (WebCore::JSTestInterface::impl):
        (WebCore::JSTestInterface::releaseImpl):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        (WebCore::JSTestMediaQueryListListener::JSTestMediaQueryListListener):
        (WebCore::JSTestMediaQueryListListenerOwner::finalize):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
        (WebCore::JSTestMediaQueryListListener::impl):
        (WebCore::JSTestMediaQueryListListener::releaseImpl):
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore::JSTestNamedConstructor::JSTestNamedConstructor):
        (WebCore::JSTestNamedConstructorOwner::finalize):
        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
        (WebCore::JSTestNamedConstructor::impl):
        (WebCore::JSTestNamedConstructor::releaseImpl):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::JSTestObj::JSTestObj):
        (WebCore::JSTestObjOwner::finalize):
        * bindings/scripts/test/JS/JSTestObj.h:
        (WebCore::JSTestObj::impl):
        (WebCore::JSTestObj::releaseImpl):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface):
        (WebCore::JSTestSerializedScriptValueInterfaceOwner::finalize):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
        (WebCore::JSTestSerializedScriptValueInterface::impl):
        (WebCore::JSTestSerializedScriptValueInterface::releaseImpl):

2011-11-16  Jay Civelli  <jcivelli@chromium.org>

        Make sure MHTML documents use the domain of the MHTML file.
        https://bugs.webkit.org/show_bug.cgi?id=72445

        Reviewed by Adam Barth.

        * dom/Document.h:
        (WebCore::Document::setBaseURL):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::receivedFirstData):

2011-11-16  Julien Chaffraix  <jchaffraix@webkit.org>

        Update supported display list after -webkit-grid and -webkit-inline-grid addition
        https://bugs.webkit.org/show_bug.cgi?id=72559

        Reviewed by Tony Chang.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue): Added the 2 new supported
        values (forgotten in the previous change).

2011-11-11  Adrienne Walker  <enne@google.com>

        [chromium] Expose mock scrollbars to window.internals
        https://bugs.webkit.org/show_bug.cgi?id=72195

        Reviewed by James Robinson.

        * testing/Internals.cpp:
        (WebCore::Internals::setMockScrollbarsEnabled):
        * testing/Internals.h:
        * testing/Internals.idl:

2011-11-16  Michael Nordman  <michaeln@google.com>

        ApplicationCache manifest should work with any MIME type.
        https://bugs.webkit.org/show_bug.cgi?id=72082

        Reviewed by Alexey Proskuryakov.

        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::didReceiveManifestResponse): Remove the test for a particular type.

2011-11-16  Daniel Sievers  <sievers@chromium.org>

        [Chromium] Avoid color mask operations for root layers
        https://bugs.webkit.org/show_bug.cgi?id=72452

        Instead of relying on the combination of clearing the surface and initializing
        the alpha channel to 1.0 followed by disabling alpha in the color mask when
        rendering the root layer tiles, add shaders to support writing out opaque layers
        (alpha channel values written as 1.0).

        Reviewed by James Robinson.

        No functional change made that requires new tests.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::drawLayersInternal):
        (WebCore::LayerRendererChromium::initializeSharedObjects):
        (WebCore::LayerRendererChromium::tilerProgramOpaque):
        (WebCore::LayerRendererChromium::tilerProgramOpaqueAA):
        (WebCore::LayerRendererChromium::tilerProgramSwizzleOpaque):
        (WebCore::LayerRendererChromium::tilerProgramSwizzleOpaqueAA):
        (WebCore::LayerRendererChromium::cleanupSharedObjects):
        * platform/graphics/chromium/LayerRendererChromium.h:
        * platform/graphics/chromium/ShaderChromium.cpp:
        (WebCore::FragmentTexOpaqueBinding::FragmentTexOpaqueBinding):
        (WebCore::FragmentTexOpaqueBinding::init):
        (WebCore::FragmentShaderRGBATexOpaque::getShaderString):
        (WebCore::FragmentShaderRGBATexSwizzleOpaque::getShaderString):
        (WebCore::FragmentTexClampOpaqueAABinding::FragmentTexClampOpaqueAABinding):
        (WebCore::FragmentTexClampOpaqueAABinding::init):
        (WebCore::FragmentShaderRGBATexClampOpaqueAA::getShaderString):
        (WebCore::FragmentShaderRGBATexClampSwizzleOpaqueAA::getShaderString):
        * platform/graphics/chromium/ShaderChromium.h:
        (WebCore::FragmentTexOpaqueBinding::alphaLocation):
        (WebCore::FragmentTexOpaqueBinding::samplerLocation):
        (WebCore::FragmentTexClampOpaqueAABinding::alphaLocation):
        (WebCore::FragmentTexClampOpaqueAABinding::samplerLocation):
        (WebCore::FragmentTexClampOpaqueAABinding::fragmentTexTransformLocation):
        (WebCore::FragmentTexClampOpaqueAABinding::edgeLocation):
        * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
        (WebCore::CCTiledLayerImpl::draw):
        * platform/graphics/chromium/cc/CCTiledLayerImpl.h:

2011-11-16  Tim Horton  <timothy_horton@apple.com>

        Implement CSS3 Images cross-fade() image function
        https://bugs.webkit.org/show_bug.cgi?id=52162
        <rdar://problem/10209254>

        Reviewed by Simon Fraser.

        Render -webkit-cross-fade. Only cross-fades entirely composed of images will render for now,
        cross-fades involving generated images are not yet implemented.

        Reorganize GeneratedImage to be the base class for GeneratorGeneratedImage and CrossfadeGeneratedImage.

        Add a pending state to CSSImageGeneratorValue, which is used to enable the pending-images loading
        mechanism for -webkit-cross-fade's sub-images. Rework the logic in CSSStyleSelector to support pending
        generated images.
        
        Support parsing fractional values for the cross-fade amount (for example, 0.5 = 50%). Clamp cross-fade
        amount to 0-1 range.

        Tests: css3/images/cross-fade-invalidation.html
               css3/images/cross-fade-simple.html
               css3/images/cross-fade-sizing.html
               css3/images/cross-fade-tiled.html

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSCanvasValue.h:
        (WebCore::CSSCanvasValue::isPending):
        (WebCore::CSSCanvasValue::loadSubimages):
        * css/CSSCrossfadeValue.cpp:
        (WebCore::CSSCrossfadeValue::isPending):
        (WebCore::CSSCrossfadeValue::loadSubimages):
        (WebCore::subimageIsPending):
        (WebCore::loadSubimage):
        (WebCore::cachedImageForCSSValue):
        (WebCore::CSSCrossfadeValue::image):
        (WebCore::CSSCrossfadeValue::crossfadeChanged):
        * css/CSSCrossfadeValue.h:
        (WebCore::CSSCrossfadeValue::create):
        (WebCore::CSSCrossfadeValue::~CSSCrossfadeValue):
        (WebCore::CSSCrossfadeValue::fixedSize):
        (WebCore::CSSCrossfadeValue::CSSCrossfadeValue):
        (WebCore::CSSCrossfadeValue::CrossfadeObserverProxy::CrossfadeObserverProxy):
        * css/CSSGradientValue.cpp:
        (WebCore::CSSGradientValue::image):
        * css/CSSGradientValue.h:
        (WebCore::CSSGradientValue::isPending):
        (WebCore::CSSGradientValue::loadSubimages):
        * css/CSSImageGeneratorValue.cpp:
        (WebCore::CSSImageGeneratorValue::generatedOrPendingImage):
        (WebCore::CSSImageGeneratorValue::generatedImage):
        (WebCore::CSSImageGeneratorValue::isPending):
        (WebCore::CSSImageGeneratorValue::loadSubimages):
        * css/CSSImageGeneratorValue.h:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseCrossfade):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::styleImage):
        (WebCore::CSSStyleSelector::generatedOrPendingFromValue):
        (WebCore::CSSStyleSelector::loadPendingImage):
        (WebCore::CSSStyleSelector::loadPendingImages):
        * css/CSSStyleSelector.h:
        * platform/graphics/BitmapImage.h:
        * platform/graphics/CrossfadeGeneratedImage.cpp: Added.
        (WebCore::CrossfadeGeneratedImage::CrossfadeGeneratedImage):
        (WebCore::CrossfadeGeneratedImage::~CrossfadeGeneratedImage):
        (WebCore::CrossfadeGeneratedImage::drawCrossfade):
        (WebCore::CrossfadeGeneratedImage::draw):
        (WebCore::CrossfadeGeneratedImage::drawPattern):
        (WebCore::CrossfadeGeneratedImage::imageChanged):
        * platform/graphics/CrossfadeGeneratedImage.h: Added.
        (WebCore::CrossfadeGeneratedImage::create):
        (WebCore::CrossfadeSubimageObserverProxy::CrossfadeSubimageObserverProxy):
        (WebCore::CrossfadeSubimageObserverProxy::setReady):
        * platform/graphics/GeneratedImage.h:
        (WebCore::GeneratedImage::GeneratedImage):
        * platform/graphics/GeneratorGeneratedImage.cpp: Renamed from Source/WebCore/platform/graphics/GeneratedImage.cpp.
        (WebCore::GeneratorGeneratedImage::draw):
        (WebCore::GeneratorGeneratedImage::drawPattern):
        (WebCore::GeneratedImage::computeIntrinsicDimensions):
        * platform/graphics/GeneratorGeneratedImage.h: Copied from Source/WebCore/platform/graphics/GeneratedImage.h.
        (WebCore::GeneratorGeneratedImage::create):
        (WebCore::GeneratorGeneratedImage::~GeneratorGeneratedImage):
        (WebCore::GeneratorGeneratedImage::GeneratorGeneratedImage):
        * platform/graphics/Image.h:
        * platform/graphics/ImageBuffer.h:
        * rendering/style/StylePendingImage.h:
        (WebCore::StylePendingImage::create):
        (WebCore::StylePendingImage::data):
        (WebCore::StylePendingImage::cssImageValue):
        (WebCore::StylePendingImage::cssImageGeneratorValue):
        (WebCore::StylePendingImage::StylePendingImage):


2011-11-16  Dan Bernstein  <mitz@apple.com>

        WebCore part of <rdar://problem/10262242> Add API for paginated display
        https://bugs.webkit.org/show_bug.cgi?id=72537

        Reviewed by Anders Carlsson.

        * WebCore.exp.in: Exported Page::pageCount().
        * page/Page.cpp:
        (WebCore::Page::pageCount): Added this getter.
        * page/Page.h:

2011-11-16  Shawn Singh  <shawnsingh@chromium.org>

        [chromium] Track property changes for render surfaces.
        https://bugs.webkit.org/show_bug.cgi?id=72521

        Reviewed by James Robinson.

        Created CCRenderSurfaceTest for testing.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::drawLayersOntoRenderSurfaces):
        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
        (WebCore::CCLayerImpl::resetPropertyChangedFlagForSubtree):
        * platform/graphics/chromium/cc/CCLayerImpl.h:
        * platform/graphics/chromium/cc/CCRenderSurface.cpp:
        (WebCore::CCRenderSurface::CCRenderSurface):
        (WebCore::CCRenderSurface::setClipRect):
        (WebCore::CCRenderSurface::setContentRect):
        (WebCore::CCRenderSurface::surfacePropertyChanged):
        * platform/graphics/chromium/cc/CCRenderSurface.h:
        (WebCore::CCRenderSurface::resetPropertyChangedFlag):

2011-11-16  Ben Wells  <benwells@chromium.org>

        Seaming on border corners with mixed colour alpha borders
        https://bugs.webkit.org/show_bug.cgi?id=70471

        Reviewed by Simon Fraser.

        Seaming is fixed by antialiasing mitred corners for edges that have alpha and are joining
        a side that is of a different color.

        Test: fast/borders/border-mixed-alpha.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::colorNeedsAntiAliasAtCorner):
        (WebCore::RenderBoxModelObject::paintOneBorderSide):

2011-11-16  Sam Weinig  <sam@webkit.org>

        JS wrappers of DOM objects should have no-op constructors
        https://bugs.webkit.org/show_bug.cgi?id=72556

        Reviewed by Geoffrey Garen.

        Stop using a RefPtr to hold DOM objects contained by JavaScript
        wrappers and instead use a raw pointer. We were already releasing
        the underlying object before the destructor ran (via the finalizer)
        so the default behavior of destroying the RefPtr is always unnecessary
        busy work. 

        * bindings/js/JSCSSValueCustom.cpp:
        (WebCore::JSCSSValueOwner::finalize):
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::JSNodeOwner::finalize):
        (WebCore::JSNode::visitChildren):
        Call releaseImpl() instead of clearImpl().

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        Stop storing m_impl in a RefPtr and instead use a raw pointer. Switch
        clearImpl() to releaseImpl(), which explicitly derefs the pointer and
        clear it.

        (GenerateImplementation):
        Use leakPtr() to explicitly adopt the PassRefPtr into the raw pointer.
        Change default finalize to call releaseImpl() instead of clearImpl().

2011-11-16  Michael Saboff  <msaboff@apple.com>

        Enable 8 Bit Strings in JavaScriptCore
        https://bugs.webkit.org/show_bug.cgi?id=71337

        This patch turns on 8 bit strings in StringImpl and enables
        their use in JavaScriptCore. Some of the changes are to
        turn on code that had been staged (Lexer.cpp, Identifier.cpp,
        SmallStrings.cpp and some of StringImpl.{h,cpp}).
        Other changes are minor fixes to make 8 bit strings work
        (UString.h, StringImpl::getData16SlowCase()).
        Changed StringBuffer to be a templated class based on character
        type.  This change riplled into WebCore code as well.

        Reviewed by Geoffrey Garen.

        No new tests - Changes in response to refactoring StringBuffer to
        be a template on character type.

        * css/CSSParser.cpp:
        (WebCore::quoteCSSString):
        * css/CSSPrimitiveValue.cpp:
        (WebCore::formatNumber):
        * dom/Document.cpp:
        (WebCore::canonicalizedTitle):
        * platform/Length.cpp:
        (WebCore::newCoordsArray):
        * platform/sql/SQLiteStatement.cpp:
        (WebCore::SQLiteStatement::prepare):
        * platform/text/TextCodecUTF16.cpp:
        (WebCore::TextCodecUTF16::decode):
        * platform/text/TextCodecUTF8.cpp:
        (WebCore::TextCodecUTF8::decode):
        * rendering/RenderText.cpp:
        (WebCore::makeCapitalized):
        * xml/XSLTProcessorLibxslt.cpp:
        (WebCore::writeToStringBuilder):

2011-11-16  Alexandre Elias  <aelias@google.com>

        [chromium] Improvements for page scale delta during commit
        https://bugs.webkit.org/show_bug.cgi?id=72471

        Reviewed by James Robinson.

        Page scale now follows the same commit flow as scroll position:
        the delta is folded into m_pageScale at BFAC time, and a "sent" value
        is preserved for temporary use until the commit finishes.

        I also merged setPageScaleFactor and setPageScaleFactorLimits into one
        function on the impl side.  The reason is that setPageFactor must
        be applied after the limits are updated, but on the other hand setting
        the limits first may cause an unnecessary clamp of the scale delta.
        Merging the methods avoids this bind.

        No new tests. (planning to add later: https://bugs.webkit.org/show_bug.cgi?id=71529)

        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::finishCommitOnImplThread):
        (WebCore::CCLayerTreeHost::applyScrollAndScale):
        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h:
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
        (WebCore::CCLayerTreeHostImpl::setPageScaleFactorAndLimits):
        (WebCore::CCLayerTreeHostImpl::adjustScrollsForPageScaleChange):
        (WebCore::CCLayerTreeHostImpl::setScaleDelta):
        (WebCore::CCLayerTreeHostImpl::applyScaleDeltaToScrollLayer):
        (WebCore::CCLayerTreeHostImpl::scrollRootLayer):
        (WebCore::CCLayerTreeHostImpl::processScrollDeltas):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:

2011-11-16  Joshua Bell  <jsbell@chromium.org>

        IndexedDB: Reduce nested key depth threshold, re-enable flaky test
        https://bugs.webkit.org/show_bug.cgi?id=72529

        Reviewed by Adam Barth.

        Drop maximum array key depth from 20k to 2k.

        * bindings/v8/IDBBindingUtilities.cpp:

2011-11-16  Nate Chapin  <japhet@chromium.org>

        Fix incorrect multipart handling in r100311.
        SubresourceLoader::didReceiveData() is getting called
        twice, which has unintended side effects.
        https://bugs.webkit.org/show_bug.cgi?id=72436

        Reviewed by Adam Barth.

        http/tests/multipart/invalid-image-data.html should stop
        asserting after this.

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didReceiveResponse):
        (WebCore::SubresourceLoader::didReceiveData):
        (WebCore::SubresourceLoader::sendDataToResource):
        * loader/SubresourceLoader.h:

2011-11-16  Justin Schuh  <jschuh@chromium.org>

        Clear SVG filter client when its node is detached
        https://bugs.webkit.org/show_bug.cgi?id=71741

        Reviewed by Eric Seidel.

        Test: svg/filters/reparent-animated-filter-target.html

        * rendering/svg/SVGResourcesCache.cpp:
        (WebCore::SVGResourcesCache::clientDestroyed):

2011-11-16  John Bates  <jbates@google.com>

        Page/layer flashes after GPU-accelerated CSS transition
        https://bugs.webkit.org/show_bug.cgi?id=72343

        LayerRendererChromium was resizing the window to 1x1 at initialization.
        In some cases, there is no drawLayers before switching back to
        software rendering. This left the window resized to 1x1 and the
        following software paints would therefore not be visible. This change
        moves the reshape call into drawLayers so that it will only be called
        if rendering will occur.

        Reviewed by James Robinson.

        New test: CCLayerTreeHostImplTest.reshapeNotCalledUntilDraw.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::viewportChanged):
        (WebCore::LayerRendererChromium::doViewportChanged):
        (WebCore::LayerRendererChromium::drawLayersInternal):
        * platform/graphics/chromium/LayerRendererChromium.h:

2011-11-16  Alexandre Elias  <aelias@google.com>

        [chromium] Add null pointer check in setDeviceScaleFactor
        https://bugs.webkit.org/show_bug.cgi?id=72464

        Reviewed by James Robinson.

        No new tests. (Tiny fix.)

        * page/Page.cpp:
        (WebCore::Page::setDeviceScaleFactor):

2011-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r100438.
        http://trac.webkit.org/changeset/100438
        https://bugs.webkit.org/show_bug.cgi?id=72536

        Broke unit tests (Requested by jamesr_ on #webkit).

        * platform/PlatformScreen.h:
        * platform/chromium/PlatformScreenChromium.cpp:
        * platform/chromium/PlatformSupport.h:
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::initializeImplOnImplThread):

2011-11-16  Andy Estes  <aestes@apple.com>

        Assertion failure in LayerFlushScheduler::resume() when running some layout tests in WebKitTestRunner
        https://bugs.webkit.org/show_bug.cgi?id=72535

        Reviewed by Anders Carlsson.

        LayerFlushScheduler attempted to use a counter strategy for calls to
        suspend() and resume(), which allowed us to assert that these calls
        were balanced. Unfortunately it is hard to guarantee this in WebKit2,
        where we sometimes try to call suspend() before we've entered
        compositing mode (hence before we have a LayerTreeHost and a
        LayerFlushScheduler). When we later call resume(), this call ends up
        being unbalanced and asserts.

        For now, remove the assertions and allow unbalanced calls to suspend()
        and resume().

        * platform/graphics/ca/LayerFlushScheduler.cpp:
        (WebCore::LayerFlushScheduler::suspend):
        (WebCore::LayerFlushScheduler::resume):
        * platform/graphics/ca/LayerFlushScheduler.h:
        * platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp:
        (WebCore::LayerFlushScheduler::LayerFlushScheduler):
        (WebCore::LayerFlushScheduler::runLoopObserverCallback):
        (WebCore::LayerFlushScheduler::schedule):

2011-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r100473.
        http://trac.webkit.org/changeset/100473
        https://bugs.webkit.org/show_bug.cgi?id=72534

        "Broke the Mac Build" (Requested by mwenge2 on #webkit).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createObject):
        (WebCore::RenderObject::addChild):
        * rendering/RenderObject.h:
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::addChild):
        * rendering/RenderTable.h:
        * rendering/RenderTableCaption.cpp: Removed.
        * rendering/RenderTableCaption.h: Removed.

2011-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r100479.
        http://trac.webkit.org/changeset/100479
        https://bugs.webkit.org/show_bug.cgi?id=72533

        "Broke the Mac Build" (Requested by mwenge2 on #webkit).

        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * rendering/RenderingAllInOne.cpp:

2011-11-16  Chris Fleizach  <cfleizach@apple.com>

        WebKitTestRunner needs to support accessibility-related DRT APIs
        https://bugs.webkit.org/show_bug.cgi?id=42131

        Minor changes needed to support AX testing in WKTestRunner.

        Reviewed by Beth Dakin.

        * WebCore.exp.in:
             Expose focusedUIElementForPage so that the WK2 injected bundle can retrieve it.
        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (accessibilitySearchKeyForString):
            Remove an unncessary assert that was causing issues with the WK2 test run.

2011-11-16  Sergio Villar Senin  <svillar@igalia.com>

        [Soup] Somet tests fail with FAIL Unexpected response data received: Wrong method: GET
        https://bugs.webkit.org/show_bug.cgi?id=69219

        Reviewed by Martin Robinson.

        Do not stop appending data to the request body if any of the blob
        items to upload is not accesible.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::addEncodedBlobToSoupMessageBody):

2011-11-16  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=72400
        Scrollbar uiStateTransitionProgress requires tracking the mouse all the time
        -and corresponding-
        <rdar://problem/10409328>

        Reviewed by Darin Adler.

        This patch makes it so we track the mouse all the time when we have legacy 
        scrollbars (rather than only tracking the mouse when the window is key). When 
        we're in that mode, we want to do as little work as possible when handling the 
        mouseMoved event so that this extra tracking has little to no performance impact. 
        Also, we don't want to change basic behaviors by having normal web content hover 
        effects start happening when a window is in the background. So this patch also 
        introduces a way to handle a mouseMoved event that will only affect scrollbars.

        EventHandler::mouseMoved() and EventHandler::handleMouseEvent() both now take a 
        boolean parameter that indicates if we are only updating scrollbars. If that is 
        the case, then we make our HitTestRequest ReadOnly, and we return early once 
        updateLastScrollbarUnderMouse() is called.
        * WebCore.exp.in:
        * page/EventHandler.cpp:
        (WebCore::EventHandler::mouseMoved):
        (WebCore::EventHandler::handleMouseMoveEvent):

        In addition to calling Scrollbar::mouseExited() when appropriate, this function 
        now calls a new function, Scrollbar::mouseEntered() when appropriate. 
        (WebCore::EventHandler::updateLastScrollbarUnderMouse):
        * page/EventHandler.h:

        Scrollbar::mouseMoved() used to be responsible for calling 
        ScrollAnimator::mouseEnteredScrollbar(), but now Scrollbar::mouseEntered() takes 
        care of that instead, much like how Scrollbar::mouseExited() takes care of calling 
        the animator's exit function.
        * platform/Scrollbar.cpp:
        (WebCore::Scrollbar::mouseMoved):
        (WebCore::Scrollbar::mouseEntered):
        * platform/Scrollbar.h:

2011-11-16  Andreas Kling  <kling@webkit.org>

        CSSValue: isInheritedValue() doesn't need a dedicated bit.
        <http://webkit.org/b/72514>

        Reviewed by Antti Koivisto.

        Remove CSSValue::m_isInherited and have isInheritedValue() check the
        class type instead. There's no compelling reason for CSSInheritedValue
        to have a dedicated bit, since nobody subclasses it anyway.

        * css/CSSValue.h:
        (WebCore::CSSValue::isInheritedValue):
        (WebCore::CSSValue::CSSValue):

2011-11-16  Robert Hogan  <robert@webkit.org>

        Fix build on Windows and Mac after r100473

        Unreviewed, fix build.

        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * rendering/RenderingAllInOne.cpp:

2011-11-16  Philip Rogers  <pdr@google.com>

        Remove extra GraphicsContextStateSaver restore() call.
        https://bugs.webkit.org/show_bug.cgi?id=72497

        Reviewed by Andreas Kling.

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

2011-11-08  Robert Hogan  <robert@webkit.org>

        CSS 2.1 failure: border-collapse-offset-002.htm fails
        https://bugs.webkit.org/show_bug.cgi?id=71705

        Table captions are implemented as children of the table but have a special
        requirement to expand to the full width of the table rather than just the 'available'
        width, i.e. the full width minus padding and borders.

        To accomodate this create a RenderTableCaption object that reimplements containingBlockLogicalWidthForContent()
        to return the full width of the containing block (i.e. the table) rather than the available width.

        Reviewed by Antti Koivisto.

        * CMakeLists.txt: Add RenderTableCaption.[cpp|h]
        * GNUmakefile.list.am: Add RenderTableCaption.[cpp|h]
        * Target.pri: Add RenderTableCaption.[cpp|h]
        * WebCore.gypi: Add RenderTableCaption.[cpp|h]
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): Use RenderTableCaption
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createObject): Add RenderTableCaption.[cpp|h]
        (WebCore::RenderObject::addChild): ditto
        * rendering/RenderObject.h:
        (WebCore::RenderObject::isTableCaption):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::addChild):
        * rendering/RenderTable.h:
        * rendering/RenderTableCaption.cpp: Added.
        (WebCore::RenderTableCaption::RenderTableCaption): Implement RenderTableCaption
        (WebCore::RenderTableCaption::~RenderTableCaption):
        (WebCore::RenderTableCaption::containingBlockLogicalWidthForContent): Return the containing block's full width rather than it's available width.
        * rendering/RenderTableCaption.h: Added.
        (WebCore::RenderTableCaption::isTableCaption):
        (WebCore::toRenderTableCaption):

2011-11-16  Antaryami Pandia  <antaryami.pandia@motorola.com>

        [Gtk] display:none has no effect on <option> element.
        https://bugs.webkit.org/show_bug.cgi?id=72370

        Reviewed by Martin Robinson.

        * platform/gtk/GtkPopupMenu.cpp:
        (WebCore::GtkPopupMenu::appendItem):
        * platform/gtk/PopupMenuGtk.cpp:
        (WebCore::PopupMenuGtk::createGtkActionForMenuItem):

2011-11-16  Dan Winship  <danw@gnome.org>

        [GTK] Fix platformDefersLoading to handle non-http requests, and
        to not use broken-ish libsoup APIs.
        https://bugs.webkit.org/show_bug.cgi?id=72227

        Reviewed by Martin Robinson.

        * platform/network/ResourceHandleInternal.h:
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::sendRequestCallback):
        (WebCore::startHTTPRequest):
        (WebCore::hasBeenSent):
        (WebCore::ResourceHandle::platformSetDefersLoading):
        (WebCore::readCallback): rather than deferring by using
        soup_session_pause_message(), let the read complete, but just don't
        process the result until we're no longer deferred.
        (WebCore::startNonHTTPRequest): Don't start the request if
        it's deferred.

2011-11-16  Vsevolod Vlasov  <vsevik@chromium.org>

        Web Inspector: Application cache status should be updated after swapCache().
        https://bugs.webkit.org/show_bug.cgi?id=72123

        Reviewed by Pavel Feldman.

        Application cache view resources and status are now updated after swapCache() call.
        Refresh button removed from application cache view.
        Application cache inspector tests are moved to their own folder.

        Tests: http/tests/inspector/appcache/appcache-iframe-manifests.html
               http/tests/inspector/appcache/appcache-manifest-with-non-existing-file.html
               http/tests/inspector/appcache/appcache-swap.html

        * inspector/front-end/ApplicationCacheItemsView.js:
        (WebInspector.ApplicationCacheItemsView):
        (WebInspector.ApplicationCacheItemsView.prototype.get statusBarItems):
        (WebInspector.ApplicationCacheItemsView.prototype.wasShown):
        (WebInspector.ApplicationCacheItemsView.prototype._maybeUpdate):
        (WebInspector.ApplicationCacheItemsView.prototype._markDirty):
        (WebInspector.ApplicationCacheItemsView.prototype.updateStatus):
        (WebInspector.ApplicationCacheItemsView.prototype._updateCallback):
        (WebInspector.ApplicationCacheItemsView.prototype._deleteCallback):
        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::setNewestCache):
        (WebCore::ApplicationCacheGroup::makeObsolete):
        (WebCore::ApplicationCacheGroup::setUpdateStatus):
        * loader/appcache/ApplicationCacheHost.cpp:
        (WebCore::ApplicationCacheHost::notifyDOMApplicationCache):
        (WebCore::ApplicationCacheHost::swapCache):

2011-11-16  Eric Carlson  <eric.carlson@apple.com>

        addTrack() must throw an exception if 'kind' is unknown
        https://bugs.webkit.org/show_bug.cgi?id=71915

        Reviewed by Philippe Normand.

        Tests: media/track/track-addtrack-kind.html
               media/track/track-kind.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::textTrackKindChanged): New. Will be implemented for 62885.
        (WebCore::HTMLMediaElement::addTrack): Throw if  'kind' is not a known value.
        (WebCore::HTMLMediaElement::addTextTrack): Call textTracks(), it will allocate the track
            list object if necessary.
        (WebCore::HTMLMediaElement::textTracks): Never return NULL, a TextTrackList with no tracks
            is allowed.
        * html/HTMLMediaElement.h:
        (WebCore::HTMLMediaElement::addTrack): Add variants to deal with optional parameters plus
            a mandatory ExceptionCode parameter.
        * html/HTMLMediaElement.idl: addTrack can generate an exception.

        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::attributeChanged): kind, label, and srclang attribute changes should
            percolate down the the TextTrack.
        (WebCore::HTMLTrackElement::kind): Return the TextTrack kind because it is not necessarily the
            same as the attribute value.
        (WebCore::HTMLTrackElement::ensureTrack): Only pass legal 'kind' keywords to create a TextTrack.
        (WebCore::HTMLTrackElement::textTrackKindChanged): Notify parent element, if any.
        * html/HTMLTrackElement.h:

        * html/TextTrack.cpp:
        (WebCore::TextTrack::subtitlesKeyword): New, return legal kind attribute value.
        (WebCore::TextTrack::captionsKeyword): Ditto.
        (WebCore::TextTrack::descriptionsKeyword): Ditto.
        (WebCore::TextTrack::chaptersKeyword): Ditto.
        (WebCore::TextTrack::metadataKeyword): Ditto.
        (WebCore::TextTrack::TextTrack): Call setKind to make sure m_kind is always set to legal value.
        (WebCore::TextTrack::isValidKindKeyword): New, validate 'kind' value.
        (WebCore::TextTrack::setKind): Only allow legal values.
        * html/TextTrack.h:
        (WebCore::TextTrack::kind):
        (WebCore::TextTrack::label):
        (WebCore::TextTrack::setLabel):
        (WebCore::TextTrack::language):
        (WebCore::TextTrack::setLanguage):
        (WebCore::TextTrack::readyState):
        (WebCore::TextTrack::mode):

2011-11-16  Andreas Kling  <kling@webkit.org>

        CSSValue: Clean up initial value construction.
        <http://webkit.org/b/72502>

        Reviewed by Antti Koivisto.

        Instead of determining whether a given CSSInitialValue is 'implicit' or not by
        querying the CSSValue::ClassType (InitialClass vs. ImplicitInitialClass),
        add a protected CSSValue member and set it from the CSSInitialValue constructor.

        Also get rid of the CSSValue::m_isInitial bit since we can now replace the
        checks by classType() == InitialClass.

        No new tests, this is a cleanup.

        * css/CSSInitialValue.h:
        (WebCore::CSSInitialValue::CSSInitialValue):

            Poke 'implicit' constructor argument into CSSValue::m_isImplicit.

        * css/CSSValue.cpp:
        (WebCore::CSSValue::cssText):
        (WebCore::CSSValue::destroy):

            Remove ImplicitInitialClass cases.

        * css/CSSValue.h:
        (WebCore::CSSValue::isImplicitInitialValue):
        (WebCore::CSSValue::isInitialValue):
        (WebCore::CSSValue::CSSValue):

2011-11-16  Antaryami Pandia  <antaryami.pandia@motorola.com>

        Remove unnecessary if check from RenderListBox::paintItemForeground.
        https://bugs.webkit.org/show_bug.cgi?id=72488

        Reviewed by Andreas Kling.

        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::paintItemForeground):

2011-11-15  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Centralize hide_symbols and ensure all libs are built with symbol visibility & bsymbolic_functions

        Reviewed by Tor Arne Vestbø.

        * Target.pri: Eliminate duplicated symbol stuff that lives now in default_post.prf.

2011-11-16  Iain Merrick  <husky@google.com>

        [chromium] Pass screen refresh rate into compositor.
        https://bugs.webkit.org/show_bug.cgi?id=71040

        Reviewed by Tony Gentilcore.

        * platform/PlatformScreen.h:
        * platform/chromium/PlatformScreenChromium.cpp:
        (WebCore::screenRefreshRate):
        * platform/chromium/PlatformSupport.h:
        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCSettings::CCSettings):
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::initializeImplOnImplThread):

2011-11-15  Andrey Kosyakov  <caseq@chromium.org>

        Web Inspector: [Extensions API] drop ExtensionSidebarPane.onUpdated, use callbacks instead
        https://bugs.webkit.org/show_bug.cgi?id=72388

        Reviewed by Pavel Feldman.

        Tests: inspector/extensions/extensions-panel.html
               inspector/extensions/extensions-sidebar.html

        - fire ExtensionSidebarPane.on{Hidden,Shown} for non-iframe content (experssions/objects);
        - drop ExtensionsSidebarPane.onUpdated, provide callback for setObject()/setExpression() instead;
        - fix an exception when a page is replaced with object/expression.

         inspector/front-end/ExtensionAPI.js:
        (injectedExtensionAPI.ExtensionSidebarPaneImpl):
        (injectedExtensionAPI.ExtensionSidebarPaneImpl.prototype.setExpression):
        (injectedExtensionAPI.ExtensionSidebarPaneImpl.prototype.setObject):
        * inspector/front-end/ExtensionPanel.js:
        (WebInspector.ExtensionNotifierView):
        (WebInspector.ExtensionNotifierView.prototype.wasShown):
        (WebInspector.ExtensionNotifierView.prototype.willHide):
        (WebInspector.ExtensionSidebarPane.prototype.setObject):
        (WebInspector.ExtensionSidebarPane.prototype.setExpression):
        (WebInspector.ExtensionSidebarPane.prototype.setPage):
        (WebInspector.ExtensionSidebarPane.prototype._onEvaluate):
        (WebInspector.ExtensionSidebarPane.prototype._makeObjectPropertiesView):
        (WebInspector.ExtensionSidebarPane.prototype._setObject):
        * inspector/front-end/ExtensionServer.js:
        (WebInspector.ExtensionServer.prototype._onSetSidebarContent.callback):
        (WebInspector.ExtensionServer.prototype._onSetSidebarContent):
        (WebInspector.ExtensionServer.prototype._dispatchCallback):
        * inspector/front-end/View.js:
        (WebInspector.View.prototype.detach):

2011-11-16  Simon Hausmann  <simon.hausmann@nokia.com>

        Unreviewed, rolling out r100266.
        http://trac.webkit.org/changeset/100266

        Broke WTR.

        * Target.pri:

2011-11-16  Per-Erik Brodin  <per-erik.brodin@ericsson.com>

        [GTK] fast/events/event-creation.html fails creating MediaStreamEvent
        https://bugs.webkit.org/show_bug.cgi?id=70720

        Reviewed by Philippe Normand.

        Added missing overriding of Event::interfaceName()

        * mediastream/MediaStreamEvent.cpp:
        (WebCore::MediaStreamEvent::stream): Changed return value to raw pointer.
        (WebCore::MediaStreamEvent::interfaceName): Added back from r98044.
        * mediastream/MediaStreamEvent.h:
        * mediastream/MediaStreamEvent.idl: Changed module name to "events".

2011-11-16  Mario Sanchez Prada  <msanchez@igalia.com>

        [GTK] Use GQuark's in the ATK wrapper to get and set arbitrary data
        https://bugs.webkit.org/show_bug.cgi?id=72394

        Reviewed by Martin Robinson.

        No new functionality, no new tests needed.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (webkit_accessible_class_init): Initialize GQuarks.
        (getGailTextUtilForAtk): Use gailTextUtilQuark.
        (getPangoLayoutForAtk): Remove unused call to
        g_object_set_data_full, since that data is no used anywhere.
        (webkitAccessibleHyperlinkImplGetHyperlink): Use hyperlinkObjectQuark.

2011-11-15  Alexandru Chiculita  <achicu@adobe.com>

        [CSSShaders] Implement the style cached resources and computed style for the shader urls
        https://bugs.webkit.org/show_bug.cgi?id=72378

        Reviewed by Dean Jackson.

        Test: css3/filters/custom-filter-property-computed-style.html

        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::valueForFilter):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::CSSStyleSelector):
        (WebCore::CSSStyleSelector::styleForKeyframe):
        (WebCore::CSSStyleSelector::pseudoStyleForElement):
        (WebCore::CSSStyleSelector::styleForPage):
        (WebCore::CSSStyleSelector::applyMatchedDeclarations):
        (WebCore::CSSStyleSelector::styleShader):
        (WebCore::CSSStyleSelector::cachedOrPendingStyleShaderFromValue):
        (WebCore::CSSStyleSelector::loadPendingShaders):
        (WebCore::CSSStyleSelector::createCustomFilterOperation):
        (WebCore::CSSStyleSelector::createFilterOperations):
        * css/CSSStyleSelector.h:
        * css/WebKitCSSShaderValue.cpp:
        (WebCore::WebKitCSSShaderValue::WebKitCSSShaderValue):
        (WebCore::WebKitCSSShaderValue::~WebKitCSSShaderValue):
        (WebCore::WebKitCSSShaderValue::cachedShader):
        (WebCore::WebKitCSSShaderValue::cachedOrPendingShader):
        * css/WebKitCSSShaderValue.h:
        * loader/cache/CachedResource.cpp:
        (WebCore::defaultPriorityForResourceType):
        * loader/cache/CachedResource.h:
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::createResource):
        (WebCore::CachedResourceLoader::requestShader):
        (WebCore::CachedResourceLoader::checkInsecureContent):
        (WebCore::CachedResourceLoader::canRequest):
        * loader/cache/CachedResourceLoader.h:
        * loader/cache/CachedShader.cpp:
        (WebCore::CachedShader::CachedShader):
        (WebCore::CachedShader::~CachedShader):
        * loader/cache/CachedShader.h:
        * platform/graphics/filters/CustomFilterOperation.h:
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::filter):
        * rendering/style/StyleCachedShader.cpp:
        (WebCore::StyleCachedShader::StyleCachedShader):
        (WebCore::StyleCachedShader::cssValue):
        * rendering/style/StyleCachedShader.h:
        (WebCore::StyleCachedShader::create):
        * rendering/style/StylePendingShader.h:
        (WebCore::StylePendingShader::create):
        (WebCore::StylePendingShader::cssValue):
        (WebCore::StylePendingShader::cssShaderValue):
        (WebCore::StylePendingShader::StylePendingShader):
        * rendering/style/StyleShader.h:
        (WebCore::StyleShader::~StyleShader):
        (WebCore::StyleShader::isCachedShader):
        (WebCore::StyleShader::isPendingShader):
        (WebCore::StyleShader::StyleShader):

2011-11-15  Sergio Villar Senin  <svillar@igalia.com>

        [WK2] [GTK] fast/css/webkit-mask-crash-fieldset-legend.html asserts WebKitWebProcess
        https://bugs.webkit.org/show_bug.cgi?id=69510

        Reviewed by Simon Fraser.

        End the current transparency layer before early returning from
        paintMask() when there is a maskBoxImage which is still being
        loaded. This will balance the previous call to
        beginTransparencyLayer().

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::paintMask):

2011-11-15  Darin Adler  <darin@apple.com>

        Incorrect type checks in RenderTheme media code
        https://bugs.webkit.org/show_bug.cgi?id=72184

        Reviewed by Eric Carlson.

        No tests added. Ideally this patch should be revised to add tests!

        * accessibility/AccessibilityMediaControls.cpp:
        (WebCore::AccessibilityMediaControl::create): Use mediaControlElementType.
        (WebCore::AccessibilityMediaControl::controlType): Ditto.
        (WebCore::AccessibilityMediaTimeline::valueDescription): Use early return
        rather than an assertion to check type of input element.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::mediaControlElementType): Added. A type-safe way to get the
        media control element type after checking isMediaControlElement but with
        no other assumptions.
        * html/shadow/MediaControlElements.h: Added mediaControlElementType.

        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::RenderThemeEfl::paintMediaPlayButton): Use mediaControlElementType.
        (WebCore::RenderThemeEfl::paintMediaSeekBackButton): Use mediaControlElementType.
        (WebCore::RenderThemeEfl::paintMediaSeekForwardButton): Use mediaControlElementType.
        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::paintMediaPlayButton): Check isMediaControlElement and
        use mediaControlElementType.
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintMediaMuteButton): Ditto. Also remove uneeded
        redundant null check.
        (WebCore::RenderThemeMac::paintMediaPlayButton): Ditto.
        (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton): Ditto.

2011-11-15  Jeff Timanus  <twiz@chromium.org>

        [chromium] During tear down, prevent the WebGLLayerChromium instance from attempting to stop a timer for a NULL context.
        https://bugs.webkit.org/show_bug.cgi?id=72423

        Reviewed by Kenneth Russell.

        * platform/graphics/chromium/WebGLLayerChromium.cpp:
        (WebCore::WebGLLayerChromium::setDrawingBuffer):

2011-11-15  Mark Hahnenberg  <mhahnenberg@apple.com>

        Rebaseline generated WebCore bindings

        Unreviewed build fix

        No new tests.

        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        (WebCore::isObservable):
        (WebCore::JSTestEventConstructorOwner::isReachableFromOpaqueRoots):
        (WebCore::JSTestEventConstructorOwner::finalize):
        * bindings/scripts/test/JS/JSTestEventConstructor.h:
        (WebCore::JSTestEventConstructor::clearImpl):
        (WebCore::wrapperOwner):
        (WebCore::wrapperContext):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::JSTestInterfaceOwner::finalize):
        * bindings/scripts/test/JS/JSTestInterface.h:
        (WebCore::JSTestInterface::clearImpl):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        (WebCore::isObservable):
        (WebCore::JSTestMediaQueryListListenerOwner::isReachableFromOpaqueRoots):
        (WebCore::JSTestMediaQueryListListenerOwner::finalize):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
        (WebCore::JSTestMediaQueryListListener::clearImpl):
        (WebCore::wrapperOwner):
        (WebCore::wrapperContext):
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore::JSTestNamedConstructorOwner::finalize):
        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
        (WebCore::JSTestNamedConstructor::clearImpl):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::isObservable):
        (WebCore::JSTestObjOwner::isReachableFromOpaqueRoots):
        (WebCore::JSTestObjOwner::finalize):
        * bindings/scripts/test/JS/JSTestObj.h:
        (WebCore::JSTestObj::clearImpl):
        (WebCore::wrapperOwner):
        (WebCore::wrapperContext):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::isObservable):
        (WebCore::JSTestSerializedScriptValueInterfaceOwner::isReachableFromOpaqueRoots):
        (WebCore::JSTestSerializedScriptValueInterfaceOwner::finalize):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
        (WebCore::JSTestSerializedScriptValueInterface::clearImpl):
        (WebCore::wrapperOwner):
        (WebCore::wrapperContext):

2011-11-15  Jeff Timanus  <twiz@chromium.org>

        Patch removing duplicated code in the setup of the DrawingBuffer used
        to host the back-buffer for WebGL contents.
        https://bugs.webkit.org/show_bug.cgi?id=72327

        Reviewed by Kenneth Russell.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::copyTexImage2D):
        (WebCore::WebGLRenderingContext::copyTexSubImage2D):
        (WebCore::WebGLRenderingContext::readPixels):

2011-11-15  Mark Hahnenberg  <mhahnenberg@apple.com>

        JS DOM wrappers depend on destructor to deref impl RefPtrs
        https://bugs.webkit.org/show_bug.cgi?id=72341

        Reviewed by Sam Weinig.

        No new tests.

        Added clearing of impl RefPtrs to JS DOM wrapper nodes and removed the default 
        wrapperOwner function in favor of generating all WeakHandleOwners and wrapperOwner functions.

        * bindings/js/JSCSSValueCustom.cpp:
        (WebCore::JSCSSValueOwner::finalize):
        * bindings/js/JSDOMBinding.h:
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::JSNodeOwner::finalize):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):

2011-11-15  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Share Highlight Code for Drawing Outlined Quad
        https://bugs.webkit.org/show_bug.cgi?id=72451

        Reviewed by Timothy Hatcher.

        * inspector/DOMNodeHighlighter.cpp:

2011-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r100308.
        http://trac.webkit.org/changeset/100308
        https://bugs.webkit.org/show_bug.cgi?id=72450

        Introduces WebGL conformance test regressions. (Requested by
        twiz on #webkit).

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::copyTexImage2D):
        (WebCore::WebGLRenderingContext::copyTexSubImage2D):
        (WebCore::WebGLRenderingContext::readPixels):

2011-11-15  James Robinson  <jamesr@chromium.org>

        Rollout http://trac.webkit.org/changeset/99813, caused some crashes in
        TiledLayerChromium::updateCompositorResources()

        * WebCore.gypi:
        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.cpp: Removed.
        * platform/graphics/chromium/BitmapCanvasLayerTextureUpdater.h: Removed.
        * platform/graphics/chromium/CanvasLayerTextureUpdater.cpp: Removed.
        * platform/graphics/chromium/CanvasLayerTextureUpdater.h: Removed.
        * platform/graphics/chromium/ContentLayerChromium.cpp:
        (WebCore::ContentLayerChromium::createTextureUpdater):
        * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.h: Removed.
        * platform/graphics/chromium/ImageLayerChromium.cpp:
        (WebCore::ImageLayerTextureUpdater::prepareToUpdate):
        * platform/graphics/chromium/LayerRendererChromium.cpp:
        * platform/graphics/chromium/LayerTextureUpdater.h:
        * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp: Renamed from Source/WebCore/platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp.
        (WebCore::FrameBuffer::FrameBuffer::FrameBuffer):
        (WebCore::FrameBuffer::FrameBuffer::~FrameBuffer):
        (WebCore::FrameBuffer::FrameBuffer::initialize):
        (WebCore::LayerTextureUpdaterCanvas::LayerTextureUpdaterCanvas):
        (WebCore::LayerTextureUpdaterCanvas::paintContents):
        (WebCore::LayerTextureUpdaterBitmap::create):
        (WebCore::LayerTextureUpdaterBitmap::LayerTextureUpdaterBitmap):
        (WebCore::LayerTextureUpdaterBitmap::sampledTexelFormat):
        (WebCore::LayerTextureUpdaterBitmap::prepareToUpdate):
        (WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
        (WebCore::LayerTextureUpdaterSkPicture::create):
        (WebCore::LayerTextureUpdaterSkPicture::LayerTextureUpdaterSkPicture):
        (WebCore::LayerTextureUpdaterSkPicture::~LayerTextureUpdaterSkPicture):
        (WebCore::LayerTextureUpdaterSkPicture::sampledTexelFormat):
        (WebCore::LayerTextureUpdaterSkPicture::prepareToUpdate):
        (WebCore::LayerTextureUpdaterSkPicture::updateTextureRect):
        * platform/graphics/chromium/LayerTextureUpdaterCanvas.h: Added.
        (WebCore::LayerTextureUpdaterCanvas::contentRect):
        (WebCore::LayerTextureUpdaterBitmap::orientation):
        (WebCore::LayerTextureUpdaterSkPicture::orientation):
        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.cpp: Removed.
        * platform/graphics/chromium/SkPictureCanvasLayerTextureUpdater.h: Removed.
        * platform/graphics/chromium/TiledLayerChromium.cpp:
        (WebCore::UpdatableTile::UpdatableTile):
        (WebCore::UpdatableTile::texture):
        (WebCore::TiledLayerChromium::updateCompositorResources):
        (WebCore::TiledLayerChromium::pushPropertiesTo):
        (WebCore::TiledLayerChromium::createTile):
        (WebCore::TiledLayerChromium::protectTileTextures):
        (WebCore::TiledLayerChromium::prepareToUpdate):
        * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
        (WebCore::CCTextureUpdater::append):
        (WebCore::CCTextureUpdater::update):
        * platform/graphics/chromium/cc/CCTextureUpdater.h:

2011-11-15  Julien Chaffraix  <jchaffraix@webkit.org>

        Add the needed plumbing to parse display: -webkit-inline-grid
        https://bugs.webkit.org/show_bug.cgi?id=72438

        Reviewed by Tony Chang.

        Test: fast/css-grid-layout/display-grid-set-get.html

        Added the needed constants and plugged everything together.
        Again we treat display: -webkit-inline-grid like display: none
        for the moment.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        * css/CSSValueKeywords.in:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createObject):
        * rendering/style/RenderStyleConstants.h:

2011-11-15  W. James MacLean  <wjmaclean@chromium.org>

        [chromium] Move setVisibleRect() calls into calculateDrawTransformAndVisibility()
        https://bugs.webkit.org/show_bug.cgi?id=72162

        Reviewed by Kenneth Russell.

        Refactoring of existing functionality, so uses existing tests.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::drawLayer):
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::paintContentsIfDirty):
        (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
        (WebCore::CCLayerTreeHost::paintLayerContents):
        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
        (WebCore::walkLayersAndCalculateVisibleLayerRects):
        (WebCore::CCLayerTreeHostCommon::calculateDrawTransformsAndVisibility):

2011-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r100340.
        http://trac.webkit.org/changeset/100340
        https://bugs.webkit.org/show_bug.cgi?id=72448

        Caused assertion failure in Win dbg canary. (Requested by
        pkasting on #webkit).

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::LayerRendererChromium):
        (WebCore::LayerRendererChromium::viewportChanged):
        (WebCore::LayerRendererChromium::drawLayersInternal):
        * platform/graphics/chromium/LayerRendererChromium.h:

2011-11-15  Julien Chaffraix  <jchaffraix@webkit.org>

        Switch table indexing to unsigned
        https://bugs.webkit.org/show_bug.cgi?id=72083

        Reviewed by Darin Adler.

        No expected change in behavior.

        All of the code is now using unsigned for indexing!

        * rendering/FixedTableLayout.cpp:
        (WebCore::FixedTableLayout::layout):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::colElement):
        (WebCore::RenderTable::cellAbove):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::splitColumn):
        Added some ASSERTs to make sure we don't underflow. Looking at how
        the different variables are populated, they should not be reached.

        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::colSpan):
        (WebCore::RenderTableCell::rowSpan):
        Those 2 functions promotes HTMLTableCellElement's int to unsigned
        which should be fine as we make sure their are positive. Also HTML5
        makes those 2 fields "unsigned long" which goes in the same direction.

        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::layout):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::nodeAtPoint):
        Rewrote a couple of reverse iterating to be able to use unsigned
        without overflowing.

        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::recalcColumn):
        (WebCore::AutoTableLayout::fullRecalc):
        (WebCore::AutoTableLayout::calcEffectiveLogicalWidth):
        (WebCore::AutoTableLayout::insertSpanCell):
        * rendering/AutoTableLayout.h:
        * rendering/FixedTableLayout.cpp:
        (WebCore::FixedTableLayout::calcWidthArray):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::splitColumn):
        (WebCore::RenderTable::appendColumn):
        (WebCore::RenderTable::recalcSections):
        * rendering/RenderTable.h:
        (WebCore::RenderTable::getColumnPos):
        (WebCore::RenderTable::spanOfEffCol):
        (WebCore::RenderTable::effColToCol):
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::styleOrColLogicalWidth):
        (WebCore::CollapsedBorders::nextBorder):
        * rendering/RenderTableCell.h:
        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::updateFromElement):
        * rendering/RenderTableCol.h:
        (WebCore::RenderTableCol::span):
        (WebCore::RenderTableCol::setSpan):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::addCell):
        (WebCore::RenderTableSection::setCellLogicalWidths):
        (WebCore::RenderTableSection::layoutRows):
        (WebCore::RenderTableSection::calcOuterBorderBefore):
        (WebCore::RenderTableSection::calcOuterBorderAfter):
        (WebCore::RenderTableSection::calcOuterBorderStart):
        (WebCore::RenderTableSection::calcOuterBorderEnd):
        (WebCore::RenderTableSection::paintObject):
        (WebCore::RenderTableSection::appendColumn):
        * rendering/RenderTableSection.h:
        (WebCore::RenderTableSection::cellAt):
        (WebCore::RenderTableSection::primaryCellAt):
        (WebCore::RenderTableSection::getBaseline):
        Mechanical change int -> unsigned.

2011-11-15  Andy Estes  <aestes@apple.com>

        Consolidate the logic that creates run loop observers for flushing layer tree changes to CoreAnimation
        https://bugs.webkit.org/show_bug.cgi?id=72106

        Reviewed by Anders Carlsson.

        Add a class that encapsulates the logic of scheduling, enabling and
        invalidating a run loop observer that fires before Core Animation's
        commit observer. Clients can subclass LayerFlushSchedulerClient and
        implement flushLayers(), which will be called by the observer.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/ca/LayerFlushScheduler.cpp: Added.
        (WebCore::LayerFlushScheduler::suspend): Suspend scheduling by
        invalidating the run loop observer. Keep a count of calls to suspend()
        in m_suspendCount.
        (WebCore::LayerFlushScheduler::resume): Decrement m_suspendCount.
        Install the run loop observer when it reaches 0.
        * platform/graphics/ca/LayerFlushSchedulerClient.h: Added.
        (WebCore::LayerFlushSchedulerClient::~LayerFlushSchedulerClient):
        * platform/graphics/ca/LayerFlushScheduler.h: Added.
        * platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp: Added.
        (LayerFlushScheduler::LayerFlushScheduler):
        (LayerFlushScheduler::~LayerFlushScheduler):
        (LayerFlushScheduler::runLoopObserverCallback): Call flushLayers() on
        the LayerFlushSchedulerClient.
        (LayerFlushScheduler::schedule): Install the run loop observer.
        (LayerFlushScheduler::invalidate): Remove the run loop
        observer if it is installed.

2011-11-15  Adam Klein  <adamk@chromium.org>

        [v8] Use throwError instead of compiling and running script in handleMaxRecursionDepthExceeded
        https://bugs.webkit.org/show_bug.cgi?id=72432

        Reviewed by Adam Barth.

        * bindings/v8/V8Proxy.cpp:
        (WebCore::handleMaxRecursionDepthExceeded):

2011-11-15  Vincent Scheib  <scheib@chromium.org>

        Pointer Lock: Refactoring: PointerLock.idl: Dropping webkit prefix
        https://bugs.webkit.org/show_bug.cgi?id=72431

        Reviewed by Adam Barth.

        * page/PointerLock.cpp:
        (WebCore::PointerLock::lock):
        (WebCore::PointerLock::unlock):
        (WebCore::PointerLock::isLocked):
        * page/PointerLock.h:
        * page/PointerLock.idl:

2011-11-15  Nat Duca  <nduca@chromium.org>

        [chromium] Fuse MainThread and CCThread
        https://bugs.webkit.org/show_bug.cgi?id=72426

        Reviewed by James Robinson.

        * WebCore.gypi:
        * platform/graphics/chromium/LayerRendererChromium.cpp:
        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
        (WebCore::CCLayerTreeHost::CCLayerTreeHost):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        * platform/graphics/chromium/cc/CCMainThread.cpp: Removed.
        * platform/graphics/chromium/cc/CCMainThread.h: Removed.
        * platform/graphics/chromium/cc/CCMainThreadTask.h: Removed.
        * platform/graphics/chromium/cc/CCProxy.cpp:
        (WebCore::CCProxy::setMainThread):
        (WebCore::CCProxy::mainThread):
        (WebCore::CCProxy::setImplThread):
        (WebCore::CCProxy::implThread):
        (WebCore::CCProxy::isMainThread):
        (WebCore::CCProxy::isImplThread):
        (WebCore::CCProxy::~CCProxy):
        * platform/graphics/chromium/cc/CCProxy.h:
        * platform/graphics/chromium/cc/CCScopedThreadProxy.h: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCScopedMainThreadProxy.h.
        (WebCore::CCScopedThreadProxy::create):
        (WebCore::CCScopedThreadProxy::postTask):
        (WebCore::CCScopedThreadProxy::shutdown):
        (WebCore::CCScopedThreadProxy::CCScopedThreadProxy):
        (WebCore::CCScopedThreadProxy::runTaskIfNotShutdown):
        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::CCThreadProxy):
        (WebCore::CCThreadProxy::compositeAndReadback):
        (WebCore::CCThreadProxy::finishAllRendering):
        (WebCore::CCThreadProxy::initializeLayerRenderer):
        (WebCore::CCThreadProxy::setNeedsAnimate):
        (WebCore::CCThreadProxy::setNeedsCommit):
        (WebCore::CCThreadProxy::onSwapBuffersCompleteOnImplThread):
        (WebCore::CCThreadProxy::setNeedsRedraw):
        (WebCore::CCThreadProxy::setVisible):
        (WebCore::CCThreadProxy::start):
        (WebCore::CCThreadProxy::stop):
        (WebCore::CCThreadProxy::obtainBeginFrameAndCommitTaskFromCCThread):
        (WebCore::CCThreadProxy::createBeginFrameAndCommitTaskOnImplThread):
        (WebCore::CCThreadProxy::beginFrameAndCommit):
        (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
        (WebCore::CCThreadProxy::initializeImplOnImplThread):
        * platform/graphics/chromium/cc/CCThreadProxy.h:

2011-11-15  Vincent Scheib  <scheib@chromium.org>

        Pointer Lock: Refactor: MouseEvent.idl movementX/Y
        https://bugs.webkit.org/show_bug.cgi?id=72427

        - [Conditional...] vs #if defined
        - Runtime enabled
        - .movementX/Y prefixed with 'webkit'

        Reviewed by Adam Barth.

        No new tests.

        * bindings/generic/RuntimeEnabledFeatures.h:
        (WebCore::RuntimeEnabledFeatures::webkitMovementXEnabled):
        (WebCore::RuntimeEnabledFeatures::webkitMovementYEnabled):
        * dom/MouseEvent.idl:
        * dom/MouseRelatedEvent.h:
        (WebCore::MouseRelatedEvent::webkitMovementX):
        (WebCore::MouseRelatedEvent::webkitMovementY):

2011-10-28  Ojan Vafai  <ojan@chromium.org>

        implement flex-align for flex-flow: column
        https://bugs.webkit.org/show_bug.cgi?id=70754

        Reviewed by David Hyatt.

        Tests: css3/flexbox/flex-align-column.html
               css3/flexbox/line-wrapping.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::sizesToIntrinsicLogicalWidth):
        When flexitems are column, they should size to the intrinsic width unless flex-flow is stretch.

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::alignChildrenBlockDirection):
        This was just using the wrong, non-flow-aware method.

2011-11-15  Jochen Eisinger  <jochen@chromium.org>

        Rename ReferrerPolicy to clarify its meaning
        https://bugs.webkit.org/show_bug.cgi?id=72420

        Reviewed by Nate Chapin.

        On the one hand, even if the ReferrerPolicy was set to SendReferrer, the
        referrer wasn't necessarily send. On the other hand, I want to use the
        name ReferrerPolicy when implementing the meta referrer tag.

        No change in behavior expected so no test.

        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::handleClick):
        (WebCore::handleLinkClick):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::changeLocation):
        (WebCore::FrameLoader::urlSelected):
        (WebCore::FrameLoader::loadFrameRequest):
        * loader/FrameLoader.h:
        * loader/FrameLoaderTypes.h:
        * loader/NavigationScheduler.cpp:
        (WebCore::ScheduledHistoryNavigation::fire):
        (WebCore::ScheduledFormSubmission::fire):
        * page/ContextMenuController.cpp:
        (WebCore::openNewWindow):
        (WebCore::ContextMenuController::contextMenuItemSelected):
        * WebCore.exp.in: updated.

2011-11-15  Adam Klein  <adamk@chromium.org>

        Factor out V8Proxy's max recursion depth handling code
        https://bugs.webkit.org/show_bug.cgi?id=72422

        Reviewed by Nate Chapin.

        Previously, V8Proxy used slightly different code to handle stack limit
        violations depending on whether they occured in runScript or
        callFunction. As described in http://webkit.org/b/72063, I intend to
        expand the usage of m_recursion when calling into script. This patch
        is intended to unify the existing handling code, making it easier to
        move elsewhere without causing unintended side-effects.

        No tests changed, as the only change in behavior is the string passed
        to RangeError in the runScript case, and it's not mentioned anywhere
        in the LayoutTests.

        * bindings/v8/V8Proxy.cpp:
        (WebCore::handleMaxRecursionDepthExceeded):
        (WebCore::V8Proxy::runScript): Use callFunction's factored-out code.
        (WebCore::V8Proxy::callFunction): Simplify and factor out code into handleMaxRecursionDepthExceeded.

2011-11-15  Jessie Berlin  <jberlin@apple.com>

        NSURLRequest leak beneath ResourceRequest::setStorageSession seen on Leaks bot.
        https://bugs.webkit.org/show_bug.cgi?id=72419

        Reviewed by Adam Roben.

        Adopt the copied NSURLRequest.

        * platform/network/mac/ResourceRequestMac.mm:
        (WebCore::ResourceRequest::setStorageSession):

2011-11-15  John Bates  <jbates@google.com>

        Page/layer flashes after GPU-accelerated CSS transition
        https://bugs.webkit.org/show_bug.cgi?id=72343

        LayerRendererChromium was resizing the window to 1x1 at initialization.
        In some cases, there is no drawLayers before switching back to
        software rendering. This left the window resized to 1x1 and the
        following software paints would therefore not be visible. This change
        moves the reshape call into drawLayers so that it will only be called
        if rendering will occur.

        Reviewed by James Robinson.

        New test: CCLayerTreeHostImplTest.reshapeNotCalledUntilDraw.

        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::viewportChanged):
        (WebCore::LayerRendererChromium::doViewportChanged):
        (WebCore::LayerRendererChromium::drawLayersInternal):
        * platform/graphics/chromium/LayerRendererChromium.h:

2011-11-15  Julien Chaffraix  <jchaffraix@webkit.org>

        Add the needed plumbing to parse display: -webkit-grid
        https://bugs.webkit.org/show_bug.cgi?id=72331

        Reviewed by Tony Chang.

        Test: fast/css-grid-layout/display-grid-set-get.html

        Added parsing support for display: -webkit-grid. From a rendering perspective,
        the value is equivalent to display: none until we properly implement it.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        * css/CSSValueKeywords.in:
        * rendering/style/RenderStyleConstants.h:
        Added the new CSS value and plumbed the parsing and style application of
        the new value.

        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::operator EDisplay):
        Added an ASSERT here as I bumped into some non-trivial issues due to bug 72296.
        -wap-marquee was offsetting the new value and was wrongly casted by the CSSPrimitiveValueMapping
        logic outside the EDisplay range which would lead to crashes.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createObject):
        Fixed the indentation to follow our coding rules.

2011-11-15  Vincent Scheib  <scheib@chromium.org>

        Mouse Lock: Renaming to 'Pointer Lock': MouseLockable to PointerLock
        https://bugs.webkit.org/show_bug.cgi?id=72315

        Reviewed by Dimitri Glazkov.

        * WebCore.gypi:
        * page/Navigator.cpp:
        (WebCore::Navigator::webkitPointer):
        * page/Navigator.h:
        * page/Navigator.idl:
        * page/PointerLock.cpp: Renamed from Source/WebCore/page/MouseLockable.cpp.
        (WebCore::PointerLock::PointerLock):
        (WebCore::PointerLock::~PointerLock):
        (WebCore::PointerLock::webkitLock):
        (WebCore::PointerLock::webkitUnlock):
        (WebCore::PointerLock::webkitIsLocked):
        * page/PointerLock.h: Renamed from Source/WebCore/page/MouseLockable.h.
        (WebCore::PointerLock::create):
        * page/PointerLock.idl: Renamed from Source/WebCore/page/MouseLockable.idl.

2011-10-28  Ojan Vafai  <ojan@chromium.org>

        Overflow and relayout are broken in the new flexboxes
        https://bugs.webkit.org/show_bug.cgi?id=71161

        Reviewed by David Hyatt.

        Tests: css3/flexbox/auto-height-dynamic.html
               css3/flexbox/flex-item-child-overflow-expected.html
               css3/flexbox/flex-item-child-overflow.html

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock):
        -Always set the logical height to 0 to start with to ensure we don't
        use the height from the previous layout when we are computing the
        intrinsic size of the flexbox.
        -Call computeOverflow after computeLogicalHeight so that flex-item's children's
        overflow is properly rendered.

        (WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection):
        -Now that we setLogicalHeight in layoutBlock, we no longer need to do it here.
        -Refactor flipping code. The behavior is the same, but the variable names are just
        more correct.

2011-10-28  Ojan Vafai  <ojan@chromium.org>

        Overflow and relayout are broken in the new flexboxes
        https://bugs.webkit.org/show_bug.cgi?id=71161

        Reviewed by David Hyatt.

        Tests: css3/flexbox/auto-height-dynamic.html
               css3/flexbox/flex-item-child-overflow-expected.html
               css3/flexbox/flex-item-child-overflow.html

        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock):
        -Always set the logical height to 0 to start with to ensure we don't
        use the height from the previous layout when we are computing the
        intrinsic size of the flexbox.
        -Call computeOverflow after computeLogicalHeight so that flex-item's children's
        overflow is properly rendered.

        (WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection):
        -Now that we setLogicalHeight in layoutBlock, we no longer need to do it here.
        -Refactor flipping code. The behavior is the same, but the variable names are just
        more correct.

2011-11-15  Nate Chapin  <japhet@chromium.org>

        CachedResourceRequest is now the only SubresourceLoaderClient
        Merge CachedResourceRequest into SubresourceLoader and delete
        the SubresourceLoaderClient interface. A few items were moved
        to CachedResource instead of SubresourceLoader.
        https://bugs.webkit.org/show_bug.cgi?id=71149

        Reviewed by Adam Barth.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * loader/ResourceLoadScheduler.cpp:
        * loader/ResourceLoadScheduler.h:
        * loader/ResourceLoader.cpp:
        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::SubresourceLoader):
        (WebCore::SubresourceLoader::create):
        (WebCore::SubresourceLoader::init): Do work that had previously been
            done in SubresourceLoader::create() after the constructor.
        (WebCore::SubresourceLoader::willSendRequest):
        (WebCore::SubresourceLoader::didSendData):
        (WebCore::SubresourceLoader::didReceiveResponse):
        (WebCore::SubresourceLoader::didReceiveData):
        (WebCore::SubresourceLoader::didReceiveCachedMetadata):
        (WebCore::SubresourceLoader::didFinishLoading):
        (WebCore::SubresourceLoader::didFail):
        (WebCore::SubresourceLoader::willCancel):
        (WebCore::SubresourceLoader::releaseResources): Do the cleanup work that was
            duplicated throughout the various terminal CachedResourceRequest callbacks.
        * loader/SubresourceLoader.h: Fix indentation style issues.
        * loader/SubresourceLoaderClient.h: Removed.
        * loader/cache/CachedImage.cpp:
        * loader/cache/CachedRawResource.cpp:
        * loader/cache/CachedResource.cpp:
        (WebCore::cachedResourceTypeToTargetType):
        (WebCore::CachedResource::load): Do the work that had been done in
            CachedResourceRequest::load().
        (WebCore::CachedResource::finish):
        (WebCore::CachedResource::setResponse):
        (WebCore::CachedResource::stopLoading):
        * loader/cache/CachedResource.h:
        (WebCore::CachedResource::canDelete):
        * loader/cache/CachedResourceLoader.cpp:
        * loader/cache/CachedResourceRequest.cpp: Removed.
        * loader/cache/CachedResourceRequest.h: Removed.
        * loader/cf/SubresourceLoaderCF.cpp:
        * loader/chromium/CachedResourceRequestChromium.cpp: Removed.
        * loader/chromium/SubresourceLoaderChromium.cpp:

2011-11-15  Anders Carlsson  <andersca@apple.com>

        HostWindow screenToWindow/windowToScreen should be screenToRootView/rootViewToScreen
        https://bugs.webkit.org/show_bug.cgi?id=72397

        Reviewed by Dan Bernstein.

        screenToWindow and windowToScreen already use root view coordinates everywhere, with the
        exception of Mac WebKit1 which doesn't even implement the functions.

        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper position]):
        * loader/EmptyClients.h:
        * page/Chrome.cpp:
        (WebCore::Chrome::screenToRootView):
        (WebCore::Chrome::rootViewToScreen):
        * page/Chrome.h:
        * page/ChromeClient.h:
        * platform/HostWindow.h:
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::contentsToScreen):
        (WebCore::ScrollView::screenToContents):
        * platform/chromium/PopupContainer.cpp:
        (WebCore::PopupContainer::layoutAndCalculateWidgetRect):
        (WebCore::PopupContainer::refresh):

2011-11-15  Jeff Timanus  <twiz@chromium.org>

        Patch removing duplicated code in the setup of the DrawingBuffer used
        to host the back-buffer for WebGL contents.
        https://bugs.webkit.org/show_bug.cgi?id=72327

        Reviewed by Julien Chaffraix.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::copyTexImage2D):
        (WebCore::WebGLRenderingContext::copyTexSubImage2D):
        (WebCore::WebGLRenderingContext::readPixels):

2011-11-15  Eugene Nalimov  <enal@google.com>

        Event listener for active DOM object that is also DOM node can be garbage collected prematurely.
        https://bugs.webkit.org/show_bug.cgi?id=70421 

        Reviewed by Adam Barth.

        Problem demonstrated itself when HTMLAudioElement was changed to become active DOM object.
        Before that there were no DOM objects that simultaneously were nodes and active objects.
        DOM object could be held in one of 3 maps -- node map, active objects map, and all other
        objects map, and HTMLAudioElement should be in 2 maps simultaneously. When it was in the
        active DOM objects map only, its event listener could be garbage collected, because special
        code that groups listeners with wrappers could handle only wrappers for objects in the node
        map. If we put HTMLAudioElement into nodes map, it would not be active DOM node, and can be
        garbage collected prematurely itself (see https://bugs.webkit.org/show_bug.cgi?id=66878).
        Fix is to introduce 4th map -- active nodes map, and change the code accordingly.

        Test: media/audio-garbage-collect.html

        * bindings/scripts/CodeGeneratorV8.pm:
        (GenerateNamedConstructorCallback):
        (GetDomMapFunction):
        * bindings/v8/DOMDataStore.cpp:
        (WebCore::DOMDataStore::DOMDataStore):
        (WebCore::DOMDataStore::getDOMWrapperMap):
        (WebCore::DOMDataStore::weakNodeCallback):
        * bindings/v8/DOMDataStore.h:
        (WebCore::DOMDataStore::activeDomNodeMap):
        * bindings/v8/ScopedDOMDataStore.cpp:
        (WebCore::ScopedDOMDataStore::ScopedDOMDataStore):
        (WebCore::ScopedDOMDataStore::~ScopedDOMDataStore):
        * bindings/v8/StaticDOMDataStore.cpp:
        (WebCore::StaticDOMDataStore::StaticDOMDataStore):
        * bindings/v8/StaticDOMDataStore.h:
        * bindings/v8/V8DOMMap.cpp:
        (WebCore::getActiveDOMNodeMap):
        (WebCore::removeAllDOMObjects):
        (WebCore::visitActiveDOMNodes):
        * bindings/v8/V8DOMMap.h:
        * bindings/v8/V8DOMWrapper.cpp:
        (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
        (WebCore::V8DOMWrapper::getWrapperSlow):
        * bindings/v8/V8GCController.cpp:
        (WebCore::GCPrologueSpecialCase):
        (WebCore::void):
        (WebCore::Node):
        (WebCore::GCPrologueVisitor::visitDOMWrapper):
        (WebCore::V8GCController::gcPrologue):
        (WebCore::GCEpilogueHelper::GCEpilogueSpecialCase):
        (WebCore::GCEpilogueVisitor::visitDOMWrapper):
        (WebCore::V8GCController::gcEpilogue):
        * dom/Node.h:
        (WebCore::Node::isActiveNode):
        * html/HTMLAudioElement.h:
        (WebCore::HTMLAudioElement::isActiveNode):

2011-11-15  David Kilzer  <ddkilzer@apple.com>

        Remove useless const modifier from KURL::init
        <http://webkit.org/b/72387>

        Reviewed by Darin Adler.

        * platform/KURL.cpp:
        (WebCore::KURL::init): Remove useless const.

2011-11-14  Anders Carlsson  <andersca@apple.com>

        HostWindow invalidation functions should use root view coordinates
        https://bugs.webkit.org/show_bug.cgi?id=72338

        Reviewed by Dan Bernstein.

        Rename invalidateWindow to invalidateRootView, and invalidateContentsAndWindow
        to invalidateContentsAndRootView. Make sure that the rects passed to the renamed functions
        are in root view coordinates by changing contentsToWindow calls to contentsToRootView.
        
        In practice this doesn't matter because for all platforms except Mac WebKit1, root view coordinates
        and window coordinates are equivalent, and Mac WebKit1 doesn't use these invalidation functions.

        * loader/EmptyClients.h:
        * page/Chrome.cpp:
        (WebCore::Chrome::invalidateRootView):
        (WebCore::Chrome::invalidateContentsAndRootView):
        * page/Chrome.h:
        * page/ChromeClient.h:
        * page/Frame.cpp:
        (WebCore::Frame::tiledBackingStorePaintEnd):
        * page/FrameView.cpp:
        (WebCore::FrameView::invalidateRect):
        (WebCore::FrameView::scrollContentsFastPath):
        * platform/HostWindow.h:
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::rectToCopyOnScroll):
        (WebCore::ScrollView::scrollContents):
        (WebCore::ScrollView::wheelEvent):
        * platform/chromium/FramelessScrollView.cpp:
        (WebCore::FramelessScrollView::invalidateRect):
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImageChromeClient::invalidateContentsAndRootView):

2011-11-15  Philip Rogers  <pdr@google.com>

        Implement maxWidth for fillText and strokeText, fixing the canvas/philip/tests/2d.text.draw.fill.maxWidth.fontface.html test.
        https://bugs.webkit.org/show_bug.cgi?id=61528

        Reviewed by Stephen White.

        Tests: fast/canvas/2d.text.draw.fill.maxWidth.gradient.html
               fast/canvas/2d.text.draw.fill.maxWidth.negative.html
               fast/canvas/2d.text.draw.fill.maxWidth.veryLarge.html
               fast/canvas/2d.text.draw.fill.maxWidth.verySmall.html

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

2011-11-15  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Implement download support in WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=72258

        Reviewed by Martin Robinson.

        Add common download errors to ErrorsGtk.

        * platform/gtk/ErrorsGtk.cpp:
        (WebCore::downloadNetworkError):
        (WebCore::downloadCancelledByUserError):
        (WebCore::downloadDestinationError):
        * platform/gtk/ErrorsGtk.h:

2011-11-15  Cary Clark  <caryclark@google.com>

        [chromium-mac] Enable vertical text using Skia
        https://bugs.webkit.org/show_bug.cgi?id=72137

        Use Skia to draw vertical text. This is much
        faster and has higher fidelity than the old method
        of drawing text on a path.

        The graphics context passed to Skia has been
        rotated 90 degrees but the character advances
        have not, so it is necessary to unrotate the canvas,
        and re-rotate the positions.

        This generates correct output (or, at least,
        consistent with Chromium CG on Mac) for all vertical
        text tests, one of which is mentioned below.
        
        Reviewed by Stephen White.

        Test: fast/writing-mode/text-orientation-basic.html

        * platform/graphics/skia/FontSkia.cpp:
        (WebCore::setupPaint):
        (WebCore::Font::drawGlyphs):

2011-11-15  Philip Rogers  <pdr@google.com>

        Fix SVG hit testing when padding is present
        https://bugs.webkit.org/show_bug.cgi?id=37325

        Reviewed by Nikolas Zimmermann.

        Test: svg/hittest/svg-padding.xhtml

        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::nodeAtPoint):

2011-11-15  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: move generic code from DevTools.js into the WebCore.
        https://bugs.webkit.org/show_bug.cgi?id=72377

        re-landing r100269.

        Reviewed by Yury Semikhatsky.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/InspectorFrontendHostStub.js:
        (.WebInspector.InspectorFrontendHostStub.prototype.inspectedURLChanged):
        * inspector/front-end/ProfilesPanel.js:
        * inspector/front-end/Resource.js:
        * inspector/front-end/Settings.js:
        * inspector/front-end/UIUtils.js:
        (WebInspector.setToolbarColors):
        (WebInspector.resetToolbarColors):
        * inspector/front-end/inspector.js:

2011-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r100269.
        http://trac.webkit.org/changeset/100269
        https://bugs.webkit.org/show_bug.cgi?id=72383

        "Broke dozens of tests due to exception in loadingFinished"
        (Requested by tonyg-cr on #webkit).

        * English.lproj/localizedStrings.js:
        * inspector/front-end/InspectorFrontendHostStub.js:
        (.WebInspector.InspectorFrontendHostStub.prototype.inspectedURLChanged):
        * inspector/front-end/ProfilesPanel.js:
        * inspector/front-end/Resource.js:
        * inspector/front-end/Settings.js:
        * inspector/front-end/UIUtils.js:
        * inspector/front-end/inspector.js:

2011-11-15  Alexander Pavlov  <apavlov@chromium.org>

        font property does not show up as "shorthand" in inspector
        https://bugs.webkit.org/show_bug.cgi?id=15598

        Reviewed by Nikolas Zimmermann.

        The "font" CSS property is turned into a real shorthand, as its longhands used to float around
        in the resulting style declaration without any reference to their underlying "font" property.

        Test: fast/css/font-shorthand.html

        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::getPropertyValue): Extracted the "font" value building into fontValue().
        (WebCore::CSSMutableStyleDeclaration::appendFontLonghandValueIfExplicit): Added
        (WebCore::CSSMutableStyleDeclaration::fontValue): Build the "font" value from longhands.
        * css/CSSMutableStyleDeclaration.h:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::addProperty): Added optional "implicit" parameter.
        (WebCore::CSSParser::parseFont): Build respective longhands instead of the shorthand "font" property.
        * css/CSSParser.h: Added optional "implicit" parameter to addProperty().
        * css/CSSPropertyLonghand.cpp:
        (WebCore::initShorthandMap): Added "font" shorthand map entry.
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyPropertyToStyle): Separated the property application from the instance setup.
        (WebCore::CSSStyleSelector::applyPropertyToCurrentStyle): Added.
        * css/CSSStyleSelector.h: Made updateFont() public.
        * css/FontValue.cpp:
        (WebCore::FontValue::customCssText): Made use of StringBuilder.
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::setFont): Apply "font" longhands rather than the (non-existent) "font" property.
        * inspector/front-end/StylesSidebarPane.js:
        (WebInspector.StylesSidebarPane.prototype._markUsedProperties): Removed a workaround for "font" not being a shorthand.
        * page/animation/AnimationBase.cpp:
        (WebCore::addShorthandProperties): Removed a workaround for "font" not being a shorthand.

2011-11-15  Pierre Rossi  <pierre.rossi@gmail.com>

        [Qt] Clean up the remaining duplicate code after the RenderThemeQt refactoring.
        https://bugs.webkit.org/show_bug.cgi?id=72262

        Reviewed by Antonio Gomes.

        No new tests needed, this is purely cosmetic.

        * platform/qt/RenderThemeQStyle.cpp:
        (WebCore::RenderThemeQStyle::adjustMenuListButtonStyle):
        * platform/qt/RenderThemeQStyle.h:
        * platform/qt/RenderThemeQt.cpp:
        (WebCore::RenderThemeQt::adjustMenuListButtonStyle): remove the call to resetBorderRadius()
        since the mobile theme actually didn't do this.
        * platform/qt/RenderThemeQtMobile.cpp:
        (WebCore::RenderThemeQtMobile::adjustMenuListStyle):

2011-11-15  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: move generic code from DevTools.js into the WebCore.
        https://bugs.webkit.org/show_bug.cgi?id=72377

        This includes support for themed toolbar, remote debugging routines,
        removes a couple of obsolete overrides from the DevTools.js

        Reviewed by Yury Semikhatsky.

        * English.lproj/localizedStrings.js:
        * inspector/front-end/InspectorFrontendHostStub.js:
        (.WebInspector.InspectorFrontendHostStub.prototype.inspectedURLChanged):
        * inspector/front-end/ProfilesPanel.js:
        * inspector/front-end/Resource.js:
        * inspector/front-end/Settings.js:
        * inspector/front-end/UIUtils.js:
        (WebInspector.setToolbarColors):
        (WebInspector.resetToolbarColors):
        * inspector/front-end/inspector.js:

2011-11-15  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] Centralize hide_symbols and ensure all libs are built with symbol visibility & bsymbolic_functions

        Reviewed by Tor Arne Vestbø.

        * Target.pri: Eliminate duplicated symbol stuff that lives now in default_post.prf.

2011-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r100213.
        http://trac.webkit.org/changeset/100213
        https://bugs.webkit.org/show_bug.cgi?id=72371

        "Breaks test_shell_tests" (Requested by tonyg-cr on #webkit).

        * page/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::SecurityOrigin):
        * platform/SchemeRegistry.cpp:
        (WebCore::schemesWithUniqueOrigins):

2011-11-15  Alpha Lam  <hclam@chromium.org>

        [chromium] scroll deltas are cleared during commit to the main thread
        https://bugs.webkit.org/show_bug.cgi?id=71916

        Reviewed by James Robinson.

        Patch is covered by unit test.

        Add a member m_sentScrollDelta to CCLayerImpl to keep track of the scroll delta being
        sent to the main thread during commit. This gives a simpler approach to keep tracking of a
        layer's scroll delta in impl thread.

        * platform/graphics/chromium/LayerChromium.h:
        (WebCore::LayerChromium::sentScrollDelta):
        * platform/graphics/chromium/cc/CCLayerImpl.h:
        (WebCore::CCLayerImpl::sentScrollDelta):
        (WebCore::CCLayerImpl::setSentScrollDelta):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::processScrollDeltas):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:

2011-11-15  Simon Hausmann  <simon.hausmann@nokia.com>

        [Qt] REGRESSION(100123): It made inspector tests crash
        https://bugs.webkit.org/show_bug.cgi?id=72274

        Reviewed by Tor Arne Vestbø.

        * platform/qt/RenderThemeQStyle.h: Remove uninitialized and duplicated
        m_page member that should really come from RenderThemeQt.

2011-11-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed. Fix build breaks when EFL port is built.

        * CMakeLists.txt:
        * UseJSC.cmake:

2011-11-15  Noel Gordon  <noel.gordon@gmail.com>

        Make ImageFrame member getAddr() public
        https://bugs.webkit.org/show_bug.cgi?id=72321

        Reviewed by Adam Barth.

        Make ImageFrame member getAddr() public to allow ImageFrame users access to the
        underlying frame pixels if needed. Image decoders, for example, could with care
        use this service to write decoded pixels direct to the ImageFrame pixel buffer,
        avoiding intermeadiate data copies from temporary decoded pixel row buffers and
        the decoding performance loss that that entails.

        No new tests, refactoring only.

        * platform/image-decoders/ImageDecoder.h:
        (WebCore::ImageFrame::getAddr):

2011-11-14  Alexander Pavlov  <apavlov@chromium.org>

        Web Inspector: [Crash] Crash when inspecting namespaced SVG styled via element names
        https://bugs.webkit.org/show_bug.cgi?id=72261

        Reviewed by Pavel Feldman.

        Test: inspector/styles/svg-style.xhtml

        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::inlineStyleSheetText):

2011-11-15  Kent Tamura  <tkent@chromium.org>

        [V8] Fix incorrect handling of JavaScript properties in DOMStringMap
        https://bugs.webkit.org/show_bug.cgi?id=53578

        Reviewed by Adam Barth.

        Follows a JSC behavior change by r96893.

        * bindings/v8/custom/V8DOMStringMapCustom.cpp:
        (WebCore::V8DOMStringMap::namedPropertyGetter):
        Propagate to the JavaScript object if the DOMStringMap object
        doesn't have the requested item.
        (WebCore::V8DOMStringMap::namedPropertyDeleter): ditto.
        (WebCore::V8DOMStringMap::namedPropertySetter):
        Try to set a property to only a DOMStringMap object.

2011-11-14  Pavel Feldman  <pfeldman@google.com>

        Web Inspector: Command line $x fails for 3 of 4 types of XPath query
        https://bugs.webkit.org/show_bug.cgi?id=72276

        Reviewed by Timothy Hatcher.

        Test: inspector/console/console-xpath.html

        * inspector/InjectedScriptSource.js:
        (.):

2011-11-14  Ryosuke Niwa  <rniwa@webkit.org>

        Fix the change log entry for r59190.

        * ChangeLog-2010-05-24:

2011-11-14  Dmitry Lomov  <dslomov@google.com>
        
        [V8][Chromium]Serialize dense arrays densly
        https://bugs.webkit.org/show_bug.cgi?id=72198
        This patch ensures that:
        - Dense arrays are serialized densly, and not as name-value pairs
        - Sparse arrays are allocated as sparse on deserialization.
        The criteria to choose whether to serialize densly or sparsely is the size
        of a resulting serialized stream.

        Reviewed by David Levin.

        Test: fast/dom/Window/window-postmessage-arrays.html

        * bindings/v8/SerializedScriptValue.cpp:
        (WebCore::V8ObjectMap::Writer::writeDenseArray):
        (WebCore::V8ObjectMap::Writer::writeGenerateFreshSparseArray):
        (WebCore::V8ObjectMap::Writer::writeGenerateFreshDenseArray):
        (WebCore::V8ObjectMap::Serializer::writeDenseArray):
        (WebCore::V8ObjectMap::Serializer::AbstractObjectState::execDepth):
        (WebCore::V8ObjectMap::Serializer::AbstractObjectState::serializeProperties):
        (WebCore::V8ObjectMap::Serializer::ObjectState::advance):
        (WebCore::V8ObjectMap::Serializer::DenseArrayState::DenseArrayState):
        (WebCore::V8ObjectMap::Serializer::DenseArrayState::advance):
        (WebCore::V8ObjectMap::Serializer::DenseArrayState::objectDone):
        (WebCore::V8ObjectMap::Serializer::SparseArrayState::SparseArrayState):
        (WebCore::V8ObjectMap::Serializer::SparseArrayState::advance):
        (WebCore::V8ObjectMap::Serializer::serializeDensely):
        (WebCore::V8ObjectMap::Serializer::startArrayState):
        (WebCore::V8ObjectMap::Serializer::startObjectState):
        (WebCore::V8ObjectMap::Serializer::doSerialize):
        (WebCore::V8ObjectMap::Reader::read):
        (WebCore::V8ObjectMap::Deserializer::newSparseArray):
        (WebCore::V8ObjectMap::Deserializer::completeSparseArray):
        (WebCore::V8ObjectMap::Deserializer::completeDenseArray):

2011-11-14  Alexandre Elias  <aelias@google.com>

        [chromium] Fix scaleDelta zoom-out visibility rect bug
        https://bugs.webkit.org/show_bug.cgi?id=72208

        Since the scroll is no longer applied at the top layer of the layer
        tree, the scaleDelta transformation needs to be moved down to the
        same level.

        Also fix zoomAnimator to be applied the same way.  I removed zoom
        animator layout tests, as they aren't testing the actual impl-side
        codepath, and are hard to continue supporting -- we should cover zoom
        features with unit tests in the future.

        Reviewed by James Robinson.

        No new tests (planning to add later: https://bugs.webkit.org/show_bug.cgi?id=71529)

        * platform/graphics/chromium/LayerChromium.h:
        (WebCore::LayerChromium::scaleDelta):
        * platform/graphics/chromium/LayerRendererChromium.cpp:
        (WebCore::LayerRendererChromium::drawLayersInternal):
        * platform/graphics/chromium/LayerRendererChromium.h:
        * platform/graphics/chromium/cc/CCLayerImpl.cpp:
        (WebCore::CCLayerImpl::CCLayerImpl):
        (WebCore::CCLayerImpl::setScaleDelta):
        * platform/graphics/chromium/cc/CCLayerImpl.h:
        (WebCore::CCLayerImpl::scaleDelta):
        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
        (WebCore::calculateDrawTransformsAndVisibilityInternal):
        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
        (WebCore::CCLayerTreeHostImpl::setScaleDelta):
        (WebCore::CCLayerTreeHostImpl::setZoomAnimatorTransform):

2011-11-14  Chris Fleizach  <cfleizach@apple.com>

        WebProcess crashes when trying to display your "uploaded videos" page on Facebook
        https://bugs.webkit.org/show_bug.cgi?id=72334

        Reviewed by Beth Dakin.

        Protect against documents without frames.

        * accessibility/mac/WebAccessibilityObjectWrapper.mm:
        (-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]):

2011-11-14  Oliver Hunt  <oliver@apple.com>

        More V8 build fixes.

        * bindings/v8/custom/V8ArrayBufferViewCustom.h:
        (WebCore::setWebGLArrayHelper):

2011-11-14  Oliver Hunt  <oliver@apple.com>

        Fix V8 build again.

        * bindings/scripts/CodeGeneratorV8.pm:
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WTF::Float64Array::neuterBinding):

2011-11-14  Oliver Hunt  <oliver@apple.com>

        Fix V8 build.

        * bindings/scripts/CodeGeneratorV8.pm:
        * bindings/scripts/test/V8/V8Float64Array.cpp:
        (WTF::Float64Array::neuterBinding):

2011-11-14  Oliver Hunt  <oliver@apple.com>

        Start migrating typed array impl types to WTF
        https://bugs.webkit.org/show_bug.cgi?id=72336

        Reviewed by Geoffrey Garen.

        Move typed arrays from WebCore namespace to WTF, and
        start reducing dependencies on WebCore types.

        * bindings/js/JSArrayBufferViewHelper.h:
        (WebCore::setWebGLArrayHelper):
        * bindings/scripts/CodeGeneratorJS.pm:
        (IsTypedArrayType):
        (AddClassForwardIfNeeded):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorV8.pm:
        (IsTypedArrayType):
        * bindings/scripts/test/CPP/WebDOMFloat64Array.cpp: Added.
        (WebDOMFloat64Array::WebDOMFloat64Array):
        (WebDOMFloat64Array::impl):
        (toWebCore):
        (toWebKit):
        * bindings/scripts/test/CPP/WebDOMFloat64Array.h: Added.
        (WebDOMFloat64Array::~WebDOMFloat64Array):
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp: Added.
        (WebKit::kit):
        (WebKit::core):
        (webkit_dom_float64array_finalize):
        (webkit_dom_float64array_set_property):
        (webkit_dom_float64array_get_property):
        (webkit_dom_float64array_constructed):
        (webkit_dom_float64array_class_init):
        (webkit_dom_float64array_init):
        (WebKit::wrapFloat64Array):
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h: Added.
        * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h: Added.
        * bindings/scripts/test/JS/JSFloat64Array.cpp: Added.
        (WebCore::JSFloat64ArrayConstructor::JSFloat64ArrayConstructor):
        (WebCore::JSFloat64ArrayConstructor::finishCreation):
        (WebCore::JSFloat64ArrayConstructor::getOwnPropertySlot):
        (WebCore::JSFloat64ArrayConstructor::getOwnPropertyDescriptor):
        (WebCore::JSFloat64ArrayConstructor::getConstructData):
        (WebCore::getJSFloat64ArrayPrototypeTable):
        (WebCore::JSFloat64ArrayPrototype::self):
        (WebCore::getJSFloat64ArrayTable):
        (WebCore::JSFloat64Array::JSFloat64Array):
        (WebCore::JSFloat64Array::finishCreation):
        (WebCore::JSFloat64Array::createPrototype):
        (WebCore::JSFloat64Array::getOwnPropertySlot):
        (WebCore::JSFloat64Array::getOwnPropertyDescriptor):
        (WebCore::JSFloat64Array::getOwnPropertySlotByIndex):
        (WebCore::jsFloat64ArrayConstructor):
        (WebCore::JSFloat64Array::put):
        (WebCore::JSFloat64Array::putByIndex):
        (WebCore::JSFloat64Array::getOwnPropertyNames):
        (WebCore::JSFloat64Array::getConstructor):
        (WebCore::JSFloat64Array::getByIndex):
        (WebCore::toFloat64Array):
        (WTF::Float64Array::neuterBinding):
        * bindings/scripts/test/JS/JSFloat64Array.h: Added.
        (WebCore::JSFloat64Array::create):
        (WebCore::JSFloat64Array::createStructure):
        (WebCore::JSFloat64Array::impl):
        (WebCore::JSFloat64ArrayPrototype::create):
        (WebCore::JSFloat64ArrayPrototype::createStructure):
        (WebCore::JSFloat64ArrayPrototype::JSFloat64ArrayPrototype):
        (WebCore::JSFloat64ArrayConstructor::create):
        (WebCore::JSFloat64ArrayConstructor::createStructure):
        * bindings/scripts/test/ObjC/DOMFloat64Array.h: Copied from Source/WebCore/html/canvas/Int16Array.cpp.
        * bindings/scripts/test/ObjC/DOMFloat64Array.mm: Copied from Source/WebCore/html/canvas/Float32Array.cpp.
        (core):
        (kit):
        * bindings/scripts/test/ObjC/DOMFloat64ArrayInternal.h: Copied from Source/WebCore/html/canvas/Int16Array.cpp.
        * bindings/scripts/test/TestTypedArray.idl: Copied from Source/WebCore/html/canvas/Float64Array.cpp.
        * bindings/scripts/test/V8/V8Float64Array.cpp: Added.
        (WebCore::Float64ArrayInternal::V8_USE):
        (WebCore::ConfigureV8Float64ArrayTemplate):
        (WebCore::V8Float64Array::GetRawTemplate):
        (WebCore::V8Float64Array::GetTemplate):
        (WebCore::V8Float64Array::HasInstance):
        (WebCore::V8Float64Array::wrapSlow):
        (WTF::Float64Array::neuterBinding):
        (WebCore::V8Float64Array::derefObject):
        * bindings/scripts/test/V8/V8Float64Array.h: Added.
        (WebCore::V8Float64Array::toNative):
        (WebCore::V8Float64Array::existingWrapper):
        (WebCore::V8Float64Array::wrap):
        (WebCore::toV8):
        * fileapi/FileReader.h:
        * fileapi/FileReaderLoader.h:
        * fileapi/FileReaderSync.h:
        * fileapi/WebKitBlobBuilder.h:
        * html/HTMLMediaElement.h:
        * html/canvas/ArrayBuffer.cpp:
        * html/canvas/ArrayBuffer.h:
        * html/canvas/ArrayBufferView.cpp:
        (WTF::ArrayBufferView::setImpl):
        (WTF::ArrayBufferView::setRangeImpl):
        (WTF::ArrayBufferView::zeroRangeImpl):
        (WTF::ArrayBufferView::neuter):
        * html/canvas/ArrayBufferView.h:
        * html/canvas/Float32Array.cpp:
        * html/canvas/Float32Array.h:
        (WTF::Float32Array::set):
        * html/canvas/Float64Array.cpp:
        * html/canvas/Float64Array.h:
        (WTF::Float64Array::set):
        * html/canvas/Int16Array.cpp:
        * html/canvas/Int16Array.h:
        (WTF::Int16Array::set):
        * html/canvas/Int32Array.cpp:
        * html/canvas/Int32Array.h:
        (WTF::Int32Array::set):
        * html/canvas/Int8Array.cpp:
        * html/canvas/Int8Array.h:
        (WTF::Int8Array::set):
        * html/canvas/IntegralTypedArrayBase.h:
        * html/canvas/TypedArrayBase.h:
        (WTF::TypedArrayBase::set):
        (WTF::TypedArrayBase::setRange):
        (WTF::TypedArrayBase::zeroRange):
        * html/canvas/Uint16Array.cpp:
        * html/canvas/Uint16Array.h:
        (WTF::Uint16Array::set):
        * html/canvas/Uint32Array.cpp:
        * html/canvas/Uint32Array.h:
        (WTF::Uint32Array::set):
        * html/canvas/Uint8Array.cpp:
        * html/canvas/Uint8Array.h:
        (WTF::Uint8Array::set):
        * html/canvas/WebGLBuffer.h:
        * page/Crypto.h:
        * webaudio/AsyncAudioDecoder.h:
        * webaudio/AudioBuffer.cpp:
        (WebCore::AudioBuffer::AudioBuffer):
        (WebCore::AudioBuffer::zero):
        * webaudio/AudioContext.h:
        * webaudio/JavaScriptAudioNode.h:
        * webaudio/RealtimeAnalyser.h:
        * webaudio/RealtimeAnalyserNode.h:
        * webaudio/WaveShaperNode.h:
        * websockets/ThreadableWebSocketChannel.h:
        * websockets/WebSocket.h:
        * websockets/WebSocketChannel.h:
        * xml/XMLHttpRequest.h:

2011-11-14  Julien Chaffraix  <jchaffraix@webkit.org>

        Add --css-grid-layout to build-webkit and the build systems
        https://bugs.webkit.org/show_bug.cgi?id=72320

        Reviewed by Ojan Vafai.

        * Configurations/FeatureDefines.xcconfig:

2011-11-14  Daniel Bates  <dbates@rim.com>

        Remove unnecessary #include SVGResourcesCache.h in SVGDocumentExtensions.h; use forward declaration
        https://bugs.webkit.org/show_bug.cgi?id=72335

        Reviewed by Eric Seidel.

        It's sufficient to forward declare SVGResourcesCache in SVGDocumentExtensions.h and #include SVGResourcesCache.h
        in SVGDocumentExtensions.cpp. This will reduce the number of files we need to re-compile after the file
        SVGResourcesCache.h has been modified. Currently we #include SVGResourcesCache.h in SVGDocumentExtensions.h.

        * rendering/svg/RenderSVGBlock.cpp: Include SVGResourcesCache.h.
        * rendering/svg/RenderSVGContainer.cpp: Ditto.
        * rendering/svg/RenderSVGForeignObject.cpp: Ditto.
        * rendering/svg/RenderSVGImage.cpp: Ditto.
        * rendering/svg/RenderSVGInline.cpp: Ditto.
        * rendering/svg/RenderSVGModelObject.cpp: Ditto.
        * rendering/svg/RenderSVGPath.cpp: Ditto.
        * rendering/svg/RenderSVGResource.cpp: Ditto.
        * rendering/svg/RenderSVGResourceClipper.cpp: Ditto.
        * rendering/svg/RenderSVGResourceContainer.cpp: Ditto.
        * rendering/svg/RenderSVGRoot.cpp: Ditto.
        * rendering/svg/RenderSVGText.cpp: Ditto.
        * rendering/svg/SVGInlineTextBox.cpp: Ditto.
        * rendering/svg/SVGRenderSupport.cpp: Ditto.
        * svg/SVGDocumentExtensions.cpp: Ditto.
        * svg/SVGDocumentExtensions.h: Forward declare SVGResourcesCache.

2011-11-14  Rafael Weinstein  <rafaelw@chromium.org>

        [MutationObservers] Add histogram collection for usage of DOM Mutation Events
        https://bugs.webkit.org/show_bug.cgi?id=72316

        Reviewed by Ryosuke Niwa.

        This patch adds six calls in ~Document() which simply pipe-out to the embedder
        the (already-collected) bits of whether varous DOM Mutation Events were registered
        on the document.

        No tests needed. No functional changes.

        * dom/Document.cpp:
        (WebCore::histogramMutationEventUsage):
        (WebCore::Document::~Document):

2011-11-14  Simon Fraser  <simon.fraser@apple.com>

        div with webkit-transform + webkit-box-reflect disappears when switching tabs
        https://bugs.webkit.org/show_bug.cgi?id=53355

        Reviewed by Dean Jackson.

        Tickle Core Animation into updating the layer's content property when
        switching back to a tab which has composited reflections. This hack is
        needed becuase reflections involve sharing layer contents between layers.

        * platform/graphics/mac/WebLayer.mm:
        (-[WebLayer actionForKey:]):

2011-11-14  Adam Barth  <abarth@webkit.org>

        Unique origins shouldn't remember their scheme, host, or port
        https://bugs.webkit.org/show_bug.cgi?id=72308

        Reviewed by Eric Seidel.

        This patch contains the bulk (all?) of the behavior differences in this
        patch series.  Unique origins shouldn't remember their schemes.  Doing
        so causes some privileges (e.g., local access) to leak into unique
        origins.

        * page/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::SecurityOrigin):
            - Explicitly clear out the protocol, host, and port for unique
              origins.  A future patch will refactor all this code to be more
              elegant.
        * platform/SchemeRegistry.cpp:
        (WebCore::schemesWithUniqueOrigins):
            - Merge "about" and "javascript" in with the general case now that
              we don't have a separate notion of an empty origin.

2011-11-14  Adam Barth  <abarth@webkit.org>

        Don't special-case "data" URLs in drag-and-drop logic
        https://bugs.webkit.org/show_bug.cgi?id=72322

        Reviewed by Eric Seidel.

        See the bug for more details.

        Test: editing/pasteboard/drag-drop-to-data-url.html

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

2011-11-14  Adrienne Walker  <enne@google.com>

        [chromium] Pipe compositor commit/swap up to WebWidgetClient
        https://bugs.webkit.org/show_bug.cgi?id=72041

        Reviewed by Darin Fisher.

        * platform/graphics/chromium/cc/CCLayerTreeHost.h:
        (WebCore::CCLayerTreeHost::didCommitAndDrawFrame):
        (WebCore::CCLayerTreeHost::didCompleteSwapBuffers):
        * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
        (WebCore::CCSingleThreadProxy::doComposite):
        * platform/graphics/chromium/cc/CCThreadProxy.cpp:
        (WebCore::CCThreadProxy::onSwapBuffersCompleteOnImplThread):
        (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
        (WebCore::CCThreadProxy::didCommitAndDrawFrame):
        (WebCore::CCThreadProxy::didCompleteSwapBuffers):
        * platform/graphics/chromium/cc/CCThreadProxy.h:

2011-11-14  Tony Chang  <tony@chromium.org>

        Remove the CSS3_FLEXBOX compile time flag and enable on all ports
        https://bugs.webkit.org/show_bug.cgi?id=72196

        Reviewed by Ojan Vafai.

        * Configurations/FeatureDefines.xcconfig:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
        * css/CSSFlexValue.cpp:
        * css/CSSFlexValue.h:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseFlex):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::isInheritedProperty):
        * css/CSSPropertyNames.in:
        * css/CSSStyleApplyProperty.cpp:
        (WebCore::ApplyPropertyLength::applyValue):
        (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSValue.cpp:
        (WebCore::CSSValue::cssText):
        (WebCore::CSSValue::destroy):
        * css/CSSValue.h:
        * css/CSSValueKeywords.in:
        * rendering/RenderFlexibleBox.cpp:
        * rendering/RenderFlexibleBox.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createObject):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::isFlexibleBoxIncludingDeprecated):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::RenderStyle):
        (WebCore::RenderStyle::diff):
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleFlexibleBoxData.cpp:
        * rendering/style/StyleFlexibleBoxData.h:
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:

2011-11-14  Vincent Scheib  <scheib@chromium.org>

        Mouse Lock: Renaming to 'Pointer Lock': Runtime Enable Flags
        https://bugs.webkit.org/show_bug.cgi?id=72303

        Reviewed by Darin Fisher.

        * bindings/generic/RuntimeEnabledFeatures.cpp:
        * bindings/generic/RuntimeEnabledFeatures.h:
        (WebCore::RuntimeEnabledFeatures::webkitPointerLockEnabled):
        (WebCore::RuntimeEnabledFeatures::setWebkitPointerLockEnabled):
        (WebCore::RuntimeEnabledFeatures::webkitPointerEnabled):
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h:
        (WebCore::Settings::setPointerLockEnabled):
        (WebCore::Settings::PointerLockEnabled):

2011-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r100176.
        http://trac.webkit.org/changeset/100176
        https://bugs.webkit.org/show_bug.cgi?id=72309

        it broke the Mac builds (missing symbols) in a non-obvious way
        (Requested by jchaffraix on #webkit).

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::toJS):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::toV8Object):
        * html/canvas/WebGLExperimentalCompressedTextures.cpp: Removed.
        * html/canvas/WebGLExperimentalCompressedTextures.h: Removed.
        * html/canvas/WebGLExperimentalCompressedTextures.idl: Removed.
        * html/canvas/WebGLExtension.h:
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::getExtension):
        (WebCore::WebGLRenderingContext::getParameter):
        (WebCore::WebGLRenderingContext::getSupportedExtensions):
        * html/canvas/WebGLRenderingContext.h:
        * platform/graphics/Extensions3D.h:
        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
        * platform/graphics/qt/GraphicsContext3DQt.cpp:

2011-11-14  Tony Chang  <tony@chromium.org>

        remove -wap-marquee css propery value
        https://bugs.webkit.org/show_bug.cgi?id=72296

        Reviewed by Adam Barth.

        This css value is no longer used.

        * css/CSSValueKeywords.in:

2011-11-14  Julien Chaffraix  <jchaffraix@webkit.org>

        Crash in RenderTableSection::splitColumn
        https://bugs.webkit.org/show_bug.cgi?id=70171

        Reviewed by David Hyatt.

        Tests: fast/table/crash-splitColumn-2.html
               fast/table/crash-splitColumn-3.html
               fast/table/crash-splitColumn.html

        The old code would not take into account the fact that each RenderTableSection
        can set its m_needsCellRecalc flag independently of the rest.

        This means that you cannot assume that you can always split or append columns to
        all the sections. Our approach is to skip sections needing cell recalc in several
        parts of the code as they will be properly reset to the table's representations
        during a cell recalc.

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::splitColumn):
        (WebCore::RenderTable::appendColumn):
        Skip sections needing cell recalc as they will be properly updated later.

        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::addCell):
        Ignore a section needing cell recalc as addCell will be called after sync'ing
        the internal column representation in recalcCells.

        (WebCore::RenderTableSection::recalcCells):
        Clear the flag at the beginning of the function to activate the previous functions.
        Added a comment as to why this is fine.

        (WebCore::RenderTableSection::appendColumn):
        Added an ASSERT. If we need cell recalc, we should NEVER update m_grid outside
        of recalcCells().

2011-11-14  Adam Barth  <abarth@webkit.org>

        Remove the concept of an empty SecurityOrigin
        https://bugs.webkit.org/show_bug.cgi?id=72287

        Reviewed by Eric Seidel.

        This concept is fragile and doesn't exist in the specs.  Previous
        patches have removed most of the code relying upon this function.  This
        patch removes a couple stragglers.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::postMessage):
            - This check should really be about unique origins because it
              doesn't make sense to target postMessages at unique origins, as
              explained in the comment.
        * page/SecurityOrigin.cpp:
        * page/SecurityOrigin.h:

2011-11-14  Adam Barth  <abarth@webkit.org>

        SecurityContext::isSecureTransitionTo should not refer to empty security origins
        https://bugs.webkit.org/show_bug.cgi?id=72277

        Reviewed by Eric Seidel.

        Now that we're tracking the "failed to initialized SecurityOrigin"
        state explicitly, we should use that to determine whether we can make a
        secure transition.

        * dom/SecurityContext.cpp:
        (WebCore::SecurityContext::isSecureTransitionTo):

2011-11-14  Vincent Scheib  <scheib@chromium.org>

        Mouse Lock: Renaming to 'Pointer Lock': ENABLE Flags
        https://bugs.webkit.org/show_bug.cgi?id=72286

        Reviewed by Adam Barth.

        * bindings/generic/RuntimeEnabledFeatures.cpp:
        * bindings/generic/RuntimeEnabledFeatures.h:
        * dom/MouseEvent.idl:
        * dom/MouseRelatedEvent.h:
        * page/MouseLockable.cpp:
        * page/MouseLockable.h:
        * page/MouseLockable.idl:
        * page/Navigator.cpp:
        * page/Navigator.h:
        * page/Navigator.idl:
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h:

2011-11-14  Anna Cavender  <annacc@chromium.org>

        Remove TextTrackCueIndex and TextTrackCueSet.  No longer needed.
        https://bugs.webkit.org/show_bug.cgi?id=72216

        Reviewed by Sam Weinig.

        No new tests. No new functionality.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Target.pri:
        * WebCore.gypi:
        * WebCore.xcodeproj/project.pbxproj:
        * html/TextTrackCueIndex.cpp: Removed.
        * html/TextTrackCueIndex.h: Removed.

2011-10-10  Robert Hogan  <robert@webkit.org>

        CSS 2.1 failure: border-spacing-applies-to-015.htm
        https://bugs.webkit.org/show_bug.cgi?id=69773

        Reviewed by David Hyatt.

        The CSS test suite expects UAs to allow multiple captions per table.
        Replace m_caption with a Vector called m_captions.

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::RenderTable):
        (WebCore::RenderTable::addChild):
        (WebCore::RenderTable::removeChild):
        (WebCore::RenderTable::adjustLogicalHeightForCaption):
        (WebCore::RenderTable::layout):
        (WebCore::RenderTable::addOverflowFromChildren):
        (WebCore::RenderTable::paintObject):
        (WebCore::RenderTable::subtractCaptionRect):
        (WebCore::RenderTable::computePreferredLogicalWidths):
        (WebCore::RenderTable::nextColElement):
        (WebCore::RenderTable::colElement):
        (WebCore::RenderTable::recalcCaption):
        (WebCore::RenderTable::recalcSections):
        (WebCore::RenderTable::overflowClipRect):
        (WebCore::RenderTable::nodeAtPoint):
        * rendering/RenderTable.h:

2011-11-14  Gregg Tavares  <gman@google.com>

        Implement WEBGL_EXPERIMENTAL_compressed_textures WebGL extension
        https://bugs.webkit.org/show_bug.cgi?id=72086

        Reviewed by Kenneth Russell.

        No new tests. Will write final test once on hardware.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.gypi:
        * WebCore.pro:
        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::toJS):
        * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
        (WebCore::toV8Object):
        * html/canvas/WebGLExperimentalCompressedTextures.cpp: Added.
        (WebCore::WebGLExperimentalCompressedTextures::WebGLExperimentalCompressedTextures):
        (WebCore::WebGLExperimentalCompressedTextures::~WebGLExperimentalCompressedTextures):
        (WebCore::WebGLExperimentalCompressedTextures::getName):
        (WebCore::WebGLExperimentalCompressedTextures::create):
        (WebCore::WebGLExperimentalCompressedTextures::supported):
        (WebCore::WebGLExperimentalCompressedTextures::validateCompressedTexFormat):
        (WebCore::WebGLExperimentalCompressedTextures::validateCompressedTexFuncData):
        (WebCore::WebGLExperimentalCompressedTextures::validateCompressedTexSubDimensions):
        (WebCore::WebGLExperimentalCompressedTextures::compressedTexImage2D):
        (WebCore::WebGLExperimentalCompressedTextures::compressedTexSubImage2D):
        (WebCore::WebGLExperimentalCompressedTextures::getCompressedTextureFormats):
        * html/canvas/WebGLExperimentalCompressedTextures.h: Added.
        * html/canvas/WebGLExperimentalCompressedTextures.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
        * html/canvas/WebGLExtension.h:
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::getExtension):
        (WebCore::WebGLRenderingContext::getParameter):
        (WebCore::WebGLRenderingContext::getSupportedExtensions):
        * html/canvas/WebGLRenderingContext.h:
        * platform/graphics/Extensions3D.h:
        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::compressedTexImage2D):
        (WebCore::GraphicsContext3D::compressedTexSubImage2D):
        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
        (WebCore::GraphicsContext3D::compressedTexImage2D):
        (WebCore::GraphicsContext3D::compressedTexSubImage2D):
        * platform/graphics/qt/GraphicsContext3DQt.cpp:
        (WebCore::GraphicsContext3D::compressedTexImage2D):
        (WebCore::GraphicsContext3D::compressedTexSubImage2D):

2011-11-14  Michael Nordman  <michaeln@google.com>

        Return more complete error and exception messages when a
        WebSQLDatabase function fails. Produce console logging
        for openDatabase() errors and vacuum errors. Add a lastErrorMessage
        accessor to the DatabaseSync interface.
        https://bugs.webkit.org/show_bug.cgi?id=71575

        Reviewed by David Levin.

        Yes, see LayoutTests/ChangeLog in this patch.

        * platform/sql/SQLiteDatabase.cpp:
        (WebCore::SQLiteDatabase::SQLiteDatabase):
        (WebCore::SQLiteDatabase::open):
        (WebCore::SQLiteDatabase::close):
        (WebCore::SQLiteDatabase::lastError):
        (WebCore::SQLiteDatabase::lastErrorMsg):
        (WebCore::SQLiteDatabase:: runVacuumCommand):
        (WebCore::SQLiteDatabase:: runIncrementalVacuumCommand):
        Reflect errors in the open() method in lastError() and lastErrorMsg().
        Return an error codes for runVacuumCommand() and runIncrementalVacuumCommand().

        * platform/sql/SQLiteDatabase.h:
        * storage/AbstractDatabase.cpp:
        (WebCore::formatErrorMessage):
        (WebCore::AbstractDatabase::performOpenAndVerify):
        (WebCore::AbstractDatabase::logErrorMessage):
        During openAndVerify, produce formatted error messages that include what was being done, the sqlite error code,
        and the sqlite error message. Add a helper to log message to the console.

        * storage/AbstractDatabase.h:
        * storage/ChangeVersionWrapper.cpp:
        (WebCore::ChangeVersionWrapper::performPreflight):
        (WebCore::ChangeVersionWrapper::performPostflight):
        * storage/Database.cpp:
        (WebCore::Database::openDatabase):
        (WebCore::Database::openAndVerifyVersion):
        (WebCore::Database::performOpenAndVerify):
        * storage/Database.h:
        * storage/DatabaseSync.cpp:
        (WebCore::DatabaseSync::openDatabaseSync):
        (WebCore::DatabaseSync::changeVersion):
        (WebCore::DatabaseSync::runTransaction):
        * storage/DatabaseSync.h:
        (WebCore::DatabaseSync::lastErrorMessage):
        (WebCore::DatabaseSync::setLastErrorMessage):
        * storage/DatabaseSync.idl:
        Add a lastErrorMessage attribute so javascript callers can
        retrieve more detailed information about what went wrong.

        * storage/DatabaseTask.cpp:
        (WebCore::Database::DatabaseOpenTask::DatabaseOpenTask):
        (WebCore::Database::DatabaseOp
