gnu: icecat: Update to 38.3.0-gnu1.
* gnu/packages/patches/icecat-CVE-2015-4473-partial.patch, gnu/packages/patches/icecat-CVE-2015-4482.patch, gnu/packages/patches/icecat-CVE-2015-4488.patch, gnu/packages/patches/icecat-CVE-2015-4489.patch, gnu/packages/patches/icecat-CVE-2015-4491.patch, gnu/packages/patches/icecat-CVE-2015-4492.patch, gnu/packages/patches/icecat-CVE-2015-4495.patch, gnu/packages/patches/icecat-enable-acceleration-and-webgl.patch, gnu/packages/patches/icecat-libvpx-1.4.patch: Delete files. * gnu/packages/patches/icecat-avoid-bundled-includes.patch: New file. * gnu-system.am (dist_patch_DATA): Add new patch. Remove the deleted ones. * gnu/packages/gnuzilla.scm (icecat): Update to 38.3.0-gnu1. [source]: Add new patch. Remove the deleted ones. [inputs]: Add libxcomposite. [arguments]: Add 'ensure-no-mtimes-pre-1980' phase. Adapt 'remove-h264parse-from-blacklist' and 'arrange-to-link-libxul-with-libraries-it-might-dlopen' phases to the new version.
This commit is contained in:
parent
837294b7a4
commit
9f7ae77fe2
12 changed files with 62 additions and 459 deletions
|
@ -500,16 +500,8 @@ dist_patch_DATA = \
|
||||||
gnu/packages/patches/hwloc-gather-topology-lstopo.patch \
|
gnu/packages/patches/hwloc-gather-topology-lstopo.patch \
|
||||||
gnu/packages/patches/hydra-automake-1.15.patch \
|
gnu/packages/patches/hydra-automake-1.15.patch \
|
||||||
gnu/packages/patches/hydra-disable-darcs-test.patch \
|
gnu/packages/patches/hydra-disable-darcs-test.patch \
|
||||||
gnu/packages/patches/icecat-CVE-2015-4473-partial.patch \
|
gnu/packages/patches/icecat-avoid-bundled-includes.patch \
|
||||||
gnu/packages/patches/icecat-CVE-2015-4482.patch \
|
|
||||||
gnu/packages/patches/icecat-CVE-2015-4488.patch \
|
|
||||||
gnu/packages/patches/icecat-CVE-2015-4489.patch \
|
|
||||||
gnu/packages/patches/icecat-CVE-2015-4491.patch \
|
|
||||||
gnu/packages/patches/icecat-CVE-2015-4492.patch \
|
|
||||||
gnu/packages/patches/icecat-CVE-2015-4495.patch \
|
|
||||||
gnu/packages/patches/icecat-enable-acceleration-and-webgl.patch \
|
|
||||||
gnu/packages/patches/icecat-freetype-2.6.patch \
|
gnu/packages/patches/icecat-freetype-2.6.patch \
|
||||||
gnu/packages/patches/icecat-libvpx-1.4.patch \
|
|
||||||
gnu/packages/patches/icu4c-CVE-2014-6585.patch \
|
gnu/packages/patches/icu4c-CVE-2014-6585.patch \
|
||||||
gnu/packages/patches/icu4c-CVE-2015-1270.patch \
|
gnu/packages/patches/icu4c-CVE-2015-1270.patch \
|
||||||
gnu/packages/patches/icu4c-CVE-2015-4760.patch \
|
gnu/packages/patches/icu4c-CVE-2015-4760.patch \
|
||||||
|
|
|
@ -228,7 +228,7 @@ standards.")
|
||||||
(define-public icecat
|
(define-public icecat
|
||||||
(package
|
(package
|
||||||
(name "icecat")
|
(name "icecat")
|
||||||
(version "31.8.0-gnu1")
|
(version "38.3.0-gnu1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -237,17 +237,9 @@ standards.")
|
||||||
name "-" version ".tar.bz2"))
|
name "-" version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"11wx29mb5pcg4mgk07a6vjwh52ca90k0x4m9wv0v3y5dmp88f01p"))
|
"0vm6f7f1i5vkq2713mgzjdfnm8rpz9l0q8sv4s123vsam0j9gzh8"))
|
||||||
(patches (map search-patch '("icecat-CVE-2015-4473-partial.patch"
|
(patches (map search-patch '("icecat-avoid-bundled-includes.patch"
|
||||||
"icecat-CVE-2015-4482.patch"
|
"icecat-freetype-2.6.patch")))
|
||||||
"icecat-CVE-2015-4488.patch"
|
|
||||||
"icecat-CVE-2015-4489.patch"
|
|
||||||
"icecat-CVE-2015-4491.patch"
|
|
||||||
"icecat-CVE-2015-4492.patch"
|
|
||||||
"icecat-CVE-2015-4495.patch"
|
|
||||||
"icecat-enable-acceleration-and-webgl.patch"
|
|
||||||
"icecat-freetype-2.6.patch"
|
|
||||||
"icecat-libvpx-1.4.patch")))
|
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
|
@ -307,6 +299,7 @@ standards.")
|
||||||
("libevent" ,libevent)
|
("libevent" ,libevent)
|
||||||
("libxinerama" ,libxinerama)
|
("libxinerama" ,libxinerama)
|
||||||
("libxscrnsaver" ,libxscrnsaver)
|
("libxscrnsaver" ,libxscrnsaver)
|
||||||
|
("libxcomposite" ,libxcomposite)
|
||||||
("libxt" ,libxt)
|
("libxt" ,libxt)
|
||||||
("libffi" ,libffi)
|
("libffi" ,libffi)
|
||||||
("libvpx" ,libvpx)
|
("libvpx" ,libvpx)
|
||||||
|
@ -393,8 +386,22 @@ standards.")
|
||||||
;; "--with-system-jpeg"
|
;; "--with-system-jpeg"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
#:modules ((ice-9 ftw)
|
||||||
|
,@%gnu-build-system-modules)
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
|
(add-after
|
||||||
|
'unpack 'ensure-no-mtimes-pre-1980
|
||||||
|
(lambda _
|
||||||
|
;; Without this, the 'source/test/addons/packed.xpi' and
|
||||||
|
;; 'source/test/addons/simple-prefs.xpi' targets fail while trying
|
||||||
|
;; to create zip archives.
|
||||||
|
(let ((early-1980 315619200)) ; 1980-01-02 UTC
|
||||||
|
(ftw "." (lambda (file stat flag)
|
||||||
|
(unless (<= early-1980 (stat:mtime stat))
|
||||||
|
(utime file early-1980 early-1980))
|
||||||
|
#t))
|
||||||
|
#t)))
|
||||||
(add-after
|
(add-after
|
||||||
'unpack 'remove-h264parse-from-blacklist
|
'unpack 'remove-h264parse-from-blacklist
|
||||||
(lambda _
|
(lambda _
|
||||||
|
@ -402,7 +409,7 @@ standards.")
|
||||||
;; was put there to work around a bug in a pre-1.0 version of
|
;; was put there to work around a bug in a pre-1.0 version of
|
||||||
;; gstreamer. See:
|
;; gstreamer. See:
|
||||||
;; https://www.mozilla.org/en-US/security/advisories/mfsa2015-47/
|
;; https://www.mozilla.org/en-US/security/advisories/mfsa2015-47/
|
||||||
(substitute* "content/media/gstreamer/GStreamerFormatHelper.cpp"
|
(substitute* "dom/media/gstreamer/GStreamerFormatHelper.cpp"
|
||||||
(("^ \"h264parse\",\n") ""))
|
(("^ \"h264parse\",\n") ""))
|
||||||
#t))
|
#t))
|
||||||
(add-after
|
(add-after
|
||||||
|
@ -414,13 +421,12 @@ standards.")
|
||||||
;; TODO: It might be preferable to patch in absolute file names in
|
;; TODO: It might be preferable to patch in absolute file names in
|
||||||
;; calls to dlopen or PR_LoadLibrary, but that didn't seem to
|
;; calls to dlopen or PR_LoadLibrary, but that didn't seem to
|
||||||
;; work. More investigation is needed.
|
;; work. More investigation is needed.
|
||||||
(let ((p (open-file "toolkit/library/libxul.mk" "a")))
|
(substitute* "toolkit/library/moz.build"
|
||||||
(display "\nOS_LIBS += -lGL -lgnome-2 -lcanberra -lXss \\
|
(("^# This needs to be last")
|
||||||
-lcups -lgssapi_krb5 -lgstreamer-1.0 \\
|
"OS_LIBS += [
|
||||||
-lgstapp-1.0 -lgstvideo-1.0\n"
|
'GL', 'gnome-2', 'canberra', 'Xss', 'cups', 'gssapi_krb5',
|
||||||
p)
|
'gstreamer-1.0', 'gstapp-1.0', 'gstvideo-1.0' ]\n\n"))
|
||||||
(close-port p)
|
#t))
|
||||||
#t)))
|
|
||||||
(replace
|
(replace
|
||||||
'configure
|
'configure
|
||||||
;; configure does not work followed by both "SHELL=..." and
|
;; configure does not work followed by both "SHELL=..." and
|
||||||
|
|
|
@ -1,120 +0,0 @@
|
||||||
Backported to icecat-31.8 from the upstream esr38 branch.
|
|
||||||
|
|
||||||
From 1a7eac06fab3b8ffca09936498887f99e233bcba Mon Sep 17 00:00:00 2001
|
|
||||||
From: Randell Jesup <rjesup@jesup.org>
|
|
||||||
Date: Thu, 9 Jul 2015 20:18:34 -0400
|
|
||||||
Subject: [PATCH] Bug 1178890 - Update timer arrays after sleep to account for
|
|
||||||
time sleeping. r=bwc, r=froydnj, a=sledru
|
|
||||||
|
|
||||||
--- icecat-31.8.0/xpcom/threads/TimerThread.cpp.orig 1969-12-31 19:00:00.000000000 -0500
|
|
||||||
+++ icecat-31.8.0/xpcom/threads/TimerThread.cpp 2015-08-12 16:38:11.789371171 -0400
|
|
||||||
@@ -28,7 +28,8 @@
|
|
||||||
mShutdown(false),
|
|
||||||
mWaiting(false),
|
|
||||||
mNotified(false),
|
|
||||||
- mSleeping(false)
|
|
||||||
+ mSleeping(false),
|
|
||||||
+ mLastTimerEventLoopRun(TimeStamp::Now())
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -222,6 +223,7 @@
|
|
||||||
} else {
|
|
||||||
waitFor = PR_INTERVAL_NO_TIMEOUT;
|
|
||||||
TimeStamp now = TimeStamp::Now();
|
|
||||||
+ mLastTimerEventLoopRun = now;
|
|
||||||
nsTimerImpl *timer = nullptr;
|
|
||||||
|
|
||||||
if (!mTimers.IsEmpty()) {
|
|
||||||
@@ -411,6 +413,7 @@
|
|
||||||
// This function must be called from within a lock
|
|
||||||
int32_t TimerThread::AddTimerInternal(nsTimerImpl *aTimer)
|
|
||||||
{
|
|
||||||
+ mMonitor.AssertCurrentThreadOwns();
|
|
||||||
if (mShutdown)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
@@ -434,6 +437,7 @@
|
|
||||||
|
|
||||||
bool TimerThread::RemoveTimerInternal(nsTimerImpl *aTimer)
|
|
||||||
{
|
|
||||||
+ mMonitor.AssertCurrentThreadOwns();
|
|
||||||
if (!mTimers.RemoveElement(aTimer))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
@@ -443,6 +447,10 @@
|
|
||||||
|
|
||||||
void TimerThread::ReleaseTimerInternal(nsTimerImpl *aTimer)
|
|
||||||
{
|
|
||||||
+ if (!mShutdown) {
|
|
||||||
+ // copied to a local array before releasing in shutdown
|
|
||||||
+ mMonitor.AssertCurrentThreadOwns();
|
|
||||||
+ }
|
|
||||||
// Order is crucial here -- see nsTimerImpl::Release.
|
|
||||||
aTimer->mArmed = false;
|
|
||||||
NS_RELEASE(aTimer);
|
|
||||||
@@ -450,21 +458,39 @@
|
|
||||||
|
|
||||||
void TimerThread::DoBeforeSleep()
|
|
||||||
{
|
|
||||||
+ // Mainthread
|
|
||||||
+ MonitorAutoLock lock(mMonitor);
|
|
||||||
+ mLastTimerEventLoopRun = TimeStamp::Now();
|
|
||||||
mSleeping = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
+// Note: wake may be notified without preceding sleep notification
|
|
||||||
void TimerThread::DoAfterSleep()
|
|
||||||
{
|
|
||||||
- mSleeping = true; // wake may be notified without preceding sleep notification
|
|
||||||
+ // Mainthread
|
|
||||||
+ TimeStamp now = TimeStamp::Now();
|
|
||||||
+
|
|
||||||
+ MonitorAutoLock lock(mMonitor);
|
|
||||||
+
|
|
||||||
+ // an over-estimate of time slept, usually small
|
|
||||||
+ TimeDuration slept = now - mLastTimerEventLoopRun;
|
|
||||||
+
|
|
||||||
+ // Adjust all old timers to expire roughly similar times in the future
|
|
||||||
+ // compared to when we went to sleep, by adding the time we slept to the
|
|
||||||
+ // target time. It's slightly possible a few will end up slightly in the
|
|
||||||
+ // past and fire immediately, but ordering should be preserved. All
|
|
||||||
+ // timers retain the exact same order (and relative times) as before
|
|
||||||
+ // going to sleep.
|
|
||||||
for (uint32_t i = 0; i < mTimers.Length(); i ++) {
|
|
||||||
nsTimerImpl *timer = mTimers[i];
|
|
||||||
- // get and set the delay to cause its timeout to be recomputed
|
|
||||||
- uint32_t delay;
|
|
||||||
- timer->GetDelay(&delay);
|
|
||||||
- timer->SetDelay(delay);
|
|
||||||
+ timer->mTimeout += slept;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
mSleeping = false;
|
|
||||||
+ mLastTimerEventLoopRun = now;
|
|
||||||
+
|
|
||||||
+ // Wake up the timer thread to process the updated array
|
|
||||||
+ mNotified = true;
|
|
||||||
+ mMonitor.Notify();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
--- icecat-31.8.0/xpcom/threads/TimerThread.h.orig 1969-12-31 19:00:00.000000000 -0500
|
|
||||||
+++ icecat-31.8.0/xpcom/threads/TimerThread.h 2015-08-12 16:38:38.542408062 -0400
|
|
||||||
@@ -59,7 +59,7 @@
|
|
||||||
mozilla::Atomic<bool> mInitInProgress;
|
|
||||||
bool mInitialized;
|
|
||||||
|
|
||||||
- // These two internal helper methods must be called while mLock is held.
|
|
||||||
+ // These two internal helper methods must be called while mMonitor is held.
|
|
||||||
// AddTimerInternal returns the position where the timer was added in the
|
|
||||||
// list, or -1 if it failed.
|
|
||||||
int32_t AddTimerInternal(nsTimerImpl *aTimer);
|
|
||||||
@@ -73,6 +73,7 @@
|
|
||||||
bool mWaiting;
|
|
||||||
bool mNotified;
|
|
||||||
bool mSleeping;
|
|
||||||
+ TimeStamp mLastTimerEventLoopRun;
|
|
||||||
|
|
||||||
nsTArray<nsTimerImpl*> mTimers;
|
|
||||||
};
|
|
|
@ -1,28 +0,0 @@
|
||||||
From 932a017c745d40d661602f6145c95c9226d8450d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stephen Pohl <spohl.mozilla.bugs@gmail.com>
|
|
||||||
Date: Sat, 18 Jul 2015 18:42:15 -0700
|
|
||||||
Subject: [PATCH] Bug 1184500 - Improve handling of index names in MAR files.
|
|
||||||
r=rstrong, a=lmandel
|
|
||||||
|
|
||||||
---
|
|
||||||
modules/libmar/src/mar_read.c | 4 ++++
|
|
||||||
1 file changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/modules/libmar/src/mar_read.c b/modules/libmar/src/mar_read.c
|
|
||||||
index c647370..2013b0f 100644
|
|
||||||
--- a/modules/libmar/src/mar_read.c
|
|
||||||
+++ b/modules/libmar/src/mar_read.c
|
|
||||||
@@ -96,6 +96,10 @@ static int mar_consume_index(MarFile *mar, char **buf, const char *buf_end) {
|
|
||||||
++(*buf);
|
|
||||||
}
|
|
||||||
namelen = (*buf - name);
|
|
||||||
+ /* must ensure that namelen is valid */
|
|
||||||
+ if (namelen < 0) {
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
/* consume null byte */
|
|
||||||
if (*buf == buf_end)
|
|
||||||
return -1;
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
Backported to icecat-31.8 from the upstream esr38 branch.
|
|
||||||
|
|
||||||
From 103fb14ff54753305508448ba0e374247a463552 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Daniel Holbert <dholbert@cs.stanford.edu>
|
|
||||||
Date: Fri, 19 Jun 2015 15:56:12 -0700
|
|
||||||
Subject: [PATCH] Bug 1176270 - Handle self-assignment in
|
|
||||||
StyleAnimationValue::operator=. r=dbaron, a=sledru
|
|
||||||
|
|
||||||
--- icecat-31.8.0/layout/style/nsStyleAnimation.cpp.orig 1969-12-31 19:00:00.000000000 -0500
|
|
||||||
+++ icecat-31.8.0/layout/style/nsStyleAnimation.cpp 2015-08-12 16:00:39.418122049 -0400
|
|
||||||
@@ -3517,6 +3517,10 @@
|
|
||||||
nsStyleAnimation::Value&
|
|
||||||
nsStyleAnimation::Value::operator=(const Value& aOther)
|
|
||||||
{
|
|
||||||
+ if (this == &aOther) {
|
|
||||||
+ return *this;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
FreeValue();
|
|
||||||
|
|
||||||
mUnit = aOther.mUnit;
|
|
|
@ -1,21 +0,0 @@
|
||||||
Backported to icecat-31.8 from the upstream esr38 branch.
|
|
||||||
|
|
||||||
From 95231c1bca9c9495393b795513bea71a21a6ec2f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Birunthan Mohanathas <birunthan@mohanathas.com>
|
|
||||||
Date: Tue, 21 Jul 2015 09:42:58 -0700
|
|
||||||
Subject: [PATCH] Bug 1182723 - Properly handle self-assignment in
|
|
||||||
nsTArray::operator=. r=mccr8, a=abillings
|
|
||||||
|
|
||||||
--- icecat-31.8.0/xpcom/glue/nsTArray.h.orig 2015-08-12 16:03:56.353746969 -0400
|
|
||||||
+++ icecat-31.8.0/xpcom/glue/nsTArray.h 2015-08-12 16:06:52.144553848 -0400
|
|
||||||
@@ -811,7 +811,9 @@
|
|
||||||
// array. It is optimized to reuse existing storage if possible.
|
|
||||||
// @param other The array object to copy.
|
|
||||||
self_type& operator=(const self_type& other) {
|
|
||||||
- ReplaceElementsAt(0, Length(), other.Elements(), other.Length());
|
|
||||||
+ if (this != &other) {
|
|
||||||
+ ReplaceElementsAt(0, Length(), other.Elements(), other.Length());
|
|
||||||
+ }
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
From c154557bc0aa7e310824717f3e829dd82e6726e4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lee Salzman <lsalzman@mozilla.com>
|
|
||||||
Date: Tue, 21 Jul 2015 13:16:44 -0400
|
|
||||||
Subject: [PATCH] Bug 1184009 - Limit image preview sizes. r=acomminos,
|
|
||||||
a=lmandel
|
|
||||||
|
|
||||||
--HG--
|
|
||||||
extra : transplant_source : %9B%86%13%60%B2%97%F1%8Fb%CB%9C%8D%FBWo%C9%EBPs1
|
|
||||||
---
|
|
||||||
widget/gtk/nsFilePicker.cpp | 13 ++++++++-----
|
|
||||||
1 file changed, 8 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
|
|
||||||
index 0b5a8dc..3c0d543 100644
|
|
||||||
--- a/widget/gtk/nsFilePicker.cpp
|
|
||||||
+++ b/widget/gtk/nsFilePicker.cpp
|
|
||||||
@@ -101,13 +101,16 @@ UpdateFilePreviewWidget(GtkFileChooser *file_chooser,
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
- GdkPixbuf *preview_pixbuf;
|
|
||||||
+ GdkPixbuf *preview_pixbuf = nullptr;
|
|
||||||
// Only scale down images that are too big
|
|
||||||
if (preview_width > MAX_PREVIEW_SIZE || preview_height > MAX_PREVIEW_SIZE) {
|
|
||||||
- preview_pixbuf = gdk_pixbuf_new_from_file_at_size(image_filename,
|
|
||||||
- MAX_PREVIEW_SIZE,
|
|
||||||
- MAX_PREVIEW_SIZE,
|
|
||||||
- nullptr);
|
|
||||||
+ if (ceil(preview_width / double(MAX_PREVIEW_SIZE) + 1.0) *
|
|
||||||
+ ceil(preview_height / double(MAX_PREVIEW_SIZE) + 1.0) < 0x7FFFFF) {
|
|
||||||
+ preview_pixbuf = gdk_pixbuf_new_from_file_at_size(image_filename,
|
|
||||||
+ MAX_PREVIEW_SIZE,
|
|
||||||
+ MAX_PREVIEW_SIZE,
|
|
||||||
+ nullptr);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
preview_pixbuf = gdk_pixbuf_new_from_file(image_filename, nullptr);
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
|
@ -1,81 +0,0 @@
|
||||||
From 9d5f21ee3a754d20bca4513f55553ea6694a7b25 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andrea Marchesini <amarchesini@mozilla.com>
|
|
||||||
Date: Wed, 29 Jul 2015 16:10:15 -0400
|
|
||||||
Subject: [PATCH] Bug 1185820 - XMLHttpRequest::Open() in worker should count
|
|
||||||
the recursion using a uint32_t and not a boolean. r=khuey, a=lmandel
|
|
||||||
|
|
||||||
--HG--
|
|
||||||
extra : transplant_source : %8F%89%24%FF%A1%F7d%5B%BE%E9%FC3%C6%E1%AC%27r%5Eq%16
|
|
||||||
extra : histedit_source : 5857f0cedf1cfb5361e6f404a094719814a2b415
|
|
||||||
---
|
|
||||||
dom/workers/XMLHttpRequest.cpp | 20 +++++++++++---------
|
|
||||||
1 file changed, 11 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dom/workers/XMLHttpRequest.cpp b/dom/workers/XMLHttpRequest.cpp
|
|
||||||
index aac97ab..7099279 100644
|
|
||||||
--- a/dom/workers/XMLHttpRequest.cpp
|
|
||||||
+++ b/dom/workers/XMLHttpRequest.cpp
|
|
||||||
@@ -100,6 +100,7 @@ public:
|
|
||||||
// Only touched on the worker thread.
|
|
||||||
uint32_t mOuterEventStreamId;
|
|
||||||
uint32_t mOuterChannelId;
|
|
||||||
+ uint32_t mOpenCount;
|
|
||||||
uint64_t mLastLoaded;
|
|
||||||
uint64_t mLastTotal;
|
|
||||||
uint64_t mLastUploadLoaded;
|
|
||||||
@@ -109,7 +110,6 @@ public:
|
|
||||||
bool mLastUploadLengthComputable;
|
|
||||||
bool mSeenLoadStart;
|
|
||||||
bool mSeenUploadLoadStart;
|
|
||||||
- bool mOpening;
|
|
||||||
|
|
||||||
// Only touched on the main thread.
|
|
||||||
bool mUploadEventListenersAttached;
|
|
||||||
@@ -122,10 +122,10 @@ public:
|
|
||||||
: mWorkerPrivate(nullptr), mXMLHttpRequestPrivate(aXHRPrivate),
|
|
||||||
mMozAnon(aMozAnon), mMozSystem(aMozSystem),
|
|
||||||
mInnerEventStreamId(0), mInnerChannelId(0), mOutstandingSendCount(0),
|
|
||||||
- mOuterEventStreamId(0), mOuterChannelId(0), mLastLoaded(0), mLastTotal(0),
|
|
||||||
- mLastUploadLoaded(0), mLastUploadTotal(0), mIsSyncXHR(false),
|
|
||||||
+ mOuterEventStreamId(0), mOuterChannelId(0), mOpenCount(0), mLastLoaded(0),
|
|
||||||
+ mLastTotal(0), mLastUploadLoaded(0), mLastUploadTotal(0), mIsSyncXHR(false),
|
|
||||||
mLastLengthComputable(false), mLastUploadLengthComputable(false),
|
|
||||||
- mSeenLoadStart(false), mSeenUploadLoadStart(false), mOpening(false),
|
|
||||||
+ mSeenLoadStart(false), mSeenUploadLoadStart(false),
|
|
||||||
mUploadEventListenersAttached(false), mMainThreadSeenLoadStart(false),
|
|
||||||
mInOpen(false), mArrayBufferResponseWasTransferred(false)
|
|
||||||
{ }
|
|
||||||
@@ -1850,7 +1850,7 @@ XMLHttpRequest::SendInternal(const nsAString& aStringBody,
|
|
||||||
mWorkerPrivate->AssertIsOnWorkerThread();
|
|
||||||
|
|
||||||
// No send() calls when open is running.
|
|
||||||
- if (mProxy->mOpening) {
|
|
||||||
+ if (mProxy->mOpenCount) {
|
|
||||||
aRv.Throw(NS_ERROR_FAILURE);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
@@ -1945,15 +1945,17 @@ XMLHttpRequest::Open(const nsACString& aMethod, const nsAString& aUrl,
|
|
||||||
mBackgroundRequest, mWithCredentials,
|
|
||||||
mTimeout);
|
|
||||||
|
|
||||||
- mProxy->mOpening = true;
|
|
||||||
+ ++mProxy->mOpenCount;
|
|
||||||
if (!runnable->Dispatch(mWorkerPrivate->GetJSContext())) {
|
|
||||||
- mProxy->mOpening = false;
|
|
||||||
- ReleaseProxy();
|
|
||||||
+ if (!--mProxy->mOpenCount) {
|
|
||||||
+ ReleaseProxy();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
aRv.Throw(NS_ERROR_FAILURE);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
- mProxy->mOpening = false;
|
|
||||||
+ --mProxy->mOpenCount;
|
|
||||||
mProxy->mIsSyncXHR = !aAsync;
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
Backported from upstream commits labelled "Bug 1178058" from the esr38 branch
|
|
||||||
by Boris Zbarsky <bzbarsky@mit.edu> and Bobby Holley <bobbyholley@gmail.com>.
|
|
||||||
|
|
||||||
--- icecat-31.8.0/docshell/base/nsDocShell.cpp
|
|
||||||
+++ icecat-31.8.0/docshell/base/nsDocShell.cpp
|
|
||||||
@@ -1546,12 +1546,21 @@
|
|
||||||
|
|
||||||
if (owner && mItemType != typeChrome) {
|
|
||||||
nsCOMPtr<nsIPrincipal> ownerPrincipal = do_QueryInterface(owner);
|
|
||||||
- if (nsContentUtils::IsSystemOrExpandedPrincipal(ownerPrincipal)) {
|
|
||||||
+ if (nsContentUtils::IsSystemPrincipal(ownerPrincipal)) {
|
|
||||||
if (ownerIsExplicit) {
|
|
||||||
return NS_ERROR_DOM_SECURITY_ERR;
|
|
||||||
}
|
|
||||||
owner = nullptr;
|
|
||||||
inheritOwner = true;
|
|
||||||
+ } else if (nsContentUtils::IsExpandedPrincipal(ownerPrincipal)) {
|
|
||||||
+ if (ownerIsExplicit) {
|
|
||||||
+ return NS_ERROR_DOM_SECURITY_ERR;
|
|
||||||
+ }
|
|
||||||
+ // Don't inherit from the current page. Just do the safe thing
|
|
||||||
+ // and pretend that we were loaded by a nullprincipal.
|
|
||||||
+ owner = do_CreateInstance("@mozilla.org/nullprincipal;1");
|
|
||||||
+ NS_ENSURE_TRUE(owner, NS_ERROR_FAILURE);
|
|
||||||
+ inheritOwner = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!owner && !inheritOwner && !ownerIsExplicit) {
|
|
35
gnu/packages/patches/icecat-avoid-bundled-includes.patch
Normal file
35
gnu/packages/patches/icecat-avoid-bundled-includes.patch
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
Do not use headers from bundled libraries.
|
||||||
|
|
||||||
|
--- icecat-38.3.0/xpcom/build/moz.build.orig 2015-10-12 19:33:43.000000000 -0400
|
||||||
|
+++ icecat-38.3.0/xpcom/build/moz.build 2015-10-13 16:37:28.693224858 -0400
|
||||||
|
@@ -92,10 +92,5 @@
|
||||||
|
'/docshell/base',
|
||||||
|
]
|
||||||
|
|
||||||
|
-if CONFIG['MOZ_VPX']:
|
||||||
|
- LOCAL_INCLUDES += [
|
||||||
|
- '/media/libvpx',
|
||||||
|
- ]
|
||||||
|
-
|
||||||
|
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
|
||||||
|
CXXFLAGS += CONFIG['TK_CFLAGS']
|
||||||
|
--- icecat-38.3.0/storage/src/moz.build.orig 2015-10-12 19:34:45.000000000 -0400
|
||||||
|
+++ icecat-38.3.0/storage/src/moz.build 2015-10-13 18:48:26.584724518 -0400
|
||||||
|
@@ -66,7 +66,6 @@
|
||||||
|
DEFINES['SQLITE_MAX_LIKE_PATTERN_LENGTH'] = 50000
|
||||||
|
|
||||||
|
LOCAL_INCLUDES += [
|
||||||
|
- '/db/sqlite3/src',
|
||||||
|
'/dom/base',
|
||||||
|
]
|
||||||
|
|
||||||
|
--- icecat-38.3.0/dom/indexedDB/moz.build.orig 2015-10-12 19:35:00.000000000 -0400
|
||||||
|
+++ icecat-38.3.0/dom/indexedDB/moz.build 2015-10-13 19:10:10.528756487 -0400
|
||||||
|
@@ -91,7 +91,6 @@
|
||||||
|
FAIL_ON_WARNINGS = True
|
||||||
|
|
||||||
|
LOCAL_INCLUDES += [
|
||||||
|
- '/db/sqlite3/src',
|
||||||
|
'/dom/base',
|
||||||
|
'/dom/storage',
|
||||||
|
'/dom/workers',
|
|
@ -1,12 +0,0 @@
|
||||||
Re-enable hardware acceleration and WebGL.
|
|
||||||
|
|
||||||
--- icecat-31.8.0/browser/app/profile/icecat.js.orig 2015-07-13 18:14:27.000000000 -0400
|
|
||||||
+++ icecat-31.8.0/browser/app/profile/icecat.js 2015-07-15 13:55:39.273124982 -0400
|
|
||||||
@@ -1756,7 +1756,3 @@
|
|
||||||
pref("security.ssl3.dhe_rsa_aes_256_sha", false);
|
|
||||||
pref("security.ssl3.dhe_dss_aes_128_sha", false);
|
|
||||||
pref("security.ssl3.dhe_rsa_des_ede3_sha", false);
|
|
||||||
-
|
|
||||||
-// Disable hardware acceleration and WebGL
|
|
||||||
-pref("layers.acceleration.disabled", true);
|
|
||||||
-pref("webgl.disabled", true);
|
|
|
@ -1,78 +0,0 @@
|
||||||
The libvpx package 1.4.0 brings new names for various constants.
|
|
||||||
|
|
||||||
Based on a patch by Carsten Schoenert <c.schoenert@t-online.de>.
|
|
||||||
|
|
||||||
--- a/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc
|
|
||||||
+++ b/media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc
|
|
||||||
@@ -180,7 +180,7 @@ int VP8EncoderImpl::InitEncode(const VideoCodec* inst,
|
|
||||||
// Creating a wrapper to the image - setting image data to NULL. Actual
|
|
||||||
// pointer will be set in encode. Setting align to 1, as it is meaningless
|
|
||||||
// (actual memory is not allocated).
|
|
||||||
- raw_ = vpx_img_wrap(NULL, IMG_FMT_I420, codec_.width, codec_.height,
|
|
||||||
+ raw_ = vpx_img_wrap(NULL, VPX_IMG_FMT_I420, codec_.width, codec_.height,
|
|
||||||
1, NULL);
|
|
||||||
// populate encoder configuration with default values
|
|
||||||
if (vpx_codec_enc_config_default(vpx_codec_vp8_cx(), config_, 0)) {
|
|
||||||
@@ -349,9 +349,9 @@ int VP8EncoderImpl::Encode(const I420VideoFrame& input_image,
|
|
||||||
}
|
|
||||||
// Image in vpx_image_t format.
|
|
||||||
// Input image is const. VP8's raw image is not defined as const.
|
|
||||||
- raw_->planes[PLANE_Y] = const_cast<uint8_t*>(input_image.buffer(kYPlane));
|
|
||||||
- raw_->planes[PLANE_U] = const_cast<uint8_t*>(input_image.buffer(kUPlane));
|
|
||||||
- raw_->planes[PLANE_V] = const_cast<uint8_t*>(input_image.buffer(kVPlane));
|
|
||||||
+ raw_->planes[VPX_PLANE_Y] = const_cast<uint8_t*>(input_image.buffer(kYPlane));
|
|
||||||
+ raw_->planes[VPX_PLANE_U] = const_cast<uint8_t*>(input_image.buffer(kUPlane));
|
|
||||||
+ raw_->planes[VPX_PLANE_V] = const_cast<uint8_t*>(input_image.buffer(kVPlane));
|
|
||||||
// TODO(mikhal): Stride should be set in initialization.
|
|
||||||
raw_->stride[VPX_PLANE_Y] = input_image.stride(kYPlane);
|
|
||||||
raw_->stride[VPX_PLANE_U] = input_image.stride(kUPlane);
|
|
||||||
--- a/content/media/encoder/VP8TrackEncoder.cpp
|
|
||||||
+++ b/content/media/encoder/VP8TrackEncoder.cpp
|
|
||||||
@@ -84,7 +84,7 @@
|
|
||||||
// Creating a wrapper to the image - setting image data to NULL. Actual
|
|
||||||
// pointer will be set in encode. Setting align to 1, as it is meaningless
|
|
||||||
// (actual memory is not allocated).
|
|
||||||
- vpx_img_wrap(mVPXImageWrapper, IMG_FMT_I420,
|
|
||||||
+ vpx_img_wrap(mVPXImageWrapper, VPX_IMG_FMT_I420,
|
|
||||||
mFrameWidth, mFrameHeight, 1, nullptr);
|
|
||||||
|
|
||||||
config.g_w = mFrameWidth;
|
|
||||||
@@ -239,9 +239,9 @@
|
|
||||||
uint8_t *cb = mMuteFrame.Elements() + yPlaneSize;
|
|
||||||
uint8_t *cr = mMuteFrame.Elements() + yPlaneSize + uvPlaneSize;
|
|
||||||
|
|
||||||
- mVPXImageWrapper->planes[PLANE_Y] = y;
|
|
||||||
- mVPXImageWrapper->planes[PLANE_U] = cb;
|
|
||||||
- mVPXImageWrapper->planes[PLANE_V] = cr;
|
|
||||||
+ mVPXImageWrapper->planes[VPX_PLANE_Y] = y;
|
|
||||||
+ mVPXImageWrapper->planes[VPX_PLANE_U] = cb;
|
|
||||||
+ mVPXImageWrapper->planes[VPX_PLANE_V] = cr;
|
|
||||||
mVPXImageWrapper->stride[VPX_PLANE_Y] = mFrameWidth;
|
|
||||||
mVPXImageWrapper->stride[VPX_PLANE_U] = halfWidth;
|
|
||||||
mVPXImageWrapper->stride[VPX_PLANE_V] = halfWidth;
|
|
||||||
@@ -297,9 +297,9 @@
|
|
||||||
const PlanarYCbCrImage::Data *data = yuv->GetData();
|
|
||||||
|
|
||||||
if (isYUV420(data) && !data->mCbSkip) { // 420 planar
|
|
||||||
- mVPXImageWrapper->planes[PLANE_Y] = data->mYChannel;
|
|
||||||
- mVPXImageWrapper->planes[PLANE_U] = data->mCbChannel;
|
|
||||||
- mVPXImageWrapper->planes[PLANE_V] = data->mCrChannel;
|
|
||||||
+ mVPXImageWrapper->planes[VPX_PLANE_Y] = data->mYChannel;
|
|
||||||
+ mVPXImageWrapper->planes[VPX_PLANE_U] = data->mCbChannel;
|
|
||||||
+ mVPXImageWrapper->planes[VPX_PLANE_V] = data->mCrChannel;
|
|
||||||
mVPXImageWrapper->stride[VPX_PLANE_Y] = data->mYStride;
|
|
||||||
mVPXImageWrapper->stride[VPX_PLANE_U] = data->mCbCrStride;
|
|
||||||
mVPXImageWrapper->stride[VPX_PLANE_V] = data->mCbCrStride;
|
|
||||||
@@ -355,9 +355,9 @@
|
|
||||||
return NS_ERROR_NOT_IMPLEMENTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
- mVPXImageWrapper->planes[PLANE_Y] = y;
|
|
||||||
- mVPXImageWrapper->planes[PLANE_U] = cb;
|
|
||||||
- mVPXImageWrapper->planes[PLANE_V] = cr;
|
|
||||||
+ mVPXImageWrapper->planes[VPX_PLANE_Y] = y;
|
|
||||||
+ mVPXImageWrapper->planes[VPX_PLANE_U] = cb;
|
|
||||||
+ mVPXImageWrapper->planes[VPX_PLANE_V] = cr;
|
|
||||||
mVPXImageWrapper->stride[VPX_PLANE_Y] = mFrameWidth;
|
|
||||||
mVPXImageWrapper->stride[VPX_PLANE_U] = halfWidth;
|
|
||||||
mVPXImageWrapper->stride[VPX_PLANE_V] = halfWidth;
|
|
Reference in a new issue