| // 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 CHROME_BROWSER_PERMISSIONS_ONE_TIME_PERMISSIONS_TRACKER_OBSERVER_H_ |
| #define CHROME_BROWSER_PERMISSIONS_ONE_TIME_PERMISSIONS_TRACKER_OBSERVER_H_ |
| |
| #include "base/observer_list_types.h" |
| #include "url/origin.h" |
| |
| class OneTimePermissionsTrackerObserver : public base::CheckedObserver { |
| public: |
| // Event fired when the last tab in a given Profile whose top-level document |
| // is from |origin| is closed or navigated away. |
| virtual void OnLastPageFromOriginClosed(const url::Origin&) = 0; |
| |
| // Event fired when all tabs in a given Profile whose top-level document is |
| // from |origin| have been discarded or have been in the backgrounded for |
| // OneTimePermissionsTracker::kBackgroundExpirationDuration |
| virtual void OnAllTabsInBackgroundTimerExpired(const url::Origin&) = 0; |
| |
| // Event fired when one time permission for an origin's camera permission |
| // should be expired. |
| virtual void OnCapturingVideoExpired(const url::Origin&) = 0; |
| |
| // Event fired when one time permission for an origin's microphone permission |
| // should be expired. |
| virtual void OnCapturingAudioExpired(const url::Origin&) = 0; |
| |
| // Event fired to let the observers know that the BrowserContext is going to |
| // shut down. |
| // The observers don't need to take care of removing themselves as an |
| // observer. |
| virtual void OnShutdown() = 0; |
| }; |
| |
| #endif // CHROME_BROWSER_PERMISSIONS_ONE_TIME_PERMISSIONS_TRACKER_OBSERVER_H_ |