Index: Source/core/page/FrameView.cpp |
diff --git a/Source/core/page/FrameView.cpp b/Source/core/page/FrameView.cpp |
index 439873e1374dc39dcf3037aec9cc34d9232d45a5..2fc130c62900722736729efb45612f84244a0860 100644 |
--- a/Source/core/page/FrameView.cpp |
+++ b/Source/core/page/FrameView.cpp |
@@ -513,13 +513,13 @@ void FrameView::setContentsSize(const IntSize& size) |
ScrollView::setContentsSize(size); |
ScrollView::contentsResized(); |
- Page* page = frame() ? frame()->page() : 0; |
+ Page* page = frame().page(); |
if (!page) |
return; |
updateScrollableAreaSet(); |
- page->chrome().contentsSizeChanged(frame(), size); // Notify only. |
+ page->chrome().contentsSizeChanged(m_frame.get(), size); // Notify only. |
m_deferSetNeedsLayouts--; |
@@ -637,7 +637,7 @@ void FrameView::calculateScrollbarModesForLayout(ScrollbarMode& hMode, Scrollbar |
// Seamless documents begin with heights of 0; we special case that here |
// to correctly render documents that don't need scrollbars. |
IntSize fullVisibleSize = visibleContentRect(IncludeScrollbars).size(); |
- bool isSeamlessDocument = frame() && frame()->document() && frame()->document()->shouldDisplaySeamlesslyWithParent(); |
+ bool isSeamlessDocument = frame().document() && frame().document()->shouldDisplaySeamlesslyWithParent(); |
vMode = (isSeamlessDocument && !fullVisibleSize.height()) ? ScrollbarAlwaysOff : ScrollbarAuto; |
} else { |
hMode = ScrollbarAlwaysOff; |
@@ -831,7 +831,7 @@ void FrameView::performPreLayoutTasks() |
// Don't schedule more layouts, we're in one. |
TemporaryChange<bool> changeSchedulingEnabled(m_layoutSchedulingEnabled, false); |
- if (!m_nestedLayoutCount && !m_inSynchronousPostLayout && m_postLayoutTasksTimer.isActive() && !frame()->document()->shouldDisplaySeamlesslyWithParent()) { |
+ if (!m_nestedLayoutCount && !m_inSynchronousPostLayout && m_postLayoutTasksTimer.isActive() && !frame().document()->shouldDisplaySeamlesslyWithParent()) { |
// This is a new top-level layout. If there are any remaining tasks from the previous layout, finish them now. |
m_inSynchronousPostLayout = true; |
performPostLayoutTasks(); |
@@ -879,7 +879,7 @@ void FrameView::performLayout(RenderObject* rootForThisLayout, bool inSubtreeLay |
rootForThisLayout->layout(); // THIS IS WHERE LAYOUT ACTUALLY HAPPENS. |
- bool autosized = frame()->document()->textAutosizer()->processSubtree(rootForThisLayout); |
+ bool autosized = frame().document()->textAutosizer()->processSubtree(rootForThisLayout); |
if (autosized && rootForThisLayout->needsLayout()) { |
TRACE_EVENT0("webkit", "2nd layout due to Text Autosizing"); |
rootForThisLayout->layout(); |
@@ -900,7 +900,7 @@ void FrameView::scheduleOrPerformPostLayoutTasks() |
} |
if (!m_inSynchronousPostLayout) { |
- if (frame()->document()->shouldDisplaySeamlesslyWithParent()) { |
+ if (frame().document()->shouldDisplaySeamlesslyWithParent()) { |
if (RenderView* renderView = this->renderView()) |
renderView->updateWidgetPositions(); |
} else { |
@@ -911,7 +911,7 @@ void FrameView::scheduleOrPerformPostLayoutTasks() |
} |
} |
- if (!m_postLayoutTasksTimer.isActive() && (needsLayout() || m_inSynchronousPostLayout || frame()->document()->shouldDisplaySeamlesslyWithParent())) { |
+ if (!m_postLayoutTasksTimer.isActive() && (needsLayout() || m_inSynchronousPostLayout || frame().document()->shouldDisplaySeamlesslyWithParent())) { |
// If we need layout or are already in a synchronous call to postLayoutTasks(), |
// defer widget updates and event dispatch until after we return. postLayoutTasks() |
// can make us need to update again, and we can get stuck in a nasty cycle unless |
@@ -1097,10 +1097,9 @@ void FrameView::layout(bool allowSubtree) |
// in Frame/Page will fire. One of the post-layout tasks is disconnecting the Frame from |
// the page in fast/frames/crash-remove-iframe-during-object-beforeload-2.html |
// necessitating this check here. |
- ASSERT(frame()); |
// ASSERT(frame()->page()); |
- if (frame() && frame()->page()) |
- frame()->page()->chrome().client().layoutUpdated(frame()); |
+ if (frame().page()) |
+ frame().page()->chrome().client().layoutUpdated(m_frame.get()); |
} |
RenderBox* FrameView::embeddedContentBox() const |
@@ -1555,8 +1554,8 @@ void FrameView::setViewportConstrainedObjectsNeedLayout() |
void FrameView::scrollPositionChanged() |
{ |
- frame()->eventHandler()->sendScrollEvent(); |
- frame()->eventHandler()->dispatchFakeMouseMoveEventSoon(); |
+ m_frame->eventHandler()->sendScrollEvent(); |
+ m_frame->eventHandler()->dispatchFakeMouseMoveEventSoon(); |
if (RenderView* renderView = this->renderView()) { |
if (renderView->usesCompositing()) |
@@ -1586,7 +1585,7 @@ void FrameView::updateFixedElementsAfterScrolling() |
bool FrameView::shouldRubberBandInDirection(ScrollDirection direction) const |
{ |
- Page* page = frame() ? frame()->page() : 0; |
+ Page* page = frame().page(); |
if (!page) |
return ScrollView::shouldRubberBandInDirection(direction); |
return page->chrome().client().shouldRubberBandInDirection(direction); |
@@ -1612,7 +1611,7 @@ bool FrameView::requestScrollPositionUpdate(const IntPoint& position) |
HostWindow* FrameView::hostWindow() const |
{ |
- Page* page = frame() ? frame()->page() : 0; |
+ Page* page = frame().page(); |
if (!page) |
return 0; |
return &page->chrome(); |
@@ -1674,7 +1673,7 @@ void FrameView::visibleContentsResized() |
// be triggered before the view is attached by Frame::createView(...) setting |
// various values such as setScrollBarModes(...) for example. An ASSERT is |
// triggered when a view is layout before being attached to a frame(). |
- if (!frame()->view()) |
+ if (!frame().view()) |
return; |
if (!useFixedLayout() && needsLayout()) |
@@ -1855,7 +1854,7 @@ void FrameView::scheduleRelayout() |
// When frame seamless is enabled, the contents of the frame could affect the layout of the parent frames. |
// Also invalidate parent frame starting from the owner element of this frame. |
- if (m_frame->ownerRenderer() && frame()->document()->shouldDisplaySeamlesslyWithParent()) |
+ if (m_frame->ownerRenderer() && m_frame->document()->shouldDisplaySeamlesslyWithParent()) |
m_frame->ownerRenderer()->setNeedsLayout(); |
int delay = m_frame->document()->minimumLayoutDelay(); |
@@ -2260,7 +2259,7 @@ void FrameView::autoSizeIfEnabled() |
TemporaryChange<bool> changeInAutoSize(m_inAutoSize, true); |
- Document* document = frame()->document(); |
+ Document* document = frame().document(); |
if (!document) |
return; |
@@ -2334,7 +2333,7 @@ void FrameView::autoSizeIfEnabled() |
// While loading only allow the size to increase (to avoid twitching during intermediate smaller states) |
// unless autoresize has just been turned on or the maximum size is smaller than the current size. |
if (m_didRunAutosize && size.height() <= m_maxAutoSize.height() && size.width() <= m_maxAutoSize.width() |
- && !frame()->document()->loadEventFinished() && (newSize.height() < size.height() || newSize.width() < size.width())) |
+ && !m_frame->document()->loadEventFinished() && (newSize.height() < size.height() || newSize.width() < size.width())) |
break; |
resize(newSize.width(), newSize.height()); |
@@ -2441,7 +2440,7 @@ IntRect FrameView::windowClipRectForFrameOwner(const HTMLFrameOwnerElement* owne |
bool FrameView::isActive() const |
{ |
- Page* page = frame()->page(); |
+ Page* page = frame().page(); |
return page && page->focusController().isActive(); |
} |
@@ -2451,7 +2450,7 @@ void FrameView::scrollTo(const IntSize& newOffset) |
ScrollView::scrollTo(newOffset); |
if (offset != scrollOffset()) |
scrollPositionChanged(); |
- frame()->loader()->client()->didChangeScrollOffset(); |
+ frame().loader()->client()->didChangeScrollOffset(); |
} |
void FrameView::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect& rect) |
@@ -2464,12 +2463,12 @@ void FrameView::invalidateScrollbarRect(Scrollbar* scrollbar, const IntRect& rec |
void FrameView::getTickmarks(Vector<IntRect>& tickmarks) const |
{ |
- tickmarks = frame()->document()->markers()->renderedRectsForMarkers(DocumentMarker::TextMatch); |
+ tickmarks = frame().document()->markers()->renderedRectsForMarkers(DocumentMarker::TextMatch); |
} |
IntRect FrameView::windowResizerRect() const |
{ |
- Page* page = frame() ? frame()->page() : 0; |
+ Page* page = frame().page(); |
if (!page) |
return IntRect(); |
return page->chrome().windowResizerRect(); |
@@ -2500,7 +2499,7 @@ ScrollableArea* FrameView::enclosingScrollableArea() const |
IntRect FrameView::scrollableAreaBoundingBox() const |
{ |
- RenderPart* ownerRenderer = frame()->ownerRenderer(); |
+ RenderPart* ownerRenderer = frame().ownerRenderer(); |
if (!ownerRenderer) |
return frameRect(); |
@@ -2708,11 +2707,11 @@ StyleColor FrameView::documentBackgroundColor() const |
// Background images are unfortunately impractical to include. |
// Return invalid Color objects whenever there is insufficient information. |
- if (!frame()->document()) |
+ if (!frame().document()) |
return Color(); |
- Element* htmlElement = frame()->document()->documentElement(); |
- Element* bodyElement = frame()->document()->body(); |
+ Element* htmlElement = frame().document()->documentElement(); |
+ Element* bodyElement = frame().document()->body(); |
// Start with invalid colors. |
StyleColor htmlBackgroundColor; |
@@ -2811,9 +2810,6 @@ void FrameView::setWasScrolledByUser(bool wasScrolledByUser) |
void FrameView::paintContents(GraphicsContext* p, const IntRect& rect) |
{ |
- if (!frame()) |
- return; |
- |
Document* document = m_frame->document(); |
#ifndef NDEBUG |
@@ -3343,8 +3339,8 @@ bool FrameView::isFlippedDocument() const |
AXObjectCache* FrameView::axObjectCache() const |
{ |
- if (frame() && frame()->document()) |
- return frame()->document()->existingAXObjectCache(); |
+ if (frame().document()) |
+ return frame().document()->existingAXObjectCache(); |
return 0; |
} |