Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(110)

Side by Side Diff: Source/core/rendering/svg/SVGRenderSupport.h

Issue 411613002: [SVG] Reject hit-test queries when the element has a singular transform (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /** 1 /**
2 * Copyright (C) 2007 Rob Buis <buis@kde.org> 2 * Copyright (C) 2007 Rob Buis <buis@kde.org>
3 * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org> 3 * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org>
4 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> 4 * Copyright (C) 2007 Eric Seidel <eric@webkit.org>
5 * Copyright (C) 2009 Google, Inc. All rights reserved. 5 * Copyright (C) 2009 Google, Inc. All rights reserved.
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 54
55 // Calculates the repaintRect in combination with filter, clipper and masker in local coordinates. 55 // Calculates the repaintRect in combination with filter, clipper and masker in local coordinates.
56 static void intersectRepaintRectWithResources(const RenderObject*, FloatRect &); 56 static void intersectRepaintRectWithResources(const RenderObject*, FloatRect &);
57 57
58 // Determines whether a container needs to be laid out because it's filtered and a child is being laid out. 58 // Determines whether a container needs to be laid out because it's filtered and a child is being laid out.
59 static bool filtersForceContainerLayout(RenderObject*); 59 static bool filtersForceContainerLayout(RenderObject*);
60 60
61 // Determines whether the passed point lies in a clipping area 61 // Determines whether the passed point lies in a clipping area
62 static bool pointInClippingArea(RenderObject*, const FloatPoint&); 62 static bool pointInClippingArea(RenderObject*, const FloatPoint&);
63 63
64 // Transform |pointInParent| to |object|'s user-space and check if it is
65 // within the clipping area. Returns false if the transform is singular or
66 // the point is outside the clipping area.
67 static bool transformToUserSpaceAndCheckClipping(RenderObject*, const Affine Transform& localTransform, const FloatPoint& pointInParent, FloatPoint& localPoi nt);
68
64 static void computeContainerBoundingBoxes(const RenderObject* container, Flo atRect& objectBoundingBox, bool& objectBoundingBoxValid, FloatRect& strokeBoundi ngBox, FloatRect& repaintBoundingBox); 69 static void computeContainerBoundingBoxes(const RenderObject* container, Flo atRect& objectBoundingBox, bool& objectBoundingBoxValid, FloatRect& strokeBoundi ngBox, FloatRect& repaintBoundingBox);
65 70
66 static bool paintInfoIntersectsRepaintRect(const FloatRect& localRepaintRect , const AffineTransform& localTransform, const PaintInfo&); 71 static bool paintInfoIntersectsRepaintRect(const FloatRect& localRepaintRect , const AffineTransform& localTransform, const PaintInfo&);
67 72
68 static bool parentTransformDidChange(RenderObject*); 73 static bool parentTransformDidChange(RenderObject*);
69 74
70 // Important functions used by nearly all SVG renderers centralizing coordin ate transformations / repaint rect calculations 75 // Important functions used by nearly all SVG renderers centralizing coordin ate transformations / repaint rect calculations
71 static LayoutRect clippedOverflowRectForRepaint(const RenderObject*, const R enderLayerModelObject* repaintContainer, const PaintInvalidationState*); 76 static LayoutRect clippedOverflowRectForRepaint(const RenderObject*, const R enderLayerModelObject* repaintContainer, const PaintInvalidationState*);
72 static void computeFloatRectForRepaint(const RenderObject*, const RenderLaye rModelObject* repaintContainer, FloatRect&, bool fixed, const PaintInvalidationS tate*); 77 static void computeFloatRectForRepaint(const RenderObject*, const RenderLaye rModelObject* repaintContainer, FloatRect&, bool fixed, const PaintInvalidationS tate*);
73 static void mapLocalToContainer(const RenderObject*, const RenderLayerModelO bject* repaintContainer, TransformState&, bool* wasFixed = 0, const PaintInvalid ationState* = 0); 78 static void mapLocalToContainer(const RenderObject*, const RenderLayerModelO bject* repaintContainer, TransformState&, bool* wasFixed = 0, const PaintInvalid ationState* = 0);
(...skipping 15 matching lines...) Expand all
89 94
90 private: 95 private:
91 static void updateObjectBoundingBox(FloatRect& objectBoundingBox, bool& obje ctBoundingBoxValid, RenderObject* other, FloatRect otherBoundingBox); 96 static void updateObjectBoundingBox(FloatRect& objectBoundingBox, bool& obje ctBoundingBoxValid, RenderObject* other, FloatRect otherBoundingBox);
92 static void invalidateResourcesOfChildren(RenderObject* start); 97 static void invalidateResourcesOfChildren(RenderObject* start);
93 static bool layoutSizeOfNearestViewportChanged(const RenderObject* start); 98 static bool layoutSizeOfNearestViewportChanged(const RenderObject* start);
94 }; 99 };
95 100
96 } // namespace blink 101 } // namespace blink
97 102
98 #endif // SVGRenderSupport_h 103 #endif // SVGRenderSupport_h
OLDNEW
« no previous file with comments | « Source/core/rendering/svg/RenderSVGText.cpp ('k') | Source/core/rendering/svg/SVGRenderSupport.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698