Граф коммитов

100 Коммитов

Автор SHA1 Сообщение Дата
Aaron Klotz a9b427157f Bug 1567614: Part 1 - Refactor launcher process's LaunchUnelevated to delegate to ShellExecuteByExplorer; r=jmathies
This is just so that both the launcher process and other Gecko code can share
this method.

Differential Revision: https://phabricator.services.mozilla.com/D38943

--HG--
extra : moz-landing-system : lando
2019-07-23 20:17:58 +00:00
Aaron Klotz a5accb9be2 Bug 1564538: Set -ffreestanding on DllBlocklistWin.cpp; r=dmajor
Differential Revision: https://phabricator.services.mozilla.com/D37599

--HG--
extra : moz-landing-system : lando
2019-07-16 18:24:37 +00:00
Aaron Klotz c49231935f Bug 1483687: Part 4 - Update the launcher process blocklist to use binary search; r=mhowell
Differential Revision: https://phabricator.services.mozilla.com/D36998

--HG--
extra : moz-landing-system : lando
2019-07-16 18:02:25 +00:00
Aaron Klotz c48c895bd7 Bug 1558561: Fix missing population of RTL_OSVERSIONINFOW::dwOSVersionInfoSize; r=mhowell
Differential Revision: https://phabricator.services.mozilla.com/D34559

--HG--
extra : moz-landing-system : lando
2019-06-11 17:19:37 +00:00
David Major 59dad3d157 Bug 1556738 - Tighten up some clang-cl warning allowances r=nalexander
Remove a few no-longer-necessary `AllowCompilerWarnings()` before anything that depends upon them sneaks in.

Differential Revision: https://phabricator.services.mozilla.com/D33631

--HG--
extra : moz-landing-system : lando
2019-06-04 16:17:14 +00:00
Sylvestre Ledru d57d4905f1 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D30883

--HG--
extra : moz-landing-system : lando
2019-05-25 17:46:15 +00:00
arthur.iakab af8e458c5f Backed out changeset a296439a25ff (bug 1519636) for frequent Windows cppunit failures CLOSED TREE 2019-05-24 14:26:01 +03:00
Sylvestre Ledru c82ea97226 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D30883

--HG--
extra : moz-landing-system : lando
2019-05-24 09:59:17 +00:00
David Major 6efaa8b1cd Bug 1523526 - Don't allow CFG on old releases of Windows for arm64 r=bobowen,aklotz
There's a bug in ole32.dll on arm64 versions of Windows prior to 1809, that crashes our content processes if we enable CFG. We've reported the issue, but even if it gets fixed, we can't assume users will have the update.

This patch uses process mitigation policy flags to disable CFG on arm64 before 1809. Based on testing, we only need to do this in the sandbox for child processes, and it's not strictly necessary for the launcher stub to set the flag on the main process. But I've included that anyway as a guard against some yet-undiscovered scenario that might hit the issue and make the browser unusable.

The effects of this patch won't be visible until we actually enable CFG in a subsequent landing.

Differential Revision: https://phabricator.services.mozilla.com/D29474

--HG--
extra : moz-landing-system : lando
2019-05-20 17:25:30 +00:00
Coroiu Cristina 55a63d1520 Backed out 2 changesets (bug 1523526, bug 1526443) for Be bustage on Windows AArch on a CLOSED TREE
Backed out changeset 98013639d600 (bug 1526443)
Backed out changeset e8ac4b512f9d (bug 1523526)
2019-05-20 20:21:56 +03:00
David Major 250aff00e7 Bug 1523526 - Don't allow CFG on old releases of Windows for arm64 r=bobowen,aklotz
There's a bug in ole32.dll on arm64 versions of Windows prior to 1809, that crashes our content processes if we enable CFG. We've reported the issue, but even if it gets fixed, we can't assume users will have the update.

This patch uses process mitigation policy flags to disable CFG on arm64 before 1809. Based on testing, we only need to do this in the sandbox for child processes, and it's not strictly necessary for the launcher stub to set the flag on the main process. But I've included that anyway as a guard against some yet-undiscovered scenario that might hit the issue and make the browser unusable.

The effects of this patch won't be visible until we actually enable CFG in a subsequent landing.

Differential Revision: https://phabricator.services.mozilla.com/D29474

--HG--
extra : moz-landing-system : lando
2019-05-07 18:37:13 +00:00
Nathan Froyd 279e2583b7 Bug 1551698 - disable PGO on some low-level windows files; r=dmajor
PGO instrumentation interacts badly with this code, and it's not crucial
that this code be lightning fast.

