Merge pull request #15762 (Chromium update)

This is the original pull request plus some commits from me to bring all
channels to the latest versions, because the fixed security
vulnerabilites might not be fixed in the dev version we had before.

I've tested the whole changeset on my Hydra at:

https://headcounter.org/hydra/eval/322006

Thanks to @srp for the initial commit and thus implicitly also for the
security notice.

Cc: @abbradar
This commit is contained in:
aszlig 2016-05-28 21:14:40 +02:00
commit b5f95a5303
No known key found for this signature in database
GPG key ID: D0EBD0EC8C2DC961
4 changed files with 31 additions and 57 deletions

View file

@ -56,8 +56,9 @@ let
use_system_flac = true; use_system_flac = true;
use_system_libevent = true; use_system_libevent = true;
use_system_libexpat = true; use_system_libexpat = true;
use_system_libjpeg = true; # XXX: System libjpeg fails to link for version 52.0.2743.10
use_system_libpng = versionOlder upstream-info.version "51.0.0.0"; use_system_libjpeg = upstream-info.version != "52.0.2743.10";
use_system_libpng = false;
use_system_libwebp = true; use_system_libwebp = true;
use_system_libxml = true; use_system_libxml = true;
use_system_opus = true; use_system_opus = true;
@ -123,15 +124,13 @@ let
++ optionals gnomeSupport [ gnome.GConf libgcrypt ] ++ optionals gnomeSupport [ gnome.GConf libgcrypt ]
++ optional enableSELinux libselinux ++ optional enableSELinux libselinux
++ optionals cupsSupport [ libgcrypt cups ] ++ optionals cupsSupport [ libgcrypt cups ]
++ optional pulseSupport libpulseaudio ++ optional pulseSupport libpulseaudio;
++ optional (versionOlder version "51.0.0.0") libexif;
patches = [ patches = [
./patches/build_fixes_46.patch
./patches/widevine.patch ./patches/widevine.patch
(if versionOlder version "50.0.0.0" (if versionOlder version "52.0.0.0"
then ./patches/nix_plugin_paths_46.patch then ./patches/nix_plugin_paths_50.patch
else ./patches/nix_plugin_paths_50.patch) else ./patches/nix_plugin_paths_52.patch)
]; ];
postPatch = '' postPatch = ''
@ -141,20 +140,17 @@ let
-e "/python_arch/s/: *'[^']*'/: '""'/" \ -e "/python_arch/s/: *'[^']*'/: '""'/" \
build/common.gypi chrome/chrome_tests.gypi build/common.gypi chrome/chrome_tests.gypi
${optionalString (versionOlder version "51.0.0.0") ''
sed -i -e '/module_path *=.*libexif.so/ {
s|= [^;]*|= base::FilePath().AppendASCII("${libexif}/lib/libexif.so")|
}' chrome/utility/media_galleries/image_metadata_extractor.cc
''}
sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${libudev.out}/lib/\1!' \ sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${libudev.out}/lib/\1!' \
device/udev_linux/udev?_loader.cc device/udev_linux/udev?_loader.cc
sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \ sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
gpu/config/gpu_info_collector_linux.cc gpu/config/gpu_info_collector_linux.cc
'' + optionalString (!versionOlder version "51.0.0.0") ''
sed -i -re 's/([^:])\<(isnan *\()/\1std::\2/g' \ sed -i -re 's/([^:])\<(isnan *\()/\1std::\2/g' \
chrome/browser/ui/webui/engagement/site_engagement_ui.cc chrome/browser/ui/webui/engagement/site_engagement_ui.cc
'' + optionalString (versionAtLeast version "52.0.0.0") ''
sed -i -re 's/([^:])\<(isnan *\()/\1std::\2/g' \
third_party/pdfium/xfa/fxbarcode/utils.h
''; '';
gypFlags = mkGypFlags (gypFlagsUseSystemLibs // { gypFlags = mkGypFlags (gypFlagsUseSystemLibs // {
@ -185,9 +181,6 @@ let
google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI"; google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI";
google_default_client_id = "404761575300.apps.googleusercontent.com"; google_default_client_id = "404761575300.apps.googleusercontent.com";
google_default_client_secret = "9rIFQjfnkykEmqb6FfjJQD1D"; google_default_client_secret = "9rIFQjfnkykEmqb6FfjJQD1D";
} // optionalAttrs (versionOlder version "51.0.0.0") {
use_system_libexif = true;
} // optionalAttrs proprietaryCodecs { } // optionalAttrs proprietaryCodecs {
# enable support for the H.264 codec # enable support for the H.264 codec
proprietary_codecs = true; proprietary_codecs = true;

