chromium/ui/accessibility/ax_action_handler_registry.h

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

#ifndef UI_ACCESSIBILITY_AX_ACTION_HANDLER_REGISTRY_H_
#define UI_ACCESSIBILITY_AX_ACTION_HANDLER_REGISTRY_H_

#include <cstdint>
#include <map>
#include <utility>

#include "base/observer_list.h"
#include "ui/accessibility/ax_action_handler.h"
#include "ui/accessibility/ax_base_export.h"
#include "ui/accessibility/ax_tree_id.h"

namespace base {
template <typename T>
class NoDestructor;
}  // namespace base

namespace ui {

class AXActionHandlerBase;

// An observer is informed of all automation actions.
class AXActionHandlerObserver : public base::CheckedObserver {};

// This class generates and saves a runtime id for an accessibility tree.
// It provides a few distinct forms of generating an id:
//     - from a frame id (which consists of a process and routing id)
//     - from a backing |AXActionHandlerBase| object
//
// The first form allows underlying instances to change but refer to the same
// frame.
// The second form allows this registry to track the object for later retrieval.
class AX_BASE_EXPORT AXActionHandlerRegistry final {};

}  // namespace ui

#endif  // UI_ACCESSIBILITY_AX_ACTION_HANDLER_REGISTRY_H_