#include "content/browser/image_capture/image_capture_impl.h"
#include <utility>
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/task/bind_post_task.h"
#include "base/unguessable_token.h"
#include "content/browser/browser_main_loop.h"
#include "content/browser/media/media_devices_permission_checker.h"
#include "content/browser/renderer_host/media/media_stream_manager.h"
#include "content/browser/renderer_host/media/video_capture_manager.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/common/content_features.h"
#include "media/capture/mojom/image_capture_types.h"
#include "media/capture/video/video_capture_device.h"
#include "mojo/public/cpp/bindings/callback_helpers.h"
#include "third_party/blink/public/common/mediastream/media_stream_request.h"
namespace content {
namespace {
void GetPhotoStateOnIOThread(const std::string& source_id,
MediaStreamManager* media_stream_manager,
ImageCaptureImpl::GetPhotoStateCallback callback) { … }
void SetPhotoOptionsOnIOThread(
const std::string& source_id,
MediaStreamManager* media_stream_manager,
media::mojom::PhotoSettingsPtr settings,
ImageCaptureImpl::SetPhotoOptionsCallback callback) { … }
void TakePhotoOnIOThread(const std::string& source_id,
MediaStreamManager* media_stream_manager,
ImageCaptureImpl::TakePhotoCallback callback) { … }
}
void ImageCaptureImpl::Create(
RenderFrameHost* render_frame_host,
mojo::PendingReceiver<media::mojom::ImageCapture> receiver) { … }
void ImageCaptureImpl::GetPhotoState(const std::string& source_id,
GetPhotoStateCallback callback) { … }
void ImageCaptureImpl::SetPhotoOptions(const std::string& source_id,
media::mojom::PhotoSettingsPtr settings,
SetPhotoOptionsCallback callback) { … }
void ImageCaptureImpl::TakePhoto(const std::string& source_id,
TakePhotoCallback callback) { … }
ImageCaptureImpl::ImageCaptureImpl(
RenderFrameHost& render_frame_host,
mojo::PendingReceiver<media::mojom::ImageCapture> receiver)
: … { … }
ImageCaptureImpl::~ImageCaptureImpl() = default;
void ImageCaptureImpl::OnGetPhotoState(GetPhotoStateCallback callback,
media::mojom::PhotoStatePtr state) { … }
bool ImageCaptureImpl::HasPanTiltZoomPermissionGranted() { … }
}