git: da0e26e3547e - main - devel/electron19: update to 19.1.9

From: Hiroki Tagato <tagattie_at_FreeBSD.org>
Date: Tue, 17 Jan 2023 07:30:05 UTC
The branch main has been updated by tagattie:

URL: https://cgit.FreeBSD.org/ports/commit/?id=da0e26e3547e3bcce7964968d75450391efc3261

commit da0e26e3547e3bcce7964968d75450391efc3261
Author:     Hiroki Tagato <tagattie@FreeBSD.org>
AuthorDate: 2023-01-17 07:28:03 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2023-01-17 07:29:52 +0000

    devel/electron19: update to 19.1.9
    
    Changelog:
    - https://github.com/electron/electron/releases/tag/v19.0.16
    - https://github.com/electron/electron/releases/tag/v19.0.17
    - https://github.com/electron/electron/releases/tag/v19.1.0
    - https://github.com/electron/electron/releases/tag/v19.1.1
    - https://github.com/electron/electron/releases/tag/v19.1.2
    - https://github.com/electron/electron/releases/tag/v19.1.3
    - https://github.com/electron/electron/releases/tag/v19.1.4
    - https://github.com/electron/electron/releases/tag/v19.1.5
    - https://github.com/electron/electron/releases/tag/v19.1.6
    - https://github.com/electron/electron/releases/tag/v19.1.7
    - https://github.com/electron/electron/releases/tag/v19.1.8
    - https://github.com/electron/electron/releases/tag/v19.1.9
---
 devel/electron19/Makefile                          |  3 +-
 devel/electron19/Makefile.version                  |  2 +-
 devel/electron19/distinfo                          | 10 +++---
 devel/electron19/files/package.json                | 10 +++---
 devel/electron19/files/patch-electron_BUILD.gn     | 29 +++++++++------
 .../patch-electron_lib_common_api_clipboard.ts     |  4 +--
 .../files/patch-electron_script_lib_get-version.js | 17 +++++++++
 ...browser_api_electron__api__desktop__capturer.cc | 29 +++++++++++++++
 ...ell_browser_api_electron__api__web__contents.cc | 14 ++++----
 ...hell_browser_api_electron__api__web__contents.h |  4 +--
 ...tron_shell_browser_electron__browser__client.cc |  4 +--
 ...shell_browser_electron__browser__main__parts.cc | 29 +++++++++------
 ...rowser_net_system__network__context__manager.cc |  8 ++---
 ...h-electron_spec-main_api-browser-window-spec.ts | 22 ++++++------
 ...tch-electron_spec-main_api-safe-storage-spec.ts |  4 +--
 ...h-electron_spec-main_api-web-frame-main-spec.ts |  4 +--
 .../patch-electron_spec-main_chromium-spec.ts      |  6 ++--
 .../files/patch-electron_spec-main_crash-spec.ts   | 11 ++++++
 .../patch-electron_spec-main_version-bump-spec.ts  |  4 +--
 .../files/patch-net_socket_udp__socket__posix.cc   |  8 ++---
 ...derer_platform_runtime__enabled__features.json5 |  4 +--
 devel/electron19/files/yarn.lock                   | 42 +++++++++++-----------
 22 files changed, 171 insertions(+), 97 deletions(-)

diff --git a/devel/electron19/Makefile b/devel/electron19/Makefile
index 7dc260c3a526..c4730ffc7653 100644
--- a/devel/electron19/Makefile
+++ b/devel/electron19/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	electron
 DISTVERSIONPREFIX=	v
 DISTVERSION=	${ELECTRON_VER:S/-beta./.b/}
-PORTREVISION=	1
 CATEGORIES=	devel
 MASTER_SITES=	https://github.com/tagattie/FreeBSD-Electron/releases/download/v19.0.9/:chromium \
 		https://commondatastorage.googleapis.com/chromium-nodejs/:chromium_node \
@@ -155,7 +154,7 @@ REACTIVEOBJC_VER=		74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76
 # See ${WRKSRC}/electron/DEPS for MANTLE_VER
 MANTLE_VER=			78d3966b3c331292ea29ec38661b25df0a245948
 
-YARN_TIMESTAMP=	1662535038
+YARN_TIMESTAMP=	1673511086
 
 GN_ARGS+=		clang_use_chrome_plugins=false \
 			enable_hangout_services_extension=true \
