git: a0c08864e483 - main - devel/electron24: update to 24.3.1

From: Hiroki Tagato <tagattie_at_FreeBSD.org>
Date: Mon, 22 May 2023 08:57:14 UTC
The branch main has been updated by tagattie:

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

commit a0c08864e483a47ef81c6c39ad943b8e5f830943
Author:     Hiroki Tagato <tagattie@FreeBSD.org>
AuthorDate: 2023-05-22 08:55:27 +0000
Commit:     Hiroki Tagato <tagattie@FreeBSD.org>
CommitDate: 2023-05-22 08:57:01 +0000

    devel/electron24: update to 24.3.1
    
    Changelog: https://github.com/electron/electron/releases/tag/v24.3.1
    
    Reported by:    GitHub (watch releases)
---
 devel/electron24/Makefile                          |  11 +-
 devel/electron24/Makefile.version                  |   2 +-
 devel/electron24/distinfo                          |  16 +--
 devel/electron24/files/package.json                |  14 +--
 ...-chrome_browser_ui_views_frame_browser__view.cc |   4 +-
 .../files/patch-electron_script_spec-runner.js     |   4 +-
 ...electron_shell_browser_native__window__views.cc |  22 ++--
 .../patch-electron_spec_api-browser-window-spec.ts |  48 ++++++---
 .../patch-ui_base_ime_fake__text__input__client.cc |   4 +-
 .../patch-ui_base_ime_fake__text__input__client.h  |   4 +-
 devel/electron24/files/yarn.lock                   | 117 +++++++++++++++------
 11 files changed, 160 insertions(+), 86 deletions(-)

diff --git a/devel/electron24/Makefile b/devel/electron24/Makefile
index 08de9f27aff2..5c1c0cd5144f 100644
--- a/devel/electron24/Makefile
+++ b/devel/electron24/Makefile
@@ -2,10 +2,12 @@ PORTNAME=	electron
 DISTVERSIONPREFIX=	v
 DISTVERSION=	${ELECTRON_VER:S/-beta./.b/}
 CATEGORIES=	devel
-MASTER_SITES=	https://commondatastorage.googleapis.com/chromium-browser-official/:chromium \
+MASTER_SITES=	https://github.com/tagattie/FreeBSD-Electron/releases/download/v24.3.1/:chromium \
+		https://commondatastorage.googleapis.com/chromium-nodejs/:chromium_node \
 		https://commondatastorage.googleapis.com/chromium-fonts/:chromium_testfonts
 PKGNAMESUFFIX=	${ELECTRON_VER_MAJOR}
 DISTFILES=	chromium-${CHROMIUM_VER}${EXTRACT_SUFX}:chromium \
+		${CHROMIUM_NODE_MODULES_HASH}:chromium_node \
 		${CHROMIUM_TEST_FONTS_HASH}:chromium_testfonts \
 		electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX}:prefetch
 DIST_SUBDIR=	${PORTNAME}
@@ -203,7 +205,9 @@ SNDIO_VARS=		GN_ARGS+=use_sndio=true
 SNDIO_VARS_OFF=		GN_ARGS+=use_sndio=false
 
 # See ${WRKSRC}/electron/DEPS for CHROMIUM_VER
-CHROMIUM_VER=			112.0.5615.165
+CHROMIUM_VER=			112.0.5615.183
+# See ${WRKSRC}/third_party/node/node_modules.tar.gz.sha1 for CHROMIUM_NODE_MODULES_HASH
+CHROMIUM_NODE_MODULES_HASH=	a98dcca3c46a718770b2cb3430785ea4ed7e3f09
 # See ${WRKSRC}/third_party/test_fonts/test_fonts.tar.gz.sha1 for CHROMIUM_TEST_FONTS_HASH
 CHROMIUM_TEST_FONTS_HASH=	336e775eec536b2d785cc80eff6ac39051931286
 # See ${WRKSRC}/electron/DEPS for NODE_VER
@@ -217,7 +221,7 @@ REACTIVEOBJC_VER=		74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76
 # See ${WRKSRC}/electron/DEPS for MANTLE_VER
 MANTLE_VER=			78d3966b3c331292ea29ec38661b25df0a245948
 
-YARN_TIMESTAMP=	1684050401
+YARN_TIMESTAMP=	1684568582
 
 .include "Makefile.version"
 .include <bsd.port.pre.mk>
@@ -300,6 +304,7 @@ post-extract:
 		${WRKSRC}/third_party/squirrel.mac/vendor/ReactiveObjC
 	${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_mantle}-${MANTLE_VER} \
 		${WRKSRC}/third_party/squirrel.mac/vendor/Mantle
