Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nodejs-electron for openSUSE:Factory checked in at 2022-11-06 12:42:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nodejs-electron (Old) and /work/SRC/openSUSE:Factory/.nodejs-electron.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nodejs-electron" Sun Nov 6 12:42:10 2022 rev:42 rq:1033711 version:21.2.2 Changes: -------- --- /work/SRC/openSUSE:Factory/nodejs-electron/nodejs-electron.changes 2022-11-03 19:14:17.208043608 +0100 +++ /work/SRC/openSUSE:Factory/.nodejs-electron.new.2275/nodejs-electron.changes 2022-11-06 12:42:21.101435305 +0100 @@ -1,0 +2,15 @@ +Sat Nov 5 18:03:39 UTC 2022 - Bruno Pitrus <brunopit...@hotmail.com> +- Conditionally add backported node-upgrade-llhttp-to-8.patch to adjust to LLHTTP api changes + * fixes FTBFS on Fedora Rawhide +- Add disable-webspeech.patch ported from QtWebengine + * Remove some useless-in-Electron code which adds a dependency on libFLAC. + +------------------------------------------------------------------- +Sat Nov 5 11:02:33 UTC 2022 - Bruno Pitrus <brunopit...@hotmail.com> +- New upstream release 21.2.2 + * Remove symlinks from FileChooserImpl folder upload result (CVE-2022-3656) + * Updated Chromium to 106.0.5249.168. +- Drop fix-no-ppapi-build.patch applied upstream. +- Do not compile Chrome's HSTS list into the binary. It is huge, and Electron is not used to access arbitrary websites. + +------------------------------------------------------------------- Old: ---- electron-21.2.1.tar.xz fix-no-ppapi-build.patch New: ---- disable-webspeech.patch electron-21.2.2.tar.xz node-upgrade-llhttp-to-8.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nodejs-electron.spec ++++++ --- /var/tmp/diff_new_pack.M4owPj/_old 2022-11-06 12:42:27.533473715 +0100 +++ /var/tmp/diff_new_pack.M4owPj/_new 2022-11-06 12:42:27.537473739 +0100 @@ -177,6 +177,12 @@ %bcond_with system_histogram %endif +%if 0%{?fedora} >= 38 +%bcond_without llhttp_8 +%else +%bcond_with llhttp_8 +%endif + # Abseil is broken in Leap # enable this when boo#1203378 and boo#1203379 get fixed %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150600 || 0%{?fedora} >= 37 @@ -206,7 +212,7 @@ Name: nodejs-electron -Version: 21.2.1 +Version: 21.2.2 Release: 0 Summary: Build cross platform desktop apps with JavaScript, HTML, and CSS License: AFL-2.0 AND Apache-2.0 AND blessing AND BSD-2-Clause AND BSD-3-Clause AND BSD-Protection AND BSD-Source-Code AND bzip2-1.0.6 AND IJG AND ISC AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND MIT AND MIT-CMU AND MIT-open-group AND (MPL-1.1 OR GPL-2.0-or-later OR LGPL-2.1-or-later) AND MPL-2.0 AND OpenSSL AND SGI-B-2.0 AND SUSE-Public-Domain AND X11 @@ -255,6 +261,8 @@ Patch70: disable-fuses.patch Patch71: enable-jxl.patch Patch72: electron-version-from-env.patch +# https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?h=102-based&id=d617766b236a93749ddbb50b75573dd35238ffc9 +Patch73: disable-webspeech.patch # PATCHES to use system libs Patch1002: chromium-system-libusb.patch @@ -306,7 +314,12 @@ Patch2030: v8-icu69-FormattedNumberRange-no-default-constructible.patch Patch2031: partition_alloc-no-lto.patch Patch2032: seccomp_bpf-no-lto.patch - +# adjust to llhttp 8 api changes +%if %{with llhttp_8} +Patch2033: node-upgrade-llhttp-to-8.patch +%else +Source2033: node-upgrade-llhttp-to-8.patch +%endif # PATCHES that should be submitted upstream verbatim or near-verbatim Patch3016: chromium-98-EnumTable-crash.patch @@ -340,7 +353,6 @@ Patch3085: half_float-Wstrict-aliasing.patch Patch3086: unzip-Wsubobject-linkage.patch Patch3087: v8_initializer-PageAllocator-fpermissive.patch -Patch3088: fix-no-ppapi-build.patch Patch3089: ipcz-safe_math-Wuninitialized.patch Patch3090: passwords_counter-Wsubobject-linkage.patch Patch3091: vector_math_impl-Wstrict-aliasing.patch @@ -396,7 +408,11 @@ BuildRequires: libXNVCtrl-devel %endif %if %{with system_llhttp} -BuildRequires: llhttp-devel +%if %{with llhttp_8} +BuildRequires: llhttp-devel >= 8 +%else +BuildRequires: llhttp-devel < 8 +%endif %endif %if %{with lld} BuildRequires: lld @@ -482,7 +498,6 @@ BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(dri) BuildRequires: pkgconfig(expat) -BuildRequires: pkgconfig(flac++) %if %{with system_freetype} BuildRequires: pkgconfig(freetype2) %endif @@ -1090,6 +1105,8 @@ myconf_gn+=" enable_browser_speech_service=false" myconf_gn+=" enable_speech_service=false" myconf_gn+=" enable_screen_ai_service=false" +myconf_gn+=" include_transport_security_state_preload_list=false" +myconf_gn+=" enable_web_speech=false" #Do not build Chromecast myconf_gn+=" enable_remoting=false" ++++++ disable-webspeech.patch ++++++ >From d617766b236a93749ddbb50b75573dd35238ffc9 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen <allan.jen...@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.klo...@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jen...@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,21 +2951,6 @@ source_set("browser") { "serial/serial_service.cc", "serial/serial_service.h", - # Most speech code is non-Android. - "speech/audio_buffer.cc", - "speech/audio_buffer.h", - "speech/audio_encoder.cc", - "speech/audio_encoder.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", "tracing/tracing_ui.cc", "tracing/tracing_ui.h", @@ -2995,11 +2975,6 @@ source_set("browser") { "webauth/virtual_fido_discovery_factory.cc", "webauth/virtual_fido_discovery_factory.h", ] - - deps += [ - "//components/speech", - "//third_party/flac", - ] } if (is_mac) { @@ -3108,6 +3083,37 @@ source_set("browser") { } } + 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/wake_lock/wake_lock_service_impl.h" #include "content/browser/web_contents/file_chooser_impl.h" #include "content/browser/web_contents/web_contents_impl.h" @@ -144,7 +146,9 @@ #include "third_party/blink/public/mojom/quota/quota_manager_host.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/usb/web_usb_service.mojom.h" #include "third_party/blink/public/mojom/wake_lock/wake_lock.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( 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_OPENH264=$media_use_openh264", "ENABLE_PLATFORM_MPEG_H_AUDIO=$enable_platform_mpeg_h_audio", "ENABLE_MSE_MPEG2TS_STREAM_PARSER=$enable_mse_mpeg2ts_stream_parser", + "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() { # still not supported. The actual support depends on platform capability. enable_platform_encrypted_dolby_vision = false + enable_web_speech = true + # Enable HLS with SAMPLE-AES decryption. # # TODO(crbug.com/1329657): Remove the `is_fuchsia` condition once fuchsia -- cgit v1.2.1 ++++++ electron-21.2.1.tar.xz -> electron-21.2.2.tar.xz ++++++ /work/SRC/openSUSE:Factory/nodejs-electron/electron-21.2.1.tar.xz /work/SRC/openSUSE:Factory/.nodejs-electron.new.2275/electron-21.2.2.tar.xz differ: char 15, line 1 ++++++ node-upgrade-llhttp-to-8.patch ++++++ >From fd36a8dadba7fcbd74f0ab82a8ee1b3150ce5167 Mon Sep 17 00:00:00 2001 From: Paolo Insogna <pa...@cowtech.it> Date: Wed, 12 Oct 2022 00:30:01 +0200 Subject: [PATCH] deps: update llhttp to 8.1.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR-URL: https://github.com/nodejs/node/pull/44967 Reviewed-By: Micha??l Zasso <tar...@protonmail.com> Reviewed-By: Matteo Collina <matteo.coll...@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.n...@hotmail.com> Reviewed-By: Darshan Sen <raisin...@gmail.com> Reviewed-By: Beth Griggs <bethanyngri...@gmail.com> --- deps/llhttp/CMakeLists.txt | 2 +- deps/llhttp/README.md | 235 ++ deps/llhttp/include/llhttp.h | 258 +- deps/llhttp/src/api.c | 89 +- deps/llhttp/src/llhttp.c | 6236 +++++++++++++++++++++++----------- src/node_http_parser.cc | 63 +- tools/update-llhttp.sh | 2 +- 7 files changed, 4909 insertions(+), 1976 deletions(-) diff --git a/src/node_http_parser.cc b/src/node_http_parser.cc index 6dbc8b806dc4..ce658bac6fab 100644 --- a/third_party/electron_node/src/node_http_parser.cc +++ b/third_party/electron_node/src/node_http_parser.cc @@ -1148,28 +1148,51 @@ void ConnectionsList::Expired(const FunctionCallbackInfo<Value>& args) { }; const llhttp_settings_t Parser::settings = { - Proxy<Call, &Parser::on_message_begin>::Raw, - Proxy<DataCall, &Parser::on_url>::Raw, - Proxy<DataCall, &Parser::on_status>::Raw, - Proxy<DataCall, &Parser::on_header_field>::Raw, - Proxy<DataCall, &Parser::on_header_value>::Raw, - Proxy<Call, &Parser::on_headers_complete>::Raw, - Proxy<DataCall, &Parser::on_body>::Raw, - Proxy<Call, &Parser::on_message_complete>::Raw, - Proxy<Call, &Parser::on_chunk_header>::Raw, - Proxy<Call, &Parser::on_chunk_complete>::Raw, - - // on_url_complete - nullptr, - // on_status_complete - nullptr, - // on_header_field_complete - nullptr, - // on_header_value_complete - nullptr, + Proxy<Call, &Parser::on_message_begin>::Raw, + Proxy<DataCall, &Parser::on_url>::Raw, + Proxy<DataCall, &Parser::on_status>::Raw, + + // on_method + nullptr, + // on_version + nullptr, + + Proxy<DataCall, &Parser::on_header_field>::Raw, + Proxy<DataCall, &Parser::on_header_value>::Raw, + + // on_chunk_extension_name + nullptr, + // on_chunk_extension_value + nullptr, + + Proxy<Call, &Parser::on_headers_complete>::Raw, + Proxy<DataCall, &Parser::on_body>::Raw, + Proxy<Call, &Parser::on_message_complete>::Raw, + + // on_url_complete + nullptr, + // on_status_complete + nullptr, + // on_method_complete + nullptr, + // on_version_complete + nullptr, + // on_header_field_complete + nullptr, + // on_header_value_complete + nullptr, + // on_chunk_extension_name_complete + nullptr, + // on_chunk_extension_value_complete + nullptr, + + Proxy<Call, &Parser::on_chunk_header>::Raw, + Proxy<Call, &Parser::on_chunk_complete>::Raw, + + // on_reset, + nullptr, }; - void InitializeHttpParser(Local<Object> target, Local<Value> unused, Local<Context> context,