forked from pool/nodejs-electron
- New upstream release 30.2.0 * Node 20.15.0 * Enabled the Windows Control Overlay API on Linux. * Expose systemPreferences to utilityProcess. * Fixed a focus issue when calling BrowserWindow.setTopBrowserView. * Fixed an issue where fetch-dependent interfaces could be missing in Web Workers with nodeIntegrationInWorker enabled. * Fixed an issue where control could fail to return properly after saving a dialog using showOpenDialogSync on Linux. * Fixes an issue where the user-specified default path did not work in some circumstances when using Linux dialogs. * Fixes potentially incorrect exit code in UtilityProcess. * (Leap 15.5) Fix heap buffer overflow in libaom (CVE-2024-5493 bsc#1225690) * Security fixes for V8: CVE-2024-6100, CVE-2024-6101 (bsc#1226504) * Fix use after free in Swiftshader (CVE-2024-6291 bsc#1226933) - Update to 30.1.2 XXXFIXMEXXX * ABI break: NODE_MODULE_VERSION is now 123 * Chromium 124.0.6367.243 * Node 20.14.0 * V8 12.4 * Added WebContentsView and BaseWindow, replacing the now-deprecated BrowserView APIs. * cross-origin iframes now use Permission Policy to access features * Removed: The --disable-color-correct-rendering switch * The inputFieldType property in the context-menu params has been removed * Removed: process.getIOCounters() * see https://www.electronjs.org/blog/electron-30-0 and https://github.com/electron/electron/releases/tag/v30.0.0 for more - Fedora: use bundled simdutf as the system version is too old - Drop no longer needed patches * chromium-122-avoid-SFINAE-TypeConverter.patch * chromium-122-BookmarkNode-missing-operator.patch * chromium-98-EnumTable-crash.patch * chromium-gcc11.patch * CVE-2024-30260-undici-clear-proxy-authorization.patch * CVE-2024-30261-undici-fetch-integrity.patch * ElectronDesktopWindowTreeHostLinux-OnWindowTiledStateChanged-crash.patch * grid_sizing_tree-Wchanges-meaning.patch * hit_test_request-missing-optional.patch * InternalAllocator-too-many-initializers.patch * material_color_utilities-tones-missing-round.patch * nested-nested-nested-nested-nested-nested-regex-patterns.patch * perfetto-numeric_storage-double_t.patch * plus_address_types-missing-optional.patch * race_network_request_write_buffer_manager-missing-optional.patch * resolution_monitor-missing-bitset.patch * script_promise_resolver-explicit-specialization.patch * search_engine_choice_service-missing-optional.patch * text_break_iterator-icu74-breakAllLineBreakClassTable-should-be-consistent.patch * v8-instance-type-inl-constexpr-used-before-its-definition.patch - Drop no longer needed -Wno-error=narrowing from CXXFLAGS - Add patches to fix build * chromium-124-shims.patch * enable_stack_trace_line_numbers-symbol_level.patch * angle-FramebufferVk-powf.patch * licenses.py-FileNotFoundError.patch * span_reader-missing-optional.patch * bitset-missing-uint8_t-memcpy.patch * temporal_scalability_id_extractor-missing-bitset.patch * gpu_adapter_info-missing-optional.patch * first_party_sets_handler_database_helper-missing-optional.patch * async_iterable-forwarding.patch * preview_cancel_reason-missing-string.patch * script_streamer-atomic-include.patch - Add -Wno-packed-not-aligned -Wno-address to CXXFLAGS to suppress build logspam - Add libaom_av1_encoder-aom37-AV1E_SET_MAX_CONSEC_FRAME_DROP_CBR.patch to build with old libaom - Add backported DesktopNativeWidgetAura-HandleActivationChanged-crash.patch - Revert upstream changes which introduce a use-after-free bug causing crashes (bsc#1224178 deb#1067886) * 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 OBS-URL: https://build.opensuse.org/request/show/1187058 OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs-electron?expand=0&rev=159
294 lines
12 KiB
Diff
294 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(-)
|
|
|
|
diff --git a/chromium/content/browser/BUILD.gn b/chromium/content/browser/BUILD.gn
|
|
index 19b45dc1268..67dcd7752d0 100644
|
|
--- a/content/browser/BUILD.gn
|
|
+++ b/content/browser/BUILD.gn
|
|
@@ -1909,11 +1909,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_recognizer.h",
|
|
"speech/speech_synthesis_impl.cc",
|
|
"speech/speech_synthesis_impl.h",
|
|
"speech/tts_controller_impl.cc",
|
|
@@ -2956,19 +2951,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/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/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",
|
|
|
|
@@ -2995,7 +2975,6 @@ source_set("browser") {
|
|
]
|
|
|
|
deps += [
|
|
- "//components/speech:speech",
|
|
"//components/vector_icons",
|
|
"//components/webauthn/json",
|
|
]
|
|
@@ -3108,6 +3083,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" ]
|
|
}
|
|
diff --git a/chromium/content/browser/browser_interface_binders.cc b/chromium/content/browser/browser_interface_binders.cc
|
|
index c5a6f0aea88..71d9bf41a71 100644
|
|
--- a/content/browser/browser_interface_binders.cc
|
|
+++ b/content/browser/browser_interface_binders.cc
|
|
@@ -50,7 +50,9 @@
|
|
#include "content/browser/renderer_host/render_frame_host_impl.h"
|
|
#include "content/browser/renderer_host/render_process_host_impl.h"
|
|
#include "content/browser/service_worker/service_worker_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"
|
|
@@ -144,7 +146,9 @@
|
|
#include "third_party/blink/public/mojom/sensor/web_sensor_provider.mojom.h"
|
|
#include "third_party/blink/public/mojom/sms/webotp_service.mojom.h"
|
|
#include "third_party/blink/public/mojom/speculation_rules/speculation_rules.mojom.h"
|
|
+#if BUILDFLAG(ENABLE_WEB_SPEECH)
|
|
#include "third_party/blink/public/mojom/speech/speech_recognizer.mojom.h"
|
|
+#endif
|
|
#include "third_party/blink/public/mojom/speech/speech_synthesis.mojom.h"
|
|
#include "third_party/blink/public/mojom/storage_access/storage_access_handle.mojom.h"
|
|
#include "third_party/blink/public/mojom/usb/web_usb_service.mojom.h"
|
|
@@ -168,7 +172,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"
|
|
@@ -830,10 +836,12 @@ void PopulateFrameBinders(RenderFrameHostImpl* host, mojo::BinderMap* map) {
|
|
map->Add<blink::mojom::SharedWorkerConnector>(
|
|
base::BindRepeating(&BindSharedWorkerConnector, base::Unretained(host)));
|
|
|
|
+#if BUILDFLAG(ENABLE_WEB_SPEECH)
|
|
map->Add<blink::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)));
|
|
@@ -1099,6 +1107,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>(
|
|
@@ -1110,6 +1119,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.old 2023-05-13 15:23:05.850506351 +0200
|
|
+++ src/components/speech/BUILD.gn 2023-05-14 14:39:12.182694489 +0200
|
|
@@ -4,12 +4,6 @@
|
|
|
|
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",
|
|
@@ -24,7 +18,6 @@
|
|
"//mojo/public/cpp/system",
|
|
"//services/network/public/cpp",
|
|
"//services/network/public/mojom",
|
|
- "//third_party/flac",
|
|
]
|
|
}
|
|
|