<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[174676] trunk/Source</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/174676">174676</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2014-10-14 02:07:21 -0700 (Tue, 14 Oct 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Use is<>() / downcast<>() for RenderImage
https://bugs.webkit.org/show_bug.cgi?id=137683
Reviewed by Mihnea Ovidenie.
Use is<>() / downcast<>() for RenderImage.
Source/WebCore:
No new tests, no behavior change.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::alternativeText):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::addImageMapChildren):
(WebCore::AccessibilityRenderObject::remoteSVGRootElement):
* bindings/objc/DOM.mm:
(-[DOMElement image]):
(-[DOMElement _imageTIFFRepresentation]):
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleReplacedElement):
* editing/cocoa/HTMLConverter.mm:
(fileWrapperForElement):
* editing/gtk/EditorGtk.cpp:
(WebCore::getImageForElement):
* editing/ios/EditorIOS.mm:
(WebCore::getImage):
* editing/mac/EditorMac.mm:
(WebCore::getImage):
* html/HTMLAnchorElement.cpp:
(WebCore::appendServerMapMousePosition):
* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::setFocus):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::didAttachRenderers):
(WebCore::HTMLImageElement::createImageControls):
(WebCore::HTMLImageElement::destroyImageControls):
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::didAttachRenderers):
(WebCore::HTMLVideoElement::parseAttribute):
* html/ImageInputType.cpp:
(WebCore::ImageInputType::altAttributeChanged):
(WebCore::ImageInputType::attach):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::size):
* html/shadow/mac/ImageControlsRootElementMac.cpp:
(WebCore::RenderImageControls::updateLogicalWidth):
(WebCore::RenderImageControls::computeLogicalHeight):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::renderImageResource):
* page/ContextMenuController.cpp:
(WebCore::imageFromImageElementNode):
* page/DragController.cpp:
(WebCore::getCachedImage):
(WebCore::getImage):
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::writeImage):
(WebCore::getCachedImage):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::image):
* rendering/RenderImage.h:
* rendering/RenderImageResource.cpp:
(WebCore::RenderImageResource::getImageSize):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::isDirectlyCompositedImage):
(WebCore::RenderLayerBacking::updateImageContents):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::createShapeForImage):
Source/WebKit/mac:
* Misc/WebNSPasteboardExtras.mm:
(imageFromElement):
(-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):
Source/WebKit2:
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::cachedImage):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::performActionOnElement):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityNodeObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp</a></li>
<li><a href="#trunkSourceWebCorebindingsobjcDOMmm">trunk/Source/WebCore/bindings/objc/DOM.mm</a></li>
<li><a href="#trunkSourceWebCoreeditingTextIteratorcpp">trunk/Source/WebCore/editing/TextIterator.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingcocoaHTMLConvertermm">trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm</a></li>
<li><a href="#trunkSourceWebCoreeditinggtkEditorGtkcpp">trunk/Source/WebCore/editing/gtk/EditorGtk.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingiosEditorIOSmm">trunk/Source/WebCore/editing/ios/EditorIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreeditingmacEditorMacmm">trunk/Source/WebCore/editing/mac/EditorMac.mm</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAnchorElementcpp">trunk/Source/WebCore/html/HTMLAnchorElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLAreaElementcpp">trunk/Source/WebCore/html/HTMLAreaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLImageElementcpp">trunk/Source/WebCore/html/HTMLImageElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementcpp">trunk/Source/WebCore/html/HTMLVideoElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlImageInputTypecpp">trunk/Source/WebCore/html/ImageInputType.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dcpp">trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlshadowmacImageControlsRootElementMaccpp">trunk/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderImageLoadercpp">trunk/Source/WebCore/loader/ImageLoader.cpp</a></li>
<li><a href="#trunkSourceWebCorepageContextMenuControllercpp">trunk/Source/WebCore/page/ContextMenuController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDragControllercpp">trunk/Source/WebCore/page/DragController.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformwinPasteboardWincpp">trunk/Source/WebCore/platform/win/PasteboardWin.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingHitTestResultcpp">trunk/Source/WebCore/rendering/HitTestResult.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderImageh">trunk/Source/WebCore/rendering/RenderImage.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderImageResourcecpp">trunk/Source/WebCore/rendering/RenderImageResource.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerBackingcpp">trunk/Source/WebCore/rendering/RenderLayerBacking.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderReplacedcpp">trunk/Source/WebCore/rendering/RenderReplaced.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingshapesShapeOutsideInfocpp">trunk/Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacMiscWebNSPasteboardExtrasmm">trunk/Source/WebKit/mac/Misc/WebNSPasteboardExtras.mm</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportmacWebDragClientMacmm">trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageiosWebPageIOSmm">trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/ChangeLog        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -1,3 +1,76 @@
</span><ins>+2014-10-14 Chris Dumez <cdumez@apple.com>
+
+ Use is<>() / downcast<>() for RenderImage
+ https://bugs.webkit.org/show_bug.cgi?id=137683
+
+ Reviewed by Mihnea Ovidenie.
+
+ Use is<>() / downcast<>() for RenderImage.
+
+ No new tests, no behavior change.
+
+ * accessibility/AccessibilityNodeObject.cpp:
+ (WebCore::AccessibilityNodeObject::alternativeText):
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::addImageMapChildren):
+ (WebCore::AccessibilityRenderObject::remoteSVGRootElement):
+ * bindings/objc/DOM.mm:
+ (-[DOMElement image]):
+ (-[DOMElement _imageTIFFRepresentation]):
+ * editing/TextIterator.cpp:
+ (WebCore::TextIterator::handleReplacedElement):
+ * editing/cocoa/HTMLConverter.mm:
+ (fileWrapperForElement):
+ * editing/gtk/EditorGtk.cpp:
+ (WebCore::getImageForElement):
+ * editing/ios/EditorIOS.mm:
+ (WebCore::getImage):
+ * editing/mac/EditorMac.mm:
+ (WebCore::getImage):
+ * html/HTMLAnchorElement.cpp:
+ (WebCore::appendServerMapMousePosition):
+ * html/HTMLAreaElement.cpp:
+ (WebCore::HTMLAreaElement::setFocus):
+ * html/HTMLImageElement.cpp:
+ (WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
+ (WebCore::HTMLImageElement::parseAttribute):
+ (WebCore::HTMLImageElement::didAttachRenderers):
+ (WebCore::HTMLImageElement::createImageControls):
+ (WebCore::HTMLImageElement::destroyImageControls):
+ * html/HTMLVideoElement.cpp:
+ (WebCore::HTMLVideoElement::didAttachRenderers):
+ (WebCore::HTMLVideoElement::parseAttribute):
+ * html/ImageInputType.cpp:
+ (WebCore::ImageInputType::altAttributeChanged):
+ (WebCore::ImageInputType::attach):
+ * html/canvas/CanvasRenderingContext2D.cpp:
+ (WebCore::size):
+ * html/shadow/mac/ImageControlsRootElementMac.cpp:
+ (WebCore::RenderImageControls::updateLogicalWidth):
+ (WebCore::RenderImageControls::computeLogicalHeight):
+ * loader/ImageLoader.cpp:
+ (WebCore::ImageLoader::renderImageResource):
+ * page/ContextMenuController.cpp:
+ (WebCore::imageFromImageElementNode):
+ * page/DragController.cpp:
+ (WebCore::getCachedImage):
+ (WebCore::getImage):
+ * platform/win/PasteboardWin.cpp:
+ (WebCore::Pasteboard::writeImage):
+ (WebCore::getCachedImage):
+ * rendering/HitTestResult.cpp:
+ (WebCore::HitTestResult::image):
+ * rendering/RenderImage.h:
+ * rendering/RenderImageResource.cpp:
+ (WebCore::RenderImageResource::getImageSize):
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
+ (WebCore::RenderLayerBacking::updateImageContents):
+ * rendering/RenderReplaced.cpp:
+ (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
+ * rendering/shapes/ShapeOutsideInfo.cpp:
+ (WebCore::ShapeOutsideInfo::createShapeForImage):
+
</ins><span class="cx"> 2014-10-14 Andrzej Badowski <a.badowski@samsung.com>
</span><span class="cx">
</span><span class="cx"> [AX] Improve AccessibilityTableCell columnHeaders and rowHeaders functions.
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityNodeObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -1279,8 +1279,8 @@
</span><span class="cx"> textOrder.append(AccessibilityText(ariaLabel, AlternativeText));
</span><span class="cx">
</span><span class="cx"> if (usesAltTagForTextComputation()) {
</span><del>- if (renderer() && renderer()->isRenderImage()) {
- String renderAltText = toRenderImage(renderer())->altText();
</del><ins>+ if (is<RenderImage>(renderer())) {
+ String renderAltText = downcast<RenderImage>(*renderer()).altText();
</ins><span class="cx">
</span><span class="cx"> // RenderImage will return title as a fallback from altText, but we don't want title here because we consider that in helpText.
</span><span class="cx"> if (!renderAltText.isEmpty() && renderAltText != getAttribute(titleAttr)) {
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -2799,10 +2799,10 @@
</span><span class="cx"> void AccessibilityRenderObject::addImageMapChildren()
</span><span class="cx"> {
</span><span class="cx"> RenderBoxModelObject* cssBox = renderBoxModelObject();
</span><del>- if (!cssBox || !cssBox->isRenderImage())
</del><ins>+ if (!is<RenderImage>(cssBox))
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- HTMLMapElement* map = toRenderImage(cssBox)->imageMap();
</del><ins>+ HTMLMapElement* map = downcast<RenderImage>(*cssBox).imageMap();
</ins><span class="cx"> if (!map)
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="lines">@@ -2859,10 +2859,10 @@
</span><span class="cx">
</span><span class="cx"> AccessibilitySVGRoot* AccessibilityRenderObject::remoteSVGRootElement() const
</span><span class="cx"> {
</span><del>- if (!m_renderer || !m_renderer->isRenderImage())
</del><ins>+ if (!is<RenderImage>(m_renderer))
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><del>- CachedImage* cachedImage = toRenderImage(m_renderer)->cachedImage();
</del><ins>+ CachedImage* cachedImage = downcast<RenderImage>(*m_renderer).cachedImage();
</ins><span class="cx"> if (!cachedImage)
</span><span class="cx"> return nullptr;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsobjcDOMmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/objc/DOM.mm (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/objc/DOM.mm        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/bindings/objc/DOM.mm        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -651,12 +651,12 @@
</span><span class="cx"> {
</span><span class="cx"> // FIXME: Could we move this function to WebCore::Node and autogenerate?
</span><span class="cx"> WebCore::RenderObject* renderer = core(self)->renderer();
</span><del>- if (!renderer || !renderer->isRenderImage())
</del><ins>+ if (!is<RenderImage>(renderer))
</ins><span class="cx"> return nil;
</span><del>- WebCore::CachedImage* cachedImage = toRenderImage(renderer)->cachedImage();
</del><ins>+ WebCore::CachedImage* cachedImage = downcast<RenderImage>(*renderer).cachedImage();
</ins><span class="cx"> if (!cachedImage || cachedImage->errorOccurred())
</span><span class="cx"> return nil;
</span><del>- return cachedImage->imageForRenderer(toRenderImage(renderer))->getNSImage();
</del><ins>+ return cachedImage->imageForRenderer(renderer)->getNSImage();
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="lines">@@ -687,10 +687,10 @@
</span><span class="cx"> - (NSData *)_imageTIFFRepresentation
</span><span class="cx"> {
</span><span class="cx"> // FIXME: Could we move this function to WebCore::Element and autogenerate?
</span><del>- auto renderer = core(self)->renderer();
- if (!renderer || !renderer->isRenderImage())
</del><ins>+ auto* renderer = core(self)->renderer();
+ if (!is<RenderImage>(renderer))
</ins><span class="cx"> return nil;
</span><del>- WebCore::CachedImage* cachedImage = toRenderImage(renderer)->cachedImage();
</del><ins>+ WebCore::CachedImage* cachedImage = downcast<RenderImage>(*renderer).cachedImage();
</ins><span class="cx"> if (!cachedImage || cachedImage->errorOccurred())
</span><span class="cx"> return nil;
</span><span class="cx"> return (NSData *)cachedImage->imageForRenderer(renderer)->getTIFFRepresentation();
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingTextIteratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/TextIterator.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/TextIterator.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/editing/TextIterator.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -760,8 +760,8 @@
</span><span class="cx"> m_positionStartOffset = 0;
</span><span class="cx"> m_positionEndOffset = 1;
</span><span class="cx">
</span><del>- if ((m_behavior & TextIteratorEmitsImageAltText) && renderer.isRenderImage()) {
- String altText = toRenderImage(renderer).altText();
</del><ins>+ if ((m_behavior & TextIteratorEmitsImageAltText) && is<RenderImage>(renderer)) {
+ String altText = downcast<RenderImage>(renderer).altText();
</ins><span class="cx"> if (unsigned length = altText.length()) {
</span><span class="cx"> m_lastCharacter = altText[length - 1];
</span><span class="cx"> m_copyableText.set(WTF::move(altText));
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingcocoaHTMLConvertermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/editing/cocoa/HTMLConverter.mm        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -2531,9 +2531,9 @@
</span><span class="cx"> wrapper = fileWrapperForURL(loader, URL);
</span><span class="cx"> }
</span><span class="cx"> if (!wrapper) {
</span><del>- RenderImage* renderer = toRenderImage(element->renderer());
- if (renderer->cachedImage() && !renderer->cachedImage()->errorOccurred()) {
- wrapper = [[NSFileWrapper alloc] initRegularFileWithContents:(NSData *)(renderer->cachedImage()->imageForRenderer(renderer)->getTIFFRepresentation())];
</del><ins>+ auto& renderer = downcast<RenderImage>(*element->renderer());
+ if (renderer.cachedImage() && !renderer.cachedImage()->errorOccurred()) {
+ wrapper = [[NSFileWrapper alloc] initRegularFileWithContents:(NSData *)(renderer.cachedImage()->imageForRenderer(&renderer)->getTIFFRepresentation())];
</ins><span class="cx"> [wrapper setPreferredFilename:@"image.tiff"];
</span><span class="cx"> [wrapper autorelease];
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditinggtkEditorGtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/gtk/EditorGtk.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/gtk/EditorGtk.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/editing/gtk/EditorGtk.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -93,11 +93,11 @@
</span><span class="cx">
</span><span class="cx"> static bool getImageForElement(Element& element, RefPtr<Image>& image)
</span><span class="cx"> {
</span><del>- auto renderer = element.renderer();
- if (!renderer || !renderer->isRenderImage())
</del><ins>+ auto* renderer = element.renderer();
+ if (!is<RenderImage>(renderer))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><del>- CachedImage* cachedImage = toRenderImage(*renderer).cachedImage();
</del><ins>+ CachedImage* cachedImage = downcast<RenderImage>(*renderer).cachedImage();
</ins><span class="cx"> if (!cachedImage || cachedImage->errorOccurred())
</span><span class="cx"> return false;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingiosEditorIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ios/EditorIOS.mm (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ios/EditorIOS.mm        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/editing/ios/EditorIOS.mm        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -357,15 +357,13 @@
</span><span class="cx">
</span><span class="cx"> static void getImage(Element& imageElement, RefPtr<Image>& image, CachedImage*& cachedImage)
</span><span class="cx"> {
</span><del>- auto renderer = imageElement.renderer();
- if (!renderer || !renderer->isRenderImage())
</del><ins>+ auto* renderer = imageElement.renderer();
+ if (!is<RenderImage>(renderer))
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- CachedImage* tentativeCachedImage = toRenderImage(renderer)->cachedImage();
- if (!tentativeCachedImage || tentativeCachedImage->errorOccurred()) {
- tentativeCachedImage = 0;
</del><ins>+ CachedImage* tentativeCachedImage = downcast<RenderImage>(*renderer).cachedImage();
+ if (!tentativeCachedImage || tentativeCachedImage->errorOccurred())
</ins><span class="cx"> return;
</span><del>- }
</del><span class="cx">
</span><span class="cx"> image = tentativeCachedImage->imageForRenderer(renderer);
</span><span class="cx"> if (!image)
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmacEditorMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/mac/EditorMac.mm (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/mac/EditorMac.mm        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/editing/mac/EditorMac.mm        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -401,15 +401,13 @@
</span><span class="cx">
</span><span class="cx"> static void getImage(Element& imageElement, RefPtr<Image>& image, CachedImage*& cachedImage)
</span><span class="cx"> {
</span><del>- auto renderer = imageElement.renderer();
- if (!renderer || !renderer->isRenderImage())
</del><ins>+ auto* renderer = imageElement.renderer();
+ if (!is<RenderImage>(renderer))
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- CachedImage* tentativeCachedImage = toRenderImage(renderer)->cachedImage();
- if (!tentativeCachedImage || tentativeCachedImage->errorOccurred()) {
- tentativeCachedImage = 0;
</del><ins>+ CachedImage* tentativeCachedImage = downcast<RenderImage>(*renderer).cachedImage();
+ if (!tentativeCachedImage || tentativeCachedImage->errorOccurred())
</ins><span class="cx"> return;
</span><del>- }
</del><span class="cx">
</span><span class="cx"> image = tentativeCachedImage->imageForRenderer(renderer);
</span><span class="cx"> if (!image)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAnchorElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAnchorElement.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/html/HTMLAnchorElement.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -166,9 +166,9 @@
</span><span class="cx"> if (!imageElement.isServerMap())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- if (!imageElement.renderer() || !imageElement.renderer()->isRenderImage())
</del><ins>+ if (!is<RenderImage>(imageElement.renderer()))
</ins><span class="cx"> return;
</span><del>- RenderImage& renderer = toRenderImage(*imageElement.renderer());
</del><ins>+ auto& renderer = downcast<RenderImage>(*imageElement.renderer());
</ins><span class="cx">
</span><span class="cx"> // FIXME: This should probably pass true for useTransforms.
</span><span class="cx"> FloatPoint absolutePosition = renderer.absoluteToLocal(FloatPoint(downcast<MouseEvent>(*event).pageX(), downcast<MouseEvent>(*event).pageY()));
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLAreaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLAreaElement.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLAreaElement.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/html/HTMLAreaElement.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -218,11 +218,11 @@
</span><span class="cx"> if (!imageElement)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- auto renderer = imageElement->renderer();
- if (!renderer || !renderer->isRenderImage())
</del><ins>+ auto* renderer = imageElement->renderer();
+ if (!is<RenderImage>(renderer))
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- toRenderImage(renderer)->areaElementFocusChanged(this);
</del><ins>+ downcast<RenderImage>(*renderer).areaElementFocusChanged(this);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLAreaElement::updateFocusAppearance(bool restorePreviousSelection)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLImageElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLImageElement.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLImageElement.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/html/HTMLImageElement.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -133,15 +133,15 @@
</span><span class="cx"> #endif
</span><span class="cx"> if (candidate.density >= 0)
</span><span class="cx"> m_imageDevicePixelRatio = 1 / candidate.density;
</span><del>- if (renderer() && renderer()->isImage())
- toRenderImage(renderer())->setImageDevicePixelRatio(m_imageDevicePixelRatio);
</del><ins>+ if (is<RenderImage>(renderer()))
+ downcast<RenderImage>(*renderer()).setImageDevicePixelRatio(m_imageDevicePixelRatio);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLImageElement::parseAttribute(const QualifiedName& name, const AtomicString& value)
</span><span class="cx"> {
</span><span class="cx"> if (name == altAttr) {
</span><del>- if (renderer() && renderer()->isRenderImage())
- toRenderImage(renderer())->updateAltText();
</del><ins>+ if (is<RenderImage>(renderer()))
+ downcast<RenderImage>(*renderer()).updateAltText();
</ins><span class="cx"> } else if (name == srcAttr || name == srcsetAttr) {
</span><span class="cx"> unsigned sourceSize = 0;
</span><span class="cx"> #if ENABLE(PICTURE_SIZES)
</span><span class="lines">@@ -227,7 +227,7 @@
</span><span class="cx">
</span><span class="cx"> void HTMLImageElement::didAttachRenderers()
</span><span class="cx"> {
</span><del>- if (!renderer() || !renderer()->isRenderImage())
</del><ins>+ if (!is<RenderImage>(renderer()))
</ins><span class="cx"> return;
</span><span class="cx"> if (m_imageLoader.hasPendingBeforeLoadEvent())
</span><span class="cx"> return;
</span><span class="lines">@@ -236,8 +236,8 @@
</span><span class="cx"> updateImageControls();
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- RenderImage* renderImage = toRenderImage(renderer());
- RenderImageResource& renderImageResource = renderImage->imageResource();
</del><ins>+ auto& renderImage = downcast<RenderImage>(*renderer());
+ RenderImageResource& renderImageResource = renderImage.imageResource();
</ins><span class="cx"> if (renderImageResource.hasImage())
</span><span class="cx"> return;
</span><span class="cx"> renderImageResource.setCachedImage(m_imageLoader.image());
</span><span class="lines">@@ -245,7 +245,7 @@
</span><span class="cx"> // If we have no image at all because we have no src attribute, set
</span><span class="cx"> // image height and width for the alt text instead.
</span><span class="cx"> if (!m_imageLoader.image() && !renderImageResource.cachedImage())
</span><del>- renderImage->setImageSizeForAltText();
</del><ins>+ renderImage.setImageSizeForAltText();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Node::InsertionNotificationRequest HTMLImageElement::insertedInto(ContainerNode& insertionPoint)
</span><span class="lines">@@ -507,11 +507,11 @@
</span><span class="cx">
</span><span class="cx"> ensureUserAgentShadowRoot().appendChild(imageControls);
</span><span class="cx">
</span><del>- RenderObject* renderObject = renderer();
</del><ins>+ auto* renderObject = renderer();
</ins><span class="cx"> if (!renderObject)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- toRenderImage(renderObject)->setHasShadowControls(true);
</del><ins>+ downcast<RenderImage>(*renderObject).setHasShadowControls(true);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLImageElement::destroyImageControls()
</span><span class="lines">@@ -525,11 +525,11 @@
</span><span class="cx"> shadowRoot->removeChild(node);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- RenderObject* renderObject = renderer();
</del><ins>+ auto* renderObject = renderer();
</ins><span class="cx"> if (!renderObject)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- toRenderImage(renderObject)->setHasShadowControls(false);
</del><ins>+ downcast<RenderImage>(*renderObject).setHasShadowControls(false);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool HTMLImageElement::hasImageControls() const
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -82,7 +82,7 @@
</span><span class="cx"> m_imageLoader = std::make_unique<HTMLImageLoader>(*this);
</span><span class="cx"> m_imageLoader->updateFromElement();
</span><span class="cx"> if (renderer())
</span><del>- toRenderImage(renderer())->imageResource().setCachedImage(m_imageLoader->image());
</del><ins>+ downcast<RenderImage>(*renderer()).imageResource().setCachedImage(m_imageLoader->image());
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -116,7 +116,7 @@
</span><span class="cx"> m_imageLoader->updateFromElementIgnoringPreviousError();
</span><span class="cx"> } else {
</span><span class="cx"> if (renderer())
</span><del>- toRenderImage(renderer())->imageResource().setCachedImage(0);
</del><ins>+ downcast<RenderImage>(*renderer()).imageResource().setCachedImage(nullptr);
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> #if ENABLE(IOS_AIRPLAY)
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlImageInputTypecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/ImageInputType.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/ImageInputType.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/html/ImageInputType.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -108,10 +108,10 @@
</span><span class="cx">
</span><span class="cx"> void ImageInputType::altAttributeChanged()
</span><span class="cx"> {
</span><del>- RenderImage* image = toRenderImage(element().renderer());
- if (!image)
</del><ins>+ auto* renderer = downcast<RenderImage>(element().renderer());
+ if (!renderer)
</ins><span class="cx"> return;
</span><del>- image->updateAltText();
</del><ins>+ renderer->updateAltText();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void ImageInputType::srcAttributeChanged()
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx"> HTMLImageLoader* imageLoader = element().imageLoader();
</span><span class="cx"> imageLoader->updateFromElement();
</span><span class="cx">
</span><del>- RenderImage* renderer = toRenderImage(element().renderer());
</del><ins>+ auto* renderer = downcast<RenderImage>(element().renderer());
</ins><span class="cx"> if (!renderer)
</span><span class="cx"> return;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlcanvasCanvasRenderingContext2Dcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -1282,8 +1282,8 @@
</span><span class="cx"> if (CachedImage* cachedImage = image->cachedImage()) {
</span><span class="cx"> size = cachedImage->imageSizeForRenderer(image->renderer(), 1.0f); // FIXME: Not sure about this.
</span><span class="cx">
</span><del>- if (sizeType == ImageSizeAfterDevicePixelRatio && image->renderer() && image->renderer()->isRenderImage() && cachedImage->image() && !cachedImage->image()->hasRelativeWidth())
- size.scale(toRenderImage(image->renderer())->imageDevicePixelRatio());
</del><ins>+ if (sizeType == ImageSizeAfterDevicePixelRatio && is<RenderImage>(image->renderer()) && cachedImage->image() && !cachedImage->image()->hasRelativeWidth())
+ size.scale(downcast<RenderImage>(*image->renderer()).imageDevicePixelRatio());
</ins><span class="cx"> }
</span><span class="cx"> return size;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlshadowmacImageControlsRootElementMaccpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -63,10 +63,10 @@
</span><span class="cx"> RenderBox::updateLogicalWidth();
</span><span class="cx">
</span><span class="cx"> RenderElement* renderer = element()->shadowHost()->renderer();
</span><del>- if (!renderer->isRenderImage())
</del><ins>+ if (!is<RenderImage>(*renderer))
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- setLogicalWidth(toRenderImage(renderer)->logicalWidth());
</del><ins>+ setLogicalWidth(downcast<RenderImage>(*renderer).logicalWidth());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void RenderImageControls::computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, LogicalExtentComputedValues& computedValues) const
</span><span class="lines">@@ -74,10 +74,10 @@
</span><span class="cx"> RenderBox::computeLogicalHeight(logicalHeight, logicalTop, computedValues);
</span><span class="cx">
</span><span class="cx"> RenderElement* renderer = element()->shadowHost()->renderer();
</span><del>- if (!renderer->isRenderImage())
</del><ins>+ if (!is<RenderImage>(*renderer))
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- computedValues.m_extent = toRenderImage(renderer)->logicalHeight();
</del><ins>+ computedValues.m_extent = downcast<RenderImage>(*renderer).logicalHeight();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PassRefPtr<ImageControlsRootElement> ImageControlsRootElement::maybeCreate(Document& document)
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderImageLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/ImageLoader.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/ImageLoader.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/loader/ImageLoader.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -317,21 +317,21 @@
</span><span class="cx">
</span><span class="cx"> RenderImageResource* ImageLoader::renderImageResource()
</span><span class="cx"> {
</span><del>- auto renderer = element().renderer();
</del><ins>+ auto* renderer = element().renderer();
</ins><span class="cx"> if (!renderer)
</span><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> // We don't return style generated image because it doesn't belong to the ImageLoader.
</span><span class="cx"> // See <https://bugs.webkit.org/show_bug.cgi?id=42840>
</span><del>- if (renderer->isRenderImage() && !toRenderImage(*renderer).isGeneratedContent())
- return &toRenderImage(*renderer).imageResource();
</del><ins>+ if (is<RenderImage>(*renderer) && !downcast<RenderImage>(*renderer).isGeneratedContent())
+ return &downcast<RenderImage>(*renderer).imageResource();
</ins><span class="cx">
</span><del>- if (renderer->isSVGImage())
- return &toRenderSVGImage(renderer)->imageResource();
</del><ins>+ if (is<RenderSVGImage>(*renderer))
+ return &downcast<RenderSVGImage>(*renderer).imageResource();
</ins><span class="cx">
</span><span class="cx"> #if ENABLE(VIDEO)
</span><del>- if (renderer->isVideo())
- return &toRenderVideo(*renderer).imageResource();
</del><ins>+ if (is<RenderVideo>(*renderer))
+ return &downcast<RenderVideo>(*renderer).imageResource();
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> return nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCorepageContextMenuControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ContextMenuController.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ContextMenuController.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/page/ContextMenuController.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -134,11 +134,9 @@
</span><span class="cx"> static Image* imageFromImageElementNode(Node& node)
</span><span class="cx"> {
</span><span class="cx"> RenderObject* renderer = node.renderer();
</span><del>- if (!renderer)
</del><ins>+ if (!is<RenderImage>(renderer))
</ins><span class="cx"> return nullptr;
</span><del>- if (!renderer->isRenderImage())
- return nullptr;
- CachedImage* image = toRenderImage(*renderer).cachedImage();
</del><ins>+ CachedImage* image = downcast<RenderImage>(*renderer).cachedImage();
</ins><span class="cx"> if (!image || image->errorOccurred())
</span><span class="cx"> return nullptr;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorepageDragControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DragController.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DragController.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/page/DragController.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -660,10 +660,10 @@
</span><span class="cx"> static CachedImage* getCachedImage(Element& element)
</span><span class="cx"> {
</span><span class="cx"> RenderObject* renderer = element.renderer();
</span><del>- if (!renderer || !renderer->isRenderImage())
- return 0;
- RenderImage* image = toRenderImage(renderer);
- return image->cachedImage();
</del><ins>+ if (!is<RenderImage>(renderer))
+ return nullptr;
+ auto& image = downcast<RenderImage>(*renderer);
+ return image.cachedImage();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static Image* getImage(Element& element)
</span><span class="lines">@@ -673,7 +673,7 @@
</span><span class="cx"> // Users of getImage() want access to the SVGImage, in order to figure out the filename extensions,
</span><span class="cx"> // which would be empty when asking the cached BitmapImages.
</span><span class="cx"> return (cachedImage && !cachedImage->errorOccurred()) ?
</span><del>- cachedImage->image() : 0;
</del><ins>+ cachedImage->image() : nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static void selectElement(Element& element)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformwinPasteboardWincpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/win/PasteboardWin.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/win/PasteboardWin.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/platform/win/PasteboardWin.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -723,14 +723,14 @@
</span><span class="cx">
</span><span class="cx"> void Pasteboard::writeImage(Element& element, const URL&, const String&)
</span><span class="cx"> {
</span><del>- if (!(element.renderer() && element.renderer()->isRenderImage()))
</del><ins>+ if (!is<RenderImage>(element.renderer()))
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- RenderImage* renderer = toRenderImage(element.renderer());
- CachedImage* cachedImage = renderer->cachedImage();
</del><ins>+ auto& renderer = downcast<RenderImage>(*element.renderer());
+ CachedImage* cachedImage = renderer.cachedImage();
</ins><span class="cx"> if (!cachedImage || cachedImage->errorOccurred())
</span><span class="cx"> return;
</span><del>- Image* image = cachedImage->imageForRenderer(renderer);
</del><ins>+ Image* image = cachedImage->imageForRenderer(&renderer);
</ins><span class="cx"> ASSERT(image);
</span><span class="cx">
</span><span class="cx"> clear();
</span><span class="lines">@@ -859,14 +859,14 @@
</span><span class="cx"> {
</span><span class="cx"> // Attempt to pull CachedImage from element
</span><span class="cx"> RenderObject* renderer = element.renderer();
</span><del>- if (!renderer || !renderer->isRenderImage())
- return 0;
</del><ins>+ if (!is<RenderImage>(renderer))
+ return nullptr;
</ins><span class="cx">
</span><del>- RenderImage* image = toRenderImage(renderer);
</del><ins>+ auto* image = downcast<RenderImage>(renderer);
</ins><span class="cx"> if (image->cachedImage() && !image->cachedImage()->errorOccurred())
</span><span class="cx"> return image->cachedImage();
</span><span class="cx">
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static HGLOBAL createGlobalImageFileDescriptor(const String& url, const String& title, CachedImage* image)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingHitTestResultcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/HitTestResult.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/HitTestResult.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/rendering/HitTestResult.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -290,16 +290,16 @@
</span><span class="cx"> Image* HitTestResult::image() const
</span><span class="cx"> {
</span><span class="cx"> if (!m_innerNonSharedNode)
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx">
</span><del>- auto renderer = m_innerNonSharedNode->renderer();
- if (renderer && renderer->isRenderImage()) {
- RenderImage* image = toRenderImage(renderer);
- if (image->cachedImage() && !image->cachedImage()->errorOccurred())
- return image->cachedImage()->imageForRenderer(image);
</del><ins>+ auto* renderer = m_innerNonSharedNode->renderer();
+ if (is<RenderImage>(renderer)) {
+ auto& image = downcast<RenderImage>(*renderer);
+ if (image.cachedImage() && !image.cachedImage()->errorOccurred())
+ return image.cachedImage()->imageForRenderer(&image);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> IntRect HitTestResult::imageRect() const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderImageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderImage.h (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderImage.h        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/rendering/RenderImage.h        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -128,8 +128,6 @@
</span><span class="cx"> friend class RenderImageScaleObserver;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-RENDER_OBJECT_TYPE_CASTS(RenderImage, isRenderImage())
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><span class="cx"> SPECIALIZE_TYPE_TRAITS_RENDER_OBJECT(RenderImage, isRenderImage())
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderImageResourcecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderImageResource.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderImageResource.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/rendering/RenderImageResource.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -132,8 +132,8 @@
</span><span class="cx"> if (!m_cachedImage)
</span><span class="cx"> return LayoutSize();
</span><span class="cx"> LayoutSize size = m_cachedImage->imageSizeForRenderer(m_renderer, multiplier, type);
</span><del>- if (m_renderer && m_renderer->isRenderImage())
- size.scale(toRenderImage(m_renderer)->imageDevicePixelRatio());
</del><ins>+ if (is<RenderImage>(m_renderer))
+ size.scale(downcast<RenderImage>(*m_renderer).imageDevicePixelRatio());
</ins><span class="cx"> return size;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerBackingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -1819,10 +1819,10 @@
</span><span class="cx"> // that require painting. Direct compositing saves backing store.
</span><span class="cx"> bool RenderLayerBacking::isDirectlyCompositedImage() const
</span><span class="cx"> {
</span><del>- if (!renderer().isRenderImage() || renderer().isMedia() || m_owningLayer.hasBoxDecorationsOrBackground() || renderer().hasClip())
</del><ins>+ if (!is<RenderImage>(renderer()) || is<RenderMedia>(renderer()) || m_owningLayer.hasBoxDecorationsOrBackground() || renderer().hasClip())
</ins><span class="cx"> return false;
</span><span class="cx">
</span><del>- RenderImage& imageRenderer = toRenderImage(renderer());
</del><ins>+ auto& imageRenderer = downcast<RenderImage>(renderer());
</ins><span class="cx"> if (CachedImage* cachedImage = imageRenderer.cachedImage()) {
</span><span class="cx"> if (!cachedImage->hasImage())
</span><span class="cx"> return false;
</span><span class="lines">@@ -1866,8 +1866,7 @@
</span><span class="cx">
</span><span class="cx"> void RenderLayerBacking::updateImageContents()
</span><span class="cx"> {
</span><del>- ASSERT(renderer().isRenderImage());
- RenderImage& imageRenderer = toRenderImage(renderer());
</del><ins>+ auto& imageRenderer = downcast<RenderImage>(renderer());
</ins><span class="cx">
</span><span class="cx"> CachedImage* cachedImage = imageRenderer.cachedImage();
</span><span class="cx"> if (!cachedImage)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderReplacedcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderReplaced.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderReplaced.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/rendering/RenderReplaced.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -286,8 +286,8 @@
</span><span class="cx"> // Handle zoom & vertical writing modes here, as the embedded document doesn't know about them.
</span><span class="cx"> intrinsicSize.scale(style().effectiveZoom());
</span><span class="cx">
</span><del>- if (isRenderImage())
- intrinsicSize.scale(toRenderImage(this)->imageDevicePixelRatio());
</del><ins>+ if (is<RenderImage>(*this))
+ intrinsicSize.scale(downcast<RenderImage>(*this).imageDevicePixelRatio());
</ins><span class="cx">
</span><span class="cx"> // Update our intrinsic size to match what the content renderer has computed, so that when we
</span><span class="cx"> // constrain the size below, the correct intrinsic size will be obtained for comparison against
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingshapesShapeOutsideInfocpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -150,8 +150,8 @@
</span><span class="cx"> styleImage->setContainerSizeForRenderer(&m_renderer, imageSize, m_renderer.style().effectiveZoom());
</span><span class="cx">
</span><span class="cx"> const LayoutRect& marginRect = getShapeImageMarginRect(m_renderer, m_referenceBoxLogicalSize);
</span><del>- const LayoutRect& imageRect = m_renderer.isRenderImage()
- ? toRenderImage(&m_renderer)->replacedContentRect(m_renderer.intrinsicSize())
</del><ins>+ const LayoutRect& imageRect = is<RenderImage>(m_renderer)
+ ? downcast<RenderImage>(m_renderer).replacedContentRect(m_renderer.intrinsicSize())
</ins><span class="cx"> : LayoutRect(LayoutPoint(), imageSize);
</span><span class="cx">
</span><span class="cx"> ASSERT(!styleImage->isPendingImage());
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebKit/mac/ChangeLog        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2014-10-14 Chris Dumez <cdumez@apple.com>
+
+ Use is<>() / downcast<>() for RenderImage
+ https://bugs.webkit.org/show_bug.cgi?id=137683
+
+ Reviewed by Mihnea Ovidenie.
+
+ Use is<>() / downcast<>() for RenderImage.
+
+ * Misc/WebNSPasteboardExtras.mm:
+ (imageFromElement):
+ (-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):
+
</ins><span class="cx"> 2014-10-10 Daniel Bates <dabates@apple.com>
</span><span class="cx">
</span><span class="cx"> Remove unused classes WebRender{Node, Layer}
</span></span></pre></div>
<a id="trunkSourceWebKitmacMiscWebNSPasteboardExtrasmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/Misc/WebNSPasteboardExtras.mm (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/Misc/WebNSPasteboardExtras.mm        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebKit/mac/Misc/WebNSPasteboardExtras.mm        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -220,13 +220,13 @@
</span><span class="cx"> {
</span><span class="cx"> Element* element = core(domElement);
</span><span class="cx"> if (!element)
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx">
</span><del>- RenderObject* renderer = element->renderer();
- RenderImage* imageRenderer = toRenderImage(renderer);
- if (!imageRenderer->cachedImage() || imageRenderer->cachedImage()->errorOccurred())
- return 0;
- return imageRenderer->cachedImage();
</del><ins>+ ASSERT(element->renderer());
+ auto& imageRenderer = downcast<RenderImage>(*element->renderer());
+ if (!imageRenderer.cachedImage() || imageRenderer.cachedImage()->errorOccurred())
+ return nullptr;
+ return imageRenderer.cachedImage();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (void)_web_writeImage:(NSImage *)image
</span><span class="lines">@@ -271,12 +271,12 @@
</span><span class="cx"> ASSERT(self == [NSPasteboard pasteboardWithName:NSDragPboard]);
</span><span class="cx">
</span><span class="cx"> NSString *extension = @"";
</span><del>- if (RenderObject* renderer = core(element)->renderer()) {
- if (renderer->isRenderImage()) {
- if (CachedImage* image = toRenderImage(renderer)->cachedImage()) {
</del><ins>+ if (auto* renderer = core(element)->renderer()) {
+ if (is<RenderImage>(*renderer)) {
+ if (CachedImage* image = downcast<RenderImage>(*renderer).cachedImage()) {
</ins><span class="cx"> extension = image->image()->filenameExtension();
</span><span class="cx"> if (![extension length])
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebKit2/ChangeLog        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2014-10-14 Chris Dumez <cdumez@apple.com>
+
+ Use is<>() / downcast<>() for RenderImage
+ https://bugs.webkit.org/show_bug.cgi?id=137683
+
+ Reviewed by Mihnea Ovidenie.
+
+ Use is<>() / downcast<>() for RenderImage.
+
+ * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
+ (WebKit::cachedImage):
+ * WebProcess/WebPage/ios/WebPageIOS.mm:
+ (WebKit::WebPage::performActionOnElement):
+
</ins><span class="cx"> 2014-10-13 Carlos Garcia Campos <cgarcia@igalia.com>
</span><span class="cx">
</span><span class="cx"> [GTK][CMake] Non-ninja build is broken since r174422
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportmacWebDragClientMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebDragClientMac.mm        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -86,14 +86,12 @@
</span><span class="cx">
</span><span class="cx"> static WebCore::CachedImage* cachedImage(Element& element)
</span><span class="cx"> {
</span><del>- RenderObject* renderer = element.renderer();
- if (!renderer)
- return 0;
- if (!renderer->isRenderImage())
- return 0;
- WebCore::CachedImage* image = toRenderImage(renderer)->cachedImage();
</del><ins>+ auto* renderer = element.renderer();
+ if (!is<WebCore::RenderImage>(renderer))
+ return nullptr;
+ WebCore::CachedImage* image = downcast<WebCore::RenderImage>(*renderer).cachedImage();
</ins><span class="cx"> if (!image || image->errorOccurred())
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx"> return image;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageiosWebPageIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm (174675 => 174676)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm        2014-10-14 08:18:32 UTC (rev 174675)
+++ trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm        2014-10-14 09:07:21 UTC (rev 174676)
</span><span class="lines">@@ -1956,21 +1956,20 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> if (static_cast<SheetAction>(action) == SheetAction::Copy) {
</span><del>- if (element->renderer()->isRenderImage()) {
</del><ins>+ if (is<RenderImage>(*element->renderer())) {
</ins><span class="cx"> Element* linkElement = containingLinkElement(element);
</span><span class="cx">
</span><span class="cx"> if (!linkElement)
</span><del>- m_interactionNode->document().frame()->editor().writeImageToPasteboard(*Pasteboard::createForCopyAndPaste(), *element, toRenderImage(element->renderer())->cachedImage()->url(), String());
</del><ins>+ m_interactionNode->document().frame()->editor().writeImageToPasteboard(*Pasteboard::createForCopyAndPaste(), *element, downcast<RenderImage>(*element->renderer()).cachedImage()->url(), String());
</ins><span class="cx"> else
</span><span class="cx"> m_interactionNode->document().frame()->editor().copyURL(linkElement->document().completeURL(stripLeadingAndTrailingHTMLSpaces(linkElement->getAttribute(HTMLNames::hrefAttr))), linkElement->textContent());
</span><span class="cx"> } else if (element->isLink()) {
</span><span class="cx"> m_interactionNode->document().frame()->editor().copyURL(element->document().completeURL(stripLeadingAndTrailingHTMLSpaces(element->getAttribute(HTMLNames::hrefAttr))), element->textContent());
</span><span class="cx"> }
</span><span class="cx"> } else if (static_cast<SheetAction>(action) == SheetAction::SaveImage) {
</span><del>- if (!element->renderer()->isRenderImage())
</del><ins>+ if (!is<RenderImage>(*element->renderer()))
</ins><span class="cx"> return;
</span><del>- CachedImage* cachedImage = toRenderImage(element->renderer())->cachedImage();
- if (cachedImage) {
</del><ins>+ if (CachedImage* cachedImage = downcast<RenderImage>(*element->renderer()).cachedImage()) {
</ins><span class="cx"> SharedMemory::Handle handle;
</span><span class="cx"> RefPtr<SharedBuffer> buffer = cachedImage->resourceBuffer()->sharedBuffer();
</span><span class="cx"> if (buffer) {
</span></span></pre>
</div>
</div>
</body>
</html>