Commit Graph

1602 Commits

Author SHA1 Message Date
Carl Corcoran
7da8e04c87 Bug 1467736: Add support for DllBlocklist_Shutdown;r=aklotz
Differential Revision: https://phabricator.services.mozilla.com/D4544

--HG--
extra : moz-landing-system : lando
2018-08-29 18:49:49 +00:00
Dave Townsend
204fe23163 Bug 1484844: Make nsINIParser mutable. r=froydnj
In order to implement profile-per-install we need a mutable INI parser in early
startup. The current one is implemented in JavaScript and thus not available.
This makes the current read-only C++ INI parser mutable and removes the
JavaScript implementation.

It turns out that the two different implementations of nsIINIParserFactory and
nsIINIParser behaved slightly differently but only in ways that the single test
cared about so I've adjusted things a little to make it work.

The existing C++ implementation did not do validity checks on arguments, this
adds that making empty sections and values illegal.

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

--HG--
rename : xpcom/tests/unit/test_iniProcessor.js => xpcom/tests/unit/test_iniParser.js
extra : source : 524941c8ed0e048ee51be1bd11082b41428ef490
extra : amend_source : 2de6cef5be97448a41733bedda29d6af34aed27a
2017-10-12 14:20:57 -07:00
Gabriele Svelto
5d2f9f8da7 Bug 1440282 - Update breakpad to revision 1459e5df74dd03b7d3d473e6d271413d7aa98a88 r=ted
This adds support for the DW_AT_ranges attribute when dumping out symbols and
adds basic support for AArch64 (64-bit ARM) on Windows in the minidump
processor.

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

--HG--
extra : moz-landing-system : lando
2018-08-21 10:34:11 +00:00
Brian Hackett
3f4120fa48 Bug 1482275 Part 1 - Trigger crashes in hanged replaying processes, r=froydnj.
--HG--
extra : rebase_source : 66acfd57306c85692d293481efb9f196adb3cd0b
2018-08-14 00:48:28 +00:00
Brian Hackett
ed1cb3c6c3 Bug 1481009 Part 6 - Cleanly shutdown middleman processes after a recording/replaying child crashes, r=froydnj.
--HG--
extra : rebase_source : bbdd58e8db173030c25fd2905be3b24d8d71f599
2018-08-13 20:47:49 +00:00
Brian Hackett
9e357f95bd Bug 1481009 Part 3 - Report recording/replaying processes crashes as if they happened in the middleman, r=gsvelto.
--HG--
extra : rebase_source : 9abe5c418d156d2e0d88d4a398d02dbd67cb1074
2018-08-13 20:46:42 +00:00
Brian Hackett
00693255ec Bug 1481009 Part 2 - Avoid changing exception ports when installing the exception handler in replaying processes, r=gsvelto.
--HG--
extra : rebase_source : dafa94bd88c41729b3ff06db40ecf653112afa33
2018-08-13 20:46:18 +00:00
Cosmin Sabou
ca86972424 Backed out 8 changesets (bug 1481009) for causing devtools crashes @XUL + 0x37bba19. a=backout
Backed out changeset 11ee868c5903 (bug 1481009)
Backed out changeset 4a0c7dd5e1ac (bug 1481009)
Backed out changeset 4e6908123a97 (bug 1481009)
Backed out changeset 6869ea5ebd32 (bug 1481009)
Backed out changeset 85eec9cfc3d9 (bug 1481009)
Backed out changeset f7f4127aa9d8 (bug 1481009)
Backed out changeset 58598aa3cf0c (bug 1481009)
Backed out changeset 1ec7f635f4f3 (bug 1481009)
2018-08-12 14:50:41 +03:00
Brian Hackett
6da96bb9e8 Bug 1481009 Part 6 - Cleanly shutdown middleman processes after a recording/replaying child crashes, r=froydnj.
--HG--
extra : rebase_source : 2147c889acf725dad16d2878ea77ce605a19f046
2018-08-08 16:49:14 +00:00
Brian Hackett
b4b9e7d9a1 Bug 1481009 Part 3 - Report recording/replaying processes crashes as if they happened in the middleman, r=gsvelto.
--HG--
extra : rebase_source : fe9d098d759f49773ff81c9c38c02134e464bfcd
2018-08-08 16:45:59 +00:00
Brian Hackett
84b5eb308f Bug 1481009 Part 2 - Avoid changing exception ports when installing the exception handler in replaying processes, r=gsvelto.
--HG--
extra : rebase_source : 408a2873e3ccad0914ac6710a494056336bc1064
2018-08-08 16:44:47 +00:00
Gabriele Svelto
15adf94f4d Bug 1348273 - Convert crash annotations into a machine-readable list of constants; r=ted.mielczarek,njn,dholbert,mak,cpearce,mcmanus,froydnj,Dexter,jrmuizel,jchen,jimm,bz,surkov
This introduces the machinery needed to generate crash annotations from a YAML
file. The relevant C++ functions are updated to take a typed enum. JavaScript
calls are unaffected but they will throw if the string argument does not
correspond to one of the known entries in the C++ enum. The existing whitelists
and blacklists of annotations are also generated from the YAML file and all
duplicate code related to them has been consolidated. Once written out to the
.extra file the annotations are converted in string form and are no different
than the existing ones.

