⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 181505 in webkit


Ignore:
Timestamp:
Mar 14, 2015, 10:32:06 PM (11 years ago)
Author:
Simon Fraser
Message:

Clean up use of flags in localToContainer-type functions
https://bugs.webkit.org/show_bug.cgi?id=142704

Reviewed by Alexey Proskuryakov.

Source/WebCore:

RenderObject::localToContainerQuad() had the questionable behavior of always
enforcing UseTransforms in the flags. However, a future patch will need to call
localToContainerQuad() without this flag.

Fix by requiring callers of localToAbsoluteQuad(), localToContainerQuad(), localToContainerPoint(),
and absoluteToLocalQuad() to pass the UseTransforms flag in, providing it as a default argument.

The default value of the MapCoordinatesFlags parameter to mapLocalToContainer(),
a lower-level function, is removed.

Sprinkle a few more nullptrs around.

No behavior change.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::selectionGapRectsForRepaint): call the higher-level localToContainerPoint()
instead of mapLocalToContainer().
(WebCore::RenderBlock::absoluteQuads): Pass UseTransforms.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::absoluteQuads): Ditto.

  • rendering/RenderBox.h:
  • rendering/RenderFlowThread.h:
  • rendering/RenderGeometryMap.h:

(WebCore::RenderGeometryMap::absolutePoint):
(WebCore::RenderGeometryMap::absoluteRect):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::collectSelectionRects): This function was erroneously passing
'false' as flags. Pass UseTransforms instead (but no behavior change since
UseTransforms was forced on lower down).

  • rendering/RenderInline.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible): UseTransforms is the parameter default, remove it.

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::absoluteQuads):
(WebCore::RenderLineBreak::collectSelectionRects): Another erroneous 'false'.

  • rendering/RenderNamedFlowFragment.cpp:

(WebCore::RenderNamedFlowFragment::absoluteQuadsForBoxInRegion):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::localToContainerQuad): Here's where we no longer force
the UseTransforms bit.
(WebCore::RenderObject::localToContainerPoint): Also here.

  • rendering/RenderObject.h: I prefer bit flags lined up. Makes it easier to spot errors.

(WebCore::RenderObject::localToAbsoluteQuad):

  • rendering/RenderText.cpp:

(WebCore::RenderText::collectSelectionRects): Another bad 'false'.

  • rendering/RenderTextLineBoxes.cpp:

(WebCore::RenderTextLineBoxes::absoluteRectsForRange):
(WebCore::RenderTextLineBoxes::absoluteQuads):
(WebCore::RenderTextLineBoxes::absoluteQuadsForRange):

  • rendering/RenderView.h:
  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::collectAbsoluteQuads):

  • rendering/svg/RenderSVGForeignObject.h:
  • rendering/svg/RenderSVGInline.cpp:

(WebCore::RenderSVGInline::absoluteQuads): Another bad 'false'.

  • rendering/svg/RenderSVGInline.h:
  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::absoluteQuads):

  • rendering/svg/RenderSVGModelObject.h:
  • rendering/svg/RenderSVGRoot.h:
  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::absoluteQuads):

  • rendering/svg/RenderSVGText.h:
  • rendering/svg/SVGRenderSupport.h:

Source/WebKit2:

Pass UseTransforms explicitly to localToContainerPoint()

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getAssistedNodeInformation):

