#include "third_party/blink/renderer/core/html/closewatcher/close_watcher.h"
#include "base/auto_reset.h"
#include "base/containers/adapters.h"
#include "third_party/blink/public/mojom/frame/frame.mojom-blink.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_close_watcher_options.h"
#include "third_party/blink/renderer/core/dom/abort_signal.h"
#include "third_party/blink/renderer/core/dom/events/event.h"
#include "third_party/blink/renderer/core/event_target_names.h"
#include "third_party/blink/renderer/core/event_type_names.h"
#include "third_party/blink/renderer/core/events/keyboard_event.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/input/event_handler.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/keyboard_codes.h"
namespace blink {
namespace {
class DestroyOnAbortAlgorithm final : public AbortSignal::Algorithm { … };
}
CloseWatcher::WatcherStack::WatcherStack(LocalDOMWindow* window)
: … { … }
void CloseWatcher::WatcherStack::Add(CloseWatcher* watcher) { … }
void CloseWatcher::WatcherStack::Remove(CloseWatcher* watcher) { … }
void CloseWatcher::WatcherStack::SetHadUserInteraction(
bool had_user_interaction) { … }
bool CloseWatcher::WatcherStack::CancelEventCanBeCancelable() const { … }
void CloseWatcher::WatcherStack::EscapeKeyHandler(KeyboardEvent* event) { … }
void CloseWatcher::WatcherStack::Signal() { … }
void CloseWatcher::WatcherStack::Trace(Visitor* visitor) const { … }
CloseWatcher* CloseWatcher::Create(LocalDOMWindow& window) { … }
CloseWatcher* CloseWatcher::Create(ScriptState* script_state,
CloseWatcherOptions* options,
ExceptionState& exception_state) { … }
CloseWatcher* CloseWatcher::CreateInternal(LocalDOMWindow& window,
WatcherStack& stack,
CloseWatcherOptions* options) { … }
CloseWatcher::CloseWatcher(LocalDOMWindow& window)
: … { … }
bool CloseWatcher::requestClose() { … }
void CloseWatcher::close() { … }
void CloseWatcher::destroy() { … }
const AtomicString& CloseWatcher::InterfaceName() const { … }
void CloseWatcher::Trace(Visitor* visitor) const { … }
}