Commit Graph

1626 Commits

Author SHA1 Message Date
Randall Barker
b18e8c5e34 Bug 1493227 - Add environment variable to prevent crash reporter from handling SIGILL r=gsvelto
Add env var MOZ_DISABLE_EXCEPTION_HANDLER_SIGILL so that the crash
reporter will not register a handler for SIGILL when the env var is set.
This is needed to work around a conflict with the Oculus Mobile runtime
that uses the SIGILL signal to trap the back button on the controller.

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

--HG--
extra : moz-landing-system : lando
2018-09-27 20:08:43 +00:00
Gabriele Svelto
1f10595529 Bug 1490240 - Fix the remaining compiler warnings in the crash reporter r=ted,glandium
Differential Revision: https://phabricator.services.mozilla.com/D5741

--HG--
extra : moz-landing-system : lando
2018-09-26 11:54:34 +00:00
Brindusan Cristian
f997140c00 Backed out changeset 628ebca30ce3 (bug 1490240) for bustages on [Unified_cpp_crashreporter0.obj]. CLOSED TREE 2018-09-24 17:10:58 +03:00
Gabriele Svelto
a47a091a6d Bug 1490240 - Fix the remaining compiler warnings in the crash reporter r=ted,glandium
Differential Revision: https://phabricator.services.mozilla.com/D5741

--HG--
extra : moz-landing-system : lando
2018-09-24 13:21:38 +00:00
arthur.iakab
12be75264f Backed out changeset 5a566d2d6722 (bug 1490240)for build bustages on Unified_cpp_crashreporter0.obj CLOSED TREE 2018-09-21 15:25:15 +03:00
Gabriele Svelto
37759d8ccd Bug 1490240 - Fix the remaining compiler warnings in the crash reporter r=ted,glandium
Differential Revision: https://phabricator.services.mozilla.com/D5741

--HG--
extra : moz-landing-system : lando
2018-09-21 11:38:04 +00:00
Carl Corcoran
90c6d0ed17 Bug 1488181: Preload psapi.dll to prevent hangs in the exception handler;r=ted
Differential Revision: https://phabricator.services.mozilla.com/D6361

--HG--
extra : moz-landing-system : lando
2018-09-20 09:53:26 +00:00
Kris Maglione
1c20e8cbbb Bug 1486147: Part 2 - Update JS string enumerator callers to use JS iteration. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D4270

--HG--
extra : rebase_source : 2adadcc8e51a7bce1da02f4bee1333b77bfa9944
extra : histedit_source : 9df920fd186f8c96a5d8b9cbff53ea9529f26ee0
2018-08-24 16:22:40 -07:00
Gabriele Svelto
a1f6255102 Bug 1463048 - Remove asynchronous minidump generation r=ted
This reverts the changes in bug 1360308, bug 1390143 and bug 1469603. Minidump
generation will now only happen on the main process' main thread which might
lead to hangs but is known to be fairly robust. Asynchronous generation proved
too brittle and enormously increased the complexity of this already
hard-to-read code.

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

--HG--
extra : moz-landing-system : lando
2018-09-17 20:51:45 +00:00
Carl Corcoran
191360affd Bug 1372826: Unloaded module information in minidumps no longer restricted to Nightly;r=ted
Differential Revision: https://phabricator.services.mozilla.com/D5145

--HG--
extra : moz-landing-system : lando
2018-09-07 16:45:49 +00:00
James Willcox
91381ffcaa Bug 1483329 - Add crash handling API to GeckoRuntime r=jchen,esawin 2018-09-11 12:04:08 -05:00
L. David Baron
2d5b9bbf5e Bug 1489297 patch 3 - Report MemoryErrorCorrection from WMI. r=aklotz
Differential Revision: https://phabricator.services.mozilla.com/D5201

--HG--
extra : moz-landing-system : lando
2018-09-10 21:56:53 +00:00
Mike Hommey
cd06f032af Bug 1079662 - Always enable PIE. r=froydnj
Last attempt, a few years ago, blatantly failed because nautilus (the
GNOME file manager) can't start PIE executables, which look like shared
libraries, and that it thus considers not being executables.

Downstreams don't actually have the problem, because users won't be
launching Firefox from a file manager, but for mozilla.org builds, it is
a problem because users would download, then extract, and then likely
try to run the Firefox executable from a file manager.

So for mozilla.org builds, we still need to find a way around the
nautilus problem.

A .desktop file could be a solution, but .desktop files have not
actually been designed for this use case, which leads to:
- having to use an awful one-liner shell wrapper to derive the path
  to the executable from that of the .desktop file,
- not even being able to associate an icon,
- the .desktop file not being copiable to a location where .desktop
  files would normally go, because it would then fail to find the
  executable.

Another possibility is to go back to using a shell wrapper, but that's
not entirely appealing.

What we chose here is similar, where we have a small `firefox` wrapper
that launches the real `firefox-bin` (which is still leftover from those
old times where we had a shell wrapper, for reasons).

