1. 01 Dec, 2013 1 commit
  2. 09 Nov, 2013 1 commit
  3. 27 Oct, 2013 1 commit
    • akling@apple.com's avatar
      Renderers should receive their style at construction. · 8f40c5bc
      akling@apple.com authored
      <https://webkit.org/b/123396>
      
      Pass the RenderStyle to all non-text renderer constructors.
      After construction, initializeStyle() must be called (as a stopgap
      measure) until we are able to do style-derived initialization
      without virtual function calls.
      
      With this change, RenderElement::m_style is never null. Subsequent
      patches will add enforcement for this and also make style() return
      a RenderStyle&.
      
      I'm adding three FIXME's in this patch:
      
          - createRendererIfNeeded() calls AnimationController to set up
            the initial style manually instead of asking RenderElement's
            setAnimatedStyle() to do it. This can probably be done in a
            nicer way, but it's not clear yet how.
      
          - ImageContentData::createRenderer() does a bit of unnecessary
            work. This should be easy to clean up but got too distracting
            to be part of this patch.
      
          - Document::createRenderTree() creates the RenderView with an
            initial dummy RenderStyle. I've done this because resolving
            the document style assumes we already have a RenderView.
      
      For styleWillChange() implementations to detect that they are
      reacting to the initial style, I've added a hasInitializedStyle()
      function on RenderElement. This will return false until you've
      called initializeStyle() on the renderer. This should go away
      along with initializeStyle() eventually.
      
      Reviewed by Antti Koivisto.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158097 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8f40c5bc
  4. 22 Oct, 2013 1 commit
  5. 07 Oct, 2013 1 commit
    • andersca@apple.com's avatar
      Add OVERRIDE and virtual where appropriate · 70c60588
      andersca@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=122439
      
      Reviewed by Antti Koivisto.
      
      Source/JavaScriptCore:
      
      * API/JSAPIWrapperObject.mm:
      * API/JSCallbackObject.h:
      (JSC::JSCallbackObjectData::~JSCallbackObjectData):
      * API/JSManagedValue.mm:
      * API/JSScriptRef.cpp:
      (OpaqueJSScript::~OpaqueJSScript):
      * bytecode/CodeBlock.h:
      * bytecode/StructureStubClearingWatchpoint.h:
      * dfg/DFGArrayifySlowPathGenerator.h:
      * dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
      * dfg/DFGFailedFinalizer.h:
      * dfg/DFGJITCode.h:
      * dfg/DFGJITFinalizer.h:
      * dfg/DFGSaneStringGetByValSlowPathGenerator.h:
      * dfg/DFGSlowPathGenerator.h:
      * dfg/DFGSpeculativeJIT64.cpp:
      * heap/Heap.h:
      * heap/IncrementalSweeper.h:
      * heap/SuperRegion.h:
      * jit/ClosureCallStubRoutine.h:
      * jit/ExecutableAllocatorFixedVMPool.cpp:
      * jit/GCAwareJITStubRoutine.h:
      * jit/JITCode.h:
      * jit/JITStubs.cpp:
      * jit/JITToDFGDeferredCompilationCallback.h:
      * jit/JumpReplacementWatchpoint.h:
      * parser/Nodes.h:
      * runtime/DataView.h:
      * runtime/GCActivityCallback.h:
      * runtime/GenericTypedArrayView.h:
      * runtime/RegExpCache.h:
      * runtime/SimpleTypedArrayController.h:
      * runtime/WeakMapData.h:
      
      Source/WebCore:
      
      * Modules/encryptedmedia/MediaKeys.h:
      * Modules/webaudio/AnalyserNode.h:
      * Modules/webaudio/AudioBasicInspectorNode.h:
      * Modules/webaudio/AudioBasicProcessorNode.h:
      * Modules/webaudio/AudioBufferSourceNode.h:
      * Modules/webaudio/AudioContext.h:
      * Modules/webaudio/AudioDestinationNode.h:
      * Modules/webaudio/AudioProcessingEvent.h:
      * Modules/webaudio/BiquadDSPKernel.h:
      * Modules/webaudio/BiquadProcessor.h:
      * Modules/webaudio/ChannelMergerNode.h:
      * Modules/webaudio/ChannelSplitterNode.h:
      * Modules/webaudio/ConvolverNode.h:
      * Modules/webaudio/DelayDSPKernel.h:
      * Modules/webaudio/DelayProcessor.h:
      * Modules/webaudio/DynamicsCompressorNode.h:
      * Modules/webaudio/GainNode.h:
      * Modules/webaudio/MediaElementAudioSourceNode.h:
      * Modules/webaudio/OfflineAudioCompletionEvent.h:
      * Modules/webaudio/OfflineAudioDestinationNode.h:
      * Modules/webaudio/OscillatorNode.h:
      * Modules/webaudio/PannerNode.h:
      * Modules/webaudio/ScriptProcessorNode.h:
      * Modules/webaudio/WaveShaperProcessor.h:
      * accessibility/AccessibilityARIAGrid.h:
      * accessibility/AccessibilityARIAGridCell.h:
      * accessibility/AccessibilityARIAGridRow.h:
      * accessibility/AccessibilityImageMapLink.h:
      * accessibility/AccessibilityList.h:
      * accessibility/AccessibilityListBox.h:
      * accessibility/AccessibilityListBoxOption.h:
      * accessibility/AccessibilityMediaControls.h:
      * accessibility/AccessibilityMenuList.h:
      * accessibility/AccessibilityMenuListOption.h:
      * accessibility/AccessibilityMenuListPopup.h:
      * accessibility/AccessibilityMockObject.h:
      * accessibility/AccessibilityNodeObject.h:
      * accessibility/AccessibilityProgressIndicator.h:
      * accessibility/AccessibilityRenderObject.h:
      * accessibility/AccessibilitySVGRoot.h:
      * accessibility/AccessibilityScrollView.h:
      * accessibility/AccessibilityScrollbar.h:
      * accessibility/AccessibilitySlider.h:
      * accessibility/AccessibilitySpinButton.h:
      * accessibility/AccessibilityTable.h:
      * accessibility/AccessibilityTableCell.h:
      * accessibility/AccessibilityTableColumn.h:
      * accessibility/AccessibilityTableHeaderContainer.h:
      * accessibility/AccessibilityTableRow.h:
      * bindings/js/JSEventListener.h:
      * bindings/js/WebCoreTypedArrayController.h:
      * bridge/c/c_class.h:
      * bridge/c/c_instance.h:
      * bridge/c/c_runtime.h:
      * bridge/runtime_root.h:
      * css/CSSBasicShapes.h:
      * css/CSSComputedStyleDeclaration.h:
      * css/CSSStyleSheet.h:
      * dom/Attr.h:
      * dom/BeforeTextInsertedEvent.h:
      * dom/CDATASection.h:
      * dom/ChildNodeList.h:
      * dom/DatasetDOMStringMap.h:
      * dom/Document.h:
      * dom/DocumentEventQueue.h:
      * dom/DocumentFragment.h:
      * dom/Element.h:
      * dom/ErrorEvent.h:
      * dom/KeyboardEvent.h:
      * dom/Node.h:
      * dom/PageTransitionEvent.h:
      * dom/ProgressEvent.h:
      * dom/PseudoElement.h:
      * dom/ScriptExecutionContext.h:
      * dom/ShadowRoot.h:
      * dom/StyledElement.h:
      * dom/TagNodeList.h:
      * dom/Text.h:
      * dom/TextEvent.h:
      * dom/TransitionEvent.h:
      * dom/UIEvent.h:
      * dom/WebKitAnimationEvent.h:
      * dom/WebKitTransitionEvent.h:
      * editing/ApplyBlockElementCommand.h:
      * editing/ApplyStyleCommand.h:
      * editing/BreakBlockquoteCommand.h:
      * editing/CompositeEditCommand.h:
      * editing/SpellingCorrectionCommand.h:
      * fileapi/File.h:
      * fileapi/FileThreadTask.h:
      * history/BackForwardList.h:
      * html/BaseCheckableInputType.h:
      * html/HTMLAnchorElement.h:
      * html/HTMLAreaElement.h:
      * html/HTMLCanvasElement.h:
      * html/HTMLCollection.h:
      * html/HTMLElement.h:
      * html/HTMLFieldSetElement.h:
      * html/HTMLFormControlElement.h:
      * html/HTMLFormControlElementWithState.h:
      * html/HTMLFormElement.h:
      * html/HTMLFrameElementBase.h:
      * html/HTMLImageElement.h:
      * html/HTMLImageLoader.h:
      * html/HTMLInputElement.h:
      * html/HTMLLabelElement.h:
      * html/HTMLLegendElement.h:
      * html/HTMLMediaElement.h:
      * html/HTMLMeterElement.h:
      * html/HTMLOptGroupElement.h:
      * html/HTMLOptionElement.h:
      * html/HTMLPlugInElement.h:
      * html/HTMLPlugInImageElement.h:
      * html/HTMLProgressElement.h:
      * html/HTMLSelectElement.h:
      * html/HTMLTableElement.h:
      * html/HTMLTextAreaElement.h:
      * html/HTMLTextFormControlElement.h:
      * html/HTMLVideoElement.h:
      * html/canvas/CanvasRenderingContext2D.cpp:
      * html/shadow/MediaControlElementTypes.h:
      * html/shadow/MediaControlElements.h:
      * html/shadow/SpinButtonElement.h:
      * html/shadow/TextControlInnerElements.h:
      * html/track/AudioTrackList.h:
      * html/track/TextTrackList.h:
      * html/track/TrackListBase.h:
      * inspector/InspectorValues.h:
      * loader/EmptyClients.h:
      * loader/ImageLoader.h:
      * loader/ResourceLoader.h:
      * loader/SubresourceLoader.h:
      * loader/appcache/ApplicationCacheGroup.cpp:
      * loader/appcache/ApplicationCacheGroup.h:
      * loader/appcache/DOMApplicationCache.h:
      * loader/archive/cf/LegacyWebArchive.h:
      * loader/cache/CachedCSSStyleSheet.h:
      * loader/cache/CachedFont.h:
      * loader/cache/CachedFontClient.h:
      * loader/cache/CachedImageClient.h:
      * loader/cache/CachedSVGDocumentClient.h:
      * loader/cache/CachedStyleSheetClient.h:
      * loader/cache/CachedXSLStyleSheet.h:
      * page/Chrome.h:
      * page/DOMWindow.h:
      * page/FrameView.h:
      * page/animation/ImplicitAnimation.h:
      * platform/PODIntervalTree.h:
      * platform/PODRedBlackTree.h:
      * platform/ScrollView.h:
      * platform/Scrollbar.h:
      * platform/Timer.h:
      * platform/animation/TimingFunction.h:
      (WebCore::LinearTimingFunction::~LinearTimingFunction):
      (WebCore::CubicBezierTimingFunction::~CubicBezierTimingFunction):
      (WebCore::StepsTimingFunction::~StepsTimingFunction):
      * platform/audio/AudioDSPKernelProcessor.h:
      * platform/audio/HRTFPanner.h:
      * platform/audio/mac/AudioDestinationMac.h:
      * platform/graphics/SimpleFontData.h:
      * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
      * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
      * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
      * platform/graphics/filters/FilterOperation.h:
      * platform/network/ResourceHandle.h:
      * rendering/AutoTableLayout.h:
      * rendering/ClipPathOperation.h:
      * rendering/InlineFlowBox.h:
      * rendering/RenderBlock.h:
      * rendering/RenderBox.h:
      * rendering/RenderBoxModelObject.h:
      * rendering/RenderButton.h:
      * rendering/RenderFieldset.h:
      * rendering/RenderFileUploadControl.h:
      * rendering/RenderFlexibleBox.h:
      * rendering/RenderFlowThread.h:
      * rendering/RenderFullScreen.h:
      * rendering/RenderImage.h:
      * rendering/RenderLayer.h:
      * rendering/RenderLineBreak.h:
      * rendering/RenderListBox.h:
      * rendering/RenderListItem.h:
      * rendering/RenderListMarker.h:
      * rendering/RenderMenuList.h:
      * rendering/RenderMeter.h:
      * rendering/RenderObject.h:
      * rendering/RenderReplaced.h:
      * rendering/RenderSlider.h:
      * rendering/RenderTable.h:
      * rendering/RenderTableCell.h:
      * rendering/RenderText.h:
      * rendering/RenderTextControl.h:
      * rendering/RenderTextControlSingleLine.h:
      * rendering/RenderTextFragment.h:
      * rendering/RenderView.h:
      * rendering/RootInlineBox.h:
      * rendering/mathml/RenderMathMLBlock.h:
      * rendering/mathml/RenderMathMLFraction.h:
      * rendering/mathml/RenderMathMLOperator.h:
      * rendering/style/BasicShapes.h:
      * rendering/svg/RenderSVGModelObject.h:
      * rendering/svg/RenderSVGShape.h:
      * svg/SVGAnimatedBoolean.h:
      * svg/SVGAnimatedString.h:
      * svg/SVGAnimatedTransformList.h:
      * svg/SVGDocument.h:
      * svg/SVGElement.h:
      * svg/SVGElementInstance.h:
      * svg/SVGFontElement.h:
      * svg/SVGGElement.h:
      * svg/SVGGraphicsElement.h:
      * svg/SVGTransformable.h:
      * svg/properties/SVGAnimatedListPropertyTearOff.h:
      * svg/properties/SVGAnimatedPropertyMacros.h:
      * svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
      * svg/properties/SVGListPropertyTearOff.h:
      * svg/properties/SVGPropertyTearOff.h:
      * workers/WorkerGlobalScope.h:
      
      Source/WTF:
      
      * wtf/Compiler.h:
      * wtf/FilePrintStream.h:
      * wtf/StringPrintStream.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157044 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      70c60588
  6. 20 Sep, 2013 1 commit
  7. 19 Sep, 2013 1 commit
  8. 14 Sep, 2013 1 commit
  9. 09 Sep, 2013 1 commit
  10. 22 Aug, 2013 1 commit
    • ch.dumez@sisa.samsung.com's avatar
      [SVG2] Merge SVGStyledElement and SVGElement · 7dd31bf9
      ch.dumez@sisa.samsung.com authored
      https://bugs.webkit.org/show_bug.cgi?id=107386
      
      Reviewed by Andreas Kling.
      
      Source/WebCore:
      
      Merge SVGStyledElement into SVGElement to simplify the SVG inheritance
      model and match the SVG2 specification:
      https://svgwg.org/svg2-draft/single-page.html#types-InterfaceSVGElement
      
      Test: svg/dom/svg2-inheritance.html
      
      * CMakeLists.txt:
      * DerivedSources.cpp:
      * DerivedSources.make:
      * DerivedSources.pri:
      * GNUmakefile.list.am:
      * Target.pri:
      * WebCore.order:
      * WebCore.vcxproj/WebCore.vcxproj:
      * WebCore.vcxproj/WebCore.vcxproj.filters:
      * WebCore.xcodeproj/project.pbxproj:
      * accessibility/AccessibilityNodeObject.cpp:
      (WebCore::AccessibilityNodeObject::alternativeText):
      (WebCore::AccessibilityNodeObject::accessibilityDescription):
      * css/SVGCSSStyleSelector.cpp:
      * rendering/style/SVGRenderStyle.cpp:
      * rendering/svg/RenderSVGContainer.cpp:
      (WebCore::RenderSVGContainer::RenderSVGContainer):
      * rendering/svg/RenderSVGContainer.h:
      * rendering/svg/RenderSVGHiddenContainer.cpp:
      (WebCore::RenderSVGHiddenContainer::RenderSVGHiddenContainer):
      * rendering/svg/RenderSVGHiddenContainer.h:
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::RenderSVGModelObject):
      (WebCore::getElementCTM):
      * rendering/svg/RenderSVGModelObject.h:
      * rendering/svg/RenderSVGResourceClipper.cpp:
      (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
      (WebCore::RenderSVGResourceClipper::calculateClipContentRepaintRect):
      (WebCore::RenderSVGResourceClipper::hitTestClipContent):
      * rendering/svg/RenderSVGResourceContainer.cpp:
      (WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer):
      * rendering/svg/RenderSVGResourceContainer.h:
      * rendering/svg/RenderSVGResourceFilter.cpp:
      * rendering/svg/RenderSVGResourceFilterPrimitive.h:
      * rendering/svg/RenderSVGResourceMarker.cpp:
      * rendering/svg/RenderSVGResourceMarker.h:
      * rendering/svg/RenderSVGResourceMasker.cpp:
      (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
      (WebCore::RenderSVGResourceMasker::calculateMaskContentRepaintRect):
      * rendering/svg/RenderSVGResourcePattern.cpp:
      (WebCore::RenderSVGResourcePattern::createTileImage):
      * rendering/svg/RenderSVGRoot.cpp:
      (WebCore::RenderSVGRoot::RenderSVGRoot):
      * rendering/svg/RenderSVGRoot.h:
      * rendering/svg/RenderSVGViewportContainer.cpp:
      (WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer):
      * rendering/svg/RenderSVGViewportContainer.h:
      * rendering/svg/SVGRenderSupport.cpp:
      (WebCore::SVGRenderSupport::layoutChildren):
      * rendering/svg/SVGRenderTreeAsText.cpp:
      * rendering/svg/SVGResources.cpp:
      (WebCore::registerPendingResource):
      * rendering/svg/SVGResourcesCache.cpp:
      * svg/SVGAElement.cpp:
      (WebCore::SVGAElement::title):
      * svg/SVGAllInOne.cpp:
      * svg/SVGAltGlyphDefElement.h:
      * svg/SVGAltGlyphItemElement.h:
      * svg/SVGAnimateElement.cpp:
      * svg/SVGAnimatedType.cpp:
      (WebCore::SVGAnimatedType::valueAsString):
      (WebCore::SVGAnimatedType::setValueAsString):
      * svg/SVGAnimationElement.cpp:
      (WebCore::SVGAnimationElement::isTargetAttributeCSSProperty):
      (WebCore::SVGAnimationElement::computeCSSPropertyValue):
      (WebCore::SVGAnimationElement::adjustForInheritance):
      (WebCore::inheritsFromProperty):
      * svg/SVGComponentTransferFunctionElement.h:
      * svg/SVGCursorElement.h:
      * svg/SVGDescElement.cpp:
      (WebCore::SVGDescElement::SVGDescElement):
      * svg/SVGDescElement.h:
      * svg/SVGDescElement.idl:
      * svg/SVGElement.cpp:
      (WebCore::mapAttributeToCSSProperty):
      (WebCore::cssPropertyToTypeMap):
      (WebCore::SVGElement::SVGElement):
      (WebCore::SVGElement::~SVGElement):
      (WebCore::SVGElement::removedFrom):
      (WebCore::SVGElement::parseAttribute):
      (WebCore::SVGElement::animatedPropertyTypeForAttribute):
      (WebCore::collectInstancesForSVGElement):
      (WebCore::SVGElement::isAnimatableAttribute):
      (WebCore::SVGElement::title):
      (WebCore::SVGElement::rendererIsNeeded):
      (WebCore::SVGElement::cssPropertyIdForSVGAttributeName):
      (WebCore::SVGElement::isAnimatableCSSProperty):
      (WebCore::SVGElement::isPresentationAttribute):
      (WebCore::SVGElement::collectStyleForPresentationAttribute):
      (WebCore::SVGElement::isKnownAttribute):
      (WebCore::SVGElement::svgAttributeChanged):
      (WebCore::SVGElement::insertedInto):
      (WebCore::SVGElement::buildPendingResourcesIfNeeded):
      (WebCore::SVGElement::childrenChanged):
      (WebCore::SVGElement::getPresentationAttribute):
      (WebCore::SVGElement::instanceUpdatesBlocked):
      (WebCore::SVGElement::setInstanceUpdatesBlocked):
      (WebCore::SVGElement::localCoordinateSpaceTransform):
      (WebCore::SVGElement::updateRelativeLengthsInformation):
      (WebCore::SVGElement::isMouseFocusable):
      (WebCore::SVGElement::isKeyboardFocusable):
      * svg/SVGElement.h:
      (WebCore::SVGElement::supportsMarkers):
      (WebCore::SVGElement::hasRelativeLengths):
      (WebCore::SVGElement::needsPendingResourceHandling):
      (WebCore::SVGElement::selfHasRelativeLengths):
      (WebCore::SVGElement::updateRelativeLengthsInformation):
      * svg/SVGElement.idl:
      * svg/SVGElementInstance.cpp:
      (WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
      (WebCore::SVGElementInstance::InstanceUpdateBlocker::InstanceUpdateBlocker):
      * svg/SVGElementInstance.h:
      * svg/SVGFEBlendElement.idl:
      * svg/SVGFEColorMatrixElement.idl:
      * svg/SVGFEComponentTransferElement.idl:
      * svg/SVGFECompositeElement.idl:
      * svg/SVGFEConvolveMatrixElement.idl:
      * svg/SVGFEDiffuseLightingElement.idl:
      * svg/SVGFEDisplacementMapElement.idl:
      * svg/SVGFEDropShadowElement.idl:
      * svg/SVGFEFloodElement.idl:
      * svg/SVGFEGaussianBlurElement.idl:
      * svg/SVGFEImageElement.idl:
      * svg/SVGFELightElement.h:
      * svg/SVGFEMergeElement.idl:
      * svg/SVGFEMergeNodeElement.h:
      * svg/SVGFEMorphologyElement.idl:
      * svg/SVGFEOffsetElement.idl:
      * svg/SVGFESpecularLightingElement.idl:
      * svg/SVGFETileElement.idl:
      * svg/SVGFETurbulenceElement.idl:
      * svg/SVGFilterElement.cpp:
      (WebCore::SVGFilterElement::SVGFilterElement):
      (WebCore::SVGFilterElement::parseAttribute):
      (WebCore::SVGFilterElement::svgAttributeChanged):
      (WebCore::SVGFilterElement::childrenChanged):
      * svg/SVGFilterElement.h:
      * svg/SVGFilterElement.idl:
      * svg/SVGFilterPrimitiveStandardAttributes.cpp:
      (WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
      (WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
      (WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
      (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
      (WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
      * svg/SVGFilterPrimitiveStandardAttributes.h:
      * svg/SVGFontElement.cpp:
      (WebCore::SVGFontElement::SVGFontElement):
      * svg/SVGFontElement.h:
      * svg/SVGFontFaceElement.cpp:
      * svg/SVGFontFaceElement.h:
      * svg/SVGFontFaceFormatElement.h:
      * svg/SVGFontFaceNameElement.h:
      * svg/SVGFontFaceSrcElement.h:
      * svg/SVGFontFaceUriElement.h:
      * svg/SVGGElement.cpp:
      (WebCore::SVGGElement::rendererIsNeeded):
      * svg/SVGGlyphElement.cpp:
      (WebCore::SVGGlyphElement::SVGGlyphElement):
      (WebCore::SVGGlyphElement::parseAttribute):
      (WebCore::SVGGlyphElement::insertedInto):
      (WebCore::SVGGlyphElement::removedFrom):
      * svg/SVGGlyphElement.h:
      * svg/SVGGlyphRefElement.cpp:
      (WebCore::SVGGlyphRefElement::SVGGlyphRefElement):
      (WebCore::SVGGlyphRefElement::parseAttribute):
      * svg/SVGGlyphRefElement.h:
      * svg/SVGGlyphRefElement.idl:
      * svg/SVGGradientElement.cpp:
      (WebCore::SVGGradientElement::SVGGradientElement):
      (WebCore::SVGGradientElement::parseAttribute):
      (WebCore::SVGGradientElement::svgAttributeChanged):
      (WebCore::SVGGradientElement::childrenChanged):
      * svg/SVGGradientElement.h:
      * svg/SVGGradientElement.idl:
      * svg/SVGGraphicsElement.cpp:
      (WebCore::SVGGraphicsElement::SVGGraphicsElement):
      (WebCore::SVGGraphicsElement::parseAttribute):
      (WebCore::SVGGraphicsElement::svgAttributeChanged):
      * svg/SVGGraphicsElement.h:
      * svg/SVGGraphicsElement.idl:
      * svg/SVGLocatable.cpp:
      (WebCore::SVGLocatable::computeCTM):
      * svg/SVGMPathElement.h:
      * svg/SVGMarkerElement.cpp:
      (WebCore::SVGMarkerElement::SVGMarkerElement):
      (WebCore::SVGMarkerElement::parseAttribute):
      (WebCore::SVGMarkerElement::svgAttributeChanged):
      (WebCore::SVGMarkerElement::childrenChanged):
      * svg/SVGMarkerElement.h:
      * svg/SVGMarkerElement.idl:
      * svg/SVGMaskElement.cpp:
      (WebCore::SVGMaskElement::SVGMaskElement):
      (WebCore::SVGMaskElement::parseAttribute):
      (WebCore::SVGMaskElement::svgAttributeChanged):
      (WebCore::SVGMaskElement::childrenChanged):
      * svg/SVGMaskElement.h:
      * svg/SVGMaskElement.idl:
      * svg/SVGMetadataElement.h:
      * svg/SVGMissingGlyphElement.cpp:
      (WebCore::SVGMissingGlyphElement::SVGMissingGlyphElement):
      * svg/SVGMissingGlyphElement.h:
      * svg/SVGMissingGlyphElement.idl:
      * svg/SVGPatternElement.cpp:
      (WebCore::SVGPatternElement::SVGPatternElement):
      (WebCore::SVGPatternElement::parseAttribute):
      (WebCore::SVGPatternElement::svgAttributeChanged):
      (WebCore::SVGPatternElement::childrenChanged):
      * svg/SVGPatternElement.h:
      * svg/SVGPatternElement.idl:
      * svg/SVGScriptElement.h:
      * svg/SVGStopElement.cpp:
      (WebCore::SVGStopElement::SVGStopElement):
      (WebCore::SVGStopElement::parseAttribute):
      (WebCore::SVGStopElement::svgAttributeChanged):
      * svg/SVGStopElement.h:
      * svg/SVGStopElement.idl:
      * svg/SVGStyleElement.h:
      * svg/SVGStyledElement.cpp: Removed.
      * svg/SVGStyledElement.h: Removed.
      * svg/SVGStyledElement.idl: Removed.
      * svg/SVGSymbolElement.cpp:
      (WebCore::SVGSymbolElement::SVGSymbolElement):
      (WebCore::SVGSymbolElement::parseAttribute):
      (WebCore::SVGSymbolElement::svgAttributeChanged):
      * svg/SVGSymbolElement.h:
      * svg/SVGSymbolElement.idl:
      * svg/SVGTRefElement.cpp:
      (WebCore::SVGTRefElement::insertedInto):
      (WebCore::SVGTRefElement::removedFrom):
      * svg/SVGTitleElement.cpp:
      (WebCore::SVGTitleElement::SVGTitleElement):
      (WebCore::SVGTitleElement::insertedInto):
      * svg/SVGTitleElement.h:
      * svg/SVGTitleElement.idl:
      * svg/SVGTransformable.cpp:
      * svg/SVGUseElement.cpp:
      (WebCore::SVGUseElement::selfHasRelativeLengths):
      * svg/SVGViewElement.cpp:
      (WebCore::SVGViewElement::SVGViewElement):
      (WebCore::SVGViewElement::parseAttribute):
      * svg/SVGViewElement.h:
      * svg/animation/SVGSMILElement.h:
      * svg/graphics/filters/SVGFEImage.cpp:
      (WebCore::FEImage::platformApplySoftware):
      
      LayoutTests:
      
      Add layout test to validate the SVG2 inheritance model.
      
      * svg/dom/svg2-inheritance-expected.txt: Added.
      * svg/dom/svg2-inheritance.html: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@154462 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      7dd31bf9
  11. 26 Jul, 2013 1 commit
  12. 17 May, 2013 2 commits
    • commit-queue@webkit.org's avatar
      Unreviewed, rolling out r150294. · 263e0a65
      commit-queue@webkit.org authored
      http://trac.webkit.org/changeset/150294
      https://bugs.webkit.org/show_bug.cgi?id=116369
      
      Caused 31 tests to fail (Requested by rniwa on #webkit).
      
      * WebCore.exp.in:
      * rendering/InlineFlowBox.h:
      * rendering/InlineTextBox.h:
      (InlineTextBox):
      * rendering/RenderApplet.h:
      * rendering/RenderBR.h:
      * rendering/RenderBlock.h:
      (RenderBlock):
      (WebCore::RenderBlock::virtualContinuation):
      * rendering/RenderBox.h:
      (WebCore::RenderBox::borderBoundingBox):
      (RenderBox):
      (WebCore::RenderBox::marginLogicalLeft):
      (WebCore::RenderBox::marginLogicalRight):
      * rendering/RenderBoxModelObject.h:
      (WebCore::RenderBoxModelObject::isBoxModelObject):
      * rendering/RenderButton.h:
      * rendering/RenderCombineText.h:
      * rendering/RenderCounter.h:
      * rendering/RenderDeprecatedFlexibleBox.h:
      * rendering/RenderDetailsMarker.h:
      * rendering/RenderEmbeddedObject.h:
      (RenderEmbeddedObject):
      (WebCore::RenderEmbeddedObject::isEmbeddedObject):
      (WebCore::RenderEmbeddedObject::virtualChildren):
      * rendering/RenderFieldset.h:
      * rendering/RenderFileUploadControl.h:
      * rendering/RenderFlexibleBox.h:
      * rendering/RenderFlowThread.h:
      * rendering/RenderFrame.h:
      * rendering/RenderFrameSet.h:
      * rendering/RenderFullScreen.cpp:
      * rendering/RenderFullScreen.h:
      * rendering/RenderGrid.h:
      * rendering/RenderHTMLCanvas.h:
      * rendering/RenderIFrame.h:
      * rendering/RenderImage.h:
      (RenderImage):
      (WebCore::RenderImage::isRenderImage):
      * rendering/RenderInline.h:
      (RenderInline):
      (WebCore::RenderInline::virtualContinuation):
      (WebCore::RenderInline::virtualChildren):
      (WebCore::RenderInline::isRenderInline):
      (WebCore::RenderInline::layout):
      (WebCore::RenderInline::requiresLayer):
      (WebCore::RenderInline::offsetWidth):
      (WebCore::RenderInline::offsetHeight):
      (WebCore::RenderInline::borderBoundingBox):
      (WebCore::RenderInline::dirtyLinesFromChangedChild):
      * rendering/RenderLayerModelObject.h:
      * rendering/RenderListBox.h:
      * rendering/RenderListItem.h:
      * rendering/RenderListMarker.h:
      * rendering/RenderMedia.h:
      (WebCore::RenderMedia::virtualChildren):
      (WebCore::RenderMedia::canHaveChildren):
      (WebCore::RenderMedia::isMedia):
      (WebCore::RenderMedia::isImage):
      (WebCore::RenderMedia::requiresForcedStyleRecalcPropagation):
      * rendering/RenderMediaControlElements.h:
      * rendering/RenderMenuList.h:
      * rendering/RenderMeter.h:
      * rendering/RenderMultiColumnBlock.h:
      * rendering/RenderMultiColumnFlowThread.h:
      * rendering/RenderMultiColumnSet.h:
      * rendering/RenderNamedFlowThread.h:
      * rendering/RenderPart.h:
      (RenderPart):
      (WebCore::RenderPart::isRenderPart):
      (WebCore::RenderPart::renderName):
      * rendering/RenderProgress.h:
      * rendering/RenderRegion.h:
      (WebCore::RenderRegion::isRenderRegion):
      * rendering/RenderRegionSet.h:
      * rendering/RenderReplaced.h:
      (RenderReplaced):
      (WebCore::RenderReplaced::renderName):
      * rendering/RenderReplica.h:
      * rendering/RenderRuby.h:
      * rendering/RenderRubyBase.h:
      * rendering/RenderRubyRun.h:
      * rendering/RenderRubyText.h:
      * rendering/RenderScrollbarPart.h:
      * rendering/RenderSearchField.h:
      * rendering/RenderSlider.h:
      * rendering/RenderSnapshottedPlugIn.h:
      (RenderSnapshottedPlugIn):
      * rendering/RenderTable.h:
      (RenderTable):
      (WebCore::RenderTable::renderName):
      (WebCore::RenderTable::isTable):
      (WebCore::RenderTable::avoidsFloats):
      * rendering/RenderTableCaption.h:
      * rendering/RenderTableCell.h:
      * rendering/RenderTableCol.h:
      * rendering/RenderTableRow.h:
      * rendering/RenderTableSection.h:
      * rendering/RenderText.h:
      (RenderText):
      (WebCore::RenderText::marginLeft):
      (WebCore::RenderText::marginRight):
      (WebCore::RenderText::styleWillChange):
      (WebCore::RenderText::length):
      (WebCore::RenderText::paint):
      (WebCore::RenderText::layout):
      * rendering/RenderTextControl.h:
      (RenderTextControl):
      (WebCore::RenderTextControl::renderName):
      (WebCore::RenderTextControl::isTextControl):
      (WebCore::RenderTextControl::avoidsFloats):
      * rendering/RenderTextControlMultiLine.h:
      * rendering/RenderTextControlSingleLine.h:
      (RenderTextControlSingleLine):
      (WebCore::RenderTextControlSingleLine::isTextField):
      * rendering/RenderTextFragment.h:
      * rendering/RenderTextTrackCue.h:
      * rendering/RenderVideo.h:
      * rendering/RenderView.h:
      * rendering/RenderWidget.h:
      (RenderWidget):
      (WebCore::RenderWidget::isWidget):
      * rendering/RenderWordBreak.h:
      * rendering/RootInlineBox.h:
      (RootInlineBox):
      * rendering/mathml/RenderMathMLBlock.h:
      * rendering/svg/RenderSVGBlock.h:
      (RenderSVGBlock):
      * rendering/svg/RenderSVGContainer.h:
      (WebCore::RenderSVGContainer::setNeedsBoundariesUpdate):
      (WebCore::RenderSVGContainer::virtualChildren):
      (WebCore::RenderSVGContainer::isSVGContainer):
      (WebCore::RenderSVGContainer::renderName):
      (RenderSVGContainer):
      (WebCore::RenderSVGContainer::objectBoundingBox):
      (WebCore::RenderSVGContainer::strokeBoundingBox):
      (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
      * rendering/svg/RenderSVGEllipse.h:
      * rendering/svg/RenderSVGForeignObject.h:
      * rendering/svg/RenderSVGGradientStop.h:
      * rendering/svg/RenderSVGHiddenContainer.h:
      (WebCore::RenderSVGHiddenContainer::renderName):
      (RenderSVGHiddenContainer):
      (WebCore::RenderSVGHiddenContainer::isSVGHiddenContainer):
      * rendering/svg/RenderSVGImage.h:
      * rendering/svg/RenderSVGInline.h:
      (WebCore::RenderSVGInline::renderName):
      (WebCore::RenderSVGInline::requiresLayer):
      (WebCore::RenderSVGInline::isSVGInline):
      (RenderSVGInline):
      * rendering/svg/RenderSVGInlineText.h:
      * rendering/svg/RenderSVGModelObject.h:
      (WebCore::RenderSVGModelObject::requiresLayer):
      (RenderSVGModelObject):
      * rendering/svg/RenderSVGPath.h:
      * rendering/svg/RenderSVGRect.h:
      * rendering/svg/RenderSVGResourceClipper.h:
      * rendering/svg/RenderSVGResourceContainer.h:
      (RenderSVGResourceContainer):
      (WebCore::RenderSVGResourceContainer::isSVGResourceContainer):
      (WebCore::RenderSVGResourceContainer::toRenderSVGResourceContainer):
      * rendering/svg/RenderSVGResourceFilter.h:
      * rendering/svg/RenderSVGResourceFilterPrimitive.h:
      * rendering/svg/RenderSVGResourceGradient.h:
      (RenderSVGResourceGradient):
      (WebCore::RenderSVGResourceGradient::resourceBoundingBox):
      * rendering/svg/RenderSVGResourceLinearGradient.h:
      * rendering/svg/RenderSVGResourceMarker.h:
      * rendering/svg/RenderSVGResourceMasker.h:
      * rendering/svg/RenderSVGResourcePattern.h:
      * rendering/svg/RenderSVGResourceRadialGradient.h:
      * rendering/svg/RenderSVGRoot.h:
      * rendering/svg/RenderSVGShape.h:
      (WebCore::RenderSVGShape::setNeedsBoundariesUpdate):
      (WebCore::RenderSVGShape::setNeedsTransformUpdate):
      (WebCore::RenderSVGShape::repaintRectInLocalCoordinates):
      (WebCore::RenderSVGShape::localToParentTransform):
      (WebCore::RenderSVGShape::localTransform):
      (WebCore::RenderSVGShape::isSVGShape):
      (RenderSVGShape):
      (WebCore::RenderSVGShape::objectBoundingBox):
      (WebCore::RenderSVGShape::strokeBoundingBox):
      * rendering/svg/RenderSVGTSpan.h:
      * rendering/svg/RenderSVGText.h:
      * rendering/svg/RenderSVGTextPath.h:
      * rendering/svg/RenderSVGTransformableContainer.h:
      * rendering/svg/RenderSVGViewportContainer.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150312 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      263e0a65
    • akling@apple.com's avatar
      Apply FINAL to the RenderObject hierarchy. · 8d138e71
      akling@apple.com authored
      <http://webkit.org/b/115977>
      
      Mostly from Blink r148795 by <cevans@chromium.org>
      <http://src.chromium.org/viewvc/blink?view=revision&revision=148795>
      
      Re-landing without devirtualization tweaks.
      
      * rendering/: Beat things with the FINAL stick.
      * WebCore.exp.in: Export a now-needed symbol.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@150294 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8d138e71
  13. 12 May, 2013 2 commits
    • commit-queue@webkit.org's avatar
      Unreviewed, rolling out r149955. · 86eed7a7
      commit-queue@webkit.org authored
      http://trac.webkit.org/changeset/149955
      https://bugs.webkit.org/show_bug.cgi?id=115990
      
      Broke lots of tests (Requested by smfr on #webkit).
      
      Source/WebCore:
      
      * WebCore.exp.in:
      * rendering/InlineFlowBox.h:
      * rendering/InlineTextBox.h:
      (InlineTextBox):
      * rendering/RenderApplet.h:
      * rendering/RenderBR.h:
      * rendering/RenderBlock.h:
      (RenderBlock):
      (WebCore::RenderBlock::virtualContinuation):
      (WebCore::RenderBlock::virtualChildren):
      (WebCore::RenderBlock::isRenderBlock):
      (WebCore::RenderBlock::isBlockFlow):
      (WebCore::RenderBlock::isInlineBlockOrInlineTable):
      (WebCore::RenderBlock::dirtyLinesFromChangedChild):
      (WebCore::RenderBlock::collapsedMarginBefore):
      (WebCore::RenderBlock::collapsedMarginAfter):
      * rendering/RenderBox.h:
      (WebCore::RenderBox::borderBoundingBox):
      (RenderBox):
      (WebCore::RenderBox::marginLogicalLeft):
      (WebCore::RenderBox::marginLogicalRight):
      * rendering/RenderBoxModelObject.h:
      (WebCore::RenderBoxModelObject::isBoxModelObject):
      * rendering/RenderButton.h:
      * rendering/RenderCombineText.h:
      * rendering/RenderCounter.h:
      * rendering/RenderDeprecatedFlexibleBox.h:
      * rendering/RenderDetailsMarker.h:
      * rendering/RenderEmbeddedObject.h:
      (RenderEmbeddedObject):
      (WebCore::RenderEmbeddedObject::isEmbeddedObject):
      (WebCore::RenderEmbeddedObject::virtualChildren):
      * rendering/RenderFieldset.h:
      * rendering/RenderFileUploadControl.h:
      * rendering/RenderFlexibleBox.h:
      * rendering/RenderFlowThread.h:
      * rendering/RenderFrame.h:
      * rendering/RenderFrameSet.h:
      * rendering/RenderFullScreen.cpp:
      * rendering/RenderFullScreen.h:
      * rendering/RenderGrid.h:
      * rendering/RenderHTMLCanvas.h:
      * rendering/RenderIFrame.h:
      * rendering/RenderImage.h:
      (RenderImage):
      (WebCore::RenderImage::isRenderImage):
      * rendering/RenderInline.h:
      (RenderInline):
      (WebCore::RenderInline::virtualContinuation):
      (WebCore::RenderInline::virtualChildren):
      (WebCore::RenderInline::isRenderInline):
      (WebCore::RenderInline::layout):
      (WebCore::RenderInline::requiresLayer):
      (WebCore::RenderInline::offsetWidth):
      (WebCore::RenderInline::offsetHeight):
      (WebCore::RenderInline::borderBoundingBox):
      (WebCore::RenderInline::dirtyLinesFromChangedChild):
      * rendering/RenderLayerModelObject.h:
      * rendering/RenderListBox.h:
      * rendering/RenderListItem.h:
      * rendering/RenderListMarker.h:
      * rendering/RenderMedia.h:
      (WebCore::RenderMedia::virtualChildren):
      (WebCore::RenderMedia::canHaveChildren):
      (WebCore::RenderMedia::isMedia):
      (WebCore::RenderMedia::isImage):
      (WebCore::RenderMedia::requiresForcedStyleRecalcPropagation):
      * rendering/RenderMediaControlElements.h:
      * rendering/RenderMenuList.h:
      * rendering/RenderMeter.h:
      * rendering/RenderMultiColumnBlock.h:
      * rendering/RenderMultiColumnFlowThread.h:
      * rendering/RenderMultiColumnSet.h:
      * rendering/RenderNamedFlowThread.h:
      * rendering/RenderPart.h:
      (RenderPart):
      (WebCore::RenderPart::isRenderPart):
      (WebCore::RenderPart::renderName):
      * rendering/RenderProgress.h:
      * rendering/RenderRegion.h:
      (WebCore::RenderRegion::isRenderRegion):
      * rendering/RenderRegionSet.h:
      * rendering/RenderReplaced.h:
      (RenderReplaced):
      (WebCore::RenderReplaced::renderName):
      * rendering/RenderReplica.h:
      * rendering/RenderRuby.h:
      * rendering/RenderRubyBase.h:
      * rendering/RenderRubyRun.h:
      * rendering/RenderRubyText.h:
      * rendering/RenderScrollbarPart.h:
      * rendering/RenderSearchField.h:
      * rendering/RenderSlider.h:
      * rendering/RenderSnapshottedPlugIn.h:
      (RenderSnapshottedPlugIn):
      * rendering/RenderTable.h:
      (RenderTable):
      (WebCore::RenderTable::renderName):
      (WebCore::RenderTable::isTable):
      (WebCore::RenderTable::avoidsFloats):
      * rendering/RenderTableCaption.h:
      * rendering/RenderTableCell.h:
      * rendering/RenderTableCol.h:
      * rendering/RenderTableRow.h:
      * rendering/RenderTableSection.h:
      * rendering/RenderText.h:
      (RenderText):
      (WebCore::RenderText::marginLeft):
      (WebCore::RenderText::marginRight):
      (WebCore::RenderText::styleWillChange):
      (WebCore::RenderText::length):
      (WebCore::RenderText::paint):
      (WebCore::RenderText::layout):
      * rendering/RenderTextControl.h:
      (RenderTextControl):
      (WebCore::RenderTextControl::renderName):
      (WebCore::RenderTextControl::isTextControl):
      (WebCore::RenderTextControl::avoidsFloats):
      * rendering/RenderTextControlMultiLine.h:
      * rendering/RenderTextControlSingleLine.h:
      (RenderTextControlSingleLine):
      (WebCore::RenderTextControlSingleLine::isTextField):
      * rendering/RenderTextFragment.h:
      * rendering/RenderTextTrackCue.h:
      * rendering/RenderVideo.h:
      * rendering/RenderView.h:
      * rendering/RenderWidget.h:
      (RenderWidget):
      (WebCore::RenderWidget::isWidget):
      * rendering/RenderWordBreak.h:
      * rendering/RootInlineBox.h:
      (RootInlineBox):
      * rendering/mathml/RenderMathMLBlock.h:
      * rendering/svg/RenderSVGBlock.h:
      (RenderSVGBlock):
      * rendering/svg/RenderSVGContainer.h:
      (WebCore::RenderSVGContainer::setNeedsBoundariesUpdate):
      (WebCore::RenderSVGContainer::virtualChildren):
      (WebCore::RenderSVGContainer::isSVGContainer):
      (WebCore::RenderSVGContainer::renderName):
      (RenderSVGContainer):
      (WebCore::RenderSVGContainer::objectBoundingBox):
      (WebCore::RenderSVGContainer::strokeBoundingBox):
      (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
      * rendering/svg/RenderSVGEllipse.h:
      * rendering/svg/RenderSVGForeignObject.h:
      * rendering/svg/RenderSVGGradientStop.h:
      * rendering/svg/RenderSVGHiddenContainer.h:
      (WebCore::RenderSVGHiddenContainer::renderName):
      (RenderSVGHiddenContainer):
      (WebCore::RenderSVGHiddenContainer::isSVGHiddenContainer):
      * rendering/svg/RenderSVGImage.h:
      * rendering/svg/RenderSVGInline.h:
      (WebCore::RenderSVGInline::renderName):
      (WebCore::RenderSVGInline::requiresLayer):
      (WebCore::RenderSVGInline::isSVGInline):
      (RenderSVGInline):
      * rendering/svg/RenderSVGInlineText.h:
      * rendering/svg/RenderSVGModelObject.h:
      (WebCore::RenderSVGModelObject::requiresLayer):
      (RenderSVGModelObject):
      * rendering/svg/RenderSVGPath.h:
      * rendering/svg/RenderSVGRect.h:
      * rendering/svg/RenderSVGResourceClipper.h:
      * rendering/svg/RenderSVGResourceContainer.h:
      (RenderSVGResourceContainer):
      (WebCore::RenderSVGResourceContainer::isSVGResourceContainer):
      (WebCore::RenderSVGResourceContainer::toRenderSVGResourceContainer):
      * rendering/svg/RenderSVGResourceFilter.h:
      * rendering/svg/RenderSVGResourceFilterPrimitive.h:
      * rendering/svg/RenderSVGResourceGradient.h:
      (RenderSVGResourceGradient):
      (WebCore::RenderSVGResourceGradient::resourceBoundingBox):
      * rendering/svg/RenderSVGResourceLinearGradient.h:
      * rendering/svg/RenderSVGResourceMarker.h:
      * rendering/svg/RenderSVGResourceMasker.h:
      * rendering/svg/RenderSVGResourcePattern.h:
      * rendering/svg/RenderSVGResourceRadialGradient.h:
      * rendering/svg/RenderSVGRoot.h:
      * rendering/svg/RenderSVGShape.h:
      (WebCore::RenderSVGShape::setNeedsBoundariesUpdate):
      (WebCore::RenderSVGShape::setNeedsTransformUpdate):
      (WebCore::RenderSVGShape::repaintRectInLocalCoordinates):
      (WebCore::RenderSVGShape::localToParentTransform):
      (WebCore::RenderSVGShape::localTransform):
      (WebCore::RenderSVGShape::isSVGShape):
      (RenderSVGShape):
      (WebCore::RenderSVGShape::objectBoundingBox):
      (WebCore::RenderSVGShape::strokeBoundingBox):
      * rendering/svg/RenderSVGTSpan.h:
      * rendering/svg/RenderSVGText.h:
      * rendering/svg/RenderSVGTextPath.h:
      * rendering/svg/RenderSVGTransformableContainer.h:
      * rendering/svg/RenderSVGViewportContainer.h:
      
      Tools:
      
      * Scripts/webkitpy/port/mac.py:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149967 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      86eed7a7
    • akling@apple.com's avatar
      Apply FINAL to the RenderObject hierarchy. · dd7286cc
      akling@apple.com authored
      <http://webkit.org/b/115977>
      
      Mostly from Blink r148795 by <cevans@chromium.org>
      <http://src.chromium.org/viewvc/blink?view=revision&revision=148795>
      
      * rendering/: Beat things with the FINAL stick.
      * WebCore.exp.in: Export a now-needed symbol.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149955 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      dd7286cc
  14. 16 Dec, 2012 1 commit
    • leviw@chromium.org's avatar
      Push pixel snapping logic into TransformState · 104fddd8
      leviw@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=101779
      
      Reviewed by Simon Fraser.
      
      Source/WebCore:
      
      The old SnapOffsetForTransforms behavior fell apart when there was content nested in
      multiple levels of containers with sub-pixel offsets. The point of this flag was to
      mirror the pixel snapping that occurs in paint, where offsets are accumulated bottom-
      up through the render tree and snapped at the end. This change eliminates this flag
      and pushes pixel snapping logic down into TransformState.
      
      TransformState now tracks a LayoutSize accumulated offset when there's no transform
      or we're just translating. We then snap and apply this offset before accumulating
      values into a transform, and when returning planar coordinates to callers.
      
      Test: fast/sub-pixel/transformed-iframe-copy-on-scroll.html added,
            fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html modified to also catch this bug.
      
      * platform/graphics/transforms/TransformState.cpp:
      (WebCore::TransformState::operator=): Pass accumulated offset.
      (WebCore::TransformState::translateTransform): Extracted this functionality for
      re-use when applying the accumulated offset, or accumulating from a call to move.
      (WebCore::TransformState::translateMappedCoordinates): Same as above when we're not
      acculating into a transform.
      (WebCore::TransformState::move): Changed to accumulate into m_accumulatedOffset when
      not accumulating into a transform.
      (WebCore::TransformState::applyAccumulatedOffset):
      (WebCore::TransformState::applyTransform): Applies the accumulated offset before the
      transform.
      (WebCore::TransformState::flatten): Ditto for flattening.
      (WebCore::TransformState::mappedPoint): Translates by the accumulated offset before
      returning.
      (WebCore::TransformState::mappedQuad): Ditto.
      * platform/graphics/transforms/TransformState.h:
      (TransformState): Added m_accumulatedOffset.
      * rendering/RenderGeometryMap.cpp:
      (WebCore::RenderGeometryMap::mapToContainer): When not using a transform, we still need
      to snap our offset before applying to our float result. Also, flatten when we have a
      non-uniform step.
      * rendering/RenderGeometryMap.h:
      (RenderGeometryMap): Remove use of SnapOffsetForTransforms.
      
      Everything below simply drops the use of SnapOffsetForTransforms:
      
      * dom/ContainerNode.cpp:
      (WebCore::ContainerNode::getUpperLeftCorner):
      * dom/MouseRelatedEvent.cpp:
      (WebCore::MouseRelatedEvent::computeRelativePosition):
      * editing/FrameSelection.cpp:
      (WebCore::CaretBase::absoluteBoundsForLocalRect):
      * editing/RenderedPosition.cpp:
      (WebCore::RenderedPosition::absoluteRect):
      * editing/VisiblePosition.cpp:
      (WebCore::VisiblePosition::absoluteCaretBounds):
      * html/HTMLSelectElement.cpp:
      (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
      * html/shadow/SliderThumbElement.cpp:
      (WebCore::SliderThumbElement::setPositionFromPoint):
      * html/shadow/SpinButtonElement.cpp:
      (WebCore::SpinButtonElement::defaultEventHandler):
      * page/FrameView.cpp:
      (WebCore::FrameView::convertFromRenderer):
      (WebCore::FrameView::convertToRenderer):
      * rendering/InlineTextBox.cpp:
      (WebCore::InlineTextBox::paintDocumentMarker):
      (WebCore::InlineTextBox::paintTextMatchMarker):
      (WebCore::InlineTextBox::computeRectForReplacementMarker):
      * rendering/LayoutState.cpp:
      (WebCore::LayoutState::LayoutState):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::mapLocalToContainer):
      (WebCore::RenderBox::pushMappingToContainer):
      * rendering/RenderBox.h:
      (RenderBox):
      * rendering/RenderBoxModelObject.cpp:
      (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
      * rendering/RenderEmbeddedObject.cpp:
      (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
      * rendering/RenderFrameSet.cpp:
      (WebCore::RenderFrameSet::userResize):
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::mapLocalToContainer):
      (WebCore::RenderInline::pushMappingToContainer):
      * rendering/RenderInline.h:
      (RenderInline):
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::absoluteToContents):
      (WebCore::RenderLayer::scrollTo):
      (WebCore::RenderLayer::childrenClipRect):
      (WebCore::RenderLayer::selfClipRect):
      * rendering/RenderLayerBacking.cpp:
      (WebCore::RenderLayerBacking::contentsVisible):
      * rendering/RenderMediaControls.cpp:
      (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
      * rendering/RenderMenuList.cpp:
      (WebCore::RenderMenuList::showPopup):
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::absoluteFocusRingQuads):
      * rendering/RenderObject.h:
      * rendering/RenderText.cpp:
      (WebCore::RenderText::absoluteRectsForRange):
      (WebCore::RenderText::absoluteQuads):
      (WebCore::RenderText::absoluteQuadsForRange):
      * rendering/RenderTheme.cpp:
      (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::selectionBounds):
      * rendering/RenderView.h:
      (RenderView):
      * rendering/RenderWidget.cpp:
      (WebCore::RenderWidget::updateWidgetGeometry):
      * rendering/svg/RenderSVGForeignObject.cpp:
      (WebCore::RenderSVGForeignObject::mapLocalToContainer):
      * rendering/svg/RenderSVGForeignObject.h:
      (RenderSVGForeignObject):
      * rendering/svg/RenderSVGInline.cpp:
      (WebCore::RenderSVGInline::mapLocalToContainer):
      * rendering/svg/RenderSVGInline.h:
      (RenderSVGInline):
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::mapLocalToContainer):
      * rendering/svg/RenderSVGModelObject.h:
      (RenderSVGModelObject):
      * rendering/svg/RenderSVGRoot.h:
      (RenderSVGRoot):
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::mapLocalToContainer):
      * rendering/svg/RenderSVGText.h:
      (RenderSVGText):
      * rendering/svg/SVGRenderSupport.cpp:
      (WebCore::SVGRenderSupport::mapLocalToContainer):
      * rendering/svg/SVGRenderSupport.h:
      (SVGRenderSupport):
      
      Source/WebKit/chromium:
      
      Eliminating use of SnapOffsetForTransforms as it's no longer needed.
      
      * src/FindInPageCoordinates.cpp:
      (WebKit::toNormalizedRect):
      * src/LinkHighlight.cpp:
      (WebKit::convertTargetSpaceQuadToCompositedLayer):
      * src/WebInputEventConversion.cpp:
      (WebKit::convertAbsoluteLocationForRenderObject):
      * src/WebPluginContainerImpl.cpp:
      (WebKit::WebPluginContainerImpl::windowToLocalPoint):
      
      Source/WebKit/mac:
      
      * WebView/WebFullScreenController.mm:
      (screenRectOfContents): Removed SnapOffsetForTransforms as it's no longer needed.
      
      Source/WebKit2:
      
      Eliminating use of SnapOffsetForTransforms as it's no longer needed.
      
      * WebProcess/FullScreen/WebFullScreenManager.cpp:
      (WebKit::screenRectOfContents):
      
      LayoutTests:
      
      * fast/dom/Window/webkitConvertPoint.html: Updating values to match corrected pixel snapping.
      * fast/multicol/break-properties.html: Fixing sub-pixel layout feature checking.
      * fast/multicol/vertical-lr/break-properties.html: Ditto.
      * fast/multicol/vertical-rl/break-properties.html: Ditto.
      * fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html: Updating to catch the bug where the old
      pixel snapping logic did the wrong thing when nested.
      * fast/sub-pixel/transformed-iframe-copy-on-scroll.html: Added.
      * platform/chromium-linux/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.png:
      * platform/chromium-linux/fast/sub-pixel/transformed-iframe-copy-on-scroll-expected.png: Added.
      * platform/chromium-linux/fast/sub-pixel/transformed-iframe-copy-on-scroll-expected.txt: Added.
      * platform/chromium-win/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.txt:
      * platform/chromium/TestExpectations:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137847 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      104fddd8
  15. 16 Nov, 2012 1 commit
    • simon.fraser@apple.com's avatar
      Eliminate ancestor tree walk computing outlineBoundsForRepaint() when updating layer positions · 4860b615
      simon.fraser@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=101874
      
      Reviewed by Dave Hyatt.
      
      Source/WebCore:
      
      RenderLayer::updateLayerPositions() and updateLayerPositionsAfterScroll() spend a
      lot of time in computeRepaintRects(), which does two ancestor tree walks, once
      for clippedOverflowRectForRepaint(), and one for outlineBoundsForRepaint().
      
      Eliminate the ancestor tree walk in outlineBoundsForRepaint() by maintaining
      a RenderGeometryMap as we traverse the layer tree, and then using it to map
      the outline bounds to the repaint container. Replace the hokey cached offsetFromRoot
      now that the RenderGeometryMap can do a better job.
      
      The clipped overflow rect cannot be mapped simply, so cannot yet make use of
      the geometry map.
      
      Modify the RenderGeometryMap to support mapping to some repaintContainer ancestor.
      Add a RenderObject walk that is necessary to detect flipped writing mode blocks.
      
      Pass the RenderGeometryMap as an optional parameter to outlineBoundsForRepaint.
      
      * page/FrameView.cpp:
      (WebCore::FrameView::layout): Make a RenderGeometryMap and pass it down
      to updateLayerPositions(). For partial layouts, we have to push layers
      between the root and the enclosing layer of the layout subtree.
      The geometry map used for repainting does not use SnapOffsetForTransforms,
      so initialize it explicitly with just the UseTransforms flag.
      (WebCore::FrameView::repaintFixedElementsAfterScrolling): Make a RenderGeometryMap
      to pass along to updateLayerPositionsAfterScroll().
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::outlineBoundsForRepaint): Replace the optional cachedOffsetToRepaintContainer
      parameter with an optional RenderGeometryMap, and it use to map the compute rect to
      repaintContainer coordinates.
      * rendering/RenderBox.h:
      * rendering/RenderGeometryMap.cpp:
      (WebCore::RenderGeometryMap::RenderGeometryMap): This now has to store the mapping
      flags to use, so that its behavior can match that of mapLocalToContainer(). The
      pertinent flag is the confusingly named SnapOffsetForTransforms.
      (WebCore::RenderGeometryMap::absolutePoint): Call the new mapToContainer() with
      a null container.
      (WebCore::RenderGeometryMap::absoluteRect): Ditto.
      (WebCore::RenderGeometryMap::mapToContainer): Map to the supplied container,
      asserting that we found it. Add point- and rect-based mapping methods
      akin to the old absoluteRect/absolutePoint.
      (WebCore::canMapViaLayer): We need to test for isRenderFlowThread() here too.
      (WebCore::RenderGeometryMap::pushMappingsToAncestor): When mapping via
      layers, ensure that the RenderView is pushed as the first step.
      * rendering/RenderGeometryMap.h:
      (RenderGeometryMap):
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::updateLayerPositionsAfterLayout): New wrapper for updateLayerPositions()
      that makes the geometry map.
      (WebCore::RenderLayer::updateLayerPositionsAfterScroll): New wrapper for updateLayerPositionsAfterScroll
      that makes the geometry map.
      (WebCore::RenderLayer::updateLayerPositions): Now takes an optional RenderGeometryMap.
      Remove the old offsetFromRoot code. Push and pop layers to/from the geometry map. Use
      the geometry map to get the offsetFromRoot as needed by overflow controls. Pass
      it to computeRepaintRects().
      (WebCore::RenderLayer::computeRepaintRects): Pass the geometry map to outlineBoundsForRepaint().
      (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Push and pop to/from the
      geometry map, and pass it to computeRepaintRects().
      (WebCore::RenderLayer::removeOnlyThisLayer): Remove the offsetFromRootBeforeMove
      computation; this could use a geometry map in future if it is shown to be a bottleneck.
      * rendering/RenderLayer.h:
      (WebCore::RenderLayer::canUseConvertToLayerCoords): It was thought that the isComposited()
      was there because the older cached offsetFromRoot logic was sensitive to compositing,
      but convertToLayerCoords() is not affected by compositing so this check is not needed,
      and actually harmful.
      * rendering/RenderLayerCompositor.cpp:
      (WebCore::RenderLayerCompositor::OverlapMap::OverlapMap): The geometry map
      used for overlap testing should not use SnapOffsetForTransforms, so initialize
      it explicitly with just the UseTransforms flag.
      * rendering/RenderObject.h:
      (WebCore::RenderObject::outlineBoundsForRepaint):
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
      * rendering/svg/RenderSVGModelObject.h:
      (RenderSVGModelObject):
      
      LayoutTests:
      
      In debug, skip tests that assert because of LayoutUnit truncation.
      
      * platform/mac/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@135025 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      4860b615
  16. 07 Nov, 2012 2 commits
    • simon.fraser@apple.com's avatar
      constify ALL the repaint containers · a4825069
      simon.fraser@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=101541
      
      Reviewed by Beth Dakin.
      
      Make all the RenderLayerModelObject* repaintContainer arguments const, since
      these member functions should have no need to mutate this object.
      
      * WebCore.exp.in:
      * rendering/RenderBR.h:
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::selectionGapRectsForRepaint):
      (WebCore::RenderBlock::rectWithOutlineForRepaint):
      * rendering/RenderBlock.h:
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::outlineBoundsForRepaint):
      (WebCore::RenderBox::mapLocalToContainer):
      (WebCore::RenderBox::clippedOverflowRectForRepaint):
      (WebCore::RenderBox::computeRectForRepaint):
      * rendering/RenderBox.h:
      * rendering/RenderFlowThread.cpp:
      (WebCore::RenderFlowThread::repaintRectangleInRegions): Need to use a const_iterator.
      * rendering/RenderFlowThread.h:
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::clippedOverflowRectForRepaint):
      (WebCore::RenderInline::rectWithOutlineForRepaint):
      (WebCore::RenderInline::computeRectForRepaint):
      (WebCore::RenderInline::mapLocalToContainer):
      * rendering/RenderInline.h:
      * rendering/RenderListMarker.cpp:
      (WebCore::RenderListMarker::selectionRectForRepaint):
      * rendering/RenderListMarker.h:
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::repaintUsingContainer):
      (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
      (WebCore::RenderObject::rectWithOutlineForRepaint):
      (WebCore::RenderObject::clippedOverflowRectForRepaint):
      (WebCore::RenderObject::computeRectForRepaint):
      (WebCore::RenderObject::computeFloatRectForRepaint):
      (WebCore::RenderObject::mapLocalToContainer):
      (WebCore::RenderObject::localToContainerQuad):
      (WebCore::RenderObject::localToContainerPoint):
      * rendering/RenderObject.h:
      (WebCore::RenderObject::selectionRectForRepaint):
      (WebCore::RenderObject::outlineBoundsForRepaint):
      * rendering/RenderReplaced.cpp:
      (WebCore::RenderReplaced::selectionRectForRepaint):
      (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
      * rendering/RenderReplaced.h:
      * rendering/RenderTableCell.cpp:
      (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
      (WebCore::RenderTableCell::computeRectForRepaint):
      * rendering/RenderTableCell.h:
      * rendering/RenderTableCol.cpp:
      (WebCore::RenderTableCol::clippedOverflowRectForRepaint):
      * rendering/RenderTableCol.h:
      * rendering/RenderTableRow.cpp:
      (WebCore::RenderTableRow::clippedOverflowRectForRepaint):
      * rendering/RenderTableRow.h:
      * rendering/RenderText.cpp:
      (WebCore::RenderText::clippedOverflowRectForRepaint):
      (WebCore::RenderText::selectionRectForRepaint):
      * rendering/RenderText.h:
      * rendering/RenderView.cpp:
      (WebCore::RenderView::mapLocalToContainer):
      (WebCore::RenderView::computeRectForRepaint):
      * rendering/RenderView.h:
      * rendering/svg/RenderSVGForeignObject.cpp:
      (WebCore::RenderSVGForeignObject::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGForeignObject::computeFloatRectForRepaint):
      (WebCore::RenderSVGForeignObject::mapLocalToContainer):
      * rendering/svg/RenderSVGForeignObject.h:
      * rendering/svg/RenderSVGGradientStop.h:
      * rendering/svg/RenderSVGHiddenContainer.h:
      * rendering/svg/RenderSVGInline.cpp:
      (WebCore::RenderSVGInline::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGInline::computeFloatRectForRepaint):
      (WebCore::RenderSVGInline::mapLocalToContainer):
      * rendering/svg/RenderSVGInline.h:
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGModelObject::computeFloatRectForRepaint):
      (WebCore::RenderSVGModelObject::mapLocalToContainer):
      (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
      * rendering/svg/RenderSVGModelObject.h:
      * rendering/svg/RenderSVGRoot.cpp:
      (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
      (WebCore::RenderSVGRoot::mapLocalToContainer):
      * rendering/svg/RenderSVGRoot.h:
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGText::computeRectForRepaint):
      (WebCore::RenderSVGText::computeFloatRectForRepaint):
      (WebCore::RenderSVGText::mapLocalToContainer):
      * rendering/svg/RenderSVGText.h:
      * rendering/svg/SVGRenderSupport.cpp:
      (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
      (WebCore::SVGRenderSupport::computeFloatRectForRepaint):
      (WebCore::SVGRenderSupport::mapLocalToContainer):
      * rendering/svg/SVGRenderSupport.h:
      (SVGRenderSupport):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@133845 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a4825069
    • timothy_horton@apple.com's avatar
      Repaint issues with -webkit-svg-shadow used on a container · 314822f1
      timothy_horton@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=65643
      <rdar://problem/7600532>
      
      Reviewed by Simon Fraser.
      
      SVG renderer repaint rects are currently expanded only by the shadow of
      the renderer itself; however, the area they need to repaint can be larger
      than that, if their parents also have shadows. We need to take into account
      parent's shadows (respecting transforms, as well).
      
      clippedOverflowRectForRepaint already recurses upwards through the render tree,
      and ends up with a rect in layout coordinates, so we manually apply the shadow
      at each step (repaintRectInLocalCoordinatesExcludingSVGShadow was added to allow
      us to get the raw repaint rect without the shadow baked-in).
      
      repaintRectInLocalCoordinates now includes shadows from all parents.
      
      Also, RenderSVGRoot was clipping repaint rects to the viewport before applying
      shadows, so offscreen elements with on-screen shadows (applied by the root) would not paint the shadows.
      We can just swap the order of these things to correct this.
      
      Tests: svg/css/parent-shadow-offscreen.svg, svg/css/root-shadow-offscreen.svg, svg/repaint/repaint-webkit-svg-shadow.svg
      
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::addChild): Mark the child being added as having an SVG shadow if it is being added as a child of an element that does.
      (WebCore::RenderObject::styleDidChange): Mark the child being added as having an SVG shadow if its new style has a shadow.
      * rendering/svg/RenderSVGImage.cpp:
      (WebCore::RenderSVGImage::layout): Cache the repaint rect before intersecting it with the shadow.
      * rendering/svg/RenderSVGImage.h:
      (WebCore::RenderSVGImage::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::RenderSVGModelObject): Renderers do not have a shadow by default.
      * rendering/svg/RenderSVGModelObject.h:
      (WebCore::RenderSVGModelObject::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
      (WebCore::RenderSVGModelObject::hasSVGShadow): Return whether or not the renderer has a shadow.
      (WebCore::RenderSVGModelObject::setHasSVGShadow): Set whether or not the renderer has a shadow.
      * rendering/svg/RenderSVGRoot.cpp:
      (WebCore::RenderSVGRoot::RenderSVGRoot):
      (WebCore::RenderSVGRoot::computeFloatRectForRepaint): Apply the shadow before clipping to the viewport, so we draw shadows for elements outside the viewport.
      (WebCore::RenderSVGRoot::updateCachedBoundaries): Cache the repaint rect before intersecting it with the shadow.
      * rendering/svg/RenderSVGRoot.h:
      (WebCore::RenderSVGRoot::hasSVGShadow): Return whether or not the renderer has a shadow.
      (WebCore::RenderSVGRoot::setHasSVGShadow): Set whether or not the renderer has a shadow.
      (WebCore::RenderSVGRoot::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
      * rendering/svg/RenderSVGShape.cpp:
      (WebCore::RenderSVGShape::updateRepaintBoundingBox): Cache the repaint rect before intersecting it with the shadow.
      * rendering/svg/RenderSVGShape.h:
      (WebCore::RenderSVGShape::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
      * rendering/svg/SVGRenderSupport.cpp:
      (WebCore::SVGRenderSupport::repaintRectForRendererInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
      (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): Apply shadows as we walk through our parents, instead of only applying the renderer's own shadow.
      (WebCore::SVGRenderSupport::rendererHasSVGShadow): Return whether or not the renderer has a shadow.
      (WebCore::SVGRenderSupport::setRendererHasSVGShadow): Set whether or not the renderer has a shadow.
      (WebCore::SVGRenderSupport::intersectRepaintRectWithShadows): Walk through the element's parents, adding shadows to the repaint rect as we go, eventually
      transforming the repaint rect back into local coordinates.
      (WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Don't add shadows by default, just other resources, so that we can cache repaint rects with and without shadows.
      * rendering/svg/SVGRenderSupport.h:
      
      
      * platform/chromium/TestExpectations: Mark tests as needing rebaseline.
      * platform/efl/TestExpectations: Mark tests as needing rebaseline.
      * platform/gtk/TestExpectations: Mark tests as needing rebaseline.
      * platform/qt/TestExpectations: Mark tests as needing rebaseline.
      
      * platform/mac/fast/repaint/moving-shadow-on-container-expected.txt:
      * platform/mac/svg/css/arrow-with-shadow-expected.txt:
      * platform/mac/svg/css/clippath-with-shadow-expected.txt:
      * platform/mac/svg/css/composite-shadow-example-expected.txt:
      * platform/mac/svg/css/composite-shadow-with-opacity-expected.txt:
      * platform/mac/svg/css/group-with-shadow-expected.txt:
      * platform/mac/svg/css/shadow-changes-expected.txt:
      * platform/mac/svg/custom/simple-text-double-shadow-expected.txt:
      Rebaseline Mac results due to this change.
      
      * svg/css/parent-shadow-offscreen-expected.svg: Added.
      * svg/css/parent-shadow-offscreen.svg: Added.
      Add a new test that ensures that <g> with -webkit-svg-shadow applied draws when children are offscreen but the shadow is not.
      
      * svg/css/root-shadow-offscreen-expected.svg: Added.
      * svg/css/root-shadow-offscreen.svg: Added.
      Add a new test that ensures that <svg> with -webkit-svg-shadow applied draws when children are offscreen but the shadow is not.
      
      * platform/mac/svg/repaint/repaint-webkit-svg-shadow-expected.png: Added.
      * svg/repaint/repaint-webkit-svg-shadow-expected.txt: Added.
      * svg/repaint/repaint-webkit-svg-shadow.svg: Added.
      Add a new test that ensures that SVG elements with -webkit-svg-shadow are correctly invalidated.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@133834 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      314822f1
  17. 12 Oct, 2012 1 commit
  18. 11 Oct, 2012 1 commit
    • leviw@chromium.org's avatar
      [Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel · 63f73871
      leviw@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=98571
      
      Reviewed by Emil A Eklund.
      
      Source/WebCore:
      
      Refactoring all coordinate-switching functionality to use a single "mode" flag
      as opposed to having a bunch of boolean values. This enables the same set of
      options across the board, and a consistent interface. This was previously
      done for mapLocalToContainer.
      
      The imptetus for this for this stems from the one logical change in this patch
      which only effects sub-pixel layout. FrameView::convertToRenderer and
      convertFromRenderer return IntPoint coordinates, and need to also snap transform
      offsets to determine proper rects for scrolling.
      
      Unlabeled functions below are simply being updated to these new interfaces.
      
      Test: fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
      
      * WebCore.exp.in:
      * dom/ContainerNode.cpp:
      (WebCore::ContainerNode::getUpperLeftCorner):
      (WebCore::ContainerNode::getLowerRightCorner):
      * dom/Element.cpp:
      (WebCore::Element::boundsInRootViewSpace):
      * dom/MouseRelatedEvent.cpp:
      (WebCore::MouseRelatedEvent::computeRelativePosition):
      * dom/Node.cpp:
      (WebCore::Node::convertToPage):
      (WebCore::Node::convertFromPage):
      * html/HTMLSelectElement.cpp:
      (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
      * html/shadow/SliderThumbElement.cpp:
      (WebCore::SliderThumbElement::setPositionFromPoint):
      * html/shadow/SpinButtonElement.cpp:
      (WebCore::SpinButtonElement::defaultEventHandler):
      * page/FrameView.cpp:
      (WebCore::FrameView::convertToRenderer): Now pixel-snaps offsets before passing
      them to TransformState, which transforms the coordinates.
      (WebCore::FrameView::convertFromRenderer): Ditto.
      * rendering/LayoutState.cpp:
      (WebCore::LayoutState::LayoutState):
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::absoluteQuads):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::absoluteQuads):
      (WebCore::RenderBox::mapLocalToContainer):
      (WebCore::RenderBox::mapAbsoluteToLocalPoint):
      * rendering/RenderBox.h:
      (RenderBox):
      * rendering/RenderBoxModelObject.cpp:
      (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
      * rendering/RenderBoxModelObject.h:
      (RenderBoxModelObject):
      * rendering/RenderEmbeddedObject.cpp:
      (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
      * rendering/RenderFrameSet.cpp:
      (WebCore::RenderFrameSet::userResize):
      * rendering/RenderGeometryMap.cpp:
      (WebCore::RenderGeometryMap::absolutePoint):
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::mapLocalToContainer):
      * rendering/RenderInline.h:
      (RenderInline):
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::absoluteToContents):
      (WebCore::RenderLayer::calculateClipRects):
      * rendering/RenderMediaControls.cpp:
      (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
      * rendering/RenderMenuList.cpp:
      (WebCore::RenderMenuList::showPopup):
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::localToAbsolute):
      (WebCore::RenderObject::absoluteToLocal):
      (WebCore::RenderObject::mapLocalToContainer):
      (WebCore::RenderObject::mapAbsoluteToLocalPoint):
      (WebCore::RenderObject::localToContainerQuad):
      (WebCore::RenderObject::localToContainerPoint):
      * rendering/RenderObject.h:
      (RenderObject): MapLocalToContainerFlags is now MapCoordinatesFlags since it's
      now used for other conversion methods.
      (WebCore::RenderObject::localToAbsoluteQuad):
      * rendering/RenderTheme.cpp:
      (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::mapLocalToContainer):
      (WebCore::RenderView::mapAbsoluteToLocalPoint):
      * rendering/RenderView.h:
      (RenderView):
      * rendering/svg/RenderSVGForeignObject.cpp:
      (WebCore::RenderSVGForeignObject::mapLocalToContainer):
      * rendering/svg/RenderSVGForeignObject.h:
      (RenderSVGForeignObject):
      * rendering/svg/RenderSVGInline.cpp:
      (WebCore::RenderSVGInline::mapLocalToContainer):
      * rendering/svg/RenderSVGInline.h:
      (RenderSVGInline):
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::mapLocalToContainer):
      * rendering/svg/RenderSVGModelObject.h:
      (RenderSVGModelObject):
      * rendering/svg/RenderSVGRoot.cpp:
      (WebCore::RenderSVGRoot::mapLocalToContainer):
      * rendering/svg/RenderSVGRoot.h:
      (RenderSVGRoot):
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::mapLocalToContainer):
      * rendering/svg/RenderSVGText.h:
      (RenderSVGText):
      * rendering/svg/SVGRenderSupport.cpp:
      (WebCore::SVGRenderSupport::mapLocalToContainer):
      * svg/SVGSVGElement.cpp:
      (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
      
      LayoutTests:
      
      Tests scrolling of sub-pixel layers on sub-pixel platforms (Chromium).
      
      * fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html: Added.
      * platform/chromium-linux/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.png: Added.
      * platform/chromium-linux/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.txt: Added.
      * platform/chromium-linux/fast/repaint/repaint-across-writing-mode-boundary-expected.png:
      The repaint rect shrinks safely by one pixel.
      * platform/chromium/TestExpectations:
      * platform/mac-lion/TestExpectations:
      * platform/mac-snowleopard/TestExpectations:
      * platform/mac-wk2/TestExpectations:
      * platform/mac/TestExpectations:
      * platform/qt-4.8/TestExpectations:
      * platform/qt/TestExpectations:
      * platform/win-wk2/TestExpectations:
      * platform/win-xp/TestExpectations:
      * platform/win/TestExpectations:
      * platform/wincairo/TestExpectations:
      * platform/wk2/TestExpectations:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131111 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      63f73871
  19. 09 Oct, 2012 2 commits
    • commit-queue@webkit.org's avatar
      Unreviewed, rolling out r130811 and r130821. · a2a40f8f
      commit-queue@webkit.org authored
      http://trac.webkit.org/changeset/130811
      http://trac.webkit.org/changeset/130821
      https://bugs.webkit.org/show_bug.cgi?id=98831
      
      Broke date-suggestion-picker-appearance-with-scroll-bar.html
      (Requested by abarth|gardening on #webkit).
      
      Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-10-09
      
      Source/WebCore:
      
      * WebCore.exp.in:
      * dom/ContainerNode.cpp:
      (WebCore::ContainerNode::getUpperLeftCorner):
      (WebCore::ContainerNode::getLowerRightCorner):
      * dom/MouseRelatedEvent.cpp:
      (WebCore::MouseRelatedEvent::computeRelativePosition):
      * dom/Node.cpp:
      (WebCore::Node::convertToPage):
      (WebCore::Node::convertFromPage):
      * editing/FrameSelection.cpp:
      (WebCore::CaretBase::absoluteBoundsForLocalRect):
      * editing/RenderedPosition.cpp:
      (WebCore::RenderedPosition::absoluteRect):
      * editing/VisiblePosition.cpp:
      (WebCore::VisiblePosition::absoluteCaretBounds):
      * html/HTMLSelectElement.cpp:
      (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
      * html/shadow/SliderThumbElement.cpp:
      (WebCore::SliderThumbElement::setPositionFromPoint):
      * html/shadow/SpinButtonElement.cpp:
      (WebCore::SpinButtonElement::defaultEventHandler):
      * page/FrameView.cpp:
      (WebCore::FrameView::convertFromRenderer):
      (WebCore::FrameView::convertToRenderer):
      * rendering/InlineTextBox.cpp:
      (WebCore::InlineTextBox::paintDocumentMarker):
      (WebCore::InlineTextBox::paintTextMatchMarker):
      (WebCore::InlineTextBox::computeRectForReplacementMarker):
      * rendering/LayoutState.cpp:
      (WebCore::LayoutState::LayoutState):
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::absoluteQuads):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::absoluteQuads):
      (WebCore::RenderBox::absoluteContentBox):
      (WebCore::RenderBox::mapLocalToContainer):
      (WebCore::RenderBox::mapAbsoluteToLocalPoint):
      * rendering/RenderBox.h:
      (RenderBox):
      * rendering/RenderBoxModelObject.cpp:
      (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
      (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
      * rendering/RenderBoxModelObject.h:
      (RenderBoxModelObject):
      * rendering/RenderEmbeddedObject.cpp:
      (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
      * rendering/RenderFrameSet.cpp:
      (WebCore::RenderFrameSet::userResize):
      * rendering/RenderGeometryMap.cpp:
      (WebCore::RenderGeometryMap::absolutePoint):
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::mapLocalToContainer):
      * rendering/RenderInline.h:
      (RenderInline):
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::absoluteToContents):
      (WebCore::RenderLayer::convertToLayerCoords):
      (WebCore::RenderLayer::scrollTo):
      (WebCore::RenderLayer::calculateClipRects):
      (WebCore::RenderLayer::childrenClipRect):
      (WebCore::RenderLayer::selfClipRect):
      * rendering/RenderLayerBacking.cpp:
      (WebCore::RenderLayerBacking::contentsVisible):
      * rendering/RenderMediaControls.cpp:
      (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
      * rendering/RenderMenuList.cpp:
      (WebCore::RenderMenuList::showPopup):
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::absoluteFocusRingQuads):
      (WebCore::RenderObject::localToAbsolute):
      (WebCore::RenderObject::absoluteToLocal):
      (WebCore::RenderObject::mapLocalToContainer):
      (WebCore::RenderObject::mapAbsoluteToLocalPoint):
      (WebCore::RenderObject::localToContainerQuad):
      (WebCore::RenderObject::localToContainerPoint):
      * rendering/RenderObject.h:
      (RenderObject):
      (WebCore::RenderObject::localToAbsoluteQuad):
      * rendering/RenderText.cpp:
      (WebCore::RenderText::absoluteRectsForRange):
      (WebCore::RenderText::absoluteQuads):
      (WebCore::RenderText::absoluteQuadsForRange):
      * rendering/RenderTheme.cpp:
      (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::mapLocalToContainer):
      (WebCore::RenderView::mapAbsoluteToLocalPoint):
      (WebCore::RenderView::selectionBounds):
      * rendering/RenderView.h:
      (RenderView):
      * rendering/RenderWidget.cpp:
      (WebCore::RenderWidget::updateWidgetGeometry):
      * rendering/svg/RenderSVGForeignObject.cpp:
      (WebCore::RenderSVGForeignObject::mapLocalToContainer):
      * rendering/svg/RenderSVGForeignObject.h:
      (RenderSVGForeignObject):
      * rendering/svg/RenderSVGInline.cpp:
      (WebCore::RenderSVGInline::mapLocalToContainer):
      * rendering/svg/RenderSVGInline.h:
      (RenderSVGInline):
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::mapLocalToContainer):
      (WebCore::RenderSVGModelObject::absoluteQuads):
      * rendering/svg/RenderSVGModelObject.h:
      (RenderSVGModelObject):
      * rendering/svg/RenderSVGRoot.cpp:
      (WebCore::RenderSVGRoot::mapLocalToContainer):
      * rendering/svg/RenderSVGRoot.h:
      (RenderSVGRoot):
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::mapLocalToContainer):
      (WebCore::RenderSVGText::absoluteQuads):
      * rendering/svg/RenderSVGText.h:
      (RenderSVGText):
      * rendering/svg/SVGRenderSupport.cpp:
      (WebCore::SVGRenderSupport::mapLocalToContainer):
      * svg/SVGSVGElement.cpp:
      (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
      
      Source/WebKit/chromium:
      
      * src/FindInPageCoordinates.cpp:
      (WebKit::toNormalizedRect):
      * src/LinkHighlight.cpp:
      (WebKit::convertTargetSpaceQuadToCompositedLayer):
      * src/WebInputEventConversion.cpp:
      (WebKit::convertLocationForRenderObject):
      
      Source/WebKit/mac:
      
      * WebView/WebFullScreenController.mm:
      (screenRectOfContents):
      * WebView/WebRenderNode.mm:
      (copyRenderNode):
      
      Source/WebKit2:
      
      * Shared/WebRenderObject.cpp:
      (WebKit::WebRenderObject::WebRenderObject):
      * WebProcess/FullScreen/WebFullScreenManager.cpp:
      (WebKit::screenRectOfContents):
      
      LayoutTests:
      
      * fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html: Removed.
      * platform/chromium-linux/fast/repaint/repaint-across-writing-mode-boundary-expected.png:
      * platform/chromium-linux/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.png: Removed.
      * platform/chromium-linux/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.txt: Removed.
      * platform/chromium-mac-snowleopard/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.png: Removed.
      * platform/chromium-mac/fast/repaint/repaint-across-writing-mode-boundary-expected.png:
      * platform/chromium-mac/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.png: Removed.
      * platform/chromium-mac/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.txt: Removed.
      * platform/mac-lion/TestExpectations:
      * platform/mac-snowleopard/TestExpectations:
      * platform/mac-wk2/TestExpectations:
      * platform/mac/TestExpectations:
      * platform/qt-4.8/TestExpectations:
      * platform/qt/TestExpectations:
      * platform/win-wk2/TestExpectations:
      * platform/win-xp/TestExpectations:
      * platform/win/TestExpectations:
      * platform/wincairo/TestExpectations:
      * platform/wk2/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130824 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a2a40f8f
    • leviw@chromium.org's avatar
      [Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel · 56cde565
      leviw@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=98571
      
      Reviewed by Emil A Eklund.
      
      Source/WebCore:
      
      Refactoring all coordinate-switching functionality to use a single "mode" flag
      as opposed to having a bunch of boolean values. This enables the same set of
      options across the board, and a consistent interface. This was previously
      done for mapLocalToContainer.
      
      The imptetus for this for this stems from the one logical change in this patch
      which only effects sub-pixel layout. FrameView::convertToRenderer and
      convertFromRenderer return IntPoint coordinates, and need to also snap transform
      offsets to determine proper rects for scrolling.
      
      Unlabeled functions below are simply being updated to these new interfaces.
      
      Test: fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
      
      * WebCore.exp.in:
      * dom/ContainerNode.cpp:
      (WebCore::ContainerNode::getUpperLeftCorner):
      (WebCore::ContainerNode::getLowerRightCorner):
      * dom/Element.cpp:
      (WebCore::Element::boundsInRootViewSpace):
      * dom/MouseRelatedEvent.cpp:
      (WebCore::MouseRelatedEvent::computeRelativePosition):
      * dom/Node.cpp:
      (WebCore::Node::convertToPage):
      (WebCore::Node::convertFromPage):
      * html/HTMLSelectElement.cpp:
      (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
      * html/shadow/SliderThumbElement.cpp:
      (WebCore::SliderThumbElement::setPositionFromPoint):
      * html/shadow/SpinButtonElement.cpp:
      (WebCore::SpinButtonElement::defaultEventHandler):
      * page/FrameView.cpp:
      (WebCore::FrameView::convertToRenderer): Now pixel-snaps offsets before passing
      them to TransformState, which transforms the coordinates.
      (WebCore::FrameView::convertFromRenderer): Ditto.
      * rendering/LayoutState.cpp:
      (WebCore::LayoutState::LayoutState):
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::absoluteQuads):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::absoluteQuads):
      (WebCore::RenderBox::mapLocalToContainer):
      (WebCore::RenderBox::mapAbsoluteToLocalPoint):
      * rendering/RenderBox.h:
      (RenderBox):
      * rendering/RenderBoxModelObject.cpp:
      (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
      * rendering/RenderBoxModelObject.h:
      (RenderBoxModelObject):
      * rendering/RenderEmbeddedObject.cpp:
      (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
      * rendering/RenderFrameSet.cpp:
      (WebCore::RenderFrameSet::userResize):
      * rendering/RenderGeometryMap.cpp:
      (WebCore::RenderGeometryMap::absolutePoint):
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::mapLocalToContainer):
      * rendering/RenderInline.h:
      (RenderInline):
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::absoluteToContents):
      (WebCore::RenderLayer::calculateClipRects):
      * rendering/RenderMediaControls.cpp:
      (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
      * rendering/RenderMenuList.cpp:
      (WebCore::RenderMenuList::showPopup):
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::localToAbsolute):
      (WebCore::RenderObject::absoluteToLocal):
      (WebCore::RenderObject::mapLocalToContainer):
      (WebCore::RenderObject::mapAbsoluteToLocalPoint):
      (WebCore::RenderObject::localToContainerQuad):
      (WebCore::RenderObject::localToContainerPoint):
      * rendering/RenderObject.h:
      (RenderObject): MapLocalToContainerFlags is now MapCoordinatesFlags since it's
      now used for other conversion methods.
      (WebCore::RenderObject::localToAbsoluteQuad):
      * rendering/RenderTheme.cpp:
      (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::mapLocalToContainer):
      (WebCore::RenderView::mapAbsoluteToLocalPoint):
      * rendering/RenderView.h:
      (RenderView):
      * rendering/svg/RenderSVGForeignObject.cpp:
      (WebCore::RenderSVGForeignObject::mapLocalToContainer):
      * rendering/svg/RenderSVGForeignObject.h:
      (RenderSVGForeignObject):
      * rendering/svg/RenderSVGInline.cpp:
      (WebCore::RenderSVGInline::mapLocalToContainer):
      * rendering/svg/RenderSVGInline.h:
      (RenderSVGInline):
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::mapLocalToContainer):
      * rendering/svg/RenderSVGModelObject.h:
      (RenderSVGModelObject):
      * rendering/svg/RenderSVGRoot.cpp:
      (WebCore::RenderSVGRoot::mapLocalToContainer):
      * rendering/svg/RenderSVGRoot.h:
      (RenderSVGRoot):
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::mapLocalToContainer):
      * rendering/svg/RenderSVGText.h:
      (RenderSVGText):
      * rendering/svg/SVGRenderSupport.cpp:
      (WebCore::SVGRenderSupport::mapLocalToContainer):
      * svg/SVGSVGElement.cpp:
      (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
      
      LayoutTests:
      
      Tests scrolling of sub-pixel layers on sub-pixel platforms (Chromium).
      
      * fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html: Added.
      * platform/chromium-linux/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.png: Added.
      * platform/chromium-linux/fast/sub-pixel/sub-pixel-iframe-copy-on-scroll-expected.txt: Added.
      * platform/chromium-linux/fast/repaint/repaint-across-writing-mode-boundary-expected.png:
      The repaint rect shrinks safely by one pixel.
      * platform/chromium/TestExpectations:
      * platform/mac-lion/TestExpectations:
      * platform/mac-snowleopard/TestExpectations:
      * platform/mac-wk2/TestExpectations:
      * platform/mac/TestExpectations:
      * platform/qt-4.8/TestExpectations:
      * platform/qt/TestExpectations:
      * platform/win-wk2/TestExpectations:
      * platform/win-xp/TestExpectations:
      * platform/win/TestExpectations:
      * platform/wincairo/TestExpectations:
      * platform/wk2/TestExpectations:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130811 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      56cde565
  20. 01 Oct, 2012 1 commit
    • fmalita@chromium.org's avatar
      Refactor layer-related logic out of RenderBoxModelObject · 49d26f2b
      fmalita@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=86022
      
      Reviewed by David Hyatt.
      
      This patch extracts layer-related logic into a dedicated class
      (RenderLayerModelObject) and refactors dependent code to make use
      of the new type instead of RenderBoxModelObject. This is in preparation
      of adding non-RenderBoxModelObject layer supprt.
      
      All methods that were using RenderBoxModelObject for layer-related
      functionality are updated to work with RenderLayerModelObject
      instead (a RenderLayer's renderer() can no longer be assumed to be
      a RenderBoxModelObject).
      
      No new tests: refactoring with no behavior changes.
      
      * CMakeLists.txt:
      * GNUmakefile.list.am:
      * Target.pri:
      * WebCore.exp.in:
      * WebCore.gypi:
      * WebCore.order:
      * WebCore.vcproj/WebCore.vcproj:
      * WebCore.xcodeproj/project.pbxproj:
      * rendering/LayoutRepainter.h:
      (WebCore):
      (LayoutRepainter):
      * rendering/RenderBR.h:
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::selectionGapRectsForRepaint):
      (WebCore::RenderBlock::rectWithOutlineForRepaint):
      * rendering/RenderBlock.h:
      (RenderBlock):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::styleDidChange):
      (WebCore::RenderBox::updateFromStyle):
      (WebCore::RenderBox::outlineBoundsForRepaint):
      (WebCore::RenderBox::mapLocalToContainer):
      (WebCore::RenderBox::pushMappingToContainer):
      (WebCore::RenderBox::clippedOverflowRectForRepaint):
      (WebCore::RenderBox::computeRectForRepaint):
      (WebCore::RenderBox::enclosingFloatPaintingLayer):
      * rendering/RenderBox.h:
      (RenderBox):
      * rendering/RenderBoxModelObject.cpp:
      (WebCore):
      (WebCore::RenderBoxModelObject::RenderBoxModelObject):
      (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
      (WebCore::RenderBoxModelObject::willBeDestroyed):
      (WebCore::RenderBoxModelObject::updateFromStyle):
      * rendering/RenderBoxModelObject.h:
      (RenderBoxModelObject):
      * rendering/RenderGeometryMap.cpp:
      (WebCore::RenderGeometryMap::pushMappingsToAncestor):
      (WebCore::RenderGeometryMap::popMappingsToAncestor):
      * rendering/RenderGeometryMap.h:
      (RenderGeometryMap):
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::updateFromStyle):
      (WebCore::RenderInline::clippedOverflowRectForRepaint):
      (WebCore::RenderInline::rectWithOutlineForRepaint):
      (WebCore::RenderInline::computeRectForRepaint):
      (WebCore::RenderInline::mapLocalToContainer):
      (WebCore::RenderInline::pushMappingToContainer):
      * rendering/RenderInline.h:
      (RenderInline):
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::RenderLayer):
      (WebCore::RenderLayer::updateLayerPositions):
      (WebCore::RenderLayer::computeRepaintRects):
      (WebCore::checkContainingBlockChainForPagination):
      (WebCore::RenderLayer::updateLayerPosition):
      (WebCore::isPositionedContainer):
      (WebCore::RenderLayer::hasAncestorWithFilterOutsets):
      (WebCore::RenderLayer::scrollTo):
      (WebCore::RenderLayer::repaintIncludingNonCompositingDescendants):
      * rendering/RenderLayer.h:
      (RenderLayer):
      (WebCore::RenderLayer::renderer):
      * rendering/RenderLayerBacking.h:
      (WebCore::RenderLayerBacking::renderer):
      * rendering/RenderLayerCompositor.cpp:
      (WebCore::RenderLayerCompositor::updateBacking):
      (WebCore::RenderLayerCompositor::repaintOnCompositingChange):
      (WebCore::RenderLayerCompositor::requiresCompositingLayer):
      (WebCore::RenderLayerCompositor::reasonForCompositing):
      * rendering/RenderListMarker.cpp:
      (WebCore::RenderListMarker::selectionRectForRepaint):
      * rendering/RenderListMarker.h:
      (RenderListMarker):
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::addChild):
      (WebCore::addLayers):
      (WebCore::RenderObject::removeLayers):
      (WebCore::RenderObject::moveLayers):
      (WebCore::RenderObject::findNextLayer):
      (WebCore::RenderObject::enclosingLayer):
      (WebCore::RenderObject::setLayerNeedsFullRepaint):
      (WebCore::RenderObject::setLayerNeedsFullRepaintForPositionedMovementLayout):
      (WebCore::RenderObject::containerForRepaint):
      (WebCore::RenderObject::repaintUsingContainer):
      (WebCore::RenderObject::repaint):
      (WebCore::RenderObject::repaintRectangle):
      (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
      (WebCore::RenderObject::rectWithOutlineForRepaint):
      (WebCore::RenderObject::clippedOverflowRectForRepaint):
      (WebCore::RenderObject::computeRectForRepaint):
      (WebCore::RenderObject::computeFloatRectForRepaint):
      (WebCore::RenderObject::adjustStyleDifference):
      (WebCore::RenderObject::mapLocalToContainer):
      (WebCore::RenderObject::pushMappingToContainer):
      (WebCore::RenderObject::shouldUseTransformFromContainer):
      (WebCore::RenderObject::getTransformFromContainer):
      (WebCore::RenderObject::localToContainerQuad):
      (WebCore::RenderObject::localToContainerPoint):
      (WebCore::RenderObject::container):
      (WebCore::RenderObject::willBeDestroyed):
      (WebCore::RenderObject::isComposited):
      * rendering/RenderObject.h:
      (WebCore):
      (WebCore::RenderObject::isLayerModelObject):
      (RenderObject):
      (WebCore::RenderObject::selectionRectForRepaint):
      (WebCore::RenderObject::outlineBoundsForRepaint):
      * rendering/RenderReplaced.cpp:
      (WebCore::RenderReplaced::selectionRectForRepaint):
      (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
      * rendering/RenderReplaced.h:
      (RenderReplaced):
      * rendering/RenderSelectionInfo.h:
      (WebCore::RenderSelectionInfoBase::repaintContainer):
      (RenderSelectionInfoBase):
      * rendering/RenderTableCell.cpp:
      (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
      (WebCore::RenderTableCell::computeRectForRepaint):
      * rendering/RenderTableCell.h:
      (RenderTableCell):
      * rendering/RenderTableCol.cpp:
      (WebCore::RenderTableCol::clippedOverflowRectForRepaint):
      * rendering/RenderTableCol.h:
      (RenderTableCol):
      * rendering/RenderTableRow.cpp:
      (WebCore::RenderTableRow::clippedOverflowRectForRepaint):
      * rendering/RenderTableRow.h:
      (RenderTableRow):
      * rendering/RenderText.cpp:
      (WebCore::RenderText::clippedOverflowRectForRepaint):
      (WebCore::RenderText::selectionRectForRepaint):
      * rendering/RenderText.h:
      (RenderText):
      * rendering/RenderLayerModelObject.cpp: Added.
      (WebCore):
      (WebCore::RenderLayerModelObject::RenderLayerModelObject):
      (WebCore::RenderLayerModelObject::~RenderLayerModelObject):
      (WebCore::RenderLayerModelObject::destroyLayer):
      (WebCore::RenderLayerModelObject::ensureLayer):
      (WebCore::RenderLayerModelObject::hasSelfPaintingLayer):
      (WebCore::RenderLayerModelObject::willBeDestroyed):
      (WebCore::RenderLayerModelObject::styleWillChange):
      (WebCore::RenderLayerModelObject::styleDidChange):
      * rendering/RenderLayerModelObject.h: Added.
      (WebCore):
      (RenderLayerModelObject):
      (WebCore::RenderLayerModelObject::layer):
      (WebCore::RenderLayerModelObject::updateFromStyle):
      (WebCore::toRenderLayerModelObject):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::mapLocalToContainer):
      (WebCore::RenderView::pushMappingToContainer):
      (WebCore::isComposited):
      (WebCore::RenderView::computeRectForRepaint):
      (WebCore::RenderView::absoluteRects):
      (WebCore::RenderView::absoluteQuads):
      (WebCore::RenderView::selectionBounds):
      (WebCore::RenderView::setSelection):
      (WebCore::RenderView::clearSelection):
      * rendering/RenderView.h:
      (RenderView):
      * rendering/RenderingAllInOne.cpp:
      * rendering/svg/RenderSVGBlock.cpp:
      (WebCore::RenderSVGBlock::updateFromStyle):
      * rendering/svg/RenderSVGBlock.h:
      (RenderSVGBlock):
      * rendering/svg/RenderSVGForeignObject.cpp:
      (WebCore::RenderSVGForeignObject::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGForeignObject::computeFloatRectForRepaint):
      (WebCore::RenderSVGForeignObject::mapLocalToContainer):
      (WebCore::RenderSVGForeignObject::pushMappingToContainer):
      * rendering/svg/RenderSVGForeignObject.h:
      (RenderSVGForeignObject):
      * rendering/svg/RenderSVGGradientStop.h:
      * rendering/svg/RenderSVGHiddenContainer.h:
      * rendering/svg/RenderSVGInline.cpp:
      (WebCore::RenderSVGInline::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGInline::computeFloatRectForRepaint):
      (WebCore::RenderSVGInline::mapLocalToContainer):
      (WebCore::RenderSVGInline::pushMappingToContainer):
      * rendering/svg/RenderSVGInline.h:
      (RenderSVGInline):
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGModelObject::computeFloatRectForRepaint):
      (WebCore::RenderSVGModelObject::mapLocalToContainer):
      (WebCore::RenderSVGModelObject::pushMappingToContainer):
      (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
      * rendering/svg/RenderSVGModelObject.h:
      (RenderSVGModelObject):
      * rendering/svg/RenderSVGRoot.cpp:
      (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
      (WebCore::RenderSVGRoot::mapLocalToContainer):
      (WebCore::RenderSVGRoot::pushMappingToContainer):
      * rendering/svg/RenderSVGRoot.h:
      (RenderSVGRoot):
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGText::computeRectForRepaint):
      (WebCore::RenderSVGText::computeFloatRectForRepaint):
      (WebCore::RenderSVGText::mapLocalToContainer):
      (WebCore::RenderSVGText::pushMappingToContainer):
      * rendering/svg/RenderSVGText.h:
      (RenderSVGText):
      * rendering/svg/SVGRenderSupport.cpp:
      (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
      (WebCore::SVGRenderSupport::computeFloatRectForRepaint):
      (WebCore::SVGRenderSupport::mapLocalToContainer):
      (WebCore::SVGRenderSupport::pushMappingToContainer):
      * rendering/svg/SVGRenderSupport.h:
      (WebCore):
      (SVGRenderSupport):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130081 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      49d26f2b
  21. 21 Sep, 2012 1 commit
  22. 28 Aug, 2012 1 commit
    • allan.jensen@nokia.com's avatar
      Rename HitTestPoint and pointInContainer · 9a9045b4
      allan.jensen@nokia.com authored
      https://bugs.webkit.org/show_bug.cgi?id=90992
      
      Reviewed by Eric Seidel.
      
      The former hitTestPoint is not just a point. It can be either a point or an area being
      hit tested. This patches renames 'point' to 'location' to make it more obvious that the
      code does not only handle points.
      
      * rendering/EllipsisBox.cpp:
      (WebCore::EllipsisBox::nodeAtPoint):
      * rendering/EllipsisBox.h:
      (EllipsisBox):
      * rendering/HitTestResult.cpp:
      (WebCore::HitTestLocation::HitTestLocation):
      (WebCore::HitTestLocation::~HitTestLocation):
      (WebCore::HitTestLocation::operator=):
      (WebCore::HitTestLocation::move):
      (WebCore::HitTestLocation::intersectsRect):
      (WebCore::HitTestLocation::intersects):
      (WebCore::HitTestLocation::rectForPoint):
      (WebCore::HitTestResult::HitTestResult):
      (WebCore::HitTestResult::operator=):
      (WebCore::HitTestResult::addNodeToRectBasedTestResult):
      (WebCore::HitTestResult::dictationAlternatives):
      * rendering/HitTestResult.h:
      (HitTestLocation):
      (HitTestResult):
      (WebCore::HitTestResult::hitTestLocation):
      * rendering/InlineBox.cpp:
      (WebCore::InlineBox::nodeAtPoint):
      * rendering/InlineBox.h:
      (InlineBox):
      * rendering/InlineFlowBox.cpp:
      (WebCore::InlineFlowBox::nodeAtPoint):
      * rendering/InlineFlowBox.h:
      (InlineFlowBox):
      * rendering/InlineTextBox.cpp:
      (WebCore::InlineTextBox::nodeAtPoint):
      * rendering/InlineTextBox.h:
      (InlineTextBox):
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::isPointInOverflowControl):
      (WebCore::RenderBlock::nodeAtPoint):
      (WebCore::RenderBlock::hitTestFloats):
      (WebCore::RenderBlock::hitTestColumns):
      (WebCore::RenderBlock::adjustForColumnRect):
      (WebCore::RenderBlock::hitTestContents):
      * rendering/RenderBlock.h:
      (RenderBlock):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::nodeAtPoint):
      * rendering/RenderBox.h:
      (RenderBox):
      * rendering/RenderEmbeddedObject.cpp:
      (WebCore::RenderEmbeddedObject::nodeAtPoint):
      * rendering/RenderEmbeddedObject.h:
      (RenderEmbeddedObject):
      * rendering/RenderFlowThread.cpp:
      (WebCore::RenderFlowThread::hitTestRegion):
      * rendering/RenderFlowThread.h:
      * rendering/RenderFrameSet.cpp:
      (WebCore::RenderFrameSet::nodeAtPoint):
      * rendering/RenderFrameSet.h:
      (RenderFrameSet):
      * rendering/RenderImage.cpp:
      (WebCore::RenderImage::nodeAtPoint):
      * rendering/RenderImage.h:
      (RenderImage):
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::nodeAtPoint):
      * rendering/RenderInline.h:
      (RenderInline):
      * rendering/RenderLayer.cpp:
      (WebCore::ClipRect::intersects):
      (WebCore::RenderLayer::hitTest):
      (WebCore::RenderLayer::createLocalTransformState):
      (WebCore::RenderLayer::hitTestLayer):
      (WebCore::RenderLayer::hitTestContents):
      (WebCore::RenderLayer::hitTestList):
      (WebCore::RenderLayer::hitTestPaginatedChildLayer):
      (WebCore::RenderLayer::hitTestChildLayerColumns):
      * rendering/RenderLayer.h:
      (ClipRect):
      (RenderLayer):
      * rendering/RenderLineBoxList.cpp:
      (WebCore::RenderLineBoxList::hitTest):
      * rendering/RenderLineBoxList.h:
      (RenderLineBoxList):
      * rendering/RenderListBox.cpp:
      (WebCore::RenderListBox::isPointInOverflowControl):
      (WebCore::RenderListBox::nodeAtPoint):
      * rendering/RenderListBox.h:
      (RenderListBox):
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::hitTest):
      (WebCore::RenderObject::nodeAtPoint):
      * rendering/RenderObject.h:
      (RenderObject):
      * rendering/RenderRegion.cpp:
      (WebCore::RenderRegion::nodeAtPoint):
      * rendering/RenderRegion.h:
      (RenderRegion):
      * rendering/RenderTable.cpp:
      (WebCore::RenderTable::nodeAtPoint):
      * rendering/RenderTable.h:
      (RenderTable):
      * rendering/RenderTableRow.cpp:
      (WebCore::RenderTableRow::nodeAtPoint):
      * rendering/RenderTableRow.h:
      (RenderTableRow):
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::nodeAtPoint):
      * rendering/RenderTableSection.h:
      (RenderTableSection):
      * rendering/RenderText.h:
      * rendering/RenderTextControlMultiLine.cpp:
      (WebCore::RenderTextControlMultiLine::nodeAtPoint):
      * rendering/RenderTextControlMultiLine.h:
      (RenderTextControlMultiLine):
      * rendering/RenderTextControlSingleLine.cpp:
      (WebCore::RenderTextControlSingleLine::nodeAtPoint):
      * rendering/RenderTextControlSingleLine.h:
      (RenderTextControlSingleLine):
      * rendering/RenderWidget.cpp:
      (WebCore::RenderWidget::nodeAtPoint):
      * rendering/RenderWidget.h:
      (RenderWidget):
      * rendering/RootInlineBox.cpp:
      (WebCore::RootInlineBox::nodeAtPoint):
      * rendering/RootInlineBox.h:
      (RootInlineBox):
      * rendering/svg/RenderSVGForeignObject.cpp:
      (WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
      (WebCore::RenderSVGForeignObject::nodeAtPoint):
      * rendering/svg/RenderSVGForeignObject.h:
      (RenderSVGForeignObject):
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::nodeAtPoint):
      * rendering/svg/RenderSVGModelObject.h:
      (RenderSVGModelObject):
      * rendering/svg/RenderSVGRoot.cpp:
      (WebCore::RenderSVGRoot::nodeAtPoint):
      * rendering/svg/RenderSVGRoot.h:
      (RenderSVGRoot):
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::nodeAtFloatPoint):
      (WebCore::RenderSVGText::nodeAtPoint):
      * rendering/svg/RenderSVGText.h:
      (RenderSVGText):
      * rendering/svg/SVGInlineTextBox.cpp:
      (WebCore::SVGInlineTextBox::nodeAtPoint):
      * rendering/svg/SVGInlineTextBox.h:
      (SVGInlineTextBox):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126859 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9a9045b4
  23. 16 Aug, 2012 1 commit
    • leviw@chromium.org's avatar
      Accumulate sub-pixel offsets through layers and transforms · 248a7155
      leviw@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=89238
      
      Reviewed by Eric Seidel.
      
      Source/WebCore: 
      
      Pixel snapping logic makes use of sub-pixel offsets accumulated when walking down
      the render tree. When we align RenderLayers to paint on pixel boundaries, we were
      also losing that accumulated value. This preserves the fractional offset and passes
      it to the RenderLayer's RenderObjects so they paint the proper size and offset.
      
      This also necessitates a new mode of mapLocalToContainer whereby we pixel snap the
      offset used in transforms. Otherwise, they wouldn't account for the pixel snapping
      done elsewhere in the render tree.
      
      Test: fast/sub-pixel/sub-pixel-accumulates-to-layers.html
      
      * css/CSSComputedStyleDeclaration.cpp:
      (WebCore::pixelSnappedSizingBox): The LayoutUnit version of sizingBox returns a
      LayoutRect with the location zeroed out. This leads to incorrect pixel snapping, so
      we shouldn't put these numbers into a transform. Sadly, I couldn't figure out a
      test for this without the rest of the patch.
      (WebCore):
      (WebCore::computedTransform): Using pixel-snapped values when generating transforms.
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::mapLocalToContainer): Adding a mode whereby the values inputed
      into the transform are properly pixel snapped.
      (WebCore::RenderBox::computeRectForRepaint): Using pixel snapped values for the transform.
      * rendering/RenderBox.h:
      (RenderBox):
      * rendering/RenderGeometryMap.cpp:
      (WebCore::RenderGeometryMap::mapToAbsolute):
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::mapLocalToContainer):
      * rendering/RenderInline.h:
      (RenderInline):
      * rendering/RenderLayer.cpp:
      (WebCore::RenderLayer::updateTransform): Using pixel snapped values for the transform.
      (WebCore::RenderLayer::currentTransform): Ditto.
      (WebCore::RenderLayer::perspectiveTransform): Ditto.
      (WebCore::RenderLayer::paint): Support passing along the accumulated sub-pixel offset instead
      of rounding and use enclosingIntRect for the damageRect.
      (WebCore::RenderLayer::paintOverlayScrollbars): Updating to the new paintLayer contract
      (WebCore::RenderLayer::paintLayer): Adding a sub-pixel accumulation LayoutSize. We pass this
      delta to the Layer's RenderObject when we paint, but align the graphics context to the proper
      pixel value.
      (WebCore::RenderLayer::paintLayerContentsAndReflection): Ditto.
      (WebCore::RenderLayer::paintLayerContents): Ditto.
      (WebCore::RenderLayer::paintList): Ditto.
      (WebCore::RenderLayer::paintChildLayerIntoColumns): Ditto.
      (WebCore::RenderLayer::calculateClipRects): Avoid unnecessary rounding when sub-pixel is enabled.
      (WebCore::RenderLayer::calculateRects): Remove unnecessary pixel snapping.
      * rendering/RenderLayer.h:
      (RenderLayer):
      * rendering/RenderLayerBacking.cpp:
      (WebCore::RenderLayerBacking::updateLayerTransform): Use pixel-snapped values for transforms.
      (WebCore::RenderLayerBacking::paintIntoLayer): Update to new paintLayer contract.
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::localToContainerQuad): Adding a mode for optionally pixel snapping.
      (WebCore::RenderObject::localToContainerPoint): Ditto.
      * rendering/RenderObject.h:
      (WebCore::RenderObject::localToAbsoluteQuad): Ditto.
      (RenderObject):
      * rendering/RenderReplica.cpp:
      (WebCore::RenderReplica::paint): Updating to new paintLayer contract.
      * rendering/RenderView.h:
      (RenderView):
      * rendering/svg/RenderSVGForeignObject.cpp:
      (WebCore::RenderSVGForeignObject::mapLocalToContainer):
      * rendering/svg/RenderSVGForeignObject.h:
      (RenderSVGForeignObject):
      * rendering/svg/RenderSVGInline.cpp:
      (WebCore::RenderSVGInline::mapLocalToContainer):
      * rendering/svg/RenderSVGInline.h:
      (RenderSVGInline):
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::mapLocalToContainer):
      * rendering/svg/RenderSVGModelObject.h:
      (RenderSVGModelObject):
      * rendering/svg/RenderSVGRoot.h:
      (RenderSVGRoot):
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::mapLocalToContainer):
      * rendering/svg/RenderSVGText.h:
      (RenderSVGText):
      * rendering/svg/SVGRenderSupport.cpp:
      (WebCore::SVGRenderSupport::mapLocalToContainer):
      * rendering/svg/SVGRenderSupport.h:
      (SVGRenderSupport):
      
      LayoutTests: 
      
      * fast/sub-pixel/sub-pixel-accumulates-to-layers.html: Added.
      * platform/chromium-mac/compositing/shadows/shadow-drawing-expected.png:
      * platform/chromium-mac/fast/repaint/scroll-fixed-layer-with-transformed-parent-layer-expected.png:
      * platform/chromium-mac/fast/sub-pixel/sub-pixel-accumulates-to-layers-expected.png: Added.
      * platform/chromium-mac/fast/sub-pixel/sub-pixel-accumulates-to-layers-expected.txt: Added.
      * platform/chromium-mac/fast/transforms/transformed-document-element-expected.png:
      * platform/chromium-mac/media/audio-repaint-expected.png:
      * platform/chromium-mac/svg/transforms/svg-css-transforms-expected.png:
      * platform/chromium/TestExpectations:
      * platform/efl/Skipped:
      * platform/gtk/TestExpectations:
      * platform/mac-lion/Skipped:
      * platform/mac-snowleopard/Skipped:
      * platform/mac-wk2/Skipped:
      * platform/mac/Skipped:
      * platform/qt-4.8/Skipped:
      * platform/qt/Skipped:
      * platform/win-wk2/Skipped:
      * platform/win-xp/Skipped:
      * platform/win/Skipped:
      * platform/wincairo/Skipped:
      * platform/wk2/Skipped:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125794 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      248a7155
  24. 03 Aug, 2012 1 commit
    • leviw@chromium.org's avatar
      Switch mapLocalToContainer to use a flag instead of boolean parameters · 0d464291
      leviw@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=92927
      
      Reviewed by Dirk Schulze.
      
      Changing mapLocalToContainer to use a uint flag to set the mode of operation. This removes
      simplifies the contract, removes boolean arguments and paves the way for an additional mode
      for sub-pixel layout support. See https://bugs.webkit.org/show_bug.cgi?id=89238 for the
      sub-pixel use case. Other than the new MapLocalToContainerMode enum and MapLocalToContainerFlags
      typedef, this change is purely mechanical.
      
      No new tests as this doesn't change current behavior.
      
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::selectionGapRectsForRepaint):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::mapLocalToContainer):
      * rendering/RenderBox.h:
      (RenderBox):
      * rendering/RenderGeometryMap.cpp:
      (WebCore::RenderGeometryMap::mapToAbsolute):
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::mapLocalToContainer):
      * rendering/RenderInline.h:
      (RenderInline):
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::localToAbsolute):
      (WebCore::RenderObject::mapLocalToContainer):
      (WebCore::RenderObject::localToContainerQuad):
      (WebCore::RenderObject::localToContainerPoint):
      * rendering/RenderObject.h:
      (RenderObject): Adding the MapLocalToContainerMode enum and MapLocalToContainerFlags unsigned
      int, and removing the old ApplyContainerFlipOrNot enum.
      * rendering/RenderView.cpp:
      (WebCore::RenderView::mapLocalToContainer):
      * rendering/RenderView.h:
      (RenderView):
      * rendering/svg/RenderSVGForeignObject.cpp:
      (WebCore::RenderSVGForeignObject::mapLocalToContainer):
      * rendering/svg/RenderSVGForeignObject.h:
      (RenderSVGForeignObject):
      * rendering/svg/RenderSVGInline.cpp:
      (WebCore::RenderSVGInline::mapLocalToContainer):
      * rendering/svg/RenderSVGInline.h:
      (RenderSVGInline):
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::mapLocalToContainer):
      * rendering/svg/RenderSVGModelObject.h:
      (RenderSVGModelObject):
      * rendering/svg/RenderSVGRoot.cpp:
      (WebCore::RenderSVGRoot::mapLocalToContainer):
      * rendering/svg/RenderSVGRoot.h:
      (RenderSVGRoot):
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::mapLocalToContainer):
      * rendering/svg/RenderSVGText.h:
      (RenderSVGText):
      * rendering/svg/SVGRenderSupport.cpp:
      (WebCore::SVGRenderSupport::mapLocalToContainer):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@124662 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0d464291
  25. 20 Jun, 2012 1 commit
    • commit-queue@webkit.org's avatar
      Use HitTestPoint instead of LayoutPoint for nodeAtPoint. · 227d0ab8
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=89448
      
      Patch by Allan Sandfeld Jensen <allan.jensen@nokia.com> on 2012-06-20
      Reviewed by Eric Seidel.
      
      This patch updates the API of nodeAtPoint without changing any
      functionality. This is largest change necessary to support
      transforms in area-based hit-testing, but is only boilerplate.
      
      No change in functionality. No new tests.
      
      * rendering/EllipsisBox.cpp:
      (WebCore::EllipsisBox::nodeAtPoint):
      * rendering/EllipsisBox.h:
      (EllipsisBox):
      * rendering/HitTestResult.cpp:
      (WebCore::HitTestResult::addNodeToRectBasedTestResult):
      * rendering/HitTestResult.h:
      (WebCore::HitTestPoint::intersects):
      (HitTestPoint):
      (HitTestResult):
      * rendering/InlineBox.cpp:
      (WebCore::InlineBox::nodeAtPoint):
      * rendering/InlineBox.h:
      (InlineBox):
      * rendering/InlineFlowBox.cpp:
      (WebCore::InlineFlowBox::nodeAtPoint):
      * rendering/InlineFlowBox.h:
      (InlineFlowBox):
      * rendering/InlineTextBox.cpp:
      (WebCore::InlineTextBox::nodeAtPoint):
      * rendering/InlineTextBox.h:
      (InlineTextBox):
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::nodeAtPoint):
      (WebCore::RenderBlock::hitTestFloats):
      (WebCore::RenderBlock::hitTestColumns):
      (WebCore::RenderBlock::hitTestContents):
      * rendering/RenderBlock.h:
      (RenderBlock):
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::nodeAtPoint):
      * rendering/RenderBox.h:
      (RenderBox):
      * rendering/RenderEmbeddedObject.cpp:
      (WebCore::RenderEmbeddedObject::nodeAtPoint):
      * rendering/RenderEmbeddedObject.h:
      (RenderEmbeddedObject):
      * rendering/RenderFlowThread.cpp:
      (WebCore::RenderFlowThread::hitTestRegion):
      * rendering/RenderFlowThread.h:
      * rendering/RenderFrameSet.cpp:
      (WebCore::RenderFrameSet::nodeAtPoint):
      * rendering/RenderFrameSet.h:
      (RenderFrameSet):
      * rendering/RenderImage.cpp:
      (WebCore::RenderImage::nodeAtPoint):
      * rendering/RenderImage.h:
      (RenderImage):
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::nodeAtPoint):
      * rendering/RenderInline.h:
      (RenderInline):
      * rendering/RenderLayer.cpp:
      (WebCore::ClipRect::intersects):
      (WebCore::RenderLayer::hitTest):
      (WebCore::RenderLayer::createLocalTransformState):
      (WebCore::RenderLayer::hitTestLayer):
      (WebCore::RenderLayer::hitTestContents):
      (WebCore::RenderLayer::hitTestList):
      (WebCore::RenderLayer::hitTestPaginatedChildLayer):
      (WebCore::RenderLayer::hitTestChildLayerColumns):
      * rendering/RenderLayer.h:
      (ClipRect):
      (RenderLayer):
      * rendering/RenderLineBoxList.cpp:
      (WebCore::RenderLineBoxList::hitTest):
      * rendering/RenderLineBoxList.h:
      (RenderLineBoxList):
      * rendering/RenderListBox.cpp:
      (WebCore::RenderListBox::nodeAtPoint):
      * rendering/RenderListBox.h:
      (RenderListBox):
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::hitTest):
      (WebCore::RenderObject::nodeAtPoint):
      * rendering/RenderObject.h:
      (RenderObject):
      * rendering/RenderRegion.cpp:
      (WebCore::RenderRegion::nodeAtPoint):
      * rendering/RenderRegion.h:
      (RenderRegion):
      * rendering/RenderTable.cpp:
      (WebCore::RenderTable::nodeAtPoint):
      * rendering/RenderTable.h:
      (RenderTable):
      * rendering/RenderTableRow.cpp:
      (WebCore::RenderTableRow::nodeAtPoint):
      * rendering/RenderTableRow.h:
      (RenderTableRow):
      * rendering/RenderTableSection.cpp:
      (WebCore::RenderTableSection::nodeAtPoint):
      * rendering/RenderTableSection.h:
      (RenderTableSection):
      * rendering/RenderText.h:
      * rendering/RenderTextControlMultiLine.cpp:
      (WebCore::RenderTextControlMultiLine::nodeAtPoint):
      * rendering/RenderTextControlMultiLine.h:
      (RenderTextControlMultiLine):
      * rendering/RenderTextControlSingleLine.cpp:
      (WebCore::RenderTextControlSingleLine::nodeAtPoint):
      * rendering/RenderTextControlSingleLine.h:
      (RenderTextControlSingleLine):
      * rendering/RenderWidget.cpp:
      (WebCore::RenderWidget::nodeAtPoint):
      * rendering/RenderWidget.h:
      (RenderWidget):
      * rendering/RootInlineBox.cpp:
      (WebCore::RootInlineBox::nodeAtPoint):
      * rendering/RootInlineBox.h:
      (RootInlineBox):
      * rendering/svg/RenderSVGForeignObject.cpp:
      (WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
      (WebCore::RenderSVGForeignObject::nodeAtPoint):
      * rendering/svg/RenderSVGForeignObject.h:
      (RenderSVGForeignObject):
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::nodeAtPoint):
      * rendering/svg/RenderSVGModelObject.h:
      (RenderSVGModelObject):
      * rendering/svg/RenderSVGRoot.cpp:
      (WebCore::RenderSVGRoot::nodeAtPoint):
      * rendering/svg/RenderSVGRoot.h:
      (RenderSVGRoot):
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::nodeAtFloatPoint):
      (WebCore::RenderSVGText::nodeAtPoint):
      * rendering/svg/RenderSVGText.h:
      (RenderSVGText):
      * rendering/svg/SVGInlineTextBox.cpp:
      (WebCore::SVGInlineTextBox::nodeAtPoint):
      * rendering/svg/SVGInlineTextBox.h:
      (SVGInlineTextBox):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@120824 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      227d0ab8
  26. 26 May, 2012 1 commit
    • zimmermann@webkit.org's avatar
      Avoid updateFromElement() usage in SVG · 3957de79
      zimmermann@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=87573
      
      Stop relying on updateFromElement() - instead rely on addChild/removeChild, which
      allows us to optimize the resources re-fetching. When a child is added to the tree
      we don't need to remove existing resources from the SVGResourcesCache - the renderer
      can't be in the cache yet. Similary, remove the entry from the cache earlier: as soon
      as the renderer is removed from the tree, instead of waiting for willBeDestroyed().
      
      No new tests, refactoring only.
      
      * rendering/svg/RenderSVGBlock.cpp:
      * rendering/svg/RenderSVGBlock.h:
      (RenderSVGBlock):
      * rendering/svg/RenderSVGContainer.cpp:
      (WebCore::RenderSVGContainer::addChild):
      (WebCore):
      (WebCore::RenderSVGContainer::removeChild):
      * rendering/svg/RenderSVGContainer.h:
      (RenderSVGContainer):
      * rendering/svg/RenderSVGInline.cpp:
      (WebCore::RenderSVGInline::addChild):
      (WebCore::RenderSVGInline::removeChild):
      * rendering/svg/RenderSVGInline.h:
      (RenderSVGInline):
      * rendering/svg/RenderSVGModelObject.cpp:
      * rendering/svg/RenderSVGModelObject.h:
      (RenderSVGModelObject):
      * rendering/svg/RenderSVGResourceContainer.cpp:
      (WebCore::RenderSVGResourceContainer::registerResource):
      * rendering/svg/RenderSVGRoot.cpp:
      (WebCore::RenderSVGRoot::addChild):
      (WebCore):
      (WebCore::RenderSVGRoot::removeChild):
      * rendering/svg/RenderSVGRoot.h:
      (RenderSVGRoot):
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::addChild):
      (WebCore::RenderSVGText::removeChild):
      * rendering/svg/SVGResourcesCache.cpp:
      (WebCore::SVGResourcesCache::clientStyleChanged):
      (WebCore::rendererCanHaveResources):
      (WebCore):
      (WebCore::SVGResourcesCache::clientWasAddedToTree):
      (WebCore::SVGResourcesCache::clientWillBeRemovedFromTree):
      * rendering/svg/SVGResourcesCache.h:
      (SVGResourcesCache):
      * svg/SVGStyledElement.cpp:
      * svg/SVGStyledElement.h:
      (SVGStyledElement):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118608 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3957de79
  27. 25 May, 2012 1 commit
    • simon.fraser@apple.com's avatar
      Terrible performance on http://alliances.commandandconquer.com/ and http://www.lordofultima.com/ · ca41ec68
      simon.fraser@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=84410
      
      Source/WebCore:
      
      Reviewed by Dave Hyatt.
      
      First part of fixing O(N^2) issues when walking the RenderLayer tree
      for computeCompositingRequirements().
      
      For each layer that goes into the OverlapMap, we were computing an absolute
      layer bounds, which requires walking back to the root of the tree.
      Optimize this when possible by storing a stack of offsets as we walk
      the tree, and using this stack to do the mapping.
      
      The stack of offsets and transforms is managed by RenderGeometryMap.
      When visiting a RenderLayer, RenderLayerCompositor pushes onto
      the geometry map stack data about offsets and transforms between
      the current layer and its stacking-parent. RenderGeometryMap handles
      the case where the previous renderer pushed is between the current
      renderer and its container. RenderGeometryMap can also handle callers
      pushing renderers with multiple containers between them.
      
      RenderGeometryMap stores some flags about whether the set of mapping
      steps in the stack involve transforms, fixed position, or special non-uniform
      mappings like CSS columns. In some cases, it falls back to mapping via
      renderers.
      
      Once constructed, the RenderGeometryMap stack can be used to map multiple
      rects or points efficiently. Stacks consisting of simple offsets are
      collapsed to a single offset.
      
      Mappings between renderers and their containers are pushed by pushMappingToContainer()
      methods, which are similar to mapLocalToContainer() methods. Having this code
      in RenderObjects was deemed preferable to handling columns, transforms etc. all in
      RenderLayer code.
      
      Tested by assertions in RenderGeometryMap code that its mapping matches
      mapping via localToAbsolute() calls.
      
      RenderLayerCompositor::updateCompositingLayers() creates a RenderGeometryMap,
      and pushes and pops layer renderers as it visits them. The geometry map is used
      by RenderLayerCompositor::addToOverlapMap() when computing absolute layer bounds.
      
      Futher optimizations in RenderGeometryMap are possible, especially with stacks that
      have many offsets and a few transforms.
      
      Tests: compositing/geometry/composited-in-columns.html
             compositing/geometry/flipped-writing-mode.html
      
      * CMakeLists.txt: Add RenderGeometryMap
      * GNUmakefile.list.am: Ditt
      * Target.pri: Ditto
      * WebCore.gypi: Ditto
      * WebCore.vcproj/WebCore.vcproj: Ditto
      * WebCore.xcodeproj/project.pbxproj: Ditto
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::absoluteContentBox):
      (WebCore::RenderBox::pushMappingToContainer):
      (WebCore::RenderBox::offsetFromContainer):
      * rendering/RenderBox.h:
      * rendering/RenderGeometryMap.cpp: Added.
      (RenderGeometryMapStep):
      (WebCore::RenderGeometryMapStep::RenderGeometryMapStep):
      (WebCore::RenderGeometryMapStep::mapPoint):
      (WebCore::RenderGeometryMapStep::mapQuad):
      (WebCore::RenderGeometryMap::RenderGeometryMap):
      (WebCore::RenderGeometryMap::~RenderGeometryMap):
      (WebCore::RenderGeometryMap::absolutePoint):
      (WebCore::RenderGeometryMap::absoluteRect):
      (WebCore::RenderGeometryMap::mapToAbsolute):
      (WebCore::RenderGeometryMap::pushMappingsToAncestor):
      (WebCore::RenderGeometryMap::push):
      (WebCore::RenderGeometryMap::pushView):
      (WebCore::RenderGeometryMap::popMappingsToAncestor):
      (WebCore::RenderGeometryMap::stepInserted):
      (WebCore::RenderGeometryMap::stepRemoved):
      * rendering/RenderGeometryMap.h: Added.
      (RenderGeometryMap):
      (WebCore::RenderGeometryMap::hasNonUniformStep):
      (WebCore::RenderGeometryMap::hasTransformStep):
      (WebCore::RenderGeometryMap::hasFixedPositionStep):
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::offsetFromContainer):
      (WebCore::RenderInline::pushMappingToContainer):
      * rendering/RenderInline.h:
      (RenderInline):
      * rendering/RenderLayerCompositor.cpp:
      (WebCore::RenderLayerCompositor::updateCompositingLayers):
      (WebCore::RenderLayerCompositor::addToOverlapMap):
      (WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
      (WebCore::RenderLayerCompositor::computeCompositingRequirements):
      * rendering/RenderLayerCompositor.h:
      (RenderLayerCompositor):
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::mapLocalToContainer):
      (WebCore::RenderObject::pushMappingToContainer):
      (WebCore::RenderObject::offsetFromContainer):
      (WebCore::RenderObject::container):
      * rendering/RenderObject.h:
      * rendering/RenderTableCell.cpp:
      (WebCore::RenderTableCell::offsetFromContainer):
      * rendering/RenderTableCell.h:
      (RenderTableCell):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::pushMappingToContainer):
      * rendering/RenderView.h:
      * rendering/svg/RenderSVGForeignObject.cpp:
      (WebCore::RenderSVGForeignObject::pushMappingToContainer):
      * rendering/svg/RenderSVGForeignObject.h:
      (RenderSVGForeignObject):
      * rendering/svg/RenderSVGInline.cpp:
      (WebCore::RenderSVGInline::pushMappingToContainer):
      * rendering/svg/RenderSVGInline.h:
      (RenderSVGInline):
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::pushMappingToContainer):
      * rendering/svg/RenderSVGModelObject.h:
      (RenderSVGModelObject):
      * rendering/svg/RenderSVGRoot.cpp:
      (WebCore::RenderSVGRoot::pushMappingToContainer):
      * rendering/svg/RenderSVGRoot.h:
      (RenderSVGRoot):
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::pushMappingToContainer):
      * rendering/svg/RenderSVGText.h:
      (RenderSVGText):
      * rendering/svg/SVGRenderSupport.cpp:
      (WebCore::SVGRenderSupport::pushMappingToContainer):
      * rendering/svg/SVGRenderSupport.h:
      (SVGRenderSupport):
      
      LayoutTests:
      
      Reviewed by Dave Hyatt.
      
      Basic tests for compositing inside columns, and in a flipped-writing-mode
      document.
      
      * compositing/geometry/composited-in-columns-expected.png: Added.
      * compositing/geometry/composited-in-columns-expected.txt: Added.
      * compositing/geometry/composited-in-columns.html: Added.
      * compositing/geometry/flipped-writing-mode-expected.png: Added.
      * compositing/geometry/flipped-writing-mode-expected.txt: Added.
      * compositing/geometry/flipped-writing-mode.html: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@118567 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      ca41ec68
  28. 03 May, 2012 1 commit
    • mitz@apple.com's avatar
      highlight for Ruby text is mispositioned in the Web Inspector · e2feae9e
      mitz@apple.com authored
      https://bugs.webkit.org/show_bug.cgi?id=82684
      
      Reviewed by Simon Fraser.
      
      Source/WebCore: 
      
      Tests: fast/writing-mode/flipped-blocks-inline-map-local-to-container-expected.html
             fast/writing-mode/flipped-blocks-inline-map-local-to-container.html
      
      In flipped blocks writing modes, flipping was being applied twice to box descendants of
      inline children of the flipped block, once during RenderBox::mapLocalToContainer, and then
      again by RenderInline::mapLocalToContainer. The fix is to make the latter only apply the
      flip to local coordinates originating in the inline or a descendant inline. This is done
      by adding a parameter of type ApplyContainerFlipOrNot, which defaults to ApplyContainerFlip
      but is reset to DoNotApplyContainerFlip in recursive calls into mapLocalToContainer().
      
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::mapLocalToContainer): Added ApplyContainerFlipOrNot parameter, passing
      DoNotApplyContainerFlip when recursing into the container.
      * rendering/RenderBox.h:
      
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::mapLocalToContainer): Added ApplyContainerFlipOrNot paramerer, and
      made the flipping conditional on its value.
      
      * rendering/RenderInline.h:
      
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::mapLocalToContainer): Added ApplyContainerFlipOrNot parameter,
      passing DoNotApplyContainerFlip when recursing into the container.
      (WebCore::RenderObject::localToContainerQuad): Pass ApplyContainerFlip.
      (WebCore::RenderObject::localToContainerPoint): Ditto.
      * rendering/RenderObject.h:
      
      * rendering/RenderView.cpp:
      (WebCore::RenderView::mapLocalToContainer): Added ApplyContainerFlipOrNot parameter.
      * rendering/RenderView.h:
      
      * rendering/svg/RenderSVGForeignObject.cpp:
      (WebCore::RenderSVGForeignObject::mapLocalToContainer): Ditto.
      * rendering/svg/RenderSVGForeignObject.h:
      
      * rendering/svg/RenderSVGInline.cpp:
      (WebCore::RenderSVGInline::mapLocalToContainer): Ditto.
      * rendering/svg/RenderSVGInline.h:
      
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::mapLocalToContainer): Ditto.
      * rendering/svg/RenderSVGModelObject.h:
      
      * rendering/svg/RenderSVGRoot.cpp:
      (WebCore::RenderSVGRoot::mapLocalToContainer): Ditto.
      * rendering/svg/RenderSVGRoot.h:
      
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::mapLocalToContainer): Ditto.
      * rendering/svg/RenderSVGText.h:
      
      * rendering/svg/SVGRenderSupport.cpp:
      (WebCore::SVGRenderSupport::mapLocalToContainer): Pass DoNotApplyContainerFlip when
      recursing into the parent.
      
      LayoutTests: 
      
      * fast/writing-mode/flipped-blocks-inline-map-local-to-container-expected.html: Added.
      * fast/writing-mode/flipped-blocks-inline-map-local-to-container.html: Added.
      
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115981 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e2feae9e
  29. 08 Mar, 2012 1 commit
    • leviw@chromium.org's avatar
      Switch absoluteRects, culledInlineAbsoluteRects, absoluteBoundingBoxRect, and... · e92ed537
      leviw@chromium.org authored
      Switch absoluteRects, culledInlineAbsoluteRects, absoluteBoundingBoxRect, and addFocusRingRects back to integers
      https://bugs.webkit.org/show_bug.cgi?id=80545
      
      Reviewed by Simon Fraser.
      
      Converting the above functions, all of which return rects that represent on-screen rects, to IntRects from
      LayoutRects.
      
      addFocusRingsRects generates a vector of rects that is handed off directly to the GraphicsContext to be
      drawn. Snapping the rects before adding them to the vector saves an extra pass through the vector.
      
      absoluteRects and culledInlineAbsoluteRects are only used by addFocusRingRects, hasNonEmptyBoundingBox (only
      to check if they're empty), and absoluteBoundingBoxRect, which is exposed from WebCore and thus should be an
      IntRect anyways.
      
      No new tests. No change in behavior.
      
      * dom/Node.cpp:
      (WebCore::Node::hasNonEmptyBoundingBox):
      * dom/Range.cpp:
      (WebCore::Range::boundingBox):
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::absoluteRects):
      (WebCore::RenderBlock::addFocusRingRects):
      * rendering/RenderBlock.h:
      (RenderBlock):
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::absoluteRects):
      (WebCore::RenderInline::culledInlineAbsoluteRects):
      (WebCore::RenderInline::addFocusRingRects):
      * rendering/RenderInline.h:
      (RenderInline):
      * rendering/RenderListBox.cpp:
      (WebCore::RenderListBox::addFocusRingRects):
      * rendering/RenderListBox.h:
      (RenderListBox):
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::paintFocusRing):
      (WebCore::RenderObject::absoluteBoundingBoxRect):
      (WebCore::RenderObject::absoluteFocusRingQuads):
      * rendering/RenderObject.h:
      (WebCore::RenderObject::absoluteRects):
      (RenderObject):
      (WebCore::RenderObject::absoluteBoundingBoxRectIgnoringTransforms):
      (WebCore::RenderObject::addFocusRingRects):
      * rendering/RenderText.cpp:
      (WebCore::RenderText::absoluteRects):
      (WebCore::RenderText::absoluteRectsForRange):
      * rendering/RenderText.h:
      (RenderText):
      * rendering/RenderTextControl.cpp:
      (WebCore::RenderTextControl::addFocusRingRects):
      * rendering/RenderTextControl.h:
      (RenderTextControl):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::absoluteRects):
      * rendering/RenderView.h:
      (RenderView):
      * rendering/svg/RenderSVGBlock.cpp:
      (WebCore::RenderSVGBlock::absoluteRects):
      * rendering/svg/RenderSVGBlock.h:
      (RenderSVGBlock):
      * rendering/svg/RenderSVGContainer.cpp:
      (WebCore::RenderSVGContainer::addFocusRingRects):
      * rendering/svg/RenderSVGContainer.h:
      (RenderSVGContainer):
      * rendering/svg/RenderSVGImage.cpp:
      (WebCore::RenderSVGImage::addFocusRingRects):
      * rendering/svg/RenderSVGImage.h:
      (RenderSVGImage):
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::absoluteRects):
      * rendering/svg/RenderSVGModelObject.h:
      (RenderSVGModelObject):
      * rendering/svg/RenderSVGShape.cpp:
      (WebCore::RenderSVGShape::addFocusRingRects):
      * rendering/svg/RenderSVGShape.h:
      (RenderSVGShape):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@110224 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e92ed537
  30. 29 Nov, 2011 1 commit
    • zimmermann@webkit.org's avatar
      2011-11-29 Nikolas Zimmermann <nzimmermann@rim.com> · 80d89636
      zimmermann@webkit.org authored
              SVG <path> DRT dumps have rounding problems across platforms
              https://bugs.webkit.org/show_bug.cgi?id=47467
      
              Reviewed by Zoltan Herczeg.
      
              Rebaseline all SVG text results, as InlineBox virtualHeight is now a float, just like virtualWidth.
              The RenderSVGText/InlineText positions are now properly rounded _once_, when dumping the results
              for DRT in SVGRenderTreeAsText.
      
              * platform/mac-snowleopard/svg/W3C-I18N/text-anchor-dirLTR-anchorEnd-expected.txt:
              * platform/mac-snowleopard/svg/W3C-I18N/text-anchor-dirLTR-anchorMiddle-expected.txt:
              * platform/mac-snowleopard/svg/W3C-I18N/text-anchor-dirLTR-anchorStart-expected.txt:
              * platform/mac-snowleopard/svg/W3C-I18N/text-anchor-dirNone-anchorEnd-expected.txt:
              * platform/mac-snowleopard/svg/W3C-I18N/text-anchor-dirNone-anchorMiddle-expected.txt:
              * platform/mac-snowleopard/svg/W3C-I18N/text-anchor-dirNone-anchorStart-expected.txt:
              * platform/mac-snowleopard/svg/W3C-I18N/text-anchor-dirRTL-anchorEnd-expected.txt:
              * platform/mac-snowleopard/svg/W3C-I18N/text-anchor-dirRTL-anchorMiddle-expected.txt:
              * platform/mac-snowleopard/svg/W3C-I18N/text-anchor-dirRTL-anchorStart-expected.txt:
              * platform/mac-snowleopard/svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorEnd-expected.txt:
              * platform/mac-snowleopard/svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorMiddle-expected.txt:
              * platform/mac-snowleopard/svg/W3C-I18N/text-anchor-inherited-dirLTR-anchorStart-expected.txt:
              * platform/mac-snowleopard/svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorEnd-expected.txt:
              * platform/mac-snowleopard/svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorMiddle-expected.txt:
              * platform/mac-snowleopard/svg/W3C-I18N/text-anchor-inherited-dirRTL-anchorStart-expected.txt:
              * platform/mac-snowleopard/svg/W3C-I18N/text-anchor-no-markup-expected.txt:
              * platform/mac-snowleopard/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.txt:
              * platform/mac-snowleopard/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.txt:
              * platform/mac-snowleopard/svg/W3C-SVG-1.1/text-intro-05-t-expected.txt:
              * platform/mac/svg/W3C-I18N/g-dirLTR-ubNone-expected.txt:
              * platform/mac/svg/W3C-I18N/g-dirLTR-ubOverride-expected.txt:
              * platform/mac/svg/W3C-I18N/g-dirRTL-ubNone-expected.txt:
              * platform/mac/svg/W3C-I18N/g-dirRTL-ubOverride-expected.txt:
              * platform/mac/svg/W3C-I18N/text-dirLTR-ubNone-expected.txt:
              * platform/mac/svg/W3C-I18N/text-dirLTR-ubOverride-expected.txt:
              * platform/mac/svg/W3C-I18N/text-dirRTL-ubNone-expected.txt:
              * platform/mac/svg/W3C-I18N/text-dirRTL-ubOverride-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-dirLTR-ubEmbed-in-rtl-context-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-dirLTR-ubNone-in-rtl-context-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-default-context-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-ltr-context-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-dirLTR-ubOverride-in-rtl-context-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-dirNone-ubOverride-in-default-context-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-dirNone-ubOverride-in-ltr-context-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-dirNone-ubOverride-in-rtl-context-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-dirRTL-ubEmbed-in-default-context-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-dirRTL-ubEmbed-in-ltr-context-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-dirRTL-ubNone-in-default-context-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-dirRTL-ubNone-in-ltr-context-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-default-context-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-ltr-context-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-dirRTL-ubOverride-in-rtl-context-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-direction-ltr-expected.txt:
              * platform/mac/svg/W3C-I18N/tspan-direction-rtl-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/color-prop-05-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/filters-image-03-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/filters-image-05-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/interact-pointer-03-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/linking-uri-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/painting-control-04-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/painting-marker-07-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/pservers-grad-17-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/pservers-grad-20-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/pservers-pattern-03-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/struct-dom-11-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/struct-use-11-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/struct-use-14-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/styling-css-04-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/styling-pres-02-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/svgdom-over-01-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/text-intro-02-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/text-intro-09-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/text-tref-03-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/text-tspan-02-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-02-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-04-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-05-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-06-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-07-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-08-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-09-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-10-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-11-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-12-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-13-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-14-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-15-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-16-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-17-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-18-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-19-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-20-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-21-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-22-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-23-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-26-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-27-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-29-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-30-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-31-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-34-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-36-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-37-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-39-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-40-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-41-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-44-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-46-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-52-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-60-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-61-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-62-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-63-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-64-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-65-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-66-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-67-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-68-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-69-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-70-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-77-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-80-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-81-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-82-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-83-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/animate-elem-84-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/color-prop-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/coords-trans-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/coords-trans-05-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/coords-trans-06-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/coords-units-02-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/coords-units-03-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/coords-viewattr-03-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/extend-namespace-01-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/filters-blend-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/filters-composite-02-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/filters-comptran-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/filters-displace-01-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/filters-example-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/filters-felem-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/filters-image-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/filters-light-01-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/filters-light-04-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/filters-morph-01-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/filters-tile-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/filters-turb-01-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/filters-turb-02-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/fonts-desc-02-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/fonts-elem-01-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/fonts-elem-02-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/fonts-elem-03-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/fonts-elem-04-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/fonts-elem-05-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/fonts-elem-06-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/fonts-elem-07-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/fonts-kern-01-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/interact-cursor-01-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/interact-dom-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/interact-events-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/interact-order-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/interact-order-02-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/interact-order-03-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/interact-zoom-01-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/linking-a-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/linking-a-02-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/linking-a-03-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/linking-a-04-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/linking-a-05-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/linking-uri-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/linking-uri-02-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/linking-uri-03-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/masking-opacity-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/masking-path-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/masking-path-02-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/masking-path-03-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/masking-path-04-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/metadata-example-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/painting-fill-03-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/painting-render-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/painting-stroke-01-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/painting-stroke-02-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/painting-stroke-03-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/painting-stroke-04-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/painting-stroke-07-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/paths-data-04-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/paths-data-05-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/paths-data-06-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/paths-data-07-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/paths-data-08-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/paths-data-09-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/paths-data-14-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/paths-data-15-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-02-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-03-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-04-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-06-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-07-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-09-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-10-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-11-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-12-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-13-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-14-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-grad-17-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/pservers-pattern-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/render-elems-06-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/render-elems-07-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/render-elems-08-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/render-groups-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/render-groups-03-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/script-handle-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/struct-cond-02-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/struct-dom-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/struct-dom-02-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/struct-dom-03-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/struct-dom-04-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/struct-dom-05-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/struct-dom-06-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/struct-frag-03-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/struct-frag-05-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/struct-frag-06-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/struct-group-03-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/struct-image-06-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/struct-image-07-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/struct-use-01-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/struct-use-03-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/styling-css-04-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/styling-css-05-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/styling-css-06-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-align-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-align-02-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-align-03-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-align-04-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-align-05-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-align-06-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-align-08-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-altglyph-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-deco-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-fonts-01-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-fonts-03-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-intro-01-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-intro-02-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-intro-03-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-intro-04-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-path-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-spacing-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-text-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-text-03-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-text-05-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-text-06-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-text-07-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-text-08-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-tselect-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-tselect-02-f-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-tspan-01-b-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-ws-01-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/text-ws-02-t-expected.txt:
              * platform/mac/svg/W3C-SVG-1.1/types-basicDOM-01-b-expected.txt:
              * platform/mac/svg/as-image/img-preserveAspectRatio-support-1-expected.txt:
              * platform/mac/svg/batik/filters/feTile-expected.txt:
              * platform/mac/svg/batik/filters/filterRegions-expected.txt:
              * platform/mac/svg/batik/masking/maskRegions-expected.txt:
              * platform/mac/svg/batik/paints/gradientLimit-expected.txt:
              * platform/mac/svg/batik/paints/patternPreserveAspectRatioA-expected.txt:
              * platform/mac/svg/batik/paints/patternRegionA-expected.txt:
              * platform/mac/svg/batik/paints/patternRegions-expected.txt:
              * platform/mac/svg/batik/paints/patternRegions-positioned-objects-expected.txt:
              * platform/mac/svg/batik/text/longTextOnPath-expected.txt:
              * platform/mac/svg/batik/text/smallFonts-expected.txt:
              * platform/mac/svg/batik/text/textAnchor-expected.txt:
              * platform/mac/svg/batik/text/textAnchor2-expected.txt:
              * platform/mac/svg/batik/text/textAnchor3-expected.txt:
              * platform/mac/svg/batik/text/textDecoration-expected.txt:
              * platform/mac/svg/batik/text/textDecoration2-expected.txt:
              * platform/mac/svg/batik/text/textEffect-expected.txt:
              * platform/mac/svg/batik/text/textEffect2-expected.txt:
              * platform/mac/svg/batik/text/textEffect3-expected.txt:
              * platform/mac/svg/batik/text/textFeatures-expected.txt:
              * platform/mac/svg/batik/text/textGlyphOrientationHorizontal-expected.txt:
              * platform/mac/svg/batik/text/textLayout-expected.txt:
              * platform/mac/svg/batik/text/textLayout2-expected.txt:
              * platform/mac/svg/batik/text/textLength-expected.txt:
              * platform/mac/svg/batik/text/textOnPath-expected.txt:
              * platform/mac/svg/batik/text/textOnPath2-expected.txt:
              * platform/mac/svg/batik/text/textOnPath3-expected.txt:
              * platform/mac/svg/batik/text/textOnPathSpaces-expected.txt:
              * platform/mac/svg/batik/text/textPCDATA-expected.txt:
              * platform/mac/svg/batik/text/textPosition-expected.txt:
              * platform/mac/svg/batik/text/textPosition2-expected.txt:
              * platform/mac/svg/batik/text/textProperties-expected.txt:
              * platform/mac/svg/batik/text/textProperties2-expected.txt:
              * platform/mac/svg/batik/text/textStyles-expected.txt:
              * platform/mac/svg/batik/text/verticalText-expected.txt:
              * platform/mac/svg/batik/text/verticalTextOnPath-expected.txt:
              * platform/mac/svg/batik/text/xmlSpace-expected.txt:
              * platform/mac/svg/carto.net/button-expected.txt:
              * platform/mac/svg/carto.net/colourpicker-expected.txt:
              * platform/mac/svg/carto.net/combobox-expected.txt:
              * platform/mac/svg/carto.net/scrollbar-expected.txt:
              * platform/mac/svg/carto.net/selectionlist-expected.txt:
              * platform/mac/svg/carto.net/slider-expected.txt:
              * platform/mac/svg/carto.net/tabgroup-expected.txt:
              * platform/mac/svg/carto.net/textbox-expected.txt:
              * platform/mac/svg/carto.net/window-expected.txt:
              * platform/mac/svg/clip-path/clip-path-pixelation-expected.txt:
              * platform/mac/svg/clip-path/deep-nested-clip-in-mask-panning-expected.txt:
              * platform/mac/svg/css/arrow-with-shadow-expected.txt:
              * platform/mac/svg/css/group-with-shadow-expected.txt:
              * platform/mac/svg/css/shadow-changes-expected.txt:
              * platform/mac/svg/css/text-shadow-multiple-expected.txt:
              * platform/mac/svg/custom/alignment-baseline-modes-expected.txt:
              * platform/mac/svg/custom/circular-marker-reference-1-expected.txt:
              * platform/mac/svg/custom/circular-marker-reference-2-expected.txt:
              * platform/mac/svg/custom/circular-marker-reference-3-expected.txt:
              * platform/mac/svg/custom/circular-marker-reference-4-expected.txt:
              * platform/mac/svg/custom/clone-element-with-animated-svg-properties-expected.txt:
              * platform/mac/svg/custom/deep-dynamic-updates-expected.txt:
              * platform/mac/svg/custom/dominant-baseline-hanging-expected.txt:
              * platform/mac/svg/custom/dominant-baseline-modes-expected.txt:
              * platform/mac/svg/custom/dynamic-svg-document-creation-expected.txt:
              * platform/mac/svg/custom/embedding-external-svgs-expected.txt:
              * platform/mac/svg/custom/feComponentTransfer-Discrete-expected.txt:
              * platform/mac/svg/custom/feComponentTransfer-Gamma-expected.txt:
              * platform/mac/svg/custom/feComponentTransfer-Linear-expected.txt:
              * platform/mac/svg/custom/feComponentTransfer-Table-expected.txt:
              * platform/mac/svg/custom/font-face-cascade-order-expected.txt:
              * platform/mac/svg/custom/font-face-simple-expected.txt:
              * platform/mac/svg/custom/getTransformToElement-expected.txt:
              * platform/mac/svg/custom/gradient-rotated-bbox-expected.txt:
              * platform/mac/svg/custom/gradient-stop-corner-cases-expected.txt:
              * platform/mac/svg/custom/image-small-width-height-expected.txt:
              * platform/mac/svg/custom/invalid-css-expected.txt:
              * platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.txt:
              * platform/mac/svg/custom/js-late-clipPath-creation-expected.txt:
              * platform/mac/svg/custom/js-late-gradient-and-object-creation-expected.txt:
              * platform/mac/svg/custom/js-late-gradient-creation-expected.txt:
              * platform/mac/svg/custom/js-late-pattern-and-object-creation-expected.txt:
              * platform/mac/svg/custom/js-late-pattern-creation-expected.txt:
              * platform/mac/svg/custom/linking-a-03-b-all-expected.txt:
              * platform/mac/svg/custom/linking-a-03-b-preserveAspectRatio-expected.txt:
              * platform/mac/svg/custom/linking-a-03-b-transform-expected.txt:
              * platform/mac/svg/custom/linking-a-03-b-viewBox-expected.txt:
              * platform/mac/svg/custom/linking-a-03-b-viewBox-transform-expected.txt:
              * platform/mac/svg/custom/linking-a-03-b-viewTarget-expected.txt:
              * platform/mac/svg/custom/linking-a-03-b-zoomAndPan-expected.txt:
              * platform/mac/svg/custom/linking-uri-01-b-expected.txt:
              * platform/mac/svg/custom/marker-default-width-height-expected.txt:
              * platform/mac/svg/custom/massive-coordinates-expected.txt:
              * platform/mac/svg/custom/mouse-move-on-svg-container-expected.txt:
              * platform/mac/svg/custom/mouse-move-on-svg-container-standalone-expected.txt:
              * platform/mac/svg/custom/non-circular-marker-reference-expected.txt:
              * platform/mac/svg/custom/object-sizing-width-50p-height-75p-on-target-svg-absolute-expected.txt:
              * platform/mac/svg/custom/object-sizing-width-50p-height-75p-on-target-svg-expected.txt:
              * platform/mac/svg/custom/object-sizing-width-75p-height-50p-on-target-svg-absolute-expected.txt:
              * platform/mac/svg/custom/object-sizing-width-75p-height-50p-on-target-svg-expected.txt:
              * platform/mac/svg/custom/path-textPath-simulation-expected.txt:
              * platform/mac/svg/custom/pattern-incorrect-tiling-expected.txt:
              * platform/mac/svg/custom/pattern-rotate-expected.txt:
              * platform/mac/svg/custom/pattern-rotate-gaps-expected.txt:
              * platform/mac/svg/custom/pattern-with-transformation-expected.txt:
              * platform/mac/svg/custom/relative-sized-inner-svg-expected.txt:
              * platform/mac/svg/custom/relative-sized-use-on-symbol-expected.txt:
              * platform/mac/svg/custom/relative-sized-use-without-attributes-on-symbol-expected.txt:
              * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt:
              * platform/mac/svg/custom/shapes-supporting-markers-expected.txt:
              * platform/mac/svg/custom/small-rect-scale-expected.txt:
              * platform/mac/svg/custom/stroked-pattern-expected.txt:
              * platform/mac/svg/custom/struct-use-09-b-expected.txt:
              * platform/mac/svg/custom/style-attribute-font-size-expected.txt:
              * platform/mac/svg/custom/svg-curve-with-relative-cordinates-expected.txt:
              * platform/mac/svg/custom/text-clip-expected.txt:
              * platform/mac/svg/custom/text-dom-01-f-expected.txt:
              * platform/mac/svg/custom/text-filter-expected.txt:
              * platform/mac/svg/custom/text-letter-spacing-expected.txt:
              * platform/mac/svg/custom/text-rotated-gradient-expected.txt:
              * platform/mac/svg/custom/text-rotation-expected.txt:
              * platform/mac/svg/custom/text-tref-03-b-change-href-dom-expected.txt:
              * platform/mac/svg/custom/text-tref-03-b-change-href-expected.txt:
              * platform/mac/svg/custom/text-tref-03-b-referenced-element-removal-expected.txt:
              * platform/mac/svg/custom/text-tref-03-b-tref-removal-expected.txt:
              * platform/mac/svg/custom/text-x-dy-lists-expected.txt:
              * platform/mac/svg/custom/tref-own-content-removal-expected.txt:
              * platform/mac/svg/custom/tref-update-expected.txt:
              * platform/mac/svg/custom/use-css-events-expected.txt:
              * platform/mac/svg/custom/use-detach-expected.txt:
              * platform/mac/svg/custom/use-dynamic-append-expected.txt:
              * platform/mac/svg/custom/use-forward-refs-expected.txt:
              * platform/mac/svg/custom/use-instanceRoot-modifications-expected.txt:
              * platform/mac/svg/custom/use-modify-container-in-target-expected.txt:
              * platform/mac/svg/custom/use-modify-target-container-expected.txt:
              * platform/mac/svg/custom/use-modify-target-symbol-expected.txt:
              * platform/mac/svg/custom/use-on-clip-path-with-transformation-expected.txt:
              * platform/mac/svg/custom/use-on-disallowed-foreign-object-3-expected.txt:
              * platform/mac/svg/custom/use-on-disallowed-foreign-object-4-expected.txt:
              * platform/mac/svg/custom/use-on-g-containing-symbol-expected.txt:
              * platform/mac/svg/custom/use-on-g-containing-use-expected.txt:
              * platform/mac/svg/custom/use-on-g-expected.txt:
              * platform/mac/svg/custom/use-on-rect-expected.txt:
              * platform/mac/svg/custom/use-on-symbol-expected.txt:
              * platform/mac/svg/custom/use-on-symbol-inside-pattern-expected.txt:
              * platform/mac/svg/custom/use-on-use-expected.txt:
              * platform/mac/svg/custom/use-recursion-1-expected.txt:
              * platform/mac/svg/custom/use-recursion-3-expected.txt:
              * platform/mac/svg/custom/use-recursion-4-expected.txt:
              * platform/mac/svg/custom/use-transform-expected.txt:
              * platform/mac/svg/dom/SVGPathSegList-cloning-expected.txt:
              * platform/mac/svg/filters/filterRes-expected.txt:
              * platform/mac/svg/foreignObject/text-tref-02-b-expected.txt:
              * platform/mac/svg/hixie/error/002-expected.txt:
              * platform/mac/svg/hixie/error/013-expected.txt:
              * platform/mac/svg/hixie/perf/001-expected.txt:
              * platform/mac/svg/hixie/perf/002-expected.txt:
              * platform/mac/svg/hixie/perf/003-expected.txt:
              * platform/mac/svg/hixie/perf/004-expected.txt:
              * platform/mac/svg/hixie/perf/005-expected.txt:
              * platform/mac/svg/hixie/perf/006-expected.txt:
              * platform/mac/svg/hixie/perf/007-expected.txt:
              * platform/mac/svg/hixie/text/001-expected.txt:
              * platform/mac/svg/hixie/text/003-expected.txt:
              * platform/mac/svg/hixie/text/003a-expected.txt:
              * platform/mac/svg/hixie/viewbox/preserveAspectRatio/001-expected.txt:
              * platform/mac/svg/hixie/viewbox/preserveAspectRatio/002-expected.txt:
              * platform/mac/svg/text/bidi-embedded-direction-expected.txt:
              * platform/mac/svg/text/bidi-text-query-expected.txt:
              * platform/mac/svg/text/bidi-tspans-expected.txt:
              * platform/mac/svg/text/font-size-below-point-five-2-expected.txt:
              * platform/mac/svg/text/font-size-below-point-five-expected.txt:
              * platform/mac/svg/text/scaled-font-expected.txt:
              * platform/mac/svg/text/scaling-font-with-geometric-precision-expected.txt:
              * platform/mac/svg/text/select-textLength-spacing-squeeze-1-expected.txt:
              * platform/mac/svg/text/select-textLength-spacing-squeeze-2-expected.txt:
              * platform/mac/svg/text/select-textLength-spacing-squeeze-3-expected.txt:
              * platform/mac/svg/text/select-textLength-spacing-squeeze-4-expected.txt:
              * platform/mac/svg/text/select-textLength-spacing-stretch-1-expected.txt:
              * platform/mac/svg/text/select-textLength-spacing-stretch-2-expected.txt:
              * platform/mac/svg/text/select-textLength-spacing-stretch-3-expected.txt:
              * platform/mac/svg/text/select-textLength-spacing-stretch-4-expected.txt:
              * platform/mac/svg/text/select-textLength-spacingAndGlyphs-squeeze-1-expected.txt:
              * platform/mac/svg/text/select-textLength-spacingAndGlyphs-squeeze-2-expected.txt:
              * platform/mac/svg/text/select-textLength-spacingAndGlyphs-squeeze-3-expected.txt:
              * platform/mac/svg/text/select-textLength-spacingAndGlyphs-squeeze-4-expected.txt:
              * platform/mac/svg/text/select-textLength-spacingAndGlyphs-stretch-1-expected.txt:
              * platform/mac/svg/text/select-textLength-spacingAndGlyphs-stretch-2-expected.txt:
              * platform/mac/svg/text/select-textLength-spacingAndGlyphs-stretch-3-expected.txt:
              * platform/mac/svg/text/select-textLength-spacingAndGlyphs-stretch-4-expected.txt:
              * platform/mac/svg/text/select-x-list-1-expected.txt:
              * platform/mac/svg/text/select-x-list-2-expected.txt:
              * platform/mac/svg/text/select-x-list-3-expected.txt:
              * platform/mac/svg/text/select-x-list-4-expected.txt:
              * platform/mac/svg/text/select-x-list-with-tspans-1-expected.txt:
              * platform/mac/svg/text/select-x-list-with-tspans-2-expected.txt:
              * platform/mac/svg/text/select-x-list-with-tspans-3-expected.txt:
              * platform/mac/svg/text/select-x-list-with-tspans-4-expected.txt:
              * platform/mac/svg/text/selection-doubleclick-expected.txt:
              * platform/mac/svg/text/selection-tripleclick-expected.txt:
              * platform/mac/svg/text/small-fonts-2-expected.txt:
              * platform/mac/svg/text/small-fonts-3-expected.txt:
              * platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.txt:
              * platform/mac/svg/transforms/text-with-mask-with-svg-transform-expected.txt:
              * platform/mac/svg/transforms/text-with-pattern-with-svg-transform-expected.txt:
              * platform/mac/svg/wicd/rightsizing-grid-expected.txt:
              * platform/mac/svg/wicd/test-rightsizing-b-expected.txt:
              * platform/mac/svg/zoom/page/relative-sized-document-scrollbars-expected.txt:
              * platform/mac/svg/zoom/page/zoom-foreignObject-expected.txt:
              * platform/mac/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.txt:
              * platform/mac/svg/zoom/page/zoom-mask-with-percentages-expected.txt:
              * platform/mac/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.txt:
              * svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.txt:
              * svg/custom/glyph-setting-d-attribute-expected.txt:
              * svg/custom/gradient-with-1d-boundingbox-expected.txt:
              * svg/custom/non-scaling-stroke-expected.txt:
              * svg/custom/use-setAttribute-crash-expected.txt:
              * svg/custom/use-transfer-width-height-properties-to-svg-expected.txt:
              * svg/custom/use-transfer-width-height-properties-to-svg2-expected.txt:
              * svg/custom/use-transfer-width-height-properties-to-symbol-expected.txt:
              * svg/custom/use-transfer-width-height-properties-to-symbol2-expected.txt:
              * svg/custom/zero-path-square-cap-rendering2-expected.txt:
      
      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):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@101342 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      80d89636
  31. 06 Oct, 2011 1 commit
    • fsamuel@chromium.org's avatar
      Code clean-up: Make RenderObject::absoluteBoundingBoxRect and associated... · bc05e3b7
      fsamuel@chromium.org authored
      Code clean-up: Make RenderObject::absoluteBoundingBoxRect and associated methods const and make its parameter useTransforms no longer default to false
      https://bugs.webkit.org/show_bug.cgi?id=69009
      
      Reviewed by Simon Fraser.
      
      .:
      
      * Source/autotools/symbols.filter:
      
      Source/WebCore:
      
      Upcoming patches may make use of absoluteBoundingBoxRect on a const RenderObject, so this needed to be fixed.
      Making useTransforms default to true instead of false and replacing instances of absoluteBoundingBoxRect() to
      absoluteBoundingBoxRectIgnoringTransforms() partially addreses // FIXME: useTransforms should go away eventually.
      
      * WebCore.exp.in:
      * dom/Element.cpp:
      (WebCore::Element::screenRect):
      * dom/Node.cpp:
      (WebCore::Node::getRect):
      (WebCore::Node::renderRect):
      * html/shadow/SliderThumbElement.cpp:
      (WebCore::SliderThumbElement::setPositionFromPoint):
      * html/shadow/TextControlInnerElements.cpp:
      (WebCore::InputFieldSpeechButtonElement::startSpeechInput):
      * inspector/DOMNodeHighlighter.cpp:
      * plugins/IFrameShimSupport.cpp:
      (WebCore::getPluginOcclusions):
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::absoluteRects):
      (WebCore::RenderBlock::absoluteQuads):
      * rendering/RenderBlock.h:
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::absoluteRects):
      (WebCore::RenderBox::absoluteQuads):
      * rendering/RenderBox.h:
      * rendering/RenderFileUploadControl.cpp:
      (WebCore::RenderFileUploadControl::paintObject):
      * rendering/RenderIFrame.cpp:
      (WebCore::RenderIFrame::flattenFrame):
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::absoluteRects):
      (WebCore::RenderInline::culledInlineAbsoluteRects):
      (WebCore::RenderInline::absoluteQuads):
      (WebCore::RenderInline::culledInlineAbsoluteQuads):
      * rendering/RenderInline.h:
      * rendering/RenderMenuList.cpp:
      (WebCore::RenderMenuList::showPopup):
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::absoluteBoundingBoxRect):
      (WebCore::RenderObject::addAbsoluteRectForLayer):
      (WebCore::RenderObject::paintingRootRect):
      * rendering/RenderObject.h:
      (WebCore::RenderObject::absoluteRects):
      (WebCore::RenderObject::absoluteBoundingBoxRectIgnoringTransforms):
      (WebCore::RenderObject::absoluteQuads):
      * rendering/RenderText.cpp:
      (WebCore::RenderText::absoluteRects):
      (WebCore::RenderText::absoluteQuads):
      * rendering/RenderText.h:
      * rendering/RenderTextControlSingleLine.cpp:
      (WebCore::RenderTextControlSingleLine::showPopup):
      * rendering/RenderThemeSafari.cpp:
      (WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
      (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration):
      (WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
      * rendering/RenderView.cpp:
      (WebCore::RenderView::absoluteRects):
      (WebCore::RenderView::absoluteQuads):
      * rendering/RenderView.h:
      * rendering/svg/RenderSVGBlock.cpp:
      (WebCore::RenderSVGBlock::absoluteRects):
      * rendering/svg/RenderSVGBlock.h:
      * rendering/svg/RenderSVGHiddenContainer.cpp:
      (WebCore::RenderSVGHiddenContainer::absoluteQuads):
      * rendering/svg/RenderSVGHiddenContainer.h:
      * rendering/svg/RenderSVGInline.cpp:
      (WebCore::RenderSVGInline::absoluteQuads):
      * rendering/svg/RenderSVGInline.h:
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::absoluteRects):
      (WebCore::RenderSVGModelObject::absoluteQuads):
      * rendering/svg/RenderSVGModelObject.h:
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::absoluteQuads):
      * rendering/svg/RenderSVGText.h:
      * testing/Internals.cpp:
      (WebCore::Internals::boundingBox):
      
      Source/WebKit/qt:
      
      * Api/qwebframe.cpp:
      (QWebHitTestResultPrivate::QWebHitTestResultPrivate):
      
      Source/WebKit2:
      
      * win/WebKit2.def:
      * win/WebKit2CFLite.def:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96859 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      bc05e3b7
  32. 19 Aug, 2011 1 commit
    • eae@chromium.org's avatar
      Switch clipping for svg to to new layout types · 6463c5bc
      eae@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=66586
      
      Reviewed by Eric Seidel.
      
      No new tests as no new functionality.
      
      * rendering/svg/RenderSVGForeignObject.h:
      * rendering/svg/RenderSVGGradientStop.h:
      (WebCore::RenderSVGGradientStop::clippedOverflowRectForRepaint):
      * rendering/svg/RenderSVGHiddenContainer.h:
      (WebCore::RenderSVGHiddenContainer::clippedOverflowRectForRepaint):
      * rendering/svg/RenderSVGInline.cpp:
      (WebCore::RenderSVGInline::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGInline::computeRectForRepaint):
      * rendering/svg/RenderSVGInline.h:
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGModelObject::computeRectForRepaint):
      * rendering/svg/RenderSVGModelObject.h:
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGText::computeRectForRepaint):
      * rendering/svg/RenderSVGText.h:
      * svg/SVGSVGElement.cpp:
      (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
      * svg/SVGSVGElement.h:
      (WebCore::SVGSVGElement::setContainerSize):
      (WebCore::SVGSVGElement::containerSize):
      * svg/graphics/SVGImage.cpp:
      (WebCore::SVGImageChromeClient::invalidateContentsAndWindow):
      (WebCore::SVGImage::setContainerSize):
      * svg/graphics/SVGImage.h:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@93440 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      6463c5bc
  33. 04 Aug, 2011 2 commits
    • simon.fraser@apple.com's avatar
      2011-08-04 Simon Fraser <simon.fraser@apple.com> · 329523a6
      simon.fraser@apple.com authored
              Add code to determine whether a Range in inside fixed position content
              https://bugs.webkit.org/show_bug.cgi?id=65720
      
              Reviewed by Sam Weinig.
      
              Propagate the 'wasFixed' flag out from various methods that
              are used when computing the collection of rects or quads
              for a range. Use the flag in Range to computer whether
              the Range is entirely within, partially within, or outside
              of fixed-position content.
      
              * WebCore.exp.in:
              * accessibility/AccessibilityRenderObject.cpp:
              (WebCore::AccessibilityRenderObject::boundingBoxRect):
              * dom/Range.cpp:
              (WebCore::Range::textRects):
              (WebCore::Range::textQuads):
              * dom/Range.h:
              * rendering/RenderBlock.cpp:
              (WebCore::RenderBlock::absoluteQuads):
              * rendering/RenderBlock.h:
              * rendering/RenderBox.cpp:
              (WebCore::RenderBox::absoluteQuads):
              * rendering/RenderBox.h:
              * rendering/RenderInline.cpp:
              (WebCore::RenderInline::absoluteQuads):
              * rendering/RenderInline.h:
              * rendering/RenderObject.h:
              (WebCore::RenderObject::absoluteQuads):
              * rendering/RenderText.cpp:
              (WebCore::RenderText::absoluteRectsForRange):
              (WebCore::RenderText::absoluteQuads):
              (WebCore::RenderText::absoluteQuadsForRange):
              * rendering/RenderText.h:
              * rendering/RenderView.cpp:
              (WebCore::RenderView::absoluteQuads):
              * rendering/RenderView.h:
              * rendering/svg/RenderSVGHiddenContainer.cpp:
              (WebCore::RenderSVGHiddenContainer::absoluteQuads):
              * rendering/svg/RenderSVGHiddenContainer.h:
              * rendering/svg/RenderSVGInline.cpp:
              (WebCore::RenderSVGInline::absoluteQuads):
              * rendering/svg/RenderSVGInline.h:
              * rendering/svg/RenderSVGModelObject.cpp:
              (WebCore::RenderSVGModelObject::absoluteQuads):
              * rendering/svg/RenderSVGModelObject.h:
              * rendering/svg/RenderSVGText.cpp:
              (WebCore::RenderSVGText::absoluteQuads):
              * rendering/svg/RenderSVGText.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@92438 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      329523a6
    • simon.fraser@apple.com's avatar
      2011-08-04 Simon Fraser <simon.fraser@apple.com> · e0e96440
      simon.fraser@apple.com authored
              Add code to determine whether a Range in inside fixed position content
              https://bugs.webkit.org/show_bug.cgi?id=65720
      
              Reviewed by Dan Bernstein.
      
              Add an out param for various coordinate mapping functions
              that tells us whether the point or rectangle being
              mapped is inside fixed-position content.
      
              This brings back some of the changes from r89754.
      
              No behavior changes, so no tests.
      
              * rendering/RenderBox.cpp:
              (WebCore::RenderBox::mapLocalToContainer):
              * rendering/RenderBox.h:
              * rendering/RenderInline.cpp:
              (WebCore::RenderInline::mapLocalToContainer):
              * rendering/RenderInline.h:
              * rendering/RenderObject.cpp:
              (WebCore::RenderObject::mapLocalToContainer):
              (WebCore::RenderObject::localToContainerQuad):
              * rendering/RenderObject.h:
              (WebCore::RenderObject::localToAbsoluteQuad):
              * rendering/RenderView.cpp:
              (WebCore::RenderView::mapLocalToContainer):
              * rendering/RenderView.h:
              * rendering/svg/RenderSVGForeignObject.cpp:
              (WebCore::RenderSVGForeignObject::mapLocalToContainer):
              * rendering/svg/RenderSVGForeignObject.h:
              * rendering/svg/RenderSVGInline.cpp:
              (WebCore::RenderSVGInline::mapLocalToContainer):
              * rendering/svg/RenderSVGInline.h:
              * rendering/svg/RenderSVGModelObject.cpp:
              (WebCore::RenderSVGModelObject::mapLocalToContainer):
              * rendering/svg/RenderSVGModelObject.h:
              * rendering/svg/RenderSVGRoot.cpp:
              (WebCore::RenderSVGRoot::mapLocalToContainer):
              * rendering/svg/RenderSVGRoot.h:
              * rendering/svg/RenderSVGText.cpp:
              (WebCore::RenderSVGText::mapLocalToContainer):
              * rendering/svg/RenderSVGText.h:
              * rendering/svg/SVGRenderSupport.cpp:
              (WebCore::SVGRenderSupport::mapLocalToContainer):
              * rendering/svg/SVGRenderSupport.h:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@92434 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e0e96440
  34. 02 Aug, 2011 1 commit
    • jchaffraix@webkit.org's avatar
      RenderObject::computeRectForRepaint and clippedOverflowRectForRepaint should be const · 213f9a38
      jchaffraix@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=65494
      
      Reviewed by Darin Adler.
      
      No new tests, const-ness change only.
      
      * rendering/RenderObject.h:
      (WebCore::RenderObject::absoluteClippedOverflowRect):
      (WebCore::RenderObject::computeAbsoluteRepaintRect):
      Made those 2 const as they call a const method now.
      
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::clippedOverflowRectForRepaint): Use a const RenderObject* for iterating as
      this is const.
      
      * rendering/RenderBlock.cpp:
      (WebCore::RenderBlock::rectWithOutlineForRepaint):
      * rendering/RenderBlock.h:
      * rendering/RenderBox.cpp:
      (WebCore::RenderBox::clippedOverflowRectForRepaint):
      (WebCore::RenderBox::computeRectForRepaint):
      * rendering/RenderBox.h:
      * rendering/RenderInline.cpp:
      (WebCore::RenderInline::clippedOverflowRectForRepaint):
      (WebCore::RenderInline::rectWithOutlineForRepaint):
      (WebCore::RenderInline::computeRectForRepaint):
      * rendering/RenderInline.h:
      * rendering/RenderObject.cpp:
      (WebCore::RenderObject::rectWithOutlineForRepaint):
      (WebCore::RenderObject::clippedOverflowRectForRepaint):
      (WebCore::RenderObject::computeRectForRepaint):
      * rendering/RenderReplaced.cpp:
      (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
      * rendering/RenderReplaced.h:
      * rendering/RenderTableCell.cpp:
      (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
      (WebCore::RenderTableCell::computeRectForRepaint):
      * rendering/RenderTableCell.h:
      * rendering/RenderTableCol.cpp:
      (WebCore::RenderTableCol::clippedOverflowRectForRepaint):
      * rendering/RenderTableCol.h:
      * rendering/RenderTableRow.cpp:
      (WebCore::RenderTableRow::clippedOverflowRectForRepaint):
      * rendering/RenderTableRow.h:
      * rendering/RenderText.cpp:
      (WebCore::RenderText::clippedOverflowRectForRepaint):
      * rendering/RenderText.h:
      * rendering/RenderView.cpp:
      (WebCore::RenderView::computeRectForRepaint):
      * rendering/RenderView.h:
      * rendering/svg/RenderSVGForeignObject.cpp:
      (WebCore::RenderSVGForeignObject::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGForeignObject::computeRectForRepaint):
      * rendering/svg/RenderSVGForeignObject.h:
      * rendering/svg/RenderSVGGradientStop.h:
      (WebCore::RenderSVGGradientStop::clippedOverflowRectForRepaint):
      * rendering/svg/RenderSVGHiddenContainer.h:
      (WebCore::RenderSVGHiddenContainer::clippedOverflowRectForRepaint):
      * rendering/svg/RenderSVGInline.cpp:
      (WebCore::RenderSVGInline::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGInline::computeRectForRepaint):
      * rendering/svg/RenderSVGInline.h:
      * rendering/svg/RenderSVGModelObject.cpp:
      (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGModelObject::computeRectForRepaint):
      * rendering/svg/RenderSVGModelObject.h:
      * rendering/svg/RenderSVGRoot.cpp:
      (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGRoot::computeRectForRepaint):
      * rendering/svg/RenderSVGRoot.h:
      * rendering/svg/RenderSVGText.cpp:
      (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
      (WebCore::RenderSVGText::computeRectForRepaint):
      * rendering/svg/RenderSVGText.h:
      * rendering/svg/SVGRenderSupport.cpp:
      (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
      (WebCore::SVGRenderSupport::computeRectForRepaint):
      * rendering/svg/SVGRenderSupport.h:
      Updated the following method's signature to use a const object.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@92252 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      213f9a38
  35. 27 Jul, 2011 1 commit
    • rwlbuis@webkit.org's avatar
      2011-07-27 Rob Buis <rbuis@rim.com> · 8ab431bf
      rwlbuis@webkit.org authored
              Implement getIntersectionList(), getEnclosureList(), checkIntersection() and checkEnclosure() in SVGSVGElement
              https://bugs.webkit.org/show_bug.cgi?id=11274
      
              Reviewed by Nikolas Zimmermann.
      
              Implement checkIntersection/checkEnclosure and use it to implement getIntersectionList and getEnclosureList as well.
              The referenceElement is used to provide a DOM subtree to find matches in. Also we do not allow elements that specify
              pointer-events=none in the list.
      
              Tests: svg/W3C-SVG-1.1-SE/struct-dom-11-f.svg
                     svg/custom/intersection-list-clipping.svg
                     svg/custom/intersection-list-nested-svg.svg
      
              * rendering/svg/RenderSVGModelObject.cpp:
              (WebCore::getElementCTM):
              (WebCore::intersectsAllowingEmpty):
              (WebCore::isGraphicsElement):
              (WebCore::RenderSVGModelObject::checkIntersection):
              (WebCore::RenderSVGModelObject::checkEnclosure):
              * rendering/svg/RenderSVGModelObject.h:
              * svg/SVGSVGElement.cpp:
              (WebCore::SVGSVGElement::checkIntersection):
              (WebCore::SVGSVGElement::checkEnclosure):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@91850 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8ab431bf