| Index: Source/core/frame/FrameView.cpp
|
| diff --git a/Source/core/frame/FrameView.cpp b/Source/core/frame/FrameView.cpp
|
| index 5fced74a6cef13722d53860fc67b4800d8797fdd..330539b9069115fdfa18d254f314829cfc1c64eb 100644
|
| --- a/Source/core/frame/FrameView.cpp
|
| +++ b/Source/core/frame/FrameView.cpp
|
| @@ -595,11 +595,7 @@ void FrameView::calculateScrollbarModesForLayout(ScrollbarMode& hMode, Scrollbar
|
|
|
| if (m_canHaveScrollbars || strategy == RulesFromWebContentOnly) {
|
| hMode = ScrollbarAuto;
|
| - // 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().document() && frame().document()->shouldDisplaySeamlesslyWithParent();
|
| - vMode = (isSeamlessDocument && !fullVisibleSize.height()) ? ScrollbarAlwaysOff : ScrollbarAuto;
|
| + vMode = ScrollbarAuto;
|
| } else {
|
| hMode = ScrollbarAlwaysOff;
|
| vMode = ScrollbarAlwaysOff;
|
| @@ -785,7 +781,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()) {
|
| // This is a new top-level layout. If there are any remaining tasks from the previous layout, finish them now.
|
| m_inSynchronousPostLayout = true;
|
| performPostLayoutTasks();
|
| @@ -871,17 +867,13 @@ void FrameView::scheduleOrPerformPostLayoutTasks()
|
| ASSERT(!(m_inSynchronousPostLayout && partialLayout().isStopping()));
|
|
|
| if (!m_inSynchronousPostLayout) {
|
| - if (frame().document()->shouldDisplaySeamlesslyWithParent()) {
|
| - updateWidgetPositions();
|
| - } else {
|
| - m_inSynchronousPostLayout = true;
|
| - // Calls resumeScheduledEvents()
|
| - performPostLayoutTasks();
|
| - m_inSynchronousPostLayout = false;
|
| - }
|
| + m_inSynchronousPostLayout = true;
|
| + // Calls resumeScheduledEvents()
|
| + performPostLayoutTasks();
|
| + m_inSynchronousPostLayout = false;
|
| }
|
|
|
| - if (!m_postLayoutTasksTimer.isActive() && (needsLayout() || m_inSynchronousPostLayout || frame().document()->shouldDisplaySeamlesslyWithParent())) {
|
| + if (!m_postLayoutTasksTimer.isActive() && (needsLayout() || m_inSynchronousPostLayout)) {
|
| // 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
|
| @@ -1789,11 +1781,6 @@ void FrameView::scheduleRelayout()
|
| return;
|
| InspectorInstrumentation::didInvalidateLayout(m_frame.get());
|
|
|
| - // 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() && m_frame->document()->shouldDisplaySeamlesslyWithParent())
|
| - m_frame->ownerRenderer()->setNeedsLayout();
|
| -
|
| int delay = m_frame->document()->minimumLayoutDelay();
|
| if (m_layoutTimer.isActive() && m_delayedLayout && !delay)
|
| unscheduleRelayout();
|
| @@ -2809,8 +2796,6 @@ void FrameView::updateLayoutAndStyleIfNeededRecursive()
|
| for (Vector<RefPtr<FrameView> >::iterator it = frameViews.begin(); it != end; ++it)
|
| (*it)->updateLayoutAndStyleIfNeededRecursive();
|
|
|
| - // When seamless is on, child frame can mark parent frame dirty. In such case, child frame
|
| - // needs to call layout on parent frame recursively.
|
| // This assert ensures that parent frames are clean, when child frames finished updating layout and style.
|
| ASSERT(!needsLayout());
|
| }
|
|
|