chromium/third_party/blink/renderer/core/dom/focus_params.h

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_FOCUS_PARAMS_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_FOCUS_PARAMS_H_

#include "third_party/blink/public/mojom/input/focus_type.mojom-blink.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_focus_options.h"
#include "third_party/blink/renderer/core/dom/element.h"
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"

namespace blink {

// Focus changes that cross a fenced frame boundary are observable by both
// frames involved in the focus change. Because of that, focus calls that
// originate from a JavaScript call can be used as a communication channel
// between a fenced frame and its embedder. For those focus calls, we gate focus
// on user activation to ensure that a user has recently interacted with a frame
// before allowing focus to happen. By default, we assume focus can be used as a
// communication channel. However, if a focus call can only be triggered
// directly through user interaction and can't be triggered via script, it is
// safe to not gate the focus call on user activation.
enum class FocusTrigger {};

struct FocusParams {};

}  // namespace blink
#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_DOM_FOCUS_PARAMS_H_