summaryrefslogtreecommitdiff
path: root/chromium/content/browser/image_capture
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/content/browser/image_capture
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-chromium-85-based.tar.gz
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/content/browser/image_capture')
-rw-r--r--chromium/content/browser/image_capture/image_capture_impl.cc46
1 files changed, 13 insertions, 33 deletions
diff --git a/chromium/content/browser/image_capture/image_capture_impl.cc b/chromium/content/browser/image_capture/image_capture_impl.cc
index 0469a4342d2..325eba6cf1e 100644
--- a/chromium/content/browser/image_capture/image_capture_impl.cc
+++ b/chromium/content/browser/image_capture/image_capture_impl.cc
@@ -8,20 +8,16 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
-#include "base/command_line.h"
-#include "base/task/post_task.h"
#include "base/unguessable_token.h"
-#include "build/build_config.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_context.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
-#include "content/public/browser/permission_controller.h"
-#include "content/public/browser/web_contents.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 "content/public/common/content_switches.h"
#include "media/base/bind_to_current_loop.h"
#include "media/capture/mojom/image_capture_types.h"
#include "media/capture/video/video_capture_device.h"
@@ -103,8 +99,8 @@ void ImageCaptureImpl::GetPhotoState(const std::string& source_id,
base::BindOnce(&ImageCaptureImpl::OnGetPhotoState,
weak_factory_.GetWeakPtr(), std::move(callback))),
mojo::CreateEmptyPhotoState());
- base::PostTask(
- FROM_HERE, {BrowserThread::IO},
+ GetIOThreadTaskRunner({})->PostTask(
+ FROM_HERE,
base::BindOnce(&GetPhotoStateOnIOThread, source_id,
BrowserMainLoop::GetInstance()->media_stream_manager(),
std::move(scoped_callback)));
@@ -129,8 +125,8 @@ void ImageCaptureImpl::SetOptions(const std::string& source_id,
SetOptionsCallback scoped_callback =
mojo::WrapCallbackWithDefaultInvokeIfNotRun(
media::BindToCurrentLoop(std::move(callback)), false);
- base::PostTask(
- FROM_HERE, {BrowserThread::IO},
+ GetIOThreadTaskRunner({})->PostTask(
+ FROM_HERE,
base::BindOnce(&SetOptionsOnIOThread, source_id,
BrowserMainLoop::GetInstance()->media_stream_manager(),
std::move(settings), std::move(scoped_callback)));
@@ -147,8 +143,8 @@ void ImageCaptureImpl::TakePhoto(const std::string& source_id,
mojo::WrapCallbackWithDefaultInvokeIfNotRun(
media::BindToCurrentLoop(std::move(callback)),
media::mojom::Blob::New());
- base::PostTask(
- FROM_HERE, {BrowserThread::IO},
+ GetIOThreadTaskRunner({})->PostTask(
+ FROM_HERE,
base::BindOnce(&TakePhotoOnIOThread, source_id,
BrowserMainLoop::GetInstance()->media_stream_manager(),
std::move(scoped_callback)));
@@ -176,26 +172,10 @@ void ImageCaptureImpl::OnGetPhotoState(GetPhotoStateCallback callback,
bool ImageCaptureImpl::HasPanTiltZoomPermissionGranted() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
-#if defined(OS_ANDROID)
- // Camera PTZ is desktop only at the moment.
- return true;
-#else
- if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kEnableExperimentalWebPlatformFeatures)) {
- return false;
- }
-
- auto* web_contents = WebContents::FromRenderFrameHost(render_frame_host());
- auto* permission_controller = BrowserContext::GetPermissionController(
- web_contents->GetBrowserContext());
- DCHECK(permission_controller);
-
- blink::mojom::PermissionStatus status =
- permission_controller->GetPermissionStatusForFrame(
- PermissionType::CAMERA_PAN_TILT_ZOOM, render_frame_host(),
- origin().GetURL());
- return status == blink::mojom::PermissionStatus::GRANTED;
-#endif
+ return MediaDevicesPermissionChecker::
+ HasPanTiltZoomPermissionGrantedOnUIThread(
+ render_frame_host()->GetProcess()->GetID(),
+ render_frame_host()->GetRoutingID());
}
} // namespace content