summaryrefslogtreecommitdiff
path: root/chromium/content/browser/media/capture
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/browser/media/capture')
-rw-r--r--chromium/content/browser/media/capture/audio_mirroring_manager.cc1
-rw-r--r--chromium/content/browser/media/capture/audio_mirroring_manager_unittest.cc5
-rw-r--r--chromium/content/browser/media/capture/aura_window_video_capture_device.cc15
-rw-r--r--chromium/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc24
-rw-r--r--chromium/content/browser/media/capture/desktop_capture_device.cc5
-rw-r--r--chromium/content/browser/media/capture/desktop_streams_registry_impl.cc5
-rw-r--r--chromium/content/browser/media/capture/fake_video_capture_stack.cc2
-rw-r--r--chromium/content/browser/media/capture/frame_sink_video_capture_device.cc29
-rw-r--r--chromium/content/browser/media/capture/frame_sink_video_capture_device_unittest.cc13
-rw-r--r--chromium/content/browser/media/capture/mouse_cursor_overlay_controller_aura.cc23
-rw-r--r--chromium/content/browser/media/capture/mouse_cursor_overlay_controller_browsertest.cc4
-rw-r--r--chromium/content/browser/media/capture/slow_capture_overlay_chromeos.cc (renamed from chromium/content/browser/media/capture/lame_capture_overlay_chromeos.cc)20
-rw-r--r--chromium/content/browser/media/capture/slow_capture_overlay_chromeos.h (renamed from chromium/content/browser/media/capture/lame_capture_overlay_chromeos.h)20
-rw-r--r--chromium/content/browser/media/capture/slow_capture_overlay_chromeos_unittest.cc (renamed from chromium/content/browser/media/capture/lame_capture_overlay_chromeos_unittest.cc)28
-rw-r--r--chromium/content/browser/media/capture/slow_window_capturer_chromeos.cc (renamed from chromium/content/browser/media/capture/lame_window_capturer_chromeos.cc)83
-rw-r--r--chromium/content/browser/media/capture/slow_window_capturer_chromeos.h (renamed from chromium/content/browser/media/capture/lame_window_capturer_chromeos.h)26
-rw-r--r--chromium/content/browser/media/capture/web_contents_audio_muter.cc13
-rw-r--r--chromium/content/browser/media/capture/web_contents_tracker.cc9
-rw-r--r--chromium/content/browser/media/capture/web_contents_video_capture_device.cc13
-rw-r--r--chromium/content/browser/media/capture/web_contents_video_capture_device.h1
-rw-r--r--chromium/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc9
21 files changed, 161 insertions, 187 deletions
diff --git a/chromium/content/browser/media/capture/audio_mirroring_manager.cc b/chromium/content/browser/media/capture/audio_mirroring_manager.cc
index eff29c39c7e..03b80f3ff70 100644
--- a/chromium/content/browser/media/capture/audio_mirroring_manager.cc
+++ b/chromium/content/browser/media/capture/audio_mirroring_manager.cc
@@ -9,6 +9,7 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
+#include "base/logging.h"
#include "base/stl_util.h"
namespace content {
diff --git a/chromium/content/browser/media/capture/audio_mirroring_manager_unittest.cc b/chromium/content/browser/media/capture/audio_mirroring_manager_unittest.cc
index f21c8c4e7a3..307def9004a 100644
--- a/chromium/content/browser/media/capture/audio_mirroring_manager_unittest.cc
+++ b/chromium/content/browser/media/capture/audio_mirroring_manager_unittest.cc
@@ -12,7 +12,6 @@
#include "base/bind_helpers.h"
#include "base/macros.h"
#include "base/synchronization/waitable_event.h"
-#include "base/task/post_task.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/test/browser_task_environment.h"
@@ -80,8 +79,8 @@ class MockMirroringDestination
render_process_id_, render_frame_id_)) != candidates.end()) {
result.insert(GlobalFrameRoutingId(render_process_id_, render_frame_id_));
}
- base::PostTask(FROM_HERE, {BrowserThread::IO},
- base::BindOnce(std::move(*results_callback),
+ GetIOThreadTaskRunner({})->PostTask(
+ FROM_HERE, base::BindOnce(std::move(*results_callback),
std::move(result), is_duplication_));
}
diff --git a/chromium/content/browser/media/capture/aura_window_video_capture_device.cc b/chromium/content/browser/media/capture/aura_window_video_capture_device.cc
index a3d33bf2636..7ab685a0a7a 100644
--- a/chromium/content/browser/media/capture/aura_window_video_capture_device.cc
+++ b/chromium/content/browser/media/capture/aura_window_video_capture_device.cc
@@ -12,7 +12,6 @@
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
#include "base/optional.h"
-#include "base/task/post_task.h"
#include "base/threading/thread_task_runner_handle.h"
#include "content/browser/media/capture/mouse_cursor_overlay_controller.h"
#include "content/public/browser/browser_task_traits.h"
@@ -26,7 +25,7 @@
#include "ui/aura/window_occlusion_tracker.h"
#if defined(OS_CHROMEOS)
-#include "content/browser/media/capture/lame_window_capturer_chromeos.h"
+#include "content/browser/media/capture/slow_window_capturer_chromeos.h"
#endif
namespace content {
@@ -48,8 +47,8 @@ class AuraWindowVideoCaptureDevice::WindowTracker
DCHECK(device_task_runner_);
DCHECK(cursor_controller_);
- base::PostTask(
- FROM_HERE, {BrowserThread::UI},
+ GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE,
base::BindOnce(&WindowTracker::ResolveTarget, AsWeakPtr(), source_id));
}
@@ -82,7 +81,7 @@ class AuraWindowVideoCaptureDevice::WindowTracker
target_window_ = DesktopMediaID::GetNativeWindowById(source_id);
if (target_window_ &&
#if defined(OS_CHROMEOS)
- // See class comments for LameWindowCapturerChromeOS.
+ // See class comments for SlowWindowCapturerChromeOS.
(source_id.type == DesktopMediaID::TYPE_WINDOW ||
target_window_->GetFrameSinkId().is_valid()) &&
#else
@@ -159,8 +158,8 @@ AuraWindowVideoCaptureDevice::~AuraWindowVideoCaptureDevice() = default;
#if defined(OS_CHROMEOS)
void AuraWindowVideoCaptureDevice::CreateCapturer(
mojo::PendingReceiver<viz::mojom::FrameSinkVideoCapturer> receiver) {
- base::PostTask(
- FROM_HERE, {BrowserThread::UI},
+ GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE,
base::BindOnce(
[](base::WeakPtr<WindowTracker> tracker_ptr,
mojo::PendingReceiver<viz::mojom::FrameSinkVideoCapturer>
@@ -176,7 +175,7 @@ void AuraWindowVideoCaptureDevice::CreateCapturer(
VLOG(1) << "AuraWindowVideoCaptureDevice is using the LAME "
"capturer. :(";
mojo::MakeSelfOwnedReceiver(
- std::make_unique<LameWindowCapturerChromeOS>(
+ std::make_unique<SlowWindowCapturerChromeOS>(
tracker->target_window()),
std::move(receiver));
} else {
diff --git a/chromium/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc b/chromium/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc
index 9cbeed4d268..01c39effc56 100644
--- a/chromium/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc
+++ b/chromium/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc
@@ -8,7 +8,6 @@
#include "base/macros.h"
#include "base/run_loop.h"
-#include "base/task/post_task.h"
#include "build/build_config.h"
#include "cc/test/pixel_test_utils.h"
#include "components/viz/common/features.h"
@@ -162,8 +161,8 @@ class AuraWindowVideoCaptureDeviceBrowserTest
// Wait for at least the minimum capture period before checking for more
// captured frames.
base::RunLoop run_loop;
- base::PostDelayedTask(FROM_HERE, {BrowserThread::UI},
- run_loop.QuitClosure(), GetMinCapturePeriod());
+ GetUIThreadTaskRunner({})->PostDelayedTask(
+ FROM_HERE, run_loop.QuitClosure(), GetMinCapturePeriod());
run_loop.Run();
}
}
@@ -222,11 +221,12 @@ IN_PROC_BROWSER_TEST_F(AuraWindowVideoCaptureDeviceBrowserTest,
RunUntilIdle();
}
+// Disabled (crbug.com/1096988)
// Tests that the device starts, captures a frame, and then gracefully
// errors-out because the target window is destroyed before the device is
// stopped.
IN_PROC_BROWSER_TEST_F(AuraWindowVideoCaptureDeviceBrowserTest,
- ErrorsOutWhenWindowIsDestroyed) {
+ DISABLED_ErrorsOutWhenWindowIsDestroyed) {
NavigateToInitialDocument();
AllocateAndStartAndWaitForFirstFrame();
@@ -244,11 +244,12 @@ IN_PROC_BROWSER_TEST_F(AuraWindowVideoCaptureDeviceBrowserTest,
StopAndDeAllocate();
}
+// Disabled (crbug.com/1096988)
// Tests that the device stops delivering frames while suspended. When resumed,
// any content changes that occurred during the suspend should cause a new frame
// to be delivered, to ensure the client is up-to-date.
IN_PROC_BROWSER_TEST_F(AuraWindowVideoCaptureDeviceBrowserTest,
- SuspendsAndResumes) {
+ DISABLED_SuspendsAndResumes) {
NavigateToInitialDocument();
AllocateAndStartAndWaitForFirstFrame();
@@ -265,8 +266,8 @@ IN_PROC_BROWSER_TEST_F(AuraWindowVideoCaptureDeviceBrowserTest,
// frames were queued because the device should be suspended.
ChangePageContentColor(SK_ColorGREEN);
base::RunLoop run_loop;
- base::PostDelayedTask(FROM_HERE, {BrowserThread::UI}, run_loop.QuitClosure(),
- base::TimeDelta::FromSeconds(5));
+ GetUIThreadTaskRunner({})->PostDelayedTask(FROM_HERE, run_loop.QuitClosure(),
+ base::TimeDelta::FromSeconds(5));
run_loop.Run();
EXPECT_FALSE(HasCapturedFramesInQueue());
@@ -278,10 +279,11 @@ IN_PROC_BROWSER_TEST_F(AuraWindowVideoCaptureDeviceBrowserTest,
StopAndDeAllocate();
}
+// Disabled (crbug.com/1096988)
// Tests that the device delivers refresh frames when asked, while the source
// content is not changing.
IN_PROC_BROWSER_TEST_F(AuraWindowVideoCaptureDeviceBrowserTest,
- DeliversRefreshFramesUponRequest) {
+ DISABLED_DeliversRefreshFramesUponRequest) {
NavigateToInitialDocument();
AllocateAndStartAndWaitForFirstFrame();
@@ -301,10 +303,11 @@ IN_PROC_BROWSER_TEST_F(AuraWindowVideoCaptureDeviceBrowserTest,
}
#if defined(OS_CHROMEOS)
+// Disabled (crbug.com/1096988)
// On ChromeOS, another window may occlude a window that is being captured.
// Make sure the visibility is set to visible during capture if it's occluded.
IN_PROC_BROWSER_TEST_F(AuraWindowVideoCaptureDeviceBrowserTest,
- CapturesOccludedWindows) {
+ DISABLED_CapturesOccludedWindows) {
NavigateToInitialDocument();
AllocateAndStartAndWaitForFirstFrame();
@@ -356,11 +359,12 @@ INSTANTIATE_TEST_SUITE_P(
true /* fixed aspect ratio */)));
#endif // defined(OS_CHROMEOS)
+// Disabled (crbug.com/1096988)
// Tests that the device successfully captures a series of content changes,
// whether the browser is running with software compositing or GPU-accelerated
// compositing.
IN_PROC_BROWSER_TEST_P(AuraWindowVideoCaptureDeviceBrowserTestP,
- CapturesContentChanges) {
+ DISABLED_CapturesContentChanges) {
SCOPED_TRACE(testing::Message()
<< "Test parameters: "
<< (IsSoftwareCompositingTest() ? "Software Compositing"
diff --git a/chromium/content/browser/media/capture/desktop_capture_device.cc b/chromium/content/browser/media/capture/desktop_capture_device.cc
index 3385690f9b9..ddbd972ff04 100644
--- a/chromium/content/browser/media/capture/desktop_capture_device.cc
+++ b/chromium/content/browser/media/capture/desktop_capture_device.cc
@@ -20,7 +20,6 @@
#include "base/single_thread_task_runner.h"
#include "base/strings/string_number_conversions.h"
#include "base/synchronization/lock.h"
-#include "base/task/post_task.h"
#include "base/threading/thread.h"
#include "base/threading/thread_restrictions.h"
#include "base/time/tick_clock.h"
@@ -478,8 +477,8 @@ void DesktopCaptureDevice::Core::RequestWakeLock() {
// TODO(https://crbug.com/823869): Fix DesktopCaptureDeviceTest and remove
// this conditional.
if (BrowserThread::IsThreadInitialized(BrowserThread::UI)) {
- base::PostTask(FROM_HERE, {BrowserThread::UI},
- base::BindOnce(&BindWakeLockProvider, std::move(receiver)));
+ GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE, base::BindOnce(&BindWakeLockProvider, std::move(receiver)));
}
wake_lock_provider->GetWakeLockWithoutContext(
diff --git a/chromium/content/browser/media/capture/desktop_streams_registry_impl.cc b/chromium/content/browser/media/capture/desktop_streams_registry_impl.cc
index b8ce040a132..e345bbadc2f 100644
--- a/chromium/content/browser/media/capture/desktop_streams_registry_impl.cc
+++ b/chromium/content/browser/media/capture/desktop_streams_registry_impl.cc
@@ -10,7 +10,6 @@
#include "base/macros.h"
#include "base/no_destructor.h"
#include "base/stl_util.h"
-#include "base/task/post_task.h"
#include "base/time/time.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
@@ -67,8 +66,8 @@ std::string DesktopStreamsRegistryImpl::RegisterStream(
stream.extension_name = extension_name;
stream.type = type;
- base::PostDelayedTask(
- FROM_HERE, {BrowserThread::UI},
+ GetUIThreadTaskRunner({})->PostDelayedTask(
+ FROM_HERE,
base::BindOnce(&DesktopStreamsRegistryImpl::CleanupStream,
base::Unretained(this), id),
base::TimeDelta::FromSeconds(kApprovedStreamTimeToLiveSeconds));
diff --git a/chromium/content/browser/media/capture/fake_video_capture_stack.cc b/chromium/content/browser/media/capture/fake_video_capture_stack.cc
index 161351d1036..1c43d52483b 100644
--- a/chromium/content/browser/media/capture/fake_video_capture_stack.cc
+++ b/chromium/content/browser/media/capture/fake_video_capture_stack.cc
@@ -66,7 +66,7 @@ class FakeVideoCaptureStack::Receiver : public media::VideoFrameReceiver {
const_cast<uint8_t*>(static_cast<const uint8_t*>(mapping.memory())),
mapping.size(), frame_info->timestamp);
CHECK(frame);
- frame->metadata()->MergeInternalValuesFrom(frame_info->metadata);
+ frame->set_metadata(frame_info->metadata);
if (frame_info->color_space.has_value())
frame->set_color_space(frame_info->color_space.value());
// This destruction observer will unmap the shared memory when the
diff --git a/chromium/content/browser/media/capture/frame_sink_video_capture_device.cc b/chromium/content/browser/media/capture/frame_sink_video_capture_device.cc
index 549e6563c0d..11c02abc610 100644
--- a/chromium/content/browser/media/capture/frame_sink_video_capture_device.cc
+++ b/chromium/content/browser/media/capture/frame_sink_video_capture_device.cc
@@ -15,7 +15,6 @@
#include "base/memory/weak_ptr.h"
#include "base/notreached.h"
#include "base/numerics/safe_conversions.h"
-#include "base/task/post_task.h"
#include "base/threading/thread_task_runner_handle.h"
#include "base/time/time.h"
#include "components/viz/host/host_frame_sink_manager.h"
@@ -115,8 +114,8 @@ void FrameSinkVideoCaptureDevice::AllocateAndStartWithReceiver(
capturer_->ChangeTarget(target_);
}
- base::PostTask(
- FROM_HERE, {BrowserThread::UI},
+ GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE,
base::BindOnce(&MouseCursorOverlayController::Start,
cursor_controller_->GetWeakPtr(),
capturer_->CreateOverlay(kMouseCursorStackingIndex),
@@ -171,8 +170,8 @@ void FrameSinkVideoCaptureDevice::StopAndDeAllocate() {
wake_lock_.reset();
}
- base::PostTask(FROM_HERE, {BrowserThread::UI},
- base::BindOnce(&MouseCursorOverlayController::Stop,
+ GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE, base::BindOnce(&MouseCursorOverlayController::Stop,
cursor_controller_->GetWeakPtr()));
MaybeStopConsuming();
@@ -232,12 +231,8 @@ void FrameSinkVideoCaptureDevice::OnFrameCaptured(
}
const BufferId buffer_id = static_cast<BufferId>(index);
- // Set the INTERACTIVE_CONTENT frame metadata.
- media::VideoFrameMetadata modified_metadata;
- modified_metadata.MergeInternalValuesFrom(info->metadata);
- modified_metadata.SetBoolean(media::VideoFrameMetadata::INTERACTIVE_CONTENT,
- cursor_controller_->IsUserInteractingWithView());
- info->metadata = modified_metadata.GetInternalValues().Clone();
+ info->metadata.interactive_content =
+ cursor_controller_->IsUserInteractingWithView();
// Pass the video frame to the VideoFrameReceiver. This is done by first
// passing the shared memory buffer handle and then notifying it that a new
@@ -271,8 +266,8 @@ void FrameSinkVideoCaptureDevice::OnLog(const std::string& message) {
if (BrowserThread::CurrentlyOn(BrowserThread::IO)) {
receiver_->OnLog(message);
} else {
- base::PostTask(
- FROM_HERE, {BrowserThread::IO},
+ GetIOThreadTaskRunner({})->PostTask(
+ FROM_HERE,
base::BindOnce(&media::VideoFrameReceiver::OnLog,
base::Unretained(receiver_.get()), message));
}
@@ -314,8 +309,8 @@ void FrameSinkVideoCaptureDevice::CreateCapturerViaGlobalManager(
mojo::PendingReceiver<viz::mojom::FrameSinkVideoCapturer> receiver) {
// Send the receiver to UI thread because that's where HostFrameSinkManager
// lives.
- base::PostTask(
- FROM_HERE, {BrowserThread::UI},
+ GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE,
base::BindOnce(
[](mojo::PendingReceiver<viz::mojom::FrameSinkVideoCapturer>
receiver) {
@@ -379,8 +374,8 @@ void FrameSinkVideoCaptureDevice::RequestWakeLock() {
mojo::Remote<device::mojom::WakeLockProvider> wake_lock_provider;
auto receiver = wake_lock_provider.BindNewPipeAndPassReceiver();
- base::PostTask(FROM_HERE, {BrowserThread::UI},
- base::BindOnce(&BindWakeLockProvider, std::move(receiver)));
+ GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE, base::BindOnce(&BindWakeLockProvider, std::move(receiver)));
wake_lock_provider->GetWakeLockWithoutContext(
device::mojom::WakeLockType::kPreventDisplaySleep,
device::mojom::WakeLockReason::kOther, "screen capture",
diff --git a/chromium/content/browser/media/capture/frame_sink_video_capture_device_unittest.cc b/chromium/content/browser/media/capture/frame_sink_video_capture_device_unittest.cc
index ae3fe08166e..3fb27b6ff88 100644
--- a/chromium/content/browser/media/capture/frame_sink_video_capture_device_unittest.cc
+++ b/chromium/content/browser/media/capture/frame_sink_video_capture_device_unittest.cc
@@ -11,8 +11,8 @@
#include "base/containers/flat_map.h"
#include "base/memory/read_only_shared_memory_region.h"
#include "base/memory/shared_memory_mapping.h"
-#include "base/task/post_task.h"
#include "content/public/browser/browser_task_traits.h"
+#include "content/public/browser/browser_thread.h"
#include "content/public/test/browser_task_environment.h"
#include "content/public/test/test_utils.h"
#include "media/base/video_frame.h"
@@ -55,7 +55,7 @@ namespace {
// Convenience macro to post a task to run on the device thread.
#define POST_DEVICE_TASK(closure) \
- base::PostTask(FROM_HERE, {BrowserThread::IO}, closure)
+ GetIOThreadTaskRunner({})->PostTask(FROM_HERE, closure)
// Convenience macro to block the test procedure until all pending tasks have
// run on the device thread.
@@ -273,8 +273,8 @@ class FrameSinkVideoCaptureDeviceForTest : public FrameSinkVideoCaptureDevice {
protected:
void CreateCapturer(mojo::PendingReceiver<viz::mojom::FrameSinkVideoCapturer>
receiver) final {
- base::PostTask(
- FROM_HERE, {BrowserThread::UI},
+ GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE,
base::BindOnce(
[](MockFrameSinkVideoCapturer* capturer,
mojo::PendingReceiver<viz::mojom::FrameSinkVideoCapturer>
@@ -384,9 +384,8 @@ class FrameSinkVideoCaptureDeviceTest : public testing::Test {
device->OnFrameCaptured(
std::move(data),
media::mojom::VideoFrameInfo::New(
- kMinCapturePeriod * frame_number,
- base::Value(base::Value::Type::DICTIONARY), kFormat,
- kResolution, gfx::Rect(kResolution),
+ kMinCapturePeriod * frame_number, media::VideoFrameMetadata(),
+ kFormat, kResolution, gfx::Rect(kResolution),
gfx::ColorSpace::CreateREC709(), nullptr),
gfx::Rect(kResolution), std::move(callbacks_remote));
},
diff --git a/chromium/content/browser/media/capture/mouse_cursor_overlay_controller_aura.cc b/chromium/content/browser/media/capture/mouse_cursor_overlay_controller_aura.cc
index 4c6d8bf832e..f6f805f7240 100644
--- a/chromium/content/browser/media/capture/mouse_cursor_overlay_controller_aura.cc
+++ b/chromium/content/browser/media/capture/mouse_cursor_overlay_controller_aura.cc
@@ -16,17 +16,6 @@
namespace content {
-namespace {
-
-ui::Cursor CreateDefaultPointerCursor() {
- ui::Cursor cursor(ui::mojom::CursorType::kPointer);
- std::unique_ptr<ui::CursorLoader> loader(ui::CursorLoader::Create());
- loader->SetPlatformCursor(&cursor);
- return cursor;
-}
-
-} // namespace
-
class MouseCursorOverlayController::Observer : public ui::EventHandler,
public aura::WindowObserver {
public:
@@ -167,7 +156,7 @@ gfx::NativeCursor MouseCursorOverlayController::GetCurrentCursorOrDefault()
}
}
- return CreateDefaultPointerCursor();
+ return ui::mojom::CursorType::kPointer;
}
gfx::RectF MouseCursorOverlayController::ComputeRelativeBoundsForOverlay(
@@ -212,13 +201,9 @@ void MouseCursorOverlayController::DisconnectFromToolkitForTesting() {
observer_->StopTracking();
- // The default cursor is ui::mojom::CursorType::kNone. Make it kPointer so
- // the tests have a non-empty cursor bitmap to work with.
- auto* const window = Observer::GetTargetWindow(observer_);
- CHECK(window);
- auto* const host = window->GetHost();
- CHECK(host);
- host->SetCursor(CreateDefaultPointerCursor());
+ // Note: Not overriding the mouse cursor since the default is already
+ // ui::mojom::CursorType::kPointer, which provides the tests a bitmap they can
+ // work with.
}
// static
diff --git a/chromium/content/browser/media/capture/mouse_cursor_overlay_controller_browsertest.cc b/chromium/content/browser/media/capture/mouse_cursor_overlay_controller_browsertest.cc
index 3273303ed79..29e11332bd9 100644
--- a/chromium/content/browser/media/capture/mouse_cursor_overlay_controller_browsertest.cc
+++ b/chromium/content/browser/media/capture/mouse_cursor_overlay_controller_browsertest.cc
@@ -6,7 +6,6 @@
#include "base/macros.h"
#include "base/run_loop.h"
-#include "base/task/post_task.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/web_contents.h"
@@ -64,8 +63,7 @@ class MouseCursorOverlayControllerBrowserTest : public ContentBrowserTest {
auto overlay_ptr = std::make_unique<FakeOverlay>();
FakeOverlay* const overlay = overlay_ptr.get();
DCHECK_CURRENTLY_ON(BrowserThread::UI);
- controller_.Start(std::move(overlay_ptr),
- base::CreateSingleThreadTaskRunner({BrowserThread::UI}));
+ controller_.Start(std::move(overlay_ptr), GetUIThreadTaskRunner({}));
return overlay;
}
diff --git a/chromium/content/browser/media/capture/lame_capture_overlay_chromeos.cc b/chromium/content/browser/media/capture/slow_capture_overlay_chromeos.cc
index 95497843db9..29946034b5e 100644
--- a/chromium/content/browser/media/capture/lame_capture_overlay_chromeos.cc
+++ b/chromium/content/browser/media/capture/slow_capture_overlay_chromeos.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/browser/media/capture/lame_capture_overlay_chromeos.h"
+#include "content/browser/media/capture/slow_capture_overlay_chromeos.h"
#include <algorithm>
#include <cmath>
@@ -10,7 +10,7 @@
#include "base/bind.h"
#include "base/numerics/ranges.h"
#include "base/numerics/safe_conversions.h"
-#include "content/browser/media/capture/lame_window_capturer_chromeos.h"
+#include "content/browser/media/capture/slow_window_capturer_chromeos.h"
#include "media/base/video_frame.h"
#include "skia/ext/image_operations.h"
#include "third_party/skia/include/core/SkColor.h"
@@ -19,9 +19,9 @@
namespace content {
-LameCaptureOverlayChromeOS::Owner::~Owner() = default;
+SlowCaptureOverlayChromeOS::Owner::~Owner() = default;
-LameCaptureOverlayChromeOS::LameCaptureOverlayChromeOS(
+SlowCaptureOverlayChromeOS::SlowCaptureOverlayChromeOS(
Owner* owner,
mojo::PendingReceiver<viz::mojom::FrameSinkVideoCaptureOverlay> receiver)
: receiver_(this, std::move(receiver)) {
@@ -31,11 +31,11 @@ LameCaptureOverlayChromeOS::LameCaptureOverlayChromeOS(
}
}
-LameCaptureOverlayChromeOS::~LameCaptureOverlayChromeOS() {
+SlowCaptureOverlayChromeOS::~SlowCaptureOverlayChromeOS() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
}
-void LameCaptureOverlayChromeOS::SetImageAndBounds(const SkBitmap& image,
+void SlowCaptureOverlayChromeOS::SetImageAndBounds(const SkBitmap& image,
const gfx::RectF& bounds) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -44,7 +44,7 @@ void LameCaptureOverlayChromeOS::SetImageAndBounds(const SkBitmap& image,
cached_scaled_image_.reset();
}
-void LameCaptureOverlayChromeOS::SetBounds(const gfx::RectF& bounds) {
+void SlowCaptureOverlayChromeOS::SetBounds(const gfx::RectF& bounds) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
if (bounds != bounds_) {
@@ -89,8 +89,8 @@ inline int alpha_blend(int alpha, int src, int dst) {
} // namespace
-LameCaptureOverlayChromeOS::OnceRenderer
-LameCaptureOverlayChromeOS::MakeRenderer(const gfx::Rect& region_in_frame) {
+SlowCaptureOverlayChromeOS::OnceRenderer
+SlowCaptureOverlayChromeOS::MakeRenderer(const gfx::Rect& region_in_frame) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
if (bounds_.IsEmpty() || image_.drawsNothing()) {
@@ -122,7 +122,7 @@ LameCaptureOverlayChromeOS::MakeRenderer(const gfx::Rect& region_in_frame) {
// The following binds all state required to render the overlay on a
// VideoFrame at a later time. This callback does not require
- // LameCaptureOverlayChromeOS to outlive it.
+ // SlowCaptureOverlayChromeOS to outlive it.
return base::BindOnce(
[](const SkBitmap& image, const gfx::Point& position,
const gfx::Rect& rect, media::VideoFrame* frame) {
diff --git a/chromium/content/browser/media/capture/lame_capture_overlay_chromeos.h b/chromium/content/browser/media/capture/slow_capture_overlay_chromeos.h
index fc912f0fd8a..1a00e0f99a4 100644
--- a/chromium/content/browser/media/capture/lame_capture_overlay_chromeos.h
+++ b/chromium/content/browser/media/capture/slow_capture_overlay_chromeos.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CONTENT_BROWSER_MEDIA_CAPTURE_LAME_CAPTURE_OVERLAY_CHROMEOS_H_
-#define CONTENT_BROWSER_MEDIA_CAPTURE_LAME_CAPTURE_OVERLAY_CHROMEOS_H_
+#ifndef CONTENT_BROWSER_MEDIA_CAPTURE_SLOW_CAPTURE_OVERLAY_CHROMEOS_H_
+#define CONTENT_BROWSER_MEDIA_CAPTURE_SLOW_CAPTURE_OVERLAY_CHROMEOS_H_
#include "base/callback.h"
#include "base/macros.h"
@@ -23,7 +23,7 @@ namespace content {
// A minimal FrameSinkVideoCaptureOverlay implementation for aura::Window video
// capture on ChromeOS (i.e., not desktop capture, and not WebContents capture).
-// See class comments for LameWindowCapturerChromeOS for further details on why
+// See class comments for SlowWindowCapturerChromeOS for further details on why
// this exists and why this placeholder is needed for now.
//
// The implementation here is a hodgepodge of code borrowed from
@@ -35,16 +35,16 @@ namespace content {
// renderer.
//
// TODO(crbug/806366): The goal is to remove this code by 2019.
-class CONTENT_EXPORT LameCaptureOverlayChromeOS
+class CONTENT_EXPORT SlowCaptureOverlayChromeOS
: public viz::mojom::FrameSinkVideoCaptureOverlay {
public:
- // Implemented by LameWindowCapturerChromeOS.
+ // Implemented by SlowWindowCapturerChromeOS.
class CONTENT_EXPORT Owner {
public:
// Called to notify that the |overlay| has lost its mojo binding. The owner
// will usually delete it during this method call.
virtual void OnOverlayConnectionLost(
- LameCaptureOverlayChromeOS* overlay) = 0;
+ SlowCaptureOverlayChromeOS* overlay) = 0;
protected:
virtual ~Owner();
@@ -53,10 +53,10 @@ class CONTENT_EXPORT LameCaptureOverlayChromeOS
// A OnceCallback that, when run, renders the overlay on a VideoFrame.
using OnceRenderer = base::OnceCallback<void(media::VideoFrame*)>;
- LameCaptureOverlayChromeOS(
+ SlowCaptureOverlayChromeOS(
Owner* owner,
mojo::PendingReceiver<viz::mojom::FrameSinkVideoCaptureOverlay> receiver);
- ~LameCaptureOverlayChromeOS() final;
+ ~SlowCaptureOverlayChromeOS() final;
// viz::mojom::FrameSinkVideoCaptureOverlay implementation.
void SetImageAndBounds(const SkBitmap& image, const gfx::RectF& bounds) final;
@@ -81,9 +81,9 @@ class CONTENT_EXPORT LameCaptureOverlayChromeOS
// bitmap size changes.
SkBitmap cached_scaled_image_;
- DISALLOW_COPY_AND_ASSIGN(LameCaptureOverlayChromeOS);
+ DISALLOW_COPY_AND_ASSIGN(SlowCaptureOverlayChromeOS);
};
} // namespace content
-#endif // CONTENT_BROWSER_MEDIA_CAPTURE_LAME_CAPTURE_OVERLAY_CHROMEOS_H_
+#endif // CONTENT_BROWSER_MEDIA_CAPTURE_SLOW_CAPTURE_OVERLAY_CHROMEOS_H_
diff --git a/chromium/content/browser/media/capture/lame_capture_overlay_chromeos_unittest.cc b/chromium/content/browser/media/capture/slow_capture_overlay_chromeos_unittest.cc
index 6c29a34c3f4..b3808834a1a 100644
--- a/chromium/content/browser/media/capture/lame_capture_overlay_chromeos_unittest.cc
+++ b/chromium/content/browser/media/capture/slow_capture_overlay_chromeos_unittest.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/browser/media/capture/lame_capture_overlay_chromeos.h"
+#include "content/browser/media/capture/slow_capture_overlay_chromeos.h"
#include <stdint.h>
@@ -27,7 +27,7 @@ constexpr gfx::Size kFrameSize = gfx::Size(320, 200);
constexpr gfx::Rect kContentRegion = gfx::Rect(kFrameSize);
constexpr gfx::RectF kSpanOfEntireFrame = gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f);
-class LameCaptureOverlayChromeOSTest : public testing::Test {
+class SlowCaptureOverlayChromeOSTest : public testing::Test {
public:
void RunUntilIdle() { env_.RunUntilIdle(); }
@@ -68,9 +68,9 @@ class LameCaptureOverlayChromeOSTest : public testing::Test {
base::test::TaskEnvironment env_;
};
-TEST_F(LameCaptureOverlayChromeOSTest, UnsetImageNotRenderedOnFrame) {
+TEST_F(SlowCaptureOverlayChromeOSTest, UnsetImageNotRenderedOnFrame) {
mojo::Remote<viz::mojom::FrameSinkVideoCaptureOverlay> overlay_remote;
- LameCaptureOverlayChromeOS overlay(
+ SlowCaptureOverlayChromeOS overlay(
nullptr, overlay_remote.BindNewPipeAndPassReceiver());
// Bounds set, but no image. → Should not render anything.
@@ -82,9 +82,9 @@ TEST_F(LameCaptureOverlayChromeOSTest, UnsetImageNotRenderedOnFrame) {
EXPECT_TRUE(overlay.MakeRenderer(kContentRegion));
}
-TEST_F(LameCaptureOverlayChromeOSTest, HiddenImageNotRenderedOnFrame) {
+TEST_F(SlowCaptureOverlayChromeOSTest, HiddenImageNotRenderedOnFrame) {
mojo::Remote<viz::mojom::FrameSinkVideoCaptureOverlay> overlay_remote;
- LameCaptureOverlayChromeOS overlay(
+ SlowCaptureOverlayChromeOS overlay(
nullptr, overlay_remote.BindNewPipeAndPassReceiver());
// Both image and bounds set. → Should render something.
@@ -96,9 +96,9 @@ TEST_F(LameCaptureOverlayChromeOSTest, HiddenImageNotRenderedOnFrame) {
EXPECT_FALSE(overlay.MakeRenderer(kContentRegion));
}
-TEST_F(LameCaptureOverlayChromeOSTest, OutOfBoundsOverlayNotRenderedOnFrame) {
+TEST_F(SlowCaptureOverlayChromeOSTest, OutOfBoundsOverlayNotRenderedOnFrame) {
mojo::Remote<viz::mojom::FrameSinkVideoCaptureOverlay> overlay_remote;
- LameCaptureOverlayChromeOS overlay(
+ SlowCaptureOverlayChromeOS overlay(
nullptr, overlay_remote.BindNewPipeAndPassReceiver());
// Both image and bounds set. → Should render something.
@@ -110,9 +110,9 @@ TEST_F(LameCaptureOverlayChromeOSTest, OutOfBoundsOverlayNotRenderedOnFrame) {
EXPECT_FALSE(overlay.MakeRenderer(kContentRegion));
}
-TEST_F(LameCaptureOverlayChromeOSTest, ImageRenderedOnFrame) {
+TEST_F(SlowCaptureOverlayChromeOSTest, ImageRenderedOnFrame) {
mojo::Remote<viz::mojom::FrameSinkVideoCaptureOverlay> overlay_remote;
- LameCaptureOverlayChromeOS overlay(
+ SlowCaptureOverlayChromeOS overlay(
nullptr, overlay_remote.BindNewPipeAndPassReceiver());
// Create blank black frame. No non-zero pixels should be present.
@@ -156,16 +156,16 @@ TEST_F(LameCaptureOverlayChromeOSTest, ImageRenderedOnFrame) {
}
}
-TEST_F(LameCaptureOverlayChromeOSTest, ReportsLostMojoConnection) {
- class MockOwner : public LameCaptureOverlayChromeOS::Owner {
+TEST_F(SlowCaptureOverlayChromeOSTest, ReportsLostMojoConnection) {
+ class MockOwner : public SlowCaptureOverlayChromeOS::Owner {
public:
~MockOwner() final = default;
MOCK_METHOD1(OnOverlayConnectionLost,
- void(LameCaptureOverlayChromeOS* overlay));
+ void(SlowCaptureOverlayChromeOS* overlay));
} mock_owner;
mojo::Remote<viz::mojom::FrameSinkVideoCaptureOverlay> overlay_remote;
- LameCaptureOverlayChromeOS overlay(
+ SlowCaptureOverlayChromeOS overlay(
&mock_owner, overlay_remote.BindNewPipeAndPassReceiver());
ASSERT_TRUE(overlay_remote);
RunUntilIdle(); // Propagate mojo tasks.
diff --git a/chromium/content/browser/media/capture/lame_window_capturer_chromeos.cc b/chromium/content/browser/media/capture/slow_window_capturer_chromeos.cc
index 1a7536a42c7..25982224ef9 100644
--- a/chromium/content/browser/media/capture/lame_window_capturer_chromeos.cc
+++ b/chromium/content/browser/media/capture/slow_window_capturer_chromeos.cc
@@ -2,13 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/browser/media/capture/lame_window_capturer_chromeos.h"
+#include "content/browser/media/capture/slow_window_capturer_chromeos.h"
#include <algorithm>
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/location.h"
+#include "base/threading/sequenced_task_runner_handle.h"
#include "components/viz/common/frame_sinks/copy_output_request.h"
#include "components/viz/common/frame_sinks/copy_output_result.h"
#include "media/base/limits.h"
@@ -31,22 +32,22 @@ gfx::Size AdjustSizeForI420Format(const gfx::Size& raw_size) {
} // namespace
// static
-constexpr base::TimeDelta LameWindowCapturerChromeOS::kAbsoluteMinCapturePeriod;
+constexpr base::TimeDelta SlowWindowCapturerChromeOS::kAbsoluteMinCapturePeriod;
-LameWindowCapturerChromeOS::LameWindowCapturerChromeOS(aura::Window* target)
+SlowWindowCapturerChromeOS::SlowWindowCapturerChromeOS(aura::Window* target)
: target_(target), copy_request_source_(base::UnguessableToken::Create()) {
if (target_) {
target_->AddObserver(this);
}
}
-LameWindowCapturerChromeOS::~LameWindowCapturerChromeOS() {
+SlowWindowCapturerChromeOS::~SlowWindowCapturerChromeOS() {
if (target_) {
target_->RemoveObserver(this);
}
}
-void LameWindowCapturerChromeOS::SetFormat(media::VideoPixelFormat format,
+void SlowWindowCapturerChromeOS::SetFormat(media::VideoPixelFormat format,
const gfx::ColorSpace& color_space) {
if (format != media::PIXEL_FORMAT_I420) {
LOG(DFATAL) << "Invalid pixel format: Only I420 is supported.";
@@ -57,7 +58,7 @@ void LameWindowCapturerChromeOS::SetFormat(media::VideoPixelFormat format,
}
}
-void LameWindowCapturerChromeOS::SetMinCapturePeriod(
+void SlowWindowCapturerChromeOS::SetMinCapturePeriod(
base::TimeDelta min_capture_period) {
capture_period_ = std::max(min_capture_period, kAbsoluteMinCapturePeriod);
@@ -65,14 +66,14 @@ void LameWindowCapturerChromeOS::SetMinCapturePeriod(
// re-start with the new capture period.
if (timer_.IsRunning()) {
timer_.Start(FROM_HERE, capture_period_, this,
- &LameWindowCapturerChromeOS::CaptureNextFrame);
+ &SlowWindowCapturerChromeOS::CaptureNextFrame);
}
}
-void LameWindowCapturerChromeOS::SetMinSizeChangePeriod(
+void SlowWindowCapturerChromeOS::SetMinSizeChangePeriod(
base::TimeDelta min_period) {}
-void LameWindowCapturerChromeOS::SetResolutionConstraints(
+void SlowWindowCapturerChromeOS::SetResolutionConstraints(
const gfx::Size& min_size,
const gfx::Size& max_size,
bool use_fixed_aspect_ratio) {
@@ -95,17 +96,17 @@ void LameWindowCapturerChromeOS::SetResolutionConstraints(
in_flight_count_ = 0;
}
-void LameWindowCapturerChromeOS::SetAutoThrottlingEnabled(bool enabled) {
+void SlowWindowCapturerChromeOS::SetAutoThrottlingEnabled(bool enabled) {
NOTIMPLEMENTED();
}
-void LameWindowCapturerChromeOS::ChangeTarget(
+void SlowWindowCapturerChromeOS::ChangeTarget(
const base::Optional<viz::FrameSinkId>& frame_sink_id) {
- // The LameWindowCapturerChromeOS does not capture from compositor frame
+ // The SlowWindowCapturerChromeOS does not capture from compositor frame
// sinks.
}
-void LameWindowCapturerChromeOS::Start(
+void SlowWindowCapturerChromeOS::Start(
mojo::PendingRemote<viz::mojom::FrameSinkVideoConsumer> consumer) {
DCHECK(consumer);
@@ -115,13 +116,13 @@ void LameWindowCapturerChromeOS::Start(
// In the future, if the connection to the consumer is lost before a call to
// Stop(), make that call on its behalf.
consumer_.set_disconnect_handler(base::BindOnce(
- &LameWindowCapturerChromeOS::Stop, base::Unretained(this)));
+ &SlowWindowCapturerChromeOS::Stop, base::Unretained(this)));
timer_.Start(FROM_HERE, capture_period_, this,
- &LameWindowCapturerChromeOS::CaptureNextFrame);
+ &SlowWindowCapturerChromeOS::CaptureNextFrame);
}
-void LameWindowCapturerChromeOS::Stop() {
+void SlowWindowCapturerChromeOS::Stop() {
// Stop the timer, cancel any in-flight frames, and clear the buffer pool.
timer_.Stop();
weak_factory_.InvalidateWeakPtrs();
@@ -134,24 +135,24 @@ void LameWindowCapturerChromeOS::Stop() {
}
}
-void LameWindowCapturerChromeOS::RequestRefreshFrame() {
- // This is ignored because the LameWindowCapturerChromeOS captures frames
+void SlowWindowCapturerChromeOS::RequestRefreshFrame() {
+ // This is ignored because the SlowWindowCapturerChromeOS captures frames
// continuously.
}
-void LameWindowCapturerChromeOS::CreateOverlay(
+void SlowWindowCapturerChromeOS::CreateOverlay(
int32_t stacking_index,
mojo::PendingReceiver<viz::mojom::FrameSinkVideoCaptureOverlay> receiver) {
- // LameWindowCapturerChromeOS only supports one overlay at a time. If one
+ // SlowWindowCapturerChromeOS only supports one overlay at a time. If one
// already exists, the following will cause it to be dropped.
overlay_ =
- std::make_unique<LameCaptureOverlayChromeOS>(this, std::move(receiver));
+ std::make_unique<SlowCaptureOverlayChromeOS>(this, std::move(receiver));
}
-class LameWindowCapturerChromeOS::InFlightFrame
+class SlowWindowCapturerChromeOS::InFlightFrame
: public viz::mojom::FrameSinkVideoConsumerFrameCallbacks {
public:
- InFlightFrame(base::WeakPtr<LameWindowCapturerChromeOS> capturer,
+ InFlightFrame(base::WeakPtr<SlowWindowCapturerChromeOS> capturer,
base::MappedReadOnlyRegion buffer)
: capturer_(std::move(capturer)), buffer_(std::move(buffer)) {}
@@ -169,7 +170,7 @@ class LameWindowCapturerChromeOS::InFlightFrame
const gfx::Rect& content_rect() const { return content_rect_; }
void set_content_rect(const gfx::Rect& rect) { content_rect_ = rect; }
- void set_overlay_renderer(LameCaptureOverlayChromeOS::OnceRenderer renderer) {
+ void set_overlay_renderer(SlowCaptureOverlayChromeOS::OnceRenderer renderer) {
overlay_renderer_ = std::move(renderer);
}
void RenderOptionalOverlay() {
@@ -199,23 +200,23 @@ class LameWindowCapturerChromeOS::InFlightFrame
void ProvideFeedback(double utilization) final {}
private:
- base::WeakPtr<LameWindowCapturerChromeOS> capturer_;
+ base::WeakPtr<SlowWindowCapturerChromeOS> capturer_;
base::MappedReadOnlyRegion buffer_;
scoped_refptr<VideoFrame> video_frame_;
gfx::Rect content_rect_;
- LameCaptureOverlayChromeOS::OnceRenderer overlay_renderer_;
+ SlowCaptureOverlayChromeOS::OnceRenderer overlay_renderer_;
DISALLOW_COPY_AND_ASSIGN(InFlightFrame);
};
-void LameWindowCapturerChromeOS::OnOverlayConnectionLost(
- LameCaptureOverlayChromeOS* overlay) {
+void SlowWindowCapturerChromeOS::OnOverlayConnectionLost(
+ SlowCaptureOverlayChromeOS* overlay) {
if (overlay_.get() == overlay) {
overlay_.reset();
}
}
-void LameWindowCapturerChromeOS::CaptureNextFrame() {
+void SlowWindowCapturerChromeOS::CaptureNextFrame() {
// If the maximum frame in-flight count has been reached, skip this frame.
if (in_flight_count_ >= kMaxFramesInFlight) {
return;
@@ -260,11 +261,10 @@ void LameWindowCapturerChromeOS::CaptureNextFrame() {
auto* const frame = in_flight_frame->video_frame();
DCHECK(frame);
VideoFrameMetadata* const metadata = frame->metadata();
- metadata->SetTimeTicks(VideoFrameMetadata::CAPTURE_BEGIN_TIME, begin_time);
- metadata->SetTimeDelta(VideoFrameMetadata::FRAME_DURATION, capture_period_);
- metadata->SetDouble(VideoFrameMetadata::FRAME_RATE,
- 1.0 / capture_period_.InSecondsF());
- metadata->SetTimeTicks(VideoFrameMetadata::REFERENCE_TIME, begin_time);
+ metadata->capture_begin_time = begin_time;
+ metadata->frame_duration = capture_period_;
+ metadata->frame_rate = 1.0 / capture_period_.InSecondsF();
+ metadata->reference_time = begin_time;
frame->set_color_space(gfx::ColorSpace::CreateREC709());
// Compute the region of the VideoFrame that will contain the content. If
@@ -292,7 +292,7 @@ void LameWindowCapturerChromeOS::CaptureNextFrame() {
auto request = std::make_unique<viz::CopyOutputRequest>(
// Note: As of this writing, I420_PLANES is not supported external to VIZ.
viz::CopyOutputRequest::ResultFormat::RGBA_BITMAP,
- base::BindOnce(&LameWindowCapturerChromeOS::DidCopyFrame,
+ base::BindOnce(&SlowWindowCapturerChromeOS::DidCopyFrame,
weak_factory_.GetWeakPtr(), std::move(in_flight_frame)));
request->set_source(copy_request_source_);
request->set_area(gfx::Rect(source_size));
@@ -300,10 +300,12 @@ void LameWindowCapturerChromeOS::CaptureNextFrame() {
gfx::Vector2d(source_size.width(), source_size.height()),
gfx::Vector2d(content_rect.width(), content_rect.height()));
request->set_result_selection(gfx::Rect(content_rect.size()));
+ request->set_result_task_runner(
+ base::SequencedTaskRunnerHandle::Get());
target_->layer()->RequestCopyOfOutput(std::move(request));
}
-void LameWindowCapturerChromeOS::DidCopyFrame(
+void SlowWindowCapturerChromeOS::DidCopyFrame(
std::unique_ptr<InFlightFrame> in_flight_frame,
std::unique_ptr<viz::CopyOutputResult> result) {
// Populate the VideoFrame from the CopyOutputResult.
@@ -337,12 +339,11 @@ void LameWindowCapturerChromeOS::DidCopyFrame(
DeliverFrame(std::move(in_flight_frame));
}
-void LameWindowCapturerChromeOS::DeliverFrame(
+void SlowWindowCapturerChromeOS::DeliverFrame(
std::unique_ptr<InFlightFrame> in_flight_frame) {
auto* const frame = in_flight_frame->video_frame();
DCHECK(frame);
- frame->metadata()->SetTimeTicks(VideoFrameMetadata::CAPTURE_END_TIME,
- base::TimeTicks::Now());
+ frame->metadata()->capture_end_time = base::TimeTicks::Now();
// Clone the buffer handle for the consumer.
base::ReadOnlySharedMemoryRegion handle =
@@ -355,7 +356,7 @@ void LameWindowCapturerChromeOS::DeliverFrame(
// the consumer.
media::mojom::VideoFrameInfoPtr info = media::mojom::VideoFrameInfo::New();
info->timestamp = frame->timestamp();
- info->metadata = frame->metadata()->GetInternalValues().Clone();
+ info->metadata = *(frame->metadata());
info->pixel_format = frame->format();
info->coded_size = frame->coded_size();
info->visible_rect = frame->visible_rect();
@@ -376,7 +377,7 @@ void LameWindowCapturerChromeOS::DeliverFrame(
std::move(callbacks));
}
-void LameWindowCapturerChromeOS::OnWindowDestroying(aura::Window* window) {
+void SlowWindowCapturerChromeOS::OnWindowDestroying(aura::Window* window) {
if (window == target_) {
target_->RemoveObserver(this);
target_ = nullptr;
diff --git a/chromium/content/browser/media/capture/lame_window_capturer_chromeos.h b/chromium/content/browser/media/capture/slow_window_capturer_chromeos.h
index 98b83068b47..ab68a779148 100644
--- a/chromium/content/browser/media/capture/lame_window_capturer_chromeos.h
+++ b/chromium/content/browser/media/capture/slow_window_capturer_chromeos.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CONTENT_BROWSER_MEDIA_CAPTURE_LAME_WINDOW_CAPTURER_CHROMEOS_H_
-#define CONTENT_BROWSER_MEDIA_CAPTURE_LAME_WINDOW_CAPTURER_CHROMEOS_H_
+#ifndef CONTENT_BROWSER_MEDIA_CAPTURE_SLOW_WINDOW_CAPTURER_CHROMEOS_H_
+#define CONTENT_BROWSER_MEDIA_CAPTURE_SLOW_WINDOW_CAPTURER_CHROMEOS_H_
#include <memory>
#include <utility>
@@ -15,7 +15,7 @@
#include "base/time/time.h"
#include "base/timer/timer.h"
#include "base/unguessable_token.h"
-#include "content/browser/media/capture/lame_capture_overlay_chromeos.h"
+#include "content/browser/media/capture/slow_capture_overlay_chromeos.h"
#include "media/base/video_frame.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
@@ -50,12 +50,12 @@ namespace content {
// running.
//
// TODO(crbug/806366): The goal is to remove this code by 2019.
-class LameWindowCapturerChromeOS : public viz::mojom::FrameSinkVideoCapturer,
- public LameCaptureOverlayChromeOS::Owner,
+class SlowWindowCapturerChromeOS : public viz::mojom::FrameSinkVideoCapturer,
+ public SlowCaptureOverlayChromeOS::Owner,
public aura::WindowObserver {
public:
- explicit LameWindowCapturerChromeOS(aura::Window* target);
- ~LameWindowCapturerChromeOS() final;
+ explicit SlowWindowCapturerChromeOS(aura::Window* target);
+ ~SlowWindowCapturerChromeOS() final;
// viz::mojom::FrameSinkVideoCapturer implementation.
void SetFormat(media::VideoPixelFormat format,
@@ -83,8 +83,8 @@ class LameWindowCapturerChromeOS : public viz::mojom::FrameSinkVideoCapturer,
// returns the buffer back to the pool.
class InFlightFrame;
- // LameWindowCapturerChromeOS::Owner implementation.
- void OnOverlayConnectionLost(LameCaptureOverlayChromeOS* overlay) final;
+ // SlowWindowCapturerChromeOS::Owner implementation.
+ void OnOverlayConnectionLost(SlowCaptureOverlayChromeOS* overlay) final;
// Initiates capture of the next frame. This is called periodically by the
// |timer_|.
@@ -134,11 +134,11 @@ class LameWindowCapturerChromeOS : public viz::mojom::FrameSinkVideoCapturer,
const base::UnguessableToken copy_request_source_;
// An optional overlay to be rendered over each captured video frame.
- std::unique_ptr<LameCaptureOverlayChromeOS> overlay_;
+ std::unique_ptr<SlowCaptureOverlayChromeOS> overlay_;
// Used for cancelling any outstanding activities' results, once Stop() is
// called and there is no longer a consumer to receive another frame.
- base::WeakPtrFactory<LameWindowCapturerChromeOS> weak_factory_{this};
+ base::WeakPtrFactory<SlowWindowCapturerChromeOS> weak_factory_{this};
// Enforce a very low maximum frame rate (5 FPS), due to the lack of
// design optimizations. See top-level class comments.
@@ -148,9 +148,9 @@ class LameWindowCapturerChromeOS : public viz::mojom::FrameSinkVideoCapturer,
// The maximum number of frames in-flight at any one time.
static constexpr int kMaxFramesInFlight = 3;
- DISALLOW_COPY_AND_ASSIGN(LameWindowCapturerChromeOS);
+ DISALLOW_COPY_AND_ASSIGN(SlowWindowCapturerChromeOS);
};
} // namespace content
-#endif // CONTENT_BROWSER_MEDIA_CAPTURE_LAME_WINDOW_CAPTURER_CHROMEOS_H_
+#endif // CONTENT_BROWSER_MEDIA_CAPTURE_SLOW_WINDOW_CAPTURER_CHROMEOS_H_
diff --git a/chromium/content/browser/media/capture/web_contents_audio_muter.cc b/chromium/content/browser/media/capture/web_contents_audio_muter.cc
index 9b6c5b702e8..fbf4b24f470 100644
--- a/chromium/content/browser/media/capture/web_contents_audio_muter.cc
+++ b/chromium/content/browser/media/capture/web_contents_audio_muter.cc
@@ -10,7 +10,6 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
#include "base/macros.h"
-#include "base/task/post_task.h"
#include "base/time/time.h"
#include "content/browser/media/capture/audio_mirroring_manager.h"
#include "content/public/browser/browser_task_traits.h"
@@ -93,8 +92,8 @@ class WebContentsAudioMuter::MuteDestination
void QueryForMatches(const std::set<GlobalFrameRoutingId>& candidates,
MatchesCallback results_callback) override {
- base::PostTask(
- FROM_HERE, {BrowserThread::UI},
+ GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE,
base::BindOnce(&MuteDestination::QueryForMatchesOnUIThread, this,
candidates,
media::BindToCurrentLoop(std::move(results_callback))));
@@ -148,8 +147,8 @@ void WebContentsAudioMuter::StartMuting() {
if (is_muting_)
return;
is_muting_ = true;
- base::PostTask(
- FROM_HERE, {BrowserThread::IO},
+ GetIOThreadTaskRunner({})->PostTask(
+ FROM_HERE,
base::BindOnce(&AudioMirroringManager::StartMirroring,
base::Unretained(AudioMirroringManager::GetInstance()),
base::RetainedRef(destination_)));
@@ -160,8 +159,8 @@ void WebContentsAudioMuter::StopMuting() {
if (!is_muting_)
return;
is_muting_ = false;
- base::PostTask(
- FROM_HERE, {BrowserThread::IO},
+ GetIOThreadTaskRunner({})->PostTask(
+ FROM_HERE,
base::BindOnce(&AudioMirroringManager::StopMirroring,
base::Unretained(AudioMirroringManager::GetInstance()),
base::RetainedRef(destination_)));
diff --git a/chromium/content/browser/media/capture/web_contents_tracker.cc b/chromium/content/browser/media/capture/web_contents_tracker.cc
index 38247fcae46..f51484edbba 100644
--- a/chromium/content/browser/media/capture/web_contents_tracker.cc
+++ b/chromium/content/browser/media/capture/web_contents_tracker.cc
@@ -5,7 +5,6 @@
#include "content/browser/media/capture/web_contents_tracker.h"
#include "base/bind.h"
-#include "base/task/post_task.h"
#include "base/threading/thread_task_runner_handle.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
@@ -34,8 +33,8 @@ void WebContentsTracker::Start(int render_process_id,
if (BrowserThread::CurrentlyOn(BrowserThread::UI)) {
StartObservingWebContents(render_process_id, main_render_frame_id);
} else {
- base::PostTask(
- FROM_HERE, {BrowserThread::UI},
+ GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE,
base::BindOnce(&WebContentsTracker::StartObservingWebContents, this,
render_process_id, main_render_frame_id));
}
@@ -50,8 +49,8 @@ void WebContentsTracker::Stop() {
if (BrowserThread::CurrentlyOn(BrowserThread::UI)) {
WebContentsObserver::Observe(nullptr);
} else {
- base::PostTask(FROM_HERE, {BrowserThread::UI},
- base::BindOnce(&WebContentsTracker::Observe, this,
+ GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE, base::BindOnce(&WebContentsTracker::Observe, this,
static_cast<WebContents*>(nullptr)));
}
}
diff --git a/chromium/content/browser/media/capture/web_contents_video_capture_device.cc b/chromium/content/browser/media/capture/web_contents_video_capture_device.cc
index 20db3e37aee..3224837a807 100644
--- a/chromium/content/browser/media/capture/web_contents_video_capture_device.cc
+++ b/chromium/content/browser/media/capture/web_contents_video_capture_device.cc
@@ -11,7 +11,6 @@
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
-#include "base/task/post_task.h"
#include "base/threading/thread_task_runner_handle.h"
#include "content/browser/media/capture/mouse_cursor_overlay_controller.h"
#include "content/browser/renderer_host/render_widget_host_view_base.h"
@@ -45,8 +44,8 @@ class WebContentsVideoCaptureDevice::FrameTracker
DCHECK(device_task_runner_);
DCHECK(cursor_controller_);
- base::PostTask(
- FROM_HERE, {BrowserThread::UI},
+ GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE,
base::BindOnce(
[](base::WeakPtr<FrameTracker> self, int process_id, int frame_id) {
if (self) {
@@ -236,16 +235,16 @@ WebContentsVideoCaptureDevice::Create(const std::string& device_id) {
}
void WebContentsVideoCaptureDevice::WillStart() {
- base::PostTask(
- FROM_HERE, {BrowserThread::UI},
+ GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE,
base::BindOnce(&FrameTracker::WillStartCapturingWebContents,
tracker_->AsWeakPtr(),
capture_params().SuggestConstraints().max_frame_size));
}
void WebContentsVideoCaptureDevice::DidStop() {
- base::PostTask(FROM_HERE, {BrowserThread::UI},
- base::BindOnce(&FrameTracker::DidStopCapturingWebContents,
+ GetUIThreadTaskRunner({})->PostTask(
+ FROM_HERE, base::BindOnce(&FrameTracker::DidStopCapturingWebContents,
tracker_->AsWeakPtr()));
}
diff --git a/chromium/content/browser/media/capture/web_contents_video_capture_device.h b/chromium/content/browser/media/capture/web_contents_video_capture_device.h
index 4d6d1175c09..a90723e141a 100644
--- a/chromium/content/browser/media/capture/web_contents_video_capture_device.h
+++ b/chromium/content/browser/media/capture/web_contents_video_capture_device.h
@@ -8,7 +8,6 @@
#include <memory>
#include <string>
-#include "base/logging.h"
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "content/browser/media/capture/frame_sink_video_capture_device.h"
diff --git a/chromium/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc b/chromium/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
index 2c651c8b050..03310777203 100644
--- a/chromium/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
+++ b/chromium/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
@@ -8,7 +8,6 @@
#include "base/macros.h"
#include "base/run_loop.h"
-#include "base/task/post_task.h"
#include "build/build_config.h"
#include "cc/test/pixel_test_utils.h"
#include "components/viz/common/features.h"
@@ -145,8 +144,8 @@ class WebContentsVideoCaptureDeviceBrowserTest
// Wait for at least the minimum capture period before checking for more
// captured frames.
base::RunLoop run_loop;
- base::PostDelayedTask(FROM_HERE, {BrowserThread::UI},
- run_loop.QuitClosure(), GetMinCapturePeriod());
+ GetUIThreadTaskRunner({})->PostDelayedTask(
+ FROM_HERE, run_loop.QuitClosure(), GetMinCapturePeriod());
run_loop.Run();
}
}
@@ -320,8 +319,8 @@ IN_PROC_BROWSER_TEST_F(WebContentsVideoCaptureDeviceBrowserTest,
// frames were queued because the device should be suspended.
ChangePageContentColor(SK_ColorGREEN);
base::RunLoop run_loop;
- base::PostDelayedTask(FROM_HERE, {BrowserThread::UI}, run_loop.QuitClosure(),
- base::TimeDelta::FromSeconds(5));
+ GetUIThreadTaskRunner({})->PostDelayedTask(FROM_HERE, run_loop.QuitClosure(),
+ base::TimeDelta::FromSeconds(5));
run_loop.Run();
EXPECT_FALSE(HasCapturedFramesInQueue());