#ifndef CHROME_BROWSER_MEDIA_WEBRTC_CAPTURE_POLICY_UTILS_H_
#define CHROME_BROWSER_MEDIA_WEBRTC_CAPTURE_POLICY_UTILS_H_
#include <vector>
#include "chrome/browser/media/webrtc/desktop_media_list.h"
class GURL;
class PrefRegistrySimple;
class PrefService;
namespace content {
class BrowserContext;
class WebContents;
}
namespace crosapi::mojom {
class MultiCaptureService;
}
enum class AllowedScreenCaptureLevel { … };
namespace capture_policy {
extern const char kManagedAccessToGetAllScreensMediaAllowedForUrls[];
#if BUILDFLAG(IS_CHROMEOS_ASH)
extern const char kManagedMultiScreenCaptureAllowedForUrls[];
#endif
#if BUILDFLAG(IS_CHROMEOS)
void SetMultiCaptureServiceForTesting(
crosapi::mojom::MultiCaptureService* service);
crosapi::mojom::MultiCaptureService* GetMultiCaptureService();
#endif
AllowedScreenCaptureLevel GetAllowedCaptureLevel(
const GURL& request_origin,
content::WebContents* capturer_web_contents);
AllowedScreenCaptureLevel GetAllowedCaptureLevel(const GURL& request_origin,
const PrefService& prefs);
DesktopMediaList::WebContentsFilter GetIncludableWebContentsFilter(
const GURL& request_origin,
AllowedScreenCaptureLevel capture_level);
void FilterMediaList(std::vector<DesktopMediaList::Type>& media_types,
AllowedScreenCaptureLevel capture_level);
void ShowCaptureTerminatedDialog(content::WebContents* contents);
void RegisterProfilePrefs(PrefRegistrySimple* registry);
void CheckGetAllScreensMediaAllowed(content::BrowserContext* context,
const GURL& url,
base::OnceCallback<void(bool)> callback);
void CheckGetAllScreensMediaAllowedForAnyOrigin(
content::BrowserContext* context,
base::OnceCallback<void(bool)> callback);
#if !BUILDFLAG(IS_ANDROID)
bool IsTransientActivationRequiredForGetDisplayMedia(
content::WebContents* contents);
#endif
}
#endif