diff --git a/gnu/local.mk b/gnu/local.mk index 8fa155924e..586f023ee6 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -748,6 +748,8 @@ dist_patch_DATA = \ %D%/packages/patches/icecat-avoid-bundled-libraries.patch \ %D%/packages/patches/icecat-bug-1348660-pt5.patch \ %D%/packages/patches/icecat-bug-1415133.patch \ + %D%/packages/patches/icecat-bug-1414945.patch \ + %D%/packages/patches/icecat-bug-1424373-pt2.patch \ %D%/packages/patches/icu4c-CVE-2017-7867-CVE-2017-7868.patch \ %D%/packages/patches/icu4c-CVE-2017-14952.patch \ %D%/packages/patches/icu4c-reset-keyword-list-iterator.patch \ diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index c53c316132..a31e93d499 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -482,7 +482,35 @@ security standards.") (mozilla-patch "icecat-bug-1404105.patch" "2909ba991f31" "126vssj57dc800347f075wlnjzcwamnxxmgxl9w78jpb0hj9gf16") (search-patch "icecat-bug-1415133.patch") (mozilla-patch "icecat-bug-1355576.patch" "cf34a0574e58" "1z7sa1d12hypgivm5xxn32s58afpjcij97jvnafcgnfvxywrgr1m") - (mozilla-patch "icecat-CVE-2017-7843.patch" "f6216ea8b8fc" "0jnhdkj0ch9mj01mzlvhjgf8zsxlbg6m7yvpq99qr7xmg0pzbgwl"))) + (mozilla-patch "icecat-CVE-2017-7843.patch" "f6216ea8b8fc" "0jnhdkj0ch9mj01mzlvhjgf8zsxlbg6m7yvpq99qr7xmg0pzbgwl") + (mozilla-patch "icecat-bug-1413741.patch" "4e00ce2897c4" "0k95vi31glia2i03djidkc0gkwp9qldy34fz1rxcj56a1iphbq7w") + (mozilla-patch "icecat-bug-1224396.patch" "92d450811409" "0xsvggnr0y65nd52nkbjvpcbs5nd84pvbayk5vinbx1mnk2wh2vy") + (mozilla-patch "icecat-bug-1415582.patch" "7eba7d14704a" "1vi17qmjzh3kji14iz370kvs4425asgp93ns2chf5ldlq5b9196g") + (mozilla-patch "icecat-bug-1417797.patch" "457d023c167e" "11g8hg8yp20lsn52dx1ym8r4yjsnsmx0h182d6nbl6ab9wp7d1m9") + (mozilla-patch "icecat-bug-1410134.patch" "5e7b16213198" "14c4x6c3mygf8p77n9bia5rndjpngbvik1r1ylk97k3ggy4fj6zh") + (mozilla-patch "icecat-bug-1419363.patch" "0712b6cbbdc8" "0rllsq6ckpms7g9k6qky1gr5rz1gav4widrha6w1s9f88cbrqgk5") + (mozilla-patch "icecat-bug-1408276.patch" "084c427ccf99" "0sjdy2iang09a9g6liavpjgry04dp6smjgj0y7lp5lfqijdr8q2d") + (mozilla-patch "icecat-bug-1382366.patch" "1bfb3d8d4510" "0c2dcxj74ijs6qf9sqcbj8w998hblic66vy41818z7xnw46j5j1j") + (mozilla-patch "icecat-bug-1414425.patch" "5623e01e63a8" "08dn3v96bsb61hy3wfxz43fhn1mk9vlm5ydvdjgi3wiqadvacgzs") + (mozilla-patch "icecat-bug-1409951.patch" "14a389d40329" "0f4gbak5bd2walxrxs3myig28v9lhvplf3a1nws1a4ajx80slzq1") + (mozilla-patch "icecat-bug-1415441.patch" "7339297cddb7" "017lbw0mn5rwzb2abfw6qrk07m3r96vwbj81cmqvdfnmprcjni5j") + (mozilla-patch "icecat-bug-1418922.patch" "aa55d4cdaee5" "1l3qwjfx0jsbbw2dg8bsnx7k47zibamgswndq0d1bchnmary62aw") + (mozilla-patch "icecat-bug-1382358.patch" "762f4e53889a" "0n61zrb6rz9bhhdsqs5ziwaiy81pq52c76p9qmi9hrxbn24ism1k") + (mozilla-patch "icecat-bug-1399520.patch" "0152d097672f" "16ybg718calvciv00kil8s97lhh11hj6gx0acf73r44xfkvm8nfg") + (search-patch "icecat-bug-1414945.patch") + (mozilla-patch "icecat-bug-1414452.patch" "079356ed5317" "107c0b93g2k743wvhwz2ps3j6p09qld7d0raljijv5y5n8q4wp92") + (mozilla-patch "icecat-bug-1418854.patch" "93e4994a892c" "00r2qxw3619529vy9d04dl9kcziqy3fv3iawgy9svzygyx1kj5wx") + (mozilla-patch "icecat-bug-1422389.patch" "f8a6e1864832" "1wbxn0v50637yjg8b8675k01x9cyx95jpjxpyqfaa97762qkznba") + (mozilla-patch "icecat-bug-1415598.patch" "0cc1c9068714" "1qmqpi14zs7c95k3c7396gpp6apb622k0mgv553kw4rr81nj1yac") + (mozilla-patch "icecat-bug-1418447.patch" "ce6f3fb2bf58" "1b1msb5d5jsgrqa2hkbsrm0n54qdmx1b2bf65v44v17appa03lra") + (mozilla-patch "icecat-bug-1423159.patch" "6b4d3c5d5e51" "074p93dhwr1ckhypkjpblnmg9hg44a9030g1glqffi9dyn3iq3k4") + (mozilla-patch "icecat-bug-1411745.patch" "1a510ee578a0" "1imb7glh2m1zwvvpvr4k4iddms5byqzr35j7kv3y5is77aiwl4z5") + (mozilla-patch "icecat-bug-1411708.patch" "34c968767eb7" "0l2jy201ikj3m3h66mvlsj4y0ki7cpm7x7nnfygbwnfxg42s1sip") + (mozilla-patch "icecat-bug-1423086.patch" "bc166be85bb4" "0w1lrjzfrfflaw4l6sfi3ir81iyi9gyfck5g41dwp0jc1b59jzvg") + (mozilla-patch "icecat-bug-1412145.patch" "66cfc3c4047d" "05j8ic4lv2d2ygr6d62rkdlfyg2rpljalwrkkhllinw2dfi3n15b") + (mozilla-patch "icecat-bug-1399400.patch" "3236ffdf0ced" "1kvk4qyslaj1ldgs1wpxnf79zajcihzcd1zvbrg990i3hgyn3gk3") + (mozilla-patch "icecat-bug-1424373-pt1.patch" "320032aaa068" "1ch282qibprz1q0f2imvynh4sg7gads6sf3ayhjcd62zjncpgyz7") + (search-patch "icecat-bug-1424373-pt2.patch"))) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/patches/icecat-bug-1414945.patch b/gnu/packages/patches/icecat-bug-1414945.patch new file mode 100644 index 0000000000..3638ace1c4 --- /dev/null +++ b/gnu/packages/patches/icecat-bug-1414945.patch @@ -0,0 +1,73 @@ +Based on: + https://hg.mozilla.org/releases/mozilla-esr52/raw-rev/d303b3bb88c3 + +Adapted to apply cleanly to IceCat. + +# HG changeset patch +# User Philip Chimento +# Date 1510012155 28800 +# Node ID d303b3bb88c3345d3a089901e2b6fe883d148e44 +# Parent 0152d097672f7e99504815cf7b06d9f303419fba +Bug 1414945 - Don't use TimeDuration in static initializer. r=jandem, a=ritu + +On Darwin this would cause a race between two static initializers. + +diff --git a/js/src/shell/js.cpp b/js/src/shell/js.cpp +--- a/js/src/shell/js.cpp ++++ b/js/src/shell/js.cpp +@@ -138,17 +138,17 @@ static const size_t gMaxStackSize = 2 * + #else + static const size_t gMaxStackSize = 128 * sizeof(size_t) * 1024; + #endif + + /* + * Limit the timeout to 30 minutes to prevent an overflow on platfoms + * that represent the time internally in microseconds using 32-bit int. + */ +-static const TimeDuration MAX_TIMEOUT_INTERVAL = TimeDuration::FromSeconds(1800.0); ++static const double MAX_TIMEOUT_SECONDS = 1800.0; + + // SharedArrayBuffer and Atomics settings track IceCat. Choose a custom setting + // with --shared-memory={on,off}. + #ifndef RELEASE_OR_BETA + # define SHARED_MEMORY_DEFAULT 1 + #else + # define SHARED_MEMORY_DEFAULT 0 + #endif +@@ -3518,16 +3518,17 @@ Sleep_fn(JSContext* cx, unsigned argc, V + if (!ToNumber(cx, args[0], &t_secs)) + return false; + if (mozilla::IsNaN(t_secs)) { + JS_ReportErrorASCII(cx, "sleep interval is not a number"); + return false; + } + + duration = TimeDuration::FromSeconds(Max(0.0, t_secs)); ++ const TimeDuration MAX_TIMEOUT_INTERVAL = TimeDuration::FromSeconds(MAX_TIMEOUT_SECONDS); + if (duration > MAX_TIMEOUT_INTERVAL) { + JS_ReportErrorASCII(cx, "Excessive sleep interval"); + return false; + } + } + { + LockGuard guard(sc->watchdogLock); + TimeStamp toWakeup = TimeStamp::Now() + duration; +@@ -3675,16 +3676,17 @@ CancelExecution(JSContext* cx) + + static bool + SetTimeoutValue(JSContext* cx, double t) + { + if (mozilla::IsNaN(t)) { + JS_ReportErrorASCII(cx, "timeout is not a number"); + return false; + } ++ const TimeDuration MAX_TIMEOUT_INTERVAL = TimeDuration::FromSeconds(MAX_TIMEOUT_SECONDS); + if (TimeDuration::FromSeconds(t) > MAX_TIMEOUT_INTERVAL) { + JS_ReportErrorASCII(cx, "Excessive timeout value"); + return false; + } + GetShellContext(cx)->timeoutInterval = t; + if (!ScheduleWatchdog(cx, t)) { + JS_ReportErrorASCII(cx, "Failed to create the watchdog"); + return false; + diff --git a/gnu/packages/patches/icecat-bug-1424373-pt2.patch b/gnu/packages/patches/icecat-bug-1424373-pt2.patch new file mode 100644 index 0000000000..cdc7226bd3 --- /dev/null +++ b/gnu/packages/patches/icecat-bug-1424373-pt2.patch @@ -0,0 +1,183 @@ +Based on: + https://hg.mozilla.org/releases/mozilla-esr52/raw-rev/19ea736e7e3d + +Adapted to apply cleanly to IceCat. + +# HG changeset patch +# User Mike Conley +# Date 1513892173 18000 +# Node ID 19ea736e7e3d20555ee6633b9d7803c1225979e1 +# Parent 320032aaa06899f5585dcd0288059e5342118714 +Bug 1424373 - Rename crash report submission pref. r=Mossop a=jcristau + +diff --git a/browser/app/profile/icecat.js b/browser/app/profile/icecat.js +--- a/browser/app/profile/icecat.js ++++ b/browser/app/profile/icecat.js +@@ -1557,15 +1557,15 @@ pref("browser.crashReports.unsubmittedCh + pref("browser.crashReports.unsubmittedCheck.enabled", false); + #endif + + // chancesUntilSuppress is how many times we'll show the unsubmitted + // crash report notification across different days and shutdown + // without a user choice before we suppress the notification for + // some number of days. + pref("browser.crashReports.unsubmittedCheck.chancesUntilSuppress", 4); +-pref("browser.crashReports.unsubmittedCheck.autoSubmit", false); ++pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); + + #ifdef NIGHTLY_BUILD + // Enable the (fairly costly) client/server validation on nightly only. The other prefs + // controlling validation are located in /services/sync/services-sync.js + pref("services.sync.validation.enabled", true); + #endif +diff --git a/browser/base/content/test/tabcrashed/browser_autoSubmitRequest.js b/browser/base/content/test/tabcrashed/browser_autoSubmitRequest.js +--- a/browser/base/content/test/tabcrashed/browser_autoSubmitRequest.js ++++ b/browser/base/content/test/tabcrashed/browser_autoSubmitRequest.js +@@ -1,12 +1,12 @@ + "use strict"; + + const PAGE = "data:text/html,A%20regular,%20everyday,%20normal%20page."; +-const AUTOSUBMIT_PREF = "browser.crashReports.unsubmittedCheck.autoSubmit"; ++const AUTOSUBMIT_PREF = "browser.crashReports.unsubmittedCheck.autoSubmit2"; + + const {TabStateFlusher} = + Cu.import("resource:///modules/sessionstore/TabStateFlusher.jsm", {}); + + // On debug builds, crashing tabs results in much thinking, which + // slows down the test and results in intermittent test timeouts, + // so we'll pump up the expected timeout for this test. + requestLongerTimeout(2); +diff --git a/browser/components/preferences/in-content/advanced.xul b/browser/components/preferences/in-content/advanced.xul +--- a/browser/components/preferences/in-content/advanced.xul ++++ b/browser/components/preferences/in-content/advanced.xul +@@ -51,18 +51,18 @@ + #ifdef MOZ_TELEMETRY_REPORTING + + #endif + + + #ifdef MOZ_CRASHREPORTER +- + #endif + + + + + + + #endif + #ifdef MOZ_CRASHREPORTER + + + + + + + + +diff --git a/browser/components/sessionstore/test/browser_background_tab_crash.js b/browser/components/sessionstore/test/browser_background_tab_crash.js +--- a/browser/components/sessionstore/test/browser_background_tab_crash.js ++++ b/browser/components/sessionstore/test/browser_background_tab_crash.js +@@ -142,17 +142,17 @@ add_task(function* test_background_crash + /** + * Tests that if a content process crashes taking down only + * background tabs, and the user is configured to send backlogged + * crash reports automatically, that the tab crashed page is not + * shown. + */ + add_task(function* test_background_crash_autosubmit_backlogged() { + yield SpecialPowers.pushPrefEnv({ +- set: [["browser.crashReports.unsubmittedCheck.autoSubmit", true]], ++ set: [["browser.crashReports.unsubmittedCheck.autoSubmit2", true]], + }); + + yield setupBackgroundTabs(function*([tab1, tab2]) { + // Let's crash one of those background tabs now... + yield crashBackgroundTabs([tab1, tab2]); + + // Selecting the first tab should restore it. + let tabRestored = promiseTabRestored(tab1); +diff --git a/browser/modules/ContentCrashHandlers.jsm b/browser/modules/ContentCrashHandlers.jsm +--- a/browser/modules/ContentCrashHandlers.jsm ++++ b/browser/modules/ContentCrashHandlers.jsm +@@ -865,21 +865,21 @@ this.UnsubmittedCrashHandler = { + return nb.appendNotification(message, notificationID, + "chrome://browser/skin/tab-crashed.svg", + nb.PRIORITY_INFO_HIGH, buttons, + eventCallback); + }, + + get autoSubmit() { + return Services.prefs +- .getBoolPref("browser.crashReports.unsubmittedCheck.autoSubmit"); ++ .getBoolPref("browser.crashReports.unsubmittedCheck.autoSubmit2"); + }, + + set autoSubmit(val) { +- Services.prefs.setBoolPref("browser.crashReports.unsubmittedCheck.autoSubmit", ++ Services.prefs.setBoolPref("browser.crashReports.unsubmittedCheck.autoSubmit2", + val); + }, + + /** + * Attempt to submit reports to the crash report server. Each + * report will have the "SubmittedFromInfobar" extra key set + * to true. + * +diff --git a/browser/modules/test/browser_UnsubmittedCrashHandler.js b/browser/modules/test/browser_UnsubmittedCrashHandler.js +--- a/browser/modules/test/browser_UnsubmittedCrashHandler.js ++++ b/browser/modules/test/browser_UnsubmittedCrashHandler.js +@@ -344,17 +344,17 @@ add_task(function* test_can_submit_sever + clearPendingCrashReports(); + }); + + /** + * Tests that choosing "Send Always" flips the autoSubmit pref + * and sends the pending crash reports. + */ + add_task(function* test_can_submit_always() { +- let pref = "browser.crashReports.unsubmittedCheck.autoSubmit"; ++ let pref = "browser.crashReports.unsubmittedCheck.autoSubmit2"; + Assert.equal(Services.prefs.getBoolPref(pref), false, + "We should not be auto-submitting by default"); + + let reportIDs = yield createPendingCrashReports(1); + let notification = + yield UnsubmittedCrashHandler.checkForUnsubmittedCrashReports(); + Assert.ok(notification, "There should be a notification"); + +@@ -388,17 +388,17 @@ add_task(function* test_can_submit_alway + + /** + * Tests that if the user has chosen to automatically send + * crash reports that no notification is displayed to the + * user. + */ + add_task(function* test_can_auto_submit() { + yield SpecialPowers.pushPrefEnv({ set: [ +- ["browser.crashReports.unsubmittedCheck.autoSubmit", true], ++ ["browser.crashReports.unsubmittedCheck.autoSubmit2", true], + ]}); + + let reportIDs = yield createPendingCrashReports(3); + let promiseReports = waitForSubmittedReports(reportIDs); + let notification = + yield UnsubmittedCrashHandler.checkForUnsubmittedCrashReports(); + Assert.equal(notification, null, "There should be no notification"); + info("Waiting on reports to be received."); +