View file

@ -1,14 +0,0 @@
diff --git a/chrome/test/data/webui_test_resources.grd b/chrome/test/data/webui_test_resources.grd
index 6f8530d..f92a76a 100644
--- a/chrome/test/data/webui_test_resources.grd
+++ b/chrome/test/data/webui_test_resources.grd
@@ -6,9 +6,4 @@
</output>
<output filename="webui_test_resources.pak" type="data_package" />
</outputs>
- <release seq="1">
- <includes>
- <include name="IDR_WEBUI_TEST_I18N_PROCESS_CSS_TEST" file="webui/i18n_process_css_test.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
- </includes>
- </release>
</grit>

View file

@ -1,13 +1,13 @@
diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc
index 74bf041..5f34198 100644 index f4e119d..d9775bd 100644
--- a/chrome/common/chrome_paths.cc --- a/chrome/common/chrome_paths.cc
+++ b/chrome/common/chrome_paths.cc +++ b/chrome/common/chrome_paths.cc
@@ -66,21 +66,14 @@ static base::LazyInstance<base::FilePath> @@ -68,21 +68,14 @@ static base::LazyInstance<base::FilePath>
g_invalid_specified_user_data_dir = LAZY_INSTANCE_INITIALIZER; g_invalid_specified_user_data_dir = LAZY_INSTANCE_INITIALIZER;
// Gets the path for internal plugins. // Gets the path for internal plugins.
-bool GetInternalPluginsDirectory(base::FilePath* result) { -bool GetInternalPluginsDirectory(base::FilePath* result) {
-#if defined(OS_MACOSX) && !defined(OS_IOS) -#if defined(OS_MACOSX)
- // If called from Chrome, get internal plugins from a subdirectory of the - // If called from Chrome, get internal plugins from a subdirectory of the
- // framework. - // framework.
- if (base::mac::AmIBundled()) { - if (base::mac::AmIBundled()) {
@ -31,8 +31,8 @@ index 74bf041..5f34198 100644
+ *result = base::FilePath(value); + *result = base::FilePath(value);
} }
#if defined(OS_WIN) // Gets the path for bundled implementations of components. Note that these
@@ -253,11 +246,11 @@ bool PathProvider(int key, base::FilePath* result) { @@ -272,7 +265,7 @@ bool PathProvider(int key, base::FilePath* result) {
create_dir = true; create_dir = true;
break; break;
case chrome::DIR_INTERNAL_PLUGINS: case chrome::DIR_INTERNAL_PLUGINS:
@ -40,13 +40,17 @@ index 74bf041..5f34198 100644
+ if (!GetInternalPluginsDirectory(&cur, "ALL")) + if (!GetInternalPluginsDirectory(&cur, "ALL"))
return false; return false;
break; break;
case chrome::DIR_COMPONENTS:
@@ -280,7 +273,7 @@ bool PathProvider(int key, base::FilePath* result) {
return false;
break;
case chrome::DIR_PEPPER_FLASH_PLUGIN: case chrome::DIR_PEPPER_FLASH_PLUGIN:
- if (!GetInternalPluginsDirectory(&cur)) - if (!GetInternalPluginsDirectory(&cur))
+ if (!GetInternalPluginsDirectory(&cur, "PEPPERFLASH")) + if (!GetInternalPluginsDirectory(&cur, "PEPPERFLASH"))
return false; return false;
cur = cur.Append(kPepperFlashBaseDirectory); cur = cur.Append(kPepperFlashBaseDirectory);
break; break;
@@ -314,7 +307,7 @@ bool PathProvider(int key, base::FilePath* result) { @@ -323,7 +316,7 @@ bool PathProvider(int key, base::FilePath* result) {
// We currently need a path here to look up whether the plugin is disabled // We currently need a path here to look up whether the plugin is disabled
// and what its permissions are. // and what its permissions are.
case chrome::FILE_NACL_PLUGIN: case chrome::FILE_NACL_PLUGIN:
@ -55,7 +59,7 @@ index 74bf041..5f34198 100644
return false; return false;
cur = cur.Append(kInternalNaClPluginFileName); cur = cur.Append(kInternalNaClPluginFileName);
break; break;
@@ -349,7 +342,7 @@ bool PathProvider(int key, base::FilePath* result) { @@ -358,7 +351,7 @@ bool PathProvider(int key, base::FilePath* result) {
cur = cur.DirName(); cur = cur.DirName();
} }
#else #else
@ -64,12 +68,3 @@ index 74bf041..5f34198 100644
return false; return false;
#endif #endif
cur = cur.Append(FILE_PATH_LITERAL("pnacl")); cur = cur.Append(FILE_PATH_LITERAL("pnacl"));
@@ -366,7 +359,7 @@ bool PathProvider(int key, base::FilePath* result) {
// In the component case, this is the source adapter. Otherwise, it is the
// actual Pepper module that gets loaded.
case chrome::FILE_WIDEVINE_CDM_ADAPTER:
- if (!GetInternalPluginsDirectory(&cur))
+ if (!GetInternalPluginsDirectory(&cur, "WIDEVINE"))
return false;
cur = cur.AppendASCII(kWidevineCdmAdapterFileName);
break;

View file

@ -1,18 +1,18 @@
# This file is autogenerated from update.sh in the same directory. # This file is autogenerated from update.sh in the same directory.
{ {
beta = { beta = {
sha256 = "0l1434wqhi6c24qyb5ysg1wnd0s9l9i1k6kh6wr3s4acrsbb7p12"; sha256 = "1sgfwh2b0aw6l5v4ggk7frcy306x3ygxk81p3h6zdy5s1rpf8hxj";
sha256bin64 = "1ssw92l8zwj8x0zs5h6vxl7d7gj0lqb0x71vsazgd4d0p23nglb1"; sha256bin64 = "14qj8l5dapha87ndyzcs3spaxp3s9sapcjcplkisbivis09a29cb";
version = "51.0.2704.47"; version = "51.0.2704.63";
}; };
dev = { dev = {
sha256 = "0czp4p434yqr5rv3w2vypkyis13x8lc4xph8yh84r9big1ga6fqs"; sha256 = "1bbwbn0svgr2pfkza8pdq61bjzlj50axdm5bqqxi51hab51fc9ww";
sha256bin64 = "0hahamx9k14czswqdh8iwh69lsml0acca5kxvp2kw471g3s55n78"; sha256bin64 = "1s02q72b84g9p5i7y1hh1c67qjb92934dqqwd7w6j0jz8ix71nzc";
version = "52.0.2729.3"; version = "52.0.2743.10";
}; };
stable = { stable = {
sha256 = "1ijpbmn38znjjb3h8579x5gsclgjx122lvm0afv17gf2j3w5w4qj"; sha256 = "1sgfwh2b0aw6l5v4ggk7frcy306x3ygxk81p3h6zdy5s1rpf8hxj";
sha256bin64 = "17vqvxmy6llg7dpc3pxi0qhwpm9qc9rsq8lgknhwwygvkl8g14sb"; sha256bin64 = "1kjnxxf2ak8v1akzxz46r7a7r6bhxjb2y9fhr1fqvks3m4jc5zqw";
version = "50.0.2661.102"; version = "51.0.2704.63";
}; };
} }