<!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>[174722] trunk/Source/WebCore</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/174722">174722</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2014-10-14 22:01:31 -0700 (Tue, 14 Oct 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Have offsetFromContainer() / offsetFromAncestorContainer() take a RenderElement&
https://bugs.webkit.org/show_bug.cgi?id=137728
Reviewed by Benjamin Poulain.
Have offsetFromContainer() / offsetFromAncestorContainer() take a RenderElement&
instead of a RenderObject*. The argument passed is never null and the type
should be a RenderElement as the argument is a container.
No new tests, no behavior change.
* editing/htmlediting.cpp:
(WebCore::localCaretRectInRendererForCaretPainting):
* page/GestureTapHighlighter.cpp:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::mapLocalToContainer):
(WebCore::RenderBox::pushMappingToContainer):
(WebCore::RenderBox::offsetFromContainer):
(WebCore::RenderBox::computeRectForRepaint):
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::computeRectForRepaint):
(WebCore::RenderInline::offsetFromContainer):
(WebCore::RenderInline::mapLocalToContainer):
(WebCore::RenderInline::pushMappingToContainer):
* rendering/RenderInline.h:
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::offsetFromContainer):
* rendering/RenderMultiColumnFlowThread.h:
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::offsetFromContainer):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::offsetFromContainer):
(WebCore::RenderObject::offsetFromAncestorContainer):
* rendering/RenderObject.h:
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::offsetFromContainer):
* rendering/RenderTableCell.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::convertToPaintingRect):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreeditinghtmleditingcpp">trunk/Source/WebCore/editing/htmlediting.cpp</a></li>
<li><a href="#trunkSourceWebCorepageGestureTapHighlightercpp">trunk/Source/WebCore/page/GestureTapHighlighter.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxcpp">trunk/Source/WebCore/rendering/RenderBox.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxh">trunk/Source/WebCore/rendering/RenderBox.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBoxModelObjectcpp">trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderInlinecpp">trunk/Source/WebCore/rendering/RenderInline.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderInlineh">trunk/Source/WebCore/rendering/RenderInline.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderMultiColumnFlowThreadcpp">trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderMultiColumnFlowThreadh">trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderNamedFlowFragmentcpp">trunk/Source/WebCore/rendering/RenderNamedFlowFragment.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderNamedFlowFragmenth">trunk/Source/WebCore/rendering/RenderNamedFlowFragment.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderObjectcpp">trunk/Source/WebCore/rendering/RenderObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderObjecth">trunk/Source/WebCore/rendering/RenderObject.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTableCellcpp">trunk/Source/WebCore/rendering/RenderTableCell.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderTableCellh">trunk/Source/WebCore/rendering/RenderTableCell.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeMacmm">trunk/Source/WebCore/rendering/RenderThemeMac.mm</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/ChangeLog        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -1,3 +1,49 @@
</span><ins>+2014-10-14 Chris Dumez <cdumez@apple.com>
+
+ Have offsetFromContainer() / offsetFromAncestorContainer() take a RenderElement&
+ https://bugs.webkit.org/show_bug.cgi?id=137728
+
+ Reviewed by Benjamin Poulain.
+
+ Have offsetFromContainer() / offsetFromAncestorContainer() take a RenderElement&
+ instead of a RenderObject*. The argument passed is never null and the type
+ should be a RenderElement as the argument is a container.
+
+ No new tests, no behavior change.
+
+ * editing/htmlediting.cpp:
+ (WebCore::localCaretRectInRendererForCaretPainting):
+ * page/GestureTapHighlighter.cpp:
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::mapLocalToContainer):
+ (WebCore::RenderBox::pushMappingToContainer):
+ (WebCore::RenderBox::offsetFromContainer):
+ (WebCore::RenderBox::computeRectForRepaint):
+ * rendering/RenderBox.h:
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::computeRectForRepaint):
+ (WebCore::RenderInline::offsetFromContainer):
+ (WebCore::RenderInline::mapLocalToContainer):
+ (WebCore::RenderInline::pushMappingToContainer):
+ * rendering/RenderInline.h:
+ * rendering/RenderMultiColumnFlowThread.cpp:
+ (WebCore::RenderMultiColumnFlowThread::offsetFromContainer):
+ * rendering/RenderMultiColumnFlowThread.h:
+ * rendering/RenderNamedFlowFragment.cpp:
+ (WebCore::RenderNamedFlowFragment::offsetFromContainer):
+ * rendering/RenderNamedFlowFragment.h:
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::offsetFromContainer):
+ (WebCore::RenderObject::offsetFromAncestorContainer):
+ * rendering/RenderObject.h:
+ * rendering/RenderTableCell.cpp:
+ (WebCore::RenderTableCell::offsetFromContainer):
+ * rendering/RenderTableCell.h:
+ * rendering/RenderThemeMac.mm:
+ (WebCore::RenderThemeMac::convertToPaintingRect):
+
</ins><span class="cx"> 2014-10-14 Jer Noble <jer.noble@apple.com>
</span><span class="cx">
</span><span class="cx"> REGRESSION (r159208): Crash when clicking scrubber after navigating away/back to video
</span></span></pre></div>
<a id="trunkSourceWebCoreeditinghtmleditingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/htmlediting.cpp (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/htmlediting.cpp        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/editing/htmlediting.cpp        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -1294,10 +1294,10 @@
</span><span class="cx">
</span><span class="cx"> // Compute an offset between the renderer and the caretPainter.
</span><span class="cx"> while (renderer != caretPainter) {
</span><del>- RenderObject* containerObject = renderer->container();
</del><ins>+ RenderElement* containerObject = renderer->container();
</ins><span class="cx"> if (!containerObject)
</span><span class="cx"> return LayoutRect();
</span><del>- localRect.move(renderer->offsetFromContainer(containerObject, localRect.location()));
</del><ins>+ localRect.move(renderer->offsetFromContainer(*containerObject, localRect.location()));
</ins><span class="cx"> renderer = containerObject;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorepageGestureTapHighlightercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/GestureTapHighlighter.cpp (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/GestureTapHighlighter.cpp        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/page/GestureTapHighlighter.cpp        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -64,11 +64,11 @@
</span><span class="cx"> LayoutPoint referencePoint;
</span><span class="cx">
</span><span class="cx"> while (o) {
</span><del>- RenderObject* nextContainer = o->container();
</del><ins>+ RenderElement* nextContainer = o->container();
</ins><span class="cx"> if (!nextContainer)
</span><span class="cx"> break;
</span><span class="cx">
</span><del>- LayoutSize containerOffset = o->offsetFromContainer(nextContainer, referencePoint);
</del><ins>+ LayoutSize containerOffset = o->offsetFromContainer(*nextContainer, referencePoint);
</ins><span class="cx"> TransformationMatrix t;
</span><span class="cx"> o->getTransformFromContainer(nextContainer, containerOffset, t);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.cpp        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -1912,8 +1912,8 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool containerSkipped;
</span><del>- auto o = container(repaintContainer, &containerSkipped);
- if (!o)
</del><ins>+ RenderElement* container = this->container(repaintContainer, &containerSkipped);
+ if (!container)
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> bool isFixedPos = style().position() == FixedPosition;
</span><span class="lines">@@ -1928,12 +1928,12 @@
</span><span class="cx"> if (wasFixed)
</span><span class="cx"> *wasFixed = mode & IsFixed;
</span><span class="cx">
</span><del>- LayoutSize containerOffset = offsetFromContainer(o, LayoutPoint(transformState.mappedPoint()));
</del><ins>+ LayoutSize containerOffset = offsetFromContainer(*container, LayoutPoint(transformState.mappedPoint()));
</ins><span class="cx">
</span><del>- bool preserve3D = mode & UseTransforms && (o->style().preserves3D() || style().preserves3D());
- if (mode & UseTransforms && shouldUseTransformFromContainer(o)) {
</del><ins>+ bool preserve3D = mode & UseTransforms && (container->style().preserves3D() || style().preserves3D());
+ if (mode & UseTransforms && shouldUseTransformFromContainer(container)) {
</ins><span class="cx"> TransformationMatrix t;
</span><del>- getTransformFromContainer(o, containerOffset, t);
</del><ins>+ getTransformFromContainer(container, containerOffset, t);
</ins><span class="cx"> transformState.applyTransform(t, preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
</span><span class="cx"> } else
</span><span class="cx"> transformState.move(containerOffset.width(), containerOffset.height(), preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
</span><span class="lines">@@ -1941,7 +1941,7 @@
</span><span class="cx"> if (containerSkipped) {
</span><span class="cx"> // There can't be a transform between repaintContainer and o, because transforms create containers, so it should be safe
</span><span class="cx"> // to just subtract the delta between the repaintContainer and o.
</span><del>- LayoutSize containerOffset = repaintContainer->offsetFromAncestorContainer(o);
</del><ins>+ LayoutSize containerOffset = repaintContainer->offsetFromAncestorContainer(*container);
</ins><span class="cx"> transformState.move(-containerOffset.width(), -containerOffset.height(), preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="lines">@@ -1950,10 +1950,10 @@
</span><span class="cx">
</span><span class="cx"> // For fixed positioned elements inside out-of-flow named flows, we do not want to
</span><span class="cx"> // map their position further to regions based on their coordinates inside the named flows.
</span><del>- if (!o->isOutOfFlowRenderFlowThread() || !fixedPositionedWithNamedFlowContainingBlock())
- o->mapLocalToContainer(repaintContainer, transformState, mode, wasFixed);
</del><ins>+ if (!container->isOutOfFlowRenderFlowThread() || !fixedPositionedWithNamedFlowContainingBlock())
+ container->mapLocalToContainer(repaintContainer, transformState, mode, wasFixed);
</ins><span class="cx"> else
</span><del>- o->mapLocalToContainer(toRenderLayerModelObject(o), transformState, mode, wasFixed);
</del><ins>+ container->mapLocalToContainer(toRenderLayerModelObject(container), transformState, mode, wasFixed);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const RenderObject* RenderBox::pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap& geometryMap) const
</span><span class="lines">@@ -1961,9 +1961,9 @@
</span><span class="cx"> ASSERT(ancestorToStopAt != this);
</span><span class="cx">
</span><span class="cx"> bool ancestorSkipped;
</span><del>- auto container = this->container(ancestorToStopAt, &ancestorSkipped);
</del><ins>+ RenderElement* container = this->container(ancestorToStopAt, &ancestorSkipped);
</ins><span class="cx"> if (!container)
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx">
</span><span class="cx"> bool isFixedPos = style().position() == FixedPosition;
</span><span class="cx"> bool hasTransform = hasLayer() && layer()->transform();
</span><span class="lines">@@ -1972,11 +1972,11 @@
</span><span class="cx"> if (ancestorSkipped) {
</span><span class="cx"> // There can't be a transform between repaintContainer and o, because transforms create containers, so it should be safe
</span><span class="cx"> // to just subtract the delta between the ancestor and o.
</span><del>- adjustmentForSkippedAncestor = -ancestorToStopAt->offsetFromAncestorContainer(container);
</del><ins>+ adjustmentForSkippedAncestor = -ancestorToStopAt->offsetFromAncestorContainer(*container);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool offsetDependsOnPoint = false;
</span><del>- LayoutSize containerOffset = offsetFromContainer(container, LayoutPoint(), &offsetDependsOnPoint);
</del><ins>+ LayoutSize containerOffset = offsetFromContainer(*container, LayoutPoint(), &offsetDependsOnPoint);
</ins><span class="cx">
</span><span class="cx"> bool preserve3D = container->style().preserves3D() || style().preserves3D();
</span><span class="cx"> if (shouldUseTransformFromContainer(container)) {
</span><span class="lines">@@ -2007,10 +2007,10 @@
</span><span class="cx"> RenderBoxModelObject::mapAbsoluteToLocalPoint(mode, transformState);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-LayoutSize RenderBox::offsetFromContainer(RenderObject* renderer, const LayoutPoint&, bool* offsetDependsOnPoint) const
</del><ins>+LayoutSize RenderBox::offsetFromContainer(RenderElement& renderer, const LayoutPoint&, bool* offsetDependsOnPoint) const
</ins><span class="cx"> {
</span><span class="cx"> // A region "has" boxes inside it without being their container.
</span><del>- ASSERT(renderer == container() || is<RenderRegion>(*renderer));
</del><ins>+ ASSERT(&renderer == container() || is<RenderRegion>(renderer));
</ins><span class="cx">
</span><span class="cx"> LayoutSize offset;
</span><span class="cx"> if (isInFlowPositioned())
</span><span class="lines">@@ -2019,14 +2019,14 @@
</span><span class="cx"> if (!isInline() || isReplaced())
</span><span class="cx"> offset += topLeftLocationOffset();
</span><span class="cx">
</span><del>- if (is<RenderBox>(*renderer))
- offset -= downcast<RenderBox>(*renderer).scrolledContentOffset();
</del><ins>+ if (is<RenderBox>(renderer))
+ offset -= downcast<RenderBox>(renderer).scrolledContentOffset();
</ins><span class="cx">
</span><del>- if (style().position() == AbsolutePosition && renderer->isInFlowPositioned() && is<RenderInline>(*renderer))
- offset += downcast<RenderInline>(*renderer).offsetForInFlowPositionedInline(this);
</del><ins>+ if (style().position() == AbsolutePosition && renderer.isInFlowPositioned() && is<RenderInline>(renderer))
+ offset += downcast<RenderInline>(renderer).offsetForInFlowPositionedInline(this);
</ins><span class="cx">
</span><span class="cx"> if (offsetDependsOnPoint)
</span><del>- *offsetDependsOnPoint |= is<RenderFlowThread>(*renderer);
</del><ins>+ *offsetDependsOnPoint |= is<RenderFlowThread>(renderer);
</ins><span class="cx">
</span><span class="cx"> return offset;
</span><span class="cx"> }
</span><span class="lines">@@ -2225,7 +2225,7 @@
</span><span class="cx">
</span><span class="cx"> if (containerSkipped) {
</span><span class="cx"> // If the repaintContainer is below o, then we need to map the rect into repaintContainer's coordinates.
</span><del>- LayoutSize containerOffset = repaintContainer->offsetFromAncestorContainer(renderer);
</del><ins>+ LayoutSize containerOffset = repaintContainer->offsetFromAncestorContainer(*renderer);
</ins><span class="cx"> rect.move(-containerOffset);
</span><span class="cx"> return;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBox.h (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBox.h        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/rendering/RenderBox.h        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -335,7 +335,7 @@
</span><span class="cx"> void clearOverrideContainingBlockContentLogicalHeight();
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>- virtual LayoutSize offsetFromContainer(RenderObject*, const LayoutPoint&, bool* offsetDependsOnPoint = 0) const override;
</del><ins>+ virtual LayoutSize offsetFromContainer(RenderElement&, const LayoutPoint&, bool* offsetDependsOnPoint = 0) const override;
</ins><span class="cx">
</span><span class="cx"> LayoutUnit adjustBorderBoxLogicalWidthForBoxSizing(LayoutUnit width) const;
</span><span class="cx"> LayoutUnit adjustBorderBoxLogicalHeightForBoxSizing(LayoutUnit height) const;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBoxModelObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -2637,8 +2637,8 @@
</span><span class="cx">
</span><span class="cx"> void RenderBoxModelObject::mapAbsoluteToLocalPoint(MapCoordinatesFlags mode, TransformState& transformState) const
</span><span class="cx"> {
</span><del>- auto o = container();
- if (!o)
</del><ins>+ RenderElement* container = this->container();
+ if (!container)
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> // FIXME: This code is wrong for named flow threads since it only works for content in the first region.
</span><span class="lines">@@ -2646,21 +2646,21 @@
</span><span class="cx"> // geometry to actually get a better result.
</span><span class="cx"> // The point inside a box that's inside a region has its coordinates relative to the region,
</span><span class="cx"> // not the FlowThread that is its container in the RenderObject tree.
</span><del>- if (isBox() && o->isOutOfFlowRenderFlowThread()) {
</del><ins>+ if (is<RenderBox>(*this) && container->isOutOfFlowRenderFlowThread()) {
</ins><span class="cx"> RenderRegion* startRegion = nullptr;
</span><span class="cx"> RenderRegion* endRegion = nullptr;
</span><del>- if (toRenderFlowThread(o)->getRegionRangeForBox(toRenderBox(this), startRegion, endRegion))
- o = startRegion;
</del><ins>+ if (downcast<RenderFlowThread>(*container).getRegionRangeForBox(downcast<RenderBox>(this), startRegion, endRegion))
+ container = startRegion;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- o->mapAbsoluteToLocalPoint(mode, transformState);
</del><ins>+ container->mapAbsoluteToLocalPoint(mode, transformState);
</ins><span class="cx">
</span><del>- LayoutSize containerOffset = offsetFromContainer(o, LayoutPoint());
</del><ins>+ LayoutSize containerOffset = offsetFromContainer(*container, LayoutPoint());
</ins><span class="cx">
</span><del>- bool preserve3D = mode & UseTransforms && (o->style().preserves3D() || style().preserves3D());
- if (mode & UseTransforms && shouldUseTransformFromContainer(o)) {
</del><ins>+ bool preserve3D = mode & UseTransforms && (container->style().preserves3D() || style().preserves3D());
+ if (mode & UseTransforms && shouldUseTransformFromContainer(container)) {
</ins><span class="cx"> TransformationMatrix t;
</span><del>- getTransformFromContainer(o, containerOffset, t);
</del><ins>+ getTransformFromContainer(container, containerOffset, t);
</ins><span class="cx"> transformState.applyTransform(t, preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
</span><span class="cx"> } else
</span><span class="cx"> transformState.move(containerOffset.width(), containerOffset.height(), preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderInlinecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderInline.cpp (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderInline.cpp        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/rendering/RenderInline.cpp        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -1167,8 +1167,8 @@
</span><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> bool containerSkipped;
</span><del>- RenderElement* o = container(repaintContainer, &containerSkipped);
- if (!o)
</del><ins>+ RenderElement* container = this->container(repaintContainer, &containerSkipped);
+ if (!container)
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> LayoutPoint topLeft = rect.location();
</span><span class="lines">@@ -1184,36 +1184,35 @@
</span><span class="cx"> // FIXME: We ignore the lightweight clipping rect that controls use, since if |o| is in mid-layout,
</span><span class="cx"> // its controlClipRect will be wrong. For overflow clip we use the values cached by the layer.
</span><span class="cx"> rect.setLocation(topLeft);
</span><del>- if (o->hasOverflowClip()) {
- RenderBox* containerBox = toRenderBox(o);
- containerBox->applyCachedClipAndScrollOffsetForRepaint(rect);
</del><ins>+ if (container->hasOverflowClip()) {
+ downcast<RenderBox>(*container).applyCachedClipAndScrollOffsetForRepaint(rect);
</ins><span class="cx"> if (rect.isEmpty())
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (containerSkipped) {
</span><span class="cx"> // If the repaintContainer is below o, then we need to map the rect into repaintContainer's coordinates.
</span><del>- LayoutSize containerOffset = repaintContainer->offsetFromAncestorContainer(o);
</del><ins>+ LayoutSize containerOffset = repaintContainer->offsetFromAncestorContainer(*container);
</ins><span class="cx"> rect.move(-containerOffset);
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- o->computeRectForRepaint(repaintContainer, rect, fixed);
</del><ins>+ container->computeRectForRepaint(repaintContainer, rect, fixed);
</ins><span class="cx"> }
</span><span class="cx">
</span><del>-LayoutSize RenderInline::offsetFromContainer(RenderObject* container, const LayoutPoint&, bool* offsetDependsOnPoint) const
</del><ins>+LayoutSize RenderInline::offsetFromContainer(RenderElement& container, const LayoutPoint&, bool* offsetDependsOnPoint) const
</ins><span class="cx"> {
</span><del>- ASSERT(container == this->container());
</del><ins>+ ASSERT(&container == this->container());
</ins><span class="cx">
</span><span class="cx"> LayoutSize offset;
</span><span class="cx"> if (isInFlowPositioned())
</span><span class="cx"> offset += offsetForInFlowPosition();
</span><span class="cx">
</span><del>- if (container->isBox())
- offset -= toRenderBox(container)->scrolledContentOffset();
</del><ins>+ if (is<RenderBox>(container))
+ offset -= downcast<RenderBox>(container).scrolledContentOffset();
</ins><span class="cx">
</span><span class="cx"> if (offsetDependsOnPoint)
</span><del>- *offsetDependsOnPoint = (container->isBox() && container->style().isFlippedBlocksWritingMode()) || container->isRenderFlowThread();
</del><ins>+ *offsetDependsOnPoint = (is<RenderBox>(container) && container.style().isFlippedBlocksWritingMode()) || is<RenderFlowThread>(container);
</ins><span class="cx">
</span><span class="cx"> return offset;
</span><span class="cx"> }
</span><span class="lines">@@ -1233,24 +1232,24 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool containerSkipped;
</span><del>- RenderElement* o = container(repaintContainer, &containerSkipped);
- if (!o)
</del><ins>+ RenderElement* container = this->container(repaintContainer, &containerSkipped);
+ if (!container)
</ins><span class="cx"> return;
</span><span class="cx">
</span><del>- if (mode & ApplyContainerFlip && o->isBox()) {
- if (o->style().isFlippedBlocksWritingMode()) {
</del><ins>+ if (mode & ApplyContainerFlip && is<RenderBox>(*container)) {
+ if (container->style().isFlippedBlocksWritingMode()) {
</ins><span class="cx"> LayoutPoint centerPoint(transformState.mappedPoint());
</span><del>- transformState.move(toRenderBox(o)->flipForWritingMode(centerPoint) - centerPoint);
</del><ins>+ transformState.move(downcast<RenderBox>(*container).flipForWritingMode(centerPoint) - centerPoint);
</ins><span class="cx"> }
</span><span class="cx"> mode &= ~ApplyContainerFlip;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- LayoutSize containerOffset = offsetFromContainer(o, LayoutPoint(transformState.mappedPoint()));
</del><ins>+ LayoutSize containerOffset = offsetFromContainer(*container, LayoutPoint(transformState.mappedPoint()));
</ins><span class="cx">
</span><del>- bool preserve3D = mode & UseTransforms && (o->style().preserves3D() || style().preserves3D());
- if (mode & UseTransforms && shouldUseTransformFromContainer(o)) {
</del><ins>+ bool preserve3D = mode & UseTransforms && (container->style().preserves3D() || style().preserves3D());
+ if (mode & UseTransforms && shouldUseTransformFromContainer(container)) {
</ins><span class="cx"> TransformationMatrix t;
</span><del>- getTransformFromContainer(o, containerOffset, t);
</del><ins>+ getTransformFromContainer(container, containerOffset, t);
</ins><span class="cx"> transformState.applyTransform(t, preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
</span><span class="cx"> } else
</span><span class="cx"> transformState.move(containerOffset.width(), containerOffset.height(), preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
</span><span class="lines">@@ -1258,12 +1257,12 @@
</span><span class="cx"> if (containerSkipped) {
</span><span class="cx"> // There can't be a transform between repaintContainer and o, because transforms create containers, so it should be safe
</span><span class="cx"> // to just subtract the delta between the repaintContainer and o.
</span><del>- LayoutSize containerOffset = repaintContainer->offsetFromAncestorContainer(o);
</del><ins>+ LayoutSize containerOffset = repaintContainer->offsetFromAncestorContainer(*container);
</ins><span class="cx"> transformState.move(-containerOffset.width(), -containerOffset.height(), preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- o->mapLocalToContainer(repaintContainer, transformState, mode, wasFixed);
</del><ins>+ container->mapLocalToContainer(repaintContainer, transformState, mode, wasFixed);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> const RenderObject* RenderInline::pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap& geometryMap) const
</span><span class="lines">@@ -1273,17 +1272,17 @@
</span><span class="cx"> bool ancestorSkipped;
</span><span class="cx"> RenderElement* container = this->container(ancestorToStopAt, &ancestorSkipped);
</span><span class="cx"> if (!container)
</span><del>- return 0;
</del><ins>+ return nullptr;
</ins><span class="cx">
</span><span class="cx"> LayoutSize adjustmentForSkippedAncestor;
</span><span class="cx"> if (ancestorSkipped) {
</span><span class="cx"> // There can't be a transform between repaintContainer and o, because transforms create containers, so it should be safe
</span><span class="cx"> // to just subtract the delta between the ancestor and o.
</span><del>- adjustmentForSkippedAncestor = -ancestorToStopAt->offsetFromAncestorContainer(container);
</del><ins>+ adjustmentForSkippedAncestor = -ancestorToStopAt->offsetFromAncestorContainer(*container);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool offsetDependsOnPoint = false;
</span><del>- LayoutSize containerOffset = offsetFromContainer(container, LayoutPoint(), &offsetDependsOnPoint);
</del><ins>+ LayoutSize containerOffset = offsetFromContainer(*container, LayoutPoint(), &offsetDependsOnPoint);
</ins><span class="cx">
</span><span class="cx"> bool preserve3D = container->style().preserves3D() || style().preserves3D();
</span><span class="cx"> if (shouldUseTransformFromContainer(container)) {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderInlineh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderInline.h (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderInline.h        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/rendering/RenderInline.h        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx"> virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedOffset) const override final;
</span><span class="cx"> virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const override;
</span><span class="cx">
</span><del>- virtual LayoutSize offsetFromContainer(RenderObject*, const LayoutPoint&, bool* offsetDependsOnPoint = 0) const override final;
</del><ins>+ virtual LayoutSize offsetFromContainer(RenderElement&, const LayoutPoint&, bool* offsetDependsOnPoint = nullptr) const override final;
</ins><span class="cx">
</span><span class="cx"> virtual IntRect borderBoundingBox() const override final
</span><span class="cx"> {
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderMultiColumnFlowThreadcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -608,21 +608,20 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-LayoutSize RenderMultiColumnFlowThread::offsetFromContainer(RenderObject* enclosingContainer, const LayoutPoint& physicalPoint, bool* offsetDependsOnPoint) const
</del><ins>+LayoutSize RenderMultiColumnFlowThread::offsetFromContainer(RenderElement& enclosingContainer, const LayoutPoint& physicalPoint, bool* offsetDependsOnPoint) const
</ins><span class="cx"> {
</span><del>- ASSERT(enclosingContainer == container());
</del><ins>+ ASSERT(&enclosingContainer == container());
</ins><span class="cx">
</span><span class="cx"> if (offsetDependsOnPoint)
</span><span class="cx"> *offsetDependsOnPoint = true;
</span><span class="cx">
</span><span class="cx"> LayoutPoint translatedPhysicalPoint(physicalPoint);
</span><del>- RenderRegion* region = physicalTranslationFromFlowToRegion(translatedPhysicalPoint);
- if (region)
</del><ins>+ if (RenderRegion* region = physicalTranslationFromFlowToRegion(translatedPhysicalPoint))
</ins><span class="cx"> translatedPhysicalPoint.moveBy(region->topLeftLocation());
</span><span class="cx">
</span><span class="cx"> LayoutSize offset(translatedPhysicalPoint.x(), translatedPhysicalPoint.y());
</span><del>- if (enclosingContainer->isBox())
- offset -= toRenderBox(enclosingContainer)->scrolledContentOffset();
</del><ins>+ if (is<RenderBox>(enclosingContainer))
+ offset -= downcast<RenderBox>(enclosingContainer).scrolledContentOffset();
</ins><span class="cx"> return offset;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -638,7 +637,7 @@
</span><span class="cx"> LayoutSize candidateContainerOffset;
</span><span class="cx">
</span><span class="cx"> for (const auto& columnSet : childrenOfType<RenderMultiColumnSet>(*parent())) {
</span><del>- candidateContainerOffset = columnSet.offsetFromContainer(parent(), LayoutPoint());
</del><ins>+ candidateContainerOffset = columnSet.offsetFromContainer(*parent(), LayoutPoint());
</ins><span class="cx">
</span><span class="cx"> candidatePoint = transformPoint - candidateContainerOffset;
</span><span class="cx"> candidateColumnSet = &columnSet;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderMultiColumnFlowThreadh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.h (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.h        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnFlowThread.h        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx"> virtual bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) override;
</span><span class="cx">
</span><span class="cx"> virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) const override;
</span><del>- virtual LayoutSize offsetFromContainer(RenderObject*, const LayoutPoint&, bool* offsetDependsOnPoint = nullptr) const override;
</del><ins>+ virtual LayoutSize offsetFromContainer(RenderElement&, const LayoutPoint&, bool* offsetDependsOnPoint = nullptr) const override;
</ins><span class="cx">
</span><span class="cx"> // FIXME: Eventually as column and region flow threads start nesting, this will end up changing.
</span><span class="cx"> virtual bool shouldCheckColumnBreaks() const override;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderNamedFlowFragmentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderNamedFlowFragment.cpp (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderNamedFlowFragment.cpp        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/rendering/RenderNamedFlowFragment.cpp        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -249,11 +249,10 @@
</span><span class="cx"> return isLastRegion() && (style().regionFragment() == BreakRegionFragment);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-LayoutSize RenderNamedFlowFragment::offsetFromContainer(RenderObject* o, const LayoutPoint&, bool*) const
</del><ins>+LayoutSize RenderNamedFlowFragment::offsetFromContainer(RenderElement& container, const LayoutPoint&, bool*) const
</ins><span class="cx"> {
</span><del>- ASSERT(&fragmentContainer() == o);
- ASSERT(container() == o);
- UNUSED_PARAM(o);
</del><ins>+ ASSERT_UNUSED(container, &fragmentContainer() == &container);
+ ASSERT_UNUSED(container, this->container() == &container);
</ins><span class="cx"> return topLeftLocationOffset();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderNamedFlowFragmenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderNamedFlowFragment.h (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderNamedFlowFragment.h        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/rendering/RenderNamedFlowFragment.h        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx">
</span><span class="cx"> virtual bool shouldClipFlowThreadContent() const override;
</span><span class="cx">
</span><del>- virtual LayoutSize offsetFromContainer(RenderObject*, const LayoutPoint&, bool* offsetDependsOnPoint = 0) const override;
</del><ins>+ virtual LayoutSize offsetFromContainer(RenderElement&, const LayoutPoint&, bool* offsetDependsOnPoint = nullptr) const override;
</ins><span class="cx">
</span><span class="cx"> bool isPseudoElementRegion() const { return parent() && parent()->isPseudoElement(); }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderObject.cpp        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -1851,36 +1851,36 @@
</span><span class="cx"> return transformState.lastPlanarPoint();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-LayoutSize RenderObject::offsetFromContainer(RenderObject* o, const LayoutPoint&, bool* offsetDependsOnPoint) const
</del><ins>+LayoutSize RenderObject::offsetFromContainer(RenderElement& container, const LayoutPoint&, bool* offsetDependsOnPoint) const
</ins><span class="cx"> {
</span><del>- ASSERT(o == container());
</del><ins>+ ASSERT(&container == this->container());
</ins><span class="cx">
</span><span class="cx"> LayoutSize offset;
</span><del>- if (o->isBox())
- offset -= toRenderBox(o)->scrolledContentOffset();
</del><ins>+ if (is<RenderBox>(container))
+ offset -= downcast<RenderBox>(container).scrolledContentOffset();
</ins><span class="cx">
</span><span class="cx"> if (offsetDependsOnPoint)
</span><del>- *offsetDependsOnPoint = o->isRenderFlowThread();
</del><ins>+ *offsetDependsOnPoint = is<RenderFlowThread>(container);
</ins><span class="cx">
</span><span class="cx"> return offset;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-LayoutSize RenderObject::offsetFromAncestorContainer(RenderObject* container) const
</del><ins>+LayoutSize RenderObject::offsetFromAncestorContainer(RenderElement& container) const
</ins><span class="cx"> {
</span><span class="cx"> LayoutSize offset;
</span><span class="cx"> LayoutPoint referencePoint;
</span><span class="cx"> const RenderObject* currContainer = this;
</span><span class="cx"> do {
</span><del>- auto nextContainer = currContainer->container();
</del><ins>+ RenderElement* nextContainer = currContainer->container();
</ins><span class="cx"> ASSERT(nextContainer); // This means we reached the top without finding container.
</span><span class="cx"> if (!nextContainer)
</span><span class="cx"> break;
</span><span class="cx"> ASSERT(!currContainer->hasTransform());
</span><del>- LayoutSize currentOffset = currContainer->offsetFromContainer(nextContainer, referencePoint);
</del><ins>+ LayoutSize currentOffset = currContainer->offsetFromContainer(*nextContainer, referencePoint);
</ins><span class="cx"> offset += currentOffset;
</span><span class="cx"> referencePoint.move(currentOffset);
</span><span class="cx"> currContainer = nextContainer;
</span><del>- } while (currContainer != container);
</del><ins>+ } while (currContainer != &container);
</ins><span class="cx">
</span><span class="cx"> return offset;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderObject.h (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderObject.h        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/rendering/RenderObject.h        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -684,9 +684,9 @@
</span><span class="cx">
</span><span class="cx"> // Return the offset from the container() renderer (excluding transforms). In multi-column layout,
</span><span class="cx"> // different offsets apply at different points, so return the offset that applies to the given point.
</span><del>- virtual LayoutSize offsetFromContainer(RenderObject*, const LayoutPoint&, bool* offsetDependsOnPoint = 0) const;
</del><ins>+ virtual LayoutSize offsetFromContainer(RenderElement&, const LayoutPoint&, bool* offsetDependsOnPoint = 0) const;
</ins><span class="cx"> // Return the offset from an object up the container() chain. Asserts that none of the intermediate objects have transforms.
</span><del>- LayoutSize offsetFromAncestorContainer(RenderObject*) const;
</del><ins>+ LayoutSize offsetFromAncestorContainer(RenderElement&) const;
</ins><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> virtual void collectSelectionRects(Vector<SelectionRect>&, unsigned startOffset = 0, unsigned endOffset = std::numeric_limits<unsigned>::max());
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTableCellcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTableCell.cpp (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTableCell.cpp        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/rendering/RenderTableCell.cpp        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -319,11 +319,11 @@
</span><span class="cx"> setOverrideLogicalContentHeight(std::max<LayoutUnit>(0, rowHeight - borderAndPaddingLogicalHeight()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-LayoutSize RenderTableCell::offsetFromContainer(RenderObject* o, const LayoutPoint& point, bool* offsetDependsOnPoint) const
</del><ins>+LayoutSize RenderTableCell::offsetFromContainer(RenderElement& container, const LayoutPoint& point, bool* offsetDependsOnPoint) const
</ins><span class="cx"> {
</span><del>- ASSERT(o == container());
</del><ins>+ ASSERT(&container == this->container());
</ins><span class="cx">
</span><del>- LayoutSize offset = RenderBlockFlow::offsetFromContainer(o, point, offsetDependsOnPoint);
</del><ins>+ LayoutSize offset = RenderBlockFlow::offsetFromContainer(container, point, offsetDependsOnPoint);
</ins><span class="cx"> if (parent())
</span><span class="cx"> offset -= parentBox()->locationOffset();
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderTableCellh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderTableCell.h (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderTableCell.h        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/rendering/RenderTableCell.h        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -234,7 +234,7 @@
</span><span class="cx">
</span><span class="cx"> virtual bool boxShadowShouldBeAppliedToBackground(BackgroundBleedAvoidance, InlineFlowBox*) const override;
</span><span class="cx">
</span><del>- virtual LayoutSize offsetFromContainer(RenderObject*, const LayoutPoint&, bool* offsetDependsOnPoint = 0) const override;
</del><ins>+ virtual LayoutSize offsetFromContainer(RenderElement&, const LayoutPoint&, bool* offsetDependsOnPoint = 0) const override;
</ins><span class="cx"> virtual LayoutRect clippedOverflowRectForRepaint(const RenderLayerModelObject* repaintContainer) const override;
</span><span class="cx"> virtual void computeRectForRepaint(const RenderLayerModelObject* repaintContainer, LayoutRect&, bool fixed = false) const override;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeMac.mm (174721 => 174722)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeMac.mm        2014-10-15 03:28:55 UTC (rev 174721)
+++ trunk/Source/WebCore/rendering/RenderThemeMac.mm        2014-10-15 05:01:31 UTC (rev 174722)
</span><span class="lines">@@ -681,7 +681,8 @@
</span><span class="cx"> const RenderObject* renderer = &partRenderer;
</span><span class="cx"> while (renderer && renderer != &inputRenderer) {
</span><span class="cx"> RenderElement* containingRenderer = renderer->container();
</span><del>- offsetFromInputRenderer -= roundedIntSize(renderer->offsetFromContainer(containingRenderer, LayoutPoint()));
</del><ins>+ ASSERT(containingRenderer);
+ offsetFromInputRenderer -= roundedIntSize(renderer->offsetFromContainer(*containingRenderer, LayoutPoint()));
</ins><span class="cx"> renderer = containingRenderer;
</span><span class="cx"> }
</span><span class="cx"> // If the input renderer was not a container, something went wrong
</span></span></pre>
</div>
</div>
</body>
</html>