Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: use the new MediaPlayPause key listener for internal chrome logic (
#21998) Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
- Loading branch information
1 parent
c196121
commit f658c1a
Showing
5 changed files
with
66 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
65 changes: 65 additions & 0 deletions
65
patches/chromium/fix_use_the_new_mediaplaypause_key_listener_for_internal_chrome.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||
From: Samuel Attard <sattard@slack-corp.com> | ||
Date: Wed, 29 Jan 2020 12:28:48 -0800 | ||
Subject: fix: use the new MediaPlayPause key listener for internal chrome | ||
logic | ||
|
||
The new kGlobalRequiresAccessibility Scope type should be upstreamed | ||
and then we can use that and minimize this patch to just the change in | ||
global_shortcut_listener_mac.mm | ||
|
||
diff --git a/chrome/browser/extensions/global_shortcut_listener_mac.mm b/chrome/browser/extensions/global_shortcut_listener_mac.mm | ||
index befe726af9c10b1563a7fc0bb77cc55f65943d5c..bac51f33f35f96fe4ecc764cf5ca887176642f74 100644 | ||
--- a/chrome/browser/extensions/global_shortcut_listener_mac.mm | ||
+++ b/chrome/browser/extensions/global_shortcut_listener_mac.mm | ||
@@ -39,7 +39,7 @@ | ||
// global MediaKeysListener to receive media keys. | ||
if (!content::MediaKeysListenerManager::IsMediaKeysListenerManagerEnabled()) { | ||
media_keys_listener_ = ui::MediaKeysListener::Create( | ||
- this, ui::MediaKeysListener::Scope::kGlobal); | ||
+ this, ui::MediaKeysListener::Scope::kGlobalRequiresAccessibility); | ||
DCHECK(media_keys_listener_); | ||
} | ||
} | ||
diff --git a/ui/base/accelerators/media_keys_listener.h b/ui/base/accelerators/media_keys_listener.h | ||
index 997718d8affaa193fcaabff4cd4c8b0c23df8891..e121598d46e7c62a3b14cb7960136f655cc69ab6 100644 | ||
--- a/ui/base/accelerators/media_keys_listener.h | ||
+++ b/ui/base/accelerators/media_keys_listener.h | ||
@@ -20,8 +20,9 @@ class Accelerator; | ||
class UI_BASE_EXPORT MediaKeysListener { | ||
public: | ||
enum class Scope { | ||
- kGlobal, // Listener works whenever application in focus or not. | ||
- kFocused, // Listener only works whan application has focus. | ||
+ kGlobalRequiresAccessibility, // Listener works whenever application in focus or not but requires accessibility permissions on macOS | ||
+ kGlobal, // Listener works whenever application in focus or not but requires media to be playnig. | ||
+ kFocused, // Listener only works whan application has focus. | ||
}; | ||
|
||
// Media keys accelerators receiver. | ||
diff --git a/ui/base/accelerators/media_keys_listener_linux.cc b/ui/base/accelerators/media_keys_listener_linux.cc | ||
index c74807dfae799851bb2e40996e634d8513e590a0..48f459941cae385e49af09410bb1812db5e6d971 100644 | ||
--- a/ui/base/accelerators/media_keys_listener_linux.cc | ||
+++ b/ui/base/accelerators/media_keys_listener_linux.cc | ||
@@ -13,7 +13,7 @@ std::unique_ptr<MediaKeysListener> MediaKeysListener::Create( | ||
MediaKeysListener::Scope scope) { | ||
DCHECK(delegate); | ||
|
||
- if (scope == Scope::kGlobal) { | ||
+ if (scope == Scope::kGlobal || scope == Scope::kGlobalRequiresAccessibility) { | ||
if (!SystemMediaControlsMediaKeysListener::has_instance()) { | ||
auto listener = | ||
std::make_unique<SystemMediaControlsMediaKeysListener>(delegate); | ||
diff --git a/ui/base/accelerators/media_keys_listener_win.cc b/ui/base/accelerators/media_keys_listener_win.cc | ||
index c50ea0ca2b8d612b96c0c822f5d36e9eb4ff861d..8b89fea7c09be007d8a020eb4d75f783c887f1a7 100644 | ||
--- a/ui/base/accelerators/media_keys_listener_win.cc | ||
+++ b/ui/base/accelerators/media_keys_listener_win.cc | ||
@@ -14,7 +14,7 @@ std::unique_ptr<MediaKeysListener> MediaKeysListener::Create( | ||
MediaKeysListener::Scope scope) { | ||
DCHECK(delegate); | ||
|
||
- if (scope == Scope::kGlobal) { | ||
+ if (scope == Scope::kGlobal || scope == Scope::kGlobalRequiresAccessibility) { | ||
// We should never have more than one global media keys listener. | ||
if (!SystemMediaControlsMediaKeysListener::has_instance() && | ||
!GlobalMediaKeysListenerWin::has_instance()) { |