1. 27 Jan, 2010 12 commits
    • zimmermann@webkit.org's avatar
      2010-01-26 Nikolas Zimmermann <nzimmermann@rim.com> · 45b04eff
      zimmermann@webkit.org authored
              Not reviewed. Attempt to fix V8 - change SetterMethod function signatures, just like it has been done for JSSVGPODTypeWrapper.
      
              * bindings/v8/V8SVGPODTypeWrapper.h:
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53881 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      45b04eff
    • zimmermann@webkit.org's avatar
      2010-01-26 Nikolas Zimmermann <nzimmermann@rim.com> · 4b8cea10
      zimmermann@webkit.org authored
              Not reviewd. Revert Base.xcconfig changes, was not meant to be committed.
      
              * Configurations/Base.xcconfig:
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53880 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      4b8cea10
    • zimmermann@webkit.org's avatar
      2010-01-26 Nikolas Zimmermann <nzimmermann@rim.com> · 1534e2e0
      zimmermann@webkit.org authored
              Reviewed by Oliver Hunt.
      
              SVG consumes way too much memory to store animated properties in the DOM
              https://bugs.webkit.org/show_bug.cgi?id=34188
      
              Shrink WebCore library size to 75% (measured in debug builds) and reduce SVG memory usage to <25%.
              Adding Oliver testcase as manual-tests/svg-node-count-vs-scroll.xhtml, which creates an arbitary number of
              rects (50.000 <rect> elements added to the DOM by default) - memory usage down to 111M from 503M (RPRVT).
              The SVG DOM side is almost fine, still some optimizations possible, that will be implemented soon - next
              target is the SVG render tree, there are plenty of possibilities to reduce memory usage there.
      
              Redesign the way we store animated properties in the individual SVG*Element files. Short story: In order
              to support SVG DOM through the bindings (e.g. JS) we need to associate SVGAnimatedProperty objects with
              the SVGElement object that created it - we used to store this pointer directly in the SVGAnimatedProperty.
              This means, every SVGAnimatedProperty stored in a SVGRectElement, stored a pointer to the SVGRectElement, resulting
              in excessive memory usage. This is now properly implemented, without wasting tons of memory. Unfortunately this
              requires touching all SVG*Element files.
      
              Detailed list of changes:
              - Remove template bloat by not specializing class templates for each attributeName/tagName combination. Instead
                SVGAnimatedProperty is a non-specialized template class now, only depending on the AnimatedType (ie. SVGLength for SVGAnimatedLength)
                -> This heavily reduces the generated code, thus shrinking WebCore size. I hope we can build windows again without SVGAllInOne.cpp
      
              - Remove "exportStrings" / "exportString" handling from make_names.pl - SVG defined string literals for each QualifiedName,
                in order to use template specialization based on "const char*" parameters. All that bloat is gone, so there's no need for it anymore.
      
              - Redesign SVGAnimatedProperty so it does not need any back-pointers to the SVGElement that created it
      
              - Don't actually store the XML DOM attribute name associated with a SVG DOM property in SVGAnimatedProperty, move the associatedAttributeName()
                function inside the macro declaration and just return the passed macro parameter DOMAttribute there, storing is inefficient and useless.
      
              - Remove SynchronizablePropertyController, which was living in SVGElement as member variable, keeping a HashMap<AttributeName, SVGAnimatedProperty>.
                It was needed before to lookup a SVGAnimatedProperty for a XML DOM attribute, in order to synchronize SVG <-> XML dom properties/attributes.
                Instead just add a "synchronizeProperty(const QualifiedName&)" method to all SVG*Element classes. As each SVG*Element class knows about its
                animated properties it can just ask them to synchronize themselves - no need for any dynamic lookups anymore.
      
              - Remove SynchronizableTypeWrapper which added more complexity for the sake of SVG <-> XML DOM synchronization, all replaced by synchronizeProperty.
      
              - Pass around any POD objects as const references, instead of copying them for no reason.
      
              - Clean up SVGAnimatedProperty, splitting up into SVGAnimatedProperty/PropertySynchronizer/PropertyTraits.
      
              - Remove baseValue/setBaseValue code from SVGDocumentExtensions, not needed anymore.
      
              ... and tons of changes to all SVG*Element classes, adapting to the new way of handling animated properties.
      
              * GNUmakefile.am: Remove Synchronizable* from build, add new SVGAnimatedPropertySynchronizer/Traits files
              * WebCore.gypi: Ditto.
              * WebCore.vcproj/WebCore.vcproj: Ditto.
              * WebCore.xcodeproj/project.pbxproj: Ditto.
              * bindings/js/JSSVGPODTypeWrapper.h: Change synchronization callback signatures, as we pass around const-references now.
              * dom/Element.cpp: Let updateAnimatedSVGAttribute take a QualifiedName instead of pure Strings.
              (WebCore::Element::getAttribute):
              (WebCore::Element::hasAttributes):
              * dom/Element.h:
              (WebCore::Element::updateAnimatedSVGAttribute):
              (WebCore::Element::attributes):
              * dom/make_names.pl: Remove SVG specific "exportString" / "exportStrings" functionality, see above.
              * html/HTMLAttributeNames.in: Remove "exportString" tag from "className" attribute.
              * manual-tests/svg-node-count-vs-scroll.xhtml: Added. Can be used to verify memory consumption with a lot of DOM objects.
              * mathml/mathattrs.in: MathML doesn't need "exportStrings" - remove it.
              * mathml/mathtags.in: Ditto.
              * svg/SVGAElement.cpp:
              (WebCore::SVGAElement::SVGAElement):
              (WebCore::SVGAElement::synchronizeProperty):
              * svg/SVGAElement.h:
              * svg/SVGAllInOne.cpp: Remove SynchronizablePropertyController.cpp
              * svg/SVGAltGlyphElement.cpp:
              (WebCore::SVGAltGlyphElement::SVGAltGlyphElement):
              (WebCore::SVGAltGlyphElement::synchronizeProperty):
              * svg/SVGAltGlyphElement.h:
              * svg/SVGAnimateTransformElement.cpp:
              (WebCore::SVGAnimateTransformElement::applyResultsToTarget):
              * svg/SVGAnimatedProperty.h: Rewritten, see above for details.
              (WebCore::SVGAnimatedPropertyTearOff::create):
              (WebCore::SVGAnimatedPropertyTearOff::setBaseVal):
              (WebCore::SVGAnimatedPropertyTearOff::setAnimVal):
              (WebCore::SVGAnimatedPropertyTearOff::baseVal):
              (WebCore::SVGAnimatedPropertyTearOff::animVal):
              (WebCore::SVGAnimatedPropertyTearOff::associatedAttributeName):
              (WebCore::SVGAnimatedPropertyTearOff::SVGAnimatedPropertyTearOff):
              (WebCore::SVGAnimatedPropertyTearOff::~SVGAnimatedPropertyTearOff):
              (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
              (WebCore::SVGAnimatedProperty::SVGAnimatedProperty):
              (WebCore::SVGAnimatedProperty::value):
              (WebCore::SVGAnimatedProperty::baseValue):
              (WebCore::SVGAnimatedProperty::setValue):
              (WebCore::SVGAnimatedProperty::setBaseValue):
              (WebCore::SVGAnimatedProperty::shouldSynchronize):
              (WebCore::SVGAnimatedProperty::setShouldSynchronize):
              * svg/SVGAnimatedPropertySynchronizer.h: Added.
              (WebCore::):
              * svg/SVGAnimatedPropertyTraits.h: Added.
              (WebCore::):
              * svg/SVGAnimatedTemplate.h: Move SVGAnimatedPropertyTraits into its own file.
              (WebCore::SVGAnimatedTemplate::forgetWrapper):
              (WebCore::lookupOrCreateWrapper):
              * svg/SVGAnimationElement.cpp:
              (WebCore::SVGAnimationElement::SVGAnimationElement):
              (WebCore::SVGAnimationElement::synchronizeProperty):
              * svg/SVGAnimationElement.h:
              * svg/SVGCircleElement.cpp:
              (WebCore::SVGCircleElement::SVGCircleElement):
              (WebCore::SVGCircleElement::synchronizeProperty):
              * svg/SVGCircleElement.h:
              * svg/SVGClipPathElement.cpp:
              (WebCore::SVGClipPathElement::SVGClipPathElement):
              (WebCore::SVGClipPathElement::synchronizeProperty):
              * svg/SVGClipPathElement.h:
              * svg/SVGComponentTransferFunctionElement.cpp:
              (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
              (WebCore::SVGComponentTransferFunctionElement::parseMappedAttribute):
              (WebCore::SVGComponentTransferFunctionElement::synchronizeProperty):
              * svg/SVGComponentTransferFunctionElement.h:
              * svg/SVGCursorElement.cpp:
              (WebCore::SVGCursorElement::SVGCursorElement):
              (WebCore::SVGCursorElement::synchronizeProperty):
              * svg/SVGCursorElement.h:
              * svg/SVGDefsElement.cpp:
              (WebCore::SVGDefsElement::SVGDefsElement):
              (WebCore::SVGDefsElement::synchronizeProperty):
              * svg/SVGDefsElement.h:
              * svg/SVGDocumentExtensions.h:
              * svg/SVGElement.cpp: Adapt to synchronization changes: use synchronizeProperty() call, instead of SynchronizablePropertyController.
              (WebCore::SVGElement::updateAnimatedSVGAttribute):
              * svg/SVGElement.h: Don't store SynchronizablePropertyController anymore, it's gone.
              (WebCore::SVGElement::synchronizeProperty):
              (WebCore::SVGElement::setSynchronizedSVGAttributes):
              * svg/SVGEllipseElement.cpp:
              (WebCore::SVGEllipseElement::SVGEllipseElement):
              (WebCore::SVGEllipseElement::synchronizeProperty):
              * svg/SVGEllipseElement.h:
              * svg/SVGExternalResourcesRequired.cpp:
              * svg/SVGExternalResourcesRequired.h:
              * svg/SVGFEBlendElement.cpp:
              (WebCore::SVGFEBlendElement::SVGFEBlendElement):
              (WebCore::SVGFEBlendElement::synchronizeProperty):
              * svg/SVGFEBlendElement.h:
              * svg/SVGFEColorMatrixElement.cpp:
              (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
              (WebCore::SVGFEColorMatrixElement::synchronizeProperty):
              * svg/SVGFEColorMatrixElement.h:
              * svg/SVGFEComponentTransferElement.cpp:
              (WebCore::SVGFEComponentTransferElement::SVGFEComponentTransferElement):
              (WebCore::SVGFEComponentTransferElement::synchronizeProperty):
              * svg/SVGFEComponentTransferElement.h:
              * svg/SVGFECompositeElement.cpp:
              (WebCore::SVGFECompositeElement::SVGFECompositeElement):
              (WebCore::SVGFECompositeElement::parseMappedAttribute):
              (WebCore::SVGFECompositeElement::synchronizeProperty):
              * svg/SVGFECompositeElement.h:
              * svg/SVGFEDiffuseLightingElement.cpp:
              (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
              (WebCore::SVGFEDiffuseLightingElement::synchronizeProperty):
              * svg/SVGFEDiffuseLightingElement.h:
              * svg/SVGFEDisplacementMapElement.cpp:
              (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
              (WebCore::SVGFEDisplacementMapElement::synchronizeProperty):
              * svg/SVGFEDisplacementMapElement.h:
              * svg/SVGFEGaussianBlurElement.cpp:
              (WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
              (WebCore::SVGFEGaussianBlurElement::synchronizeProperty):
              * svg/SVGFEGaussianBlurElement.h:
              * svg/SVGFEImageElement.cpp:
              (WebCore::SVGFEImageElement::SVGFEImageElement):
              (WebCore::SVGFEImageElement::synchronizeProperty):
              * svg/SVGFEImageElement.h:
              * svg/SVGFELightElement.cpp:
              (WebCore::SVGFELightElement::SVGFELightElement):
              (WebCore::SVGFELightElement::synchronizeProperty):
              * svg/SVGFELightElement.h:
              * svg/SVGFEMergeNodeElement.cpp:
              (WebCore::SVGFEMergeNodeElement::SVGFEMergeNodeElement):
              (WebCore::SVGFEMergeNodeElement::synchronizeProperty):
              * svg/SVGFEMergeNodeElement.h:
              * svg/SVGFEMorphologyElement.cpp:
              (WebCore::SVGFEMorphologyElement::SVGFEMorphologyElement):
              (WebCore::SVGFEMorphologyElement::synchronizeProperty):
              * svg/SVGFEMorphologyElement.h:
              * svg/SVGFEOffsetElement.cpp:
              (WebCore::SVGFEOffsetElement::SVGFEOffsetElement):
              (WebCore::SVGFEOffsetElement::synchronizeProperty):
              * svg/SVGFEOffsetElement.h:
              * svg/SVGFESpecularLightingElement.cpp:
              (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
              (WebCore::SVGFESpecularLightingElement::synchronizeProperty):
              * svg/SVGFESpecularLightingElement.h:
              * svg/SVGFETileElement.cpp:
              (WebCore::SVGFETileElement::SVGFETileElement):
              (WebCore::SVGFETileElement::synchronizeProperty):
              * svg/SVGFETileElement.h:
              * svg/SVGFETurbulenceElement.cpp:
              (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
              (WebCore::SVGFETurbulenceElement::synchronizeProperty):
              * svg/SVGFETurbulenceElement.h:
              * svg/SVGFilterElement.cpp:
              (WebCore::SVGFilterElement::SVGFilterElement):
              (WebCore::SVGFilterElement::synchronizeProperty):
              * svg/SVGFilterElement.h:
              * svg/SVGFilterPrimitiveStandardAttributes.cpp:
              (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
              (WebCore::SVGFilterPrimitiveStandardAttributes::synchronizeProperty):
              * svg/SVGFilterPrimitiveStandardAttributes.h:
              * svg/SVGFitToViewBox.cpp:
              * svg/SVGFitToViewBox.h:
              * svg/SVGFontElement.cpp:
              (WebCore::SVGFontElement::SVGFontElement):
              (WebCore::SVGFontElement::synchronizeProperty):
              * svg/SVGFontElement.h:
              * svg/SVGForeignObjectElement.cpp:
              (WebCore::SVGForeignObjectElement::SVGForeignObjectElement):
              (WebCore::SVGForeignObjectElement::synchronizeProperty):
              * svg/SVGForeignObjectElement.h:
              * svg/SVGGElement.cpp:
              (WebCore::SVGGElement::SVGGElement):
              (WebCore::SVGGElement::synchronizeProperty):
              * svg/SVGGElement.h:
              * svg/SVGGradientElement.cpp:
              (WebCore::SVGGradientElement::SVGGradientElement):
              (WebCore::SVGGradientElement::synchronizeProperty):
              * svg/SVGGradientElement.h:
              * svg/SVGImageElement.cpp:
              (WebCore::SVGImageElement::SVGImageElement):
              (WebCore::SVGImageElement::synchronizeProperty):
              * svg/SVGImageElement.h:
              * svg/SVGLineElement.cpp:
              (WebCore::SVGLineElement::SVGLineElement):
              (WebCore::SVGLineElement::synchronizeProperty):
              * svg/SVGLineElement.h:
              * svg/SVGLinearGradientElement.cpp:
              (WebCore::SVGLinearGradientElement::SVGLinearGradientElement):
              (WebCore::SVGLinearGradientElement::synchronizeProperty):
              * svg/SVGLinearGradientElement.h:
              * svg/SVGList.h: Adapt to const-reference changes.
              (WebCore::SVGPODListItem::setValue):
              * svg/SVGMPathElement.cpp:
              (WebCore::SVGMPathElement::SVGMPathElement):
              (WebCore::SVGMPathElement::synchronizeProperty):
              * svg/SVGMPathElement.h:
              * svg/SVGMarkerElement.cpp:
              (WebCore::SVGMarkerElement::SVGMarkerElement):
              (WebCore::SVGMarkerElement::synchronizeProperty):
              * svg/SVGMarkerElement.h:
              * svg/SVGMaskElement.cpp:
              (WebCore::SVGMaskElement::SVGMaskElement):
              (WebCore::SVGMaskElement::synchronizeProperty):
              * svg/SVGMaskElement.h:
              * svg/SVGPathElement.cpp:
              (WebCore::SVGPathElement::SVGPathElement):
              (WebCore::SVGPathElement::synchronizeProperty):
              * svg/SVGPathElement.h:
              * svg/SVGPatternElement.cpp:
              (WebCore::SVGPatternElement::SVGPatternElement):
              (WebCore::SVGPatternElement::synchronizeProperty):
              * svg/SVGPatternElement.h:
              * svg/SVGPolyElement.cpp:
              (WebCore::SVGPolyElement::SVGPolyElement):
              (WebCore::SVGPolyElement::svgAttributeChanged):
              (WebCore::SVGPolyElement::synchronizeProperty):
              * svg/SVGPolyElement.h:
              * svg/SVGRadialGradientElement.cpp:
              (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
              (WebCore::SVGRadialGradientElement::synchronizeProperty):
              * svg/SVGRadialGradientElement.h:
              * svg/SVGRectElement.cpp:
              (WebCore::SVGRectElement::SVGRectElement):
              (WebCore::SVGRectElement::synchronizeProperty):
              * svg/SVGRectElement.h:
              * svg/SVGSVGElement.cpp:
              (WebCore::SVGSVGElement::SVGSVGElement):
              (WebCore::SVGSVGElement::synchronizeProperty):
              * svg/SVGSVGElement.h:
              * svg/SVGScriptElement.cpp:
              (WebCore::SVGScriptElement::SVGScriptElement):
              (WebCore::SVGScriptElement::synchronizeProperty):
              * svg/SVGScriptElement.h:
              * svg/SVGStopElement.cpp:
              (WebCore::SVGStopElement::SVGStopElement):
              (WebCore::SVGStopElement::synchronizeProperty):
              * svg/SVGStopElement.h:
              * svg/SVGStyledElement.cpp:
              (WebCore::SVGStyledElement::SVGStyledElement):
              (WebCore::SVGStyledElement::parseMappedAttribute):
              (WebCore::SVGStyledElement::synchronizeProperty):
              * svg/SVGStyledElement.h:
              * svg/SVGStyledTransformableElement.cpp:
              (WebCore::SVGStyledTransformableElement::SVGStyledTransformableElement):
              (WebCore::SVGStyledTransformableElement::synchronizeProperty):
              * svg/SVGStyledTransformableElement.h:
              * svg/SVGSwitchElement.cpp:
              (WebCore::SVGSwitchElement::SVGSwitchElement):
              (WebCore::SVGSwitchElement::synchronizeProperty):
              * svg/SVGSwitchElement.h:
              * svg/SVGSymbolElement.cpp:
              (WebCore::SVGSymbolElement::SVGSymbolElement):
              (WebCore::SVGSymbolElement::synchronizeProperty):
              * svg/SVGSymbolElement.h:
              * svg/SVGTRefElement.cpp:
              (WebCore::SVGTRefElement::SVGTRefElement):
              (WebCore::SVGTRefElement::synchronizeProperty):
              * svg/SVGTRefElement.h:
              * svg/SVGTextContentElement.cpp:
              (WebCore::SVGTextContentElement::SVGTextContentElement):
              (WebCore::SVGTextContentElement::synchronizeProperty):
              * svg/SVGTextContentElement.h:
              * svg/SVGTextElement.cpp:
              (WebCore::SVGTextElement::SVGTextElement):
              (WebCore::SVGTextElement::synchronizeProperty):
              * svg/SVGTextElement.h:
              * svg/SVGTextPathElement.cpp:
              (WebCore::SVGTextPathElement::SVGTextPathElement):
              (WebCore::SVGTextPathElement::synchronizeProperty):
              * svg/SVGTextPathElement.h:
              * svg/SVGTextPositioningElement.cpp:
              (WebCore::SVGTextPositioningElement::SVGTextPositioningElement):
              (WebCore::SVGTextPositioningElement::synchronizeProperty):
              * svg/SVGTextPositioningElement.h:
              * svg/SVGURIReference.cpp:
              * svg/SVGURIReference.h:
              * svg/SVGUseElement.cpp:
              (WebCore::SVGUseElement::SVGUseElement):
              (WebCore::SVGUseElement::synchronizeProperty):
              * svg/SVGUseElement.h:
              * svg/SVGViewElement.cpp:
              (WebCore::SVGViewElement::SVGViewElement):
              (WebCore::SVGViewElement::synchronizeProperty):
              * svg/SVGViewElement.h:
              * svg/SVGViewSpec.cpp:
              (WebCore::SVGViewSpec::SVGViewSpec):
              * svg/SVGViewSpec.h:
              (WebCore::SVGViewSpec::contextElement):
              * svg/SynchronizablePropertyController.cpp: Removed.
              * svg/SynchronizablePropertyController.h: Removed.
              * svg/SynchronizableTypeWrapper.h: Removed.
              * svg/svgattrs.in: Remove "exportStrings" tag.
              * svg/svgtags.in: Ditto.
              * svg/xlinkattrs.in:
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53879 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      1534e2e0
    • adele@apple.com's avatar
      WebCore: Fix for <rdar://problem/7169464> REGRESSION (r47444): PLT is 1%... · 272da116
      adele@apple.com authored
      WebCore: Fix for <rdar://problem/7169464> REGRESSION (r47444): PLT is 1% slower due to implementation of :valid and :invalid CSS selectors
      https://bugs.webkit.org/show_bug.cgi?id=34029
      
      Reviewed by Darin Adler.
      
      If we never hit the valid or invalid selectors for a particular document, 
      then we'll skip the validity checks when deciding about style sharing.
      
      * css/CSSStyleSelector.cpp:
      (WebCore::CSSStyleSelector::canShareStyleWithElement):
      (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
              
      * dom/Document.cpp: (WebCore::Document::Document):
      * dom/Document.h:
      (WebCore::Document::considerValidity):
      (WebCore::Document::setConsiderValidity):
      
      LayoutTests: Test for <rdar://problem/7169464> REGRESSION (r47444): PLT is 1% slower due to implementation of :valid and :invalid CSS selectors
      https://bugs.webkit.org/show_bug.cgi?id=34029
      
      Reviewed by Darin Adler.
      
      * fast/css/pseudo-valid-dynamic-expected.txt: Added.
      * fast/css/pseudo-valid-dynamic.html: Added.
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53878 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      272da116
    • jorlow@chromium.org's avatar
      Revert 53797 as it seems to be causing crashes. · a182963d
      jorlow@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=34153
      
      Patch by Jeremy Orlow <jorlow@chromium.org> on 2010-01-26
      Reviewed by Simon Fraser.
      
      * page/FrameView.cpp:
      (WebCore::FrameView::useSlowRepaints):
      (WebCore::FrameView::useSlowRepaintsIfNotOverlapped):
      * page/FrameView.h:
      * platform/ScrollView.cpp:
      (WebCore::ScrollView::scrollContents):
      * platform/ScrollView.h:
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::styleWillChange):
      (WebCore::RenderObject::destroy):
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53877 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      a182963d
    • dimich@chromium.org's avatar
      DumpRenderTree silently crashes at the end of the run because... · 5bf540ae
      dimich@chromium.org authored
      DumpRenderTree silently crashes at the end of the run because geolocationControllerClient pointer is 0.
      https://bugs.webkit.org/show_bug.cgi?id=34191
      
      Reviewed by Steve Falkenburg.
      
      * page/GeolocationController.cpp:
      (WebCore::GeolocationController::~GeolocationController): Add check for m_client being 0.
      (WebCore::GeolocationController::addObserver): Ditto.
      (WebCore::GeolocationController::removeObserver): Ditto.
      (WebCore::GeolocationController::lastPosition): Ditto.
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53876 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      5bf540ae
    • ukai@chromium.org's avatar
      2010-01-26 Fumitoshi Ukai <ukai@chromium.org> · 2206eff2
      ukai@chromium.org authored
              Reviewed by Alexey Proskuryakov.
      
              Fix url used in websocket-event-target.html
              https://bugs.webkit.org/show_bug.cgi?id=34066
      
              * websocket/tests/script-tests/websocket-event-target.js:
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53875 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      2206eff2
    • simon.fraser@apple.com's avatar
      2010-01-26 Simon Fraser <simon.fraser@apple.com> · 4836fd00
      simon.fraser@apple.com authored
              Reviewed by Adele Peterson.
      
              Enhance externalRepresentation() to make it more useful for layer debugging
              https://bugs.webkit.org/show_bug.cgi?id=34143
      
              Enhance externalRepresentation() to output additional information about layers when certain flags are passed.
              The new flags allow you to show all layers (not just those that would paint), to the structure of the z-order
              and normal flow lists, and to show which layers are composited.
      
              * WebCore.base.exp: The signature of externalRepresentation() changed.
      
              * platform/text/TextStream.h: Add operator<<(void*)
              * platform/text/TextStream.cpp: Implement operator<<(void*)
      
              * rendering/RenderLayer.h:
              * rendering/RenderLayer.cpp:
              (showLayerTree): New method outside the WebCore namespace, for ease of calling from gdb.
      
              * rendering/RenderTreeAsText.h: New behavior flags for externalRepresentation().
              * rendering/RenderTreeAsText.cpp:
              (WebCore::write): Output compositing information if requested. Also clean up some -1/1 magic
              numbers with an enum.
              (WebCore::writeLayers): If requested, show layer nesting via the z-order and normal flow lists.
              (WebCore::externalRepresentation): New arguments
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53874 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      4836fd00
    • enrica@apple.com's avatar
      Fixing for failing test on qt. · 8ca0a889
      enrica@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=34148
              
      Reviewed by Jon Honeycutt.
      
      Changed url in anchor tag to avoid the additional trailing slash.
      
      * editing/pasteboard/paste-noscript-xhtml-expected.txt:
      * editing/resources/htmlcontent.html:
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53873 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      8ca0a889
    • mitz@apple.com's avatar
      Fixed an off-by-one error. · ab45f00a
      mitz@apple.com authored
      Reviewed by Simon Fraser.
      
      * rendering/break_lines.cpp:
      (WebCore::shouldBreakAfter):
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53872 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      ab45f00a
    • dimich@chromium.org's avatar
      Avoid reloading iframe on re-parenting between documents. · 7e6503e1
      dimich@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=32848
      
      Reviewed by David Levin.
      
      WebCore:
      
      Achieved by setting a flag on iframe element when it is a target of document.adoptNode(node) operation.
      The flag prevents unload/load cycle and is reset once element is attached to a new document.
      If iframe is adopted but not actually inserted into the tree, it gets unloaded by async timer
      once JS yields, to avoid having active content in non-attached iframe.
      
      Test: fast/frames/iframe-reparenting.html
      
      * dom/Document.cpp:
      (WebCore::Document::adoptNode): If the adopted node is iframe, set a remainsAliveOnRemovalFromTree on it.
      * html/HTMLFrameElementBase.h:
      * html/HTMLFrameElementBase.cpp:
      (WebCore::HTMLFrameElementBase::HTMLFrameElementBase):
      (WebCore::HTMLFrameElementBase::attach): Skip actual loading of the frame if it has remainsAliveOnRemovalFromTree flag. Reset the flag.
      (WebCore::HTMLFrameElementBase::willRemove): Skip unloading the frame if it has remainsAliveOnRemovalFromTree flag set.
      (WebCore::HTMLFrameElementBase::setRemainsAliveOnRemovalFromTree): Set the flag, start the async timer to check if the frame was actually attached.
      (WebCore::HTMLFrameElementBase::checkAttachedTimerFired):
      * html/HTMLFrameOwnerElement.h:
      (WebCore::HTMLFrameOwnerElement::willRemove): Move from private to protected, since it is conditionally called in HTMLFrameElementBase::willRemove now.
      
      LayoutTests:
      
      * fast/frames/iframe-reparenting-expected.txt: Added.
      * fast/frames/iframe-reparenting.html: Added.
      * fast/frames/resources/iframe-reparenting-frame1.html: Added.
      * fast/frames/resources/iframe-reparenting-frame2.html: Added.
      * fast/frames/resources/iframe-reparenting-iframe-content.html: Added.
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53871 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      7e6503e1
    • kevino@webkit.org's avatar
      [wx] Build fix, make sure stub function returns a value. · 47d12a9c
      kevino@webkit.org authored
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53870 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      47d12a9c
  2. 26 Jan, 2010 28 commits
    • aroben@apple.com's avatar
      2010-01-26 Adam Roben <aroben@apple.com> · b6a16320
      aroben@apple.com authored
              No review, rolling out r53861.
              http://trac.webkit.org/changeset/53861
              https://bugs.webkit.org/show_bug.cgi?id=33224
      
              Caused 2 regression tests to fail.
      
              * fast/loader/stateobjects/document-destroyed-navigate-back-expected.txt:
              * fast/loader/stateobjects/document-destroyed-navigate-back.html:
      2010-01-26  Adam Roben  <aroben@apple.com>
      
              No review, rolling out r53861.
              http://trac.webkit.org/changeset/53861
              https://bugs.webkit.org/show_bug.cgi?id=33224
      
              Caused 2 regression tests to fail.
      
              * dom/Document.cpp:
              (WebCore::Document::detach):
              (WebCore::Document::registerHistoryItem):
              (WebCore::Document::unregisterHistoryItem):
              * dom/Document.h:
              * history/BackForwardList.cpp:
              (WebCore::BackForwardList::pushStateItem):
              * history/BackForwardListChromium.cpp:
              (WebCore::BackForwardList::pushStateItem):
              * history/HistoryItem.cpp:
              (WebCore::HistoryItem::HistoryItem):
              (WebCore::HistoryItem::~HistoryItem):
              (WebCore::HistoryItem::setStateObject):
              (WebCore::HistoryItem::setDocument):
              (WebCore::HistoryItem::documentDetached):
              * history/HistoryItem.h:
              (WebCore::HistoryItem::document):
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::navigateWithinDocument):
              (WebCore::FrameLoader::loadItem):
              * loader/HistoryController.cpp:
              (WebCore::HistoryController::updateBackForwardListForFragmentScroll):
              (WebCore::HistoryController::pushState):
              (WebCore::HistoryController::replaceState):
              * loader/RedirectScheduler.cpp:
              (WebCore::RedirectScheduler::scheduleHistoryNavigation):
              * page/History.cpp:
              (WebCore::History::stateObjectAdded):
              * page/Page.cpp:
              (WebCore::Page::goToItem):
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53869 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      b6a16320
    • mitz@apple.com's avatar
      <rdar://problem/7576663> Crash caused by anonymous list item · 448b68d0
      mitz@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=34183
      
      Reviewed by Beth Dakin.
      
      WebCore: 
      
      Test: fast/lists/anonymous-items.html
      
      enclosingList() and previousListItem() were DOM-based, but in order to work with anonymous
      list items, they need to work with rthe render tree.
      
      * rendering/RenderListItem.cpp:
      (WebCore::isList): Factored out.
      (WebCore::enclosingList): Added this variant that takes a RenderObject.
      (WebCore::previousListItem): Changed to travers the render tree.
      (WebCore::RenderListItem::calcValue): Use the RenderObject version of enclosingList()
      (WebCore::RenderListItem::setExplicitValue): Added an assertion.
      (WebCore::RenderListItem::clearExplicitValue): Ditto.
      
      LayoutTests: 
      
      * fast/lists/anonymous-items.html: Added.
      * platform/mac/fast/lists/anonymous-items-expected.checksum: Added.
      * platform/mac/fast/lists/anonymous-items-expected.png: Added.
      * platform/mac/fast/lists/anonymous-items-expected.txt: Added.
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53868 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      448b68d0
    • bweinstein@apple.com's avatar
      Crash in WebKit!WebCore::RenderMenuList::itemStyle · d465668b
      bweinstein@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=34182
      <rdar://7087757>
              
      Reviewed by Jon Honeycutt.
      
      Added bounds checks in RenderMenuList to make sure we are
      not making an out of bounds check in a vector once an option
      element has been deleted. If we are out of bounds, we fall back to
      a default value and return early, and in the case of itemStyle, we use a 
      previous option's style, if it is available.
      
      * manual-tests/select-delete-item.html: Added.
      * rendering/RenderMenuList.cpp:
      (WebCore::RenderMenuList::itemText): If out of bounds check, return early.
      (WebCore::RenderMenuList::itemToolTip): Ditto.
      (WebCore::RenderMenuList::itemIsEnabled): Ditto.
      (WebCore::RenderMenuList::itemStyle): If out of bounds check, try using the 0th index
          option style, then fall back to the select's style if that option doesn't exist.
      (WebCore::RenderMenuList::itemBackgroundColor): If out of bounds check, return early.
      (WebCore::RenderMenuList::itemIsSeparator): Ditto.
      (WebCore::RenderMenuList::itemIsLabel): Ditto.
      (WebCore::RenderMenuList::itemIsSelected): Ditto.
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53867 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      d465668b
    • barraclough@apple.com's avatar
      Whoops, fixerate ChangeLog. · b2c2f9cb
      barraclough@apple.com authored
      git-svn-id: svn://svn.chromium.org/blink/trunk@53866 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      b2c2f9cb
    • barraclough@apple.com's avatar
      <<<<<<< .mine · c01d7269
      barraclough@apple.com authored
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53865 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      c01d7269
    • sfalken@apple.com's avatar
      2010-01-26 Steve Falkenburg <sfalken@apple.com> · 2f672628
      sfalken@apple.com authored
              Reviewed by Oliver Hunt.
      
              Windows build references non-existent include paths
              https://bugs.webkit.org/show_bug.cgi?id=34175
      
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
              * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops:
              * JavaScriptCore.vcproj/WTF/WTFCommon.vsprops:
              * JavaScriptCore.vcproj/jsc/jscCommon.vsprops:
              * JavaScriptCore.vcproj/testapi/testapi.vcproj:
              * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops:
      2010-01-26  Steve Falkenburg  <sfalken@apple.com>
      
              Reviewed by Oliver Hunt.
      
              Windows build references non-existent include paths
              https://bugs.webkit.org/show_bug.cgi?id=34175
      
              * WebKit.vcproj/WebKit.vcproj:
      2010-01-26  Steve Falkenburg  <sfalken@apple.com>
      
              Reviewed by Oliver Hunt.
      
              Windows build references non-existent include paths
              https://bugs.webkit.org/show_bug.cgi?id=34175
      
              * WebCore.vcproj/QTMovieWin.vcproj:
              * WebCore.vcproj/WebCoreCommon.vsprops:
      2010-01-26  Steve Falkenburg  <sfalken@apple.com>
      
              Reviewed by Oliver Hunt.
      
              Windows build references non-existent include paths
              https://bugs.webkit.org/show_bug.cgi?id=34175
      
              * DumpRenderTree/win/DumpRenderTree.vcproj:
              * DumpRenderTree/win/ImageDiff.vcproj:
              * DumpRenderTree/win/TestNetscapePlugin/TestNetscapePlugin.vcproj:
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53864 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      2f672628
    • cfleizach@apple.com's avatar
      Another attempt to get this test to pass for GTK. · f92c9842
      cfleizach@apple.com authored
      Add ability for image maps to be focused via tabbing
      https://bugs.webkit.org/show_bug.cgi?id=17513
      
      * fast/events/tab-imagemap-expected.txt:
      * fast/events/tab-imagemap.html:
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53863 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      f92c9842
    • kenneth@webkit.org's avatar
      [Qt] Separating out the UrlLoader from the QtLauncher in it's · 436c3f15
      kenneth@webkit.org authored
      own implementation and header file.
      
      Reviewed by Ariya Hidayat.
      
      * QtLauncher/main.cpp:
      (main):
      * QtLauncher/urlloader.cpp: Added.
      (UrlLoader::UrlLoader):
      (UrlLoader::loadNext):
      (UrlLoader::init):
      (UrlLoader::getUrl):
      * QtLauncher/urlloader.h: Added.
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53862 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      436c3f15
    • darin@chromium.org's avatar
      2010-01-25 Darin Fisher <darin@chromium.org> · 6f81dc43
      darin@chromium.org authored
              Reviewed by Brady Eidson.
      
              Chains of history items representing same-document navigation need to
              always remember that association
      
              https://bugs.webkit.org/show_bug.cgi?id=33224
      
              Replace HistoryItem's Document pointer with a DocumentSequenceNumber.
              During session history traversal, if the current HistoryItem and the
              target HistoryItem have the same DocumentSequenceNumber, then it means
              that the current Document should remain.
      
              NOTE: To support Chromium's serialization of HistoryItems, I generate
              DocumentSequenceNumbers that are unique across application launches.
              DocumentSequenceNumbers are generated using a counter initialized with
              the time of day.
      
              Test: fast/loader/stateobjects/document-destroyed-navigate-back.html
      
              * dom/Document.cpp:
              (WebCore::Document::detach):
              * dom/Document.h:
              * history/BackForwardList.cpp:
              (WebCore::BackForwardList::pushStateItem):
              * history/BackForwardListChromium.cpp:
              (WebCore::BackForwardList::pushStateItem):
              * history/HistoryItem.cpp:
              (WebCore::generateDocumentSequenceNumber):
              (WebCore::HistoryItem::HistoryItem):
              (WebCore::HistoryItem::~HistoryItem):
              (WebCore::HistoryItem::setStateObject):
              * history/HistoryItem.h:
              (WebCore::HistoryItem::setDocumentSequenceNumber):
              (WebCore::HistoryItem::documentSequenceNumber):
              * loader/FrameLoader.cpp:
              (WebCore::FrameLoader::navigateWithinDocument):
              (WebCore::FrameLoader::loadItem):
              * loader/HistoryController.cpp:
              (WebCore::HistoryController::updateBackForwardListForFragmentScroll):
              (WebCore::HistoryController::pushState):
              (WebCore::HistoryController::replaceState):
              * loader/RedirectScheduler.cpp:
              (WebCore::RedirectScheduler::scheduleHistoryNavigation):
              * page/History.cpp:
              (WebCore::History::stateObjectAdded):
              * page/Page.cpp:
              (WebCore::Page::goToItem):
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53861 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      6f81dc43
    • oliver@apple.com's avatar
      2010-01-26 Oliver Hunt <oliver@apple.com> · aa1cb156
      oliver@apple.com authored
              Reviewed by Geoffrey Garen.
      
              Using JavaScriptCore API with a webkit vended context can result in slow script dialog
              https://bugs.webkit.org/show_bug.cgi?id=34172
      
              Make the APIShim correctly increment and decrement the timeout
              entry counter.
      
              * API/APIShims.h:
              (JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock):
              (JSC::APIEntryShimWithoutLock::~APIEntryShimWithoutLock):
              (JSC::APICallbackShim::APICallbackShim):
              (JSC::APICallbackShim::~APICallbackShim):
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53860 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      aa1cb156
    • cfleizach@apple.com's avatar
      One more attempt to get GTK version to pass. · 53108f5f
      cfleizach@apple.com authored
      Add ability for image maps to be focused via tabbing
      https://bugs.webkit.org/show_bug.cgi?id=17513
      
      * fast/events/tab-imagemap-expected.txt:
      * fast/events/tab-imagemap.html:
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53859 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      53108f5f
    • cfleizach@apple.com's avatar
      Unreviewed. · 576169d6
      cfleizach@apple.com authored
      Attempt to make this test pass on GTK.
      
      Add ability for image maps to be focused via tabbing
      https://bugs.webkit.org/show_bug.cgi?id=17513
      
      * fast/events/tab-imagemap.html:
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53858 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      576169d6
    • cfleizach@apple.com's avatar
      Add ability for image maps to be focused via tabbing · 75ad1167
      cfleizach@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=17513
      
      Reviewed by Darin Adler.
      
      WebCore: 
      
      Test: fast/events/tab-imagemap.html
      
      * accessibility/AXObjectCache.cpp:
      (WebCore::AXObjectCache::focusedImageMapUIElement):
      (WebCore::AXObjectCache::focusedUIElementForPage):
      * accessibility/AXObjectCache.h:
      * accessibility/AccessibilityImageMapLink.h:
      (WebCore::AccessibilityImageMapLink::areaElement):
      (WebCore::AccessibilityImageMapLink::mapElement):
      (WebCore::AccessibilityImageMapLink::isImageMapLink):
      * accessibility/AccessibilityObject.h:
      (WebCore::AccessibilityObject::isImageMapLink):
      * accessibility/AccessibilityRenderObject.cpp:
      (WebCore::AccessibilityRenderObject::accessibilityParentForImageMap):
      * html/HTMLAreaElement.cpp:
      (WebCore::HTMLAreaElement::getPath):
      (WebCore::HTMLAreaElement::getRect):
      (WebCore::HTMLAreaElement::imageElement):
      (WebCore::HTMLAreaElement::isKeyboardFocusable):
      (WebCore::HTMLAreaElement::isFocusable):
      (WebCore::HTMLAreaElement::dispatchBlurEvent):
      (WebCore::HTMLAreaElement::updateFocusAppearance):
      (WebCore::HTMLAreaElement::supportsFocus):
      * html/HTMLAreaElement.h:
      * html/HTMLMapElement.cpp:
      (WebCore::HTMLMapElement::imageElement):
      * html/HTMLMapElement.h:
      * platform/graphics/GraphicsContext.h:
      * platform/graphics/cairo/GraphicsContextCairo.cpp:
      (WebCore::GraphicsContext::drawFocusRing):
      * platform/graphics/haiku/GraphicsContextHaiku.cpp:
      (WebCore::GraphicsContext::drawFocusRing):
      * platform/graphics/mac/GraphicsContextMac.mm:
      (WebCore::drawFocusRingToContext):
      (WebCore::GraphicsContext::drawFocusRing):
      * platform/graphics/qt/GraphicsContextQt.cpp:
      (WebCore::GraphicsContext::drawFocusRing):
      * platform/graphics/skia/GraphicsContextSkia.cpp:
      (WebCore::GraphicsContext::drawFocusRing):
      * platform/graphics/win/GraphicsContextCGWin.cpp:
      (WebCore::GraphicsContext::drawFocusRing):
      * platform/graphics/wince/GraphicsContextWince.cpp:
      (WebCore::GraphicsContext::drawFocusRing):
      * platform/graphics/wx/GraphicsContextWx.cpp:
      (WebCore::GraphicsContext::drawFocusRing):
      * rendering/RenderImage.cpp:
      (WebCore::RenderImage::paint):
      (WebCore::RenderImage::paintFocusRings):
      (WebCore::RenderImage::imageMap):
      * rendering/RenderImage.h:
      * rendering/RenderReplaced.h:
      
      LayoutTests: 
      
      * fast/events/resources/tabindex-focus-blur-all.js:
      (test):
      (testProgrammaticFocus):
      * fast/events/tab-imagemap-expected.txt: Added.
      * fast/events/tab-imagemap.html: Added.
      * fast/events/tabindex-focus-blur-all-expected.txt:
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53857 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      75ad1167
    • pfeldman@chromium.org's avatar
      2010-01-26 Pavel Feldman <pfeldman@chromium.org> · 6c55ec0d
      pfeldman@chromium.org authored
              Reviewed by Timothy Hatcher.
      
              Web Inspector: add support for breakpoints, messages and search into the SourceFrame2.
      
              https://bugs.webkit.org/show_bug.cgi?id=34165
      
              * inspector/front-end/SourceFrame2.js:
              (WebInspector.SourceFrame2):
              (WebInspector.SourceFrame2.prototype.get executionLine):
              (WebInspector.SourceFrame2.prototype.set executionLine):
              (WebInspector.SourceFrame2.prototype.revealLine):
              (WebInspector.SourceFrame2.prototype.addBreakpoint):
              (WebInspector.SourceFrame2.prototype.removeBreakpoint):
              (WebInspector.SourceFrame2.prototype.sizeToFitContentHeight):
              (WebInspector.SourceFrame2.prototype.setContent):
              (WebInspector.SourceFrame2.prototype.findSearchMatches):
              (WebInspector.SourceFrame2.prototype.setSelection):
              (WebInspector.SourceFrame2.prototype._addMessageToSource):
              (WebInspector.SourceFrame2.prototype._addExistingBreakpointsToSource):
              (WebInspector.SourceFrame2.prototype._addBreakpointToSource):
              (WebInspector.SourceFrame2.prototype._removeBreakpointFromSource):
              (WebInspector.SourceFrame2.prototype._contextMenu.addConditionalBreakpoint):
              (WebInspector.SourceFrame2.prototype._contextMenu):
              (WebInspector.SourceFrame2.prototype._toggleBreakpoint):
              (WebInspector.SourceFrame2.prototype._editBreakpointCondition.committed):
              (WebInspector.SourceFrame2.prototype._editBreakpointCondition.dismissed):
              (WebInspector.SourceFrame2.prototype._editBreakpointCondition):
              (WebInspector.SourceFrame2.prototype._showBreakpointConditionPopup):
              (WebInspector.SourceFrame2.prototype._createConditionElement):
              (WebInspector.SourceFrame2.prototype._keyDown):
              (WebInspector.SourceFrame2.prototype._evalSelectionInCallFrame):
              (WebInspector.SourceFrame2.prototype._breakpointChanged):
              (WebInspector.SourceFrame2.prototype.resize):
              (WebInspector.BreakpointLineNumberDecorator.prototype.decorate):
              (WebInspector.BreakpointLineNumberDecorator.prototype._paintBreakpoint):
              (WebInspector.BreakpointLineNumberDecorator.prototype.mouseDown):
              (WebInspector.BreakpointLineNumberDecorator.prototype.contextMenu):
              (WebInspector.ExecutionLineDecorator.prototype.decorate):
              * inspector/front-end/TextEditor.js:
              (WebInspector.TextEditor):
              (WebInspector.TextEditor.prototype.set mimeType):
              (WebInspector.TextEditor.prototype.set readOnly):
              (WebInspector.TextEditor.prototype.setDivDecoration):
              (WebInspector.TextEditor.prototype.reveal):
              (WebInspector.TextEditor.prototype.packAndRepaintAll):
              (WebInspector.TextEditor.prototype._updateSize):
              (WebInspector.TextEditor.prototype.updateCanvasSize):
              (WebInspector.TextEditor.prototype.repaintAll):
              (WebInspector.TextEditor.prototype._paintLinesContinuation):
              (WebInspector.TextEditor.prototype._repaintOnScroll):
              (WebInspector.TextEditor.prototype._mouseDown):
              (WebInspector.TextEditor.prototype._contextMenu):
              (WebInspector.TextEditor.prototype._caretForMouseEvent):
              (WebInspector.TextEditor.prototype._columnForOffset):
              (WebInspector.TextEditor.prototype._handleNavigationKey):
              (WebInspector.TextEditor.prototype._positionDivDecoration):
              (WebInspector.TextEditor.prototype._replaceSelectionWith):
              (WebInspector.TextEditor.prototype.setCoalescingUpdate):
              (WebInspector.TextEditor.prototype._handleUndo):
              (WebInspector.TextEditor.prototype._handleRedo):
              (WebInspector.TextEditor.prototype._changeFont):
              * inspector/front-end/TextEditorHighlighter.js:
              (WebInspector.TextEditorHighlighter):
              (WebInspector.TextEditorHighlighter.prototype.set mimeType):
              * inspector/front-end/inspector.css:
              * inspector/front-end/textEditor.css:
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53856 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      6c55ec0d
    • pfeldman@chromium.org's avatar
      2010-01-26 Pavel Feldman <pfeldman@chromium.org> · cb64ce85
      pfeldman@chromium.org authored
              Reviewed by Timothy Hather.
      
              Web Inspector: add methods for getting resource content from within frontend.
      
              https://bugs.webkit.org/show_bug.cgi?id=34163
      
              * inspector/InspectorBackend.cpp:
              (WebCore::InspectorBackend::getResourceContent):
              * inspector/InspectorBackend.h:
              * inspector/InspectorBackend.idl:
              * inspector/InspectorFrontend.cpp:
              (WebCore::InspectorFrontend::didGetResourceContent):
              * inspector/InspectorFrontend.h:
              * inspector/InspectorFrontendHost.cpp:
              * inspector/InspectorFrontendHost.h:
              * inspector/InspectorFrontendHost.idl:
              * inspector/front-end/InspectorBackendStub.js:
              (.WebInspector.InspectorBackendStub.prototype.getResourceContent):
              * inspector/front-end/InspectorFrontendHostStub.js:
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53855 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      cb64ce85
    • hausmann@webkit.org's avatar
      [Qt] Fix compilation of QtScript with non-gcc compilers · dc44ca23
      hausmann@webkit.org authored
      Variable length stack arrays are a gcc extension. Use QVarLengthArray
      as a more portable solution that still tries to allocate on the stack
      first.
      
      * qt/api/qscriptvalue_p.h:
      (QScriptValuePrivate::call):
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53854 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      dc44ca23
    • hausmann@webkit.org's avatar
      [Qt] Fix the build on platforms without JIT support. · 4b6e3e05
      hausmann@webkit.org authored
      Reviewed by Tor Arne Vestbø.
      
      The JIT support should be determined at compile-time via wtf/Platform.h
      
      * qt/api/QtScript.pro:
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53853 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      4b6e3e05
    • pfeldman@chromium.org's avatar
      2010-01-26 Pavel Feldman <pfeldman@chromium.org> · 0224085d
      pfeldman@chromium.org authored
              Not reviewed: added null check into the timeline agent getter.
      
              * inspector/InspectorTimelineAgent.h:
              (WebCore::InspectorTimelineAgent::retrieve):
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53852 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      0224085d
    • eric@webkit.org's avatar
      2010-01-26 Simon Hausmann <simon.hausmann@nokia.com> · f910ceb0
      eric@webkit.org authored
              Reviewed by Kenneth Rohde Christiansen.
      
              [Qt] Show comboboxes on Maemo 5
              https://bugs.webkit.org/show_bug.cgi?id=34088
      
              Don't try to show the combobox by simulating a mouse event from QCursor::pos() to
              get the combobox position right. The position on Maemo 5 is independent from the mouse
              and there's no QCursor::pos().
      
              * WebCoreSupport/QtFallbackWebPopup.cpp:
              (WebCore::QtFallbackWebPopup::show):
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53851 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      f910ceb0
    • eric@webkit.org's avatar
      2010-01-26 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> · cf8197a8
      eric@webkit.org authored
              Reviewed by Simon Hausmann.
      
              First steps of the QtScript API.
      
              Two new classes were created; QScriptEngine and QScriptValue.
              The first should encapsulate a javascript context and the second a script
              value.
      
              This API is still in development, so it isn't compiled by default.
              To trigger compilation, pass --qmakearg="CONFIG+=build-qtscript" to
              build-webkit.
      
              https://bugs.webkit.org/show_bug.cgi?id=32565
      
              * WebKit.pro:
      2010-01-26  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
      
              Reviewed by Simon Hausmann.
      
              First steps of the QtScript API.
      
              Two new classes were created; QScriptEngine and QScriptValue.
              The first should encapsulate a javascript context and the second a script
              value.
      
              This API is still in development, so it isn't compiled by default.
              To trigger compilation, pass --qmakearg="CONFIG+=build-qtscript" to
              build-webkit.
      
              https://bugs.webkit.org/show_bug.cgi?id=32565
      
              * qt/api/QtScript.pro: Added.
              * qt/api/qscriptconverter_p.h: Added.
              (QScriptConverter::toString):
              * qt/api/qscriptengine.cpp: Added.
              (QScriptEngine::QScriptEngine):
              (QScriptEngine::~QScriptEngine):
              (QScriptEngine::evaluate):
              (QScriptEngine::collectGarbage):
              * qt/api/qscriptengine.h: Added.
              * qt/api/qscriptengine_p.cpp: Added.
              (QScriptEnginePrivate::QScriptEnginePrivate):
              (QScriptEnginePrivate::~QScriptEnginePrivate):
              (QScriptEnginePrivate::evaluate):
              * qt/api/qscriptengine_p.h: Added.
              (QScriptEnginePrivate::get):
              (QScriptEnginePrivate::collectGarbage):
              (QScriptEnginePrivate::makeJSValue):
              (QScriptEnginePrivate::context):
              * qt/api/qscriptvalue.cpp: Added.
              (QScriptValue::QScriptValue):
              (QScriptValue::~QScriptValue):
              (QScriptValue::isValid):
              (QScriptValue::isBool):
              (QScriptValue::isBoolean):
              (QScriptValue::isNumber):
              (QScriptValue::isNull):
              (QScriptValue::isString):
              (QScriptValue::isUndefined):
              (QScriptValue::isError):
              (QScriptValue::isObject):
              (QScriptValue::isFunction):
              (QScriptValue::toString):
              (QScriptValue::toNumber):
              (QScriptValue::toBool):
              (QScriptValue::toBoolean):
              (QScriptValue::toInteger):
              (QScriptValue::toInt32):
              (QScriptValue::toUInt32):
              (QScriptValue::toUInt16):
              (QScriptValue::call):
              (QScriptValue::engine):
              (QScriptValue::operator=):
              (QScriptValue::equals):
              (QScriptValue::strictlyEquals):
              * qt/api/qscriptvalue.h: Added.
              (QScriptValue::):
              * qt/api/qscriptvalue_p.h: Added.
              (QScriptValuePrivate::):
              (QScriptValuePrivate::get):
              (QScriptValuePrivate::QScriptValuePrivate):
              (QScriptValuePrivate::isValid):
              (QScriptValuePrivate::isBool):
              (QScriptValuePrivate::isNumber):
              (QScriptValuePrivate::isNull):
              (QScriptValuePrivate::isString):
              (QScriptValuePrivate::isUndefined):
              (QScriptValuePrivate::isError):
              (QScriptValuePrivate::isObject):
              (QScriptValuePrivate::isFunction):
              (QScriptValuePrivate::toString):
              (QScriptValuePrivate::toNumber):
              (QScriptValuePrivate::toBool):
              (QScriptValuePrivate::toInteger):
              (QScriptValuePrivate::toInt32):
              (QScriptValuePrivate::toUInt32):
              (QScriptValuePrivate::toUInt16):
              (QScriptValuePrivate::equals):
              (QScriptValuePrivate::strictlyEquals):
              (QScriptValuePrivate::assignEngine):
              (QScriptValuePrivate::call):
              (QScriptValuePrivate::engine):
              (QScriptValuePrivate::context):
              (QScriptValuePrivate::value):
              (QScriptValuePrivate::object):
              (QScriptValuePrivate::inherits):
              (QScriptValuePrivate::isJSBased):
              (QScriptValuePrivate::isNumberBased):
              (QScriptValuePrivate::isStringBased):
              * qt/api/qtscriptglobal.h: Added.
              * qt/tests/qscriptengine/qscriptengine.pro: Added.
              * qt/tests/qscriptengine/tst_qscriptengine.cpp: Added.
              (tst_QScriptEngine::tst_QScriptEngine):
              (tst_QScriptEngine::~tst_QScriptEngine):
              (tst_QScriptEngine::init):
              (tst_QScriptEngine::cleanup):
              (tst_QScriptEngine::collectGarbage):
              (tst_QScriptEngine::evaluate):
              * qt/tests/qscriptvalue/qscriptvalue.pro: Added.
              * qt/tests/qscriptvalue/tst_qscriptvalue.cpp: Added.
              (tst_QScriptValue::tst_QScriptValue):
              (tst_QScriptValue::~tst_QScriptValue):
              (tst_QScriptValue::init):
              (tst_QScriptValue::cleanup):
              (tst_QScriptValue::ctor):
              (tst_QScriptValue::toString_data):
              (tst_QScriptValue::toString):
              (tst_QScriptValue::copyConstructor_data):
              (tst_QScriptValue::copyConstructor):
              (tst_QScriptValue::assignOperator_data):
              (tst_QScriptValue::assignOperator):
              (tst_QScriptValue::dataSharing):
              (tst_QScriptValue::constructors_data):
              (tst_QScriptValue::constructors):
              (tst_QScriptValue::call):
              * qt/tests/tests.pri: Added.
              * qt/tests/tests.pro: Added.
      2010-01-26  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
      
              Reviewed by Simon Hausmann.
      
              First steps of the QtScript API.
      
              Two new classes were created; QScriptEngine and QScriptValue.
              The first should encapsulate a javascript context and the second a script
              value.
      
              This API is still in development, so it isn't compiled by default.
              To trigger compilation, pass --qmakearg="CONFIG+=build-qtscript" to
              build-webkit.
      
              https://bugs.webkit.org/show_bug.cgi?id=32565
      
              * docs/qtwebkit.qdocconf:
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53850 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      cf8197a8
    • eric@webkit.org's avatar
      2010-01-26 Steve Block <steveblock@google.com> · 131e282c
      eric@webkit.org authored
              Reviewed by Adam Barth.
      
              Moves JSC-specific classes from bridge/jni/JNIBridge to bridge/jni/jsc/JNIBridgeJSC
              https://bugs.webkit.org/show_bug.cgi?id=33958
      
              This allows bridge/jni/JNIBridge to be used with both JSC and V8.
              A later change will add the V8 equivalent of these JSC-specific classes.
      
              No new tests, refactoring only.
      
              * Android.jscbindings.mk: Modified. Added JNIBridgeJSC.cpp
              * GNUmakefile.am: Modified. Added JNIBridgeJSC.h
              * WebCore.xcodeproj/project.pbxproj: Modified. Added JNIBridgeJSC.[cpp|h]
              * bridge/jni/JNIBridge.cpp: Modified. Moved JavaField and JavaArray to JNIBridgeJSC.cpp
              (appendClassName): Modfied. Guard calls to JSLock
              (JavaMethod::signature): Modfied. Guard calls to JSLock
              * bridge/jni/JNIBridge.h: Modified. Moved JavaField and JavaArray to JNIBridgeJSC.h
              * bridge/jni/jsc/JNIBridgeJSC.cpp: Copied from WebCore/bridge/jni/JNIBridge.cpp.
              * bridge/jni/jsc/JNIBridgeJSC.h: Copied from WebCore/bridge/jni/JNIBridge.h.
              * bridge/jni/jsc/JNIUtilityPrivate.cpp: Modified. Include JNIBridgeJSC.h
              * bridge/jni/jsc/JavaClassJSC.h: Modified. Include JNIBridgeJSC.h
              * bridge/jni/jsc/JavaInstanceJSC.cpp: Modified. Include JNIBridgeJSC.h
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53849 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      131e282c
    • jocelyn.turcotte@nokia.com's avatar
      Unreviewed build fix. · cfdf673d
      jocelyn.turcotte@nokia.com authored
      [Qt] Fix Windows build when sqlite is not available.
      
      * WebCore.pri:
      * WebCore.pro:
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53848 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      cfdf673d
    • hausmann@webkit.org's avatar
      WebCore: [Qt] JavaScript prompt is currently broken. · 236477b4
      hausmann@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=30914
      
      Patch by Holger Hans Peter Freyther <zecke@selfish.org> on 2010-01-26
      Reviewed by Simon Hausmann.
      
      Remove the manual test case in favor of an automated
      test case in WebKit/qt/tests/qwebpage.
      
      * manual-tests/qt/java-script-prompt.html: Removed.
      
      WebKit/qt: [Qt] JavaScript prompt is currently broken
      https://bugs.webkit.org/show_bug.cgi?id=30914
      
      Patch by Holger Hans Peter Freyther <zecke@selfish.org> on 2010-01-26
      Reviewed by Simon Hausmann.
      
      In r52152 a patch was landed to convert a null QString
      to an empty WebCore::String in case the prompt was accepted
      but the default implementation returned the null QString.
      
      The patch tried to avoid assign to result twice and
      was not checking the QString if it is null but the default
      value. This lead to always returning an empty string on
      successful prompts. Fix it by checking the variable 'x'
      for isNull.
      
      The manual test case used didn't cover the case of non
      empty input, replace it with an automatic test case that
      should cover all cases.
      
      * WebCoreSupport/ChromeClientQt.cpp:
      (WebCore::ChromeClientQt::runJavaScriptPrompt): Fix the bug.
      * tests/qwebpage/tst_qwebpage.cpp: Add automatic test case
      (JSPromptPage::JSPromptPage):
      (JSPromptPage::javaScriptPrompt):
      (tst_QWebPage::testJSPrompt):
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53847 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      236477b4
    • pfeldman@chromium.org's avatar
      2010-01-26 Pavel Feldman <pfeldman@chromium.org> · f93131b4
      pfeldman@chromium.org authored
              Reviewed by Timothy Hatcher.
      
              Web Inspector: Implement HTML and CSS highlighters.
      
              https://bugs.webkit.org/show_bug.cgi?id=34144
      
              * WebCore.gypi:
              * WebCore.vcproj/WebCore.vcproj:
              * inspector/front-end/JavaScriptTokenizer.js: Removed.
              * inspector/front-end/JavaScriptTokenizer.re2js: Removed.
              * inspector/front-end/SourceCSSTokenizer.js: Added.
              (WebInspector.SourceCSSTokenizer):
              (WebInspector.SourceCSSTokenizer.prototype._stringToken):
              (WebInspector.SourceCSSTokenizer.prototype._isPropertyValue):
              (WebInspector.SourceCSSTokenizer.prototype.nextToken):
              * inspector/front-end/SourceCSSTokenizer.re2js: Added.
              * inspector/front-end/SourceHTMLTokenizer.js: Added.
              (WebInspector.SourceHTMLTokenizer):
              (WebInspector.SourceHTMLTokenizer.prototype._stringToken):
              (WebInspector.SourceHTMLTokenizer.prototype.nextToken):
              * inspector/front-end/SourceHTMLTokenizer.re2js: Added.
              * inspector/front-end/SourceJavaScriptTokenizer.js: Added.
              (WebInspector.SourceJavaScriptTokenizer):
              (WebInspector.SourceJavaScriptTokenizer.prototype.nextToken):
              * inspector/front-end/SourceJavaScriptTokenizer.re2js: Added.
              * inspector/front-end/TextEditorHighlighter.js:
              (WebInspector.TextEditorHighlighter):
              (WebInspector.TextEditorHighlighter.prototype._highlightLines):
              (WebInspector.TextEditorHighlighter.Tokenizer):
              (WebInspector.TextEditorHighlighter.Tokenizer.prototype.set line):
              (WebInspector.TextEditorHighlighter.Tokenizer.prototype.set condition):
              (WebInspector.TextEditorHighlighter.Tokenizer.prototype.get condition):
              (WebInspector.TextEditorHighlighter.Tokenizer.prototype.hasCondition):
              (WebInspector.TextEditorHighlighter.Tokenizer.prototype.getLexCondition):
              (WebInspector.TextEditorHighlighter.Tokenizer.prototype.setLexCondition):
              (WebInspector.TextEditorHighlighter.Tokenizer.prototype._charAt):
              * inspector/front-end/WebKit.qrc:
              * inspector/front-end/inspector.html:
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53846 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      f93131b4
    • hausmann@webkit.org's avatar
      REGRESSION(r53835): Fix editing/pasteboard/paste-noscript-xhtml.xhtml · a7b4fcd6
      hausmann@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=34157
      
      Reviewed by Holger Freyther.
      
      WebCore:
      
      Pass the FragmentScriptingPermission correctly through to the DOM
      and disallow scripting elements in parseEndElement(), similar to
      the libxml tokenizer change in r53835.
      
      * dom/XMLTokenizerQt.cpp:
      (WebCore::handleElementNamespaces):
      (WebCore::handleElementAttributes):
      (WebCore::XMLTokenizer::parseStartElement):
      (WebCore::XMLTokenizer::parseEndElement):
      
      LayoutTests:
      
      Add Qt specific result for this test that differs from the cross-platform
      result in only one character: In htmlcontent.html the href attribute value
      is http://www.cnn.com, which somehow becomes http://www.cnn.com/ in the cross
      platform result. With the Qt xml parser that attribute is somehow preserved
      and so our result does not have the trailing slash.
      
      * platform/qt/editing/pasteboard/paste-noscript-xhtml-expected.txt: Added.
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53845 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      a7b4fcd6
    • tkent@chromium.org's avatar
      2010-01-26 Kent Tamura <tkent@chromium.org> · 54862e2f
      tkent@chromium.org authored
              Reviewed by Shinichiro Hamaji.
      
              Convert textarea-rows-cols.html to dumpAsText()
              https://bugs.webkit.org/show_bug.cgi?id=34074
      
              * fast/forms/script-tests/textarea-rows-cols.js: Added.
              * fast/forms/textarea-rows-cols-expected.txt: Added.
              * fast/forms/textarea-rows-cols.html:
              * platform/mac/fast/forms/textarea-rows-cols-expected.checksum: Removed.
              * platform/mac/fast/forms/textarea-rows-cols-expected.png: Removed.
              * platform/mac/fast/forms/textarea-rows-cols-expected.txt: Removed.
              * platform/qt/fast/forms/textarea-rows-cols-expected.txt: Removed.
              * platform/win/fast/forms/textarea-rows-cols-expected.txt: Removed.
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53844 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      54862e2f
    • eric@webkit.org's avatar
      2010-01-26 Garret Kelly <gdk@chromium.org> · ea23f952
      eric@webkit.org authored
              Reviewed by Eric Seidel.
      
              Add missing declaration for the feMorphology SVG element.
              https://bugs.webkit.org/show_bug.cgi?id=34151
      
              * bindings/v8/V8DOMWrapper.cpp:
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53843 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      ea23f952
    • zoltan@webkit.org's avatar
      Unreviewed build fix. · f7db8494
      zoltan@webkit.org authored
      Patch by Andras Becsi <abecsi@inf.u-szeged.hu> on 2010-01-26
      [Qt] Build fix after API changes in r53835.
      
      No new tests needed.
      
      * dom/XMLTokenizerQt.cpp:
      (WebCore::XMLTokenizer::XMLTokenizer):
      (WebCore::parseXMLDocumentFragment):
      
      
      
      git-svn-id: svn://svn.chromium.org/blink/trunk@53842 bbb929c8-8fbe-4397-9dbb-9b2b20218538
      f7db8494