fix: explicitly define REFGUID from ::GUID&, not base::GUID (#30442)
* fix: explicitly define REFGUID from ::GUID& Ref: https://chromium-review.googlesource.com/c/chromium/src/+/3076480 * fix: duplicate GUID_NULL symbol, add comment
This commit is contained in:
parent
e11953b0e6
commit
60650abf09
2 changed files with 13 additions and 6 deletions
|
@ -41,15 +41,13 @@
|
||||||
#include "shell/browser/api/electron_api_service_worker_context.h"
|
#include "shell/browser/api/electron_api_service_worker_context.h"
|
||||||
#include "shell/browser/api/electron_api_session.h"
|
#include "shell/browser/api/electron_api_session.h"
|
||||||
#include "shell/browser/api/electron_api_system_preferences.h"
|
#include "shell/browser/api/electron_api_system_preferences.h"
|
||||||
|
#include "shell/browser/api/electron_api_tray.h"
|
||||||
#include "shell/browser/api/electron_api_url_loader.h"
|
#include "shell/browser/api/electron_api_url_loader.h"
|
||||||
#include "shell/browser/api/electron_api_web_contents.h"
|
#include "shell/browser/api/electron_api_web_contents.h"
|
||||||
#include "shell/browser/api/electron_api_web_frame_main.h"
|
#include "shell/browser/api/electron_api_web_frame_main.h"
|
||||||
#include "shell/browser/api/electron_api_web_request.h"
|
#include "shell/browser/api/electron_api_web_request.h"
|
||||||
#include "shell/browser/api/event.h"
|
#include "shell/browser/api/event.h"
|
||||||
#include "shell/common/api/electron_api_native_image.h"
|
#include "shell/common/api/electron_api_native_image.h"
|
||||||
#if !defined(OS_WIN)
|
|
||||||
#include "shell/browser/api/electron_api_tray.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace electron {
|
namespace electron {
|
||||||
|
|
||||||
|
@ -207,10 +205,8 @@ void SetCrashKeyForGinWrappable(gin::WrapperInfo* info) {
|
||||||
else if (info == &electron::api::DesktopCapturer::kWrapperInfo)
|
else if (info == &electron::api::DesktopCapturer::kWrapperInfo)
|
||||||
crash_location = "DesktopCapturer";
|
crash_location = "DesktopCapturer";
|
||||||
#endif
|
#endif
|
||||||
#if !defined(OS_WIN)
|
|
||||||
else if (info == &electron::api::Tray::kWrapperInfo)
|
else if (info == &electron::api::Tray::kWrapperInfo)
|
||||||
crash_location = "Tray";
|
crash_location = "Tray";
|
||||||
#endif // OS_WIN
|
|
||||||
else if (info == &electron::api::NetLog::kWrapperInfo)
|
else if (info == &electron::api::NetLog::kWrapperInfo)
|
||||||
crash_location = "NetLog";
|
crash_location = "NetLog";
|
||||||
else if (info == &electron::api::NativeImage::kWrapperInfo)
|
else if (info == &electron::api::NativeImage::kWrapperInfo)
|
||||||
|
|
|
@ -10,6 +10,17 @@
|
||||||
#include "gin/converter.h"
|
#include "gin/converter.h"
|
||||||
|
|
||||||
#if defined(OS_WIN)
|
#if defined(OS_WIN)
|
||||||
|
// c.f.:
|
||||||
|
// https://chromium-review.googlesource.com/c/chromium/src/+/3076480
|
||||||
|
// REFGUID is currently incorrectly inheriting its type
|
||||||
|
// from base::GUID, when it should be inheriting from ::GUID.
|
||||||
|
// This workaround prevents build errors until the CL is merged
|
||||||
|
#ifdef _REFGUID_DEFINED
|
||||||
|
#undef REFGUID
|
||||||
|
#endif
|
||||||
|
#define REFGUID const ::GUID&
|
||||||
|
#define _REFGUID_DEFINED
|
||||||
|
|
||||||
#include <rpc.h>
|
#include <rpc.h>
|
||||||
|
|
||||||
#include "base/strings/sys_string_conversions.h"
|
#include "base/strings/sys_string_conversions.h"
|
||||||
|
@ -18,7 +29,6 @@
|
||||||
|
|
||||||
#if defined(OS_WIN)
|
#if defined(OS_WIN)
|
||||||
typedef GUID UUID;
|
typedef GUID UUID;
|
||||||
const GUID GUID_NULL = {};
|
|
||||||
#else
|
#else
|
||||||
typedef struct {
|
typedef struct {
|
||||||
} UUID;
|
} UUID;
|
||||||
|
@ -58,6 +68,7 @@ struct Converter<UUID> {
|
||||||
}
|
}
|
||||||
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate, UUID val) {
|
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate, UUID val) {
|
||||||
#if defined(OS_WIN)
|
#if defined(OS_WIN)
|
||||||
|
const GUID GUID_NULL = {};
|
||||||
if (val == GUID_NULL) {
|
if (val == GUID_NULL) {
|
||||||
return StringToV8(isolate, "");
|
return StringToV8(isolate, "");
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue