chromium/chrome/browser/permissions/one_time_permissions_tracker_helper.h

// 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_HELPER_H_
#define CHROME_BROWSER_PERMISSIONS_ONE_TIME_PERMISSIONS_TRACKER_HELPER_H_

#include "chrome/browser/media/webrtc/media_stream_capture_indicator.h"
#include "chrome/browser/resource_coordinator/tab_lifecycle_observer.h"
#include "content/public/browser/visibility.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/browser/web_contents_user_data.h"

// This class informs OneTimePermissionsTracker of pages being loaded, navigated
// or destroyed in each tab. This information is then used by the
// OneTimePermissionProvider to revoke permissions.
class OneTimePermissionsTrackerHelper
    : public content::WebContentsObserver,
      public content::WebContentsUserData<OneTimePermissionsTrackerHelper>,
      public resource_coordinator::TabLifecycleObserver,
      public MediaStreamCaptureIndicator::Observer {};

#endif  // CHROME_BROWSER_PERMISSIONS_ONE_TIME_PERMISSIONS_TRACKER_HELPER_H_