blob: 8c5728b55efdc40992005a25a6375971516d13f3 [file] [log] [blame]
// Copyright 2017 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 "third_party/blink/renderer/core/frame/frame_lifecycle.h"
#include "base/check_op.h"
#include "third_party/blink/renderer/platform/wtf/assertions.h"
namespace blink {
FrameLifecycle::FrameLifecycle() : state_(kAttached) {}
void FrameLifecycle::AdvanceTo(State state) {
switch (state) {
case kAttached:
case kDetached:
// Normally, only allow state to move forward.
DCHECK_GT(state, state_);
break;
case kDetaching:
// We can go from Detaching to Detaching since the detach() method can be
// re-entered.
DCHECK_GE(state, state_);
break;
}
state_ = state;
}
} // namespace blink