b0036ea43a
* chore: bump chromium in DEPS to 107.0.5286.0 * 3866335: media: Rename KeySystemProperties to KeySystemInfo - file renaming https://chromium-review.googlesource.com/c/chromium/src/+/3866335 * 3864686: [PA] Introduce *Scan buildflag https://chromium-review.googlesource.com/c/chromium/src/+/3864686 * chore: fixup patch indices * 3849359: Remove unused PrefValueStore::Delegate https://chromium-review.googlesource.com/c/chromium/src/+/3849359 * 3873005: [CodeHealth] Modernising extensions Tab utils https://chromium-review.googlesource.com/c/chromium/src/+/3873005 * 3846595: Auto-select PipeWire target once selection is made https://chromium-review.googlesource.com/c/chromium/src/+/3846595 * 3826169: [json-schema-compiler] Support abs::optional<bool> https://chromium-review.googlesource.com/c/chromium/src/+/3826169 * fixup! Remove unused PrefValueStore::Delegate Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> Co-authored-by: deepak1556 <hop2deep@gmail.com>
120 lines
6.1 KiB
Diff
120 lines
6.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: deepak1556 <hop2deep@gmail.com>
|
|
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 f16b2dae4dc5c6c0377400a51302bbb34ec5e485..8aba5333fb046e3f2650ce3a63479bd6afc931aa 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 62156d9c7fe3908d330807a0642a9e9e04e2cae0..736cf6dfe45046d0a177a915dd599e6163137389 100644
|
|
--- a/chrome/browser/media/webrtc/desktop_media_list_base.cc
|
|
+++ b/chrome/browser/media/webrtc/desktop_media_list_base.cc
|
|
@@ -69,12 +69,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 7d8f137be2d337a0069b0fbf890ef04741d986ec..e8de4f72d819ab55a78a1b1a86f522dac6b5a7a6 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 196a49e70a2aaae4e3dc456e9bc00e878d577750..f1ea9ee497d538f2802103d8cc58dd102e088676 100644
|
|
--- a/chrome/browser/media/webrtc/fake_desktop_media_list.cc
|
|
+++ b/chrome/browser/media/webrtc/fake_desktop_media_list.cc
|
|
@@ -77,7 +77,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 0f3bc1477387ea24f20647dc668ed82ce7e609b0..a791ff38795392b32e7cfcacd646bb68fe4cf9e5 100644
|
|
--- a/chrome/browser/media/webrtc/fake_desktop_media_list.h
|
|
+++ b/chrome/browser/media/webrtc/fake_desktop_media_list.h
|
|
@@ -32,7 +32,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 9cc555065bde14bbbed57112ce09a02768bfc38c..67fe851eb2cf014e6a4e7d4b99499ca4d943291e 100644
|
|
--- a/chrome/browser/media/webrtc/native_desktop_media_list.cc
|
|
+++ b/chrome/browser/media/webrtc/native_desktop_media_list.cc
|
|
@@ -141,8 +141,9 @@ BOOL CALLBACK AllHwndCollector(HWND hwnd, LPARAM param) {
|
|
#endif // BUILDFLAG(IS_WIN)
|
|
|
|
#if BUILDFLAG(IS_MAC)
|
|
+// Refs https://github.com/electron/electron/pull/30507
|
|
const base::Feature kWindowCaptureMacV2{"WindowCaptureMacV2",
|
|
- base::FEATURE_ENABLED_BY_DEFAULT};
|
|
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
|
#endif
|
|
|
|
} // namespace
|
|
@@ -440,6 +441,9 @@ void NativeDesktopMediaList::Worker::RefreshNextThumbnail() {
|
|
FROM_HERE,
|
|
base::BindOnce(&NativeDesktopMediaList::UpdateNativeThumbnailsFinished,
|
|
media_list_));
|
|
+
|
|
+ // This call is necessary to release underlying OS screen capture mechanisms.
|
|
+ capturer_.reset();
|
|
}
|
|
|
|
void NativeDesktopMediaList::Worker::OnCaptureResult(
|
|
@@ -748,6 +752,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();
|
|
}
|
|
}
|
|
|