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

Side by Side Diff: third_party/WebKit/Source/core/layout/svg/SVGLayoutSupport.cpp

Issue 2272773002: Use intersection observer to control frame throttling (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update LeakExpectations Created 4 years, 1 month 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007, 2008 Rob Buis <buis@kde.org> 2 * Copyright (C) 2007, 2008 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) 2009 Dirk Schulze <krit@webkit.org> 6 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
7 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. 7 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 // LayoutSVGRoot's mapLocalToAncestor method expects CSS box coordinates. 153 // LayoutSVGRoot's mapLocalToAncestor method expects CSS box coordinates.
154 if (parent->isSVGRoot()) 154 if (parent->isSVGRoot())
155 transformState.applyTransform( 155 transformState.applyTransform(
156 toLayoutSVGRoot(parent)->localToBorderBoxTransform()); 156 toLayoutSVGRoot(parent)->localToBorderBoxTransform());
157 157
158 parent->mapLocalToAncestor(ancestor, transformState, flags); 158 parent->mapLocalToAncestor(ancestor, transformState, flags);
159 } 159 }
160 160
161 void SVGLayoutSupport::mapAncestorToLocal(const LayoutObject& object, 161 void SVGLayoutSupport::mapAncestorToLocal(const LayoutObject& object,
162 const LayoutBoxModelObject* ancestor, 162 const LayoutBoxModelObject* ancestor,
163 TransformState& transformState) { 163 TransformState& transformState,
164 MapCoordinatesFlags flags) {
164 // |object| is either a LayoutSVGModelObject or a LayoutSVGBlock here. In 165 // |object| is either a LayoutSVGModelObject or a LayoutSVGBlock here. In
165 // the former case, |object| can never be an ancestor while in the latter 166 // the former case, |object| can never be an ancestor while in the latter
166 // the caller is responsible for doing the ancestor check. Because of this, 167 // the caller is responsible for doing the ancestor check. Because of this,
167 // computing the transform to the SVG root is always what we want to do here. 168 // computing the transform to the SVG root is always what we want to do here.
168 ASSERT(ancestor != &object); 169 ASSERT(ancestor != &object);
169 ASSERT(object.isSVGContainer() || object.isSVGShape() || 170 ASSERT(object.isSVGContainer() || object.isSVGShape() ||
170 object.isSVGImage() || object.isSVGText() || 171 object.isSVGImage() || object.isSVGText() ||
171 object.isSVGForeignObject()); 172 object.isSVGForeignObject());
172 AffineTransform localToSVGRoot; 173 AffineTransform localToSVGRoot;
173 const LayoutSVGRoot& svgRoot = 174 const LayoutSVGRoot& svgRoot =
174 computeTransformToSVGRoot(object, localToSVGRoot); 175 computeTransformToSVGRoot(object, localToSVGRoot);
175 176
176 MapCoordinatesFlags mode = UseTransforms | ApplyContainerFlip; 177 MapCoordinatesFlags mode = flags | UseTransforms | ApplyContainerFlip;
177 svgRoot.mapAncestorToLocal(ancestor, transformState, mode); 178 svgRoot.mapAncestorToLocal(ancestor, transformState, mode);
178 179
179 transformState.applyTransform(localToSVGRoot); 180 transformState.applyTransform(localToSVGRoot);
180 } 181 }
181 182
182 const LayoutObject* SVGLayoutSupport::pushMappingToContainer( 183 const LayoutObject* SVGLayoutSupport::pushMappingToContainer(
183 const LayoutObject* object, 184 const LayoutObject* object,
184 const LayoutBoxModelObject* ancestorToStopAt, 185 const LayoutBoxModelObject* ancestorToStopAt,
185 LayoutGeometryMap& geometryMap) { 186 LayoutGeometryMap& geometryMap) {
186 DCHECK_NE(ancestorToStopAt, object); 187 DCHECK_NE(ancestorToStopAt, object);
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
645 } 646 }
646 647
647 LayoutObject* SVGLayoutSupport::findClosestLayoutSVGText( 648 LayoutObject* SVGLayoutSupport::findClosestLayoutSVGText(
648 LayoutObject* layoutObject, 649 LayoutObject* layoutObject,
649 const FloatPoint& point) { 650 const FloatPoint& point) {
650 return searchTreeForFindClosestLayoutSVGText(layoutObject, point) 651 return searchTreeForFindClosestLayoutSVGText(layoutObject, point)
651 .candidateLayoutObject; 652 .candidateLayoutObject;
652 } 653 }
653 654
654 } // namespace blink 655 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698