// Copyright 2024 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CONTENT_BROWSER_ACCESSIBILITY_SCOPED_MODE_COLLECTION_H_ #define CONTENT_BROWSER_ACCESSIBILITY_SCOPED_MODE_COLLECTION_H_ #include <list> #include <memory> #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "content/common/content_export.h" #include "ui/accessibility/ax_mode.h" namespace content { class ScopedAccessibilityMode; // A collection of ScopedAccessibilityMode instances. The collection maintains // an always up-to-date view of the union of all contained scopers, accessible // via `accessibility_mode()`. Any change to this value (via calls to `Add()` to // add a new item to the collection or via destruction of a scoper belonging to // the collection) results in running the callback provided at construction. It // is permissible for the collection to be destroyed while scopers minted from // it remain alive. class CONTENT_EXPORT ScopedModeCollection { … }; } // namespace content #endif // CONTENT_BROWSER_ACCESSIBILITY_SCOPED_MODE_COLLECTION_H_