mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-03-19 00:21:40 +00:00
extra/firefox to 57.0-1
This commit is contained in:
parent
ff6e58976d
commit
f3b02e6c05
5 changed files with 10 additions and 448 deletions
|
@ -1,117 +0,0 @@
|
|||
From 2874ecd82e9671f774bdfda41fe0857fcb916c13 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <2874ecd82e9671f774bdfda41fe0857fcb916c13.1506634385.git.jan.steffens@gmail.com>
|
||||
From: Mike Hommey <mh+mozilla@glandium.org>
|
||||
Date: Wed, 16 Aug 2017 13:16:16 +0900
|
||||
Subject: [PATCH] Bug 1384062 - Make SystemResourceMonitor.stop more resilient
|
||||
to errors. r=ahal,gps
|
||||
|
||||
The poll() call in SystemResourceMonitor.stop might fail even though
|
||||
there is something to read from the pipe, in some corner cases, and
|
||||
python won't let us know about it. In that case, an exception is thrown,
|
||||
leaving the SystemResourceMonitor (and its callers) in a weird state. In
|
||||
practice, this leads BuildMonitor.__exit__ to recall stop, which then
|
||||
fails.
|
||||
|
||||
So when poll() throws an exception, we pretend there's still something
|
||||
to read, and we try to read anyways. If there is something to read,
|
||||
recv() will return it, otherwise, it will throw an exception of its own,
|
||||
which we catch, pretending we're done.
|
||||
|
||||
Furthermore, when there is nothing to read from the pipe, poll() simply
|
||||
returns False, and our loop never sets `done` to True, and we then hit
|
||||
an assert, which doesn't have its place here, so we remove it.
|
||||
|
||||
Finally, the other end of the pipe might have died at any time, making
|
||||
sending over the pipe fail, so we also protect against that.
|
||||
|
||||
With all these changes, it feels like the reason to backout bug 1239939
|
||||
in bug 1272782 should have been dealt with, and we can drop the timeout
|
||||
again.
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : ac72dd5b2602cf3ffddfb429f95e02380f939893
|
||||
---
|
||||
.../mozsystemmonitor/resourcemonitor.py | 38 +++++++++++++++-------
|
||||
1 file changed, 26 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/testing/mozbase/mozsystemmonitor/mozsystemmonitor/resourcemonitor.py b/testing/mozbase/mozsystemmonitor/mozsystemmonitor/resourcemonitor.py
|
||||
index 8f2ac95cbe505540..38f9bc986ac2a120 100644
|
||||
--- a/testing/mozbase/mozsystemmonitor/mozsystemmonitor/resourcemonitor.py
|
||||
+++ b/testing/mozbase/mozsystemmonitor/mozsystemmonitor/resourcemonitor.py
|
||||
@@ -289,47 +289,61 @@ class SystemResourceMonitor(object):
|
||||
assert self._running
|
||||
assert not self._stopped
|
||||
|
||||
- self._pipe.send(('terminate',))
|
||||
+ try:
|
||||
+ self._pipe.send(('terminate',))
|
||||
+ except Exception:
|
||||
+ pass
|
||||
self._running = False
|
||||
self._stopped = True
|
||||
|
||||
self.measurements = []
|
||||
|
||||
- done = False
|
||||
-
|
||||
# The child process will send each data sample over the pipe
|
||||
# as a separate data structure. When it has finished sending
|
||||
# samples, it sends a special "done" message to indicate it
|
||||
# is finished.
|
||||
- while self._pipe.poll(1.0):
|
||||
- start_time, end_time, io_diff, cpu_diff, cpu_percent, virt_mem, \
|
||||
- swap_mem = self._pipe.recv()
|
||||
+
|
||||
+ # multiprocessing.Pipe is not actually a pipe on at least Linux. that
|
||||
+ # has an effect on the expected outcome of reading from it when the
|
||||
+ # other end of the pipe dies, leading to possibly hanging on revc()
|
||||
+ # below. So we must poll().
|
||||
+ def poll():
|
||||
+ try:
|
||||
+ return self._pipe.poll(0.1)
|
||||
+ except Exception:
|
||||
+ # Poll might throw an exception even though there's still
|
||||
+ # data to read. That happens when the underlying system call
|
||||
+ # returns both POLLERR and POLLIN, but python doesn't tell us
|
||||
+ # about it. So assume there is something to read, and we'll
|
||||
+ # get an exception when trying to read the data.
|
||||
+ return True
|
||||
+ while poll():
|
||||
+ try:
|
||||
+ start_time, end_time, io_diff, cpu_diff, cpu_percent, virt_mem, \
|
||||
+ swap_mem = self._pipe.recv()
|
||||
+ except Exception:
|
||||
+ # Let's assume we're done here
|
||||
+ break
|
||||
|
||||
# There should be nothing after the "done" message so
|
||||
# terminate.
|
||||
if start_time == 'done':
|
||||
- done = True
|
||||
break
|
||||
|
||||
io = self._io_type(*io_diff)
|
||||
virt = self._virt_type(*virt_mem)
|
||||
swap = self._swap_type(*swap_mem)
|
||||
cpu_times = [self._cpu_times_type(*v) for v in cpu_diff]
|
||||
|
||||
self.measurements.append(SystemResourceUsage(start_time, end_time,
|
||||
cpu_times, cpu_percent, io, virt, swap))
|
||||
|
||||
# We establish a timeout so we don't hang forever if the child
|
||||
# process has crashed.
|
||||
self._process.join(10)
|
||||
if self._process.is_alive():
|
||||
self._process.terminate()
|
||||
self._process.join(10)
|
||||
- else:
|
||||
- # We should have received a "done" message from the
|
||||
- # child indicating it shut down properly. This only
|
||||
- # happens if the child shuts down cleanly.
|
||||
- assert done
|
||||
|
||||
if len(self.measurements):
|
||||
self.start_time = self.measurements[0].start
|
||||
--
|
||||
2.14.2
|
||||
|
|
@ -11,7 +11,7 @@ buildarch=12
|
|||
highmem=1
|
||||
|
||||
pkgname=firefox
|
||||
pkgver=56.0.2
|
||||
pkgver=57.0
|
||||
pkgrel=1
|
||||
pkgdesc="Standalone web browser from mozilla.org"
|
||||
arch=(i686 x86_64)
|
||||
|
@ -27,20 +27,16 @@ optdepends=('networkmanager: Location detection via available WiFi networks'
|
|||
'speech-dispatcher: Text-to-Speech')
|
||||
options=(!emptydirs !makeflags !strip)
|
||||
source=(https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz
|
||||
$pkgname.desktop firefox-symbolic.svg
|
||||
wifi-disentangle.patch wifi-fix-interface.patch
|
||||
0001-Bug-1384062-Make-SystemResourceMonitor.stop-more-res.patch
|
||||
no-plt.diff plugin-crash.diff glibc-2.26-fix.diff
|
||||
$pkgname.desktop firefox-symbolic.svg firefox-install-dir.patch)
|
||||
sha256sums=('6f7d284c31383a9860d7b52f05f866526d5a7c31e3ef2959d79122ba074f5ca1'
|
||||
firefox-install-dir.patch no-plt.diff)
|
||||
sha256sums=('603af00155be87f2c9c58047dd0072971f1cdab1f632695aae6ad072efefbb8f'
|
||||
'677e1bde4c6b3cff114345c211805c7c43085038ca0505718a11e96432e9811a'
|
||||
'a2474b32b9b2d7e0fb53a4c89715507ad1c194bef77713d798fa39d507def9e9'
|
||||
'f068b84ad31556095145d8fefc012dd3d1458948533ed3fff6cbc7250b6e73ed'
|
||||
'e98a3453d803cc7ddcb81a7dc83f883230dd8591bdf936fc5a868428979ed1f1'
|
||||
'aba767995ffb1a55345e30aaba667f43d469e23bd9b1b68263cf71b8118acc96'
|
||||
'ea8e1b871c0f1dd29cdea1b1a2e7f47bf4713e2ae7b947ec832dba7dfcc67daa'
|
||||
'a7e5d2430bb562f6367deb07417dad4368317e8e8be5d1cfa842c3356de3cfc0'
|
||||
'cd7ff441da66a287f8712e60cdc9e216c30355d521051e2eaae28a66d81915e8'
|
||||
'ada313750e6fb14558b37c764409a17c1672a351a46c73b350aa1fe4ea9220ef'
|
||||
'a2474b32b9b2d7e0fb53a4c89715507ad1c194bef77713d798fa39d507def9e9'
|
||||
'd86e41d87363656ee62e12543e2f5181aadcff448e406ef3218e91865ae775cd')
|
||||
'd86e41d87363656ee62e12543e2f5181aadcff448e406ef3218e91865ae775cd'
|
||||
'ea8e1b871c0f1dd29cdea1b1a2e7f47bf4713e2ae7b947ec832dba7dfcc67daa')
|
||||
|
||||
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
|
||||
# Note: These are for Arch Linux use ONLY. For your own distribution, please
|
||||
|
@ -66,19 +62,9 @@ prepare() {
|
|||
patch -Np1 -i ../wifi-disentangle.patch
|
||||
patch -Np1 -i ../wifi-fix-interface.patch
|
||||
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1384062
|
||||
patch -Np1 -i ../0001-Bug-1384062-Make-SystemResourceMonitor.stop-more-res.patch
|
||||
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1382942
|
||||
patch -Np1 -i ../no-plt.diff
|
||||
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1400175
|
||||
patch -Np1 -i ../plugin-crash.diff
|
||||
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1385667
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1394149
|
||||
patch -Np1 -i ../glibc-2.26-fix.diff
|
||||
|
||||
echo -n "$_google_api_key" >google-api-key
|
||||
echo -n "$_mozilla_api_key" >mozilla-api-key
|
||||
|
||||
|
@ -89,6 +75,7 @@ ac_add_options --prefix=/usr
|
|||
ac_add_options --enable-release
|
||||
#ac_add_options --enable-gold
|
||||
#ac_add_options --enable-pie
|
||||
ac_add_options --enable-rust-simd
|
||||
|
||||
# Branding
|
||||
ac_add_options --enable-official-branding
|
||||
|
@ -119,7 +106,6 @@ ac_add_options --enable-jack
|
|||
ac_add_options --enable-startup-notification
|
||||
ac_add_options --disable-crashreporter
|
||||
ac_add_options --disable-updater
|
||||
ac_add_options --disable-stylo
|
||||
END
|
||||
|
||||
if [[ $CARCH == "armv7h" ]]; then
|
||||
|
|
|
@ -89,6 +89,7 @@ Terminal=false
|
|||
Type=Application
|
||||
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
|
||||
StartupNotify=true
|
||||
StartupWMClass=Firefox
|
||||
Categories=Network;WebBrowser;
|
||||
Keywords=web;browser;internet;
|
||||
Actions=new-window;new-private-window;
|
||||
|
|
|
@ -1,258 +0,0 @@
|
|||
From 6a0b7c8ecf0734ba1bcdccf8e0ee97e721fd5420 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <6a0b7c8ecf0734ba1bcdccf8e0ee97e721fd5420.1505113337.git.jan.steffens@gmail.com>
|
||||
From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= <emilio@crisal.io>
|
||||
Date: Sat, 19 Aug 2017 20:14:25 +0200
|
||||
Subject: [PATCH] Fix use of struct ucontext (squash 2 commits)
|
||||
|
||||
Needed for building with glibc 2.26.
|
||||
|
||||
Bug 1385667: Use ucontext_t consistently in breakpad-client. r=ted
|
||||
MozReview-Commit-ID: AJhzJdNXP0f
|
||||
|
||||
Bug 1394149: Fix remaining uses of ucontext in breakpad-client. r=ted
|
||||
MozReview-Commit-ID: 5tP7fXsI7dQ
|
||||
---
|
||||
.../linux/dump_writer_common/ucontext_reader.cc | 30 +++++++++++-----------
|
||||
.../linux/dump_writer_common/ucontext_reader.h | 10 ++++----
|
||||
.../linux/handler/exception_handler.cc | 10 ++++----
|
||||
.../linux/handler/exception_handler.h | 2 +-
|
||||
.../linux/microdump_writer/microdump_writer.cc | 2 +-
|
||||
.../linux/minidump_writer/minidump_writer.cc | 2 +-
|
||||
6 files changed, 28 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.cc b/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.cc
|
||||
index 999960912e459e1b..303c0ebd32b663c4 100644
|
||||
--- a/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.cc
|
||||
+++ b/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.cc
|
||||
@@ -40,15 +40,15 @@ namespace google_breakpad {
|
||||
|
||||
#if defined(__i386__)
|
||||
|
||||
-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.gregs[REG_ESP];
|
||||
}
|
||||
|
||||
-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.gregs[REG_EIP];
|
||||
}
|
||||
|
||||
-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||
+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
|
||||
const struct _libc_fpstate* fp) {
|
||||
const greg_t* regs = uc->uc_mcontext.gregs;
|
||||
|
||||
@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||
|
||||
#elif defined(__x86_64)
|
||||
|
||||
-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.gregs[REG_RSP];
|
||||
}
|
||||
|
||||
-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.gregs[REG_RIP];
|
||||
}
|
||||
|
||||
-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||
+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
|
||||
const struct _libc_fpstate* fpregs) {
|
||||
const greg_t* regs = uc->uc_mcontext.gregs;
|
||||
|
||||
@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||
|
||||
#elif defined(__ARM_EABI__)
|
||||
|
||||
-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.arm_sp;
|
||||
}
|
||||
|
||||
-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.arm_pc;
|
||||
}
|
||||
|
||||
-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
|
||||
+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
|
||||
out->context_flags = MD_CONTEXT_ARM_FULL;
|
||||
|
||||
out->iregs[0] = uc->uc_mcontext.arm_r0;
|
||||
@@ -184,41 +184,41 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
|
||||
|
||||
#elif defined(__aarch64__)
|
||||
|
||||
-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.sp;
|
||||
}
|
||||
|
||||
-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.pc;
|
||||
}
|
||||
|
||||
-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||
+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
|
||||
const struct fpsimd_context* fpregs) {
|
||||
out->context_flags = MD_CONTEXT_ARM64_FULL;
|
||||
|
||||
out->cpsr = static_cast<uint32_t>(uc->uc_mcontext.pstate);
|
||||
for (int i = 0; i < MD_CONTEXT_ARM64_REG_SP; ++i)
|
||||
out->iregs[i] = uc->uc_mcontext.regs[i];
|
||||
out->iregs[MD_CONTEXT_ARM64_REG_SP] = uc->uc_mcontext.sp;
|
||||
out->iregs[MD_CONTEXT_ARM64_REG_PC] = uc->uc_mcontext.pc;
|
||||
|
||||
out->float_save.fpsr = fpregs->fpsr;
|
||||
out->float_save.fpcr = fpregs->fpcr;
|
||||
my_memcpy(&out->float_save.regs, &fpregs->vregs,
|
||||
MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT * 16);
|
||||
}
|
||||
|
||||
#elif defined(__mips__)
|
||||
|
||||
-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP];
|
||||
}
|
||||
|
||||
-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
|
||||
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
|
||||
return uc->uc_mcontext.pc;
|
||||
}
|
||||
|
||||
-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
|
||||
+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
|
||||
#if _MIPS_SIM == _ABI64
|
||||
out->context_flags = MD_CONTEXT_MIPS64_FULL;
|
||||
#elif _MIPS_SIM == _ABIO32
|
||||
diff --git a/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.h b/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.h
|
||||
index c533e28ba7441e83..039752a2dfb6e589 100644
|
||||
--- a/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.h
|
||||
+++ b/toolkit/crashreporter/breakpad-client/linux/dump_writer_common/ucontext_reader.h
|
||||
@@ -41,21 +41,21 @@ namespace google_breakpad {
|
||||
|
||||
// Wraps platform-dependent implementations of accessors to ucontext structs.
|
||||
struct UContextReader {
|
||||
- static uintptr_t GetStackPointer(const struct ucontext* uc);
|
||||
+ static uintptr_t GetStackPointer(const ucontext_t* uc);
|
||||
|
||||
- static uintptr_t GetInstructionPointer(const struct ucontext* uc);
|
||||
+ static uintptr_t GetInstructionPointer(const ucontext_t* uc);
|
||||
|
||||
// Juggle a arch-specific ucontext into a minidump format
|
||||
// out: the minidump structure
|
||||
// info: the collection of register structures.
|
||||
#if defined(__i386__) || defined(__x86_64)
|
||||
- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||
+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
|
||||
const struct _libc_fpstate* fp);
|
||||
#elif defined(__aarch64__)
|
||||
- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
|
||||
+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
|
||||
const struct fpsimd_context* fpregs);
|
||||
#else
|
||||
- static void FillCPUContext(RawContextCPU *out, const ucontext *uc);
|
||||
+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc);
|
||||
#endif
|
||||
};
|
||||
|
||||
diff --git a/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc b/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc
|
||||
index 71a51a763938e39d..12df9bc96ec45fea 100644
|
||||
--- a/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc
|
||||
+++ b/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc
|
||||
@@ -439,44 +439,44 @@ bool ExceptionHandler::HandleSignal(int sig, siginfo_t* info, void* uc) {
|
||||
// Fill in all the holes in the struct to make Valgrind happy.
|
||||
memset(&g_crash_context_, 0, sizeof(g_crash_context_));
|
||||
memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t));
|
||||
- memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext));
|
||||
+ memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t));
|
||||
#if defined(__aarch64__)
|
||||
- struct ucontext* uc_ptr = (struct ucontext*)uc;
|
||||
+ ucontext_t* uc_ptr = (ucontext_t*)uc;
|
||||
struct fpsimd_context* fp_ptr =
|
||||
(struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
|
||||
if (fp_ptr->head.magic == FPSIMD_MAGIC) {
|
||||
memcpy(&g_crash_context_.float_state, fp_ptr,
|
||||
sizeof(g_crash_context_.float_state));
|
||||
}
|
||||
#elif !defined(__ARM_EABI__) && !defined(__mips__)
|
||||
// FP state is not part of user ABI on ARM Linux.
|
||||
- // In case of MIPS Linux FP state is already part of struct ucontext
|
||||
+ // In case of MIPS Linux FP state is already part of ucontext_t
|
||||
// and 'float_state' is not a member of CrashContext.
|
||||
- struct ucontext* uc_ptr = (struct ucontext*)uc;
|
||||
+ ucontext_t* uc_ptr = (ucontext_t*)uc;
|
||||
if (uc_ptr->uc_mcontext.fpregs) {
|
||||
memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs,
|
||||
sizeof(g_crash_context_.float_state));
|
||||
}
|
||||
#endif
|
||||
g_crash_context_.tid = syscall(__NR_gettid);
|
||||
if (crash_handler_ != NULL) {
|
||||
if (crash_handler_(&g_crash_context_, sizeof(g_crash_context_),
|
||||
callback_context_)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return GenerateDump(&g_crash_context_);
|
||||
}
|
||||
|
||||
// This is a public interface to HandleSignal that allows the client to
|
||||
// generate a crash dump. This function may run in a compromised context.
|
||||
bool ExceptionHandler::SimulateSignalDelivery(int sig) {
|
||||
siginfo_t siginfo = {};
|
||||
// Mimic a trusted signal to allow tracing the process (see
|
||||
// ExceptionHandler::HandleSignal().
|
||||
siginfo.si_code = SI_USER;
|
||||
siginfo.si_pid = getpid();
|
||||
- struct ucontext context;
|
||||
+ ucontext_t context;
|
||||
getcontext(&context);
|
||||
return HandleSignal(sig, &siginfo, &context);
|
||||
}
|
||||
diff --git a/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.h b/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.h
|
||||
index 711586fec7ddae59..be1880170e2826b0 100644
|
||||
--- a/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.h
|
||||
+++ b/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.h
|
||||
@@ -191,7 +191,7 @@ class ExceptionHandler {
|
||||
struct CrashContext {
|
||||
siginfo_t siginfo;
|
||||
pid_t tid; // the crashing thread.
|
||||
- struct ucontext context;
|
||||
+ ucontext_t context;
|
||||
#if !defined(__ARM_EABI__) && !defined(__mips__)
|
||||
// #ifdef this out because FP state is not part of user ABI for Linux ARM.
|
||||
// In case of MIPS Linux FP state is already part of struct
|
||||
diff --git a/toolkit/crashreporter/breakpad-client/linux/microdump_writer/microdump_writer.cc b/toolkit/crashreporter/breakpad-client/linux/microdump_writer/microdump_writer.cc
|
||||
index ff20bf36584c876b..a0b90e08fc5f0cff 100644
|
||||
--- a/toolkit/crashreporter/breakpad-client/linux/microdump_writer/microdump_writer.cc
|
||||
+++ b/toolkit/crashreporter/breakpad-client/linux/microdump_writer/microdump_writer.cc
|
||||
@@ -571,7 +571,7 @@ class MicrodumpWriter {
|
||||
|
||||
void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
|
||||
|
||||
- const struct ucontext* const ucontext_;
|
||||
+ const ucontext_t* const ucontext_;
|
||||
#if !defined(__ARM_EABI__) && !defined(__mips__)
|
||||
const google_breakpad::fpstate_t* const float_state_;
|
||||
#endif
|
||||
diff --git a/toolkit/crashreporter/breakpad-client/linux/minidump_writer/minidump_writer.cc b/toolkit/crashreporter/breakpad-client/linux/minidump_writer/minidump_writer.cc
|
||||
index 0650bb95c179464a..6b5304bcd605ca3a 100644
|
||||
--- a/toolkit/crashreporter/breakpad-client/linux/minidump_writer/minidump_writer.cc
|
||||
+++ b/toolkit/crashreporter/breakpad-client/linux/minidump_writer/minidump_writer.cc
|
||||
@@ -1247,7 +1247,7 @@ class MinidumpWriter {
|
||||
const int fd_; // File descriptor where the minidum should be written.
|
||||
const char* path_; // Path to the file where the minidum should be written.
|
||||
|
||||
- const struct ucontext* const ucontext_; // also from the signal handler
|
||||
+ const ucontext_t* const ucontext_; // also from the signal handler
|
||||
#if !defined(__ARM_EABI__) && !defined(__mips__)
|
||||
const google_breakpad::fpstate_t* const float_state_; // ditto
|
||||
#endif
|
||||
--
|
||||
2.14.1
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
|
||||
# HG changeset patch
|
||||
# User Jan Steffens <jan.steffens@gmail.com>
|
||||
# Date 1505475854 -7200
|
||||
# Node ID 3cd2263687293a229277037090add3bea2531057
|
||||
# Parent 70f5f23a429f3d621e44307c191fa84c77fb2f61
|
||||
Bug 1400175 - Stub gdk_screen_get_monitor_workarea in mozgtk2; r?karlt
|
||||
|
||||
MozReview-Commit-ID: 72K6U17JuoK
|
||||
|
||||
diff --git a/widget/gtk/mozgtk/mozgtk.c b/widget/gtk/mozgtk/mozgtk.c
|
||||
--- a/widget/gtk/mozgtk/mozgtk.c
|
||||
+++ b/widget/gtk/mozgtk/mozgtk.c
|
||||
@@ -56,17 +56,16 @@
|
||||
STUB(gdk_screen_get_default)
|
||||
STUB(gdk_screen_get_display)
|
||||
STUB(gdk_screen_get_font_options)
|
||||
STUB(gdk_screen_get_height)
|
||||
STUB(gdk_screen_get_height_mm)
|
||||
STUB(gdk_screen_get_n_monitors)
|
||||
STUB(gdk_screen_get_monitor_at_window)
|
||||
STUB(gdk_screen_get_monitor_geometry)
|
||||
-STUB(gdk_screen_get_monitor_workarea)
|
||||
STUB(gdk_screen_get_monitor_height_mm)
|
||||
STUB(gdk_screen_get_number)
|
||||
STUB(gdk_screen_get_resolution)
|
||||
STUB(gdk_screen_get_rgba_visual)
|
||||
STUB(gdk_screen_get_root_window)
|
||||
STUB(gdk_screen_get_system_visual)
|
||||
STUB(gdk_screen_get_width)
|
||||
STUB(gdk_screen_height)
|
||||
@@ -514,16 +513,17 @@
|
||||
#ifdef GTK3_SYMBOLS
|
||||
STUB(gdk_device_get_source)
|
||||
STUB(gdk_device_manager_get_client_pointer)
|
||||
STUB(gdk_disable_multidevice)
|
||||
STUB(gdk_device_manager_list_devices)
|
||||
STUB(gdk_display_get_device_manager)
|
||||
STUB(gdk_error_trap_pop_ignored)
|
||||
STUB(gdk_event_get_source_device)
|
||||
+STUB(gdk_screen_get_monitor_workarea)
|
||||
STUB(gdk_window_get_type)
|
||||
STUB(gdk_window_get_window_type)
|
||||
STUB(gdk_x11_window_get_xid)
|
||||
STUB(gdk_x11_display_get_type)
|
||||
STUB(gdk_wayland_display_get_type)
|
||||
STUB(gtk_box_new)
|
||||
STUB(gtk_cairo_should_draw_window)
|
||||
STUB(gtk_cairo_transform_to_window)
|
||||
|
Loading…
Reference in a new issue