7c98a62b35284047bde4647d2424fcccf06d8ae1: Backed out 8 changesets (bug 1542830) for causing spidermonkey bustages CLOSED TREE
Ciure Andrei <aciure@mozilla.com> - Fri, 20 Sep 2019 21:21:39 +0300 - rev 494284
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Backed out 8 changesets (bug 1542830) for causing spidermonkey bustages CLOSED TREE Backed out changeset b9f7fc8d0172 (bug 1542830) Backed out changeset b85f58fd5bbd (bug 1542830) Backed out changeset 0a9169ab2623 (bug 1542830) Backed out changeset 39a7c05d54ef (bug 1542830) Backed out changeset 7a3cbd2f59f0 (bug 1542830) Backed out changeset 268530552281 (bug 1542830) Backed out changeset df658ffb8599 (bug 1542830) Backed out changeset e7bef6486a38 (bug 1542830)
1a8f6cac81c521f23966fc07f4b2e8d0ec21226d: Bug 1582810. Drop clipped group bounds hack. r=aosmond
Jeff Muizelaar <jrmuizel@gmail.com> - Fri, 20 Sep 2019 17:38:52 +0000 - rev 494283
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1582810. Drop clipped group bounds hack. r=aosmond We don't need this anymore now that we're always using the visible rect. This requires bug 1582528 to properly set the visible area. Differential Revision: https://phabricator.services.mozilla.com/D46628
2d6979f57d6af3355074b403c116df9c449de7ba: Bug 1576303 part 2 - remove now unnecessary workarounds for ppc64le in js/src/gc and js/xpconnect/src. r=tcampbell
Cameron Kaiser <spectre@floodgap.com> - Thu, 19 Sep 2019 16:49:33 +0000 - rev 494282
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1576303 part 2 - remove now unnecessary workarounds for ppc64le in js/src/gc and js/xpconnect/src. r=tcampbell Depends on D46421 Differential Revision: https://phabricator.services.mozilla.com/D46422
4887ef7af82433422eef2df553f1183d9010b3a3: Bug 1576303 - Fix and tune xptcall for ppc64le, and harmonize with x86_64's. r=tcampbell,froydnj
Cameron Kaiser <spectre@floodgap.com> - Thu, 19 Sep 2019 19:45:20 +0000 - rev 494281
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1576303 - Fix and tune xptcall for ppc64le, and harmonize with x86_64's. r=tcampbell,froydnj Fix handling of ABI arguments in xptcinvoke for PPC64 platforms. Previously, non-floating-point arguments would advance the index of which floating-point register to use. This cleans up both of the platform-specific invoke and stubs to be better aligned to the x86_64 model. Differential Revision: https://phabricator.services.mozilla.com/D46421
b9f7fc8d0172d58ef5b2a2750d3e6ba777d083dd: Bug 1542830: Part 8 - Rename the "untrustedModules" ping to "third-party-modules" and change the schema to support multiprocess; r=janerik
Aaron Klotz <aklotz@mozilla.com> - Fri, 20 Sep 2019 17:01:18 +0000 - rev 494280
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1542830: Part 8 - Rename the "untrustedModules" ping to "third-party-modules" and change the schema to support multiprocess; r=janerik Note that to avoid introducing errors, I elected against renaming everything in the code; internally to Firefox the code still refers to "UntrustedModules"; only the relevant fields have been renamed to reference the new ping schema. A PR for backend schema changes is in the works. Differential Revision: https://phabricator.services.mozilla.com/D43162
b85f58fd5bbd337caa71c381799ef62325c387ed: Bug 1542830: Part 7 - Support MFBT Vector in ProcessedStack and add Swap operation to CombinedStacks; r=janerik
Aaron Klotz <aklotz@mozilla.com> - Fri, 20 Sep 2019 17:00:58 +0000 - rev 494279
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1542830: Part 7 - Support MFBT Vector in ProcessedStack and add Swap operation to CombinedStacks; r=janerik Untrusted modules 2.0 uses MFBT `Vector`, so this patch adds the ability for `ProcessedStack` to receive those as input. Differential Revision: https://phabricator.services.mozilla.com/D43161
0a9169ab2623c6c91a876a5128bf2895892548ec: Bug 1542830: Part 6 - Rewrite the untrusted modules processor in toolkit/xre; r=mhowell
Aaron Klotz <aklotz@mozilla.com> - Fri, 20 Sep 2019 17:00:44 +0000 - rev 494278
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1542830: Part 6 - Rewrite the untrusted modules processor in toolkit/xre; r=mhowell * Significant cleanup to `ModuleEvaluator` * `UntrustedModuleData` holds all of the accumulated untrusted module info for a single process. * `ProcessedModuleLoadEvent` holds information about an individual untrusted module load in a Gecko-friendly, sanitized, format. * Since multiple `ProcessModuleLoadEvent` objects may reference the same module, we store module metadata in a shared `ModuleInfo` structure. * The `UntrustedModulesProcessor` receives the events from `mozglue` and processes them on a background thread: ** It does not start background processing until the main thread has gone idle. The idea here is that we do not want to add any more background work until we are reasonably confident that Gecko is no longer starting up or doing other intense activity. ** Background processing runs at a background priority level, *except* when results are requested by telemetry itself. ** Telemetry requests the data via `UntrustedModulesProcessor::GetProcessedData` which runs at normal priority and returns a promise to the caller. Differential Revision: https://phabricator.services.mozilla.com/D43160
39a7c05d54ef0748f0d87beb32453a33f8f6f02e: Bug 1542830: Part 5 - Make ModuleVersion copyable and movable; r=mhowell
Aaron Klotz <aklotz@mozilla.com> - Fri, 20 Sep 2019 17:00:27 +0000 - rev 494277
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1542830: Part 5 - Make ModuleVersion copyable and movable; r=mhowell The `const` qualifier on `mVersion` was preventing move and copy, which we now need this class to support. Differential Revision: https://phabricator.services.mozilla.com/D43159
7a3cbd2f59f0cb3c4dc5aad0de39d02e9b0df83e: Bug 1542830: Part 4 - Modify mozglue to use new untrusted modules interfaces; r=mhowell
Aaron Klotz <aklotz@mozilla.com> - Fri, 20 Sep 2019 17:00:14 +0000 - rev 494276
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1542830: Part 4 - Modify mozglue to use new untrusted modules interfaces; r=mhowell * At this point our DLL blocking infra is complicated enough that I decided to bite the bullet and move all of this code out of `mozglue/build` and into its own subdirectory, `mozglue/dllservices`. * We delete the original `UntrustedDllsHandler` code which is now obsolete. * We implement mozglue's `LoaderObserver`: ** When this observer registers itself with the launcher process API, it receives a vector containing all saved records of loaded DLLs that happened until that moment. ** This code handles profiler labels and stackwalking suppression. ** Once a load has completed, we either pass the load on to XUL for further processing, or save it for later if XUL is not initialized yet. * mozglue has its own `ModuleLoadFrame` implementation for the legacy blocklist. * `DllServicesBase` is updated to support the new interfaces. * We implement `FallbackLoaderAPI` for `plugin-container`, `xpcshell`, and any other non-`firefox` processes that do not have a launcher process providing a loader API. * We add some wide to UTF8 conversion functions. Differential Revision: https://phabricator.services.mozilla.com/D43158
26853055228181f81906339a7503baa072ce1a11: Bug 1542830: Part 3 - Add ntdll_freestanding.lib to freestanding; r=mhowell,froydnj
Aaron Klotz <aklotz@mozilla.com> - Fri, 20 Sep 2019 16:59:57 +0000 - rev 494275
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1542830: Part 3 - Add ntdll_freestanding.lib to freestanding; r=mhowell,froydnj The `freestanding` library is built with specific compiler flags to signify that it is indeed freestanding code. That is, it does not depend on a standard library. One of the requirements of freestanding code is that the toolchain still expects implementations of `memcpy`, `memmove`, `memcmp`, and `memset`. I did briefly implement my own naive versions of these functions, but that solution is less than ideal since the implementations must be `extern` and are thus picked up by the entire `firefox.exe` binary. This denies the rest of `firefox.exe` the benefit of optimized implementations. On Windows, the sandbox is linked into `firefox.exe`, so we cannot just shrug and assume that naive implementations will not have any effect on anything. There are, however, optimized implementations of these functions that are exported by `ntdll.dll`. They are not included in the `ntdll.lib` that is included in the Windows SDK. Using `llvm-dlltool`, we can build an import library containing the missing entries and then add that library to `OS_LIBS`. Differential Revision: https://phabricator.services.mozilla.com/D43157
df658ffb8599c64e57ffb6afbe3e450cee059a5b: Bug 1542830: Part 2 - Modify launcher process blocklist to collect information about untrusted module loads; r=mhowell
Aaron Klotz <aklotz@mozilla.com> - Fri, 20 Sep 2019 16:59:40 +0000 - rev 494274
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1542830: Part 2 - Modify launcher process blocklist to collect information about untrusted module loads; r=mhowell * We refactor the blocklist code. Code that may possibly run before initialization of the Win32 subsystem and the CRT is contained within the `freestanding` library. * The `freestanding` library's static initializers are placed in their own section so that they may be manually invoked separately from the remaining initializers in the binary. * `CheckBlockInfo` and `IsDllAllowed` are modified to return a `BlockAction` enum instead of a `bool`. This will be used more extensively in the future for LSP blocking. * The launcher process now hooks `LdrLoadDll` in addition to `NtMapViewOfSection`. This is necessary so that we can collect timing information. * Telemetry recorders must implement the `LoaderObserver` interface. * `ModuleLoadFrame` is a RAII class that collects the information about the DLL load and dispatches the information to `LoaderObserver`s. * The launcher process exposes an implementation of the `LoaderAPI` interface that may be called by either the launcher process blocklist or the legacy blocklist in `mozglue`. * During startup, the launcher process implements its own `LoaderObserver`. Once mozglue is running, it connects its `LoaderObserver` to the launcher process, receives a vector containing the module load events, and then stores and forwards them into XUL. Differential Revision: https://phabricator.services.mozilla.com/D43156
e7bef6486a3893cadf232729e0d756de45317a86: Bug 1542830: Part 1 - Updates to NativeNt.h; r=mhowell
Aaron Klotz <aklotz@mozilla.com> - Fri, 20 Sep 2019 16:59:28 +0000 - rev 494273
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1542830: Part 1 - Updates to NativeNt.h; r=mhowell This patch adds the following: * The `AllocatedUnicodeString` class which encapsulates a `UNICODE_STRING` and owns its buffer. The buffers are null-terminated so that they may be used as C-style strings without modification. ** We do not allow either creation or copying within XUL * `RtlGetCurrentThreadId` and a test to validate it, so that we may obtain the current thread ID directly from the `TEB` when we do not yet have access to kernel32. * An implementation of `SRWLock` that uses Rtl instead of Win32 so that we may use them before we have access to Win32 DLLs. * A memory allocation policy that uses Rtl heap functions so that we may use MFBT `Vector` in code that might not yet have access to Win32 heap functions. Differential Revision: https://phabricator.services.mozilla.com/D43155
14dcedb553f44685647af2ee70f03929c7f5c3af: Bug 1580020 - Simplify AsmJS handling for deferred allocation r=tcampbell
Matthew Gaudet <mgaudet@mozilla.com> - Fri, 20 Sep 2019 16:27:01 +0000 - rev 494272
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1580020 - Simplify AsmJS handling for deferred allocation r=tcampbell Differential Revision: https://phabricator.services.mozilla.com/D46348
6731b16798c117b287d59454e3053a7def75fb1b: Bug 1580020 - Switch ParseContext to consume a ParseInfo directly, rather than decomposing r=tcampbell
Matthew Gaudet <mgaudet@mozilla.com> - Fri, 20 Sep 2019 16:26:59 +0000 - rev 494271
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1580020 - Switch ParseContext to consume a ParseInfo directly, rather than decomposing r=tcampbell Also breaks UsedNameTracker into its own header Differential Revision: https://phabricator.services.mozilla.com/D45905
19770617890540efdc385983ca38e0bd6d9af4bf: Bug 1580020 - Mark publishDeferredItems as MOZ_MUST_USE to prevent misuse r=tcampbell
Matthew Gaudet <mgaudet@mozilla.com> - Fri, 20 Sep 2019 16:26:55 +0000 - rev 494270
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1580020 - Mark publishDeferredItems as MOZ_MUST_USE to prevent misuse r=tcampbell Differential Revision: https://phabricator.services.mozilla.com/D45557
d84743fd31a19e9fed54722203ad3222af993fa8: Bug 1580378 - Support enabling parser deferred allocation mode on shell command line r=tcampbell
Matthew Gaudet <mgaudet@mozilla.com> - Fri, 20 Sep 2019 16:26:52 +0000 - rev 494269
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1580378 - Support enabling parser deferred allocation mode on shell command line r=tcampbell Differential Revision: https://phabricator.services.mozilla.com/D45556
de034010ab47687e0d441e7b67e75590eb2968da: Bug 1582776: Change cross-process stub to not store remote stub pointer in local mOrigFunc; r=handyman
Aaron Klotz <aklotz@mozilla.com> - Fri, 20 Sep 2019 16:55:27 +0000 - rev 494268
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1582776: Change cross-process stub to not store remote stub pointer in local mOrigFunc; r=handyman This is showing up with hooks that are set both by the launcher process and by the browser process when starting early DLL blocklist init on content processes: * The browser's copy of mOrigFunc was set by the launcher process. * The browser is setting a hook in the new child process, which writes to the child's mOrigFunc. * But FuncHookCrossProcess also writes that pointer to the browser's mOrigFunc, thus corrupting the browser process's copy of the pointer. For in-process hooks, we want to immediately write the stub pointer to its final location; this is not an issue for cross-process hooks since the child process is suspended when we do this and the parent process can't call the stub; there is no possibility of a race. Differential Revision: https://phabricator.services.mozilla.com/D46615
2400f298812b85710e974b93c2ab4bcb726198be: Bug 1581145 - update sfntly to master; r=jfkthame
Nathan Froyd <froydnj@mozilla.com> - Wed, 18 Sep 2019 21:31:08 +0000 - rev 494267
Push 36600 by aiakab@mozilla.com at Sat, 21 Sep 2019 09:52:11 +0000
Bug 1581145 - update sfntly to master; r=jfkthame This update brings in several bugfixes and compatibility with newer libstdc++ versions. Differential Revision: https://phabricator.services.mozilla.com/D45860
c221a75fbf2957b6254fedb96436b5efbf0fd147: Merge autoland to mozilla-central. a=merge
Dorel Luca <dluca@mozilla.com> - Sat, 21 Sep 2019 00:50:16 +0300 - rev 494266
Push 36599 by dluca@mozilla.com at Fri, 20 Sep 2019 21:52:25 +0000
Merge autoland to mozilla-central. a=merge
ea74ac35e7178aeaf73a29584ad22ea352004b9d: Bug 1582768 - Add UITour target for Logins and Passwords in the main menu. r=jaws
Matthew Noorenberghe <mozilla@noorenberghe.ca> - Fri, 20 Sep 2019 16:50:43 +0000 - rev 494265
Push 36599 by dluca@mozilla.com at Fri, 20 Sep 2019 21:52:25 +0000
Bug 1582768 - Add UITour target for Logins and Passwords in the main menu. r=jaws Differential Revision: https://phabricator.services.mozilla.com/D46604
(0) -300000 -100000 -30000 -10000 -3000 -1000 -300 -100 -50 -20 +20 +50 +100 +300 +1000 +3000 +10000 +30000 tip