From 085382a0776d6dd7997d45838a8a91245f539446 Mon Sep 17 00:00:00 2001 From: Cem Keylan Date: Tue, 7 Jan 2020 00:39:26 +0300 Subject: firefox: add patches and post-install --- .../patches/firefox-72-no-accessibility.patch | 13 + extra/firefox/patches/firefox-72-no-dbus.patch | 424 +++++++++++++++++++++ extra/firefox/post-install | 14 + extra/firefox/version | 2 +- 4 files changed, 452 insertions(+), 1 deletion(-) create mode 100644 extra/firefox/patches/firefox-72-no-accessibility.patch create mode 100644 extra/firefox/patches/firefox-72-no-dbus.patch create mode 100755 extra/firefox/post-install diff --git a/extra/firefox/patches/firefox-72-no-accessibility.patch b/extra/firefox/patches/firefox-72-no-accessibility.patch new file mode 100644 index 00000000..16f7b6f1 --- /dev/null +++ b/extra/firefox/patches/firefox-72-no-accessibility.patch @@ -0,0 +1,13 @@ +diff --git a/accessible/ipc/extension/other/moz.build b/accessible/ipc/extension/other/moz.build +index 635bb24fff..983dc974d7 100644 +--- a/accessible/ipc/extension/other/moz.build ++++ b/accessible/ipc/extension/other/moz.build +@@ -9,7 +9,7 @@ + + IPDL_SOURCES += ['PDocAccessiblePlatformExt.ipdl'] + +-if CONFIG['ACCESSIBILITY']: ++if 1: + EXPORTS.mozilla.a11y += [ + 'DocAccessiblePlatformExtChild.h', + 'DocAccessiblePlatformExtParent.h', diff --git a/extra/firefox/patches/firefox-72-no-dbus.patch b/extra/firefox/patches/firefox-72-no-dbus.patch new file mode 100644 index 00000000..7e209a92 --- /dev/null +++ b/extra/firefox/patches/firefox-72-no-dbus.patch @@ -0,0 +1,424 @@ +diff --git a/Cargo.lock b/Cargo.lock +index 7bc5171d3c..5d319728bb 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -82,24 +82,11 @@ dependencies = [ + "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + ] + +-[[package]] +-name = "audio_thread_priority" +-version = "0.20.2" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-dependencies = [ +- "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "dbus 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "mach 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", +-] + + [[package]] + name = "audioipc" + version = "0.2.4" + dependencies = [ +- "audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)", + "bincode 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.47 (registry+https://github.com/rust-lang/crates.io-index)", +@@ -127,7 +114,6 @@ dependencies = [ + name = "audioipc-client" + version = "0.4.0" + dependencies = [ +- "audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)", + "audioipc 0.2.4", + "cubeb-backend 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)", +@@ -140,7 +126,6 @@ dependencies = [ + name = "audioipc-server" + version = "0.2.3" + dependencies = [ +- "audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)", + "audioipc 0.2.4", + "cubeb-core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", +@@ -905,14 +890,6 @@ dependencies = [ + "syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + ] + +-[[package]] +-name = "dbus" +-version = "0.6.4" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-dependencies = [ +- "libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)", +- "libdbus-sys 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +-] + + [[package]] + name = "deflate" +@@ -1433,7 +1410,6 @@ dependencies = [ + name = "gkrust-shared" + version = "0.1.0" + dependencies = [ +- "audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)", + "audioipc-client 0.4.0", + "audioipc-server 0.2.3", + "authenticator 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +@@ -1797,13 +1773,6 @@ name = "libc" + version = "0.2.59" + source = "registry+https://github.com/rust-lang/crates.io-index" + +-[[package]] +-name = "libdbus-sys" +-version = "0.1.5" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-dependencies = [ +- "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +-] + + [[package]] + name = "libloading" +@@ -4561,7 +4530,6 @@ dependencies = [ + "checksum atomic 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c210c1f4db048cda477b652d170572d84c9640695835f17663595d3bd543fc28" + "checksum atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fb2dcb6e6d35f20276943cc04bb98e538b348d525a04ac79c10021561d202f21" + "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" +-"checksum audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)" = "197b2d259505d11c92d266e1784f01cc935eb764d2f54e16aedf4e5085197871" + "checksum authenticator 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ec149e5d5d4caa2c9ead53a8ce1ea9c4204c388c65bf3b96c2d1dc0fcf4aeb66" + "checksum autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "b671c8fb71b457dd4ae18c4ba1e59aa81793daacc361d82fcd410cef0d491875" + "checksum backtrace 0.3.38 (registry+https://github.com/rust-lang/crates.io-index)" = "690a62be8920ccf773ee00ef0968649b0e724cda8bd5b12286302b4ae955fdf5" +@@ -4631,7 +4599,6 @@ dependencies = [ + "checksum darling 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe629a532efad5526454efb0700f86d5ad7ff001acb37e431c8bf017a432a8e" + "checksum darling_core 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ee54512bec54b41cf2337a22ddfadb53c7d4c738494dc2a186d7b037ad683b85" + "checksum darling_macro 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0cd3e432e52c0810b72898296a69d66b1d78d1517dff6cde7a130557a55a62c1" +-"checksum dbus 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b9e1b39f3f6aa3d4a1522c4f0f9f1e9e9167bd93740a8690874caa7cf8ce47d7" + "checksum deflate 0.7.19 (registry+https://github.com/rust-lang/crates.io-index)" = "8a6abb26e16e8d419b5c78662aa9f82857c2386a073da266840e474d5055ec86" + "checksum derive_more 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3f57d78cf3bd45270dad4e70c21ec77a960b36c7a841ff9db76aaa775a8fb871" + "checksum devd-rs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d009f166c0d9e9f9909dc751630b3a6411ab7f85a153d32d01deb364ffe52a7" +@@ -4701,7 +4668,6 @@ dependencies = [ + "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" + "checksum libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)" = "3262021842bf00fe07dbd6cf34ff25c99d7a7ebef8deea84db72be3ea3bb0aff" +-"checksum libdbus-sys 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "18cb88963258d00f4962205dbb5933d82780d9962c8c8a064b651d2ad7189210" + "checksum libloading 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fd38073de8f7965d0c17d30546d4bb6da311ab428d1c7a3fc71dff7f9d4979b9" + "checksum libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3ad660d7cb8c5822cd83d10897b0f1f1526792737a179e73896152f85b88c2" + "checksum libudev 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ea626d3bdf40a1c5aee3bcd4f40826970cae8d80a8fec934c82a63840094dcfe" +diff --git a/dom/ipc/ContentChild.cpp b/dom/ipc/ContentChild.cpp +index bb539324ec..516fd0dd1c 100644 +--- a/dom/ipc/ContentChild.cpp ++++ b/dom/ipc/ContentChild.cpp +@@ -111,9 +111,7 @@ + #include "nsIStringBundle.h" + #include "nsIWorkerDebuggerManager.h" + #include "Geolocation.h" +-#include "audio_thread_priority.h" + #include "nsIConsoleService.h" +-#include "audio_thread_priority.h" + + #if !defined(XP_WIN) + # include "mozilla/Omnijar.h" +@@ -1795,9 +1793,6 @@ mozilla::ipc::IPCResult ContentChild::RecvSetProcessSandbox( + } else { + // Pre-start audio before sandboxing; see bug 1443612. + if (StaticPrefs::media_cubeb_sandbox()) { +- if (atp_set_real_time_limit(0, 48000)) { +- NS_WARNING("could not set real-time limit at process startup"); +- } + InstallSoftRealTimeLimitHandler(); + } else { + Unused << CubebUtils::GetCubebContext(); +diff --git a/dom/media/GraphRunner.cpp b/dom/media/GraphRunner.cpp +index 76ff3680ca..150c010be9 100644 +--- a/dom/media/GraphRunner.cpp ++++ b/dom/media/GraphRunner.cpp +@@ -13,7 +13,6 @@ + #include "nsISupportsImpl.h" + #include "prthread.h" + #include "Tracing.h" +-#include "audio_thread_priority.h" + + namespace mozilla { + +@@ -92,8 +91,6 @@ bool GraphRunner::OneIteration(GraphTime aStateEnd) { + } + + NS_IMETHODIMP GraphRunner::Run() { +- atp_handle* handle = +- atp_promote_current_thread_to_real_time(0, mGraph->GraphRate()); + + MonitorAutoLock lock(mMonitor); + while (true) { +@@ -110,9 +107,6 @@ NS_IMETHODIMP GraphRunner::Run() { + mMonitor.Notify(); + } + +- if (handle) { +- atp_demote_current_thread_from_real_time(handle); +- } + + dom::WorkletThread::DeleteCycleCollectedJSContext(); + +diff --git a/dom/media/UnderrunHandlerLinux.cpp b/dom/media/UnderrunHandlerLinux.cpp +index af5c84538e..23bf97a31f 100644 +--- a/dom/media/UnderrunHandlerLinux.cpp ++++ b/dom/media/UnderrunHandlerLinux.cpp +@@ -9,7 +9,6 @@ + + #include + #include +-#include "audio_thread_priority.h" + + namespace mozilla { + +@@ -57,20 +56,6 @@ void InstallSoftRealTimeLimitHandler() { + } + + void DemoteThreadFromRealTime() { +- atp_thread_info* info = atp_get_current_thread_info(); +- if (!info) { +- NS_WARNING("Could not get current thread info when demoting thread."); +- return; +- } +- int rv = atp_demote_thread_from_real_time(info); +- if (rv) { +- NS_WARNING("Could not demote thread from real-time."); +- return; +- } +- rv = atp_free_thread_info(info); +- if (rv) { +- NS_WARNING("Could not free atp_thread_info struct"); +- } + gRealtimeLimitReached = false; + } + +diff --git a/dom/media/moz.build b/dom/media/moz.build +index 972a961a81..eca9083298 100644 +--- a/dom/media/moz.build ++++ b/dom/media/moz.build +@@ -101,7 +101,6 @@ XPIDL_SOURCES += [ + XPIDL_MODULE = 'dom_media' + + EXPORTS += [ +- '../../third_party/rust/audio_thread_priority/audio_thread_priority.h', + 'ADTSDecoder.h', + 'ADTSDemuxer.h', + 'AsyncLogger.h', +diff --git a/media/audioipc/audioipc/Cargo.toml b/media/audioipc/audioipc/Cargo.toml +index 286e16789b..c34775cea1 100644 +--- a/media/audioipc/audioipc/Cargo.toml ++++ b/media/audioipc/audioipc/Cargo.toml +@@ -19,7 +19,6 @@ serde = "1.*.*" + serde_derive = "1.*.*" + tokio = "0.1" + tokio-io = "0.1" +-audio_thread_priority = "0.20.2" + + [target.'cfg(unix)'.dependencies] + iovec = "0.1" +diff --git a/media/audioipc/audioipc/src/messages.rs b/media/audioipc/audioipc/src/messages.rs +index 793e5f7a00..1f72f968ce 100644 +--- a/media/audioipc/audioipc/src/messages.rs ++++ b/media/audioipc/audioipc/src/messages.rs +@@ -5,8 +5,6 @@ + + use crate::PlatformHandle; + use crate::PlatformHandleType; +-#[cfg(target_os = "linux")] +-use audio_thread_priority::RtPriorityThreadInfo; + use cubeb::{self, ffi}; + use std::ffi::{CStr, CString}; + use std::os::raw::{c_char, c_int, c_uint}; +@@ -210,8 +208,6 @@ pub enum ServerMessage { + StreamGetCurrentDevice(usize), + StreamRegisterDeviceChangeCallback(usize, bool), + +- #[cfg(target_os = "linux")] +- PromoteThreadToRealTime([u8; std::mem::size_of::()]), + } + + // Server -> Client messages. +@@ -241,8 +237,6 @@ pub enum ClientMessage { + StreamCurrentDevice(Device), + StreamRegisterDeviceChangeCallback, + +- #[cfg(target_os = "linux")] +- ThreadPromoted, + + Error(c_int), + } +diff --git a/media/audioipc/client/Cargo.toml b/media/audioipc/client/Cargo.toml +index 866cde7e98..eaf9a62cc7 100644 +--- a/media/audioipc/client/Cargo.toml ++++ b/media/audioipc/client/Cargo.toml +@@ -9,7 +9,6 @@ description = "Cubeb Backend for talking to remote cubeb server." + edition = "2018" + + [dependencies] +-audio_thread_priority = "0.20.2" + audioipc = { path="../audioipc" } + cubeb-backend = "0.6.0" + futures = { version="0.1.18", default-features=false, features=["use_std"] } +diff --git a/media/audioipc/client/src/context.rs b/media/audioipc/client/src/context.rs +index 7e912ea65d..b6dddc76aa 100644 +--- a/media/audioipc/client/src/context.rs ++++ b/media/audioipc/client/src/context.rs +@@ -6,10 +6,6 @@ + use crate::stream; + use crate::{assert_not_in_callback, run_in_callback}; + use crate::{ClientStream, AUDIOIPC_INIT_PARAMS}; +-#[cfg(target_os = "linux")] +-use audio_thread_priority::get_current_thread_info; +-#[cfg(not(target_os = "linux"))] +-use audio_thread_priority::promote_current_thread_to_real_time; + use audioipc::codec::LengthDelimitedCodec; + use audioipc::frame::{framed, Framed}; + use audioipc::platformhandle_passing::{framed_with_platformhandles, FramedWithPlatformHandles}; +@@ -77,31 +73,6 @@ impl ClientContext { + } + } + +-#[cfg(target_os = "linux")] +-fn promote_thread(rpc: &rpc::ClientProxy) { +- match get_current_thread_info() { +- Ok(info) => { +- let bytes = info.serialize(); +- // Don't wait for the response, this is on the callback thread, which must not block. +- rpc.call(ServerMessage::PromoteThreadToRealTime(bytes)); +- } +- Err(_) => { +- warn!("Could not remotely promote thread to RT."); +- } +- } +-} +- +-#[cfg(not(target_os = "linux"))] +-fn promote_thread(_rpc: &rpc::ClientProxy) { +- match promote_current_thread_to_real_time(0, 48000) { +- Ok(_) => { +- info!("Audio thread promoted to real-time."); +- } +- Err(_) => { +- warn!("Could not promote thread to real-time."); +- } +- } +-} + + fn register_thread(callback: Option) { + if let Some(func) = callback { +@@ -111,13 +82,6 @@ fn register_thread(callback: Option, +- callback: Option, +-) { +- promote_thread(rpc); +- register_thread(callback); +-} + + #[derive(Default)] + struct DeviceCollectionCallback { +@@ -226,7 +190,6 @@ impl ContextOps for ClientContext { + let thread_create_callback = params.thread_create_callback; + let cpu_pool = futures_cpupool::Builder::new() + .name_prefix("AudioIPC") +- .after_start(move || promote_and_register_thread(&rpc2, thread_create_callback)) + .pool_size(params.pool_size) + .stack_size(params.stack_size) + .create(); +diff --git a/media/audioipc/server/Cargo.toml b/media/audioipc/server/Cargo.toml +index 341b041e65..3363f143c7 100644 +--- a/media/audioipc/server/Cargo.toml ++++ b/media/audioipc/server/Cargo.toml +@@ -9,7 +9,6 @@ description = "Remote cubeb server" + edition = "2018" + + [dependencies] +-audio_thread_priority = "0.20.2" + audioipc = { path = "../audioipc" } + cubeb-core = "0.6.0" + futures = "0.1.18" +diff --git a/media/audioipc/server/src/lib.rs b/media/audioipc/server/src/lib.rs +index 9463c102ac..18b09e5433 100644 +--- a/media/audioipc/server/src/lib.rs ++++ b/media/audioipc/server/src/lib.rs +@@ -9,7 +9,6 @@ extern crate error_chain; + #[macro_use] + extern crate log; + +-use audio_thread_priority::promote_current_thread_to_real_time; + use audioipc::core; + use audioipc::platformhandle_passing::framed_with_platformhandles; + use audioipc::rpc; +@@ -63,12 +62,6 @@ fn run() -> Result { + trace!("Starting up cubeb audio server event loop thread..."); + + let callback_thread = core::spawn_thread("AudioIPC Callback RPC", || { +- match promote_current_thread_to_real_time(0, 48000) { +- Ok(_) => {} +- Err(_) => { +- debug!("Failed to promote audio callback thread to real-time."); +- } +- } + trace!("Starting up cubeb audio callback event loop thread..."); + Ok(()) + }) +diff --git a/media/audioipc/server/src/server.rs b/media/audioipc/server/src/server.rs +index a458fb1953..d7fc4b6036 100644 +--- a/media/audioipc/server/src/server.rs ++++ b/media/audioipc/server/src/server.rs +@@ -3,8 +3,6 @@ + // This program is made available under an ISC-style license. See the + // accompanying file LICENSE for details + +-#[cfg(target_os = "linux")] +-use audio_thread_priority::{promote_thread_to_real_time, RtPriorityThreadInfo}; + use audioipc; + use audioipc::codec::LengthDelimitedCodec; + use audioipc::frame::{framed, Framed}; +@@ -523,19 +521,6 @@ impl CubebServer { + ) + .unwrap_or_else(error), + +- #[cfg(target_os = "linux")] +- ServerMessage::PromoteThreadToRealTime(thread_info) => { +- let info = RtPriorityThreadInfo::deserialize(thread_info); +- match promote_thread_to_real_time(info, 0, 48000) { +- Ok(_) => { +- info!("Promotion of content process thread to real-time OK"); +- } +- Err(_) => { +- warn!("Promotion of content process thread to real-time error"); +- } +- } +- ClientMessage::ThreadPromoted +- } + }; + + trace!("process_msg: req={:?}, resp={:?}", msg, resp); +diff --git a/toolkit/library/rust/shared/Cargo.toml b/toolkit/library/rust/shared/Cargo.toml +index 2f44f58e38..88504eb4b6 100644 +--- a/toolkit/library/rust/shared/Cargo.toml ++++ b/toolkit/library/rust/shared/Cargo.toml +@@ -39,7 +39,6 @@ bitsdownload = { path = "../../../components/bitsdownload", optional = true } + storage = { path = "../../../../storage/rust" } + bookmark_sync = { path = "../../../components/places/bookmark_sync", optional = true } + shift_or_euc_c = "0.1.0" +-audio_thread_priority = "0.20.2" + mdns_service = { path="../../../../media/mtransport/mdns_service", optional = true } + neqo_glue = { path = "../../../../netwerk/socket/neqo_glue" } + rlbox_lucet_sandbox = { version = "0.1.0", optional = true } +diff --git a/toolkit/library/rust/shared/lib.rs b/toolkit/library/rust/shared/lib.rs +index 31af24e6f5..2ea3e00edb 100644 +--- a/toolkit/library/rust/shared/lib.rs ++++ b/toolkit/library/rust/shared/lib.rs +@@ -49,7 +49,6 @@ extern crate shift_or_euc_c; + #[cfg(feature = "fogotype")] + extern crate fog; + +-extern crate audio_thread_priority; + + #[cfg(feature = "webrtc")] + extern crate mdns_service; diff --git a/extra/firefox/post-install b/extra/firefox/post-install new file mode 100755 index 00000000..99de9d2b --- /dev/null +++ b/extra/firefox/post-install @@ -0,0 +1,14 @@ +#!/bin/sh + +cat < kiss b firefox-privacy +-> kiss i firefox-privacy + +EOF diff --git a/extra/firefox/version b/extra/firefox/version index 843381ec..1fce892c 100644 --- a/extra/firefox/version +++ b/extra/firefox/version @@ -1 +1 @@ -72.0 1 +72.0 2 -- cgit v1.2.3