1 // Copyright 2016 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 "third_party/blink/renderer/core/fullscreen/scoped_allow_fullscreen.h"
6 
7 #include "third_party/blink/renderer/platform/wtf/assertions.h"
8 #include "third_party/blink/renderer/platform/wtf/wtf.h"
9 
10 namespace blink {
11 
12 base::Optional<ScopedAllowFullscreen::Reason> ScopedAllowFullscreen::reason_;
13 
ScopedAllowFullscreen(Reason reason)14 ScopedAllowFullscreen::ScopedAllowFullscreen(Reason reason) {
15   DCHECK(IsMainThread());
16   previous_reason_ = reason_;
17   reason_ = reason;
18 }
19 
~ScopedAllowFullscreen()20 ScopedAllowFullscreen::~ScopedAllowFullscreen() {
21   DCHECK(IsMainThread());
22   reason_ = previous_reason_;
23 }
24 
25 // static
26 base::Optional<ScopedAllowFullscreen::Reason>
FullscreenAllowedReason()27 ScopedAllowFullscreen::FullscreenAllowedReason() {
28   DCHECK(IsMainThread());
29   return reason_;
30 }
31 
32 }  // namespace blink
33