blob: 9aecc45a8bad01b0fa0875aa435b71e4583fe5ab [file] [log] [blame]
// Copyright 2018 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.
#ifndef PictureInPictureController_h
#define PictureInPictureController_h
#include "core/frame/LocalFrame.h"
#include "modules/ModulesExport.h"
namespace blink {
class MODULES_EXPORT PictureInPictureController
: public GarbageCollectedFinalized<PictureInPictureController>,
public Supplement<Document> {
USING_GARBAGE_COLLECTED_MIXIN(PictureInPictureController);
WTF_MAKE_NONCOPYABLE(PictureInPictureController);
public:
virtual ~PictureInPictureController();
static PictureInPictureController& Ensure(Document&);
static const char* SupplementName();
bool PictureInPictureEnabled() const;
void SetPictureInPictureEnabledForTesting(bool);
enum class Status {
kEnabled,
kDisabledByFeaturePolicy,
kDisabledBySystem,
};
Status GetStatus() const;
private:
explicit PictureInPictureController(Document&);
bool picture_in_picture_enabled_ = true;
};
} // namespace blink
#endif // PictureInPictureController_h