about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/networking/browsers/chromium
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/browsers/chromium')
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/patches/webrtc-pulse.patch61
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix18
4 files changed, 83 insertions, 15 deletions
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
index ec69f3d233f4..edbf97e89633 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -18,6 +18,16 @@ mkChromiumDerivation (base: rec {
     cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
     cp -v "$buildPath/chrome" "$libExecPath/$packageName"
 
+    # Swiftshader
+    # See https://stackoverflow.com/a/4264351/263061 for the find invocation.
+    if [ -n "$(find "$buildPath/swiftshader/" -maxdepth 1 -name '*.so' -print -quit)" ]; then
+      echo "Swiftshader files found; installing"
+      mkdir -p "$libExecPath/swiftshader"
+      cp -v "$buildPath/swiftshader/"*.so "$libExecPath/swiftshader/"
+    else
+      echo "Swiftshader files not found"
+    fi
+
     mkdir -p "$sandbox/bin"
     cp -v "$buildPath/chrome_sandbox" "$sandbox/bin/${sandboxExecutableName}"
 
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
index 255b399ef3da..83c492e1e651 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
@@ -7,7 +7,7 @@
 , xdg_utils, yasm, minizip, libwebp
 , libusb1, pciutils, nss, re2, zlib
 
-, python2Packages, perl, pkgconfig, clang-tools
+, python2Packages, perl, pkgconfig
 , nspr, systemd, kerberos
 , utillinux, alsaLib
 , bison, gperf
@@ -104,8 +104,6 @@ let
             result
        else result;
 
-  llvm-clang-tools = clang-tools.override { inherit llvmPackages; };
-
   base = rec {
     name = "${packageName}-unwrapped-${version}";
     inherit (upstream-info) channel version;
@@ -139,6 +137,8 @@ let
       ./patches/no-build-timestamps.patch
       ./patches/widevine-79.patch
       ./patches/dont-use-ANGLE-by-default.patch
+      # fix race condition in the interaction with pulseaudio
+      ./patches/webrtc-pulse.patch
       # Unfortunately, chromium regularly breaks on major updates and
       # then needs various patches backported in order to be compiled with GCC.
       # Good sources for such patches and other hints:
@@ -216,8 +216,6 @@ let
       ln -s ${stdenv.cc}/bin/clang              third_party/llvm-build/Release+Asserts/bin/clang
       ln -s ${stdenv.cc}/bin/clang++            third_party/llvm-build/Release+Asserts/bin/clang++
       ln -s ${llvmPackages.llvm}/bin/llvm-ar    third_party/llvm-build/Release+Asserts/bin/llvm-ar
-    '' + optionalString (stdenv.lib.versionAtLeast version "82") ''
-      ln -s ${llvm-clang-tools}/bin/clang-format buildtools/linux64/clang-format
     '';
 
     gnFlags = mkGnFlags ({
@@ -244,7 +242,6 @@ let
       is_clang = stdenv.cc.isClang;
       clang_use_chrome_plugins = false;
       blink_symbol_level = 0;
-      enable_swiftshader = false;
       fieldtrial_testing_like_official_build = true;
 
       # Google API keys, see:
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/webrtc-pulse.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/webrtc-pulse.patch
new file mode 100644
index 000000000000..cf24e2704191
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/webrtc-pulse.patch
@@ -0,0 +1,61 @@
+From 704dc99bd05a94eb61202e6127df94ddfd571e85 Mon Sep 17 00:00:00 2001
+From: Dale Curtis <dalecurtis@chromium.org>
+Date: Mon, 02 Mar 2020 22:12:22 +0000
+Subject: [PATCH] Hold PulseAudio mainloop lock while querying input device info.
+
+a22cc23955cb3d58b7525c5103314226b3ce0137 moved this section out of
+UpdateNativeAudioHardwareInfo(), but forgot to bring the lock along.
+
+R=guidou
+
+Bug: 1043040
+Change-Id: I5b17a2cf0ad55d61c0811db1dae7045af4a91370
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2083814
+Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
+Commit-Queue: Guido Urdaneta <guidou@chromium.org>
+Reviewed-by: Guido Urdaneta <guidou@chromium.org>
+Auto-Submit: Dale Curtis <dalecurtis@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#746115}
+---
+
+diff --git a/media/audio/pulse/audio_manager_pulse.cc b/media/audio/pulse/audio_manager_pulse.cc
+index 90e9317..829846f 100644
+--- a/media/audio/pulse/audio_manager_pulse.cc
++++ b/media/audio/pulse/audio_manager_pulse.cc
+@@ -104,22 +104,27 @@
+ 
+ AudioParameters AudioManagerPulse::GetInputStreamParameters(
+     const std::string& device_id) {
+-  int user_buffer_size = GetUserBufferSize();
+-  int buffer_size =
+-      user_buffer_size ? user_buffer_size : kDefaultInputBufferSize;
+-
+   UpdateNativeAudioHardwareInfo();
+-  auto* operation = pa_context_get_source_info_by_name(
+-      input_context_, default_source_name_.c_str(), DefaultSourceInfoCallback,
+-      this);
+-  WaitForOperationCompletion(input_mainloop_, operation, input_context_);
++
++  {
++    AutoPulseLock auto_lock(input_mainloop_);
++    auto* operation = pa_context_get_source_info_by_name(
++        input_context_, default_source_name_.c_str(), DefaultSourceInfoCallback,
++        this);
++    WaitForOperationCompletion(input_mainloop_, operation, input_context_);
++  }
+ 
+   // We don't want to accidentally open a monitor device, so return invalid
+-  // parameters for those.
++  // parameters for those. Note: The value of |default_source_is_monitor_|
++  // depends on the the call to pa_context_get_source_info_by_name() above.
+   if (device_id == AudioDeviceDescription::kDefaultDeviceId &&
+       default_source_is_monitor_) {
+     return AudioParameters();
+   }
++
++  const int user_buffer_size = GetUserBufferSize();
++  const int buffer_size =
++      user_buffer_size ? user_buffer_size : kDefaultInputBufferSize;
+   return AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY,
+                          CHANNEL_LAYOUT_STEREO,
+                          native_input_sample_rate_ ? native_input_sample_rate_
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index a58131ce0e0d..0e939f2fd219 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -1,18 +1,18 @@
 # This file is autogenerated from update.sh in the same directory.
 {
   beta = {
-    sha256 = "1yam7lg38dbpvmva7pc3bw3npvgi3d1v6im8ld4z92gjgniwsjh2";
-    sha256bin64 = "0vsly218wv9x2nv5i82slz8pmb0hmdcl1z2mlhf2j5adnsxn9c5z";
-    version = "81.0.4044.34";
+    sha256 = "177hv5jkgpcbi6khk7j883rf3rzzkjmi8cqqpzckaiw7pcwsvyvd";
+    sha256bin64 = "0sicz51d2l3gj70mfpyh5idwarjl19pba5lc6ahznxxqsrjfp80r";
+    version = "81.0.4044.69";
   };
   dev = {
-    sha256 = "0pxvwjvkajlidk5m7jiqk69mxnxg3h56dr7vpi916r51w17pds0l";
-    sha256bin64 = "1jdyp0f2ig4251155db3m7lzd4jlmczcjqqnvdj5nwl2bn3ykc3s";
-    version = "82.0.4068.4";
+    sha256 = "0s0072rmg287iijh6wwm9i5a5fsh96qm6nhd13xwbxrvj6pldb7n";
+    sha256bin64 = "0l5ljjz0s5x9727syq4gs5xshl9vs8apvw6xw8il0xy5qax32g85";
+    version = "82.0.4083.0";
   };
   stable = {
-    sha256 = "00f2hpi2d0n15yw29dv3dli566cgi7qh55bfpziag9a6j02i401c";
-    sha256bin64 = "00xhacrs74ks3nrpsnnbqm5vk0r9ydyxrq5ifajzviqqyk2n24b8";
-    version = "80.0.3987.132";
+    sha256 = "07icl3hgg1wjkmz88lbpjf6ll4xyi64spki1nmsy6899jgkxvgjh";
+    sha256bin64 = "0qgp6hv4qj04v6pzfx9ggjvcl1vi6ljjc3cpi4hfr67p4jab40ji";
+    version = "80.0.3987.149";
   };
 }