All existing annotations have been included in the list (and some obsolete ones
have been removed) and all call sites have been updated including tests where
appropriate.

--HG--
extra : source : 4f6c43f2830701ec5552e08e3f1b06fe6d045860
2018-07-05 15:42:11 +02:00
Mike Hommey
6d197a0707 Bug 1481719 - Disable profile-instr-out-of-date warnings explicitly rather than allowing all warnings where they appear. r=dmajor 2018-08-09 06:07:33 +09:00
Masatoshi Kimura
3b21b7868b Bug 1090497 - Re-enable warnings as errors on clang-cl. r=froydnj
--HG--
extra : rebase_source : c09366fb93e5b0f72abe1e99d3094e3d96a934fb
extra : intermediate-source : 5950c9d63c3b4fd63a25464a7b50944aaec7079f
extra : source : ca1b9a2bcc4381795f556fea2fb59066567c30f3
2018-07-31 22:10:07 +09:00
Alexis Deschamps
dded25327a Bug 1476034 - about:crashes: switched to fluent. r=flod,Pike
Summary:
The about:crashes page is being updated (bug 1463515). To facilitate these changes,
this patch changes the about:crashes page to use Fluent for localization instead of the old systems.
This also includes a script to migrate strings from the old .DTD and .properties files
to the new .ftl one.

Test Plan:
1. build Firefox with the changes
2. run Firefox
3. go to the about:crashes page
4. expect nothing to be different

This extension: https://github.com/rhelmer/webext-experiment-crashme can be used to
add local crash reports for verifying the different states of the about:crashes page.

Reviewers: flod, Pike, jchen, snorp

Reviewed By: flod, Pike, jchen, snorp

Subscribers: nalexander, reviewbot

Bug #: 1476034

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

--HG--
extra : rebase_source : 0ca9516b4df78e735fd03907f2ea324bc72ca893
2018-08-01 10:31:14 +03:00
Mark Banner
29ebe3f3a8 Bug 1478308 - Remove unnecessary ChromeUtils.imports in toolkit/ r=mikedeboer
MozReview-Commit-ID: 45Tfs2ZZ06r

--HG--
extra : rebase_source : f76738612cb5f78787e9fae8f8c563d5ff5f33d1
2018-07-25 11:00:35 +01:00
Narcis Beleuzu
d47c829065 Backed out 4 changesets (bug 1478308) for ESlint failure on AttributionCode.jsm. CLOSED TREE
Backed out changeset a809b45ff49b (bug 1478308)
Backed out changeset c68131530742 (bug 1478308)
Backed out changeset 0e4ba7a6dc1a (bug 1478308)
Backed out changeset 32a27f317a77 (bug 1478308)
2018-07-26 11:13:28 +03:00
Mark Banner
d95c1526b8 Bug 1478308 - Remove unnecessary ChromeUtils.imports in toolkit/ r=mikedeboer
MozReview-Commit-ID: 45Tfs2ZZ06r

