123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
- From: deepak1556 <[email protected]>
- Date: Thu, 18 Oct 2018 17:07:01 -0700
- Subject: desktop_media_list.patch
- * Use our grit resources instead of the chrome ones.
- * Disabled WindowCaptureMacV2 feature for https://github.com/electron/electron/pull/30507
- * Ensure "OnRefreshComplete()" even if there are no items in the list
- diff --git a/chrome/browser/media/webrtc/desktop_media_list.h b/chrome/browser/media/webrtc/desktop_media_list.h
- index 6fb778093f57942faebbc6a68a92967826476674..57cad85973c5cfe3a19f80fd318ec46f085ad4d0 100644
- --- a/chrome/browser/media/webrtc/desktop_media_list.h
- +++ b/chrome/browser/media/webrtc/desktop_media_list.h
- @@ -107,7 +107,8 @@ class DesktopMediaList {
- // once per DesktopMediaList instance. It should not be called after
- // StartUpdating(), and StartUpdating() should not be called until |callback|
- // has been called.
- - virtual void Update(UpdateCallback callback) = 0;
- + virtual void Update(UpdateCallback callback,
- + bool refresh_thumbnails = false) = 0;
-
- virtual int GetSourceCount() const = 0;
- virtual const Source& GetSource(int index) const = 0;
- diff --git a/chrome/browser/media/webrtc/desktop_media_list_base.cc b/chrome/browser/media/webrtc/desktop_media_list_base.cc
- index a82e0b1a7e999817c8ee420ceddeb7ca9ee78caf..e07f4ded61a7a64983da1b6d07315aee9684a148 100644
- --- a/chrome/browser/media/webrtc/desktop_media_list_base.cc
- +++ b/chrome/browser/media/webrtc/desktop_media_list_base.cc
- @@ -74,12 +74,12 @@ void DesktopMediaListBase::StartUpdating(DesktopMediaListObserver* observer) {
- Refresh(true);
- }
-
- -void DesktopMediaListBase::Update(UpdateCallback callback) {
- +void DesktopMediaListBase::Update(UpdateCallback callback, bool refresh_thumbnails) {
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
- DCHECK(sources_.empty());
- DCHECK(!refresh_callback_);
- refresh_callback_ = std::move(callback);
- - Refresh(false);
- + Refresh(refresh_thumbnails);
- }
-
- int DesktopMediaListBase::GetSourceCount() const {
- diff --git a/chrome/browser/media/webrtc/desktop_media_list_base.h b/chrome/browser/media/webrtc/desktop_media_list_base.h
- index 9368d56f2b434b1a7101f28908f070ad9908be7e..804eb2c7ede137b8c9d0cf43042ff7f20dad5b91 100644
- --- a/chrome/browser/media/webrtc/desktop_media_list_base.h
- +++ b/chrome/browser/media/webrtc/desktop_media_list_base.h
- @@ -39,7 +39,7 @@ class DesktopMediaListBase : public DesktopMediaList {
- void SetThumbnailSize(const gfx::Size& thumbnail_size) override;
- void SetViewDialogWindowId(content::DesktopMediaID dialog_id) override;
- void StartUpdating(DesktopMediaListObserver* observer) override;
- - void Update(UpdateCallback callback) override;
- + void Update(UpdateCallback callback, bool refresh_thumbnails) override;
- int GetSourceCount() const override;
- const Source& GetSource(int index) const override;
- DesktopMediaList::Type GetMediaListType() const override;
- diff --git a/chrome/browser/media/webrtc/fake_desktop_media_list.cc b/chrome/browser/media/webrtc/fake_desktop_media_list.cc
- index cea6af048e682e33b5d93e4a3bfb4072840ca4fe..1c98d2275fa73a9e105bbd8928e05b48a4a05c14 100644
- --- a/chrome/browser/media/webrtc/fake_desktop_media_list.cc
- +++ b/chrome/browser/media/webrtc/fake_desktop_media_list.cc
- @@ -79,7 +79,8 @@ void FakeDesktopMediaList::StartUpdating(DesktopMediaListObserver* observer) {
- thumbnail_ = gfx::ImageSkia::CreateFrom1xBitmap(bitmap);
- }
-
- -void FakeDesktopMediaList::Update(UpdateCallback callback) {
- +void FakeDesktopMediaList::Update(UpdateCallback callback,
- + bool refresh_thumbnails) {
- std::move(callback).Run();
- }
-
- diff --git a/chrome/browser/media/webrtc/fake_desktop_media_list.h b/chrome/browser/media/webrtc/fake_desktop_media_list.h
- index 786c526588d81b8b5b1b5dd3760719a53e005995..f66b7d0b4dfcbb8ed3dde5a9ff463ae2c8818d27 100644
- --- a/chrome/browser/media/webrtc/fake_desktop_media_list.h
- +++ b/chrome/browser/media/webrtc/fake_desktop_media_list.h
- @@ -40,7 +40,8 @@ class FakeDesktopMediaList : public DesktopMediaList {
- void SetThumbnailSize(const gfx::Size& thumbnail_size) override;
- void SetViewDialogWindowId(content::DesktopMediaID dialog_id) override;
- void StartUpdating(DesktopMediaListObserver* observer) override;
- - void Update(UpdateCallback callback) override;
- + void Update(UpdateCallback callback,
- + bool refresh_thumbnails = false) override;
- int GetSourceCount() const override;
- const Source& GetSource(int index) const override;
- DesktopMediaList::Type GetMediaListType() const override;
- diff --git a/chrome/browser/media/webrtc/native_desktop_media_list.cc b/chrome/browser/media/webrtc/native_desktop_media_list.cc
- index 53873f1c82b16bcdb4643889823d1df436f640b8..b237354ba91be6b35a50fd379e69d76d68bb6c97 100644
- --- a/chrome/browser/media/webrtc/native_desktop_media_list.cc
- +++ b/chrome/browser/media/webrtc/native_desktop_media_list.cc
- @@ -176,7 +176,7 @@ BOOL CALLBACK AllHwndCollector(HWND hwnd, LPARAM param) {
- #if BUILDFLAG(IS_MAC)
- BASE_FEATURE(kWindowCaptureMacV2,
- "WindowCaptureMacV2",
- - base::FEATURE_ENABLED_BY_DEFAULT);
- + base::FEATURE_DISABLED_BY_DEFAULT);
- #endif
-
- content::DesktopMediaID::Type ConvertToDesktopMediaIDType(
- @@ -363,7 +363,7 @@ class NativeDesktopMediaList::Worker
- base::WeakPtr<NativeDesktopMediaList> media_list_;
-
- DesktopMediaID::Type source_type_;
- - const std::unique_ptr<ThumbnailCapturer> capturer_;
- + std::unique_ptr<ThumbnailCapturer> capturer_;
- const ThumbnailCapturer::FrameDeliveryMethod frame_delivery_method_;
- const bool add_current_process_windows_;
- const bool auto_show_delegated_source_list_;
- @@ -654,6 +654,12 @@ void NativeDesktopMediaList::Worker::RefreshNextThumbnail() {
- FROM_HERE,
- base::BindOnce(&NativeDesktopMediaList::UpdateNativeThumbnailsFinished,
- media_list_));
- +
- + // This call is necessary to release underlying OS screen capture mechanisms.
- + // Skip if the source list is delegated, as the source list window will be active.
- + if (!capturer_->GetDelegatedSourceListController()) {
- + capturer_.reset();
- + }
- }
-
- void NativeDesktopMediaList::Worker::OnCaptureResult(
- @@ -1058,6 +1064,11 @@ void NativeDesktopMediaList::RefreshForVizFrameSinkWindows(
- FROM_HERE, base::BindOnce(&Worker::RefreshThumbnails,
- base::Unretained(worker_.get()),
- std::move(native_ids), thumbnail_size_));
- + } else {
- +#if defined(USE_AURA)
- + pending_native_thumbnail_capture_ = true;
- +#endif
- + UpdateNativeThumbnailsFinished();
- }
- }
-
|