Differential Revision: https://phabricator.services.mozilla.com/D31131

--HG--
extra : moz-landing-system : lando
2019-05-15 13:00:39 +00:00
Aaron Klotz 0684e256c4 Bug 1548324: Improve implementation of force-launcher in the launcher process; r=mhowell
This patch replaces the quick-n-dirty implementation of -force-launcher with
one that makes LauncherRegistryInfo aware of that state, thus correctly setting
the affected registry values.

Differential Revision: https://phabricator.services.mozilla.com/D29545

--HG--
extra : moz-landing-system : lando
2019-05-01 20:56:43 +00:00
Aaron Klotz 0e9bf00f2f Bug 1543807 - Part 1: Modify launcher process telemetry to be gated on datareporting.healthreport.uploadEnabled; r=mhowell
Differential Revision: https://phabricator.services.mozilla.com/D29543

--HG--
extra : moz-landing-system : lando
2019-05-01 20:58:55 +00:00
Sylvestre Ledru a1dce6440a Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D28329

--HG--
extra : moz-landing-system : lando
2019-04-22 16:35:03 +00:00
Aaron Klotz 5b40d0b92a Bug 1503538: Part 4 - Add injected static import blocking to launcher process; r=mhowell
Depends on D27145

Differential Revision: https://phabricator.services.mozilla.com/D27146

--HG--
extra : moz-landing-system : lando
2019-04-11 22:32:29 +00:00
Sylvestre Ledru 7f60810d86 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D27245

--HG--
extra : moz-landing-system : lando
2019-04-12 13:14:25 +00:00
Aaron Klotz 9ec9446252 Bug 1543256: Add a force-enable command line flag to the launcher process; r=mhowell
Differential Revision: https://phabricator.services.mozilla.com/D26824

--HG--
extra : moz-landing-system : lando
2019-04-09 22:15:23 +00:00
Masatoshi Kimura c759578005 Bug 1528963 - Followup to fix compile error when launcher process is off by default. r=aklotz
Differential Revision: https://phabricator.services.mozilla.com/D25463

--HG--
extra : moz-landing-system : lando
2019-03-29 19:49:22 +00:00
Masatoshi Kimura 26437cdd14 Bug 1528963 - Attach console before launching child. r=aklotz
Differential Revision: https://phabricator.services.mozilla.com/D23807

--HG--
rename : toolkit/xre/nsNativeAppSupportWin.cpp => widget/windows/WindowsConsole.cpp
extra : moz-landing-system : lando
2019-03-29 18:05:03 +00:00
Gurzau Raul 2774226563 Backed out changeset 7cb86942ed34 (bug 1528963) for bustages at nsEmbedFunctions.cpp on a CLOSED TREE. 2019-03-29 01:45:01 +02:00
Masatoshi Kimura 0cf76eebc1 Bug 1528963 - Attach console before launching child. r=aklotz
Differential Revision: https://phabricator.services.mozilla.com/D23807

--HG--
rename : toolkit/xre/nsNativeAppSupportWin.cpp => widget/windows/WindowsConsole.cpp
extra : moz-landing-system : lando
2019-03-28 21:37:52 +00:00
Sylvestre Ledru 4aa92e3091 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D22514
2019-03-13 10:19:06 +01:00
Carl Corcoran 183288850c Bug 1503538 Part 2/5: Move AutoVirtualProtect to a shared header r=aklotz
AutoVirtualProtect will be useful for following patches. This moves it out of
DllBlocklistWin.cpp and into WinHeaderOnlyUtils.h so it can be shared.

Differential Revision: https://phabricator.services.mozilla.com/D13197

--HG--
extra : moz-landing-system : lando
2019-03-06 00:40:55 +00:00
Carl Corcoran d6d1ff2060 Bug 1503538 Part 1/5: Move printf_stderr to a shared header r=aklotz
In the tree we have two copies of printf_stderr() with the comment,
"Ideally this should be shared". This moves the function to a new exported
header which can be the basis for other similar debugging utility functions.

To include it,
#include "mozilla/glue/Debug.h"

A small concern with this is that printf_stderr() is in the global namespace,
and could conflict if it's inadvertently included along with, for example,
nsDebug.h which also defines this function. The warning in the comment at the
top of the file attempts to mitigate this.

Differential Revision: https://phabricator.services.mozilla.com/D13196