--HG--
extra : rebase_source : 10f2f734c883a1ac85b5dee21df119a4c6ae2898
2018-07-25 11:00:35 +01:00
Brian Hackett
4be736018d Bug 1207696 Part 4b - Make recording optional in mozilla mutexes and monitors, r=froydnj.
--HG--
extra : rebase_source : c00f199b38c6bdd47ed1793edf2ce90fbf2ff420
2018-07-21 14:22:54 +00:00
Kearwood "Kip" Gilbert
1c6f4743a5 Bug 1379704 - Move and update update-jsoncpp.sh script to match new location of jsoncpp library r=ted
- In bug 1356382, jsoncpp was moved from toolkit/crashreporter
  to toolkit/components
- update-jsoncpp.sh has been moved to the components directory
  and updated to match the new directories.

MozReview-Commit-ID: Cl71Dwoyn0N

--HG--
rename : toolkit/crashreporter/update-jsoncpp.sh => toolkit/components/update-jsoncpp.sh
extra : rebase_source : ca8c82b9bfa731e2250642533b68b21cb3ec85f1
2017-07-10 13:14:52 -07:00
Chris Manchester
9491263075 Bug 1475278 - Link a HostRustLibrary to a HostProgram where necessary in the Tup backend. r=mshal
MozReview-Commit-ID: qghHI02Bfs

--HG--
extra : rebase_source : e04cf40916032d312785e99f2b4e6c64657ad919
2018-07-12 16:31:54 -07:00
Petru Lingurar
417a481b63 Bug 1467461 - Migrate CrashReportingService to JobIntentService. r=snorp
Use the fact that a JobIntentService is still a Service to keep most of the
previous implementation and method of starting CrashReportingService.
On 26+ devices it will be called with "start-foreground-service".
This ensures it can be started even from background and the crash reporting
process would work as before but ActivityManager will post an ANR error to
logcat after 5 seconds because we aren't calling Service.startForeground()
(which would mean a user visible notification).

Will use different Job Ids depending on if the app is Firefox Release or
Firefox Beta.
The Job Id will be passed to GeckoThread when first initializing and then be
made available to CrashHandler and nsExceptionHandler.cpp to be sent in the
Intent that starts the CrashReporterService.

MozReview-Commit-ID: GATl6Waa9St

--HG--
extra : amend_source : 70bc130b9411df336181e825ebb3e19bdc5a778c
2018-07-02 17:32:10 +03:00
Ted Mielczarek
7d0f5a44b5 bug 1475278 - don't use rust demangle in Breakpad when building with tup. r=mshal
MozReview-Commit-ID: I7YQbfzBo0p
2018-07-12 12:47:17 -04:00
Mike Hommey
1ad733c5c4 Bug 1474871 - Link dump_syms against rustc-demangle. r=ted
The new version of breakpad imported in bug 1309172 doesn't demangle
rust symbols at all, contrary to before, where it tried to C++ demangle
them, which worked for many, although far from all. It however has
rust-demangle support as long as it's linked against a copy of the
rust-demangle-capi crate from https://github.com/luser/rust-demangle-capi/

This imports the code from the rust-demangle-capi crate but because of
some build system complications it's not taken as-is:
- it uses rusty-cheddar, which is deprecated, to generate a C header.
- rusty-cheddar depends on syntex_syntax, which now fails to build.
- rust-demangle-capi has crate-type staticlib, which can't be used
  as a dependency in a Cargo.toml. For that reason, we can't create
  a fake crate that depends on it to have it vendored.

Overall, it's only a few lines of rust, and the C header can be written
manually, so this is what we do here. The created crate is named in a way
specific to dump_syms.

The build system doesn't know how to figure out what system libraries
are required to link rust static libraries, although the rust compiler
has /some/ support to get the information, so we handle that manually.

--HG--
extra : rebase_source : 9f5a9bfe2148d3040e11c7121a88e85a7f2d5c53
2018-07-12 10:23:12 +09:00
Jacek Caban
52efb2adb3 Bug 1443471 - Take clang mingw into account in moz.build files r=glandium
MozReview-Commit-ID: 2vKiHjmI9Hn

