gecko-dev/testing/cppunittest.ini
Toshihito Kikuchi ee1f6d7a78 Bug 1529593 - Make LauncherRegistryInfo delay write to the registry. r=aklotz
We have the `LauncherRegistryInfo` class to check the launcher process was
launched successfully on Windows by comparing the timestamps in the registry
when each process was launched.

The problem was when the process is launched from an elevated process, we
relaunch a new launcher process via shell after we updated the launcher's
timestamp.  As a result, `LauncherRegistryInfo` unexpectedly disabled the
launcher process even though there was nothing wrong.

A proposed fix is to introduce delay-write to the `LauncherRegistryInfo`.  With
this, `LauncherRegistryInfo::Check` modifies only the image timestamp. To update
the launcher/browser timestamps, we need to call `LauncherRegistryInfo::Commit`.
When we ask shell to relaunch a new process, we hold back commit, delegating it
to the new process.

There is another consideration needed.  If something fails during `LauncherMain`,
we call `DisableDueToFailure()` to disable the launcher until the image timestamp
is changed.  In such a case, we should not change the stored timestamps even
though commit is attempted.  The problem is we use a different instance to call
`DisableDueToFailure()` in `HandleLauncherError`.  To deal with this design,
`LauncherRegistryInfo` has a static boolean to indicate disablement happens or not.

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

--HG--
extra : moz-landing-system : lando
2019-10-14 17:14:54 +00:00

93 lines
1.7 KiB
INI

[ShowSSEConfig]
[TestPrintf]
[TestAppShellSteadyState]
[TestAlgorithm]
[TestArray]
[TestArrayUtils]
[TestAtomics]
[TestBinarySearch]
[TestBloomFilter]
[TestBufferList]
[TestCasting]
[TestCeilingFloor]
[TestCheckedInt]
[TestCountPopulation]
[TestCountZeroes]
[TestDefineEnum]
[TestDoublyLinkedList]
[TestDllInterceptor]
skip-if = os != 'win'
[TestEndian]
[TestEnumeratedArray]
[TestEnumSet]
[TestEnumTypeTraits]
[TestFastBernoulliTrial]
[TestFloatingPoint]
[TestFunctionTypeTraits]
[TestIntegerPrintfMacros]
[TestIntegerRange]
[TestJSONWriter]
[TestLauncherRegistryInfo]
skip-if = os != 'win'
[TestLinkedList]
[TestMacroArgs]
[TestMacroForEach]
[TestMathAlgorithms]
[TestMaybe]
[TestNativeNt]
skip-if = os != 'win'
[TestUriValidation]
skip-if = os != 'win'
[TestSameBinary]
skip-if = os != 'win'
[TestBaseProfiler]
[TestNonDereferenceable]
[TestNotNull]
[TestParseFTPList]
[TestPLDHash]
[TestPair]
[TestPoisonArea]
skip-if = os == 'android' # Bug 1147630
[TestRange]
[TestRandomNum]
[TestRefPtr]
[TestResult]
[TestRollingMean]
[TestScopeExit]
[TestSegmentedVector]
[TestSHA1]
[TestSmallPointerArray]
[TestSaturate]
[TestSplayTree]
[TestSPSCQueue]
[TestSyncRunnable]
[TestTemplateLib]
[TestTextUtils]
[TestThreadSafeWeakPtr]
[TestTuple]
[TestTypeTraits]
[TestTypedEnum]
[TestUniquePtr]
[TestUtf8]
[TestVariant]
[TestVector]
[TestVolatileBuffer]
[TestWeakPtr]
[TestWrappingOperations]
[TestXorShift128PlusRNG]
[buffered_stun_socket_unittest]
[ice_unittest]
[test_nr_socket_unittest]
[jsapi-tests]
[multi_tcp_socket_unittest]
[nrappkit_unittest]
[rlogringbuffer_unittest]
[runnable_utils_unittest]
[sctp_unittest]
[signaling_unittests]
[signaling_unittests_standalone]
[simpletokenbucket_unittest]
[sockettransportservice_unittest]
[transport_unittests]
[turn_unittest]