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

Side by Side Diff: Source/core/rendering/svg/RenderSVGRoot.cpp

Issue 23819007: Have Node::document() return a reference instead of a pointer (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase on master Created 7 years, 3 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) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2004, 2005, 2007, 2008, 2009 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005, 2007, 2008, 2009 Rob Buis <buis@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. 5 * Copyright (C) 2009 Google, Inc.
6 * Copyright (C) Research In Motion Limited 2011. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2011. 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 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 bool RenderSVGRoot::isEmbeddedThroughSVGImage() const 112 bool RenderSVGRoot::isEmbeddedThroughSVGImage() const
113 { 113 {
114 return SVGImage::isInSVGImage(toSVGSVGElement(node())); 114 return SVGImage::isInSVGImage(toSVGSVGElement(node()));
115 } 115 }
116 116
117 bool RenderSVGRoot::isEmbeddedThroughFrameContainingSVGDocument() const 117 bool RenderSVGRoot::isEmbeddedThroughFrameContainingSVGDocument() const
118 { 118 {
119 if (!node()) 119 if (!node())
120 return false; 120 return false;
121 121
122 Frame* frame = node()->document()->frame(); 122 Frame* frame = node()->document().frame();
123 if (!frame) 123 if (!frame)
124 return false; 124 return false;
125 125
126 // If our frame has an owner renderer, we're embedded through eg. object/emb ed/iframe, 126 // If our frame has an owner renderer, we're embedded through eg. object/emb ed/iframe,
127 // but we only negotiate if we're in an SVG document. 127 // but we only negotiate if we're in an SVG document.
128 if (!frame->ownerRenderer()) 128 if (!frame->ownerRenderer())
129 return false; 129 return false;
130 return frame->document()->isSVGDocument(); 130 return frame->document()->isSVGDocument();
131 } 131 }
132 132
(...skipping 12 matching lines...) Expand all
145 return m_containerSize.width(); 145 return m_containerSize.width();
146 146
147 if (style()->logicalWidth().isSpecified() || style()->logicalMaxWidth().isSp ecified()) 147 if (style()->logicalWidth().isSpecified() || style()->logicalMaxWidth().isSp ecified())
148 return RenderReplaced::computeReplacedLogicalWidth(shouldComputePreferre d); 148 return RenderReplaced::computeReplacedLogicalWidth(shouldComputePreferre d);
149 149
150 if (svg->widthAttributeEstablishesViewport()) 150 if (svg->widthAttributeEstablishesViewport())
151 return resolveLengthAttributeForSVG(svg->intrinsicWidth(SVGSVGElement::I gnoreCSSProperties), style()->effectiveZoom(), containingBlock()->availableLogic alWidth(), view()); 151 return resolveLengthAttributeForSVG(svg->intrinsicWidth(SVGSVGElement::I gnoreCSSProperties), style()->effectiveZoom(), containingBlock()->availableLogic alWidth(), view());
152 152
153 // SVG embedded through object/embed/iframe. 153 // SVG embedded through object/embed/iframe.
154 if (isEmbeddedThroughFrameContainingSVGDocument()) 154 if (isEmbeddedThroughFrameContainingSVGDocument())
155 return document()->frame()->ownerRenderer()->availableLogicalWidth(); 155 return document().frame()->ownerRenderer()->availableLogicalWidth();
156 156
157 // SVG embedded via SVGImage (background-image/border-image/etc) / Inline SV G. 157 // SVG embedded via SVGImage (background-image/border-image/etc) / Inline SV G.
158 return RenderReplaced::computeReplacedLogicalWidth(shouldComputePreferred); 158 return RenderReplaced::computeReplacedLogicalWidth(shouldComputePreferred);
159 } 159 }
160 160
161 LayoutUnit RenderSVGRoot::computeReplacedLogicalHeight() const 161 LayoutUnit RenderSVGRoot::computeReplacedLogicalHeight() const
162 { 162 {
163 SVGSVGElement* svg = toSVGSVGElement(node()); 163 SVGSVGElement* svg = toSVGSVGElement(node());
164 ASSERT(svg); 164 ASSERT(svg);
165 165
(...skipping 14 matching lines...) Expand all
180 cb->addPercentHeightDescendant(const_cast<RenderSVGRoot*>(this)) ; 180 cb->addPercentHeightDescendant(const_cast<RenderSVGRoot*>(this)) ;
181 } 181 }
182 } else 182 } else
183 RenderBlock::removePercentHeightDescendant(const_cast<RenderSVGRoot* >(this)); 183 RenderBlock::removePercentHeightDescendant(const_cast<RenderSVGRoot* >(this));
184 184
185 return resolveLengthAttributeForSVG(height, style()->effectiveZoom(), co ntainingBlock()->availableLogicalHeight(IncludeMarginBorderPadding), view()); 185 return resolveLengthAttributeForSVG(height, style()->effectiveZoom(), co ntainingBlock()->availableLogicalHeight(IncludeMarginBorderPadding), view());
186 } 186 }
187 187
188 // SVG embedded through object/embed/iframe. 188 // SVG embedded through object/embed/iframe.
189 if (isEmbeddedThroughFrameContainingSVGDocument()) 189 if (isEmbeddedThroughFrameContainingSVGDocument())
190 return document()->frame()->ownerRenderer()->availableLogicalHeight(Incl udeMarginBorderPadding); 190 return document().frame()->ownerRenderer()->availableLogicalHeight(Inclu deMarginBorderPadding);
191 191
192 // SVG embedded via SVGImage (background-image/border-image/etc) / Inline SV G. 192 // SVG embedded via SVGImage (background-image/border-image/etc) / Inline SV G.
193 return RenderReplaced::computeReplacedLogicalHeight(); 193 return RenderReplaced::computeReplacedLogicalHeight();
194 } 194 }
195 195
196 void RenderSVGRoot::layout() 196 void RenderSVGRoot::layout()
197 { 197 {
198 ASSERT(needsLayout()); 198 ASSERT(needsLayout());
199 199
200 m_resourcesNeedingToInvalidateClients.clear(); 200 m_resourcesNeedingToInvalidateClients.clear();
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 { 479 {
480 RenderObject* svgRoot = resource->parent(); 480 RenderObject* svgRoot = resource->parent();
481 while (svgRoot && !svgRoot->isSVGRoot()) 481 while (svgRoot && !svgRoot->isSVGRoot())
482 svgRoot = svgRoot->parent(); 482 svgRoot = svgRoot->parent();
483 if (!svgRoot) 483 if (!svgRoot)
484 return; 484 return;
485 toRenderSVGRoot(svgRoot)->m_resourcesNeedingToInvalidateClients.add(resource ); 485 toRenderSVGRoot(svgRoot)->m_resourcesNeedingToInvalidateClients.add(resource );
486 } 486 }
487 487
488 } 488 }
OLDNEW
« no previous file with comments | « Source/core/rendering/svg/RenderSVGResourceFilter.cpp ('k') | Source/core/rendering/svg/RenderSVGTextPath.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698