--HG--
extra : moz-landing-system : lando
2019-03-06 00:51:15 +00:00
Aaron Klotz 0d71623b50 Bug 1531030: Use MOZ_DISABLE_POISON_IO_INTERPOSER to disable PoisonIOInterposer when it is unsafe to initialize; r=erahm
If we are running a background thread in the launcher process to log failures,
then allowing the main thread to proceed with monkeypatching system calls is a
Bad Idea. This patch gives us an environment variable that, when set, indicates
that it is unsafe for PoisonIOInterposer to run.

This scenario is an uncommon one, but one that we must account for nonetheless.

Differential Revision: https://phabricator.services.mozilla.com/D21607

--HG--
extra : moz-landing-system : lando
2019-03-01 19:34:54 +00:00
Aaron Klotz 2dee09001f Bug 1530809: Make LaunchElevated use mscom::ProcessRuntime instead of mscom::STARegion; r=mhowell
Differential Revision: https://phabricator.services.mozilla.com/D21261

--HG--
extra : moz-landing-system : lando
2019-02-26 21:40:59 +00:00
Aaron Klotz 0a41c8af39 Bug 1530700: Add a missing ifdef MOZ_LAUNCHER_PROCESS block; r=mhowell
Differential Revision: https://phabricator.services.mozilla.com/D21258

--HG--
extra : moz-landing-system : lando
2019-02-27 11:00:14 +00:00
Aaron Klotz 2d60c7faf4 Bug 1530531: Add a command line option to the launcher process that forces it to log errors to the Windows event log; r=mhowell
Differential Revision: https://phabricator.services.mozilla.com/D21099

--HG--
extra : moz-landing-system : lando
2019-02-25 23:11:20 +00:00
Aaron Klotz 8919792ffe Bug 1460433: Part 2 - Log launcher process failures to a telemetry ping; r=mhowell
This patch does a few things:

* Fleshes out the launcher process failure ping;
* Sends that ping via pingsender;
* If there is any failure in doing so, we fall back to the Windows event log;
* Any launcher process failures will result in us falling back to the normal
  startup code path, ensuring that users will still see a browser.

A sample ping will be attached to the bug.

Differential Revision: https://phabricator.services.mozilla.com/D19697

--HG--
extra : moz-landing-system : lando
2019-02-25 21:14:07 +00:00
Cosmin Sabou 65609ed7bd Backed out changeset 7733f36c6e38 (bug 1460433) for windows MinGW butages on ErrorHandler. CLOSED TREE
--HG--
extra : histedit_source : 8defc62b37bbaed971c6899d529e05db299a9d20
2019-02-25 20:32:35 +02:00
Aaron Klotz 61c0cff76e Bug 1460433: Part 2 - Log launcher process failures to a telemetry ping; r=mhowell
This patch does a few things:

* Fleshes out the launcher process failure ping;
* Sends that ping via pingsender;
* If there is any failure in doing so, we fall back to the Windows event log;
* Any launcher process failures will result in us falling back to the normal
  startup code path, ensuring that users will still see a browser.

A sample ping will be attached to the bug.

***
Format cleanup

Differential Revision: https://phabricator.services.mozilla.com/D19697

--HG--
extra : moz-landing-system : lando
2019-02-22 18:43:18 +00:00
Masatoshi Kimura e25fbce870 Bug 1528651 - Re-enable warnings-as-errors on Windows in some directories. r=dmajor
--HG--
extra : source : ba86ea25070b37f4725834e1c2d9ec4c0783e119
2019-02-17 15:03:02 +09:00
Aaron Klotz 84c01f8930 Bug 1400344: Rename mscom::MainThreadRuntime to mscom::ProcessRuntime and make it aware of Win32k lockdown and of multiple instantiations; r=Jamie
This patch takes care of a bunch of issues and does some cleanup:

* We rename mscom::MainThreadRuntime to mscom::ProcessRuntime, as the latter
  is a more accurate name going forward.
* We make ProcessRuntime aware of the Win32k Lockdown process mitigation
  policy. When Win32k is disabled, we perform process-wide COM initialization
  in the multi-threaded apartment (since we cannot create an STA window).
* We refactor the mscom apartment region stuff to enable the Win32k lockdown
  pieces in ProcessRuntime.
* We move some Gecko-specific stuff into MOZILLA_INTERNAL_API guards so that
  ProcessRuntime is usable outside of xul.dll (I will be needing it for the
  launcher process).
* Another thing that might happen with the launcher process is that, under
  error conditions in the launcher, we create a ProcessRuntime object on a
  background thread for the purposes of telemetry logging, but we also allow
  the main thread to proceed to start as the browser. This could result in a
  scenario where the main thread, as the browser process, is attempting to
  instantiate its ProcessRuntime and ends up racing with the launcher process's
  telemetry thread which has its own ProcessRuntime. To account for this
  situation, we add mutual exclusion to the process-wide initialization code.
  We host this part inside mozglue since that state is shared between both
  firefox.exe and xul.dll.