+	${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/node_modules ${WRKSRC}/third_party/node
 	${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/test_fonts ${WRKSRC}/third_party/test_fonts
 # Install node modules for electron
 	${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/yarn-offline-cache ${WRKDIR}
diff --git a/devel/electron24/Makefile.version b/devel/electron24/Makefile.version
index a84469b91e73..9d7caf9ac84b 100644
--- a/devel/electron24/Makefile.version
+++ b/devel/electron24/Makefile.version
@@ -1,2 +1,2 @@
-ELECTRON_VER=	24.3.0
+ELECTRON_VER=	24.3.1
 ELECTRON_VER_MAJOR=	${ELECTRON_VER:C/\..*//}
diff --git a/devel/electron24/distinfo b/devel/electron24/distinfo
index 3f2ec02c1caa..a53a83ef9047 100644
--- a/devel/electron24/distinfo
+++ b/devel/electron24/distinfo
@@ -1,12 +1,14 @@
-TIMESTAMP = 1684050898
-SHA256 (electron/chromium-112.0.5615.165.tar.xz) = 168c62fea9f428f99fbf967f36a75ee5da160429e3a5b86bf02188c5fe7c79fd
-SIZE (electron/chromium-112.0.5615.165.tar.xz) = 1730146076
+TIMESTAMP = 1684581103
+SHA256 (electron/chromium-112.0.5615.183.tar.xz) = b0b3d2e88fa8c393e0256b786806b09cbe0b22cc16be3d179684179c096d93a3
+SIZE (electron/chromium-112.0.5615.183.tar.xz) = 1572208216
+SHA256 (electron/a98dcca3c46a718770b2cb3430785ea4ed7e3f09) = 386332ab89cbe19c427a3febcf2e93ee89a3007243da3e3e466823f50d00eba5
+SIZE (electron/a98dcca3c46a718770b2cb3430785ea4ed7e3f09) = 9822544
 SHA256 (electron/336e775eec536b2d785cc80eff6ac39051931286) = a2ca2962daf482a8f943163541e1c73ba4b2694fabcd2510981f2db4eda493c8
 SIZE (electron/336e775eec536b2d785cc80eff6ac39051931286) = 32624734
-SHA256 (electron/electron-yarn-cache-24.3.0.tar.xz) = a0c07ddcade9bd20746585e3c1ca4aba3dbfb99dbfcc621c4403cf550394dd03
-SIZE (electron/electron-yarn-cache-24.3.0.tar.xz) = 39365592
-SHA256 (electron/electron-electron-v24.3.0_GH0.tar.gz) = 3359336061436701b6eebc589559753d240bd8fb8c92d5c944563d2cbf0f6762
-SIZE (electron/electron-electron-v24.3.0_GH0.tar.gz) = 10458047
+SHA256 (electron/electron-yarn-cache-24.3.1.tar.xz) = 71fe1564ffb4c4fb0c4e226073b1d32cf9358ee6a2eff1be17b3435af7eaabb7
+SIZE (electron/electron-yarn-cache-24.3.1.tar.xz) = 39582604
+SHA256 (electron/electron-electron-v24.3.1_GH0.tar.gz) = 9cdc7ad9017322c2227e1503b8f0be4f7674ec8a6b702700a6d0e7ad612ce198
+SIZE (electron/electron-electron-v24.3.1_GH0.tar.gz) = 10454811
 SHA256 (electron/nodejs-node-v18.14.0_GH0.tar.gz) = 31bbccdff73269baebcc9f32c2ffe428f28be79841527c63e95da93e8c630829
 SIZE (electron/nodejs-node-v18.14.0_GH0.tar.gz) = 113058999
 SHA256 (electron/nodejs-nan-16fa32231e2ccd89d2804b3f765319128b20c4ac_GH0.tar.gz) = 3807ae6a1e451a29f068540472f100f9718d457c60ac62f2f8469d1d57475d39
diff --git a/devel/electron24/files/package.json b/devel/electron24/files/package.json
index f0568a18fada..694799a4bc60 100644
--- a/devel/electron24/files/package.json
+++ b/devel/electron24/files/package.json
@@ -5,11 +5,11 @@
   "description": "Build cross platform desktop apps with JavaScript, HTML, and CSS",
   "devDependencies": {
     "@azure/storage-blob": "^12.9.0",
-    "@dsanders11/vscode-markdown-languageservice": "^0.3.0-alpha.4",
     "@electron/asar": "^3.2.1",
     "@electron/docs-parser": "^1.0.0",
     "@electron/fiddle-core": "^1.0.4",
     "@electron/github-app-auth": "^1.5.0",
+    "@electron/lint-roller": "^1.1.0",
     "@electron/typescript-definitions": "^8.10.0",
     "@octokit/rest": "^19.0.7",
     "@primer/octicons": "^10.0.0",
@@ -56,8 +56,6 @@
     "klaw": "^3.0.0",
     "lint": "^1.1.2",
     "lint-staged": "^10.2.11",
-    "markdownlint-cli": "^0.33.0",
-    "mdast-util-from-markdown": "^1.2.0",
     "minimist": "^1.2.6",
     "null-loader": "^4.0.0",
     "pre-flight": "^1.1.0",
@@ -74,10 +72,6 @@
     "ts-loader": "^8.0.2",
     "ts-node": "6.2.0",
     "typescript": "^4.5.5",
-    "unist-util-visit": "^4.1.1",
-    "vscode-languageserver": "^8.0.2",
-    "vscode-languageserver-textdocument": "^1.0.7",
-    "vscode-uri": "^3.0.6",
     "webpack": "^5.73.0",
     "webpack-cli": "^4.10.0",
     "wrapper-webpack-plugin": "^2.2.0"
@@ -96,8 +90,8 @@
     "lint:gn": "node ./script/lint.js --gn",
     "lint:docs": "remark docs -qf && npm run lint:js-in-markdown && npm run create-typescript-definitions && npm run lint:docs-fiddles && npm run lint:docs-relative-links && npm run lint:markdownlint",
     "lint:docs-fiddles": "standard \"docs/fiddles/**/*.js\"",
-    "lint:docs-relative-links": "ts-node script/lint-docs-links.ts",
-    "lint:markdownlint": "markdownlint -r ./script/markdownlint-emd001.js \"*.md\" \"docs/**/*.md\"",
+    "lint:docs-relative-links": "electron-lint-markdown-links --root docs \"**/*.md\"",
+    "lint:markdownlint": "electron-markdownlint \"*.md\" \"docs/**/*.md\"",
     "lint:js-in-markdown": "standard-markdown docs",
     "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",
@@ -141,7 +135,7 @@
     ],
     "docs/api/**/*.md": [
       "ts-node script/gen-filenames.ts",
-      "markdownlint --config .markdownlint.autofix.json --fix",
+      "electron-markdownlint --config .markdownlint.autofix.json --fix",
       "git add filenames.auto.gni"
     ],
     "{*.patch,.patches}": [
diff --git a/devel/electron24/files/patch-chrome_browser_ui_views_frame_browser__view.cc b/devel/electron24/files/patch-chrome_browser_ui_views_frame_browser__view.cc
index e0b3944ca565..e8f39ae5d960 100644
--- a/devel/electron24/files/patch-chrome_browser_ui_views_frame_browser__view.cc
+++ b/devel/electron24/files/patch-chrome_browser_ui_views_frame_browser__view.cc
@@ -1,6 +1,6 @@
---- chrome/browser/ui/views/frame/browser_view.cc.orig	2023-03-30 00:33:44 UTC
+--- chrome/browser/ui/views/frame/browser_view.cc.orig	2023-05-20 08:01:26 UTC
 +++ chrome/browser/ui/views/frame/browser_view.cc
-@@ -2092,7 +2092,7 @@ void BrowserView::TabDraggingStatusChanged(bool is_dra
+@@ -2106,7 +2106,7 @@ void BrowserView::TabDraggingStatusChanged(bool is_dra
    // CrOS cleanup is done.
  // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
  // of lacros-chrome is complete.
diff --git a/devel/electron24/files/patch-electron_script_spec-runner.js b/devel/electron24/files/patch-electron_script_spec-runner.js
index 190697d0f7b8..5f28ddd319d8 100644
--- a/devel/electron24/files/patch-electron_script_spec-runner.js
+++ b/devel/electron24/files/patch-electron_script_spec-runner.js
@@ -1,6 +1,6 @@
---- electron/script/spec-runner.js.orig	2023-04-11 16:23:26 UTC
+--- electron/script/spec-runner.js.orig	2023-05-17 11:09:55 UTC
 +++ electron/script/spec-runner.js
-@@ -162,7 +162,7 @@ async function runTestUsingElectron (specDir, testName
+@@ -163,7 +163,7 @@ async function runTestUsingElectron (specDir, testName
      exe = path.resolve(BASE, utils.getElectronExec());
    }
    const runnerArgs = [`electron/${specDir}`, ...unknownArgs.slice(2)];
diff --git a/devel/electron24/files/patch-electron_shell_browser_native__window__views.cc b/devel/electron24/files/patch-electron_shell_browser_native__window__views.cc
index 055a0ba51ff3..9f4181d1273f 100644
--- a/devel/electron24/files/patch-electron_shell_browser_native__window__views.cc
+++ b/devel/electron24/files/patch-electron_shell_browser_native__window__views.cc
@@ -1,4 +1,4 @@
---- electron/shell/browser/native_window_views.cc.orig	2023-02-06 19:29:11 UTC
+--- electron/shell/browser/native_window_views.cc.orig	2023-05-17 11:09:55 UTC
 +++ electron/shell/browser/native_window_views.cc
 @@ -42,7 +42,7 @@
  #include "ui/wm/core/shadow_types.h"
@@ -36,7 +36,7 @@
    // On linux after the widget is initialized we might have to force set the
    // bounds if the bounds are smaller than the current display
    SetBounds(gfx::Rect(GetPosition(), bounds.size()), false);
-@@ -541,7 +541,7 @@ bool NativeWindowViews::IsVisible() {
+@@ -551,7 +551,7 @@ bool NativeWindowViews::IsVisible() {
  bool NativeWindowViews::IsEnabled() {
  #if BUILDFLAG(IS_WIN)
    return ::IsWindowEnabled(GetAcceleratedWidget());
@@ -45,7 +45,7 @@
  #if defined(USE_OZONE_PLATFORM_X11)
    if (IsX11())
      return !event_disabler_.get();
-@@ -599,7 +599,7 @@ void NativeWindowViews::SetEnabledInternal(bool enable
+@@ -609,7 +609,7 @@ void NativeWindowViews::SetEnabledInternal(bool enable
  #endif
  }
  
@@ -54,7 +54,7 @@
  void NativeWindowViews::Maximize() {
    if (IsVisible()) {
      widget()->Maximize();
-@@ -726,7 +726,7 @@ void NativeWindowViews::SetBounds(const gfx::Rect& bou
+@@ -736,7 +736,7 @@ void NativeWindowViews::SetBounds(const gfx::Rect& bou
    }
  #endif
  
@@ -63,7 +63,7 @@
    // On Linux and Windows the minimum and maximum size should be updated with
    // window size when window is not resizable.
    if (!resizable_) {
-@@ -958,7 +958,7 @@ bool NativeWindowViews::IsClosable() {
+@@ -968,7 +968,7 @@ bool NativeWindowViews::IsClosable() {
      return false;
    }
    return !(info.fState & MFS_DISABLED);
@@ -72,7 +72,7 @@
    return true;
  #endif
  }
-@@ -1346,7 +1346,7 @@ void NativeWindowViews::SetProgressBar(double progress
+@@ -1356,7 +1356,7 @@ void NativeWindowViews::SetProgressBar(double progress
                                         NativeWindow::ProgressState state) {
  #if BUILDFLAG(IS_WIN)
    taskbar_host_.SetProgressBar(GetAcceleratedWidget(), progress, state);
@@ -81,7 +81,7 @@
    if (unity::IsRunning()) {
      unity::SetProgressFraction(progress);
    }
-@@ -1408,7 +1408,7 @@ content::DesktopMediaID NativeWindowViews::GetDesktopM
+@@ -1418,7 +1418,7 @@ content::DesktopMediaID NativeWindowViews::GetDesktopM
  #if BUILDFLAG(IS_WIN)
    window_handle =
        reinterpret_cast<content::DesktopMediaID::Id>(accelerated_widget);
@@ -90,7 +90,7 @@
    window_handle = static_cast<uint32_t>(accelerated_widget);
  #endif
    aura::WindowTreeHost* const host =
-@@ -1506,7 +1506,7 @@ void NativeWindowViews::SetIcon(HICON window_icon, HIC
+@@ -1516,7 +1516,7 @@ void NativeWindowViews::SetIcon(HICON window_icon, HIC
    SendMessage(hwnd, WM_SETICON, ICON_BIG,
                reinterpret_cast<LPARAM>(app_icon_.get()));
  }
@@ -99,7 +99,7 @@
  void NativeWindowViews::SetIcon(const gfx::ImageSkia& icon) {
    auto* tree_host = views::DesktopWindowTreeHostLinux::GetHostForWidget(
        GetAcceleratedWidget());
-@@ -1576,7 +1576,7 @@ bool NativeWindowViews::CanMaximize() const {
+@@ -1586,7 +1586,7 @@ bool NativeWindowViews::CanMaximize() const {
  bool NativeWindowViews::CanMinimize() const {
  #if BUILDFLAG(IS_WIN)
    return minimizable_;
@@ -108,7 +108,7 @@
    return true;
  #endif
  }
-@@ -1628,7 +1628,7 @@ void NativeWindowViews::HandleKeyboardEvent(
+@@ -1638,7 +1638,7 @@ void NativeWindowViews::HandleKeyboardEvent(
    if (widget_destroyed_)
      return;
  
@@ -117,7 +117,7 @@
    if (event.windows_key_code == ui::VKEY_BROWSER_BACK)
      NotifyWindowExecuteAppCommand(kBrowserBackward);
    else if (event.windows_key_code == ui::VKEY_BROWSER_FORWARD)
-@@ -1647,7 +1647,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e
+@@ -1657,7 +1657,7 @@ void NativeWindowViews::OnMouseEvent(ui::MouseEvent* e
    // Alt+Click should not toggle menu bar.
    root_view_->ResetAltState();
  
diff --git a/devel/electron24/files/patch-electron_spec_api-browser-window-spec.ts b/devel/electron24/files/patch-electron_spec_api-browser-window-spec.ts
index b6b472a5830c..7c4f9ac39781 100644
--- a/devel/electron24/files/patch-electron_spec_api-browser-window-spec.ts
+++ b/devel/electron24/files/patch-electron_spec_api-browser-window-spec.ts
@@ -1,4 +1,4 @@
---- electron/spec/api-browser-window-spec.ts.orig	2023-04-14 16:19:15 UTC
+--- electron/spec/api-browser-window-spec.ts.orig	2023-05-17 11:09:55 UTC
 +++ electron/spec/api-browser-window-spec.ts
 @@ -59,7 +59,7 @@ describe('BrowserWindow module', () => {
        }).not.to.throw();
@@ -9,7 +9,16 @@
        const appPath = path.join(fixtures, 'apps', 'xwindow-icon');
        const appProcess = childProcess.spawn(process.execPath, [appPath]);
        await new Promise((resolve) => { appProcess.once('exit', resolve); });
-@@ -737,7 +737,7 @@ describe('BrowserWindow module', () => {
+@@ -739,7 +739,7 @@ describe('BrowserWindow module', () => {
+ 
+     describe('BrowserWindow.minimize()', () => {
+       // TODO(codebytere): Enable for Linux once maximize/minimize events work in CI.
+-      ifit(process.platform !== 'linux')('should not be visible when the window is minimized', async () => {
++      ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('should not be visible when the window is minimized', async () => {
+         const minimize = emittedOnce(w, 'minimize');
+         w.minimize();
+         await minimize;
+@@ -756,7 +756,7 @@ describe('BrowserWindow module', () => {
        });
  
        // TODO(dsanders11): Enable for Linux once CI plays nice with these kinds of tests
@@ -18,7 +27,7 @@
          const maximize = emittedOnce(w, 'maximize');
          const shown = emittedOnce(w, 'show');
          w.maximize();
-@@ -774,7 +774,7 @@ describe('BrowserWindow module', () => {
+@@ -793,7 +793,7 @@ describe('BrowserWindow module', () => {
          expect(w.isFocused()).to.equal(true);
        });
  
@@ -27,7 +36,7 @@
          const w1 = new BrowserWindow({ show: false });
          const w2 = new BrowserWindow({ show: false });
          const w3 = new BrowserWindow({ show: false });
-@@ -841,7 +841,7 @@ describe('BrowserWindow module', () => {
+@@ -860,7 +860,7 @@ describe('BrowserWindow module', () => {
          expect(w.isFocused()).to.equal(false);
        });
  
@@ -36,7 +45,7 @@
          const w1 = new BrowserWindow({ show: false });
          const w2 = new BrowserWindow({ show: false });
          const w3 = new BrowserWindow({ show: false });
-@@ -1239,7 +1239,7 @@ describe('BrowserWindow module', () => {
+@@ -1258,7 +1258,7 @@ describe('BrowserWindow module', () => {
          });
        });
  
@@ -45,7 +54,7 @@
          it('checks normal bounds when maximized', async () => {
            const bounds = w.getBounds();
            const maximize = emittedOnce(w, 'maximize');
-@@ -1366,7 +1366,7 @@ describe('BrowserWindow module', () => {
+@@ -1385,7 +1385,7 @@ describe('BrowserWindow module', () => {
          });
        });
  
@@ -54,7 +63,7 @@
          it('checks normal bounds when minimized', async () => {
            const bounds = w.getBounds();
            const minimize = emittedOnce(w, 'minimize');
-@@ -2279,7 +2279,7 @@ describe('BrowserWindow module', () => {
+@@ -2334,7 +2334,7 @@ describe('BrowserWindow module', () => {
    describe('BrowserWindow.setOpacity(opacity)', () => {
      afterEach(closeAllWindows);
  
@@ -63,7 +72,7 @@
        it('make window with initial opacity', () => {
          const w = new BrowserWindow({ show: false, opacity: 0.5 });
          expect(w.getOpacity()).to.equal(0.5);
-@@ -2305,7 +2305,7 @@ describe('BrowserWindow module', () => {
+@@ -2360,7 +2360,7 @@ describe('BrowserWindow module', () => {
        });
      });
  
@@ -72,7 +81,7 @@
        it('sets 1 regardless of parameter', () => {
          const w = new BrowserWindow({ show: false });
          w.setOpacity(0);
-@@ -3233,7 +3233,7 @@ describe('BrowserWindow module', () => {
+@@ -3288,7 +3288,7 @@ describe('BrowserWindow module', () => {
          expect(test.versions).to.deep.equal(process.versions);
          expect(test.contextId).to.be.a('string');
  
@@ -81,7 +90,7 @@
            expect(test.creationTime).to.be.null('creation time');
            expect(test.systemMemoryInfo).to.be.null('system memory info');
          } else {
-@@ -3739,7 +3739,7 @@ describe('BrowserWindow module', () => {
+@@ -3794,7 +3794,7 @@ describe('BrowserWindow module', () => {
      });
    });
  
@@ -90,7 +99,7 @@
      afterEach(closeAllWindows);
      it('emits an event when window is maximized', async () => {
        const w = new BrowserWindow({ show: false });
-@@ -4010,7 +4010,7 @@ describe('BrowserWindow module', () => {
+@@ -4065,7 +4065,7 @@ describe('BrowserWindow module', () => {
      // TODO(zcbenz):
      // This test does not run on Linux CI. See:
      // https://github.com/electron/electron/issues/28699
@@ -99,7 +108,7 @@
        const w = new BrowserWindow({});
        const maximize = emittedOnce(w, 'maximize');
        w.maximize();
-@@ -4027,7 +4027,7 @@ describe('BrowserWindow module', () => {
+@@ -4082,7 +4082,7 @@ describe('BrowserWindow module', () => {
    });
  
    // TODO(dsanders11): Enable once maximize event works on Linux again on CI
@@ -108,7 +117,7 @@
      afterEach(closeAllWindows);
      it('should show the window if it is not currently shown', async () => {
        const w = new BrowserWindow({ show: false });
-@@ -4064,7 +4064,7 @@ describe('BrowserWindow module', () => {
+@@ -4119,7 +4119,7 @@ describe('BrowserWindow module', () => {
  
      // TODO(dsanders11): Enable once minimize event works on Linux again.
      //                   See https://github.com/electron/electron/issues/28699
@@ -117,7 +126,7 @@
        const w = new BrowserWindow();
        const minimize = emittedOnce(w, 'minimize');
        w.minimize();
-@@ -4427,7 +4427,7 @@ describe('BrowserWindow module', () => {
+@@ -4482,7 +4482,7 @@ describe('BrowserWindow module', () => {
        });
  
        // On Linux there is no "resizable" property of a window.
@@ -126,7 +135,7 @@
          const w = new BrowserWindow({ show: false });
          expect(w.resizable).to.be.true('resizable');
  
-@@ -4519,7 +4519,7 @@ describe('BrowserWindow module', () => {
+@@ -4574,7 +4574,7 @@ describe('BrowserWindow module', () => {
      });
    });
  
@@ -135,3 +144,12 @@
      // Not implemented on Linux.
      afterEach(closeAllWindows);
  
+@@ -5638,7 +5638,7 @@ describe('BrowserWindow module', () => {
+   describe('"transparent" option', () => {
+     afterEach(closeAllWindows);
+ 
+-    ifit(process.platform !== 'linux')('correctly returns isMaximized() when the window is maximized then minimized', async () => {
++    ifit(process.platform !== 'linux' && process.platform !== 'freebsd')('correctly returns isMaximized() when the window is maximized then minimized', async () => {
+       const w = new BrowserWindow({
+         frame: false,
+         transparent: true
diff --git a/devel/electron24/files/patch-ui_base_ime_fake__text__input__client.cc b/devel/electron24/files/patch-ui_base_ime_fake__text__input__client.cc
index 822b436c8185..87f76f051d56 100644
--- a/devel/electron24/files/patch-ui_base_ime_fake__text__input__client.cc
+++ b/devel/electron24/files/patch-ui_base_ime_fake__text__input__client.cc
@@ -1,6 +1,6 @@
---- ui/base/ime/fake_text_input_client.cc.orig	2022-08-31 12:19:35 UTC
+--- ui/base/ime/fake_text_input_client.cc.orig	2023-05-20 08:02:22 UTC
 +++ ui/base/ime/fake_text_input_client.cc
-@@ -163,7 +163,7 @@ bool FakeTextInputClient::ShouldDoLearning() {
+@@ -167,7 +167,7 @@ bool FakeTextInputClient::ShouldDoLearning() {
    return false;
  }
  
diff --git a/devel/electron24/files/patch-ui_base_ime_fake__text__input__client.h b/devel/electron24/files/patch-ui_base_ime_fake__text__input__client.h
index a93ff5c8c763..6eb203e3e3e6 100644
--- a/devel/electron24/files/patch-ui_base_ime_fake__text__input__client.h
+++ b/devel/electron24/files/patch-ui_base_ime_fake__text__input__client.h
@@ -1,6 +1,6 @@
---- ui/base/ime/fake_text_input_client.h.orig	2022-08-31 12:19:35 UTC
+--- ui/base/ime/fake_text_input_client.h.orig	2023-05-20 08:02:22 UTC
 +++ ui/base/ime/fake_text_input_client.h
-@@ -71,7 +71,7 @@ class FakeTextInputClient : public TextInputClient {
+@@ -73,7 +73,7 @@ class FakeTextInputClient : public TextInputClient {
    void SetTextEditCommandForNextKeyEvent(TextEditCommand command) override;
    ukm::SourceId GetClientSourceForMetrics() const override;
    bool ShouldDoLearning() override;
diff --git a/devel/electron24/files/yarn.lock b/devel/electron24/files/yarn.lock
index 5e419113b9dd..da43c86aef0e 100644
--- a/devel/electron24/files/yarn.lock
+++ b/devel/electron24/files/yarn.lock
@@ -111,10 +111,10 @@
   resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
   integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
 
-"@dsanders11/vscode-markdown-languageservice@^0.3.0-alpha.4":
-  version "0.3.0-alpha.4"
-  resolved "https://registry.yarnpkg.com/@dsanders11/vscode-markdown-languageservice/-/vscode-markdown-languageservice-0.3.0-alpha.4.tgz#cd80b82142a2c10e09b5f36a93c3ea65b7d2a7f9"
-  integrity sha512-MHp/CniEkzJb1CAw/bHwucuImaICrcIuohEFamTW8sJC2jhKCnbYblwJFZ3OOS3wTYZbzFIa8WZ4Dn5yL2E7jg==
+"@dsanders11/vscode-markdown-languageservice@^0.3.0":
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/@dsanders11/vscode-markdown-languageservice/-/vscode-markdown-languageservice-0.3.0.tgz#18a561711609651371961b66db4cb8473ab25564"
+  integrity sha512-aFNWtK23dNicyLczBwIKkGUSVuMoZMzUovlwqj/hVZ3zRIBlXWYunByDxI67Pf1maA0TbxPjVfRqBQFALWjVHg==
   dependencies:
     "@vscode/l10n" "^0.0.10"
     picomatch "^2.3.1"
@@ -187,6 +187,23 @@
     "@octokit/auth-app" "^3.6.1"
     "@octokit/rest" "^18.12.0"
 
+"@electron/lint-roller@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@electron/lint-roller/-/lint-roller-1.1.0.tgz#2b2ce1c9275fb052109b53990f3136f56c1df7be"
+  integrity sha512-5fDjEi7lXLgF8vAAIhMz7empABSSGQ61saZpQMA/qrigKd1CCkz7Kq/FCtQ8P94FhthlEw/bNE+AUBsHgyrUIQ==
+  dependencies:
+    "@dsanders11/vscode-markdown-languageservice" "^0.3.0"
+    glob "^8.1.0"
+    markdown-it "^13.0.1"
+    markdownlint-cli "^0.33.0"
+    mdast-util-from-markdown "^1.3.0"
+    minimist "^1.2.8"
+    node-fetch "^2.6.9"
+    unist-util-visit "^4.1.2"
+    vscode-languageserver "^8.1.0"
+    vscode-languageserver-textdocument "^1.0.8"
+    vscode-uri "^3.0.7"
+
 "@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"
@@ -3183,6 +3200,17 @@ glob@^7.0.0, glob@^7.0.5, glob@^7.1.3, glob@^7.1.6:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
+glob@^8.1.0:
+  version "8.1.0"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e"
+  integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==
+  dependencies:
+    fs.realpath "^1.0.0"
+    inflight "^1.0.4"
+    inherits "2"
+    minimatch "^5.0.1"
+    once "^1.3.0"
+
 glob@~8.0.3:
   version "8.0.3"
   resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e"
@@ -4067,7 +4095,7 @@ make-error@^1.1.1:
   resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8"
   integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==
 
-markdown-it@13.0.1:
+markdown-it@13.0.1, markdown-it@^13.0.1:
   version "13.0.1"
   resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-13.0.1.tgz#c6ecc431cacf1a5da531423fc6a42807814af430"
   integrity sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==
@@ -4146,10 +4174,10 @@ mdast-util-from-markdown@^1.0.0:
     parse-entities "^3.0.0"
     unist-util-stringify-position "^3.0.0"
 
-mdast-util-from-markdown@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz#84df2924ccc6c995dec1e2368b2b208ad0a76268"
-  integrity sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==
+mdast-util-from-markdown@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.0.tgz#0214124154f26154a2b3f9d401155509be45e894"
+  integrity sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g==
   dependencies:
     "@types/mdast" "^3.0.0"
     "@types/unist" "^2.0.0"
@@ -4507,6 +4535,11 @@ minimist@^1.2.0:
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
   integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
 
+minimist@^1.2.8:
+  version "1.2.8"
+  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
+  integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+
 minipass@^3.0.0:
   version "3.3.6"
   resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a"
@@ -4602,6 +4635,13 @@ node-fetch@^2.6.7:
   dependencies:
     whatwg-url "^5.0.0"
 
+node-fetch@^2.6.9:
+  version "2.6.11"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25"
+  integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==
+  dependencies:
+    whatwg-url "^5.0.0"
+
 node-releases@^2.0.6:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"
@@ -6867,10 +6907,10 @@ unist-util-visit@^2.0.0:
     unist-util-is "^4.0.0"
     unist-util-visit-parents "^3.0.0"
 
-unist-util-visit@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.1.tgz#1c4842d70bd3df6cc545276f5164f933390a9aad"
-  integrity sha512-n9KN3WV9k4h1DxYR1LoajgN93wpEi/7ZplVe02IoB4gH5ctI1AaF2670BLHQYbwj+pY83gFtyeySFiyMHJklrg==
+unist-util-visit@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2"
+  integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==
   dependencies:
     "@types/unist" "^2.0.0"
     unist-util-is "^5.0.0"
@@ -7031,41 +7071,56 @@ vfile@^5.0.0:
     unist-util-stringify-position "^3.0.0"
     vfile-message "^3.0.0"
 
-vscode-jsonrpc@8.0.2:
-  version "8.0.2"
-  resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz#f239ed2cd6004021b6550af9fd9d3e47eee3cac9"
-  integrity sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==
+vscode-jsonrpc@8.1.0:
+  version "8.1.0"
+  resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz#cb9989c65e219e18533cc38e767611272d274c94"
+  integrity sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==
 
-vscode-languageserver-protocol@3.17.2:
-  version "3.17.2"
-  resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2.tgz#beaa46aea06ed061576586c5e11368a9afc1d378"
-  integrity sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==
+vscode-languageserver-protocol@3.17.3:
+  version "3.17.3"
+  resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.3.tgz#6d0d54da093f0c0ee3060b81612cce0f11060d57"
+  integrity sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA==
   dependencies:
-    vscode-jsonrpc "8.0.2"
-    vscode-languageserver-types "3.17.2"
+    vscode-jsonrpc "8.1.0"
+    vscode-languageserver-types "3.17.3"
 
-vscode-languageserver-textdocument@^1.0.5, vscode-languageserver-textdocument@^1.0.7:
+vscode-languageserver-textdocument@^1.0.5:
   version "1.0.7"
   resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.7.tgz#16df468d5c2606103c90554ae05f9f3d335b771b"
   integrity sha512-bFJH7UQxlXT8kKeyiyu41r22jCZXG8kuuVVA33OEJn1diWOZK5n8zBSPZFHVBOu8kXZ6h0LIRhf5UnCo61J4Hg==
 
-vscode-languageserver-types@3.17.2, vscode-languageserver-types@^3.17.1:
+vscode-languageserver-textdocument@^1.0.8:
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz#9eae94509cbd945ea44bca8dcfe4bb0c15bb3ac0"
+  integrity sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==
+
+vscode-languageserver-types@3.17.3:
+  version "3.17.3"
+  resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz#72d05e47b73be93acb84d6e311b5786390f13f64"
+  integrity sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==
+
+vscode-languageserver-types@^3.17.1:
   version "3.17.2"
   resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz#b2c2e7de405ad3d73a883e91989b850170ffc4f2"
   integrity sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==
 
-vscode-languageserver@^8.0.2:
-  version "8.0.2"
-  resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-8.0.2.tgz#cfe2f0996d9dfd40d3854e786b2821604dfec06d"
-  integrity sha512-bpEt2ggPxKzsAOZlXmCJ50bV7VrxwCS5BI4+egUmure/oI/t4OlFzi/YNtVvY24A2UDOZAgwFGgnZPwqSJubkA==
+vscode-languageserver@^8.1.0:
+  version "8.1.0"
+  resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-8.1.0.tgz#5024253718915d84576ce6662dd46a791498d827"
+  integrity sha512-eUt8f1z2N2IEUDBsKaNapkz7jl5QpskN2Y0G01T/ItMxBxw1fJwvtySGB9QMecatne8jFIWJGWI61dWjyTLQsw==
   dependencies:
-    vscode-languageserver-protocol "3.17.2"
+    vscode-languageserver-protocol "3.17.3"
 
-vscode-uri@^3.0.3, vscode-uri@^3.0.6:
+vscode-uri@^3.0.3:
   version "3.0.6"
   resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.6.tgz#5e6e2e1a4170543af30151b561a41f71db1d6f91"
   integrity sha512-fmL7V1eiDBFRRnu+gfRWTzyPpNIHJTc4mWnFkwBUmO9U3KPgJAmTx7oxi2bl/Rh6HLdU7+4C9wlj0k2E4AdKFQ==
 
+vscode-uri@^3.0.7:
+  version "3.0.7"
+  resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.7.tgz#6d19fef387ee6b46c479e5fb00870e15e58c1eb8"
+  integrity sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==
+
 walk-sync@^0.3.2:
   version "0.3.4"
   resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-0.3.4.tgz#cf78486cc567d3a96b5b2237c6108017a5ffb9a4"