Merge pull request #301616 from NickCao/telegram-desktop-backport

[Backport release-23.11] telegram-desktop: 4.14.9 -> 4.16.1
This commit is contained in:
Nick Cao
2024-04-06 11:05:18 -04:00
committed by GitHub
2 changed files with 82 additions and 5 deletions

View File

@@ -30,7 +30,6 @@
, range-v3
, tl-expected
, hunspell
, glibmm_2_68
, webkitgtk_6_0
, jemalloc
, rnnoise
@@ -64,14 +63,14 @@ let
in
stdenv.mkDerivation rec {
pname = "telegram-desktop";
version = "4.14.9";
version = "4.16.1";
src = fetchFromGitHub {
owner = "telegramdesktop";
repo = "tdesktop";
rev = "v${version}";
fetchSubmodules = true;
hash = "sha256-VqLCkGav6qtam9qk2MsjCdyVSj3630FGQg50Mv0OBNE=";
hash = "sha256-sb7BpEIjSJS4ntv8s0RSJAj4BhTgHF7fEei5QXl60mA=";
};
patches = [
@@ -94,6 +93,9 @@ stdenv.mkDerivation rec {
--replace '"libpulse.so.0"' '"${libpulseaudio}/lib/libpulse.so.0"'
substituteInPlace Telegram/lib_webview/webview/platform/linux/webview_linux_webkitgtk_library.cpp \
--replace '"libwebkitgtk-6.0.so.4"' '"${webkitgtk_6_0}/lib/libwebkitgtk-6.0.so.4"'
'' + lib.optionalString stdenv.isDarwin ''
substituteInPlace Telegram/lib_webrtc/webrtc/platform/mac/webrtc_environment_mac.mm \
--replace kAudioObjectPropertyElementMain kAudioObjectPropertyElementMaster
'';
# We want to run wrapProgram manually (with additional parameters)
@@ -141,7 +143,6 @@ stdenv.mkDerivation rec {
libpulseaudio
pipewire
hunspell
glibmm_2_68
webkitgtk_6_0
jemalloc
] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [

View File

@@ -49,12 +49,88 @@ index 7ce90d3..dac3c2c 100644
const auto state = DetectBatteryState();
if (!state.has || !state.draining) {
return false;
Submodule Telegram/lib_webrtc contains modified content
diff --git a/Telegram/lib_webrtc/webrtc/platform/mac/webrtc_environment_mac.mm b/Telegram/lib_webrtc/webrtc/platform/mac/webrtc_environment_mac.mm
index 7521c08..5e22da2 100644
--- a/Telegram/lib_webrtc/webrtc/platform/mac/webrtc_environment_mac.mm
+++ b/Telegram/lib_webrtc/webrtc/platform/mac/webrtc_environment_mac.mm
@@ -364,6 +364,7 @@ EnvironmentMac::EnvironmentMac(not_null<EnvironmentDelegate*> delegate)
DefaultCaptureDeviceChangedMonitor.registerEnvironment(this);
AudioDeviceListChangedMonitor.registerEnvironment(this);
+#if 0
if (@available(macOS 14.0, *)) {
const auto weak = base::make_weak(this);
id block = [^(BOOL shouldBeMuted){
@@ -387,6 +388,7 @@ EnvironmentMac::EnvironmentMac(not_null<EnvironmentDelegate*> delegate)
setInputMuteStateChangeHandler:block
error:nil];
}
+#endif
}
EnvironmentMac::~EnvironmentMac() {
@@ -537,15 +539,18 @@ void EnvironmentMac::devicesRequested(DeviceType type) {
}
void EnvironmentMac::setCaptureMuted(bool muted) {
+#if 0
if (@available(macOS 14.0, *)) {
if (!_captureMuteNotification) {
const auto value = muted ? YES : NO;
[[AVAudioApplication sharedInstance] setInputMuted:value error:nil];
}
}
+#endif
}
void EnvironmentMac::captureMuteSubscribe() {
+#if 0
if (@available(macOS 14.0, *)) {
id observer = [[InputMuteObserver alloc] init];
[[[NSWorkspace sharedWorkspace] notificationCenter]
@@ -578,6 +583,7 @@ void EnvironmentMac::captureMuteSubscribe() {
[observer release];
});
}
+#endif
}
void EnvironmentMac::captureMuteUnsubscribe() {
@@ -595,6 +601,7 @@ void EnvironmentMac::captureMuteRestartAdm() {
void EnvironmentMac::setCaptureMuteTracker(
not_null<CaptureMuteTracker*> tracker,
bool track) {
+#if 0
if (@available(macOS 14.0, *)) {
if (track) {
if (!_captureMuteTracker) {
@@ -619,6 +626,7 @@ void EnvironmentMac::setCaptureMuteTracker(
}
}
}
+#endif
}
std::unique_ptr<Environment> CreateEnvironment(
Submodule Telegram/lib_webview contains modified content
diff --git a/Telegram/lib_webview/webview/platform/mac/webview_mac.mm b/Telegram/lib_webview/webview/platform/mac/webview_mac.mm
index 738e574..80ff5f0 100644
--- a/Telegram/lib_webview/webview/platform/mac/webview_mac.mm
+++ b/Telegram/lib_webview/webview/platform/mac/webview_mac.mm
@@ -254,10 +254,12 @@ void *Instance::winId() {
@@ -314,9 +314,11 @@ Instance::Instance(Config config) {
_dataRequestHandler = std::move(config.dataRequestHandler);
[configuration setURLSchemeHandler:_handler forURLScheme:stdToNS(kDataUrlScheme)];
_webview = [[WKWebView alloc] initWithFrame:NSZeroRect configuration:configuration];
+#if 0
if (@available(macOS 13.3, *)) {
_webview.inspectable = config.debug ? YES : NO;
}
+#endif
[_manager addScriptMessageHandler:_handler name:@"external"];
[_webview setNavigationDelegate:_handler];
[_webview setUIDelegate:_handler];
@@ -658,10 +660,12 @@ void *Instance::winId() {
}
void Instance::setOpaqueBg(QColor opaqueBg) {