* We clean up ProcessRuntime::InitializeSecurity by using Vector to set up
  the EXPLICIT_ACCESS entries.
* We remove mscom::MainThreadClientInfo and replace it with a direct call to
  CoGetCallerTID
* We revise all references to this class to use the new name.

Differential Revision: https://phabricator.services.mozilla.com/D19551

--HG--
rename : ipc/mscom/COMApartmentRegion.h => ipc/mscom/ApartmentRegion.h
rename : ipc/mscom/MainThreadRuntime.cpp => ipc/mscom/ProcessRuntime.cpp
rename : ipc/mscom/MainThreadRuntime.h => ipc/mscom/ProcessRuntime.h
extra : moz-landing-system : lando
2019-02-14 18:56:20 +00:00
Dorel Luca 67115dd61b Backed out changeset 2d4b8d90cbd7 (bug 1400344) for Spider monkey failrues. CLOSED TREE
--HG--
rename : ipc/mscom/ApartmentRegion.h => ipc/mscom/COMApartmentRegion.h
rename : ipc/mscom/ProcessRuntime.cpp => ipc/mscom/MainThreadRuntime.cpp
rename : ipc/mscom/ProcessRuntime.h => ipc/mscom/MainThreadRuntime.h
2019-02-14 20:45:26 +02:00
Aaron Klotz 0cb12a123a Bug 1400344: Rename mscom::MainThreadRuntime to mscom::ProcessRuntime and make it aware of Win32k lockdown and of multiple instantiations; r=Jamie
This patch takes care of a bunch of issues and does some cleanup:

* We rename mscom::MainThreadRuntime to mscom::ProcessRuntime, as the latter
  is a more accurate name going forward.
* We make ProcessRuntime aware of the Win32k Lockdown process mitigation
  policy. When Win32k is disabled, we perform process-wide COM initialization
  in the multi-threaded apartment (since we cannot create an STA window).
* We refactor the mscom apartment region stuff to enable the Win32k lockdown
  pieces in ProcessRuntime.
* We move some Gecko-specific stuff into MOZILLA_INTERNAL_API guards so that
  ProcessRuntime is usable outside of xul.dll (I will be needing it for the
  launcher process).
* Another thing that might happen with the launcher process is that, under
  error conditions in the launcher, we create a ProcessRuntime object on a
  background thread for the purposes of telemetry logging, but we also allow
  the main thread to proceed to start as the browser. This could result in a
  scenario where the main thread, as the browser process, is attempting to
  instantiate its ProcessRuntime and ends up racing with the launcher process's
  telemetry thread which has its own ProcessRuntime. To account for this
  situation, we add mutual exclusion to the process-wide initialization code.
  We host this part inside mozglue since that state is shared between both
  firefox.exe and xul.dll.
* We clean up ProcessRuntime::InitializeSecurity by using Vector to set up
  the EXPLICIT_ACCESS entries.
* We remove mscom::MainThreadClientInfo and replace it with a direct call to
  CoGetCallerTID
* We revise all references to this class to use the new name.

Differential Revision: https://phabricator.services.mozilla.com/D19551

--HG--
rename : ipc/mscom/COMApartmentRegion.h => ipc/mscom/ApartmentRegion.h
rename : ipc/mscom/MainThreadRuntime.cpp => ipc/mscom/ProcessRuntime.cpp
rename : ipc/mscom/MainThreadRuntime.h => ipc/mscom/ProcessRuntime.h
extra : moz-landing-system : lando
2019-02-14 16:40:58 +00:00
Sylvestre Ledru 755a1a7c2f Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D17063

--HG--
extra : moz-landing-system : lando
2019-01-21 14:49:22 +00:00
Margareta Eliza Balazs 9dda825205 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-01-18 12:31:59 +02:00
Ehsan Akhgari e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Aaron Klotz ce3866a774 Bug 1520537: Clean up use of LauncherRegistryInfo when MOZ_LAUNCHER_PROCESS is not defined; r=mhowell
Differential Revision: https://phabricator.services.mozilla.com/D16914

--HG--
extra : moz-landing-system : lando
2019-01-17 23:45:37 +00:00
Aaron Klotz 99ef8003dd Bug 1511078: Add LauncherRegistryInfo as a temporary mechanism for runtime disabling of launcher process; r=mhowell
Differential Revision: https://phabricator.services.mozilla.com/D15756