The small `firefox` wrapper is a minimalist C executable that just
finds the path to the `firefox-bin` executable and executes it with the
same args it was called with. The wrapper is only enabled when the
MOZ_NO_PIE_COMPAT environment variable is set, which we only take into
account on Linux. The variable is only really meant to be used for
mozilla.org builds, for the nautilus problem. Downstreams will just pick
the default, which is changed to build PIE.

On other platforms, PIE was already enabled by default, so we just
remove the --enable-pie configure flag.

Differential Revision: https://phabricator.services.mozilla.com/D5109
2018-09-08 07:41:21 +09:00
Brian Hackett
10681a9714 Bug 1488523 Part 2 - Don't drop delayed crash annotations at startup, r=gsvelto.
--HG--
extra : rebase_source : 77d16117bb2ea99a303d06bff864758ffd235869
2018-09-05 09:23:03 -10:00
Brian Hackett
4c9dd89d32 Bug 1488523 Part 1 - Add RecordReplay crash annotation, r=gsvelto.
--HG--
extra : rebase_source : 479fd85cca77f01829efed8db0eda6ad9d6d61a6
2018-09-05 09:22:45 -10:00
Zibi Braniecki
4bf900d584 Bug 1455649 - DocumentL10n, part 4 - Switch Preferences to use DocumentL10n API. r=smaug
--HG--
extra : rebase_source : 969d8ac56c3a033b707fab4508423407386abd35
2018-09-06 18:30:37 -07:00
Mike Hommey
938c22ca8a Bug 1489021 - Move Throbber-small.gif to toolkit/crashreporter/client. r=nalexander
I was there, looking at a Firefox directory in my file manager while
working on bug 1079662, when I noticed the `Throbber-small.gif`
appearing first in the list, and wondering where it came from. And I
found it's there for the crashreporter UI. Fair enough.

But back when it was added in bug 404855, the file was also used for
Firefox, which is why it's taken from the Firefox theme. Interestingly,
back then, the file was duplicated in multiple themes, but was taken
from the windows theme rather than the gnome theme. Figures.

Anyways, later down the road, in bug 421595, Firefox replaced the gif
throbber with an APNG version. Then even later, bug 418003 removed the
unused gif throbber files, leaving the Windows one alone because it's
used by the crashreporter client moz.build (Makefile, back then), but
still removed the reference from the jar.mn.

9 years later, here we are, still using a file from the Windows theme,
that is not actually part of the Windows theme, for the Linux
crashreporter.


--HG--
rename : toolkit/themes/windows/global/throbber/Throbber-small.gif => toolkit/crashreporter/client/Throbber-small.gif
2018-09-07 07:03:07 +09:00
Michael Kelly
815045be23 Bug 1476062: Update about:crashes UI. r=mconley,flod
- Make crash submission explicit by triggering it via a button instead of by
  clicking on the crash ID link.
- Replace the single "Remove All Reports" button with two "Clear All" buttons,
  one for each category of crashes.
- Add a "View" button instead of making crash IDs links to make it explicit that
  you are viewing crash data and not submitting it.

Remove implicit dependence of the order of crash IDs in about:crashes test.

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

--HG--
extra : moz-landing-system : lando
2018-09-05 22:46:47 +00:00
Andreea Pavel
325a1ad6ad Backed out changeset af8353a3ecbc (bug 1463048) for causing Bug 1488827 a=backout 2018-09-05 21:13:13 +03:00
Gabriele Svelto
b356998aeb Bug 1463048 - Invoke the minidump generation callback asynchronsouly r=ted
Differential Revision: https://phabricator.services.mozilla.com/D3837

--HG--
extra : moz-landing-system : lando
2018-09-04 15:04:35 +00:00
Mark Banner
691543ee89 Bug 1486739 - Add missing dangling commas in browser/, services/, taskcluster/ and toolkit/. r=mossop
Automatic changes by ESLint, except for manual corrections for .xml files.

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

--HG--
extra : moz-landing-system : lando
2018-08-31 05:59:17 +00:00
Csoregi Natalia
25ef872db9 Backed out changeset e4b8f03094c3 (bug 1476062) for failures on browser_aboutCrashesResubmit.js. CLOSED TREE 2018-08-30 23:01:22 +03:00
Michael Kelly
dc84fa05b8 about:crashes: updated user interface (bug 1476062); r=mconley,flod
The about:crashes page's user interface is being updated (bug 1463515).

- changed crash submission to be done through button press instead of link clicking
    - this allows users to know that they are submitting the crash
- updated visuals to match new mock-up
    - mock-up image: https://bug1463515.bmoattachments.org/attachment.cgi?id=8990380
- added new Fluent strings that are needed for the new user interface
- modernized the surrounding code

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

--HG--
extra : moz-landing-system : lando
2018-08-30 19:04:03 +00:00
Mike Hommey
f70e5135f9 Bug 1485556 - Remove .gnu_debuglink sections before adding ours. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D4524
2018-08-30 07:30:04 +09:00
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