Diff
Modified: trunk/Source/WebCore/ChangeLog (170023 => 170024)
--- trunk/Source/WebCore/ChangeLog 2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/ChangeLog 2014-06-16 19:52:21 UTC (rev 170024)
@@ -1,3 +1,40 @@
+2014-06-16 Jeongeun Kim <[email protected]>
+
+ Use references instead of pointers to RenderBlock in RenderObject::enclosingBox().
+ https://bugs.webkit.org/show_bug.cgi?id=133902
+
+ Reviewed by Andreas Kling.
+
+ Just a straightforward conversion from pointers to references.
+
+ No new tests, no behavior change.
+
+ * bindings/objc/DOMUIKitExtensions.mm:
+ (-[DOMHTMLElement structuralComplexityContribution]):
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::parseAttribute):
+ * inspector/InspectorOverlay.cpp:
+ (WebCore::buildObjectForRendererFragments):
+ * page/EventHandler.cpp:
+ (WebCore::scrollNode):
+ (WebCore::EventHandler::scrollOverflow):
+ (WebCore::EventHandler::logicalScrollOverflow):
+ * page/FrameView.cpp:
+ (WebCore::FrameView::layout):
+ * rendering/RenderBox.cpp:
+ (WebCore::computeInlineStaticDistance):
+ * rendering/RenderFlowThread.cpp:
+ (WebCore::RenderFlowThread::computedRegionRangeForBox):
+ (WebCore::RenderFlowThread::objectShouldFragmentInFlowRegion):
+ (WebCore::RenderFlowThread::objectInFlowRegion):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::calculateClipRects):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::enclosingBox): Removed FIXME comment
+ * rendering/RenderObject.h:
+ * rendering/RenderScrollbar.cpp:
+ (WebCore::RenderScrollbar::owningRenderer):
+
2014-06-16 Anders Carlsson <[email protected]>
Use HTTPHeaderName in more places
Modified: trunk/Source/WebCore/bindings/objc/DOMUIKitExtensions.mm (170023 => 170024)
--- trunk/Source/WebCore/bindings/objc/DOMUIKitExtensions.mm 2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/bindings/objc/DOMUIKitExtensions.mm 2014-06-16 19:52:21 UTC (rev 170024)
@@ -349,10 +349,10 @@
} else if (renderer->isRenderBlockFlow() || (renderer->isRenderBlock() && toRenderBlock(renderer)->inlineElementContinuation() != 0)) {
BOOL noCost = NO;
if (renderer->isBox()) {
- RenderBox *asBox = renderer->enclosingBox();
- RenderObject *parent = asBox->parent();
+ RenderBox &asBox = renderer->enclosingBox();
+ RenderObject *parent = asBox.parent();
RenderBox *parentRenderBox = (parent && parent->isBox()) ? toRenderBox(parent) : 0;
- if (parentRenderBox && asBox && asBox->width() == parentRenderBox->width()) {
+ if (parentRenderBox && asBox.width() == parentRenderBox->width()) {
noCost = YES;
}
}
Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (170023 => 170024)
--- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2014-06-16 19:52:21 UTC (rev 170024)
@@ -5611,7 +5611,7 @@
LayoutRect HTMLMediaElement::mediaPlayerContentBoxRect() const
{
if (renderer())
- return renderer()->enclosingBox()->contentBoxRect();
+ return renderer()->enclosingBox().contentBoxRect();
return LayoutRect();
}
Modified: trunk/Source/WebCore/inspector/InspectorOverlay.cpp (170023 => 170024)
--- trunk/Source/WebCore/inspector/InspectorOverlay.cpp 2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/inspector/InspectorOverlay.cpp 2014-06-16 19:52:21 UTC (rev 170024)
@@ -511,10 +511,9 @@
buildRendererHighlight(renderer, nullptr, config, &highlight);
fragmentsArray->pushObject(buildObjectForHighlight(highlight));
} else {
- RenderBox* enclosingBox = renderer->enclosingBox();
RenderRegion* startRegion = nullptr;
RenderRegion* endRegion = nullptr;
- if (!containingFlowThread->getRegionRangeForBox(enclosingBox, startRegion, endRegion)) {
+ if (!containingFlowThread->getRegionRangeForBox(&renderer->enclosingBox(), startRegion, endRegion)) {
// The flow has no visible regions. The renderer is not visible on screen.
return nullptr;
}
Modified: trunk/Source/WebCore/page/EventHandler.cpp (170023 => 170024)
--- trunk/Source/WebCore/page/EventHandler.cpp 2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/page/EventHandler.cpp 2014-06-16 19:52:21 UTC (rev 170024)
@@ -289,10 +289,10 @@
return false;
if (!node->renderer())
return false;
- RenderBox* enclosingBox = node->renderer()->enclosingBox();
+ RenderBox& enclosingBox = node->renderer()->enclosingBox();
float absDelta = delta > 0 ? delta : -delta;
- return enclosingBox->scroll(delta < 0 ? negativeDirection : positiveDirection, granularity, absDelta, stopElement, enclosingBox, wheelEventAbsolutePoint);
+ return enclosingBox.scroll(delta < 0 ? negativeDirection : positiveDirection, granularity, absDelta, stopElement, &enclosingBox, wheelEventAbsolutePoint);
}
#if (ENABLE(TOUCH_EVENTS) && !PLATFORM(IOS))
@@ -1106,7 +1106,7 @@
if (node) {
auto r = node->renderer();
- if (r && !r->isListBox() && r->enclosingBox()->scroll(direction, granularity)) {
+ if (r && !r->isListBox() && r->enclosingBox().scroll(direction, granularity)) {
setFrameWasScrolledByUser();
return true;
}
@@ -1127,7 +1127,7 @@
if (node) {
auto r = node->renderer();
- if (r && !r->isListBox() && r->enclosingBox()->logicalScroll(direction, granularity)) {
+ if (r && !r->isListBox() && r->enclosingBox().logicalScroll(direction, granularity)) {
setFrameWasScrolledByUser();
return true;
}
Modified: trunk/Source/WebCore/page/FrameView.cpp (170023 => 170024)
--- trunk/Source/WebCore/page/FrameView.cpp 2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/page/FrameView.cpp 2014-06-16 19:52:21 UTC (rev 170024)
@@ -1189,7 +1189,7 @@
if (body->hasTagName(framesetTag) && !frameFlatteningEnabled()) {
body->renderer()->setChildNeedsLayout();
} else if (body->hasTagName(bodyTag)) {
- if (!m_firstLayout && m_size.height() != layoutHeight() && body->renderer()->enclosingBox()->stretchesToViewport())
+ if (!m_firstLayout && m_size.height() != layoutHeight() && body->renderer()->enclosingBox().stretchesToViewport())
body->renderer()->setChildNeedsLayout();
}
}
Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (170023 => 170024)
--- trunk/Source/WebCore/rendering/RenderBox.cpp 2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp 2014-06-16 19:52:21 UTC (rev 170024)
@@ -3163,14 +3163,14 @@
}
logicalLeft.setValue(Fixed, staticPosition);
} else {
- RenderBox* enclosingBox = child->parent()->enclosingBox();
+ RenderBox& enclosingBox = child->parent()->enclosingBox();
LayoutUnit staticPosition = child->layer()->staticInlinePosition() + containerLogicalWidth + containerBlock->borderLogicalLeft();
- for (RenderElement* curr = enclosingBox; curr; curr = curr->container()) {
+ for (RenderElement* curr = &enclosingBox; curr; curr = curr->container()) {
if (curr->isBox()) {
if (curr != containerBlock)
staticPosition -= toRenderBox(curr)->logicalLeft();
- if (curr == enclosingBox)
- staticPosition -= enclosingBox->logicalWidth();
+ if (curr == &enclosingBox)
+ staticPosition -= enclosingBox.logicalWidth();
if (region && curr->isRenderBlock()) {
const RenderBlock* cb = toRenderBlock(curr);
region = cb->clampToStartAndEndRegions(region);
@@ -3178,8 +3178,8 @@
if (boxInfo) {
if (curr != containerBlock)
staticPosition -= cb->logicalWidth() - (boxInfo->logicalLeft() + boxInfo->logicalWidth());
- if (curr == enclosingBox)
- staticPosition += enclosingBox->logicalWidth() - boxInfo->logicalWidth();
+ if (curr == &enclosingBox)
+ staticPosition += enclosingBox.logicalWidth() - boxInfo->logicalWidth();
}
}
}
Modified: trunk/Source/WebCore/rendering/RenderFlowThread.cpp (170023 => 170024)
--- trunk/Source/WebCore/rendering/RenderFlowThread.cpp 2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/rendering/RenderFlowThread.cpp 2014-06-16 19:52:21 UTC (rev 170024)
@@ -823,7 +823,7 @@
// (e.g. if we use containingBlock() the shadow controls of a video element won't get the range from the
// video box because it's not a block; they need to be patched separately).
ASSERT(cb->parent());
- cb = cb->parent()->enclosingBox();
+ cb = &cb->parent()->enclosingBox();
ASSERT(cb);
// If a box doesn't have a cached region range it usually means the box belongs to a line so startRegion should be equal with endRegion.
@@ -865,12 +865,11 @@
if (!m_regionList.contains(const_cast<RenderRegion*>(region)))
return false;
- RenderBox* enclosingBox = object->enclosingBox();
RenderRegion* enclosingBoxStartRegion = nullptr;
RenderRegion* enclosingBoxEndRegion = nullptr;
// If the box has no range, do not check regionInRange. Boxes inside inlines do not get ranges.
// Instead, the containing RootInlineBox will abort when trying to paint inside the wrong region.
- if (computedRegionRangeForBox(enclosingBox, enclosingBoxStartRegion, enclosingBoxEndRegion)
+ if (computedRegionRangeForBox(&object->enclosingBox(), enclosingBoxStartRegion, enclosingBoxEndRegion)
&& !regionInRange(region, enclosingBoxStartRegion, enclosingBoxEndRegion))
return false;
@@ -889,10 +888,9 @@
if (!m_regionList.contains(const_cast<RenderRegion*>(region)))
return false;
- RenderBox* enclosingBox = object->enclosingBox();
RenderRegion* enclosingBoxStartRegion = nullptr;
RenderRegion* enclosingBoxEndRegion = nullptr;
- if (!getRegionRangeForBox(enclosingBox, enclosingBoxStartRegion, enclosingBoxEndRegion))
+ if (!getRegionRangeForBox(&object->enclosingBox(), enclosingBoxStartRegion, enclosingBoxEndRegion))
return false;
if (!regionInRange(region, enclosingBoxStartRegion, enclosingBoxEndRegion))
Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (170023 => 170024)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2014-06-16 19:52:21 UTC (rev 170024)
@@ -5334,7 +5334,7 @@
else
layerBoundsWithVisualOverflow.moveBy(LayoutPoint(flowThread->width(), 0));
} else {
- RenderBlock* rendererContainingBlock = boxModelObject.enclosingBox()->isRenderBlock() ? toRenderBlock(boxModelObject.enclosingBox()) : 0;
+ RenderBlock* rendererContainingBlock = boxModelObject.enclosingBox().isRenderBlock() ? toRenderBlock(&boxModelObject.enclosingBox()) : 0;
if (rendererContainingBlock)
rendererContainingBlock->flipForWritingMode(layerBoundsWithVisualOverflow);
}
Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (170023 => 170024)
--- trunk/Source/WebCore/rendering/RenderObject.cpp 2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp 2014-06-16 19:52:21 UTC (rev 170024)
@@ -490,10 +490,9 @@
return true;
}
-RenderBox* RenderObject::enclosingBox() const
+RenderBox& RenderObject::enclosingBox() const
{
- // FIXME: This should return a reference; it can always find the root RenderView.
- return lineageOfType<RenderBox>(const_cast<RenderObject&>(*this)).first();
+ return *lineageOfType<RenderBox>(const_cast<RenderObject&>(*this)).first();
}
RenderBoxModelObject* RenderObject::enclosingBoxModelObject() const
Modified: trunk/Source/WebCore/rendering/RenderObject.h (170023 => 170024)
--- trunk/Source/WebCore/rendering/RenderObject.h 2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/rendering/RenderObject.h 2014-06-16 19:52:21 UTC (rev 170024)
@@ -206,7 +206,7 @@
bool scrollRectToVisible(const LayoutRect&, const ScrollAlignment& alignX = ScrollAlignment::alignCenterIfNeeded, const ScrollAlignment& alignY = ScrollAlignment::alignCenterIfNeeded);
// Convenience function for getting to the nearest enclosing box of a RenderObject.
- RenderBox* enclosingBox() const;
+ RenderBox& enclosingBox() const;
RenderBoxModelObject* enclosingBoxModelObject() const;
bool fixedPositionedWithNamedFlowContainingBlock() const;
Modified: trunk/Source/WebCore/rendering/RenderScrollbar.cpp (170023 => 170024)
--- trunk/Source/WebCore/rendering/RenderScrollbar.cpp 2014-06-16 19:46:36 UTC (rev 170023)
+++ trunk/Source/WebCore/rendering/RenderScrollbar.cpp 2014-06-16 19:52:21 UTC (rev 170024)
@@ -77,7 +77,9 @@
return currentRenderer;
}
ASSERT(m_ownerElement);
- return m_ownerElement->renderer() ? m_ownerElement->renderer()->enclosingBox() : nullptr;
+ if (m_ownerElement->renderer())
+ return &m_ownerElement->renderer()->enclosingBox();
+ return nullptr;
}
void RenderScrollbar::setParent(ScrollView* parent)