| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "core/frame/DeprecatedScheduleStyleRecalcDuringLayout.h" |
| |
| #include "wtf/Assertions.h" |
| |
| namespace blink { |
| |
| DeprecatedScheduleStyleRecalcDuringLayout::DeprecatedScheduleStyleRecalcDuringLayout(DocumentLifecycle& lifecycle) |
| : m_lifecycle(lifecycle) |
| , m_deprecatedTransition(DocumentLifecycle::InPerformLayout, DocumentLifecycle::VisualUpdatePending) |
| , m_wasInPerformLayout(lifecycle.state() == DocumentLifecycle::InPerformLayout) |
| { |
| } |
| |
| DeprecatedScheduleStyleRecalcDuringLayout::~DeprecatedScheduleStyleRecalcDuringLayout() |
| { |
| // This block of code is intended to restore the state machine to the |
| // proper state. The style recalc will still have been schedule, however. |
| if (m_wasInPerformLayout && m_lifecycle.state() != DocumentLifecycle::InPerformLayout) { |
| ASSERT(m_lifecycle.state() == DocumentLifecycle::VisualUpdatePending); |
| m_lifecycle.advanceTo(DocumentLifecycle::InPerformLayout); |
| } |
| } |
| |
| } // namespace blink |