Skip to content

Commit

Permalink
[MSC] Replaced display_id fetching method in ChromeScreenEnumerator.
Browse files Browse the repository at this point in the history
Changed fetching of the display_id in ChromeScreenEnumerator from
using ash::GetRootWindowSettings to using GetDisplayNearestWindow.

Bug: 1358949
Change-Id: Icdd7f3f6d58f2d8ddbf39ff08b8dea7ccebc9ba4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4016386
Reviewed-by: Elad Alon <eladalon@chromium.org>
Commit-Queue: Simon Hangl <simonha@google.com>
Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1075613}
  • Loading branch information
Simon Hangl authored and Chromium LUCI CQ committed Nov 24, 2022
1 parent c76e13f commit 71ed1e4
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 8 deletions.
3 changes: 1 addition & 2 deletions chrome/browser/media/webrtc/DEPS
Expand Up @@ -7,7 +7,7 @@ include_rules = [

specific_include_rules = {
"chrome_screen_enumerator\.cc": [
"+ash/root_window_settings.h",
"+ui/display/screen.h",
"+ash/shell.h",
],
"desktop_capture_access_handler\.cc": [
Expand All @@ -24,7 +24,6 @@ specific_include_rules = {
"+ash/shell.h",
],
".*_unittest\.cc": [
"+ash/root_window_settings.h",
"+ash/test/ash_test_base.h",
]
}
10 changes: 7 additions & 3 deletions chrome/browser/media/webrtc/chrome_screen_enumerator.cc
Expand Up @@ -6,7 +6,6 @@

#include <tuple>

#include "ash/root_window_settings.h"
#include "base/feature_list.h"
#include "base/task/bind_post_task.h"
#include "build/chromeos_buildflags.h"
Expand All @@ -16,6 +15,7 @@
#include "content/public/browser/desktop_media_id.h"
#include "content/public/common/content_features.h"
#include "third_party/blink/public/mojom/mediastream/media_stream.mojom.h"
#include "ui/display/screen.h"

#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "ash/shell.h"
Expand All @@ -33,6 +33,7 @@ blink::mojom::StreamDevicesSetPtr EnumerateScreensAsh(
(root_windows_for_testing_) ? std::move(*root_windows_for_testing_)
: ash::Shell::GetAllRootWindows();

display::Screen* screen = display::Screen::GetScreen();
blink::mojom::StreamDevicesSetPtr stream_devices_set =
blink::mojom::StreamDevicesSet::New();
for (aura::Window* window : root_windows) {
Expand All @@ -45,7 +46,8 @@ blink::mojom::StreamDevicesSetPtr EnumerateScreensAsh(
blink::MediaStreamDevice device(
stream_type, /*id=*/media_id.ToString(),
/*name=*/"Screen",
/*display_id=*/ash::GetRootWindowSettings(window)->display_id);
/*display_id=*/
screen->GetDisplayNearestWindow(window).id());
device.display_media_info = media::mojom::DisplayMediaInformation::New(
/*display_surface=*/media::mojom::DisplayCaptureSurfaceType::MONITOR,
/*logical_surface=*/true,
Expand Down Expand Up @@ -86,7 +88,9 @@ void ChromeScreenEnumerator::EnumerateScreens(
blink::mojom::StreamDevicesSetPtr stream_devices_set) {
std::move(screens_callback)
.Run(*stream_devices_set,
blink::mojom::MediaStreamRequestResult::OK);
stream_devices_set->stream_devices.size() > 0
? blink::mojom::MediaStreamRequestResult::OK
: blink::mojom::MediaStreamRequestResult::NO_HARDWARE);
},
std::move(screens_callback)));
#else
Expand Down
Expand Up @@ -4,7 +4,6 @@

#include <memory>

#include "ash/root_window_settings.h"
#include "base/run_loop.h"
#include "base/strings/string_number_conversions.h"
#include "base/test/bind.h"
Expand Down Expand Up @@ -42,7 +41,6 @@ class ChromeScreenEnumeratorTest : public ChromeAshTestBase {
for (size_t i = 0; i < number_of_screens; ++i) {
auto window_delegate = std::make_unique<aura::test::TestWindowDelegate>();
auto screen = std::make_unique<aura::Window>(window_delegate.get());
ash::InitRootWindowSettings(screen.get());
screen->Init(ui::LayerType::LAYER_NOT_DRAWN);
screens.push_back(screen.get());
screens_.emplace_back(std::move(screen));
Expand Down Expand Up @@ -77,7 +75,7 @@ TEST_F(ChromeScreenEnumeratorTest, NoScreen) {
}));
run_loop.Run();
EXPECT_EQ(0u, actual_stream_devices_set->stream_devices.size());
EXPECT_EQ(blink::mojom::MediaStreamRequestResult::OK, actual_result);
EXPECT_EQ(blink::mojom::MediaStreamRequestResult::NO_HARDWARE, actual_result);
}

TEST_F(ChromeScreenEnumeratorTest, SingleScreen) {
Expand Down

0 comments on commit 71ed1e4

Please sign in to comment.