diff --git a/devel/electron19/Makefile.version b/devel/electron19/Makefile.version
index 063d691d16ae..c2192e15c92c 100644
--- a/devel/electron19/Makefile.version
+++ b/devel/electron19/Makefile.version
@@ -1,2 +1,2 @@
-ELECTRON_VER=	19.0.15
+ELECTRON_VER=	19.1.9
 ELECTRON_VER_MAJOR=	${ELECTRON_VER:C/\..*//}
diff --git a/devel/electron19/distinfo b/devel/electron19/distinfo
index edd8a333c65f..e6e35e5f6f2f 100644
--- a/devel/electron19/distinfo
+++ b/devel/electron19/distinfo
@@ -1,14 +1,14 @@
-TIMESTAMP = 1662536492
+TIMESTAMP = 1673767597
 SHA256 (electron/chromium-102.0.5005.167.tar.xz) = 0ef31269e4fd0fe5871e29bb16a3a7aaea1de7eee5d7b2c4c209eff4b196d00e
 SIZE (electron/chromium-102.0.5005.167.tar.xz) = 1302429260
 SHA256 (electron/df473d4b1ab26ce6b669007521f2ffb8ff99f9d7) = 38fa60c59a8398ae33f8d12c1234735a74dc3c8d0c6d4bc7a9c212c2b4b7fef8
 SIZE (electron/df473d4b1ab26ce6b669007521f2ffb8ff99f9d7) = 12046529
 SHA256 (electron/cd96fc55dc243f6c6f4cb63ad117cad6cd48dceb) = ec973eccd669d417fbf2d0a4dac730744a3174268ff062db5451b55c82bc3492
 SIZE (electron/cd96fc55dc243f6c6f4cb63ad117cad6cd48dceb) = 26759650
-SHA256 (electron/electron-yarn-cache-19.0.15.tar.xz) = 0b39a12041b90a98204b67f69b3452bc45debf13a4b9753d88a70b5906a34541
-SIZE (electron/electron-yarn-cache-19.0.15.tar.xz) = 37910588
-SHA256 (electron/electron-electron-v19.0.15_GH0.tar.gz) = 47e01fa2778c9991a4c441b5e0e4c62543f890e27250354c4a7b0f5512215703
-SIZE (electron/electron-electron-v19.0.15_GH0.tar.gz) = 10505520
+SHA256 (electron/electron-yarn-cache-19.1.9.tar.xz) = aaf6879fc53c0b9aa8e9ab9589185d765a1d04e5829d48d3d0bf340a70d14f19
+SIZE (electron/electron-yarn-cache-19.1.9.tar.xz) = 37894480
+SHA256 (electron/electron-electron-v19.1.9_GH0.tar.gz) = 5ab0d40a1c6c0cd7b961724c4bb72c533a6a608c0f62bdb9eddcb9013dfcda98
+SIZE (electron/electron-electron-v19.1.9_GH0.tar.gz) = 10583692
 SHA256 (electron/nodejs-node-v16.14.2_GH0.tar.gz) = cc2331a5c35d3dda0035d9cba71c3b8e234bc68e18ffd955b385c1e97062528f
 SIZE (electron/nodejs-node-v16.14.2_GH0.tar.gz) = 88432213
 SHA256 (electron/nodejs-nan-65b32af46e9d7fab2e4ff657751205b3865f4920_GH0.tar.gz) = a649b75bfa9c1a0254c73d022c6e98924b9471f593bcc83832daaf68da4cae8d
diff --git a/devel/electron19/files/package.json b/devel/electron19/files/package.json
index 1a86b1cbe443..7dab0fe1f3d0 100644
--- a/devel/electron19/files/package.json
+++ b/devel/electron19/files/package.json
@@ -1,12 +1,13 @@
 {
   "name": "electron",
-  "version": "19.0.15",
+  "version": "0.0.0-development",
   "repository": "https://github.com/electron/electron",
   "description": "Build cross platform desktop apps with JavaScript, HTML, and CSS",
   "devDependencies": {
     "@azure/storage-blob": "^12.9.0",
-    "@electron/docs-parser": "^0.12.4",
-    "@electron/typescript-definitions": "^8.9.5",
+    "@electron/asar": "^3.2.1",
+    "@electron/docs-parser": "^1.0.0",
+    "@electron/typescript-definitions": "^8.10.0",
     "@octokit/auth-app": "^2.10.0",
     "@octokit/rest": "^18.0.3",
     "@primer/octicons": "^10.0.0",
@@ -31,7 +32,6 @@
     "@types/webpack-env": "^1.16.3",
     "@typescript-eslint/eslint-plugin": "^4.4.1",
     "@typescript-eslint/parser": "^4.4.1",
-    "asar": "^3.1.0",
     "aws-sdk": "^2.814.0",
     "check-for-leaks": "^1.2.1",
     "colors": "1.4.0",
@@ -89,7 +89,7 @@
     "lint:docs-relative-links": "python3 ./script/check-relative-doc-links.py",
     "lint:markdownlint": "markdownlint \"*.md\" \"docs/**/*.md\"",
     "lint:js-in-markdown": "standard-markdown docs",
-    "create-api-json": "electron-docs-parser --dir=./",
+    "create-api-json": "node script/create-api-json.js",
     "create-typescript-definitions": "npm run create-api-json && electron-typescript-definitions --api=electron-api.json && node spec/ts-smoke/runner.js",
     "gn-typescript-definitions": "npm run create-typescript-definitions && shx cp electron.d.ts",
     "pre-flight": "pre-flight",
diff --git a/devel/electron19/files/patch-electron_BUILD.gn b/devel/electron19/files/patch-electron_BUILD.gn
index c3c25476648a..648bf238d26f 100644
--- a/devel/electron19/files/patch-electron_BUILD.gn
+++ b/devel/electron19/files/patch-electron_BUILD.gn
@@ -1,6 +1,15 @@
---- electron/BUILD.gn.orig	2022-06-30 15:53:29 UTC
+--- electron/BUILD.gn.orig	2022-11-28 15:30:00 UTC
 +++ electron/BUILD.gn
-@@ -448,7 +448,7 @@ source_set("electron_lib") {
+@@ -104,8 +104,6 @@ electron_version = exec_script("script/print-version.p
+                                [],
+                                "trim string",
+                                [
+-                                 ".git/packed-refs",
+-                                 ".git/HEAD",
+                                  "script/lib/get-version.js",
+                                ])
+ 
+@@ -486,7 +484,7 @@ source_set("electron_lib") {
      defines += [ "GDK_DISABLE_DEPRECATION_WARNINGS" ]
    }
  
@@ -9,7 +18,7 @@
      deps += [
        "//components/crash/core/app",
        "//components/crash/core/browser",
-@@ -490,6 +490,10 @@ source_set("electron_lib") {
+@@ -528,6 +526,10 @@ source_set("electron_lib") {
      ]
    }
  
@@ -20,7 +29,7 @@
    if (is_mac) {
      deps += [
        "//components/remote_cocoa/app_shim",
-@@ -546,6 +550,12 @@ source_set("electron_lib") {
+@@ -584,6 +586,12 @@ source_set("electron_lib") {
        cflags_objcc = [ "-fobjc-weak" ]
      }
    }
@@ -33,16 +42,16 @@
    if (is_linux) {
      libs = [ "xshmfence" ]
      deps += [
-@@ -1180,7 +1190,7 @@ if (is_mac) {
-       ":electron_app_manifest",
+@@ -1218,7 +1226,7 @@ if (is_mac) {
        ":electron_lib",
+       ":electron_win32_resources",
        ":packed_resources",
 -      "//components/crash/core/app",
 +      # "//components/crash/core/app",
        "//content:sandbox_helper_win",
        "//electron/buildflags",
        "//ui/strings",
-@@ -1206,7 +1216,7 @@ if (is_mac) {
+@@ -1244,7 +1252,7 @@ if (is_mac) {
        public_deps = [ "//tools/v8_context_snapshot:v8_context_snapshot" ]
      }
  
@@ -51,7 +60,7 @@
        data_deps += [ "//components/crash/core/app:chrome_crashpad_handler" ]
      }
  
-@@ -1274,7 +1284,7 @@ if (is_mac) {
+@@ -1311,7 +1319,7 @@ if (is_mac) {
          configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
        }
  
@@ -60,8 +69,8 @@
          deps += [ "//sandbox/linux:chrome_sandbox" ]
        }
      }
-@@ -1406,7 +1416,7 @@ dist_zip("electron_dist_zip") {
-     ":electron_version",
+@@ -1438,7 +1446,7 @@ dist_zip("electron_dist_zip") {
+     ":electron_version_file",
      ":licenses",
    ]
 -  if (is_linux) {
diff --git a/devel/electron19/files/patch-electron_lib_common_api_clipboard.ts b/devel/electron19/files/patch-electron_lib_common_api_clipboard.ts
index 6fa93e1fb4b1..09e7e1b819e3 100644
--- a/devel/electron19/files/patch-electron_lib_common_api_clipboard.ts
+++ b/devel/electron19/files/patch-electron_lib_common_api_clipboard.ts
@@ -1,6 +1,6 @@
---- electron/lib/common/api/clipboard.ts.orig	2021-12-03 01:46:05 UTC
+--- electron/lib/common/api/clipboard.ts.orig	2022-11-28 15:30:00 UTC
 +++ electron/lib/common/api/clipboard.ts
-@@ -11,7 +11,7 @@ if (process.type === 'renderer') {
+@@ -12,7 +12,7 @@ if (process.type === 'renderer') {
      return (...args: any[]) => ipcRendererUtils.invokeSync(IPC_MESSAGES.BROWSER_CLIPBOARD_SYNC, method, ...args);
    };
  
diff --git a/devel/electron19/files/patch-electron_script_lib_get-version.js b/devel/electron19/files/patch-electron_script_lib_get-version.js
new file mode 100644
index 000000000000..415fb61d8d09
--- /dev/null
+++ b/devel/electron19/files/patch-electron_script_lib_get-version.js
@@ -0,0 +1,17 @@
+--- electron/script/lib/get-version.js.orig	2023-01-15 07:43:40 UTC
++++ electron/script/lib/get-version.js
+@@ -11,12 +11,10 @@ module.exports.getElectronVersion = () => {
+   // The only difference in the "git describe" technique is that technically a commit can "change" it's version
+   // number if a tag is created / removed retroactively.  i.e. the first time a commit is pushed it will be 1.2.3
+   // and after the tag is made rebuilding the same commit will result in it being 1.2.4
+-  const output = spawnSync('git', ['describe', '--tags', '--abbrev=0'], {
+-    cwd: path.resolve(__dirname, '..', '..')
+-  });
++  const output = spawnSync('basename', [path.resolve(__dirname, '..', '..', '..', '..')]);
+   if (output.status !== 0) {
+     console.error(output.stderr);
+     throw new Error('Failed to get current electron version');
+   }
+-  return output.stdout.toString().trim().replace(/^v/g, '');
++  return output.stdout.toString().trim().replace(/^electron-/g, '');
+ };
diff --git a/devel/electron19/files/patch-electron_shell_browser_api_electron__api__desktop__capturer.cc b/devel/electron19/files/patch-electron_shell_browser_api_electron__api__desktop__capturer.cc
new file mode 100644
index 000000000000..03ecde82108b
--- /dev/null
+++ b/devel/electron19/files/patch-electron_shell_browser_api_electron__api__desktop__capturer.cc
@@ -0,0 +1,29 @@
+--- electron/shell/browser/api/electron_api_desktop_capturer.cc.orig	2023-01-13 05:24:55 UTC
++++ electron/shell/browser/api/electron_api_desktop_capturer.cc
+@@ -36,7 +36,7 @@
+ #include "third_party/webrtc/modules/desktop_capture/win/dxgi_duplicator_controller.h"
+ #include "third_party/webrtc/modules/desktop_capture/win/screen_capturer_win_directx.h"
+ #include "ui/display/win/display_info.h"
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #if defined(USE_OZONE_PLATFORM_X11)
+ #include "base/logging.h"
+ #include "ui/base/x/x11_display_util.h"
+@@ -48,7 +48,7 @@
+ #endif  // defined(USE_OZONE_PLATFORM_X11)
+ #endif  // BUILDFLAG(IS_WIN)
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ // Private function in ui/base/x/x11_display_util.cc
+ std::map<x11::RandR::Output, int> GetMonitors(int version,
+                                               x11::RandR* randr,
+@@ -295,7 +295,7 @@ void DesktopCapturer::UpdateSourcesList(DesktopMediaLi
+     for (auto& source : screen_sources) {
+       source.display_id = base::NumberToString(source.media_list_source.id.id);
+     }
+-#elif BUILDFLAG(IS_LINUX)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #if defined(USE_OZONE_PLATFORM_X11)
+     // On Linux, with X11, the source id is the numeric value of the
+     // display name atom and the display id is either the EDID or the
diff --git a/devel/electron19/files/patch-electron_shell_browser_api_electron__api__web__contents.cc b/devel/electron19/files/patch-electron_shell_browser_api_electron__api__web__contents.cc
index 616df1011108..18f89a444f96 100644
--- a/devel/electron19/files/patch-electron_shell_browser_api_electron__api__web__contents.cc
+++ b/devel/electron19/files/patch-electron_shell_browser_api_electron__api__web__contents.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/api/electron_api_web_contents.cc.orig	2022-08-17 15:33:41 UTC
+--- electron/shell/browser/api/electron_api_web_contents.cc.orig	2022-11-28 15:30:00 UTC
 +++ electron/shell/browser/api/electron_api_web_contents.cc
-@@ -150,11 +150,11 @@
+@@ -154,11 +154,11 @@
  #include "ui/base/cocoa/defaults_utils.h"
  #endif
  
@@ -14,7 +14,7 @@
  #include "ui/gfx/font_render_params.h"
  #endif
  
-@@ -396,7 +396,7 @@ absl::optional<base::TimeDelta> GetCursorBlinkInterval
+@@ -399,7 +399,7 @@ absl::optional<base::TimeDelta> GetCursorBlinkInterval
        ui::TextInsertionCaretBlinkPeriodFromDefaults());
    if (system_value)
      return *system_value;
@@ -23,7 +23,7 @@
    if (auto* linux_ui = views::LinuxUI::instance())
      return linux_ui->GetCursorBlinkInterval();
  #elif BUILDFLAG(IS_WIN)
-@@ -848,7 +848,7 @@ void WebContents::InitWithSessionAndOptions(
+@@ -851,7 +851,7 @@ void WebContents::InitWithSessionAndOptions(
    accept_languages.pop_back();
    prefs->accept_languages = accept_languages;
  
@@ -32,7 +32,7 @@
    // Update font settings.
    static const gfx::FontRenderParams params(
        gfx::GetFontRenderParams(gfx::FontRenderParamsQuery(), nullptr));
-@@ -2373,7 +2373,7 @@ void WebContents::ForcefullyCrashRenderer() {
+@@ -2371,7 +2371,7 @@ void WebContents::ForcefullyCrashRenderer() {
  
    content::RenderProcessHost* rph = rwh->GetProcess();
    if (rph) {
@@ -41,7 +41,7 @@
      // A generic |CrashDumpHungChildProcess()| is not implemented for Linux.
      // Instead we send an explicit IPC to crash on the renderer's IO thread.
      rph->ForceCrash();
-@@ -2942,7 +2942,7 @@ void WebContents::CopyImageAt(int x, int y) {
+@@ -2941,7 +2941,7 @@ void WebContents::CopyImageAt(int x, int y) {
  void WebContents::Focus() {
    // Focusing on WebContents does not automatically focus the window on macOS
    // and Linux, do it manually to match the behavior on Windows.
@@ -50,7 +50,7 @@
    if (owner_window())
      owner_window()->Focus(true);
  #endif
-@@ -3783,7 +3783,7 @@ ui::ImageModel WebContents::GetDevToolsWindowIcon() {
+@@ -3782,7 +3782,7 @@ ui::ImageModel WebContents::GetDevToolsWindowIcon() {
  }
  #endif
  
diff --git a/devel/electron19/files/patch-electron_shell_browser_api_electron__api__web__contents.h b/devel/electron19/files/patch-electron_shell_browser_api_electron__api__web__contents.h
index 0c71ff203bd3..01d0389eb918 100644
--- a/devel/electron19/files/patch-electron_shell_browser_api_electron__api__web__contents.h
+++ b/devel/electron19/files/patch-electron_shell_browser_api_electron__api__web__contents.h
@@ -1,6 +1,6 @@
---- electron/shell/browser/api/electron_api_web_contents.h.orig	2022-07-21 18:53:47 UTC
+--- electron/shell/browser/api/electron_api_web_contents.h.orig	2022-11-28 15:30:00 UTC
 +++ electron/shell/browser/api/electron_api_web_contents.h
-@@ -719,7 +719,7 @@ class WebContents : public ExclusiveAccessContext,
+@@ -718,7 +718,7 @@ class WebContents : public ExclusiveAccessContext,
  #if defined(TOOLKIT_VIEWS) && !BUILDFLAG(IS_MAC)
    ui::ImageModel GetDevToolsWindowIcon() override;
  #endif
diff --git a/devel/electron19/files/patch-electron_shell_browser_electron__browser__client.cc b/devel/electron19/files/patch-electron_shell_browser_electron__browser__client.cc
index e8df547c64ba..891ada55ba3e 100644
--- a/devel/electron19/files/patch-electron_shell_browser_electron__browser__client.cc
+++ b/devel/electron19/files/patch-electron_shell_browser_electron__browser__client.cc
@@ -1,6 +1,6 @@
---- electron/shell/browser/electron_browser_client.cc.orig	2022-06-30 15:53:29 UTC
+--- electron/shell/browser/electron_browser_client.cc.orig	2022-11-28 15:30:00 UTC
 +++ electron/shell/browser/electron_browser_client.cc
-@@ -186,7 +186,7 @@
+@@ -187,7 +187,7 @@
  #include "content/public/common/child_process_host.h"
  #endif
  
diff --git a/devel/electron19/files/patch-electron_shell_browser_electron__browser__main__parts.cc b/devel/electron19/files/patch-electron_shell_browser_electron__browser__main__parts.cc
index 9a344ca3c5a4..bb9c0389c30b 100644
--- a/devel/electron19/files/patch-electron_shell_browser_electron__browser__main__parts.cc
+++ b/devel/electron19/files/patch-electron_shell_browser_electron__browser__main__parts.cc
@@ -1,4 +1,4 @@
---- electron/shell/browser/electron_browser_main_parts.cc.orig	2022-08-24 16:48:48 UTC
+--- electron/shell/browser/electron_browser_main_parts.cc.orig	2022-11-28 15:30:00 UTC
 +++ electron/shell/browser/electron_browser_main_parts.cc
 @@ -66,7 +66,7 @@
  #include "ui/wm/core/wm_state.h"
@@ -9,7 +9,7 @@
  #include "base/environment.h"
  #include "base/threading/thread_task_runner_handle.h"
  #include "device/bluetooth/bluetooth_adapter_factory.h"
-@@ -147,7 +147,7 @@ std::u16string MediaStringProvider(media::MessageId id
+@@ -148,7 +148,7 @@ std::u16string MediaStringProvider(media::MessageId id
    }
  }
  
@@ -18,7 +18,7 @@
  // GTK does not provide a way to check if current theme is dark, so we compare
  // the text and background luminosity to get a result.
  // This trick comes from FireFox.
-@@ -165,7 +165,7 @@ void UpdateDarkThemeSetting() {
+@@ -166,7 +166,7 @@ void UpdateDarkThemeSetting() {
  
  }  // namespace
  
@@ -27,7 +27,7 @@
  class DarkThemeObserver : public ui::NativeThemeObserver {
   public:
    DarkThemeObserver() = default;
-@@ -218,7 +218,7 @@ int ElectronBrowserMainParts::PreEarlyInitialization()
+@@ -219,7 +219,7 @@ int ElectronBrowserMainParts::PreEarlyInitialization()
  #if BUILDFLAG(IS_POSIX)
    HandleSIGCHLD();
  #endif
@@ -36,7 +36,7 @@
    DetectOzonePlatform();
    ui::OzonePlatform::PreEarlyInitialization();
  #endif
-@@ -283,7 +283,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
+@@ -284,7 +284,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
  #if defined(USE_AURA)
    screen_ = views::CreateDesktopScreen();
    display::Screen::SetScreenInstance(screen_.get());
@@ -45,7 +45,7 @@
    views::LinuxUI::instance()->UpdateDeviceScaleFactor();
  #endif
  #endif
-@@ -300,7 +300,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
+@@ -301,7 +301,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
    // happen before the ResourceBundle is loaded
    if (locale.empty())
      l10n_util::OverrideLocaleWithCocoaLocale();
@@ -54,7 +54,7 @@
    // l10n_util::GetApplicationLocaleInternal uses g_get_language_names(),
    // which keys off of getenv("LC_ALL").
    // We must set this env first to make ui::ResourceBundle accept the custom
-@@ -323,7 +323,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
+@@ -324,7 +324,7 @@ int ElectronBrowserMainParts::PreCreateThreads() {
    ElectronBrowserClient::SetApplicationLocale(app_locale);
    fake_browser_process_->SetApplicationLocale(app_locale);
  
@@ -63,7 +63,7 @@
    // Reset to the original LC_ALL since we should not be changing it.
    if (!locale.empty()) {
      if (lc_all)
-@@ -370,7 +370,7 @@ void ElectronBrowserMainParts::PostDestroyThreads() {
+@@ -371,7 +371,7 @@ void ElectronBrowserMainParts::PostDestroyThreads() {
  }
  
  void ElectronBrowserMainParts::ToolkitInitialized() {
@@ -72,7 +72,16 @@
    auto linux_ui = BuildGtkUi();
    linux_ui->Initialize();
    DCHECK(ui::LinuxInputMethodContextFactory::instance());
-@@ -487,7 +487,9 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo
+@@ -482,7 +482,7 @@ void ElectronBrowserMainParts::WillRunMainMessageLoop(
+ }
+ 
+ void ElectronBrowserMainParts::PostCreateMainMessageLoop() {
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_BSD)
+   std::string app_name = electron::Browser::Get()->GetName();
+ #endif
+ #if BUILDFLAG(IS_LINUX)
+@@ -491,7 +491,9 @@ void ElectronBrowserMainParts::PostCreateMainMessageLo
    ui::OzonePlatform::GetInstance()->PostCreateMainMessageLoop(
        std::move(shutdown_cb));
    bluez::DBusBluezManagerWrapperLinux::Initialize();
@@ -82,7 +91,7 @@
    // Set up crypt config. This needs to be done before anything starts the
    // network service, as the raw encryption key needs to be shared with the
    // network service for encrypted cookie storage.
-@@ -546,7 +548,7 @@ void ElectronBrowserMainParts::PostMainMessageLoopRun(
+@@ -553,7 +555,7 @@ void ElectronBrowserMainParts::PostMainMessageLoopRun(
    fake_browser_process_->PostMainMessageLoopRun();
    content::DevToolsAgentHost::StopRemoteDebuggingPipeHandler();
  
diff --git a/devel/electron19/files/patch-electron_shell_browser_net_system__network__context__manager.cc b/devel/electron19/files/patch-electron_shell_browser_net_system__network__context__manager.cc
index 8e34a7577935..a2d645b4e29c 100644
--- a/devel/electron19/files/patch-electron_shell_browser_net_system__network__context__manager.cc
+++ b/devel/electron19/files/patch-electron_shell_browser_net_system__network__context__manager.cc
@@ -1,8 +1,8 @@
---- electron/shell/browser/net/system_network_context_manager.cc.orig	2022-05-18 15:31:32 UTC
+--- electron/shell/browser/net/system_network_context_manager.cc.orig	2022-11-28 15:30:00 UTC
 +++ electron/shell/browser/net/system_network_context_manager.cc
-@@ -46,7 +46,7 @@
- #include "components/os_crypt/keychain_password_mac.h"
- #endif
+@@ -42,7 +42,7 @@
+ #include "shell/common/options_switches.h"
+ #include "url/gurl.h"
  
 -#if BUILDFLAG(IS_LINUX)
 +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
diff --git a/devel/electron19/files/patch-electron_spec-main_api-browser-window-spec.ts b/devel/electron19/files/patch-electron_spec-main_api-browser-window-spec.ts
index a04fe7073cb7..5dfdb9121908 100644
--- a/devel/electron19/files/patch-electron_spec-main_api-browser-window-spec.ts
+++ b/devel/electron19/files/patch-electron_spec-main_api-browser-window-spec.ts
@@ -1,4 +1,4 @@
---- electron/spec-main/api-browser-window-spec.ts.orig	2022-08-31 15:31:43 UTC
+--- electron/spec-main/api-browser-window-spec.ts.orig	2022-11-28 15:30:00 UTC
 +++ electron/spec-main/api-browser-window-spec.ts
 @@ -58,7 +58,7 @@ describe('BrowserWindow module', () => {
        }).not.to.throw();
@@ -54,7 +54,7 @@
          it('checks normal bounds when minimized', async () => {
            const bounds = w.getBounds();
            const minimize = emittedOnce(w, 'minimize');
-@@ -2274,7 +2274,7 @@ describe('BrowserWindow module', () => {
+@@ -2275,7 +2275,7 @@ describe('BrowserWindow module', () => {
    describe('BrowserWindow.setOpacity(opacity)', () => {
      afterEach(closeAllWindows);
  
@@ -63,7 +63,7 @@
        it('make window with initial opacity', () => {
          const w = new BrowserWindow({ show: false, opacity: 0.5 });
          expect(w.getOpacity()).to.equal(0.5);
-@@ -2300,7 +2300,7 @@ describe('BrowserWindow module', () => {
+@@ -2301,7 +2301,7 @@ describe('BrowserWindow module', () => {
        });
      });
  
@@ -72,7 +72,7 @@
        it('sets 1 regardless of parameter', () => {
          const w = new BrowserWindow({ show: false });
          w.setOpacity(0);
-@@ -3232,7 +3232,7 @@ describe('BrowserWindow module', () => {
+@@ -3233,7 +3233,7 @@ describe('BrowserWindow module', () => {
          expect(test.versions).to.deep.equal(process.versions);
          expect(test.contextId).to.be.a('string');
  
@@ -81,7 +81,7 @@
            expect(test.creationTime).to.be.null('creation time');
            expect(test.systemMemoryInfo).to.be.null('system memory info');
          } else {
-@@ -3805,7 +3805,7 @@ describe('BrowserWindow module', () => {
+@@ -3806,7 +3806,7 @@ describe('BrowserWindow module', () => {
      });
    });
  
@@ -90,7 +90,7 @@
      afterEach(closeAllWindows);
      it('emits an event when window is maximized', async () => {
        const w = new BrowserWindow({ show: false });
-@@ -4064,7 +4064,7 @@ describe('BrowserWindow module', () => {
+@@ -4065,7 +4065,7 @@ describe('BrowserWindow module', () => {
    });
  
    // TODO(dsanders11): Enable once maximize event works on Linux again on CI
@@ -99,7 +99,7 @@
      afterEach(closeAllWindows);
      it('should show the window if it is not currently shown', async () => {
        const w = new BrowserWindow({ show: false });
-@@ -4101,7 +4101,7 @@ describe('BrowserWindow module', () => {
+@@ -4102,7 +4102,7 @@ describe('BrowserWindow module', () => {
  
      // TODO(dsanders11): Enable once minimize event works on Linux again.
      //                   See https://github.com/electron/electron/issues/28699
@@ -108,7 +108,7 @@
        const w = new BrowserWindow();
        const minimize = emittedOnce(w, 'minimize');
        w.minimize();
-@@ -4464,7 +4464,7 @@ describe('BrowserWindow module', () => {
+@@ -4465,7 +4465,7 @@ describe('BrowserWindow module', () => {
        });
  
        // On Linux there is no "resizable" property of a window.
@@ -117,7 +117,7 @@
          const w = new BrowserWindow({ show: false });
          expect(w.resizable).to.be.true('resizable');
  
-@@ -4556,7 +4556,7 @@ describe('BrowserWindow module', () => {
+@@ -4557,7 +4557,7 @@ describe('BrowserWindow module', () => {
      });
    });
  
@@ -126,7 +126,7 @@
      // Not implemented on Linux.
      afterEach(closeAllWindows);
  
-@@ -5574,7 +5574,7 @@ describe('BrowserWindow module', () => {
+@@ -5575,7 +5575,7 @@ describe('BrowserWindow module', () => {
      });
  
      // Linux and arm64 platforms (WOA and macOS) do not return any capture sources
@@ -135,7 +135,7 @@
        const display = screen.getPrimaryDisplay();
  
        const backgroundWindow = new BrowserWindow({
-@@ -5616,7 +5616,7 @@ describe('BrowserWindow module', () => {
+@@ -5617,7 +5617,7 @@ describe('BrowserWindow module', () => {
      afterEach(closeAllWindows);
  
      // Linux/WOA doesn't return any capture sources.
diff --git a/devel/electron19/files/patch-electron_spec-main_api-safe-storage-spec.ts b/devel/electron19/files/patch-electron_spec-main_api-safe-storage-spec.ts
index 47597eb2b9d9..4f39c4c7df63 100644
--- a/devel/electron19/files/patch-electron_spec-main_api-safe-storage-spec.ts
+++ b/devel/electron19/files/patch-electron_spec-main_api-safe-storage-spec.ts
@@ -1,4 +1,4 @@
---- electron/spec-main/api-safe-storage-spec.ts.orig	2022-05-18 15:31:32 UTC
+--- electron/spec-main/api-safe-storage-spec.ts.orig	2022-11-28 15:30:00 UTC
 +++ electron/spec-main/api-safe-storage-spec.ts
 @@ -33,7 +33,7 @@ describe('safeStorage module', () => {
    });
@@ -8,4 +8,4 @@
 +ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd')('safeStorage module', () => {
    after(async () => {
      const pathToEncryptedString = path.resolve(__dirname, 'fixtures', 'api', 'safe-storage', 'encrypted.txt');
-     if (fs.existsSync(pathToEncryptedString)) {
+     if (await fs.pathExists(pathToEncryptedString)) {
diff --git a/devel/electron19/files/patch-electron_spec-main_api-web-frame-main-spec.ts b/devel/electron19/files/patch-electron_spec-main_api-web-frame-main-spec.ts
index 82f2ee8c761e..026eda4430f6 100644
--- a/devel/electron19/files/patch-electron_spec-main_api-web-frame-main-spec.ts
+++ b/devel/electron19/files/patch-electron_spec-main_api-web-frame-main-spec.ts
@@ -1,6 +1,6 @@
---- electron/spec-main/api-web-frame-main-spec.ts.orig	2022-05-18 15:31:32 UTC
+--- electron/spec-main/api-web-frame-main-spec.ts.orig	2022-11-28 15:30:00 UTC
 +++ electron/spec-main/api-web-frame-main-spec.ts
-@@ -204,7 +204,7 @@ describe('webFrameMain module', () => {
+@@ -254,7 +254,7 @@ describe('webFrameMain module', () => {
      });
  
      // TODO(jkleinsc) fix this flaky test on linux
diff --git a/devel/electron19/files/patch-electron_spec-main_chromium-spec.ts b/devel/electron19/files/patch-electron_spec-main_chromium-spec.ts
index d164c506c43a..96b7facbaeb8 100644
--- a/devel/electron19/files/patch-electron_spec-main_chromium-spec.ts
+++ b/devel/electron19/files/patch-electron_spec-main_chromium-spec.ts
@@ -1,4 +1,4 @@
---- electron/spec-main/chromium-spec.ts.orig	2022-08-03 15:31:58 UTC
+--- electron/spec-main/chromium-spec.ts.orig	2022-11-28 15:30:00 UTC
 +++ electron/spec-main/chromium-spec.ts
 @@ -400,13 +400,13 @@ describe('command line switches', () => {
      it('should not set an invalid locale', async () => testLocale('asdfkl', currentLocale));
@@ -18,7 +18,7 @@
    });
  
    describe('--remote-debugging-pipe switch', () => {
-@@ -1598,12 +1598,12 @@ describe('font fallback', () => {
+@@ -1626,12 +1626,12 @@ describe('font fallback', () => {
        expect(fonts[0].familyName).to.equal('Arial');
      } else if (process.platform === 'darwin') {
        expect(fonts[0].familyName).to.equal('Helvetica');
@@ -33,7 +33,7 @@
      const html = `
      <html lang="ja-JP">
        <head>
-@@ -1858,7 +1858,7 @@ describe('navigator.clipboard', () => {
+@@ -1886,7 +1886,7 @@ describe('navigator.clipboard', () => {
    });
  });
  
diff --git a/devel/electron19/files/patch-electron_spec-main_crash-spec.ts b/devel/electron19/files/patch-electron_spec-main_crash-spec.ts
new file mode 100644
index 000000000000..762aa61ab34e
--- /dev/null
+++ b/devel/electron19/files/patch-electron_spec-main_crash-spec.ts
@@ -0,0 +1,11 @@
+--- electron/spec-main/crash-spec.ts.orig	2023-01-13 05:28:08 UTC
++++ electron/spec-main/crash-spec.ts
+@@ -39,7 +39,7 @@ const shouldRunCase = (crashCase: string) => {
+     }
+     // TODO(jkleinsc) fix this test on Linux on arm/arm64
+     case 'js-execute-iframe': {
+-      return (process.platform !== 'linux' || (process.arch !== 'arm64' && process.arch !== 'arm'));
++      return ((process.platform !== 'linux' && process.platform !== 'freebsd') || (process.arch !== 'arm64' && process.arch !== 'arm'));
+     }
+     default: {
+       return true;
diff --git a/devel/electron19/files/patch-electron_spec-main_version-bump-spec.ts b/devel/electron19/files/patch-electron_spec-main_version-bump-spec.ts
index 1581c8ed08d6..40ca3d0385e2 100644
--- a/devel/electron19/files/patch-electron_spec-main_version-bump-spec.ts
+++ b/devel/electron19/files/patch-electron_spec-main_version-bump-spec.ts
@@ -1,6 +1,6 @@
---- electron/spec-main/version-bump-spec.ts.orig	2021-11-15 23:45:07 UTC
+--- electron/spec-main/version-bump-spec.ts.orig	2022-11-28 15:30:00 UTC
 +++ electron/spec-main/version-bump-spec.ts
-@@ -186,7 +186,7 @@ describe('version-bumper', () => {
+@@ -92,7 +92,7 @@ describe('version-bumper', () => {
  
    // On macOS Circle CI we don't have a real git environment due to running
    // gclient sync on a linux machine. These tests therefore don't run as expected.
diff --git a/devel/electron19/files/patch-net_socket_udp__socket__posix.cc b/devel/electron19/files/patch-net_socket_udp__socket__posix.cc
index 1e1c4df5d453..91ed5a641fa0 100644
--- a/devel/electron19/files/patch-net_socket_udp__socket__posix.cc
+++ b/devel/electron19/files/patch-net_socket_udp__socket__posix.cc
@@ -1,6 +1,6 @@
---- net/socket/udp_socket_posix.cc.orig	2022-05-25 04:01:05 UTC
+--- net/socket/udp_socket_posix.cc.orig	2023-01-13 05:20:53 UTC
 +++ net/socket/udp_socket_posix.cc
-@@ -621,7 +621,7 @@ int UDPSocketPosix::SetDoNotFragment() {
+@@ -622,7 +622,7 @@ int UDPSocketPosix::SetDoNotFragment() {
  }
  
  void UDPSocketPosix::SetMsgConfirm(bool confirm) {
@@ -9,7 +9,7 @@
    if (confirm) {
      sendto_flags_ |= MSG_CONFIRM;
    } else {
-@@ -642,7 +642,7 @@ int UDPSocketPosix::SetBroadcast(bool broadcast) {
+@@ -643,7 +643,7 @@ int UDPSocketPosix::SetBroadcast(bool broadcast) {
    DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
    int value = broadcast ? 1 : 0;
    int rv;
@@ -18,7 +18,7 @@
    // SO_REUSEPORT on OSX permits multiple processes to each receive
    // UDP multicast or broadcast datagrams destined for the bound
    // port.
-@@ -955,7 +955,7 @@ int UDPSocketPosix::DoBind(const IPEndPoint& address) 
+@@ -956,7 +956,7 @@ int UDPSocketPosix::DoBind(const IPEndPoint& address) 
  #if BUILDFLAG(IS_CHROMEOS_ASH)
    if (last_error == EINVAL)
      return ERR_ADDRESS_IN_USE;
diff --git a/devel/electron19/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5 b/devel/electron19/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
index eaf86a81b389..fbeceee9f3fc 100644
--- a/devel/electron19/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
+++ b/devel/electron19/files/patch-third__party_blink_renderer_platform_runtime__enabled__features.json5
@@ -1,4 +1,4 @@
---- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig	2022-05-25 04:01:09 UTC
+--- third_party/blink/renderer/platform/runtime_enabled_features.json5.orig	2023-01-13 05:20:53 UTC
 +++ third_party/blink/renderer/platform/runtime_enabled_features.json5
 @@ -33,7 +33,7 @@
      // shipped stable can have its runtime flag removed soon after.
@@ -57,6 +57,6 @@
        origin_trial_feature_name: "WebAppWindowControlsOverlay",
 -      origin_trial_os: ["win", "mac", "linux", "chromeos"],
 +      origin_trial_os: ["win", "mac", "linux", "chromeos", "openbsd", "freebsd"],
-       status: "experimental",
+       status: "stable",
      },
      {
diff --git a/devel/electron19/files/yarn.lock b/devel/electron19/files/yarn.lock
index 226aae6f5b92..5e051cbd213f 100644
--- a/devel/electron19/files/yarn.lock
+++ b/devel/electron19/files/yarn.lock
@@ -106,10 +106,22 @@
     esutils "^2.0.2"
     js-tokens "^4.0.0"
 
-"@electron/docs-parser@^0.12.4":
-  version "0.12.4"
-  resolved "https://registry.yarnpkg.com/@electron/docs-parser/-/docs-parser-0.12.4.tgz#cca403c8c2200181339c3115cdd25f3fbfc7dea3"
-  integrity sha512-vdkjcvkI7zTd2v1A8qsl5+HY+9AQCrW5Eh60I9rhPtUPoxo2V1pQwogTW6kzc3XZ54crTa7R3KxwkZpSbcGCug==
+"@electron/asar@^3.2.1":
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.1.tgz#c4143896f3dd43b59a80a9c9068d76f77efb62ea"
+  integrity sha512-hE2cQMZ5+4o7+6T2lUaVbxIzrOjZZfX7dB02xuapyYFJZEAiWTelq6J3mMoxzd0iONDvYLPVKecB5tyjIoVDVA==
+  dependencies:
+    chromium-pickle-js "^0.2.0"
+    commander "^5.0.0"
+    glob "^7.1.6"
+    minimatch "^3.0.4"
+  optionalDependencies:
+    "@types/glob" "^7.1.1"
+
+"@electron/docs-parser@^1.0.0":
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/@electron/docs-parser/-/docs-parser-1.0.0.tgz#1844ed2e18528ea56aaef0ace1cfa0633a6fa1b1"
+  integrity sha512-nIqEO8Ga6LavdaY2aJMPfq2vSOPVlgOvNv7jpiyaoqsAz5vYnWNUnxeCyaalCaDyFiKhVeHbKwP8Kt2TENwneg==
   dependencies:
     "@types/markdown-it" "^10.0.0"
     chai "^4.2.0"
@@ -121,10 +133,10 @@
     ora "^4.0.3"
     pretty-ms "^5.1.0"
 
-"@electron/typescript-definitions@^8.9.5":
-  version "8.9.5"
-  resolved "https://registry.yarnpkg.com/@electron/typescript-definitions/-/typescript-definitions-8.9.5.tgz#e6cb08e0e7c9656e178b892eab50866a8a80bf7a"
-  integrity sha512-xDLFl6joGpA8c9cGSPWC3DFHyIGf9+OWZmDrPbGJW1URt6C1ukdQWKSmjb1Rttb94QQxBrGuUlSyz27IQgLFsw==
+"@electron/typescript-definitions@^8.10.0":
+  version "8.10.0"
+  resolved "https://registry.yarnpkg.com/@electron/typescript-definitions/-/typescript-definitions-8.10.0.tgz#e9cf2b329ec4b0b76947ef751725383a6cf8994d"
+  integrity sha512-FVc2y0GUfxFZDoma0scYiMxkoalle19Fq332fNFGWoCJ9rCj5OUvriewSjPtGBsRuHv2xaMS5MhBuy2/pRuFuQ==
   dependencies:
     "@types/node" "^11.13.7"
     chalk "^2.4.2"
@@ -1162,18 +1174,6 @@ arrify@^1.0.0:
   resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
   integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
 
-asar@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/asar/-/asar-3.1.0.tgz#70b0509449fe3daccc63beb4d3c7d2e24d3c6473"
-  integrity sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ==
-  dependencies:
-    chromium-pickle-js "^0.2.0"
-    commander "^5.0.0"
-    glob "^7.1.6"
-    minimatch "^3.0.4"
-  optionalDependencies:
-    "@types/glob" "^7.1.1"
-
 asn1.js@^4.0.0:
   version "4.10.1"
   resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
@@ -5050,7 +5050,7 @@ mute-stream@0.0.8:
   resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
   integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
 
-nan@^2.12.1, nan@nodejs/nan#16fa32231e2ccd89d2804b3f765319128b20c4ac:
+nan@^2.12.1:
   version "2.15.0"
   resolved "https://codeload.github.com/nodejs/nan/tar.gz/16fa32231e2ccd89d2804b3f765319128b20c4ac"