Location:
trunk/Source
Files:
28 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r181504 r181505  
     12015-03-14  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Clean up use of flags in localToContainer-type functions
     4        https://bugs.webkit.org/show_bug.cgi?id=142704
     5
     6        Reviewed by Alexey Proskuryakov.
     7       
     8        RenderObject::localToContainerQuad() had the questionable behavior of always
     9        enforcing UseTransforms in the flags. However, a future patch will need to call
     10        localToContainerQuad() without this flag.
     11       
     12        Fix by requiring callers of localToAbsoluteQuad(), localToContainerQuad(), localToContainerPoint(),
     13        and absoluteToLocalQuad() to pass the UseTransforms flag in, providing it as a default argument.
     14       
     15        The default value of the MapCoordinatesFlags parameter to mapLocalToContainer(),
     16        a lower-level function, is removed.
     17       
     18        Sprinkle a few more nullptrs around.
     19       
     20        No behavior change.
     21
     22        * rendering/RenderBlock.cpp:
     23        (WebCore::RenderBlock::selectionGapRectsForRepaint): call the higher-level localToContainerPoint()
     24        instead of mapLocalToContainer().
     25        (WebCore::RenderBlock::absoluteQuads): Pass UseTransforms.
     26        * rendering/RenderBox.cpp:
     27        (WebCore::RenderBox::absoluteQuads): Ditto.
     28        * rendering/RenderBox.h:
     29        * rendering/RenderFlowThread.h:
     30        * rendering/RenderGeometryMap.h:
     31        (WebCore::RenderGeometryMap::absolutePoint):
     32        (WebCore::RenderGeometryMap::absoluteRect):
     33        * rendering/RenderImage.cpp:
     34        (WebCore::RenderImage::collectSelectionRects): This function was erroneously passing
     35        'false' as flags. Pass UseTransforms instead (but no behavior change since
     36        UseTransforms was forced on lower down).
     37        * rendering/RenderInline.h:
     38        * rendering/RenderLayer.cpp:
     39        (WebCore::RenderLayer::scrollRectToVisible): UseTransforms is the parameter default, remove it.
     40        * rendering/RenderLineBreak.cpp:
     41        (WebCore::RenderLineBreak::absoluteQuads):
     42        (WebCore::RenderLineBreak::collectSelectionRects): Another erroneous 'false'.
     43        * rendering/RenderNamedFlowFragment.cpp:
     44        (WebCore::RenderNamedFlowFragment::absoluteQuadsForBoxInRegion):
     45        * rendering/RenderObject.cpp:
     46        (WebCore::RenderObject::localToContainerQuad): Here's where we no longer force
     47        the UseTransforms bit.
     48        (WebCore::RenderObject::localToContainerPoint): Also here.
     49        * rendering/RenderObject.h: I prefer bit flags lined up. Makes it easier to spot errors.
     50        (WebCore::RenderObject::localToAbsoluteQuad):
     51        * rendering/RenderText.cpp:
     52        (WebCore::RenderText::collectSelectionRects): Another bad 'false'.
     53        * rendering/RenderTextLineBoxes.cpp:
     54        (WebCore::RenderTextLineBoxes::absoluteRectsForRange):
     55        (WebCore::RenderTextLineBoxes::absoluteQuads):
     56        (WebCore::RenderTextLineBoxes::absoluteQuadsForRange):
     57        * rendering/RenderView.h:
     58        * rendering/SimpleLineLayoutFunctions.cpp:
     59        (WebCore::SimpleLineLayout::collectAbsoluteQuads):
     60        * rendering/svg/RenderSVGForeignObject.h:
     61        * rendering/svg/RenderSVGInline.cpp:
     62        (WebCore::RenderSVGInline::absoluteQuads): Another bad 'false'.
     63        * rendering/svg/RenderSVGInline.h:
     64        * rendering/svg/RenderSVGModelObject.cpp:
     65        (WebCore::RenderSVGModelObject::absoluteQuads):
     66        * rendering/svg/RenderSVGModelObject.h:
     67        * rendering/svg/RenderSVGRoot.h:
     68        * rendering/svg/RenderSVGText.cpp:
     69        (WebCore::RenderSVGText::absoluteQuads):
     70        * rendering/svg/RenderSVGText.h:
     71        * rendering/svg/SVGRenderSupport.h:
     72
    1732015-03-14  Brent Fulgham  <bfulgham@apple.com>
    274
  • trunk/Source/WebCore/rendering/RenderBlock.cpp

    r181500 r181505  
    17391739        return GapRects();
    17401740
    1741     TransformState transformState(TransformState::ApplyTransformDirection, FloatPoint());
    1742     mapLocalToContainer(repaintContainer, transformState, ApplyContainerFlip | UseTransforms);
    1743     LayoutPoint offsetFromRepaintContainer(transformState.mappedPoint() - scrolledContentOffset());
     1741    FloatPoint containerPoint = localToContainerPoint(FloatPoint(), repaintContainer, UseTransforms);
     1742    LayoutPoint offsetFromRepaintContainer(containerPoint - scrolledContentOffset());
    17441743
    17451744    LogicalSelectionOffsetCaches cache(*this);
     
    33313330    RenderFlowThread* flowThread = flowThreadContainingBlock();
    33323331    if (!flowThread || !flowThread->absoluteQuadsForBox(quads, wasFixed, this, localRect.y(), localRect.maxY()))
    3333         quads.append(localToAbsoluteQuad(localRect, 0 /* mode */, wasFixed));
     3332        quads.append(localToAbsoluteQuad(localRect, UseTransforms, wasFixed));
    33343333
    33353334    if (isAnonymousBlockContinuation())
  • trunk/Source/WebCore/rendering/RenderBox.cpp

    r180586 r181505  
    619619        return;
    620620
    621     quads.append(localToAbsoluteQuad(localRect, 0 /* mode */, wasFixed));
     621    quads.append(localToAbsoluteQuad(localRect, UseTransforms, wasFixed));
    622622}
    623623
  • trunk/Source/WebCore/rendering/RenderBox.h

    r181398 r181505  
    647647    virtual bool shouldComputeSizeAsReplaced() const { return isReplaced() && !isInlineBlockOrInlineTable(); }
    648648
    649     virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0) const override;
     649    virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
    650650    virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObject*, RenderGeometryMap&) const override;
    651651    virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) const override;
  • trunk/Source/WebCore/rendering/RenderFlowThread.h

    r178481 r181505  
    256256    virtual void willBeDestroyed() override;
    257257
    258     virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0) const override;
    259 
    260     void updateRegionsFlowThreadPortionRect(const RenderRegion* = 0);
     258    virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
     259
     260    void updateRegionsFlowThreadPortionRect(const RenderRegion* = nullptr);
    261261    bool shouldRepaint(const LayoutRect&) const;
    262262
     
    267267    void updateRegionForRenderLayer(RenderLayer*, LayerToRegionMap&, RegionToLayerListMap&, bool& needsLayerUpdate);
    268268
    269     void initializeRegionsComputedAutoHeight(RenderRegion* = 0);
     269    void initializeRegionsComputedAutoHeight(RenderRegion* = nullptr);
    270270
    271271    inline bool hasCachedOffsetFromLogicalTopOfFirstRegion(const RenderBox*) const;
     
    288288        RenderRegionRange()
    289289        {
    290             setRange(0, 0);
     290            setRange(nullptr, nullptr);
    291291        }
    292292
     
    321321        RegionSearchAdapter(LayoutUnit offset)
    322322            : m_offset(offset)
    323             , m_result(0)
     323            , m_result(nullptr)
    324324        {
    325325        }
  • trunk/Source/WebCore/rendering/RenderGeometryMap.h

    r180441 r181505  
    8383    FloatPoint absolutePoint(const FloatPoint& p) const
    8484    {
    85         return mapToContainer(p, 0);
     85        return mapToContainer(p, nullptr);
    8686    }
    8787
    8888    FloatRect absoluteRect(const FloatRect& rect) const
    8989    {
    90         return mapToContainer(rect, 0).boundingBox();
     90        return mapToContainer(rect, nullptr).boundingBox();
    9191    }
    9292
     
    111111
    112112    // RenderView gets special treatment, because it applies the scroll offset only for elements inside in fixed position.
    113     void pushView(const RenderView*, const LayoutSize& scrollOffset, const TransformationMatrix* = 0);
     113    void pushView(const RenderView*, const LayoutSize& scrollOffset, const TransformationMatrix* = nullptr);
    114114    void pushRenderFlowThread(const RenderFlowThread*);
    115115
    116116private:
    117     void mapToContainer(TransformState&, const RenderLayerModelObject* container = 0) const;
     117    void mapToContainer(TransformState&, const RenderLayerModelObject* container = nullptr) const;
    118118
    119119    void stepInserted(const RenderGeometryMapStep&);
  • trunk/Source/WebCore/rendering/RenderImage.cpp

    r181412 r181505  
    106106
    107107    bool isFixed = false;
    108     IntRect absoluteBounds = localToAbsoluteQuad(FloatRect(imageRect), false, &isFixed).enclosingBoundingBox();
     108    IntRect absoluteBounds = localToAbsoluteQuad(FloatRect(imageRect), UseTransforms, &isFixed).enclosingBoundingBox();
    109109    IntRect lineExtentBounds = localToAbsoluteQuad(FloatRect(lineExtentRect)).enclosingBoundingBox();
    110110    if (!containingBlock->isHorizontalWritingMode())
  • trunk/Source/WebCore/rendering/RenderInline.h

    r177739 r181505  
    148148    virtual void computeRectForRepaint(const RenderLayerModelObject* repaintContainer, LayoutRect&, bool fixed) const override final;
    149149
    150     virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0) const override;
     150    virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
    151151    virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override;
    152152
  • trunk/Source/WebCore/rendering/RenderLayer.cpp

    r181166 r181505  
    24612461        RenderBox* box = renderBox();
    24622462        ASSERT(box);
    2463         LayoutRect localExposeRect(box->absoluteToLocalQuad(FloatQuad(FloatRect(rect)), UseTransforms).boundingBox());
     2463        LayoutRect localExposeRect(box->absoluteToLocalQuad(FloatQuad(FloatRect(rect))).boundingBox());
    24642464        LayoutRect layerBounds(0, 0, box->clientWidth(), box->clientHeight());
    24652465        LayoutRect r = getRectToExpose(layerBounds, layerBounds, localExposeRect, alignX, alignY);
  • trunk/Source/WebCore/rendering/RenderLineBreak.cpp

    r177259 r181505  
    182182    if (!m_inlineBoxWrapper)
    183183        return;
    184     quads.append(localToAbsoluteQuad(FloatRect(m_inlineBoxWrapper->topLeft(), m_inlineBoxWrapper->size()), 0 /* mode */, wasFixed));
     184    quads.append(localToAbsoluteQuad(FloatRect(m_inlineBoxWrapper->topLeft(), m_inlineBoxWrapper->size()), UseTransforms, wasFixed));
    185185}
    186186
     
    232232
    233233    bool isFixed = false;
    234     IntRect absRect = localToAbsoluteQuad(FloatRect(rect), false, &isFixed).enclosingBoundingBox();
     234    IntRect absRect = localToAbsoluteQuad(FloatRect(rect), UseTransforms, &isFixed).enclosingBoundingBox();
    235235    bool boxIsHorizontal = !box->isSVGInlineTextBox() ? box->isHorizontal() : !style().svgStyle().isVerticalWritingMode();
    236236    // If the containing block is an inline element, we want to check the inlineBoxWrapper orientation
  • trunk/Source/WebCore/rendering/RenderNamedFlowFragment.cpp

    r177259 r181505  
    537537
    538538    CurrentRenderRegionMaintainer regionMaintainer(*this);
    539     quads.append(renderer->localToAbsoluteQuad(FloatRect(fragmentRect), 0 /* mode */, wasFixed));
     539    quads.append(renderer->localToAbsoluteQuad(FloatRect(fragmentRect), UseTransforms, wasFixed));
    540540}
    541541
  • trunk/Source/WebCore/rendering/RenderObject.cpp

    r181166 r181505  
    16971697    // it will use that point as the reference point to decide which column's transform to apply in multiple-column blocks.
    16981698    TransformState transformState(TransformState::ApplyTransformDirection, localQuad.boundingBox().center(), localQuad);
    1699     mapLocalToContainer(repaintContainer, transformState, mode | ApplyContainerFlip | UseTransforms, wasFixed);
     1699    mapLocalToContainer(repaintContainer, transformState, mode | ApplyContainerFlip, wasFixed);
    17001700    transformState.flatten();
    17011701   
     
    17061706{
    17071707    TransformState transformState(TransformState::ApplyTransformDirection, localPoint);
    1708     mapLocalToContainer(repaintContainer, transformState, mode | ApplyContainerFlip | UseTransforms, wasFixed);
     1708    mapLocalToContainer(repaintContainer, transformState, mode | ApplyContainerFlip, wasFixed);
    17091709    transformState.flatten();
    17101710
  • trunk/Source/WebCore/rendering/RenderObject.h

    r181166 r181505  
    107107
    108108enum MapCoordinatesMode {
    109     IsFixed = 1 << 0,
    110     UseTransforms = 1 << 1,
    111     ApplyContainerFlip = 1 << 2
     109    IsFixed             = 1 << 0,
     110    UseTransforms       = 1 << 1,
     111    ApplyContainerFlip  = 1 << 2
    112112};
    113113typedef unsigned MapCoordinatesFlags;
     
    647647    RenderBlock* containingBlock() const;
    648648
    649     // Convert the given local point to absolute coordinates
    650     // FIXME: Temporary. If UseTransforms is true, take transforms into account. Eventually localToAbsolute() will always be transform-aware.
     649    // Convert the given local point to absolute coordinates. If MapCoordinatesFlags includes UseTransforms, take transforms into account.
    651650    WEBCORE_EXPORT FloatPoint localToAbsolute(const FloatPoint& localPoint = FloatPoint(), MapCoordinatesFlags = 0) const;
    652651    FloatPoint absoluteToLocal(const FloatPoint&, MapCoordinatesFlags = 0) const;
    653652
    654653    // Convert a local quad to absolute coordinates, taking transforms into account.
    655     FloatQuad localToAbsoluteQuad(const FloatQuad& quad, MapCoordinatesFlags mode = 0, bool* wasFixed = nullptr) const
     654    FloatQuad localToAbsoluteQuad(const FloatQuad& quad, MapCoordinatesFlags mode = UseTransforms, bool* wasFixed = nullptr) const
    656655    {
    657656        return localToContainerQuad(quad, nullptr, mode, wasFixed);
    658657    }
    659658    // Convert an absolute quad to local coordinates.
    660     FloatQuad absoluteToLocalQuad(const FloatQuad&, MapCoordinatesFlags mode = 0) const;
     659    FloatQuad absoluteToLocalQuad(const FloatQuad&, MapCoordinatesFlags mode = UseTransforms) const;
    661660
    662661    // Convert a local quad into the coordinate system of container, taking transforms into account.
    663     WEBCORE_EXPORT FloatQuad localToContainerQuad(const FloatQuad&, const RenderLayerModelObject* repaintContainer, MapCoordinatesFlags = 0, bool* wasFixed = nullptr) const;
    664     WEBCORE_EXPORT FloatPoint localToContainerPoint(const FloatPoint&, const RenderLayerModelObject* repaintContainer, MapCoordinatesFlags = 0, bool* wasFixed = nullptr) const;
     662    WEBCORE_EXPORT FloatQuad localToContainerQuad(const FloatQuad&, const RenderLayerModelObject* repaintContainer, MapCoordinatesFlags = UseTransforms, bool* wasFixed = nullptr) const;
     663    WEBCORE_EXPORT FloatPoint localToContainerPoint(const FloatPoint&, const RenderLayerModelObject* repaintContainer, MapCoordinatesFlags = UseTransforms, bool* wasFixed = nullptr) const;
    665664
    666665    // Return the offset from the container() renderer (excluding transforms). In multi-column layout,
     
    830829    // Map points and quads through elements, potentially via 3d transforms. You should never need to call these directly; use
    831830    // localToAbsolute/absoluteToLocal methods instead.
    832     virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = nullptr) const;
     831    virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed = nullptr) const;
    833832    virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) const;
    834833
  • trunk/Source/WebCore/rendering/RenderText.cpp

    r181290 r181505  
    384384
    385385        bool isFixed = false;
    386         IntRect absRect = localToAbsoluteQuad(FloatRect(rect), false, &isFixed).enclosingBoundingBox();
     386        IntRect absRect = localToAbsoluteQuad(FloatRect(rect), UseTransforms, &isFixed).enclosingBoundingBox();
    387387        bool boxIsHorizontal = !box->isSVGInlineTextBox() ? box->isHorizontal() : !style().svgStyle().isVerticalWritingMode();
    388388        // If the containing block is an inline element, we want to check the inlineBoxWrapper orientation
  • trunk/Source/WebCore/rendering/RenderTextLineBoxes.cpp

    r174714 r181505  
    551551                }
    552552            }
    553             rects.append(renderer.localToAbsoluteQuad(boundaries, 0, wasFixed).enclosingBoundingBox());
     553            rects.append(renderer.localToAbsoluteQuad(boundaries, UseTransforms, wasFixed).enclosingBoundingBox());
    554554            continue;
    555555        }
     
    557557        FloatRect rect = localQuadForTextBox(*box, start, end, useSelectionHeight);
    558558        if (!rect.isZero())
    559             rects.append(renderer.localToAbsoluteQuad(rect, 0, wasFixed).enclosingBoundingBox());
     559            rects.append(renderer.localToAbsoluteQuad(rect, UseTransforms, wasFixed).enclosingBoundingBox());
    560560    }
    561561    return rects;
     
    577577                boundaries.setHeight(ellipsisRect.maxY() - boundaries.y());
    578578        }
    579         quads.append(renderer.localToAbsoluteQuad(boundaries, 0, wasFixed));
     579        quads.append(renderer.localToAbsoluteQuad(boundaries, UseTransforms, wasFixed));
    580580    }
    581581    return quads;
     
    599599                }
    600600            }
    601             quads.append(renderer.localToAbsoluteQuad(boundaries, 0, wasFixed));
     601            quads.append(renderer.localToAbsoluteQuad(boundaries, UseTransforms, wasFixed));
    602602            continue;
    603603        }
    604604        FloatRect rect = localQuadForTextBox(*box, start, end, useSelectionHeight);
    605605        if (!rect.isZero())
    606             quads.append(renderer.localToAbsoluteQuad(rect, 0, wasFixed));
     606            quads.append(renderer.localToAbsoluteQuad(rect, UseTransforms, wasFixed));
    607607    }
    608608    return quads;
  • trunk/Source/WebCore/rendering/RenderView.h

    r180574 r181505  
    244244
    245245protected:
    246     virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = nullptr) const override;
     246    virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
    247247    virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override;
    248248    virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) const override;
  • trunk/Source/WebCore/rendering/SimpleLineLayoutFunctions.cpp

    r181290 r181505  
    176176    auto resolver = runResolver(downcast<RenderBlockFlow>(*renderer.parent()), layout);
    177177    for (const auto& run : resolver.rangeForRenderer(renderer))
    178         quads.append(renderer.localToAbsoluteQuad(FloatQuad(run.rect()), 0, wasFixed));
     178        quads.append(renderer.localToAbsoluteQuad(FloatQuad(run.rect()), UseTransforms, wasFixed));
    179179    return quads;
    180180}
  • trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.h

    r177259 r181505  
    5454    virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) override;
    5555
    56     virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0) const override;
     56    virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
    5757    virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override;
    5858    virtual void setNeedsTransformUpdate() override { m_needsTransformUpdate = true; }
  • trunk/Source/WebCore/rendering/svg/RenderSVGInline.cpp

    r177259 r181505  
    9696    FloatRect textBoundingBox = textAncestor->strokeBoundingBox();
    9797    for (InlineFlowBox* box = firstLineBox(); box; box = box->nextLineBox())
    98         quads.append(localToAbsoluteQuad(FloatRect(textBoundingBox.x() + box->x(), textBoundingBox.y() + box->y(), box->logicalWidth(), box->logicalHeight()), false, wasFixed));
     98        quads.append(localToAbsoluteQuad(FloatRect(textBoundingBox.x() + box->x(), textBoundingBox.y() + box->y(), box->logicalWidth(), box->logicalHeight()), UseTransforms, wasFixed));
    9999}
    100100
  • trunk/Source/WebCore/rendering/svg/RenderSVGInline.h

    r177259 r181505  
    5353    virtual LayoutRect clippedOverflowRectForRepaint(const RenderLayerModelObject* repaintContainer) const override final;
    5454    virtual void computeFloatRectForRepaint(const RenderLayerModelObject* repaintContainer, FloatRect&, bool fixed = false) const override final;
    55     virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0) const override final;
     55    virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override final;
    5656    virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override final;
    5757    virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const override final;
     
    6262    virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override final;
    6363
    64     virtual void addChild(RenderObject* child, RenderObject* beforeChild = 0) override final;
     64    virtual void addChild(RenderObject* child, RenderObject* beforeChild = nullptr) override final;
    6565    virtual void removeChild(RenderObject&) override final;
    6666};
  • trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp

    r177259 r181505  
    8787void RenderSVGModelObject::absoluteQuads(Vector<FloatQuad>& quads, bool* wasFixed) const
    8888{
    89     quads.append(localToAbsoluteQuad(strokeBoundingBox(), 0 /* mode */, wasFixed));
     89    quads.append(localToAbsoluteQuad(strokeBoundingBox(), UseTransforms, wasFixed));
    9090}
    9191
  • trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.h

    r177259 r181505  
    5454    virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const override;
    5555
    56     virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0) const override final;
     56    virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override final;
    5757    virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override final;
    5858    virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override;
  • trunk/Source/WebCore/rendering/svg/RenderSVGRoot.h

    r177259 r181505  
    9898    virtual void computeFloatRectForRepaint(const RenderLayerModelObject* repaintContainer, FloatRect& repaintRect, bool fixed) const override;
    9999
    100     virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0) const override;
     100    virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
    101101    virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override;
    102102
  • trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp

    r179599 r181505  
    476476void RenderSVGText::absoluteQuads(Vector<FloatQuad>& quads, bool* wasFixed) const
    477477{
    478     quads.append(localToAbsoluteQuad(strokeBoundingBox(), 0 /* mode */, wasFixed));
     478    quads.append(localToAbsoluteQuad(strokeBoundingBox(), UseTransforms, wasFixed));
    479479}
    480480
  • trunk/Source/WebCore/rendering/svg/RenderSVGText.h

    r177259 r181505  
    8282    virtual void computeFloatRectForRepaint(const RenderLayerModelObject* repaintContainer, FloatRect&, bool fixed = false) const override;
    8383
    84     virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0) const override;
     84    virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
    8585    virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override;
    8686    virtual void addChild(RenderObject* child, RenderObject* beforeChild = nullptr) override;
  • trunk/Source/WebCore/rendering/svg/SVGRenderSupport.h

    r180179 r181505  
    7070    static void computeFloatRectForRepaint(const RenderElement&, const RenderLayerModelObject* repaintContainer, FloatRect&, bool fixed);
    7171    static const RenderElement& localToParentTransform(const RenderElement&, AffineTransform &);
    72     static void mapLocalToContainer(const RenderElement&, const RenderLayerModelObject* repaintContainer, TransformState&, bool* wasFixed = 0);
     72    static void mapLocalToContainer(const RenderElement&, const RenderLayerModelObject* repaintContainer, TransformState&, bool* wasFixed);
    7373    static const RenderElement* pushMappingToContainer(const RenderElement&, const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&);
    7474    static bool checkForSVGRepaintDuringLayout(const RenderElement&);
  • trunk/Source/WebKit2/ChangeLog

    r181504 r181505  
     12015-03-14  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Clean up use of flags in localToContainer-type functions
     4        https://bugs.webkit.org/show_bug.cgi?id=142704
     5
     6        Reviewed by Alexey Proskuryakov.
     7       
     8        Pass UseTransforms explicitly to localToContainerPoint()
     9
     10        * WebProcess/WebPage/ios/WebPageIOS.mm:
     11        (WebKit::WebPage::getAssistedNodeInformation):
     12
    1132015-03-14  Brent Fulgham  <bfulgham@apple.com>
    214
  • trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm

    r180517 r181505  
    22292229
    22302230        bool inFixed = false;
    2231         renderer->localToContainerPoint(FloatPoint(), nullptr, 0, &inFixed);
     2231        renderer->localToContainerPoint(FloatPoint(), nullptr, UseTransforms, &inFixed);
    22322232        information.insideFixedPosition = inFixed;
    22332233       
Note: See TracChangeset for help on using the changeset viewer.