8
0
Files
nodejs-electron/disable-webspeech.patch
Bruno Pitrus faa6640daa Accepting request 1237196 from home:dziobian:gulgul-ultron:19
- Update to 33.3.1
  * Drop 32-bit support
  * chromium 130.0.6723.170
  * node 20.18.0
  * v8 13.0
  * Behavior Changed: frame properties may retrieve detached WebFrameMain instances or none at all
  * Behavior Changed: webContents property on login on app
  * Added a handler, app.setClientCertRequestPasswordHandler(handler), to help unlock cryptographic devices when a PIN is needed.
  * Added View.setBorderRadius(radius) for customizing the border radius of views—with compatibility for WebContentsView.
  * Extended navigationHistory API with 2 new functions for better history management. #42014
  * see https://github.com/electron/electron/releases/tag/v33.0.0 and https://www.electronjs.org/blog/electron-33-0 for more
- Disable aarch64 builds due to OBS hardware limits. Sorry.
- Drop Leap 15.5 support
- Drop no longer needed patches 
  * absl-base-dynamic_annotations.patch
  * angle-State-constexpr.patch
  * chromium-124-shims.patch
  * color_provider-incomplete-ColorProviderInternal.patch
  * ConsumeRadii-linker-error.patch
  * Cr126-abseil-shims.patch
  * crashpad-use-system-abseil.patch
  * DesktopNativeWidgetAura-HandleActivationChanged-crash.patch
  * harfbuzz-replace-chromium-scoped-type.patch
  * harfbuzz-replace-HbScopedPointer.patch
  * http_auth_ntlm_mechanism-could-not-convert-to-base-span.patch
  * licenses.py-FileNotFoundError.patch
  * native_css_paint_definition-expected-unqualified-id.patch
  * page_popup_controller-missing-optional.patch
  * partition_alloc-no-lto.patch
  * preview_cancel_reason-missing-string.patch
  * quiche-QuicIntervalDeque-no-match-for-operator-mm.patch
  * real_time_reporting_bindings-forward-declaration.patch
  * run_segmenter-missing-optional.patch
  * skia-system-vulkan-headers.patch
  * system-zlib.patch
  * text_decoder-missing-optional.patch
  * wayland-proto-31-cursor-shape.patch
- Drop libaom_av1_encoder-aom37-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR.patch and replace it with more fine-grained reverts:
  * aom3.10-AV1E_SET_MAX_CONSEC_FRAME_DROP_MS_CBR.patch
  * aom3.10-AV1E_SET_AUTO_TILES.patch
  * webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR.patch
  * webrtc-aom3.8-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR-2.patch
- Drop the following revert:
  * bad-font-gc0000.patch
  * bad-font-gc000.patch
  * bad-font-gc00.patch
  * bad-font-gc0.patch
  * bad-font-gc11.patch
  * bad-font-gc1.patch
  * bad-font-gc2.patch
  * bad-font-gc3.patch
- Add bsc1224178-font-gc.patch for a proper fix for bsc#1224178 deb#1067886
- Add backported or forwardable patches to fix build errors:
  * account_id-missing-optional.patch
  * css_attr_value_tainting-missing-once_flag.patch
  * electron_usb_delegate-incomplete-UsbDeviceInfo.patch
  * exception_context-missing-variant.patch
  * fix-build-without-service-discovery.patch
  * ip_protection_data_types-missing-optional.patch
  * skia_image_decoder_base-missing-stack.patch
  * vtt_scanner-missing-variant.patch
  * wayland_connection-Wchanges-meaning.patch
- Add patches to fix build errors due to our changes:
  * build-without-speech-service.patch
  * chromium-123-qrcode.patch
  * chromium-125-cloud_authenticator.patch
  * chromium-127-crabby.patch
  * chromium-129-disable-H.264-video-parser-during-demuxing.patch
  * chromium-130-fontations.patch
  * cr130-abseil-remove-unused-deps.patch
  * cr130-absl-base.patch
  * delete-old-language-detection-which-uses-tflite.patch
  * fix-build-without-screen-ai.patch
  * private_aggregation_host-uint128.patch
  * remove-libphonenumber.patch
  * system-absl_algorithm.patch
  * wayland_version.patch
- 15.6: use bundled vulkan and spirv headers
- 15.6: revert upstream changes to build with old wayland
  * wayland-protocol-toplevel-icon.patch
  * wayland-protocol-toplevel-icon-2.patch
  * wayland-protocol-toplevel-drag.patch
- Use bundled yuv everywhere due to system version being too old

OBS-URL: https://build.opensuse.org/request/show/1237196
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs-electron?expand=0&rev=182
2025-01-12 20:37:55 +00:00

289 lines
12 KiB
Diff