--HG--
extra : rebase_source : 0a527700795ab624926ca4d6de9ec33ab59f31a6
2018-06-25 20:01:39 +02:00
Aaron Klotz
c710bd6ee2 Bug 1460022: Part 10 - Update crash reporter to work with revised DLL interceptor interface; r=dmajor 2018-06-27 11:51:40 -06:00
shindli
dd50d1646e Backed out 13 changesets (bug 1460022) for bustages in :/build/build/src/mozglue/tests/interceptor/TestDllInterceptor.cpp(113) on a CLOSED TREE
Backed out changeset b798c3689bbf (bug 1460022)
Backed out changeset c3b3b854affd (bug 1460022)
Backed out changeset ecb1b6fd3134 (bug 1460022)
Backed out changeset 91fed649dd5a (bug 1460022)
Backed out changeset be7032cddad2 (bug 1460022)
Backed out changeset d4a036b976e6 (bug 1460022)
Backed out changeset 5f3dfde41e38 (bug 1460022)
Backed out changeset a16486a6f685 (bug 1460022)
Backed out changeset 69eacc5c3ab8 (bug 1460022)
Backed out changeset 34aa7c29b31e (bug 1460022)
Backed out changeset 00b20c0a7637 (bug 1460022)
Backed out changeset b8e8aea4a01f (bug 1460022)
Backed out changeset 15822d9848d8 (bug 1460022)
2018-07-04 03:37:11 +03:00
Nathan Froyd
92953ed036 Bug 1472789 - make the windows crashreporter not dependent on libxul files; r=ted.mielczarek
This makes one less place where we link code compiled for libxul into a
place that doesn't link mozglue, and is cleaner to boot.  We don't need
the BREAKPAD_NO_TERMINATE_THREAD define that breakpad-windows-libxul
defines because we're not including the handler code in the
crashreporter binary.
2018-07-03 20:09:37 -04:00
Aaron Klotz
390fdc316e Bug 1460022: Part 10 - Update crash reporter to work with revised DLL interceptor interface; r=dmajor 2018-06-27 11:51:40 -06:00
shindli
dcc88f33f9 Backed out 13 changesets (bug 1460022) for bustages in builds/worker/workspace/build/src/dom/plugins/ipc/FunctionHook.h💯24 on a CLOSED TREE
Backed out changeset 0734142a3f35 (bug 1460022)
Backed out changeset 18fbfa7ca685 (bug 1460022)
Backed out changeset 2df129bd5692 (bug 1460022)
Backed out changeset 02a7ed68933f (bug 1460022)
Backed out changeset 221137d1c2de (bug 1460022)
Backed out changeset 9cb0b7a15402 (bug 1460022)
Backed out changeset 18f8f85c0307 (bug 1460022)
Backed out changeset 867a1351efff (bug 1460022)
Backed out changeset 933e0b698f8e (bug 1460022)
Backed out changeset 09da660071e1 (bug 1460022)
Backed out changeset 8bb5142d3f53 (bug 1460022)
Backed out changeset 0ddf581bdaac (bug 1460022)
Backed out changeset 1cd5f9b4a6af (bug 1460022)
2018-07-04 02:49:24 +03:00
Aaron Klotz
991d4389a0 Bug 1460022: Part 10 - Update crash reporter to work with revised DLL interceptor interface; r=dmajor
--HG--
extra : rebase_source : 58d231679430ee151f9adf9f6aec59f7e0be3019
2018-06-27 11:51:40 -06:00
Andrew Halberstadt
9435736ade Bug 1471620 - Skip python-tests locally that don't run with python 3 in CI r=davehunt
This will make sure that when running |mach python-test --python 3| locally,
we only run the tests that also run in CI with python 3 (and therefore pass
presumably).

MozReview-Commit-ID: 3OBr9yLSlSq

--HG--
extra : rebase_source : 456340d0ecdddf1078f2b5b4ebb1eddf3813b26a
2018-06-27 11:10:02 -04:00
Gabriele Svelto
b0e9d95a41 Bug 1309172 - Updated breakpad to version 69c2c51dd89965d234eec16e3a9353634831916b; r=ted.mielczarek
This includes both the vanilla sources we haven't forked and the client
sources that we have. Client patches were applied manually up to version
69c2c51dd89965d234eec16e3a9353634831916b. The following changes were not
included as they break merging segments corresponding to libxul.so in the
module list:

