| Index: Source/core/frame/DeprecatedScheduleStyleRecalcDuringLayout.cpp
|
| diff --git a/Source/core/frame/DeprecatedScheduleStyleRecalcDuringLayout.cpp b/Source/core/frame/DeprecatedScheduleStyleRecalcDuringLayout.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..94367d821680aac14467d1f1de7bd75adab1289a
|
| --- /dev/null
|
| +++ b/Source/core/frame/DeprecatedScheduleStyleRecalcDuringLayout.cpp
|
| @@ -0,0 +1,29 @@
|
| +// 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 "config.h"
|
| +#include "core/frame/DeprecatedScheduleStyleRecalcDuringLayout.h"
|
| +
|
| +#include "wtf/Assertions.h"
|
| +
|
| +namespace WebCore {
|
| +
|
| +DeprecatedScheduleStyleRecalcDuringLayout::DeprecatedScheduleStyleRecalcDuringLayout(DocumentLifecycle& lifecycle)
|
| + : m_lifecycle(lifecycle)
|
| + , m_deprecatedTransition(DocumentLifecycle::InPerformLayout, DocumentLifecycle::StyleRecalcPending)
|
| + , 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::StyleRecalcPending);
|
| + m_lifecycle.advanceTo(DocumentLifecycle::InPerformLayout);
|
| + }
|
| +}
|
| +
|
| +}
|
|
|