From d617766b236a93749ddbb50b75573dd35238ffc9 Mon Sep 17 00:00:00 2001
From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Date: Fri, 29 Jan 2016 14:20:48 +0100
Subject: Fix building without WebSpeech
WebSpeech requires Google API keys, so we do not support it, and
disabling it also gets rid of libspeex and libFLAC.
Also splits speech recognition from speech synthesis, so we can
disable the former without disabling the latter.
Change-Id: I80a54ec4c6a13ea4c443289aa42369196c2e095a
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
---
chromium/content/browser/BUILD.gn | 56 ++++++++++++----------
.../content/browser/browser_interface_binders.cc | 10 ++++
chromium/content/browser/browser_main_loop.cc | 7 ++-
chromium/content/browser/browser_main_loop.h | 2 +
chromium/content/child/runtime_features.cc | 1 -
chromium/media/BUILD.gn | 1 +
chromium/media/media_options.gni | 2 +
7 files changed, 52 insertions(+), 27 deletions(-)
--- src/content/browser/BUILD.gn.orig 2024-12-08 18:44:00.234689649 +0100
+++ src/content/browser/BUILD.gn 2024-12-18 12:20:19.753578327 +0100
@@ -2134,13 +2134,6 @@ source_set("browser") {
"sms/user_consent_handler.h",
"sms/webotp_service.cc",
"sms/webotp_service.h",
- "speech/speech_recognition_dispatcher_host.cc",
- "speech/speech_recognition_dispatcher_host.h",
- "speech/speech_recognition_manager_impl.cc",
- "speech/speech_recognition_manager_impl.h",
- "speech/speech_recognition_session.cc",
- "speech/speech_recognition_session.h",
- "speech/speech_recognizer.h",
"speech/speech_synthesis_impl.cc",
"speech/speech_synthesis_impl.h",
"speech/tts_controller_impl.cc",
@@ -3340,13 +3333,6 @@ source_set("browser") {
"service_worker/service_worker_usb_delegate_observer.cc",
"service_worker/service_worker_usb_delegate_observer.h",
- # Most speech code is non-Android.
- "speech/network_speech_recognition_engine_impl.cc",
- "speech/network_speech_recognition_engine_impl.h",
- "speech/speech_recognition_engine.cc",
- "speech/speech_recognition_engine.h",
- "speech/speech_recognizer_impl.cc",
- "speech/speech_recognizer_impl.h",
"tracing/tracing_ui.cc",
"tracing/tracing_ui.h",
@@ -3397,10 +3383,8 @@ source_set("browser") {
"//components/soda:constants",
"//components/soda:soda",
"//components/soda:utils",
- "//components/speech:speech",
"//components/vector_icons",
"//components/webauthn/json",
- "//media/mojo/mojom:speech_recognition",
"//ui/base",
]
}
@@ -3471,6 +3455,37 @@ source_set("browser") {
deps += [ "//ui/compositor" ]
}
+ if (enable_web_speech) {
+ sources += [
+ "speech/audio_buffer.cc",
+ "speech/audio_buffer.h",
+ "speech/audio_encoder.cc",
+ "speech/audio_encoder.h",
+ "speech/chunked_byte_buffer.cc",
+ "speech/chunked_byte_buffer.h",
+ "speech/endpointer/endpointer.cc",
+ "speech/endpointer/endpointer.h",
+ "speech/endpointer/energy_endpointer.cc",
+ "speech/endpointer/energy_endpointer.h",
+ "speech/endpointer/energy_endpointer_params.cc",
+ "speech/endpointer/energy_endpointer_params.h",
+ "speech/speech_recognition_engine.cc",
+ "speech/speech_recognition_engine.h",
+ "speech/speech_recognizer_impl.cc",
+ "speech/speech_recognizer_impl.h",
+ "speech/speech_recognition_dispatcher_host.cc",
+ "speech/speech_recognition_dispatcher_host.h",
+ "speech/speech_recognition_manager_impl.cc",
+ "speech/speech_recognition_manager_impl.h",
+ "speech/speech_recognizer.h",
+ ]
+ deps += [
+ "//components/speech",
+ "//content/browser/speech/proto",
+ "//third_party/flac",
+ ]
+ }
+
if ((is_linux || is_chromeos) && use_dbus) {
deps += [ "//dbus" ]
}
--- src/content/browser/browser_interface_binders.cc.orig 2024-12-08 18:34:57.541340064 +0100
+++ src/content/browser/browser_interface_binders.cc 2024-12-18 12:22:33.827251622 +0100
@@ -59,7 +59,9 @@
#include "content/browser/renderer_host/render_process_host_impl.h"
#include "content/browser/service_worker/service_worker_host.h"
#include "content/browser/shared_storage/shared_storage_worklet_host.h"
+#if BUILDFLAG(ENABLE_WEB_SPEECH)
#include "content/browser/speech/speech_recognition_dispatcher_host.h"
+#endif
#include "content/browser/storage_access/storage_access_handle.h"
#include "content/browser/tracing/trace_report/trace_report.mojom.h"
#include "content/browser/tracing/trace_report/trace_report_internals_ui.h"
@@ -98,7 +100,9 @@
#include "media/mojo/mojom/media_metrics_provider.mojom.h"
#include "media/mojo/mojom/media_player.mojom.h"
#include "media/mojo/mojom/remoting.mojom.h"
+#if BUILDFLAG(ENABLE_WEB_SPEECH)
#include "media/mojo/mojom/speech_recognizer.mojom.h"
+#endif
#include "media/mojo/mojom/video_decode_perf_history.mojom.h"
#include "media/mojo/mojom/video_encoder_metrics_provider.mojom.h"
#include "media/mojo/mojom/webrtc_video_perf.mojom.h"
@@ -203,7 +207,9 @@
#else // BUILDFLAG(IS_ANDROID)
#include "content/browser/direct_sockets/direct_sockets_service_impl.h"
#include "media/mojo/mojom/renderer_extensions.mojom.h"
+#if BUILDFLAG(ENABLE_WEB_SPEECH)
#include "media/mojo/mojom/speech_recognition.mojom.h" // nogncheck
+#endif
#include "third_party/blink/public/mojom/hid/hid.mojom.h"
#include "third_party/blink/public/mojom/installedapp/installed_app_provider.mojom.h"
#include "third_party/blink/public/mojom/serial/serial.mojom.h"
@@ -860,10 +866,12 @@ void PopulateFrameBinders(RenderFrameHos
map->Add<blink::mojom::SharedWorkerConnector>(
base::BindRepeating(&BindSharedWorkerConnector, base::Unretained(host)));
+#if BUILDFLAG(ENABLE_WEB_SPEECH)
map->Add<media::mojom::SpeechRecognizer>(
base::BindRepeating(&SpeechRecognitionDispatcherHost::Create,
host->GetProcess()->GetID(), host->GetRoutingID()),
GetIOThreadTaskRunner({}));
+#endif
map->Add<blink::mojom::SpeechSynthesis>(base::BindRepeating(
&RenderFrameHostImpl::GetSpeechSynthesis, base::Unretained(host)));
@@ -1163,6 +1171,7 @@ void PopulateBinderMapWithContext(
#if !BUILDFLAG(IS_ANDROID)
map->Add<blink::mojom::DirectSocketsService>(
base::BindRepeating(&DirectSocketsServiceImpl::CreateForFrame));
+#if BUILDFLAG(ENABLE_WEB_SPEECH)
map->Add<media::mojom::SpeechRecognitionContext>(base::BindRepeating(
&EmptyBinderForFrame<media::mojom::SpeechRecognitionContext>));
map->Add<media::mojom::SpeechRecognitionClientBrowserInterface>(
@@ -1174,6 +1183,7 @@ void PopulateBinderMapWithContext(
map->Add<media::mojom::MediaPlayerObserverClient>(base::BindRepeating(
&EmptyBinderForFrame<media::mojom::MediaPlayerObserverClient>));
#endif
+#endif
#if BUILDFLAG(ENABLE_UNHANDLED_TAP)
map->Add<blink::mojom::UnhandledTapNotifier>(base::BindRepeating(
&EmptyBinderForFrame<blink::mojom::UnhandledTapNotifier>));
diff --git a/chromium/content/browser/browser_main_loop.cc b/chromium/content/browser/browser_main_loop.cc
index aaa752bec61..b3a1ed50d20 100644
--- a/content/browser/browser_main_loop.cc
+++ b/content/browser/browser_main_loop.cc
@@ -87,7 +87,9 @@
#include "content/browser/screenlock_monitor/screenlock_monitor.h"
#include "content/browser/screenlock_monitor/screenlock_monitor_device_source.h"
#include "content/browser/sms/sms_provider.h"
+#if BUILDFLAG(ENABLE_WEB_SPEECH)
#include "content/browser/speech/speech_recognition_manager_impl.h"
+#endif
#include "content/browser/speech/tts_controller_impl.h"
#include "content/browser/startup_data_impl.h"
#include "content/browser/startup_task_runner.h"
@@ -1114,12 +1116,14 @@ void BrowserMainLoop::ShutdownThreadsAndCleanUp() {
midi_service_->Shutdown();
}
+#if BUILDFLAG(ENABLE_WEB_SPEECH)
{
TRACE_EVENT0("shutdown",
"BrowserMainLoop::Subsystem:SpeechRecognitionManager");
io_thread_->task_runner()->DeleteSoon(
FROM_HERE, speech_recognition_manager_.release());
}
+#endif
TtsControllerImpl::GetInstance()->Shutdown();
@@ -1364,13 +1368,14 @@ void BrowserMainLoop::PostCreateThreadsImpl() {
media_stream_manager_ =
std::make_unique<MediaStreamManager>(audio_system_.get());
}
-
+#if BUILDFLAG(ENABLE_WEB_SPEECH)
{
TRACE_EVENT0("startup",
"BrowserMainLoop::PostCreateThreads:InitSpeechRecognition");
speech_recognition_manager_.reset(new SpeechRecognitionManagerImpl(
audio_system_.get(), media_stream_manager_.get()));
}
+#endif
{
TRACE_EVENT0("startup",
diff --git a/chromium/content/browser/browser_main_loop.h b/chromium/content/browser/browser_main_loop.h
index a8c8c6b5d16..7d92e0a701e 100644
--- a/content/browser/browser_main_loop.h
+++ b/content/browser/browser_main_loop.h
@@ -367,8 +367,10 @@ class CONTENT_EXPORT BrowserMainLoop {
std::unique_ptr<midi::MidiService> midi_service_;
+#if defined(ENABLE_WEB_SPEECH)
// Must be deleted on the IO thread.
std::unique_ptr<SpeechRecognitionManagerImpl> speech_recognition_manager_;
+#endif
#if BUILDFLAG(IS_WIN)
std::unique_ptr<media::SystemMessageWindowWin> system_message_window_;
diff --git a/chromium/content/child/runtime_features.cc b/chromium/content/child/runtime_features.cc
index 3a2e713ccc3..6af5afde20e 100644
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
@@ -465,7 +465,6 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) {
{wrf::EnablePushMessaging, switches::kDisableNotifications, false},
{wrf::EnableScriptedSpeechRecognition, switches::kDisableSpeechAPI,
false},
- {wrf::EnableScriptedSpeechSynthesis, switches::kDisableSpeechAPI, false},
{wrf::EnableScriptedSpeechSynthesis, switches::kDisableSpeechSynthesisAPI,
false},
{wrf::EnableSharedWorker, switches::kDisableSharedWorkers, false},
diff --git a/chromium/media/BUILD.gn b/chromium/media/BUILD.gn
index 01e0910666e..6ce78127e3f 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -47,6 +47,7 @@ buildflag_header("media_buildflags") {
"ENABLE_PLATFORM_MPEG_H_AUDIO=$enable_platform_mpeg_h_audio",
"ENABLE_MSE_MPEG2TS_STREAM_PARSER=$enable_mse_mpeg2ts_stream_parser",
"PLATFORM_HAS_OPTIONAL_HEVC_SUPPORT=$platform_has_optional_hevc_support",
+ "ENABLE_WEB_SPEECH=$enable_web_speech",
"USE_ARC_PROTECTED_MEDIA=$use_arc_protected_media",
"USE_CHROMEOS_MEDIA_ACCELERATION=$use_vaapi||$use_v4l2_codec",
"USE_CHROMEOS_PROTECTED_AV1=$use_chromeos_protected_av1",
diff --git a/chromium/media/media_options.gni b/chromium/media/media_options.gni
index 5667cac61f3..48ea95a99a6 100644
--- a/media/media_options.gni
+++ b/media/media_options.gni
@@ -66,6 +66,8 @@ declare_args() {
# kAllowClearDolbyVisionInMseWhenPlatformEncryptedDvEnabled.
enable_platform_encrypted_dolby_vision = proprietary_codecs && is_win
+ enable_web_speech = true
+
# Enable logging override, e.g. enable DVLOGs through level 2 at build time.
# On Cast devices, these are logged as INFO.
# When enabled on Fuchsia, these are logged as VLOGs.
--
cgit v1.2.1
--- src/components/speech/BUILD.gn.orig 2024-12-08 18:34:57.021340049 +0100
+++ src/components/speech/BUILD.gn 2024-12-18 12:18:14.187490208 +0100
@@ -6,12 +6,6 @@ import("//build/config/features.gni")
source_set("speech") {
sources = [
- "audio_buffer.cc",
- "audio_buffer.h",
- "audio_encoder.cc",
- "audio_encoder.h",
- "chunked_byte_buffer.cc",
- "chunked_byte_buffer.h",
"downstream_loader.cc",
"downstream_loader.h",
"downstream_loader_client.h",
@@ -27,7 +21,6 @@ source_set("speech") {
"//mojo/public/cpp/system",
"//services/network/public/cpp",
"//services/network/public/mojom",
- "//third_party/flac",
]
if (!is_android) {