8915f7be39448d9257b6da3ad0233944d1d9a92a
17ad0c18b179c135fc5a3d2bba199c3fa4276035
94b6309aecaddfcf11672f6cfad9575d68ad3b40

With these changes applied two entries for libxul.so are generated, the second
one is bogus and prevents symbolication from working correctly.

The build system and some of the tools relying on breakpad were also updated
to work with the new version.

--HG--
extra : source : fe4d49307f8890a0c430c257c96f74a9552eeb31
extra : histedit_source : bc84861445bd93856cd0d0c864fd15ad7d9ccc12%2C1efd65797da46e33481afa61a302098780b0f107
2018-06-19 13:47:13 +02:00
Sylvestre Ledru
b6bef0f0e5 Bug 1466661 - Do not build breakpad md5.cc on Linux r=ted
MozReview-Commit-ID: 5mF8BVX67iW

--HG--
extra : rebase_source : 1d4c1020efe891a820202edb3883120e0e140bcd
2018-06-04 12:08:10 +02:00
Doug Thayer
10ff9c706f Bug 1448040 - Remove HangMonitor/ChromeHangs r=Nika
Fairly straightforward, just a blanket removal. Haven't heard
anything on dev-platform or fx-data-dev regarding this removal,
so I think it's likely safe to remove on Nightly, and we can
revert if anyone makes a fuss.

As part of removing the HangMonitor, I renamed a few things and
reorganized the namespaces to not depend on a HangMonitor
namespace. Hopefully this doesn't produce too much noise in the
diff, it just seemed appropriate to move everything around
rather than keep dangling vestiges of the old system.

MozReview-Commit-ID: 8C8NFnOP5GU

--HG--
extra : rebase_source : dd000a05bfc2da40c586644d33ca4508fa5330f6
2018-04-29 18:21:20 -07:00
tiago
c954de4061 Bug 948882 - Move inline scripts and styles into separate file for toolkit/crashreporter/content/crashes.xhtml (about:crashes). r=freddyb,gijs
MozReview-Commit-ID: AdM1JIOaRIx

--HG--
extra : rebase_source : 04a67463eb5d108fc4f5bb0d6b63b4b105c5ad38
extra : source : 1034f8be097fd6d2f8eda8f7f7d277b92d91ff41
2017-05-17 05:03:49 -03:00
Csoregi Natalia
d48be304d6 Backed out changeset 1034f8be097f (bug 948882) for ESlint failures on crashes.js. CLOSED TREE 2018-06-19 13:24:33 +03:00
tiago
f1e074e11f Bug 948882 - Move inline scripts and styles into separate file for toolkit/crashreporter/content/crashes.xhtml (about:crashes). r=freddyb,gijs
MozReview-Commit-ID: AdM1JIOaRIx

--HG--
extra : rebase_source : 2a2d3faf4de47aa9449bedf5860e1374ddb4b3f8
2017-05-17 05:03:49 -03:00
Haik Aftandilian
db7bc59639 Bug 1351354 - Add missing lock protection to crashReporterAPIData_Hash r=gsvelto
Add missing mutex acquisition calls to protect crashReporterAPIData_Hash and avoid
races with CrashReporter::AnnotateCrashReport() that cause assertion failures.

MozReview-Commit-ID: 6AzSlMMKV3h

--HG--
extra : rebase_source : 5bf6057587c2dcf615140fde66b80a99372b82bd
2018-06-08 16:31:14 -07:00
Ionut Goldan
153b13d4df Bug 1467803 - Turn off static ctors perf tests for ASan builds r=jmaher
MozReview-Commit-ID: HYk1xKWTXv8

--HG--
extra : rebase_source : aaf0d3b300c8bc6fe7e798182cb6ec035061a706
2018-06-11 13:07:24 +03:00
Mike Hommey
d0e5083a98 Bug 1465709 - Hook rust OOM handler on rustc 1.28. r=froydnj
Bug 1458161 added a rust OOM handler based on an unstable API that was
removed in 1.27, replaced with something that didn't allow to get the
failed allocation size.

