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

Side by Side Diff: Source/core/svg/SVGAElement.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
« no previous file with comments | « Source/core/scripts/make_names.pl ('k') | Source/core/svg/SVGAltGlyphElement.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2004, 2005, 2008 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2004, 2005, 2007 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005, 2007 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) 2010 Apple Inc. All rights reserved. 5 * Copyright (C) 2010 Apple Inc. All rights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 // Only allow navigation to internal <view> anchors. 172 // Only allow navigation to internal <view> anchors.
173 if (targetElement && !targetElement->hasTagName(SVGNames::viewTa g)) 173 if (targetElement && !targetElement->hasTagName(SVGNames::viewTa g))
174 return; 174 return;
175 } 175 }
176 176
177 String target = this->target(); 177 String target = this->target();
178 if (target.isEmpty() && fastGetAttribute(XLinkNames::showAttr) == "n ew") 178 if (target.isEmpty() && fastGetAttribute(XLinkNames::showAttr) == "n ew")
179 target = "_blank"; 179 target = "_blank";
180 event->setDefaultHandled(); 180 event->setDefaultHandled();
181 181
182 Frame* frame = document()->frame(); 182 Frame* frame = document().frame();
183 if (!frame) 183 if (!frame)
184 return; 184 return;
185 FrameLoadRequest frameRequest(document()->securityOrigin(), Resource Request(document()->completeURL(url)), target); 185 FrameLoadRequest frameRequest(document().securityOrigin(), ResourceR equest(document().completeURL(url)), target);
186 frameRequest.setTriggeringEvent(event); 186 frameRequest.setTriggeringEvent(event);
187 frame->loader()->load(frameRequest); 187 frame->loader()->load(frameRequest);
188 return; 188 return;
189 } 189 }
190 } 190 }
191 191
192 SVGGraphicsElement::defaultEventHandler(event); 192 SVGGraphicsElement::defaultEventHandler(event);
193 } 193 }
194 194
195 bool SVGAElement::supportsFocus() const 195 bool SVGAElement::supportsFocus() const
(...skipping 19 matching lines...) Expand all
215 bool SVGAElement::isMouseFocusable() const 215 bool SVGAElement::isMouseFocusable() const
216 { 216 {
217 return false; 217 return false;
218 } 218 }
219 219
220 bool SVGAElement::isKeyboardFocusable() const 220 bool SVGAElement::isKeyboardFocusable() const
221 { 221 {
222 if (!isFocusable()) 222 if (!isFocusable())
223 return false; 223 return false;
224 224
225 if (Page* page = document()->page()) 225 if (Page* page = document().page())
226 return page->chrome().client().tabsToLinks(); 226 return page->chrome().client().tabsToLinks();
227 return false; 227 return false;
228 } 228 }
229 229
230 bool SVGAElement::childShouldCreateRenderer(const NodeRenderingContext& childCon text) const 230 bool SVGAElement::childShouldCreateRenderer(const NodeRenderingContext& childCon text) const
231 { 231 {
232 // http://www.w3.org/2003/01/REC-SVG11-20030114-errata#linking-text-environm ent 232 // http://www.w3.org/2003/01/REC-SVG11-20030114-errata#linking-text-environm ent
233 // The 'a' element may contain any element that its parent may contain, exce pt itself. 233 // The 'a' element may contain any element that its parent may contain, exce pt itself.
234 if (childContext.node()->hasTagName(SVGNames::aTag)) 234 if (childContext.node()->hasTagName(SVGNames::aTag))
235 return false; 235 return false;
236 if (parentNode() && parentNode()->isSVGElement()) 236 if (parentNode() && parentNode()->isSVGElement())
237 return parentNode()->childShouldCreateRenderer(childContext); 237 return parentNode()->childShouldCreateRenderer(childContext);
238 238
239 return SVGElement::childShouldCreateRenderer(childContext); 239 return SVGElement::childShouldCreateRenderer(childContext);
240 } 240 }
241 241
242 } // namespace WebCore 242 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/scripts/make_names.pl ('k') | Source/core/svg/SVGAltGlyphElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698