Home | History | Annotate | Download | only in frame
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "config.h"
      6 #include "core/frame/DeprecatedScheduleStyleRecalcDuringLayout.h"
      7 
      8 #include "wtf/Assertions.h"
      9 
     10 namespace WebCore {
     11 
     12 DeprecatedScheduleStyleRecalcDuringLayout::DeprecatedScheduleStyleRecalcDuringLayout(DocumentLifecycle& lifecycle)
     13     : m_lifecycle(lifecycle)
     14     , m_deprecatedTransition(DocumentLifecycle::InPerformLayout, DocumentLifecycle::VisualUpdatePending)
     15     , m_wasInPerformLayout(lifecycle.state() == DocumentLifecycle::InPerformLayout)
     16 {
     17 }
     18 
     19 DeprecatedScheduleStyleRecalcDuringLayout::~DeprecatedScheduleStyleRecalcDuringLayout()
     20 {
     21     // This block of code is intended to restore the state machine to the
     22     // proper state. The style recalc will still have been schedule, however.
     23     if (m_wasInPerformLayout && m_lifecycle.state() != DocumentLifecycle::InPerformLayout) {
     24         ASSERT(m_lifecycle.state() == DocumentLifecycle::VisualUpdatePending);
     25         m_lifecycle.advanceTo(DocumentLifecycle::InPerformLayout);
     26     }
     27 }
     28 
     29 }
     30