--HG--
rename : browser/app/winlauncher/NativeNt.h => mozglue/misc/NativeNt.h
rename : browser/app/winlauncher/test/TestNativeNt.cpp => mozglue/tests/TestNativeNt.cpp
rename : browser/app/winlauncher/LauncherResult.h => toolkit/xre/LauncherResult.h
extra : moz-landing-system : lando
2019-01-15 23:10:00 +00:00
Coroiu Cristina d263400b1c Backed out 2 changesets (bug 1511078) for build bustages at Unified_cpp_toolkit_xre0.obj
Backed out changeset 61a47d6d5e26 (bug 1511078)
Backed out changeset 006df494925a (bug 1511078)

--HG--
rename : toolkit/xre/LauncherResult.h => browser/app/winlauncher/LauncherResult.h
rename : mozglue/misc/NativeNt.h => browser/app/winlauncher/NativeNt.h
rename : mozglue/tests/TestNativeNt.cpp => browser/app/winlauncher/test/TestNativeNt.cpp
2019-01-15 23:15:50 +02:00
Aaron Klotz 64310051e7 Bug 1511078: Add LauncherRegistryInfo as a temporary mechanism for runtime disabling of launcher process; r=mhowell
Differential Revision: https://phabricator.services.mozilla.com/D15756

--HG--
rename : browser/app/winlauncher/NativeNt.h => mozglue/misc/NativeNt.h
rename : browser/app/winlauncher/test/TestNativeNt.cpp => mozglue/tests/TestNativeNt.cpp
rename : browser/app/winlauncher/LauncherResult.h => toolkit/xre/LauncherResult.h
extra : moz-landing-system : lando
2019-01-15 20:19:46 +00:00
Aaron Klotz b4764bf8f4 Bug 1509929: Part 3 - Add TestSameBinary to launcher process tests; r=mhowell
This test ensures that IsSameBinaryAsParentProcess works correctly when
information about the current process's parent is no longer available.

It uses three processes which are outlined in the block comment at the top of
TestSameBinary.cpp.

Differential Revision: https://phabricator.services.mozilla.com/D15448

--HG--
extra : moz-landing-system : lando
2019-01-08 00:10:12 +00:00
Aaron Klotz 7b47bb6e92 Bug 1509929: Part 1 - Move IsSameBinaryAsParentProcess to its own header; r=mhowell
Differential Revision: https://phabricator.services.mozilla.com/D15446

--HG--
extra : moz-landing-system : lando
2019-01-08 00:09:26 +00:00
Bogdan Tara 96769dfd83 Backed out 3 changesets (bug 1509929) for mingw failures on TestSameBinary.cpp CLOSED TREE
Backed out changeset 8d432633f8fb (bug 1509929)
Backed out changeset 5ec50f23671e (bug 1509929)
Backed out changeset 8bdba9ec4d5b (bug 1509929)
2019-01-08 01:33:43 +02:00
Aaron Klotz 025eb3a5bd Bug 1509929: Part 3 - Add TestSameBinary to launcher process tests; r=mhowell
This test ensures that IsSameBinaryAsParentProcess works correctly when
information about the current process's parent is no longer available.

It uses three processes which are outlined in the block comment at the top of
TestSameBinary.cpp.

Differential Revision: https://phabricator.services.mozilla.com/D15448

--HG--
extra : moz-landing-system : lando
2019-01-07 22:36:55 +00:00
Aaron Klotz 7ee47561c5 Bug 1509929: Part 1 - Move IsSameBinaryAsParentProcess to its own header; r=mhowell
Differential Revision: https://phabricator.services.mozilla.com/D15446

--HG--
extra : moz-landing-system : lando
2019-01-07 22:36:08 +00:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Aaron Klotz 458a02325f Bug 1509277: Handle ERROR_INVALID_PARAMETER from OpenProcess differently from other errors in launcher process startup; r=cpearce
If the launcher process's parent process was ephemeral, the parent may have
terminated before the launcher has a chance to open a handle to it. If so,
OpenProcess will fail with ERROR_INVALID_PARAMETER, as the pid is now invalid.

This is a common case, so instead of erroring out, IsSameBinaryAsParentProcess
should treat this case as, "No, our parent was not a Firefox binary" and just
return false.

This eliminated the intermittent xpcshell failures on try.

Differential Revision: https://phabricator.services.mozilla.com/D12714

--HG--
extra : moz-landing-system : lando
2018-11-22 22:37:04 +00:00