From 1cb8d16a2ba28319725d97beb1ccfd17d9258df2 Mon Sep 17 00:00:00 2001 From: Pier Angelo Vendrame <pierov@torproject.org> Date: Tue, 20 Feb 2024 13:21:17 +0100 Subject: [PATCH] fixup! MB 80: Enable Mullvad Browser as a default browser Debugging faciliites. --- toolkit/mozapps/defaultagent/EventLog.h | 23 ++++++++++++++----- .../defaultagent/SetDefaultBrowser.cpp | 10 ++++++++ 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/toolkit/mozapps/defaultagent/EventLog.h b/toolkit/mozapps/defaultagent/EventLog.h index 0d561095fedea..8984e9c304d82 100644 --- a/toolkit/mozapps/defaultagent/EventLog.h +++ b/toolkit/mozapps/defaultagent/EventLog.h @@ -7,7 +7,7 @@ #ifndef __DEFAULT_BROWSER_AGENT_EVENT_LOG_H__ #define __DEFAULT_BROWSER_AGENT_EVENT_LOG_H__ -#include "mozilla/Types.h" +#include <cwchar> MOZ_BEGIN_EXTERN_C @@ -15,10 +15,21 @@ extern MOZ_EXPORT const wchar_t* gWinEventLogSourceName; MOZ_END_EXTERN_C -#include "mozilla/WindowsEventLog.h" - -// This is not compatible with Mingw. -#define LOG_ERROR(hr) -#define LOG_ERROR_MESSAGE(format, ...) +#ifdef LOG_ERRORS_FILE +extern FILE* gLogFile; +# define LOG_ERROR(hr) \ + if (gLogFile) { \ + fprintf(gLogFile, "Error in %s:%d: 0x%X\r\n", __FILE__, __LINE__, \ + (unsigned int)hr); \ + } +# define LOG_ERROR_MESSAGE(format, ...) \ + if (gLogFile) { \ + fwprintf(gLogFile, format __VA_OPT__(, ) __VA_ARGS__); \ + fputs("\r\n", gLogFile); \ + } +#else +# define LOG_ERROR(hr) +# define LOG_ERROR_MESSAGE(format, ...) +#endif #endif // __DEFAULT_BROWSER_AGENT_EVENT_LOG_H__ diff --git a/toolkit/mozapps/defaultagent/SetDefaultBrowser.cpp b/toolkit/mozapps/defaultagent/SetDefaultBrowser.cpp index 65596230db8da..45bbcba7249e5 100644 --- a/toolkit/mozapps/defaultagent/SetDefaultBrowser.cpp +++ b/toolkit/mozapps/defaultagent/SetDefaultBrowser.cpp @@ -364,12 +364,22 @@ HRESULT SetDefaultExtensionHandlersUserChoiceImpl( return S_OK; } +#ifdef LOG_ERRORS_FILE +FILE* gLogFile; +#endif + // Simplified version of wmain that uses only this file from main.cpp. int wmain(int argc, wchar_t** argv) { if (argc < 3 || !argv[1] || !argv[2]) { return E_INVALIDARG; } +#ifdef LOG_ERRORS_FILE + std::unique_ptr<FILE, decltype(&fclose)> logFile(fopen(LOG_ERRORS_FILE, "a+"), + &fclose); + gLogFile = logFile.get(); +#endif + HRESULT hr = CoInitializeEx(nullptr, COINIT_MULTITHREADED); if (FAILED(hr)) { LOG_ERROR(hr); -- GitLab