// Copyright 2023 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_FILE_SYSTEM_ACCESS_FILE_SYSTEM_ACCESS_OBSERVER_HOST_H_ #define CONTENT_BROWSER_FILE_SYSTEM_ACCESS_FILE_SYSTEM_ACCESS_OBSERVER_HOST_H_ #include <memory> #include "base/containers/flat_set.h" #include "base/containers/unique_ptr_adapters.h" #include "base/sequence_checker.h" #include "content/browser/file_system_access/file_system_access_manager_impl.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "third_party/blink/public/mojom/file_system_access/file_system_access_observer_host.mojom.h" namespace content { class FileSystemAccessObserverObservation; class FileSystemAccessWatcherManager; // Stores the state associated with each FileSystemAccessObserverHost mojo // connection. // // The bulk of the FileSystemObserver implementation is in the // FileSystemAccessWatcherManager class. Each StoragePartition has a single // associated FileSystemAccessWatcherManager instance. By contrast, each // FileSystemAccessObserverHost mojo connection has an associated // FileSystemAccessObserverHost instance, which stores the per-connection state. // // Instances of this class must be accessed exclusively on the UI thread, // because they call into FileSystemAccessWatcherManager directly. class FileSystemAccessObserverHost : public blink::mojom::FileSystemAccessObserverHost { … }; } // namespace content #endif // CONTENT_BROWSER_FILE_SYSTEM_ACCESS_FILE_SYSTEM_ACCESS_OBSERVER_HOST_H_