<!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>[174587] 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/174587">174587</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2014-10-10 08:49:24 -0700 (Fri, 10 Oct 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Use is<>() / downcast<>() for RenderBoxModelObject
https://bugs.webkit.org/show_bug.cgi?id=137587
Reviewed by Mihnea Ovidenie.
Use is<>() / downcast<>() for RenderBoxModelObject and clean up the
surrounding code.
Source/WebCore:
No new tests, no behavior change.
* accessibility/AXObjectCache.cpp:
(WebCore::createFromRenderer):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::renderBoxModelObject):
(WebCore::isInlineWithContinuation):
(WebCore::firstChildConsideringContinuation):
(WebCore::lastChildHasContinuation):
(WebCore::AccessibilityRenderObject::nextSibling):
(WebCore::AccessibilityRenderObject::widget):
(WebCore::AccessibilityRenderObject::renderObjectIsObservable):
(WebCore::AccessibilityRenderObject::observableObject):
(WebCore::msaaRoleForRenderer):
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isDataTable):
* dom/Node.cpp:
(WebCore::Node::renderBox):
(WebCore::Node::renderBoxModelObject):
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForElementInfo):
* page/FrameView.cpp:
(WebCore::FrameView::scrollContentsFastPath):
* page/PrintContext.cpp:
(WebCore::enclosingBoxModelObject):
* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::freezeAtTime):
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::startAnimation):
(WebCore::ImplicitAnimation::pauseAnimation):
(WebCore::ImplicitAnimation::endAnimation):
* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::startAnimation):
(WebCore::KeyframeAnimation::pauseAnimation):
(WebCore::KeyframeAnimation::endAnimation):
* page/ios/FrameIOS.mm:
(WebCore::Frame::overflowScrollPositionChangedForNode):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects):
* rendering/InlineBox.h:
(WebCore::InlineBox::boxModelObject):
* rendering/InlineElementBox.h:
(WebCore::InlineElementBox::renderer):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesInBlockDirection):
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::renderer):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::baselinePosition):
(WebCore::InlineTextBox::lineHeight):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addChildToContinuation):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalWidthUsing):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
(WebCore::RenderBox::computePositionedLogicalWidth):
(WebCore::RenderBox::computePositionedLogicalHeight):
(WebCore::RenderBox::computePositionedLogicalWidthReplaced):
(WebCore::RenderBox::computePositionedLogicalHeightReplaced):
* rendering/RenderBoxModelObject.h:
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::adjustedPositionRelativeToOffsetParent):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::splitInlines):
(WebCore::RenderInline::addChildToContinuation):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPosition):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason):
(WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::destroy):
(WebCore::RenderObject::offsetParent):
* rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::base):
Source/WebKit/mac:
* Plugins/WebBaseNetscapePluginView.mm:
(-[WebBaseNetscapePluginView invalidatePluginContentRect:]):
* WebView/WebRenderLayer.mm:
(-[WebRenderLayer initWithWebFrame:]):
Source/WebKit2:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::renderer):
(WebKit::PluginView::invalidateRect):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAXObjectCachecpp">trunk/Source/WebCore/accessibility/AXObjectCache.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityRenderObjecth">trunk/Source/WebCore/accessibility/AccessibilityRenderObject.h</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityTablecpp">trunk/Source/WebCore/accessibility/AccessibilityTable.cpp</a></li>
<li><a href="#trunkSourceWebCoredomNodecpp">trunk/Source/WebCore/dom/Node.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorOverlaycpp">trunk/Source/WebCore/inspector/InspectorOverlay.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFrameViewcpp">trunk/Source/WebCore/page/FrameView.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePrintContextcpp">trunk/Source/WebCore/page/PrintContext.cpp</a></li>
<li><a href="#trunkSourceWebCorepageanimationAnimationBasecpp">trunk/Source/WebCore/page/animation/AnimationBase.cpp</a></li>
<li><a href="#trunkSourceWebCorepageanimationImplicitAnimationcpp">trunk/Source/WebCore/page/animation/ImplicitAnimation.cpp</a></li>
<li><a href="#trunkSourceWebCorepageanimationKeyframeAnimationcpp">trunk/Source/WebCore/page/animation/KeyframeAnimation.cpp</a></li>
<li><a href="#trunkSourceWebCorepageiosFrameIOSmm">trunk/Source/WebCore/page/ios/FrameIOS.mm</a></li>
<li><a href="#trunkSourceWebCorepagescrollingScrollingCoordinatorcpp">trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineBoxh">trunk/Source/WebCore/rendering/InlineBox.h</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineElementBoxh">trunk/Source/WebCore/rendering/InlineElementBox.h</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineFlowBoxcpp">trunk/Source/WebCore/rendering/InlineFlowBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineFlowBoxh">trunk/Source/WebCore/rendering/InlineFlowBox.h</a></li>
<li><a href="#trunkSourceWebCorerenderingInlineTextBoxcpp">trunk/Source/WebCore/rendering/InlineTextBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockcpp">trunk/Source/WebCore/rendering/RenderBlock.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxcpp">trunk/Source/WebCore/rendering/RenderBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxModelObjecth">trunk/Source/WebCore/rendering/RenderBoxModelObject.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderFlowThreadcpp">trunk/Source/WebCore/rendering/RenderFlowThread.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderInlinecpp">trunk/Source/WebCore/rendering/RenderInline.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayercpp">trunk/Source/WebCore/rendering/RenderLayer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerBackingcpp">trunk/Source/WebCore/rendering/RenderLayerBacking.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerCompositorcpp">trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderObjectcpp">trunk/Source/WebCore/rendering/RenderObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingmathmlRenderMathMLScriptscpp">trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacPluginsWebBaseNetscapePluginViewmm">trunk/Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebRenderLayermm">trunk/Source/WebKit/mac/WebView/WebRenderLayer.mm</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPluginViewcpp">trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/ChangeLog        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -1,3 +1,93 @@
</span><ins>+2014-10-10 Chris Dumez <cdumez@apple.com>
+
+ Use is<>() / downcast<>() for RenderBoxModelObject
+ https://bugs.webkit.org/show_bug.cgi?id=137587
+
+ Reviewed by Mihnea Ovidenie.
+
+ Use is<>() / downcast<>() for RenderBoxModelObject and clean up the
+ surrounding code.
+
+ No new tests, no behavior change.
+
+ * accessibility/AXObjectCache.cpp:
+ (WebCore::createFromRenderer):
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::renderBoxModelObject):
+ (WebCore::isInlineWithContinuation):
+ (WebCore::firstChildConsideringContinuation):
+ (WebCore::lastChildHasContinuation):
+ (WebCore::AccessibilityRenderObject::nextSibling):
+ (WebCore::AccessibilityRenderObject::widget):
+ (WebCore::AccessibilityRenderObject::renderObjectIsObservable):
+ (WebCore::AccessibilityRenderObject::observableObject):
+ (WebCore::msaaRoleForRenderer):
+ * accessibility/AccessibilityRenderObject.h:
+ * accessibility/AccessibilityTable.cpp:
+ (WebCore::AccessibilityTable::isDataTable):
+ * dom/Node.cpp:
+ (WebCore::Node::renderBox):
+ (WebCore::Node::renderBoxModelObject):
+ * inspector/InspectorOverlay.cpp:
+ (WebCore::buildObjectForElementInfo):
+ * page/FrameView.cpp:
+ (WebCore::FrameView::scrollContentsFastPath):
+ * page/PrintContext.cpp:
+ (WebCore::enclosingBoxModelObject):
+ * page/animation/AnimationBase.cpp:
+ (WebCore::AnimationBase::freezeAtTime):
+ * page/animation/ImplicitAnimation.cpp:
+ (WebCore::ImplicitAnimation::startAnimation):
+ (WebCore::ImplicitAnimation::pauseAnimation):
+ (WebCore::ImplicitAnimation::endAnimation):
+ * page/animation/KeyframeAnimation.cpp:
+ (WebCore::KeyframeAnimation::startAnimation):
+ (WebCore::KeyframeAnimation::pauseAnimation):
+ (WebCore::KeyframeAnimation::endAnimation):
+ * page/ios/FrameIOS.mm:
+ (WebCore::Frame::overflowScrollPositionChangedForNode):
+ * page/scrolling/ScrollingCoordinator.cpp:
+ (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects):
+ * rendering/InlineBox.h:
+ (WebCore::InlineBox::boxModelObject):
+ * rendering/InlineElementBox.h:
+ (WebCore::InlineElementBox::renderer):
+ * rendering/InlineFlowBox.cpp:
+ (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
+ * rendering/InlineFlowBox.h:
+ (WebCore::InlineFlowBox::renderer):
+ * rendering/InlineTextBox.cpp:
+ (WebCore::InlineTextBox::baselinePosition):
+ (WebCore::InlineTextBox::lineHeight):
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::addChildToContinuation):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
+ (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
+ (WebCore::RenderBox::computePositionedLogicalWidth):
+ (WebCore::RenderBox::computePositionedLogicalHeight):
+ (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
+ (WebCore::RenderBox::computePositionedLogicalHeightReplaced):
+ * rendering/RenderBoxModelObject.h:
+ * rendering/RenderFlowThread.cpp:
+ (WebCore::RenderFlowThread::adjustedPositionRelativeToOffsetParent):
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::splitInlines):
+ (WebCore::RenderInline::addChildToContinuation):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateLayerPosition):
+ (WebCore::RenderLayer::calculateClipRects):
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason):
+ (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::destroy):
+ (WebCore::RenderObject::offsetParent):
+ * rendering/mathml/RenderMathMLScripts.cpp:
+ (WebCore::RenderMathMLScripts::base):
+
</ins><span class="cx"> 2014-10-10 Zan Dobersek <zdobersek@igalia.com>
</span><span class="cx">
</span><span class="cx"> Remove CrossThreadTask
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAXObjectCachecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AXObjectCache.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AXObjectCache.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/accessibility/AXObjectCache.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -73,6 +73,7 @@
</span><span class="cx"> #include "RenderMenuList.h"
</span><span class="cx"> #include "RenderMeter.h"
</span><span class="cx"> #include "RenderProgress.h"
</span><ins>+#include "RenderSVGRoot.h"
</ins><span class="cx"> #include "RenderSlider.h"
</span><span class="cx"> #include "RenderTable.h"
</span><span class="cx"> #include "RenderTableCell.h"
</span><span class="lines">@@ -290,40 +291,40 @@
</span><span class="cx"> return AccessibilityMediaControl::create(renderer);
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- if (renderer->isSVGRoot())
</del><ins>+ if (is<RenderSVGRoot>(*renderer))
</ins><span class="cx"> return AccessibilitySVGRoot::create(renderer);
</span><span class="cx">
</span><span class="cx"> // Search field buttons
</span><span class="cx"> if (is<Element>(node) && downcast<Element>(*node).isSearchFieldCancelButtonElement())
</span><span class="cx"> return AccessibilitySearchFieldCancelButton::create(renderer);
</span><span class="cx">
</span><del>- if (renderer->isBoxModelObject()) {
- RenderBoxModelObject* cssBox = toRenderBoxModelObject(renderer);
- if (cssBox->isListBox())
- return AccessibilityListBox::create(toRenderListBox(cssBox));
- if (cssBox->isMenuList())
- return AccessibilityMenuList::create(toRenderMenuList(cssBox));
</del><ins>+ if (is<RenderBoxModelObject>(*renderer)) {
+ RenderBoxModelObject& cssBox = downcast<RenderBoxModelObject>(*renderer);
+ if (is<RenderListBox>(cssBox))
+ return AccessibilityListBox::create(&downcast<RenderListBox>(cssBox));
+ if (is<RenderMenuList>(cssBox))
+ return AccessibilityMenuList::create(&downcast<RenderMenuList>(cssBox));
</ins><span class="cx">
</span><span class="cx"> // standard tables
</span><del>- if (cssBox->isTable())
- return AccessibilityTable::create(toRenderTable(cssBox));
- if (cssBox->isTableRow())
- return AccessibilityTableRow::create(toRenderTableRow(cssBox));
- if (cssBox->isTableCell())
- return AccessibilityTableCell::create(toRenderTableCell(cssBox));
</del><ins>+ if (is<RenderTable>(cssBox))
+ return AccessibilityTable::create(&downcast<RenderTable>(cssBox));
+ if (is<RenderTableRow>(cssBox))
+ return AccessibilityTableRow::create(&downcast<RenderTableRow>(cssBox));
+ if (is<RenderTableCell>(cssBox))
+ return AccessibilityTableCell::create(&downcast<RenderTableCell>(cssBox));
</ins><span class="cx">
</span><span class="cx"> // progress bar
</span><del>- if (cssBox->isProgress())
- return AccessibilityProgressIndicator::create(toRenderProgress(cssBox));
</del><ins>+ if (is<RenderProgress>(cssBox))
+ return AccessibilityProgressIndicator::create(&downcast<RenderProgress>(cssBox));
</ins><span class="cx">
</span><span class="cx"> #if ENABLE(METER_ELEMENT)
</span><del>- if (cssBox->isMeter())
- return AccessibilityProgressIndicator::create(toRenderMeter(cssBox));
</del><ins>+ if (is<RenderMeter>(cssBox))
+ return AccessibilityProgressIndicator::create(&downcast<RenderMeter>(cssBox));
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> // input type=range
</span><del>- if (cssBox->isSlider())
- return AccessibilitySlider::create(toRenderSlider(cssBox));
</del><ins>+ if (is<RenderSlider>(cssBox))
+ return AccessibilitySlider::create(&downcast<RenderSlider>(cssBox));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> return AccessibilityRenderObject::create(renderer);
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -75,6 +75,7 @@
</span><span class="cx"> #include "RenderLayer.h"
</span><span class="cx"> #include "RenderLineBreak.h"
</span><span class="cx"> #include "RenderListBox.h"
</span><ins>+#include "RenderListItem.h"
</ins><span class="cx"> #include "RenderListMarker.h"
</span><span class="cx"> #include "RenderMathMLBlock.h"
</span><span class="cx"> #include "RenderMathMLFraction.h"
</span><span class="lines">@@ -148,9 +149,9 @@
</span><span class="cx">
</span><span class="cx"> RenderBoxModelObject* AccessibilityRenderObject::renderBoxModelObject() const
</span><span class="cx"> {
</span><del>- if (!m_renderer || !m_renderer->isBoxModelObject())
</del><ins>+ if (!is<RenderBoxModelObject>(m_renderer))
</ins><span class="cx"> return nullptr;
</span><del>- return toRenderBoxModelObject(m_renderer);
</del><ins>+ return downcast<RenderBoxModelObject>(m_renderer);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void AccessibilityRenderObject::setRenderer(RenderObject* renderer)
</span><span class="lines">@@ -159,16 +160,9 @@
</span><span class="cx"> setNode(renderer->node());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static inline bool isInlineWithContinuation(RenderObject* object)
</del><ins>+static inline bool isInlineWithContinuation(RenderObject& object)
</ins><span class="cx"> {
</span><del>- if (!object->isBoxModelObject())
- return false;
-
- RenderBoxModelObject* renderer = toRenderBoxModelObject(object);
- if (!renderer->isRenderInline())
- return false;
-
- return toRenderInline(renderer)->continuation();
</del><ins>+ return is<RenderInline>(object) && downcast<RenderInline>(object).continuation();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static inline RenderObject* firstChildInContinuation(RenderInline& renderer)
</span><span class="lines">@@ -190,7 +184,7 @@
</span><span class="cx"> {
</span><span class="cx"> RenderObject* firstChild = renderer.firstChildSlow();
</span><span class="cx">
</span><del>- if (!firstChild && isInlineWithContinuation(&renderer))
</del><ins>+ if (!firstChild && isInlineWithContinuation(renderer))
</ins><span class="cx"> firstChild = firstChildInContinuation(downcast<RenderInline>(renderer));
</span><span class="cx">
</span><span class="cx"> return firstChild;
</span><span class="lines">@@ -356,7 +350,7 @@
</span><span class="cx"> static inline bool lastChildHasContinuation(RenderElement& renderer)
</span><span class="cx"> {
</span><span class="cx"> RenderObject* child = renderer.lastChild();
</span><del>- return child && isInlineWithContinuation(child);
</del><ins>+ return child && isInlineWithContinuation(*child);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> AccessibilityObject* AccessibilityRenderObject::nextSibling() const
</span><span class="lines">@@ -388,11 +382,11 @@
</span><span class="cx">
</span><span class="cx"> // Case 4: node is an inline with a continuation. Next sibling is the next sibling of the end
</span><span class="cx"> // of the continuation chain.
</span><del>- else if (isInlineWithContinuation(m_renderer))
</del><ins>+ else if (isInlineWithContinuation(*m_renderer))
</ins><span class="cx"> nextSibling = endOfContinuations(*m_renderer)->nextSibling();
</span><span class="cx">
</span><span class="cx"> // Case 5: node has no next sibling, and its parent is an inline with a continuation.
</span><del>- else if (isInlineWithContinuation(m_renderer->parent())) {
</del><ins>+ else if (isInlineWithContinuation(*m_renderer->parent())) {
</ins><span class="cx"> auto& continuation = *downcast<RenderInline>(*m_renderer->parent()).continuation();
</span><span class="cx">
</span><span class="cx"> // Case 5a: continuation is a block - in this case the block itself is the next sibling.
</span><span class="lines">@@ -1712,9 +1706,9 @@
</span><span class="cx">
</span><span class="cx"> Widget* AccessibilityRenderObject::widget() const
</span><span class="cx"> {
</span><del>- if (!m_renderer->isBoxModelObject() || !toRenderBoxModelObject(m_renderer)->isWidget())
</del><ins>+ if (!is<RenderWidget>(*m_renderer))
</ins><span class="cx"> return nullptr;
</span><del>- return toRenderWidget(m_renderer)->widget();
</del><ins>+ return downcast<RenderWidget>(*m_renderer).widget();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> AccessibilityObject* AccessibilityRenderObject::accessibilityParentForImageMap(HTMLMapElement* map) const
</span><span class="lines">@@ -2377,18 +2371,18 @@
</span><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool AccessibilityRenderObject::renderObjectIsObservable(RenderObject* renderer) const
</del><ins>+bool AccessibilityRenderObject::renderObjectIsObservable(RenderObject& renderer) const
</ins><span class="cx"> {
</span><span class="cx"> // AX clients will listen for AXValueChange on a text control.
</span><del>- if (renderer->isTextControl())
</del><ins>+ if (is<RenderTextControl>(renderer))
</ins><span class="cx"> return true;
</span><span class="cx">
</span><span class="cx"> // AX clients will listen for AXSelectedChildrenChanged on listboxes.
</span><del>- Node* node = renderer->node();
</del><ins>+ Node* node = renderer.node();
</ins><span class="cx"> if (!node)
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- if (nodeHasRole(node, "listbox") || (renderer->isBoxModelObject() && toRenderBoxModelObject(renderer)->isListBox()))
</del><ins>+ if (nodeHasRole(node, "listbox") || (is<RenderBoxModelObject>(renderer) && downcast<RenderBoxModelObject>(renderer).isListBox()))
</ins><span class="cx"> return true;
</span><span class="cx">
</span><span class="cx"> // Textboxes should send out notifications.
</span><span class="lines">@@ -2402,7 +2396,7 @@
</span><span class="cx"> {
</span><span class="cx"> // Find the object going up the parent chain that is used in accessibility to monitor certain notifications.
</span><span class="cx"> for (RenderObject* renderer = m_renderer; renderer && renderer->node(); renderer = renderer->parent()) {
</span><del>- if (renderObjectIsObservable(renderer)) {
</del><ins>+ if (renderObjectIsObservable(*renderer)) {
</ins><span class="cx"> if (AXObjectCache* cache = axObjectCache())
</span><span class="cx"> return cache->getOrCreate(renderer);
</span><span class="cx"> }
</span><span class="lines">@@ -3419,10 +3413,10 @@
</span><span class="cx"> if (!renderer)
</span><span class="cx"> return UnknownRole;
</span><span class="cx">
</span><del>- if (renderer->isText())
</del><ins>+ if (is<RenderText>(*renderer))
</ins><span class="cx"> return EditableTextRole;
</span><span class="cx">
</span><del>- if (renderer->isBoxModelObject() && toRenderBoxModelObject(renderer)->isListItem())
</del><ins>+ if (is<RenderListItem>(*renderer))
</ins><span class="cx"> return ListItemRole;
</span><span class="cx">
</span><span class="cx"> return UnknownRole;
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityRenderObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.h (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.h        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.h        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -247,7 +247,7 @@
</span><span class="cx"> AccessibilityObject* accessibilityParentForImageMap(HTMLMapElement*) const;
</span><span class="cx"> virtual AccessibilityObject* elementAccessibilityHitTest(const IntPoint&) const override;
</span><span class="cx">
</span><del>- bool renderObjectIsObservable(RenderObject*) const;
</del><ins>+ bool renderObjectIsObservable(RenderObject&) const;
</ins><span class="cx"> RenderObject* renderParentObject() const;
</span><span class="cx"> bool isDescendantOfElementType(const QualifiedName& tagName) const;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityTablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityTable.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityTable.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/accessibility/AccessibilityTable.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -259,13 +259,13 @@
</span><span class="cx">
</span><span class="cx"> // For the first 5 rows, cache the background color so we can check if this table has zebra-striped rows.
</span><span class="cx"> if (row < 5 && row == alternatingRowColorCount) {
</span><del>- RenderObject* renderRow = cell->parent();
- if (!renderRow || !renderRow->isBoxModelObject() || !toRenderBoxModelObject(renderRow)->isTableRow())
</del><ins>+ RenderElement* renderRow = cell->parent();
+ if (!is<RenderTableRow>(renderRow))
</ins><span class="cx"> continue;
</span><span class="cx"> const RenderStyle& rowRenderStyle = renderRow->style();
</span><span class="cx"> Color rowColor = rowRenderStyle.visitedDependentColor(CSSPropertyBackgroundColor);
</span><span class="cx"> alternatingRowColors[alternatingRowColorCount] = rowColor;
</span><del>- alternatingRowColorCount++;
</del><ins>+ ++alternatingRowColorCount;
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Node.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Node.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/dom/Node.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -629,13 +629,13 @@
</span><span class="cx"> RenderBox* Node::renderBox() const
</span><span class="cx"> {
</span><span class="cx"> RenderObject* renderer = this->renderer();
</span><del>- return renderer && renderer->isBox() ? toRenderBox(renderer) : 0;
</del><ins>+ return is<RenderBox>(renderer) ? downcast<RenderBox>(renderer) : nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> RenderBoxModelObject* Node::renderBoxModelObject() const
</span><span class="cx"> {
</span><span class="cx"> RenderObject* renderer = this->renderer();
</span><del>- return renderer && renderer->isBoxModelObject() ? toRenderBoxModelObject(renderer) : 0;
</del><ins>+ return is<RenderBoxModelObject>(renderer) ? downcast<RenderBoxModelObject>(renderer) : nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> LayoutRect Node::boundingBox() const
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorOverlaycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorOverlay.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorOverlay.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/inspector/InspectorOverlay.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -706,7 +706,7 @@
</span><span class="cx"> Frame* containingFrame = node->document().frame();
</span><span class="cx"> FrameView* containingView = containingFrame->view();
</span><span class="cx"> IntRect boundingBox = snappedIntRect(containingView->contentsToRootView(renderer->absoluteBoundingBoxRect()));
</span><del>- RenderBoxModelObject* modelObject = renderer->isBoxModelObject() ? toRenderBoxModelObject(renderer) : nullptr;
</del><ins>+ RenderBoxModelObject* modelObject = is<RenderBoxModelObject>(*renderer) ? downcast<RenderBoxModelObject>(renderer) : nullptr;
</ins><span class="cx"> elementInfo->setString("nodeWidth", String::number(modelObject ? adjustForAbsoluteZoom(modelObject->pixelSnappedOffsetWidth(), *modelObject) : boundingBox.width()));
</span><span class="cx"> elementInfo->setString("nodeHeight", String::number(modelObject ? adjustForAbsoluteZoom(modelObject->pixelSnappedOffsetHeight(), *modelObject) : boundingBox.height()));
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameView.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameView.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/page/FrameView.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -1782,7 +1782,7 @@
</span><span class="cx">
</span><span class="cx"> // Fixed items should always have layers.
</span><span class="cx"> ASSERT(renderer->hasLayer());
</span><del>- RenderLayer* layer = toRenderBoxModelObject(renderer)->layer();
</del><ins>+ RenderLayer* layer = downcast<RenderBoxModelObject>(*renderer).layer();
</ins><span class="cx">
</span><span class="cx"> if (layer->viewportConstrainedNotCompositedReason() == RenderLayer::NotCompositedForBoundsOutOfView
</span><span class="cx"> || layer->viewportConstrainedNotCompositedReason() == RenderLayer::NotCompositedForNoVisibleContent) {
</span></span></pre></div>
<a id="trunkSourceWebCorepagePrintContextcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PrintContext.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PrintContext.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/page/PrintContext.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -225,11 +225,11 @@
</span><span class="cx"> static RenderBoxModelObject* enclosingBoxModelObject(RenderObject* object)
</span><span class="cx"> {
</span><span class="cx">
</span><del>- while (object && !object->isBoxModelObject())
</del><ins>+ while (object && !is<RenderBoxModelObject>(*object))
</ins><span class="cx"> object = object->parent();
</span><span class="cx"> if (!object)
</span><del>- return 0;
- return toRenderBoxModelObject(object);
</del><ins>+ return nullptr;
+ return downcast<RenderBoxModelObject>(object);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> int PrintContext::pageNumberForElement(Element* element, const FloatSize& pageSizeInPixels)
</span></span></pre></div>
<a id="trunkSourceWebCorepageanimationAnimationBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/animation/AnimationBase.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/AnimationBase.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/page/animation/AnimationBase.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -658,7 +658,7 @@
</span><span class="cx"> m_pauseTime = m_startTime + t - m_animation->delay();
</span><span class="cx">
</span><span class="cx"> if (m_object && m_object->isComposited())
</span><del>- toRenderBoxModelObject(m_object)->suspendAnimations(m_pauseTime);
</del><ins>+ downcast<RenderBoxModelObject>(*m_object).suspendAnimations(m_pauseTime);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> double AnimationBase::beginAnimationUpdateTime() const
</span></span></pre></div>
<a id="trunkSourceWebCorepageanimationImplicitAnimationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/animation/ImplicitAnimation.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/ImplicitAnimation.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/page/animation/ImplicitAnimation.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx"> bool ImplicitAnimation::startAnimation(double timeOffset)
</span><span class="cx"> {
</span><span class="cx"> if (m_object && m_object->isComposited())
</span><del>- return toRenderBoxModelObject(m_object)->startTransition(timeOffset, m_animatingProperty, m_fromStyle.get(), m_toStyle.get());
</del><ins>+ return downcast<RenderBoxModelObject>(*m_object).startTransition(timeOffset, m_animatingProperty, m_fromStyle.get(), m_toStyle.get());
</ins><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> if (m_object->isComposited())
</span><del>- toRenderBoxModelObject(m_object)->transitionPaused(timeOffset, m_animatingProperty);
</del><ins>+ downcast<RenderBoxModelObject>(*m_object).transitionPaused(timeOffset, m_animatingProperty);
</ins><span class="cx"> // Restore the original (unanimated) style
</span><span class="cx"> if (!paused())
</span><span class="cx"> setNeedsStyleRecalc(m_object->element());
</span><span class="lines">@@ -121,7 +121,7 @@
</span><span class="cx"> void ImplicitAnimation::endAnimation()
</span><span class="cx"> {
</span><span class="cx"> if (m_object && m_object->isComposited())
</span><del>- toRenderBoxModelObject(m_object)->transitionFinished(m_animatingProperty);
</del><ins>+ downcast<RenderBoxModelObject>(*m_object).transitionFinished(m_animatingProperty);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void ImplicitAnimation::onAnimationEnd(double elapsedTime)
</span></span></pre></div>
<a id="trunkSourceWebCorepageanimationKeyframeAnimationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/animation/KeyframeAnimation.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/animation/KeyframeAnimation.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/page/animation/KeyframeAnimation.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -205,9 +205,8 @@
</span><span class="cx">
</span><span class="cx"> bool KeyframeAnimation::startAnimation(double timeOffset)
</span><span class="cx"> {
</span><del>- if (m_object && m_object->isComposited()) {
- return toRenderBoxModelObject(m_object)->startAnimation(timeOffset, m_animation.get(), m_keyframes);
- }
</del><ins>+ if (m_object && m_object->isComposited())
+ return downcast<RenderBoxModelObject>(*m_object).startAnimation(timeOffset, m_animation.get(), m_keyframes);
</ins><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -217,7 +216,7 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> if (m_object->isComposited())
</span><del>- toRenderBoxModelObject(m_object)->animationPaused(timeOffset, m_keyframes.animationName());
</del><ins>+ downcast<RenderBoxModelObject>(*m_object).animationPaused(timeOffset, m_keyframes.animationName());
</ins><span class="cx">
</span><span class="cx"> // Restore the original (unanimated) style
</span><span class="cx"> if (!paused())
</span><span class="lines">@@ -230,7 +229,7 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> if (m_object->isComposited())
</span><del>- toRenderBoxModelObject(m_object)->animationFinished(m_keyframes.animationName());
</del><ins>+ downcast<RenderBoxModelObject>(*m_object).animationFinished(m_keyframes.animationName());
</ins><span class="cx">
</span><span class="cx"> // Restore the original (unanimated) style
</span><span class="cx"> if (!paused())
</span></span></pre></div>
<a id="trunkSourceWebCorepageiosFrameIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ios/FrameIOS.mm (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ios/FrameIOS.mm        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/page/ios/FrameIOS.mm        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -853,12 +853,12 @@
</span><span class="cx"> if (!renderer || !renderer->hasLayer())
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- RenderLayer* layer = toRenderBoxModelObject(renderer)->layer();
</del><ins>+ RenderLayer& layer = *downcast<RenderBoxModelObject>(*renderer).layer();
</ins><span class="cx">
</span><del>- layer->setIsUserScroll(isUserScroll);
- layer->scrollToOffsetWithoutAnimation(position);
- layer->setIsUserScroll(false);
- layer->didEndScroll(); // FIXME: Should we always call this?
</del><ins>+ layer.setIsUserScroll(isUserScroll);
+ layer.scrollToOffsetWithoutAnimation(position);
+ layer.setIsUserScroll(false);
+ layer.didEndScroll(); // FIXME: Should we always call this?
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Frame::resetAllGeolocationPermission()
</span></span></pre></div>
<a id="trunkSourceWebCorepagescrollingScrollingCoordinatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -310,12 +310,12 @@
</span><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> for (FrameView::ViewportConstrainedObjectSet::const_iterator it = viewportConstrainedObjects->begin(), end = viewportConstrainedObjects->end(); it != end; ++it) {
</span><del>- RenderObject* viewportConstrainedObject = *it;
- if (!viewportConstrainedObject->isBoxModelObject() || !viewportConstrainedObject->hasLayer())
</del><ins>+ RenderObject& viewportConstrainedObject = **it;
+ if (!is<RenderBoxModelObject>(viewportConstrainedObject) || !viewportConstrainedObject.hasLayer())
</ins><span class="cx"> return true;
</span><del>- RenderLayer* layer = toRenderBoxModelObject(viewportConstrainedObject)->layer();
</del><ins>+ RenderLayer& layer = *downcast<RenderBoxModelObject>(viewportConstrainedObject).layer();
</ins><span class="cx"> // Any explicit reason that a fixed position element is not composited shouldn't cause slow scrolling.
</span><del>- if (!layer->isComposited() && layer->viewportConstrainedNotCompositedReason() == RenderLayer::NoNotCompositedReason)
</del><ins>+ if (!layer.isComposited() && layer.viewportConstrainedNotCompositedReason() == RenderLayer::NoNotCompositedReason)
</ins><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx"> return false;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineBox.h (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineBox.h        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/rendering/InlineBox.h        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -22,6 +22,7 @@
</span><span class="cx"> #define InlineBox_h
</span><span class="cx">
</span><span class="cx"> #include "RenderBoxModelObject.h"
</span><ins>+#include "RenderText.h"
</ins><span class="cx"> #include "TextDirection.h"
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -252,9 +253,9 @@
</span><span class="cx"> // Use with caution! The type is not checked!
</span><span class="cx"> RenderBoxModelObject* boxModelObject() const
</span><span class="cx"> {
</span><del>- if (!m_renderer.isText())
- return &toRenderBoxModelObject(m_renderer);
- return 0;
</del><ins>+ if (!is<RenderText>(m_renderer))
+ return &downcast<RenderBoxModelObject>(m_renderer);
+ return nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> FloatPoint locationIncludingFlipping();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineElementBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineElementBox.h (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineElementBox.h        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/rendering/InlineElementBox.h        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -42,7 +42,7 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>- RenderBoxModelObject& renderer() const { return toRenderBoxModelObject(InlineBox::renderer()); }
</del><ins>+ RenderBoxModelObject& renderer() const { return downcast<RenderBoxModelObject>(InlineBox::renderer()); }
</ins><span class="cx">
</span><span class="cx"> virtual void deleteLine() override;
</span><span class="cx"> virtual void extractLine() override;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineFlowBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineFlowBox.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineFlowBox.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/rendering/InlineFlowBox.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -655,7 +655,7 @@
</span><span class="cx"> const FontMetrics& fontMetrics = childLineStyle.fontMetrics();
</span><span class="cx"> newLogicalTop += curr->baselinePosition(baselineType) - fontMetrics.ascent(baselineType);
</span><span class="cx"> if (curr->isInlineFlowBox()) {
</span><del>- RenderBoxModelObject& boxObject = toRenderBoxModelObject(curr->renderer());
</del><ins>+ RenderBoxModelObject& boxObject = downcast<RenderBoxModelObject>(curr->renderer());
</ins><span class="cx"> newLogicalTop -= childLineStyle.isHorizontalWritingMode()
</span><span class="cx"> ? boxObject.borderTop() + boxObject.paddingTop()
</span><span class="cx"> : boxObject.borderRight() + boxObject.paddingRight();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineFlowBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineFlowBox.h (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineFlowBox.h        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/rendering/InlineFlowBox.h        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -75,7 +75,7 @@
</span><span class="cx"> virtual const char* boxName() const override;
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- RenderBoxModelObject& renderer() const { return toRenderBoxModelObject(InlineBox::renderer()); }
</del><ins>+ RenderBoxModelObject& renderer() const { return downcast<RenderBoxModelObject>(InlineBox::renderer()); }
</ins><span class="cx"> const RenderStyle& lineStyle() const { return isFirstLine() ? renderer().firstLineStyle() : renderer().style(); }
</span><span class="cx">
</span><span class="cx"> InlineFlowBox* prevLineBox() const { return m_prevLineBox; }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingInlineTextBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/InlineTextBox.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/InlineTextBox.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/rendering/InlineTextBox.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -169,7 +169,7 @@
</span><span class="cx"> return 0;
</span><span class="cx"> if (&parent()->renderer() == renderer().parent())
</span><span class="cx"> return parent()->baselinePosition(baselineType);
</span><del>- return toRenderBoxModelObject(renderer().parent())->baselinePosition(baselineType, isFirstLine(), isHorizontal() ? HorizontalLine : VerticalLine, PositionOnContainingLine);
</del><ins>+ return downcast<RenderBoxModelObject>(*renderer().parent()).baselinePosition(baselineType, isFirstLine(), isHorizontal() ? HorizontalLine : VerticalLine, PositionOnContainingLine);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> LayoutUnit InlineTextBox::lineHeight() const
</span><span class="lines">@@ -178,7 +178,7 @@
</span><span class="cx"> return 0;
</span><span class="cx"> if (&parent()->renderer() == renderer().parent())
</span><span class="cx"> return parent()->lineHeight();
</span><del>- return toRenderBoxModelObject(renderer().parent())->lineHeight(isFirstLine(), isHorizontal() ? HorizontalLine : VerticalLine, PositionOnContainingLine);
</del><ins>+ return downcast<RenderBoxModelObject>(*renderer().parent()).lineHeight(isFirstLine(), isHorizontal() ? HorizontalLine : VerticalLine, PositionOnContainingLine);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> LayoutUnit InlineTextBox::selectionTop() const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -353,14 +353,14 @@
</span><span class="cx"> void RenderBlock::addChildToContinuation(RenderObject* newChild, RenderObject* beforeChild)
</span><span class="cx"> {
</span><span class="cx"> RenderBlock* flow = continuationBefore(beforeChild);
</span><del>- ASSERT(!beforeChild || beforeChild->parent()->isRenderBlock());
- RenderBoxModelObject* beforeChildParent = 0;
</del><ins>+ ASSERT(!beforeChild || is<RenderBlock>(*beforeChild->parent()));
+ RenderBoxModelObject* beforeChildParent = nullptr;
</ins><span class="cx"> if (beforeChild)
</span><del>- beforeChildParent = toRenderBoxModelObject(beforeChild->parent());
</del><ins>+ beforeChildParent = downcast<RenderBoxModelObject>(beforeChild->parent());
</ins><span class="cx"> else {
</span><del>- RenderBoxModelObject* cont = flow->continuation();
- if (cont)
- beforeChildParent = cont;
</del><ins>+ RenderBoxModelObject* continuation = flow->continuation();
+ if (continuation)
+ beforeChildParent = continuation;
</ins><span class="cx"> else
</span><span class="cx"> beforeChildParent = flow;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -2904,7 +2904,7 @@
</span><span class="cx"> // FIXME: containingBlockLogicalWidthForContent() is wrong if the replaced element's block-flow is perpendicular to the
</span><span class="cx"> // containing block's block-flow.
</span><span class="cx"> // https://bugs.webkit.org/show_bug.cgi?id=46496
</span><del>- const LayoutUnit cw = isOutOfFlowPositioned() ? containingBlockLogicalWidthForPositioned(toRenderBoxModelObject(container())) : containingBlockLogicalWidthForContent();
</del><ins>+ const LayoutUnit cw = isOutOfFlowPositioned() ? containingBlockLogicalWidthForPositioned(downcast<RenderBoxModelObject>(container())) : containingBlockLogicalWidthForContent();
</ins><span class="cx"> Length containerLogicalWidth = containingBlock()->style().logicalWidth();
</span><span class="cx"> // FIXME: Handle cases when containing block width is calculated or viewport percent.
</span><span class="cx"> // https://bugs.webkit.org/show_bug.cgi?id=91071
</span><span class="lines">@@ -2969,7 +2969,7 @@
</span><span class="cx"> // https://bugs.webkit.org/show_bug.cgi?id=46496
</span><span class="cx"> LayoutUnit availableHeight;
</span><span class="cx"> if (isOutOfFlowPositioned())
</span><del>- availableHeight = containingBlockLogicalHeightForPositioned(toRenderBoxModelObject(cb));
</del><ins>+ availableHeight = containingBlockLogicalHeightForPositioned(downcast<RenderBoxModelObject>(cb));
</ins><span class="cx"> else {
</span><span class="cx"> availableHeight = containingBlockLogicalHeightForContent(IncludeMarginBorderPadding);
</span><span class="cx"> // It is necessary to use the border-box to match WinIE's broken
</span><span class="lines">@@ -3248,7 +3248,7 @@
</span><span class="cx">
</span><span class="cx"> // We don't use containingBlock(), since we may be positioned by an enclosing
</span><span class="cx"> // relative positioned inline.
</span><del>- const RenderBoxModelObject* containerBlock = toRenderBoxModelObject(container());
</del><ins>+ const RenderBoxModelObject* containerBlock = downcast<RenderBoxModelObject>(container());
</ins><span class="cx">
</span><span class="cx"> const LayoutUnit containerLogicalWidth = containingBlockLogicalWidthForPositioned(containerBlock, region);
</span><span class="cx">
</span><span class="lines">@@ -3576,7 +3576,7 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> // We don't use containingBlock(), since we may be positioned by an enclosing relpositioned inline.
</span><del>- const RenderBoxModelObject* containerBlock = toRenderBoxModelObject(container());
</del><ins>+ const RenderBoxModelObject* containerBlock = downcast<RenderBoxModelObject>(container());
</ins><span class="cx">
</span><span class="cx"> const LayoutUnit containerLogicalHeight = containingBlockLogicalHeightForPositioned(containerBlock);
</span><span class="cx">
</span><span class="lines">@@ -3829,10 +3829,10 @@
</span><span class="cx">
</span><span class="cx"> // We don't use containingBlock(), since we may be positioned by an enclosing
</span><span class="cx"> // relative positioned inline.
</span><del>- const RenderBoxModelObject* containerBlock = toRenderBoxModelObject(container());
</del><ins>+ const RenderBoxModelObject* containerBlock = downcast<RenderBoxModelObject>(container());
</ins><span class="cx">
</span><span class="cx"> const LayoutUnit containerLogicalWidth = containingBlockLogicalWidthForPositioned(containerBlock);
</span><del>- const LayoutUnit containerRelativeLogicalWidth = containingBlockLogicalWidthForPositioned(containerBlock, 0, false);
</del><ins>+ const LayoutUnit containerRelativeLogicalWidth = containingBlockLogicalWidthForPositioned(containerBlock, nullptr, false);
</ins><span class="cx">
</span><span class="cx"> // To match WinIE, in quirks mode use the parent's 'direction' property
</span><span class="cx"> // instead of the the container block's.
</span><span class="lines">@@ -3997,10 +3997,10 @@
</span><span class="cx"> // the numbers correspond to numbers in spec)
</span><span class="cx">
</span><span class="cx"> // We don't use containingBlock(), since we may be positioned by an enclosing relpositioned inline.
</span><del>- const RenderBoxModelObject* containerBlock = toRenderBoxModelObject(container());
</del><ins>+ const RenderBoxModelObject* containerBlock = downcast<RenderBoxModelObject>(container());
</ins><span class="cx">
</span><span class="cx"> const LayoutUnit containerLogicalHeight = containingBlockLogicalHeightForPositioned(containerBlock);
</span><del>- const LayoutUnit containerRelativeLogicalWidth = containingBlockLogicalWidthForPositioned(containerBlock, 0, false);
</del><ins>+ const LayoutUnit containerRelativeLogicalWidth = containingBlockLogicalWidthForPositioned(containerBlock, nullptr, false);
</ins><span class="cx">
</span><span class="cx"> // Variables to solve.
</span><span class="cx"> Length marginBefore = style().marginBefore();
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxModelObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.h (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBoxModelObject.h        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.h        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -339,8 +339,6 @@
</span><span class="cx"> void pixelSnapBackgroundImageGeometryForPainting(BackgroundImageGeometry&) const;
</span><span class="cx"> };
</span><span class="cx">
</span><del>-RENDER_OBJECT_TYPE_CASTS(RenderBoxModelObject, isBoxModelObject())
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><span class="cx"> SPECIALIZE_TYPE_TRAITS_RENDER_OBJECT(RenderBoxModelObject, isBoxModelObject())
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderFlowThreadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderFlowThread.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderFlowThread.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/rendering/RenderFlowThread.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -432,7 +432,7 @@
</span><span class="cx"> RenderRegion* startRegion = regionAtBlockOffset(objContainingBlock, referencePoint.y());
</span><span class="cx"> if (startRegion) {
</span><span class="cx"> // Take into account the offset coordinates of the region.
</span><del>- RenderBoxModelObject* startRegionBox = startRegion->isRenderNamedFlowFragment() ? toRenderBoxModelObject(startRegion->parent()) : startRegion;
</del><ins>+ RenderBoxModelObject* startRegionBox = is<RenderNamedFlowFragment>(*startRegion) ? downcast<RenderBoxModelObject>(startRegion->parent()) : startRegion;
</ins><span class="cx"> RenderBoxModelObject* currObject = startRegionBox;
</span><span class="cx"> RenderBoxModelObject* currOffsetParent;
</span><span class="cx"> while ((currOffsetParent = currObject->offsetParent())) {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderInlinecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderInline.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderInline.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/rendering/RenderInline.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -368,10 +368,10 @@
</span><span class="cx">
</span><span class="cx"> // Now take all of the children from beforeChild to the end and remove
</span><span class="cx"> // them from |this| and place them in the clone.
</span><del>- RenderObject* o = beforeChild;
- while (o) {
- RenderObject* tmp = o;
- o = tmp->nextSibling();
</del><ins>+ RenderObject* renderer = beforeChild;
+ while (renderer) {
+ RenderObject* tmp = renderer;
+ renderer = tmp->nextSibling();
</ins><span class="cx"> removeChildInternal(*tmp, NotifyChildren);
</span><span class="cx"> cloneInline->addChildIgnoringContinuation(tmp);
</span><span class="cx"> tmp->setNeedsLayoutAndPrefWidthsRecalc();
</span><span class="lines">@@ -383,8 +383,8 @@
</span><span class="cx"> // We have been reparented and are now under the fromBlock. We need
</span><span class="cx"> // to walk up our inline parent chain until we hit the containing block.
</span><span class="cx"> // Once we hit the containing block we're done.
</span><del>- RenderBoxModelObject* curr = toRenderBoxModelObject(parent());
- RenderBoxModelObject* currChild = this;
</del><ins>+ RenderBoxModelObject* current = downcast<RenderBoxModelObject>(parent());
+ RenderBoxModelObject* currentChild = this;
</ins><span class="cx">
</span><span class="cx"> // FIXME: Because splitting is O(n^2) as tags nest pathologically, we cap the depth at which we're willing to clone.
</span><span class="cx"> // There will eventually be a better approach to this problem that will let us nest to a much
</span><span class="lines">@@ -392,49 +392,48 @@
</span><span class="cx"> // incorrect rendering, but the alternative is to hang forever.
</span><span class="cx"> unsigned splitDepth = 1;
</span><span class="cx"> const unsigned cMaxSplitDepth = 200;
</span><del>- while (curr && curr != fromBlock) {
- ASSERT(curr->isRenderInline());
</del><ins>+ while (current && current != fromBlock) {
</ins><span class="cx"> if (splitDepth < cMaxSplitDepth) {
</span><span class="cx"> // Create a new clone.
</span><span class="cx"> RenderPtr<RenderInline> cloneChild = WTF::move(cloneInline);
</span><del>- cloneInline = toRenderInline(curr)->clone();
</del><ins>+ cloneInline = downcast<RenderInline>(*current).clone();
</ins><span class="cx">
</span><span class="cx"> // Insert our child clone as the first child.
</span><span class="cx"> cloneInline->addChildIgnoringContinuation(cloneChild.leakPtr());
</span><span class="cx">
</span><span class="cx"> // Hook the clone up as a continuation of |curr|.
</span><del>- RenderInline* inlineCurr = toRenderInline(curr);
- oldCont = inlineCurr->continuation();
- inlineCurr->setContinuation(cloneInline.get());
</del><ins>+ RenderInline& currentInline = downcast<RenderInline>(*current);
+ oldCont = currentInline.continuation();
+ currentInline.setContinuation(cloneInline.get());
</ins><span class="cx"> cloneInline->setContinuation(oldCont);
</span><span class="cx">
</span><span class="cx"> // Now we need to take all of the children starting from the first child
</span><del>- // *after* currChild and append them all to the clone.
- o = currChild->nextSibling();
- while (o) {
- RenderObject* tmp = o;
- o = tmp->nextSibling();
- inlineCurr->removeChildInternal(*tmp, NotifyChildren);
</del><ins>+ // *after* currentChild and append them all to the clone.
+ renderer = currentChild->nextSibling();
+ while (renderer) {
+ RenderObject* tmp = renderer;
+ renderer = tmp->nextSibling();
+ currentInline.removeChildInternal(*tmp, NotifyChildren);
</ins><span class="cx"> cloneInline->addChildIgnoringContinuation(tmp);
</span><span class="cx"> tmp->setNeedsLayoutAndPrefWidthsRecalc();
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Keep walking up the chain.
</span><del>- currChild = curr;
- curr = toRenderBoxModelObject(curr->parent());
- splitDepth++;
</del><ins>+ currentChild = current;
+ current = downcast<RenderBoxModelObject>(current->parent());
+ ++splitDepth;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Now we are at the block level. We need to put the clone into the toBlock.
</span><span class="cx"> toBlock->insertChildInternal(cloneInline.leakPtr(), nullptr, NotifyChildren);
</span><span class="cx">
</span><del>- // Now take all the children after currChild and remove them from the fromBlock
</del><ins>+ // Now take all the children after currentChild and remove them from the fromBlock
</ins><span class="cx"> // and put them in the toBlock.
</span><del>- o = currChild->nextSibling();
- while (o) {
- RenderObject* tmp = o;
- o = tmp->nextSibling();
</del><ins>+ renderer = currentChild->nextSibling();
+ while (renderer) {
+ RenderObject* tmp = renderer;
+ renderer = tmp->nextSibling();
</ins><span class="cx"> fromBlock->removeChildInternal(*tmp, NotifyChildren);
</span><span class="cx"> toBlock->insertChildInternal(tmp, nullptr, NotifyChildren);
</span><span class="cx"> }
</span><span class="lines">@@ -508,14 +507,13 @@
</span><span class="cx"> void RenderInline::addChildToContinuation(RenderObject* newChild, RenderObject* beforeChild)
</span><span class="cx"> {
</span><span class="cx"> RenderBoxModelObject* flow = continuationBefore(beforeChild);
</span><del>- ASSERT(!beforeChild || beforeChild->parent()->isRenderBlock() || beforeChild->parent()->isRenderInline());
- RenderBoxModelObject* beforeChildParent = 0;
</del><ins>+ ASSERT(!beforeChild || is<RenderBlock>(*beforeChild->parent()) || is<RenderInline>(*beforeChild->parent()));
+ RenderBoxModelObject* beforeChildParent = nullptr;
</ins><span class="cx"> if (beforeChild)
</span><del>- beforeChildParent = toRenderBoxModelObject(beforeChild->parent());
</del><ins>+ beforeChildParent = downcast<RenderBoxModelObject>(beforeChild->parent());
</ins><span class="cx"> else {
</span><del>- RenderBoxModelObject* cont = nextContinuation(flow);
- if (cont)
- beforeChildParent = cont;
</del><ins>+ if (RenderBoxModelObject* continuation = nextContinuation(flow))
+ beforeChildParent = continuation;
</ins><span class="cx"> else
</span><span class="cx"> beforeChildParent = flow;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -1251,7 +1251,7 @@
</span><span class="cx">
</span><span class="cx"> bool positionOrOffsetChanged = false;
</span><span class="cx"> if (renderer().isInFlowPositioned()) {
</span><del>- LayoutSize newOffset = toRenderBoxModelObject(renderer()).offsetForInFlowPosition();
</del><ins>+ LayoutSize newOffset = downcast<RenderBoxModelObject>(renderer()).offsetForInFlowPosition();
</ins><span class="cx"> positionOrOffsetChanged = newOffset != m_offsetForInFlowPosition;
</span><span class="cx"> m_offsetForInFlowPosition = newOffset;
</span><span class="cx"> localPoint.move(m_offsetForInFlowPosition);
</span><span class="lines">@@ -5404,10 +5404,10 @@
</span><span class="cx"> foregroundRect = backgroundRect;
</span><span class="cx"> outlineRect = backgroundRect;
</span><span class="cx">
</span><del>- RenderFlowThread* flowThread = namedFlowFragment ? namedFlowFragment->flowThread() : 0;
</del><ins>+ RenderFlowThread* flowThread = namedFlowFragment ? namedFlowFragment->flowThread() : nullptr;
</ins><span class="cx"> if (isSelfPaintingLayer() && flowThread && !renderer().isInFlowRenderFlowThread()) {
</span><span class="cx"> ASSERT(namedFlowFragment->isValid());
</span><del>- const RenderBoxModelObject& boxModelObject = toRenderBoxModelObject(renderer());
</del><ins>+ const RenderBoxModelObject& boxModelObject = downcast<RenderBoxModelObject>(renderer());
</ins><span class="cx"> LayoutRect layerBoundsWithVisualOverflow = namedFlowFragment->visualOverflowRectForBox(&boxModelObject);
</span><span class="cx">
</span><span class="cx"> // Layers are in physical coordinates so the origin must be moved to the physical top-left of the flowthread.
</span><span class="lines">@@ -5593,7 +5593,7 @@
</span><span class="cx"> // to the flow thread, not the last region (in which it will end up because of bottom:0px)
</span><span class="cx"> if (namedFlowFragment && renderer().flowThreadContainingBlock()) {
</span><span class="cx"> LayoutRect b = layerBounds;
</span><del>- b.moveBy(namedFlowFragment->visualOverflowRectForBox(toRenderBoxModelObject(&renderer())).location());
</del><ins>+ b.moveBy(namedFlowFragment->visualOverflowRectForBox(downcast<RenderBoxModelObject>(&renderer())).location());
</ins><span class="cx"> b.inflate(renderer().view().maximalOutlineSize());
</span><span class="cx"> if (b.intersects(damageRect))
</span><span class="cx"> return true;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerBackingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -988,7 +988,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Move the ancestor position at the top of the region where the composited layer is going to display.
</span><del>- RenderFlowThread& flowThread = toRenderFlowThread(flowThreadLayer->renderer());
</del><ins>+ RenderFlowThread& flowThread = downcast<RenderFlowThread>(flowThreadLayer->renderer());
</ins><span class="cx"> RenderNamedFlowFragment* parentRegion = flowThread.cachedRegionForCompositedLayer(m_owningLayer);
</span><span class="cx"> if (!parentRegion)
</span><span class="cx"> return;
</span><span class="lines">@@ -996,7 +996,7 @@
</span><span class="cx"> IntPoint flowDelta;
</span><span class="cx"> m_owningLayer.convertToPixelSnappedLayerCoords(flowThreadLayer, flowDelta);
</span><span class="cx"> parentRegion->adjustRegionBoundsFromFlowThreadPortionRect(ancestorCompositingBounds);
</span><del>- RenderBoxModelObject& layerOwner = toRenderBoxModelObject(parentRegion->layerOwner());
</del><ins>+ RenderBoxModelObject& layerOwner = downcast<RenderBoxModelObject>(parentRegion->layerOwner());
</ins><span class="cx"> RenderLayerBacking* layerOwnerBacking = layerOwner.layer()->backing();
</span><span class="cx"> if (!layerOwnerBacking)
</span><span class="cx"> return;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerCompositorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -2558,7 +2558,7 @@
</span><span class="cx">
</span><span class="cx"> bool RenderLayerCompositor::requiresCompositingForIndirectReason(RenderLayerModelObject& renderer, bool hasCompositedDescendants, bool has3DTransformedDescendants, RenderLayer::IndirectCompositingReason& reason) const
</span><span class="cx"> {
</span><del>- RenderLayer& layer = *toRenderBoxModelObject(renderer).layer();
</del><ins>+ RenderLayer& layer = *downcast<RenderBoxModelObject>(renderer).layer();
</ins><span class="cx">
</span><span class="cx"> // When a layer has composited descendants, some effects, like 2d transforms, filters, masks etc must be implemented
</span><span class="cx"> // via compositing so that they also apply to those composited descendants.
</span><span class="lines">@@ -3653,7 +3653,7 @@
</span><span class="cx"> ASSERT(!layer.enclosingOverflowClipLayer(ExcludeSelf));
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- RenderBoxModelObject& renderer = toRenderBoxModelObject(layer.renderer());
</del><ins>+ RenderBoxModelObject& renderer = downcast<RenderBoxModelObject>(layer.renderer());
</ins><span class="cx">
</span><span class="cx"> StickyPositionViewportConstraints constraints;
</span><span class="cx"> renderer.computeStickyPositionConstraints(constraints, renderer.constrainingRectForStickyPosition());
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderObject.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -2124,7 +2124,7 @@
</span><span class="cx"> {
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> if (hasLayer())
</span><del>- toRenderBoxModelObject(this)->layer()->willBeDestroyed();
</del><ins>+ downcast<RenderBoxModelObject>(*this).layer()->willBeDestroyed();
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> willBeDestroyed();
</span><span class="lines">@@ -2424,7 +2424,7 @@
</span><span class="cx"> // A is the HTML body element.
</span><span class="cx"> // The computed value of the position property for element A is fixed.
</span><span class="cx"> if (isRoot() || isBody() || (isOutOfFlowPositioned() && style().position() == FixedPosition))
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx">
</span><span class="cx"> // If A is an area HTML element which has a map HTML element somewhere in the ancestor
</span><span class="cx"> // chain return the nearest ancestor map HTML element and stop this algorithm.
</span><span class="lines">@@ -2440,24 +2440,24 @@
</span><span class="cx">
</span><span class="cx"> bool skipTables = isPositioned();
</span><span class="cx"> float currZoom = style().effectiveZoom();
</span><del>- auto curr = parent();
- while (curr && (!curr->element() || (!curr->isPositioned() && !curr->isBody())) && !curr->isRenderNamedFlowThread()) {
- Element* element = curr->element();
</del><ins>+ auto current = parent();
+ while (current && (!current->element() || (!current->isPositioned() && !current->isBody())) && !is<RenderNamedFlowThread>(*current)) {
+ Element* element = current->element();
</ins><span class="cx"> if (!skipTables && element && (is<HTMLTableElement>(*element) || is<HTMLTableCellElement>(*element)))
</span><span class="cx"> break;
</span><span class="cx">
</span><del>- float newZoom = curr->style().effectiveZoom();
</del><ins>+ float newZoom = current->style().effectiveZoom();
</ins><span class="cx"> if (currZoom != newZoom)
</span><span class="cx"> break;
</span><span class="cx"> currZoom = newZoom;
</span><del>- curr = curr->parent();
</del><ins>+ current = current->parent();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // CSS regions specification says that region flows should return the body element as their offsetParent.
</span><del>- if (curr && curr->isRenderNamedFlowThread())
- curr = document().body() ? document().body()->renderer() : 0;
</del><ins>+ if (is<RenderNamedFlowThread>(current))
+ current = document().body() ? document().body()->renderer() : nullptr;
</ins><span class="cx">
</span><del>- return curr && curr->isBoxModelObject() ? toRenderBoxModelObject(curr) : 0;
</del><ins>+ return is<RenderBoxModelObject>(current) ? downcast<RenderBoxModelObject>(current) : nullptr;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> VisiblePosition RenderObject::createVisiblePosition(int offset, EAffinity affinity) const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingmathmlRenderMathMLScriptscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -76,11 +76,11 @@
</span><span class="cx"> RenderBoxModelObject* RenderMathMLScripts::base() const
</span><span class="cx"> {
</span><span class="cx"> if (!m_baseWrapper)
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx"> RenderObject* base = m_baseWrapper->firstChild();
</span><del>- if (!base || !base->isBoxModelObject())
- return 0;
- return toRenderBoxModelObject(base);
</del><ins>+ if (!is<RenderBoxModelObject>(base))
+ return nullptr;
+ return downcast<RenderBoxModelObject>(base);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void RenderMathMLScripts::fixAnonymousStyleForSubSupPair(RenderObject* subSupPair, bool isPostScript)
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebKit/mac/ChangeLog        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2014-10-10 Chris Dumez <cdumez@apple.com>
+
+ Use is<>() / downcast<>() for RenderBoxModelObject
+ https://bugs.webkit.org/show_bug.cgi?id=137587
+
+ Reviewed by Mihnea Ovidenie.
+
+ Use is<>() / downcast<>() for RenderBoxModelObject and clean up the
+ surrounding code.
+
+ * Plugins/WebBaseNetscapePluginView.mm:
+ (-[WebBaseNetscapePluginView invalidatePluginContentRect:]):
+ * WebView/WebRenderLayer.mm:
+ (-[WebRenderLayer initWithWebFrame:]):
+
</ins><span class="cx"> 2014-10-09 Dean Jackson <dino@apple.com>
</span><span class="cx">
</span><span class="cx"> Remove ENABLE_CSS3_CONDITIONAL_RULES
</span></span></pre></div>
<a id="trunkSourceWebKitmacPluginsWebBaseNetscapePluginViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -864,7 +864,7 @@
</span><span class="cx">
</span><span class="cx"> - (void)invalidatePluginContentRect:(NSRect)rect
</span><span class="cx"> {
</span><del>- if (RenderBoxModelObject *renderer = toRenderBoxModelObject(_element->renderer())) {
</del><ins>+ if (RenderBoxModelObject* renderer = downcast<RenderBoxModelObject>(_element->renderer())) {
</ins><span class="cx"> IntRect contentRect(rect);
</span><span class="cx"> contentRect.move(renderer->borderLeft() + renderer->paddingLeft(), renderer->borderTop() + renderer->paddingTop());
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebRenderLayermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebRenderLayer.mm (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebRenderLayer.mm        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebKit/mac/WebView/WebRenderLayer.mm        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -145,7 +145,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (renderer->hasLayer()) {
</span><del>- RenderLayer* layer = toRenderBoxModelObject(renderer)->layer();
</del><ins>+ RenderLayer* layer = downcast<RenderBoxModelObject>(*renderer).layer();
</ins><span class="cx">
</span><span class="cx"> name = [[WebRenderLayer nameForLayer:layer] retain];
</span><span class="cx"> bounds = layer->absoluteBoundingBox();
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebKit2/ChangeLog        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2014-10-10 Chris Dumez <cdumez@apple.com>
+
+ Use is<>() / downcast<>() for RenderBoxModelObject
+ https://bugs.webkit.org/show_bug.cgi?id=137587
+
+ Reviewed by Mihnea Ovidenie.
+
+ Use is<>() / downcast<>() for RenderBoxModelObject and clean up the
+ surrounding code.
+
+ * WebProcess/Plugins/PluginView.cpp:
+ (WebKit::PluginView::renderer):
+ (WebKit::PluginView::invalidateRect):
+
</ins><span class="cx"> 2014-10-10 Pascal Jacquemart <p.jacquemart@samsung.com>
</span><span class="cx">
</span><span class="cx"> [SOUP] Remove custom URI schemes implementation
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp (174586 => 174587)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2014-10-10 15:34:50 UTC (rev 174586)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2014-10-10 15:49:24 UTC (rev 174587)
</span><span class="lines">@@ -464,7 +464,7 @@
</span><span class="cx">
</span><span class="cx"> RenderBoxModelObject* PluginView::renderer() const
</span><span class="cx"> {
</span><del>- return toRenderBoxModelObject(m_pluginElement->renderer());
</del><ins>+ return downcast<RenderBoxModelObject>(m_pluginElement->renderer());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void PluginView::pageScaleFactorDidChange()
</span><span class="lines">@@ -1297,7 +1297,7 @@
</span><span class="cx"> if (m_pluginElement->displayState() < HTMLPlugInElement::Restarting)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- RenderBoxModelObject* renderer = toRenderBoxModelObject(m_pluginElement->renderer());
</del><ins>+ RenderBoxModelObject* renderer = downcast<RenderBoxModelObject>(m_pluginElement->renderer());
</ins><span class="cx"> if (!renderer)
</span><span class="cx"> return;
</span><span class="cx">
</span></span></pre>
</div>
</div>
</body>
</html>