#include "chrome/browser/media/webrtc/desktop_media_picker_factory_impl.h"
#include "base/containers/contains.h"
#include "base/no_destructor.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/media/webrtc/current_tab_desktop_media_list.h"
#include "chrome/browser/media/webrtc/desktop_capturer_wrapper.h"
#include "chrome/browser/media/webrtc/native_desktop_media_list.h"
#include "chrome/browser/media/webrtc/tab_desktop_media_list.h"
#include "content/public/browser/desktop_capture.h"
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "chrome/browser/media/webrtc/desktop_media_list_ash.h"
#endif
#if BUILDFLAG(IS_MAC)
#include "chrome/browser/media/webrtc/thumbnail_capturer_mac.h"
#endif
namespace {
#if !BUILDFLAG(IS_CHROMEOS_ASH)
std::unique_ptr<ThumbnailCapturer> MakeScreenCapturer() { … }
std::unique_ptr<ThumbnailCapturer> MakeWindowCapturer() { … }
#endif
}
DesktopMediaPickerFactoryImpl::DesktopMediaPickerFactoryImpl() = default;
DesktopMediaPickerFactoryImpl::~DesktopMediaPickerFactoryImpl() = default;
DesktopMediaPickerFactoryImpl* DesktopMediaPickerFactoryImpl::GetInstance() { … }
std::unique_ptr<DesktopMediaPicker> DesktopMediaPickerFactoryImpl::CreatePicker(
const content::MediaStreamRequest* request) { … }
std::vector<std::unique_ptr<DesktopMediaList>>
DesktopMediaPickerFactoryImpl::CreateMediaList(
const std::vector<DesktopMediaList::Type>& types,
content::WebContents* web_contents,
DesktopMediaList::WebContentsFilter includable_web_contents_filter) { … }