Latest 1.28 nightly (2018-06-13) has
https://github.com/rust-lang/rust/pull/50880,
https://github.com/rust-lang/rust/pull/51264 and
https://github.com/rust-lang/rust/pull/51241 merged, which allow to
hook the OOM handler and get the failed allocation size again.

Because this is still an unstable API, we explicitly depend on strict
versions of rustc. We also explicitly error out if automation builds
end up using a rustc version that doesn't allow us to get the allocation
size for rust OOM, because we don't want that to happen without knowing.

--HG--
extra : rebase_source : 6c097151046d088cf51f4755dd69bde97bb8bd8b
2018-05-31 16:36:05 +09:00
Kris Maglione
7b7264f453 Bug 1464548: Part 3 - Update callers to use defineLazyGlobalGetters. r=mccr8
MozReview-Commit-ID: 9APGewiDDYB

--HG--
extra : rebase_source : 2931dd0eec0e4206414b698a9700fc20d922eb3a
2018-05-25 17:02:29 -07:00
Tom Ritter
729f85aec8 Bug 1466242 Look for Sprintf.h instead of Assertions.h in the symbolstore test r=glandium
It turns out sometimes (in the LTO+CFI case at least) Assertions.h
will not be present in the opt build, presumably because it was optimized
out.

MozReview-Commit-ID: GB3GIoSdIUK
2018-06-08 09:24:53 +09:00
Gabriele Svelto
36f613b23b Bug 1464773 - Add low-memory event counts to the crash report; r=ted.mielczarek
MozReview-Commit-ID: 9hf31FSigrI

--HG--
extra : rebase_source : ac71384398f1b7d08e04276b39c7027e43c92747
2018-05-28 10:09:20 +02:00
Cosmin Sabou
1bc774a842 Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-06-01 12:44:57 +03:00
Emilio Cobos Álvarez
fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Mike Hommey
1bf8415dea Bug 1465659 - Take PERFHERDER_EXTRA_OPTIONS into account for static initializer count report. r=nalexander
--HG--
extra : rebase_source : af3296eb541b04217a5676b2ac9eacc20220978f
2018-05-31 12:55:38 +09:00
Mike Hommey
0f7eb63436 Bug 1464537 - Fall back to the raw symbol name from DW_AT_MIPS_linkage_name when there is nothing else. r=ted
When DW_AT_MIPS_linkage_name doesn't demangle, breakpad currently throws
the symbol completely, but in some cases, there is no DW_AT_name or
DW_AT_abstract_origin to figure out a name, and the raw value from
DW_AT_MIPS_linkage_name is still better than nothing. Fall back to that
in when there is nothing else.

--HG--
extra : rebase_source : bb6a60ddc6e3d825e4da85f7c8a54258800ad9e2
2018-05-29 08:28:39 +09:00
Mike Hommey
1a11d9733e Bug 1464537 - Add support for DWARF 4 DW_AT_linkage_name. r=ted
--HG--
extra : rebase_source : 1a267e84005235bdb690ce9f03561823e0d0b467
2018-05-29 08:26:55 +09:00
Mike Hommey
8b091c97fd Bug 1464522 - Count static initializers from the crash reporter symbol files. r=froydnj
The crash reporter symbol files are the easiest cross-platform way to
find static initializers. While some types of static initializers (e.g.
__attribute__(constructor) functions) don't appear there in a notable
way, the static initializers we do care the most about for tracking do
(static initializers from C++ globals). As a matter of fact, there is
only a difference of 2 compared to the currently reported count of 125
on a linux64 build, so this is a good enough approximation. And allows
us to easily track the count on Android, OSX and Windows builds, which
we currently don't do.

The tricky part is that the symbol files are in
dist/crashreporter-symbols/$lib/$fileid/$lib.sym, and $fileid is hard to
figure out. There is a `fileid` tool in testing/tools, but it is a
target binary, meaning it's not available on cross builds (OSX,
Android).

So the simplest is just to gather the data while creating the symbol
files, which unfortunately requires to go through some hoops to make it
happen for just the files we care about.

--HG--
extra : rebase_source : 458fed1ffd6f9294eefef61f10ff7a284af0d986
2018-05-29 08:48:47 +09:00