| Index: content/browser/media/capture/desktop_capture_device.cc
|
| diff --git a/content/browser/media/capture/desktop_capture_device.cc b/content/browser/media/capture/desktop_capture_device.cc
|
| index 98be881ce644212868d4bf15c8812d5f93b42420..d74237ff484329ff75e05f538524b7b5306eb192 100644
|
| --- a/content/browser/media/capture/desktop_capture_device.cc
|
| +++ b/content/browser/media/capture/desktop_capture_device.cc
|
| @@ -77,12 +77,29 @@ std::unique_ptr<service_manager::Connector> GetServiceConnector() {
|
| return connector->Clone();
|
| }
|
|
|
| -} // namespace
|
| -
|
| +// Creates a DesktopCaptureOptions with required settings. This function should
|
| +// be consistent with CreateDesktopCaptureOptions() function in
|
| +// desktop_capture_base.cc file at
|
| +// https://cs.chromium.org/chromium/src/chrome/browser/extensions/api/desktop_capture/desktop_capture_base.cc
|
| +webrtc::DesktopCaptureOptions CreateDesktopCaptureOptions() {
|
| + auto options = webrtc::DesktopCaptureOptions::CreateDefault();
|
| + // Leave desktop effects enabled during WebRTC captures.
|
| + options.set_disable_effects(false);
|
| #if defined(OS_WIN)
|
| -const base::Feature kDirectXCapturer{"DirectXCapturer",
|
| - base::FEATURE_ENABLED_BY_DEFAULT};
|
| + static constexpr base::Feature kDirectXCapturer{
|
| + "DirectXCapturer",
|
| + base::FEATURE_ENABLED_BY_DEFAULT};
|
| + if (base::FeatureList::IsEnabled(kDirectXCapturer)) {
|
| + options.set_allow_directx_capturer(true);
|
| + options.set_allow_use_magnification_api(false);
|
| + } else {
|
| + options.set_allow_use_magnification_api(true);
|
| + }
|
| #endif
|
| + return options;
|
| +}
|
| +
|
| +} // namespace
|
|
|
| class DesktopCaptureDevice::Core : public webrtc::DesktopCapturer::Callback {
|
| public:
|
| @@ -401,20 +418,7 @@ void DesktopCaptureDevice::Core::RequestWakeLock(
|
| // static
|
| std::unique_ptr<media::VideoCaptureDevice> DesktopCaptureDevice::Create(
|
| const DesktopMediaID& source) {
|
| - webrtc::DesktopCaptureOptions options =
|
| - webrtc::DesktopCaptureOptions::CreateDefault();
|
| - // Leave desktop effects enabled during WebRTC captures.
|
| - options.set_disable_effects(false);
|
| -
|
| -#if defined(OS_WIN)
|
| - if (!base::FeatureList::IsEnabled(kDirectXCapturer)) {
|
| - options.set_allow_use_magnification_api(true);
|
| - } else {
|
| - options.set_allow_directx_capturer(true);
|
| - options.set_allow_use_magnification_api(false);
|
| - }
|
| -#endif
|
| -
|
| + auto options = CreateDesktopCaptureOptions();
|
| std::unique_ptr<webrtc::DesktopCapturer> capturer;
|
|
|
| switch (source.type) {
|
|
|