author | David Major <dmajor@mozilla.com> |
Tue, 12 Nov 2013 08:31:32 -0500 (2013-11-12) | |
changeset 154562 | 49671f1df4dad302d3aa5f624a52ce6790197fc6 |
parent 154561 | 38bcddde0516d9826686d1caadab0188655cd4ba |
child 154563 | 33c8facd04680320804f1f377818250c3162d220 |
push id | 25649 |
push user | ryanvm@gmail.com |
push date | Tue, 12 Nov 2013 20:24:15 +0000 (2013-11-12) |
treeherder | mozilla-central@0b4b1330fafa [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | bsmedberg |
bugs | 932100 |
milestone | 28.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/browser/app/nsBrowserApp.cpp +++ b/browser/app/nsBrowserApp.cpp @@ -73,19 +73,29 @@ static void Output(const char *fmt, ... 0, msg, -1, wide_msg, _countof(wide_msg)); #if MOZ_WINCONSOLE fwprintf_s(stderr, wide_msg); #else - MessageBoxW(nullptr, wide_msg, L"Firefox", MB_OK - | MB_ICONERROR - | MB_SETFOREGROUND); + // Linking user32 at load-time interferes with the DLL blocklist (bug 932100). + // This is a rare codepath, so we can load user32 at run-time instead. + HMODULE user32 = LoadLibraryW(L"user32.dll"); + if (user32) { + typedef int (WINAPI * MessageBoxWFn)(HWND, LPCWSTR, LPCWSTR, UINT); + MessageBoxWFn messageBoxW = (MessageBoxWFn)GetProcAddress(user32, "MessageBoxW"); + if (messageBoxW) { + messageBoxW(nullptr, wide_msg, L"Firefox", MB_OK + | MB_ICONERROR + | MB_SETFOREGROUND); + } + FreeLibrary(user32); + } #endif #endif va_end(ap); } /** * Return true if |arg| matches the given argument name.