Commit 59da623a authored by Robert Liao's avatar Robert Liao Committed by Commit Bot

Add Views DesktopMediaPicker into the Overall Views Build

This moves the code into the toolkit_views source list and gates Aura
specific code behind build flags.

Additionally, this links up DesktopMediaPicker::Create in a manner
similar to ScreenCaptureNotificationUI::Create[Cocoa].

BUG=726005,657883
NOAUTOREVERT=true
Need to investigate any failure on the Mac Bot. Not reproducible locally.

Change-Id: I9ece0b875268495d70154378c7608c3e1bae2938
Reviewed-on: https://chromium-review.googlesource.com/1102042
Commit-Queue: Robert Liao <robliao@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569095}
parent 448f72d0
...@@ -2420,6 +2420,8 @@ split_static_library("ui") { ...@@ -2420,6 +2420,8 @@ split_static_library("ui") {
"cocoa/md_hover_button.mm", "cocoa/md_hover_button.mm",
"cocoa/md_util.h", "cocoa/md_util.h",
"cocoa/md_util.mm", "cocoa/md_util.mm",
"cocoa/media_picker/create_desktop_media_picker_cocoa.h",
"cocoa/media_picker/create_desktop_media_picker_cocoa.mm",
"cocoa/media_picker/desktop_media_picker_bridge.h", "cocoa/media_picker/desktop_media_picker_bridge.h",
"cocoa/media_picker/desktop_media_picker_bridge.mm", "cocoa/media_picker/desktop_media_picker_bridge.mm",
"cocoa/media_picker/desktop_media_picker_cocoa.h", "cocoa/media_picker/desktop_media_picker_cocoa.h",
...@@ -2838,6 +2840,12 @@ split_static_library("ui") { ...@@ -2838,6 +2840,12 @@ split_static_library("ui") {
"views/content_setting_domain_list_view.h", "views/content_setting_domain_list_view.h",
"views/cookie_info_view.cc", "views/cookie_info_view.cc",
"views/cookie_info_view.h", "views/cookie_info_view.h",
"views/desktop_capture/desktop_media_list_view.cc",
"views/desktop_capture/desktop_media_list_view.h",
"views/desktop_capture/desktop_media_picker_views.cc",
"views/desktop_capture/desktop_media_picker_views.h",
"views/desktop_capture/desktop_media_source_view.cc",
"views/desktop_capture/desktop_media_source_view.h",
"views/device_chooser_content_view.cc", "views/device_chooser_content_view.cc",
"views/device_chooser_content_view.h", "views/device_chooser_content_view.h",
"views/download/download_danger_prompt_views.cc", "views/download/download_danger_prompt_views.cc",
...@@ -3474,12 +3482,6 @@ split_static_library("ui") { ...@@ -3474,12 +3482,6 @@ split_static_library("ui") {
"views/color_chooser_aura.h", "views/color_chooser_aura.h",
"views/crypto_module_password_dialog_view.cc", "views/crypto_module_password_dialog_view.cc",
"views/crypto_module_password_dialog_view.h", "views/crypto_module_password_dialog_view.h",
"views/desktop_capture/desktop_media_list_view.cc",
"views/desktop_capture/desktop_media_list_view.h",
"views/desktop_capture/desktop_media_picker_views.cc",
"views/desktop_capture/desktop_media_picker_views.h",
"views/desktop_capture/desktop_media_source_view.cc",
"views/desktop_capture/desktop_media_source_view.h",
"views/dropdown_bar_host_aura.cc", "views/dropdown_bar_host_aura.cc",
"views/frame/browser_non_client_frame_view_factory_chromeos.cc", "views/frame/browser_non_client_frame_view_factory_chromeos.cc",
"views/ime/ime_window_frame_view.cc", "views/ime/ime_window_frame_view.cc",
......
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_COCOA_MEDIA_PICKER_CREATE_DESKTOP_MEDIA_PICKER_COCOA_H_
#define CHROME_BROWSER_UI_COCOA_MEDIA_PICKER_CREATE_DESKTOP_MEDIA_PICKER_COCOA_H_
#include <memory>
#include "chrome/browser/media/webrtc/desktop_media_picker.h"
// Returns a Cocoa DesktopMediaPicker or nullptr if the Views version should be
// used instead.
std::unique_ptr<DesktopMediaPicker> CreateDesktopMediaPickerCocoa();
#endif // CHROME_BROWSER_UI_COCOA_MEDIA_PICKER_CREATE_DESKTOP_MEDIA_PICKER_COCOA_H_
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/cocoa/media_picker/create_desktop_media_picker_cocoa.h"
#import "chrome/browser/ui/cocoa/media_picker/desktop_media_picker_cocoa.h"
// static
std::unique_ptr<DesktopMediaPicker> CreateDesktopMediaPickerCocoa() {
return std::make_unique<DesktopMediaPickerCocoa>();
}
...@@ -27,8 +27,3 @@ void DesktopMediaPickerCocoa::Show( ...@@ -27,8 +27,3 @@ void DesktopMediaPickerCocoa::Show(
requestAudio:params.request_audio]); requestAudio:params.request_audio]);
[controller_ showWindow:nil]; [controller_ showWindow:nil];
} }
// static
std::unique_ptr<DesktopMediaPicker> DesktopMediaPicker::Create() {
return std::unique_ptr<DesktopMediaPicker>(new DesktopMediaPickerCocoa());
}
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "base/command_line.h" #include "base/command_line.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
#include "chrome/browser/media/webrtc/desktop_media_list.h" #include "chrome/browser/media/webrtc/desktop_media_list.h"
#include "chrome/browser/media/webrtc/window_icon_util.h" #include "chrome/browser/media/webrtc/window_icon_util.h"
#include "chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.h" #include "chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.h"
...@@ -20,9 +21,12 @@ ...@@ -20,9 +21,12 @@
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
#include "extensions/grit/extensions_browser_resources.h" #include "extensions/grit/extensions_browser_resources.h"
#include "ui/accessibility/ax_node_data.h" #include "ui/accessibility/ax_node_data.h"
#include "ui/aura/window.h"
#include "ui/base/resource/resource_bundle.h" #include "ui/base/resource/resource_bundle.h"
#if defined(OS_CHROMEOS)
#include "ui/aura/window.h"
#endif
using content::DesktopMediaID; using content::DesktopMediaID;
namespace { namespace {
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.h" #include "chrome/browser/ui/views/desktop_capture/desktop_media_picker_views.h"
#include "base/callback.h" #include "base/callback.h"
#include "build/build_config.h"
#include "chrome/browser/media/webrtc/desktop_media_list.h" #include "chrome/browser/media/webrtc/desktop_media_list.h"
#include "chrome/browser/ui/browser_dialogs.h" #include "chrome/browser/ui/browser_dialogs.h"
#include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/browser_finder.h"
...@@ -20,7 +21,6 @@ ...@@ -20,7 +21,6 @@
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents_delegate.h" #include "content/public/browser/web_contents_delegate.h"
#include "ui/aura/window_tree_host.h"
#include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util.h"
#include "ui/events/keycodes/keyboard_codes.h" #include "ui/events/keycodes/keyboard_codes.h"
#include "ui/gfx/canvas.h" #include "ui/gfx/canvas.h"
...@@ -33,11 +33,19 @@ ...@@ -33,11 +33,19 @@
#include "ui/views/window/dialog_client_view.h" #include "ui/views/window/dialog_client_view.h"
#include "ui/wm/core/shadow_types.h" #include "ui/wm/core/shadow_types.h"
#if defined(USE_AURA)
#include "ui/aura/window_tree_host.h"
#endif
#if defined(OS_MACOSX)
#include "chrome/browser/ui/cocoa/media_picker/create_desktop_media_picker_cocoa.h"
#endif
using content::DesktopMediaID; using content::DesktopMediaID;
namespace { namespace {
#if !defined(OS_CHROMEOS) #if !defined(OS_CHROMEOS) && defined(USE_AURA)
DesktopMediaID::Id AcceleratedWidgetToDesktopMediaId( DesktopMediaID::Id AcceleratedWidgetToDesktopMediaId(
gfx::AcceleratedWidget accelerated_widget) { gfx::AcceleratedWidget accelerated_widget) {
#if defined(OS_WIN) #if defined(OS_WIN)
...@@ -223,6 +231,7 @@ DesktopMediaPickerDialogView::DesktopMediaPickerDialogView( ...@@ -223,6 +231,7 @@ DesktopMediaPickerDialogView::DesktopMediaPickerDialogView(
// the Id is passed to DesktopMediaList. // the Id is passed to DesktopMediaList.
DesktopMediaID dialog_window_id; DesktopMediaID dialog_window_id;
if (!modal_dialog) { if (!modal_dialog) {
#if defined(USE_AURA)
dialog_window_id = DesktopMediaID::RegisterAuraWindow( dialog_window_id = DesktopMediaID::RegisterAuraWindow(
DesktopMediaID::TYPE_WINDOW, widget->GetNativeWindow()); DesktopMediaID::TYPE_WINDOW, widget->GetNativeWindow());
...@@ -230,7 +239,8 @@ DesktopMediaPickerDialogView::DesktopMediaPickerDialogView( ...@@ -230,7 +239,8 @@ DesktopMediaPickerDialogView::DesktopMediaPickerDialogView(
#if !defined(OS_CHROMEOS) #if !defined(OS_CHROMEOS)
dialog_window_id.id = AcceleratedWidgetToDesktopMediaId( dialog_window_id.id = AcceleratedWidgetToDesktopMediaId(
widget->GetNativeWindow()->GetHost()->GetAcceleratedWidget()); widget->GetNativeWindow()->GetHost()->GetAcceleratedWidget());
#endif #endif // !defined(OS_CHROMEOS)
#endif // defined(USE_AURA)
} }
for (auto* list_view : list_views_) for (auto* list_view : list_views_)
...@@ -449,5 +459,11 @@ void DesktopMediaPickerViews::NotifyDialogResult(DesktopMediaID source) { ...@@ -449,5 +459,11 @@ void DesktopMediaPickerViews::NotifyDialogResult(DesktopMediaID source) {
// static // static
std::unique_ptr<DesktopMediaPicker> DesktopMediaPicker::Create() { std::unique_ptr<DesktopMediaPicker> DesktopMediaPicker::Create() {
return std::unique_ptr<DesktopMediaPicker>(new DesktopMediaPickerViews()); #if defined(OS_MACOSX)
std::unique_ptr<DesktopMediaPicker> cocoa_ui =
CreateDesktopMediaPickerCocoa();
if (cocoa_ui)
return cocoa_ui;
#endif
return std::make_unique<DesktopMediaPickerViews>();
} }
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "base/bind.h" #include "base/bind.h"
#include "base/run_loop.h" #include "base/run_loop.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
#include "chrome/browser/media/webrtc/fake_desktop_media_list.h" #include "chrome/browser/media/webrtc/fake_desktop_media_list.h"
#include "chrome/browser/ui/views/desktop_capture/desktop_media_list_view.h" #include "chrome/browser/ui/views/desktop_capture/desktop_media_list_view.h"
#include "chrome/browser/ui/views/desktop_capture/desktop_media_source_view.h" #include "chrome/browser/ui/views/desktop_capture/desktop_media_source_view.h"
...@@ -59,6 +60,12 @@ class DesktopMediaPickerViewsTest : public testing::Test { ...@@ -59,6 +60,12 @@ class DesktopMediaPickerViewsTest : public testing::Test {
picker_params.app_name = app_name; picker_params.app_name = app_name;
picker_params.target_name = app_name; picker_params.target_name = app_name;
picker_params.request_audio = true; picker_params.request_audio = true;
#if defined(OS_MACOSX)
// On Mac, we don't have a NativeView to provide to
// DialogDelegate::CreateDialogWidget for the default MODAL_TYPE_CHILD
// default. MODAL_TYPE_WINDOW works around this.
picker_params.modality = ui::ModalType::MODAL_TYPE_WINDOW;
#endif
picker_views_->Show(picker_params, std::move(source_lists), picker_views_->Show(picker_params, std::move(source_lists),
base::Bind(&DesktopMediaPickerViewsTest::OnPickerDone, base::Bind(&DesktopMediaPickerViewsTest::OnPickerDone,
base::Unretained(this))); base::Unretained(this)));
......
...@@ -1414,6 +1414,7 @@ test("browser_tests") { ...@@ -1414,6 +1414,7 @@ test("browser_tests") {
"../browser/ui/views/autofill/save_card_bubble_views_browsertest_base.h", "../browser/ui/views/autofill/save_card_bubble_views_browsertest_base.h",
"../browser/ui/views/bookmarks/bookmark_bubble_view_browsertest.cc", "../browser/ui/views/bookmarks/bookmark_bubble_view_browsertest.cc",
"../browser/ui/views/bookmarks/bookmark_editor_view_browsertest.cc", "../browser/ui/views/bookmarks/bookmark_editor_view_browsertest.cc",
"../browser/ui/views/desktop_capture/desktop_media_picker_views_browsertest.cc",
"../browser/ui/views/extensions/extension_message_bubble_view_browsertest.cc", "../browser/ui/views/extensions/extension_message_bubble_view_browsertest.cc",
"../browser/ui/views/extensions/pwa_confirmation_view_browsertest.cc", "../browser/ui/views/extensions/pwa_confirmation_view_browsertest.cc",
"../browser/ui/views/external_protocol_dialog_browsertest.cc", "../browser/ui/views/external_protocol_dialog_browsertest.cc",
...@@ -2099,16 +2100,13 @@ test("browser_tests") { ...@@ -2099,16 +2100,13 @@ test("browser_tests") {
data_deps += [ "//remoting/webapp" ] data_deps += [ "//remoting/webapp" ]
} }
if (use_aura) { if (use_aura && enable_wifi_display) {
sources += [ "../browser/ui/views/desktop_capture/desktop_media_picker_views_browsertest.cc" ]
if (enable_wifi_display) {
sources += [ sources += [
"../../extensions/browser/api/display_source/display_source_apitestbase.cc", "../../extensions/browser/api/display_source/display_source_apitestbase.cc",
"../../extensions/browser/api/display_source/display_source_apitestbase.h", "../../extensions/browser/api/display_source/display_source_apitestbase.h",
"../browser/extensions/api/display_source/display_source_wifi_display_apitest.cc", "../browser/extensions/api/display_source/display_source_wifi_display_apitest.cc",
] ]
} }
}
if (is_chromeos || (is_linux && use_dbus)) { if (is_chromeos || (is_linux && use_dbus)) {
sources += [ "../browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_apitest.cc" ] sources += [ "../browser/extensions/api/bluetooth_low_energy/bluetooth_low_energy_apitest.cc" ]
...@@ -4351,6 +4349,7 @@ test("unit_tests") { ...@@ -4351,6 +4349,7 @@ test("unit_tests") {
"../browser/ui/views/bookmarks/bookmark_context_menu_unittest.cc", "../browser/ui/views/bookmarks/bookmark_context_menu_unittest.cc",
"../browser/ui/views/bookmarks/bookmark_editor_view_unittest.cc", "../browser/ui/views/bookmarks/bookmark_editor_view_unittest.cc",
"../browser/ui/views/bookmarks/bookmark_menu_delegate_unittest.cc", "../browser/ui/views/bookmarks/bookmark_menu_delegate_unittest.cc",
"../browser/ui/views/desktop_capture/desktop_media_picker_views_unittest.cc",
"../browser/ui/views/device_chooser_content_view_unittest.cc", "../browser/ui/views/device_chooser_content_view_unittest.cc",
"../browser/ui/views/download/download_item_view_unittest.cc", "../browser/ui/views/download/download_item_view_unittest.cc",
"../browser/ui/views/extensions/chooser_dialog_view_unittest.cc", "../browser/ui/views/extensions/chooser_dialog_view_unittest.cc",
...@@ -4392,7 +4391,6 @@ test("unit_tests") { ...@@ -4392,7 +4391,6 @@ test("unit_tests") {
# Get these compiling on Mac - see http://crbug.com/657883. # Get these compiling on Mac - see http://crbug.com/657883.
"../browser/ui/views/crypto_module_password_dialog_view_unittest.cc", "../browser/ui/views/crypto_module_password_dialog_view_unittest.cc",
"../browser/ui/views/desktop_capture/desktop_media_picker_views_unittest.cc",
] ]
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment