Make FrameView use TemporarilyChange in a few places.
authorlevin@chromium.org <levin@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 30 Nov 2011 21:37:51 +0000 (21:37 +0000)
committerlevin@chromium.org <levin@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 30 Nov 2011 21:37:51 +0000 (21:37 +0000)
commit741989a265664a12f356cfb8e553735ede172b6a
treeca673260c5349f34e6c788b981308205cb4f7c00
parent9ce099660703fbe49e839bfb80bd76248aa07efb
Make FrameView use TemporarilyChange in a few places.
https://bugs.webkit.org/show_bug.cgi?id=73403

Reviewed by Dmitry Titov.

No new functionality exposed so no new tests.

* page/FrameView.cpp:
(WebCore::FrameView::forceLayoutParentViewIfNeeded): Since this function isn't
re-entrant, TemporarilyChange does the same thing but in a more robust manner
in case there would be a return added in the function.
(WebCore::FrameView::layout): This place is the key reason for the change.
layout is re-entrant, but layout will set m_layoutSchedulingEnabled to true when
leaving though the "layout" function higher in the stack would still have it set
to false (which works ok but is hit by another change I'm working on).
The majority of the change is due to indenting the code to make m_layoutSchedulingEnabled
and TemporarilyChange behave like they did before. A few variables were moved before
the scoping to allow them to be used after the scope is closed.
(WebCore::FrameView::setScrollPosition): TemporarilyChange does exactly what
this code did before (saving the old value and restoring it).

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@101549 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/page/FrameView.cpp