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

Side by Side Diff: Source/core/rendering/HitTestResult.cpp

Issue 457013002: Avoid absoluteImageURL() creating data URLs for canvas by default. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix failing copyImageAt unit test Created 6 years, 4 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
« no previous file with comments | « Source/core/rendering/HitTestResult.h ('k') | Source/web/WebViewImpl.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) 2006, 2008, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2008, 2011 Apple Inc. All rights reserved.
3 * Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies) 3 * Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies)
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 277
278 IntRect HitTestResult::imageRect() const 278 IntRect HitTestResult::imageRect() const
279 { 279 {
280 if (!image()) 280 if (!image())
281 return IntRect(); 281 return IntRect();
282 return m_innerNonSharedNode->renderBox()->absoluteContentQuad().enclosingBou ndingBox(); 282 return m_innerNonSharedNode->renderBox()->absoluteContentQuad().enclosingBou ndingBox();
283 } 283 }
284 284
285 KURL HitTestResult::absoluteImageURL() const 285 KURL HitTestResult::absoluteImageURL() const
286 { 286 {
287 return absoluteImageURLInternal(false);
288 }
289
290 KURL HitTestResult::absoluteImageURLIncludingCanvasDataURL() const
291 {
292 return absoluteImageURLInternal(true);
293 }
294
295 KURL HitTestResult::absoluteImageURLInternal(bool allowCanvas) const
296 {
287 if (!m_innerNonSharedNode) 297 if (!m_innerNonSharedNode)
288 return KURL(); 298 return KURL();
289 299
290 RenderObject* renderer = m_innerNonSharedNode->renderer(); 300 RenderObject* renderer = m_innerNonSharedNode->renderer();
291 if (!(renderer && (renderer->isImage() || renderer->isCanvas()))) 301 if (!(renderer && (renderer->isImage() || renderer->isCanvas())))
292 return KURL(); 302 return KURL();
293 303
294 AtomicString urlString; 304 AtomicString urlString;
295 if (isHTMLCanvasElement(*m_innerNonSharedNode) 305 if ((allowCanvas && isHTMLCanvasElement(*m_innerNonSharedNode))
296 || isHTMLEmbedElement(*m_innerNonSharedNode) 306 || isHTMLEmbedElement(*m_innerNonSharedNode)
297 || isHTMLImageElement(*m_innerNonSharedNode) 307 || isHTMLImageElement(*m_innerNonSharedNode)
298 || isHTMLInputElement(*m_innerNonSharedNode) 308 || isHTMLInputElement(*m_innerNonSharedNode)
299 || isHTMLObjectElement(*m_innerNonSharedNode) 309 || isHTMLObjectElement(*m_innerNonSharedNode)
300 || isSVGImageElement(*m_innerNonSharedNode) 310 || isSVGImageElement(*m_innerNonSharedNode)
301 ) { 311 ) {
302 urlString = toElement(*m_innerNonSharedNode).imageSourceURL(); 312 urlString = toElement(*m_innerNonSharedNode).imageSourceURL();
303 } else 313 } else
304 return KURL(); 314 return KURL();
305 315
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 { 477 {
468 for (Node* node = m_innerNode.get(); node; node = NodeRenderingTraversal::pa rent(node)) { 478 for (Node* node = m_innerNode.get(); node; node = NodeRenderingTraversal::pa rent(node)) {
469 if (node->isElementNode()) 479 if (node->isElementNode())
470 return toElement(node); 480 return toElement(node);
471 } 481 }
472 482
473 return 0; 483 return 0;
474 } 484 }
475 485
476 } // namespace blink 486 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/rendering/HitTestResult.h ('k') | Source/web/WebViewImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698