diff --git a/patches/chromium/.patches b/patches/chromium/.patches index f6471212332b..671a98a5b49d 100644 --- a/patches/chromium/.patches +++ b/patches/chromium/.patches @@ -139,3 +139,4 @@ build_disable_thin_lto_mac.patch build_add_public_config_simdutf_config.patch revert_code_health_clean_up_stale_macwebcontentsocclusion.patch build_remove_vr_directx_helpers_dependency.patch +ignore_parse_errors_for_pkey_appusermodel_toastactivatorclsid.patch diff --git a/patches/chromium/ignore_parse_errors_for_pkey_appusermodel_toastactivatorclsid.patch b/patches/chromium/ignore_parse_errors_for_pkey_appusermodel_toastactivatorclsid.patch new file mode 100644 index 000000000000..6f97dd9b9ce8 --- /dev/null +++ b/patches/chromium/ignore_parse_errors_for_pkey_appusermodel_toastactivatorclsid.patch @@ -0,0 +1,40 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?David=20L=C3=B6nnhager?= +Date: Fri, 17 Jan 2025 14:30:48 +0100 +Subject: Ignore parse errors for PKEY_AppUserModel_ToastActivatorCLSID + +Some shortcuts store this as a string UUID as opposed to VT_CLSID, +hitting NOTREACHED() and sometimes breaking parsing in Electron. +Ignore this error instead. + +Bug: N/A +Change-Id: I9fc472212b2d3afac2c8e18a2159bc2d50bbdf98 + +diff --git a/AUTHORS b/AUTHORS +index 55dc38c1448c1960b802c136018c8be22ed61c18..5cd195df3650331fbfd62b2f964368b5f3217f3c 100644 +--- a/AUTHORS ++++ b/AUTHORS +@@ -337,6 +337,7 @@ David Futcher + David Jin + David Lechner + David Leen ++David Lönnhager + David Manouchehri + David McAllister + David Michael Barr +diff --git a/base/win/shortcut.cc b/base/win/shortcut.cc +index e790adb2f1d6529ac0dd77145f5da2796264c7ae..8a7edcfaf9af963468b4b42fe55a771fb31f13a2 100644 +--- a/base/win/shortcut.cc ++++ b/base/win/shortcut.cc +@@ -342,8 +342,9 @@ bool ResolveShortcutProperties(const FilePath& shortcut_path, + *(pv_toast_activator_clsid.get().puuid)); + break; + default: +- NOTREACHED() << "Unexpected variant type: " +- << pv_toast_activator_clsid.get().vt; ++ // Shortcuts may use strings to represent the CLSID. This case is ++ // ignored. ++ break; + } + } + } diff --git a/shell/common/api/electron_api_shell.cc b/shell/common/api/electron_api_shell.cc index a8031264d7cd..d6097e7efbb8 100644 --- a/shell/common/api/electron_api_shell.cc +++ b/shell/common/api/electron_api_shell.cc @@ -163,7 +163,8 @@ v8::Local ReadShortcutLink(gin_helper::ErrorThrower thrower, options.Set("icon", properties.icon); options.Set("iconIndex", properties.icon_index); options.Set("appUserModelId", properties.app_id); - options.Set("toastActivatorClsid", properties.toast_activator_clsid); + if (properties.options & ShortcutProperties::PROPERTIES_TOAST_ACTIVATOR_CLSID) + options.Set("toastActivatorClsid", properties.toast_activator_clsid); return gin::ConvertToV8(thrower.isolate(), options); } #endif