60.0.3112.90 + headless + fixes for freeworld

epel8
Tom Callaway 7 years ago
parent 2d02baa29c
commit 29aa9da06f

1
.gitignore vendored

@ -25,3 +25,4 @@
/chromium-59.0.3071.109-clean.tar.xz /chromium-59.0.3071.109-clean.tar.xz
/chromium-59.0.3071.115-clean.tar.xz /chromium-59.0.3071.115-clean.tar.xz
/chromium-59.0.3071.109-freetype.tar.bz2 /chromium-59.0.3071.109-freetype.tar.bz2
/chromium-60.0.3112.90-clean.tar.xz

@ -0,0 +1,479 @@
diff -up chromium-60.0.3112.78/components/neterror/resources/sounds/button-press.mp3 chromium-60.0.3112.78/components/neterror/resources/sounds/button-press
diff -up chromium-60.0.3112.78/components/neterror/resources/sounds/hit.mp3 chromium-60.0.3112.78/components/neterror/resources/sounds/hit
diff -up chromium-60.0.3112.78/components/neterror/resources/sounds/score-reached.mp3 chromium-60.0.3112.78/components/neterror/resources/sounds/score-reached
diff -up chromium-60.0.3112.78/media/base/mime_util_internal.cc.mp3 chromium-60.0.3112.78/media/base/mime_util_internal.cc
--- chromium-60.0.3112.78/media/base/mime_util_internal.cc.mp3 2017-07-25 15:04:57.000000000 -0400
+++ chromium-60.0.3112.78/media/base/mime_util_internal.cc 2017-07-31 10:57:55.054231795 -0400
@@ -278,10 +278,10 @@ void MimeUtil::AddSupportedMediaFormats(
CodecSet webm_codecs(webm_audio_codecs);
webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
-#if BUILDFLAG(USE_PROPRIETARY_CODECS)
CodecSet mp3_codecs;
mp3_codecs.insert(MP3);
+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
CodecSet aac;
aac.insert(MPEG2_AAC);
aac.insert(MPEG4_AAC);
@@ -325,10 +325,10 @@ void MimeUtil::AddSupportedMediaFormats(
AddContainerWithCodecs("application/ogg", ogg_codecs, false);
AddContainerWithCodecs("audio/flac", implicit_codec, false);
-#if BUILDFLAG(USE_PROPRIETARY_CODECS)
AddContainerWithCodecs("audio/mpeg", mp3_codecs, true); // Allow "mp3".
AddContainerWithCodecs("audio/mp3", implicit_codec, true);
AddContainerWithCodecs("audio/x-mp3", implicit_codec, true);
+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
AddContainerWithCodecs("audio/aac", implicit_codec, true); // AAC / ADTS.
AddContainerWithCodecs("audio/mp4", mp4_audio_codecs, true);
DCHECK(!mp4_video_codecs.empty());
@@ -928,7 +928,6 @@ bool MimeUtil::IsCodecProprietary(Codec
case INVALID_CODEC:
case AC3:
case EAC3:
- case MP3:
case MPEG2_AAC:
case MPEG4_AAC:
case H264:
@@ -936,6 +935,7 @@ bool MimeUtil::IsCodecProprietary(Codec
case DOLBY_VISION:
return true;
+ case MP3:
case PCM:
case VORBIS:
case OPUS:
diff -up chromium-60.0.3112.78/media/BUILD.gn.mp3 chromium-60.0.3112.78/media/BUILD.gn
diff -up chromium-60.0.3112.78/media/formats/BUILD.gn.mp3 chromium-60.0.3112.78/media/formats/BUILD.gn
--- chromium-60.0.3112.78/media/formats/BUILD.gn.mp3 2017-07-31 11:00:08.486638957 -0400
+++ chromium-60.0.3112.78/media/formats/BUILD.gn 2017-07-31 11:01:17.867290730 -0400
@@ -12,6 +12,14 @@ source_set("formats") {
"ac3/ac3_util.h",
"common/offset_byte_queue.cc",
"common/offset_byte_queue.h",
+ "mpeg/adts_constants.cc",
+ "mpeg/adts_constants.h",
+ "mpeg/adts_stream_parser.cc",
+ "mpeg/adts_stream_parser.h",
+ "mpeg/mpeg1_audio_stream_parser.cc",
+ "mpeg/mpeg1_audio_stream_parser.h",
+ "mpeg/mpeg_audio_stream_parser_base.cc",
+ "mpeg/mpeg_audio_stream_parser_base.h",
"webm/webm_audio_client.cc",
"webm/webm_audio_client.h",
"webm/webm_cluster_parser.cc",
@@ -76,14 +84,6 @@ source_set("formats") {
"mp4/sample_to_group_iterator.h",
"mp4/track_run_iterator.cc",
"mp4/track_run_iterator.h",
- "mpeg/adts_constants.cc",
- "mpeg/adts_constants.h",
- "mpeg/adts_stream_parser.cc",
- "mpeg/adts_stream_parser.h",
- "mpeg/mpeg1_audio_stream_parser.cc",
- "mpeg/mpeg1_audio_stream_parser.h",
- "mpeg/mpeg_audio_stream_parser_base.cc",
- "mpeg/mpeg_audio_stream_parser_base.h",
]
}
diff -up chromium-60.0.3112.78/third_party/catapult/third_party/gsutil/gslib/tests/test_data/test.mp3 chromium-60.0.3112.78/third_party/catapult/third_party/gsutil/gslib/tests/test_data/test
diff -up chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h.mp3 chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h
--- chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h.mp3 2017-07-31 10:18:49.000000000 -0400
+++ chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/arm64/config.h 2017-07-31 10:57:55.056231757 -0400
@@ -1,7 +1,7 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic"
+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-cross-compile --cross-prefix=/usr/bin/aarch64-linux-gnu- --target-os=linux --arch=aarch64 --enable-armv8 --extra-cflags='-march=armv8-a' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2017
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
@@ -550,7 +550,7 @@
#define CONFIG_FFPROBE 0
#define CONFIG_FFSERVER 0
#define CONFIG_FFMPEG 0
-#define CONFIG_DCT 0
+#define CONFIG_DCT 1
#define CONFIG_DWT 0
#define CONFIG_ERROR_RESILIENCE 0
#define CONFIG_FAAN 1
@@ -617,8 +617,8 @@
#define CONFIG_LZF 0
#define CONFIG_ME_CMP 0
#define CONFIG_MPEG_ER 0
-#define CONFIG_MPEGAUDIO 0
-#define CONFIG_MPEGAUDIODSP 0
+#define CONFIG_MPEGAUDIO 1
+#define CONFIG_MPEGAUDIODSP 1
#define CONFIG_MPEGVIDEO 0
#define CONFIG_MPEGVIDEOENC 0
#define CONFIG_MSS34DSP 0
@@ -957,7 +957,7 @@
#define CONFIG_MP1FLOAT_DECODER 0
#define CONFIG_MP2_DECODER 0
#define CONFIG_MP2FLOAT_DECODER 0
-#define CONFIG_MP3_DECODER 0
+#define CONFIG_MP3_DECODER 1
#define CONFIG_MP3FLOAT_DECODER 0
#define CONFIG_MP3ADU_DECODER 0
#define CONFIG_MP3ADUFLOAT_DECODER 0
@@ -1263,7 +1263,7 @@
#define CONFIG_MM_DEMUXER 0
#define CONFIG_MMF_DEMUXER 0
#define CONFIG_MOV_DEMUXER 0
-#define CONFIG_MP3_DEMUXER 0
+#define CONFIG_MP3_DEMUXER 1
#define CONFIG_MPC_DEMUXER 0
#define CONFIG_MPC8_DEMUXER 0
#define CONFIG_MPEGPS_DEMUXER 0
@@ -2196,7 +2196,7 @@
#define CONFIG_MJPEG_PARSER 0
#define CONFIG_MLP_PARSER 0
#define CONFIG_MPEG4VIDEO_PARSER 0
-#define CONFIG_MPEGAUDIO_PARSER 0
+#define CONFIG_MPEGAUDIO_PARSER 1
#define CONFIG_MPEGVIDEO_PARSER 0
#define CONFIG_OPUS_PARSER 1
#define CONFIG_PNG_PARSER 0
diff -up chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h.mp3 chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h
--- chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h.mp3 2017-07-31 10:18:49.000000000 -0400
+++ chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h 2017-07-31 10:57:55.057231738 -0400
@@ -1,7 +1,7 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/tguilbert/chrome_root/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic"
+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/tguilbert/chrome_root/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --disable-neon --extra-cflags='-mfpu=vfpv3-d16' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2017
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
@@ -550,7 +550,7 @@
#define CONFIG_FFPROBE 0
#define CONFIG_FFSERVER 0
#define CONFIG_FFMPEG 0
-#define CONFIG_DCT 0
+#define CONFIG_DCT 1
#define CONFIG_DWT 0
#define CONFIG_ERROR_RESILIENCE 0
#define CONFIG_FAAN 1
@@ -617,8 +617,8 @@
#define CONFIG_LZF 0
#define CONFIG_ME_CMP 0
#define CONFIG_MPEG_ER 0
-#define CONFIG_MPEGAUDIO 0
-#define CONFIG_MPEGAUDIODSP 0
+#define CONFIG_MPEGAUDIO 1
+#define CONFIG_MPEGAUDIODSP 1
#define CONFIG_MPEGVIDEO 0
#define CONFIG_MPEGVIDEOENC 0
#define CONFIG_MSS34DSP 0
@@ -957,7 +957,7 @@
#define CONFIG_MP1FLOAT_DECODER 0
#define CONFIG_MP2_DECODER 0
#define CONFIG_MP2FLOAT_DECODER 0
-#define CONFIG_MP3_DECODER 0
+#define CONFIG_MP3_DECODER 1
#define CONFIG_MP3FLOAT_DECODER 0
#define CONFIG_MP3ADU_DECODER 0
#define CONFIG_MP3ADUFLOAT_DECODER 0
@@ -1263,7 +1263,7 @@
#define CONFIG_MM_DEMUXER 0
#define CONFIG_MMF_DEMUXER 0
#define CONFIG_MOV_DEMUXER 0
-#define CONFIG_MP3_DEMUXER 0
+#define CONFIG_MP3_DEMUXER 1
#define CONFIG_MPC_DEMUXER 0
#define CONFIG_MPC8_DEMUXER 0
#define CONFIG_MPEGPS_DEMUXER 0
@@ -2196,7 +2196,7 @@
#define CONFIG_MJPEG_PARSER 0
#define CONFIG_MLP_PARSER 0
#define CONFIG_MPEG4VIDEO_PARSER 0
-#define CONFIG_MPEGAUDIO_PARSER 0
+#define CONFIG_MPEGAUDIO_PARSER 1
#define CONFIG_MPEGVIDEO_PARSER 0
#define CONFIG_OPUS_PARSER 1
#define CONFIG_PNG_PARSER 0
diff -up chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h.mp3 chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h
--- chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h.mp3 2017-07-31 10:18:49.000000000 -0400
+++ chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/arm-neon/config.h 2017-07-31 10:57:55.106230806 -0400
@@ -1,7 +1,7 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/tguilbert/chrome_root/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --enable-neon --extra-cflags='-mfpu=neon' --enable-pic"
+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/home/tguilbert/chrome_root/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=arm --enable-armv6 --enable-armv6t2 --enable-vfp --enable-thumb --extra-cflags='-march=armv7-a' --enable-cross-compile --target-os=linux --cross-prefix=armv7a-cros-linux-gnueabi- --extra-cflags='-mtune=cortex-a8' --extra-cflags='-mfloat-abi=hard' --enable-neon --extra-cflags='-mfpu=neon' --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2017
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
@@ -550,7 +550,7 @@
#define CONFIG_FFPROBE 0
#define CONFIG_FFSERVER 0
#define CONFIG_FFMPEG 0
-#define CONFIG_DCT 0
+#define CONFIG_DCT 1
#define CONFIG_DWT 0
#define CONFIG_ERROR_RESILIENCE 0
#define CONFIG_FAAN 1
@@ -617,8 +617,8 @@
#define CONFIG_LZF 0
#define CONFIG_ME_CMP 0
#define CONFIG_MPEG_ER 0
-#define CONFIG_MPEGAUDIO 0
-#define CONFIG_MPEGAUDIODSP 0
+#define CONFIG_MPEGAUDIO 1
+#define CONFIG_MPEGAUDIODSP 1
#define CONFIG_MPEGVIDEO 0
#define CONFIG_MPEGVIDEOENC 0
#define CONFIG_MSS34DSP 0
@@ -957,7 +957,7 @@
#define CONFIG_MP1FLOAT_DECODER 0
#define CONFIG_MP2_DECODER 0
#define CONFIG_MP2FLOAT_DECODER 0
-#define CONFIG_MP3_DECODER 0
+#define CONFIG_MP3_DECODER 1
#define CONFIG_MP3FLOAT_DECODER 0
#define CONFIG_MP3ADU_DECODER 0
#define CONFIG_MP3ADUFLOAT_DECODER 0
@@ -1263,7 +1263,7 @@
#define CONFIG_MM_DEMUXER 0
#define CONFIG_MMF_DEMUXER 0
#define CONFIG_MOV_DEMUXER 0
-#define CONFIG_MP3_DEMUXER 0
+#define CONFIG_MP3_DEMUXER 1
#define CONFIG_MPC_DEMUXER 0
#define CONFIG_MPC8_DEMUXER 0
#define CONFIG_MPEGPS_DEMUXER 0
@@ -2196,7 +2196,7 @@
#define CONFIG_MJPEG_PARSER 0
#define CONFIG_MLP_PARSER 0
#define CONFIG_MPEG4VIDEO_PARSER 0
-#define CONFIG_MPEGAUDIO_PARSER 0
+#define CONFIG_MPEGAUDIO_PARSER 1
#define CONFIG_MPEGVIDEO_PARSER 0
#define CONFIG_OPUS_PARSER 1
#define CONFIG_PNG_PARSER 0
diff -up chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h.mp3 chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h
--- chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h.mp3 2017-07-31 10:18:49.000000000 -0400
+++ chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/ia32/config.h 2017-07-31 10:57:55.107230787 -0400
@@ -1,7 +1,7 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-yasm --enable-pic"
+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --arch=i686 --extra-cflags='\"-m32\"' --extra-ldflags='\"-m32\"' --enable-yasm --enable-pic --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2017
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
@@ -550,7 +550,7 @@
#define CONFIG_FFPROBE 0
#define CONFIG_FFSERVER 0
#define CONFIG_FFMPEG 0
-#define CONFIG_DCT 0
+#define CONFIG_DCT 1
#define CONFIG_DWT 0
#define CONFIG_ERROR_RESILIENCE 0
#define CONFIG_FAAN 1
@@ -617,8 +617,8 @@
#define CONFIG_LZF 0
#define CONFIG_ME_CMP 0
#define CONFIG_MPEG_ER 0
-#define CONFIG_MPEGAUDIO 0
-#define CONFIG_MPEGAUDIODSP 0
+#define CONFIG_MPEGAUDIO 1
+#define CONFIG_MPEGAUDIODSP 1
#define CONFIG_MPEGVIDEO 0
#define CONFIG_MPEGVIDEOENC 0
#define CONFIG_MSS34DSP 0
@@ -957,7 +957,7 @@
#define CONFIG_MP1FLOAT_DECODER 0
#define CONFIG_MP2_DECODER 0
#define CONFIG_MP2FLOAT_DECODER 0
-#define CONFIG_MP3_DECODER 0
+#define CONFIG_MP3_DECODER 1
#define CONFIG_MP3FLOAT_DECODER 0
#define CONFIG_MP3ADU_DECODER 0
#define CONFIG_MP3ADUFLOAT_DECODER 0
@@ -1263,7 +1263,7 @@
#define CONFIG_MM_DEMUXER 0
#define CONFIG_MMF_DEMUXER 0
#define CONFIG_MOV_DEMUXER 0
-#define CONFIG_MP3_DEMUXER 0
+#define CONFIG_MP3_DEMUXER 1
#define CONFIG_MPC_DEMUXER 0
#define CONFIG_MPC8_DEMUXER 0
#define CONFIG_MPEGPS_DEMUXER 0
@@ -2196,7 +2196,7 @@
#define CONFIG_MJPEG_PARSER 0
#define CONFIG_MLP_PARSER 0
#define CONFIG_MPEG4VIDEO_PARSER 0
-#define CONFIG_MPEGAUDIO_PARSER 0
+#define CONFIG_MPEGAUDIO_PARSER 1
#define CONFIG_MPEGVIDEO_PARSER 0
#define CONFIG_OPUS_PARSER 1
#define CONFIG_PNG_PARSER 0
diff -up chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h.mp3 chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h
--- chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h.mp3 2017-07-31 10:18:49.000000000 -0400
+++ chromium-60.0.3112.78/third_party/ffmpeg/chromium/config/Chromium/linux/x64/config.h 2017-07-31 10:57:55.108230768 -0400
@@ -1,7 +1,7 @@
/* Automatically generated by configure - do not modify! */
#ifndef FFMPEG_CONFIG_H
#define FFMPEG_CONFIG_H
-#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-pic --enable-lto"
+#define FFMPEG_CONFIGURATION "--disable-everything --disable-all --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --enable-avcodec --enable-avformat --enable-avutil --enable-fft --enable-rdft --enable-static --enable-libopus --disable-bzlib --disable-error-resilience --disable-iconv --disable-lzo --disable-network --disable-schannel --disable-sdl --disable-symver --disable-xlib --disable-zlib --disable-securetransport --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-videotoolbox --disable-nvenc --disable-cuda --disable-cuvid --enable-decoder='vorbis,libopus,flac' --enable-decoder='pcm_u8,pcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le' --enable-decoder='pcm_s16be,pcm_s24be,pcm_mulaw,pcm_alaw' --enable-demuxer='ogg,matroska,wav,flac' --enable-parser='opus,vorbis,flac' --extra-cflags=-I/usr/local/google/home/tguilbert/Code/chromium/src/third_party/opus/src/include --optflags='\"-O2\"' --enable-decoder='theora,vp8' --enable-parser='vp3,vp8' --enable-pic --enable-lto --enable-decoder='mp3' --enable-demuxer='mp3' --enable-parser='mpegaudio'"
#define FFMPEG_LICENSE "LGPL version 2.1 or later"
#define CONFIG_THIS_YEAR 2017
#define FFMPEG_DATADIR "/usr/local/share/ffmpeg"
@@ -550,7 +550,7 @@
#define CONFIG_FFPROBE 0
#define CONFIG_FFSERVER 0
#define CONFIG_FFMPEG 0
-#define CONFIG_DCT 0
+#define CONFIG_DCT 1
#define CONFIG_DWT 0
#define CONFIG_ERROR_RESILIENCE 0
#define CONFIG_FAAN 1
@@ -617,8 +617,8 @@
#define CONFIG_LZF 0
#define CONFIG_ME_CMP 0
#define CONFIG_MPEG_ER 0
-#define CONFIG_MPEGAUDIO 0
-#define CONFIG_MPEGAUDIODSP 0
+#define CONFIG_MPEGAUDIO 1
+#define CONFIG_MPEGAUDIODSP 1
#define CONFIG_MPEGVIDEO 0
#define CONFIG_MPEGVIDEOENC 0
#define CONFIG_MSS34DSP 0
@@ -957,7 +957,7 @@
#define CONFIG_MP1FLOAT_DECODER 0
#define CONFIG_MP2_DECODER 0
#define CONFIG_MP2FLOAT_DECODER 0
-#define CONFIG_MP3_DECODER 0
+#define CONFIG_MP3_DECODER 1
#define CONFIG_MP3FLOAT_DECODER 0
#define CONFIG_MP3ADU_DECODER 0
#define CONFIG_MP3ADUFLOAT_DECODER 0
@@ -1263,7 +1263,7 @@
#define CONFIG_MM_DEMUXER 0
#define CONFIG_MMF_DEMUXER 0
#define CONFIG_MOV_DEMUXER 0
-#define CONFIG_MP3_DEMUXER 0
+#define CONFIG_MP3_DEMUXER 1
#define CONFIG_MPC_DEMUXER 0
#define CONFIG_MPC8_DEMUXER 0
#define CONFIG_MPEGPS_DEMUXER 0
@@ -2196,7 +2196,7 @@
#define CONFIG_MJPEG_PARSER 0
#define CONFIG_MLP_PARSER 0
#define CONFIG_MPEG4VIDEO_PARSER 0
-#define CONFIG_MPEGAUDIO_PARSER 0
+#define CONFIG_MPEGAUDIO_PARSER 1
#define CONFIG_MPEGVIDEO_PARSER 0
#define CONFIG_OPUS_PARSER 1
#define CONFIG_PNG_PARSER 0
diff -up chromium-60.0.3112.78/third_party/ffmpeg/ffmpeg_generated.gni.mp3 chromium-60.0.3112.78/third_party/ffmpeg/ffmpeg_generated.gni
--- chromium-60.0.3112.78/third_party/ffmpeg/ffmpeg_generated.gni.mp3 2017-07-31 10:18:46.000000000 -0400
+++ chromium-60.0.3112.78/third_party/ffmpeg/ffmpeg_generated.gni 2017-07-31 10:57:55.109230749 -0400
@@ -177,19 +177,12 @@ if ((is_linux && current_cpu == "arm" &&
]
}
-if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_win && ffmpeg_branding == "Chrome")) {
+if ((current_cpu == "x64") || (is_android && current_cpu == "arm" && arm_use_neon) || (is_android && current_cpu == "arm64") || (is_android && current_cpu == "mips64el") || (is_android && current_cpu == "mipsel") || (is_android && current_cpu == "x86") || (is_linux && current_cpu == "arm" && arm_use_neon) || (is_linux && current_cpu == "arm" && arm_use_neon) || (is_linux && current_cpu == "arm") || (is_linux && current_cpu == "arm64") || (is_linux && current_cpu == "mipsel") || (is_linux && current_cpu == "x64") || (is_linux && current_cpu == "x86") || (is_win))
+{
ffmpeg_c_sources += [
- "libavcodec/aac_ac3_parser.c",
- "libavcodec/aac_parser.c",
- "libavcodec/aacadtsdec.c",
- "libavcodec/aacps_float.c",
- "libavcodec/aacpsdsp_float.c",
- "libavcodec/aacsbr.c",
- "libavcodec/aactab.c",
- "libavcodec/ac3tab.c",
- "libavcodec/autorename_libavcodec_aacdec.c",
"libavcodec/autorename_libavcodec_mpegaudiodsp.c",
"libavcodec/autorename_libavcodec_sbrdsp.c",
+ "libavcodec/ac3tab.c",
"libavcodec/cbrt_data.c",
"libavcodec/dct.c",
"libavcodec/dct32_fixed.c",
@@ -205,7 +198,6 @@ if ((current_cpu == "x64" && ffmpeg_bran
"libavcodec/mpegaudiodsp_float.c",
"libavcodec/sinewin.c",
"libavcodec/sinewin_fixed.c",
- "libavformat/aacdec.c",
"libavformat/apetag.c",
"libavformat/img2.c",
"libavformat/mov.c",
@@ -214,6 +206,21 @@ if ((current_cpu == "x64" && ffmpeg_bran
]
}
+if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mips64el" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && arm_use_neon && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "arm64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "mipsel" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_win && ffmpeg_branding == "Chrome"))
+{
+ ffmpeg_c_sources += [
+ "libavcodec/aac_ac3_parser.c",
+ "libavcodec/aac_parser.c",
+ "libavcodec/aacadtsdec.c",
+ "libavcodec/aacps_float.c",
+ "libavcodec/aacpsdsp_float.c",
+ "libavcodec/aacsbr.c",
+ "libavcodec/aactab.c",
+ "libavcodec/autorename_libavcodec_aacdec.c",
+ "libavformat/aacdec.c",
+ ]
+}
+
if ((is_android && current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_linux && current_cpu == "x64") || (is_linux && current_cpu == "x86") || (is_mac) || (is_win)) {
ffmpeg_c_sources += [
"libavcodec/x86/autorename_libavcodec_x86_vorbisdsp_init.c",
@@ -315,21 +322,31 @@ if ((is_linux && current_cpu == "x64") |
if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_android && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_win && ffmpeg_branding == "Chrome")) {
ffmpeg_c_sources += [
"libavcodec/x86/aacpsdsp_init.c",
+ ]
+}
+
+if ((current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_linux && current_cpu == "x64") || (is_linux && current_cpu == "x86") || (is_win)) {
+ ffmpeg_c_sources += [
"libavcodec/x86/dct_init.c",
"libavcodec/x86/mpegaudiodsp.c",
"libavcodec/x86/sbrdsp_init.c",
]
}
-if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_win && ffmpeg_branding == "Chrome")) {
+if ((current_cpu == "x64") || (is_android && current_cpu == "x86") || (is_linux && current_cpu == "x64") || (is_linux && current_cpu == "x86") || (is_win)) {
ffmpeg_yasm_sources += [
- "libavcodec/x86/aacpsdsp.asm",
"libavcodec/x86/dct32.asm",
"libavcodec/x86/imdct36.asm",
"libavcodec/x86/sbrdsp.asm",
]
}
+if ((current_cpu == "x64" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x64" && ffmpeg_branding == "ChromeOS") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "Chrome") || (is_linux && current_cpu == "x86" && ffmpeg_branding == "ChromeOS") || (is_win && ffmpeg_branding == "Chrome")) {
+ ffmpeg_yasm_sources += [
+ "libavcodec/x86/aacpsdsp.asm",
+ ]
+}
+
if ((is_linux && current_cpu == "arm" && arm_use_neon) || (is_linux && current_cpu == "arm")) {
ffmpeg_c_sources += [
"libavcodec/arm/h264pred_init_arm.c",
diff -up chromium-60.0.3112.78/third_party/ffmpeg/libavcodec/sbrdsp.c.mp3 chromium-60.0.3112.78/third_party/ffmpeg/libavcodec/sbrdsp.c
--- chromium-60.0.3112.78/third_party/ffmpeg/libavcodec/sbrdsp.c.mp3 2017-07-31 10:18:48.000000000 -0400
+++ chromium-60.0.3112.78/third_party/ffmpeg/libavcodec/sbrdsp.c 2017-07-31 10:57:55.110230730 -0400
@@ -23,6 +23,7 @@
#define USE_FIXED 0
#include "aac.h"
+#include "aacsbrdata.h"
#include "config.h"
#include "libavutil/attributes.h"
#include "libavutil/intfloat.h"
diff -up chromium-60.0.3112.78/third_party/webrtc/examples/objc/AppRTCMobile/ios/resources/mozart.mp3 chromium-60.0.3112.78/third_party/webrtc/examples/objc/AppRTCMobile/ios/resources/mozart
diff -up chromium-60.0.3112.78/tools/android/audio_focus_grabber/java/res/raw/ping.mp3 chromium-60.0.3112.78/tools/android/audio_focus_grabber/java/res/raw/ping

@ -0,0 +1,11 @@
diff -up chromium-60.0.3112.78/tools/gn/bootstrap/bootstrap.py.fixme chromium-60.0.3112.78/tools/gn/bootstrap/bootstrap.py
--- chromium-60.0.3112.78/tools/gn/bootstrap/bootstrap.py.fixme 2017-07-31 11:47:11.660774702 -0400
+++ chromium-60.0.3112.78/tools/gn/bootstrap/bootstrap.py 2017-07-31 11:47:32.859362600 -0400
@@ -487,6 +487,7 @@ def write_gn_ninja(path, root_gen_dir, o
'base/sys_info.cc',
'base/task_runner.cc',
'base/task_scheduler/delayed_task_manager.cc',
+ 'base/task_scheduler/environment_config.cc',
'base/task_scheduler/post_task.cc',
'base/task_scheduler/priority_queue.cc',
'base/task_scheduler/scheduler_lock_impl.cc',

@ -0,0 +1,80 @@
diff -up chromium-60.0.3112.78/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 chromium-60.0.3112.78/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h
--- chromium-60.0.3112.78/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h.gcc7 2017-07-25 15:05:15.000000000 -0400
+++ chromium-60.0.3112.78/third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h 2017-07-31 10:51:08.530131802 -0400
@@ -8,6 +8,7 @@
#include "platform/PlatformExport.h"
#include "platform/wtf/ThreadSpecific.h"
+#include <functional>
#include <memory>
namespace gpu {
diff -up chromium-60.0.3112.78/v8/src/objects-body-descriptors.h.gcc7 chromium-60.0.3112.78/v8/src/objects-body-descriptors.h
--- chromium-60.0.3112.78/v8/src/objects-body-descriptors.h.gcc7 2017-07-31 10:51:08.531131782 -0400
+++ chromium-60.0.3112.78/v8/src/objects-body-descriptors.h 2017-07-31 10:55:08.989458924 -0400
@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public
template <typename StaticVisitor>
static inline void IterateBody(HeapObject* obj, int object_size) {
- IterateBody(obj);
+ IterateBody<StaticVisitor>(obj);
}
static inline int SizeOf(Map* map, HeapObject* object) { return kSize; }
diff -up chromium-60.0.3112.78/v8/src/objects/hash-table.h.gcc7 chromium-60.0.3112.78/v8/src/objects/hash-table.h
--- chromium-60.0.3112.78/v8/src/objects/hash-table.h.gcc7 2017-07-25 15:06:36.000000000 -0400
+++ chromium-60.0.3112.78/v8/src/objects/hash-table.h 2017-07-31 10:51:08.531131782 -0400
@@ -138,22 +138,8 @@ class HashTable : public HashTableBase {
public:
typedef Shape ShapeT;
- // Wrapper methods
- inline uint32_t Hash(Key key) {
- if (Shape::UsesSeed) {
- return Shape::SeededHash(key, GetHeap()->HashSeed());
- } else {
- return Shape::Hash(key);
- }
- }
-
- inline uint32_t HashForObject(Key key, Object* object) {
- if (Shape::UsesSeed) {
- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
- } else {
- return Shape::HashForObject(key, object);
- }
- }
+ inline uint32_t Hash(Key key);
+ inline uint32_t HashForObject(Key key, Object* object);
// Returns a new HashTable object.
MUST_USE_RESULT static Handle<Derived> New(
diff -up chromium-60.0.3112.78/v8/src/objects-inl.h.gcc7 chromium-60.0.3112.78/v8/src/objects-inl.h
--- chromium-60.0.3112.78/v8/src/objects-inl.h.gcc7 2017-07-25 15:06:36.000000000 -0400
+++ chromium-60.0.3112.78/v8/src/objects-inl.h 2017-07-31 10:51:08.533131742 -0400
@@ -47,6 +47,25 @@
namespace v8 {
namespace internal {
+template <typename Derived, typename Shape, typename Key>
+uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) {
+ if (Shape::UsesSeed) {
+ return Shape::SeededHash(key, GetHeap()->HashSeed());
+ } else {
+ return Shape::Hash(key);
+ }
+}
+
+template <typename Derived, typename Shape, typename Key>
+uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key,
+ Object* object) {
+ if (Shape::UsesSeed) {
+ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
+ } else {
+ return Shape::HashForObject(key, object);
+ }
+}
+
PropertyDetails::PropertyDetails(Smi* smi) {
value_ = smi->value();
}

@ -0,0 +1,221 @@
diff -up chromium-60.0.3112.78/build/linux/unbundle/libjpeg.gn.gnsystem chromium-60.0.3112.78/build/linux/unbundle/libjpeg.gn
--- chromium-60.0.3112.78/build/linux/unbundle/libjpeg.gn.gnsystem 2017-07-25 15:04:48.000000000 -0400
+++ chromium-60.0.3112.78/build/linux/unbundle/libjpeg.gn 2017-07-31 10:38:25.879951641 -0400
@@ -16,6 +16,10 @@ source_set("libjpeg") {
libs = [ "jpeg" ]
}
+config("system_libjpeg") {
+ defines = [ "USE_SYSTEM_LIBJPEG=1" ]
+}
+
source_set("simd") {
}
diff -up chromium-60.0.3112.78/build/linux/unbundle/libusb.gn.gnsystem chromium-60.0.3112.78/build/linux/unbundle/libusb.gn
--- chromium-60.0.3112.78/build/linux/unbundle/libusb.gn.gnsystem 2017-07-31 10:38:25.880951622 -0400
+++ chromium-60.0.3112.78/build/linux/unbundle/libusb.gn 2017-07-31 10:38:25.879951641 -0400
@@ -0,0 +1,24 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/linux/pkg_config.gni")
+import("//build/shim_headers.gni")
+
+pkg_config("system_libusb") {
+ packages = [ "libusb-1.0" ]
+}
+
+shim_headers("libusb_shim") {
+ root_path = "src/libusb"
+ headers = [
+ "libusb.h",
+ ]
+}
+
+source_set("libusb") {
+ deps = [
+ ":libusb_shim",
+ ]
+ public_configs = [ ":system_libusb" ]
+}
diff -up chromium-60.0.3112.78/build/linux/unbundle/opus.gn.gnsystem chromium-60.0.3112.78/build/linux/unbundle/opus.gn
--- chromium-60.0.3112.78/build/linux/unbundle/opus.gn.gnsystem 2017-07-25 15:04:48.000000000 -0400
+++ chromium-60.0.3112.78/build/linux/unbundle/opus.gn 2017-07-31 10:38:25.880951622 -0400
@@ -1,3 +1,164 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/linux/pkg_config.gni")
+import("//build/shim_headers.gni")
+import("//testing/test.gni")
+
+pkg_config("system_opus") {
+ packages = [ "opus" ]
+}
+
+shim_headers("opus_shim") {
+ root_path = "src/include"
+ headers = [
+ "opus_custom.h",
+ "opus_defines.h",
+ "opus_multistream.h",
+ "opus_types.h",
+ "opus.h",
+ ]
+}
+
+source_set("opus") {
+ deps = [
+ ":opus_shim",
+ ]
+ public_configs = [ ":system_opus" ]
+}
+
+config("opus_test_config") {
+ include_dirs = [
+ "src/celt",
+ "src/silk",
+ ]
+
+ if (is_win) {
+ defines = [ "inline=__inline" ]
+ }
+ if (is_android) {
+ libs = [ "log" ]
+ }
+ if (is_clang) {
+ cflags = [ "-Wno-absolute-value" ]
+ }
+}
+
+executable("opus_compare") {
+ sources = [
+ "src/src/opus_compare.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [
+ ":opus",
+ "//build/config/sanitizers:deps",
+ "//build/win:default_exe_manifest",
+ ]
+}
+
+executable("opus_demo") {
+ sources = [
+ "src/src/opus_demo.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [
+ ":opus",
+ "//build/config/sanitizers:deps",
+ "//build/win:default_exe_manifest",
+ ]
+}
+
+test("test_opus_api") {
+ sources = [
+ "src/tests/test_opus_api.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [
+ ":opus",
+ ]
+}
+
+test("test_opus_encode") {
+ sources = [
+ "src/tests/test_opus_encode.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [
+ ":opus",
+ ]
+}
+
+# GN orders flags on a target before flags from configs. The default config
+# adds -Wall, and this flag have to be after -Wall -- so they need to
+# come from a config and can't be on the target directly.
+config("test_opus_decode_config") {
+ # test_opus_decode passes a null pointer to opus_decode() for an argument
+ # marked as requiring a non-null value by the nonnull function attribute,
+ # and expects opus_decode() to fail. Disable the -Wnonnull option to avoid
+ # a compilation error if -Werror is specified.
+ if (is_posix) {
+ cflags = [ "-Wno-nonnull" ]
+ }
+}
+
+test("test_opus_decode") {
+ sources = [
+ "src/tests/test_opus_decode.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ":test_opus_decode_config",
+ ]
+
+ deps = [
+ ":opus",
+ ]
+}
+
+test("test_opus_padding") {
+ sources = [
+ "src/tests/test_opus_padding.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [
+ ":opus",
+ ]
+}
+
# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
diff -up chromium-60.0.3112.78/build/linux/unbundle/replace_gn_files.py.gnsystem chromium-60.0.3112.78/build/linux/unbundle/replace_gn_files.py
--- chromium-60.0.3112.78/build/linux/unbundle/replace_gn_files.py.gnsystem 2017-07-31 10:38:25.880951622 -0400
+++ chromium-60.0.3112.78/build/linux/unbundle/replace_gn_files.py 2017-07-31 10:39:58.067159914 -0400
@@ -26,6 +26,7 @@ REPLACEMENTS = {
'libevent': 'base/third_party/libevent/BUILD.gn',
'libjpeg': 'build/secondary/third_party/libjpeg_turbo/BUILD.gn',
'libpng': 'third_party/libpng/BUILD.gn',
+ 'libusb': 'third_party/libusb/BUILD.gn',
'libvpx': 'third_party/libvpx/BUILD.gn',
'libwebp': 'third_party/libwebp/BUILD.gn',
'libxml': 'third_party/libxml/BUILD.gn',

@ -0,0 +1,612 @@
diff -up chromium-60.0.3112.78/chrome/browser/ui/libgtkui/gtk_ui.cc.gtk2fix chromium-60.0.3112.78/chrome/browser/ui/libgtkui/gtk_ui.cc
--- chromium-60.0.3112.78/chrome/browser/ui/libgtkui/gtk_ui.cc.gtk2fix 2017-08-03 10:26:36.816787227 -0400
+++ chromium-60.0.3112.78/chrome/browser/ui/libgtkui/gtk_ui.cc 2017-08-03 10:56:53.345661368 -0400
@@ -60,6 +60,7 @@
#include "ui/views/controls/button/blue_button.h"
#include "ui/views/controls/button/label_button.h"
#include "ui/views/controls/button/label_button_border.h"
+#include "ui/views/linux_ui/device_scale_factor_observer.h"
#include "ui/views/linux_ui/window_button_order_observer.h"
#include "ui/views/resources/grit/views_resources.h"
@@ -315,17 +316,6 @@ gfx::FontRenderParams GetGtkFontRenderPa
return params;
}
-float GetRawDeviceScaleFactor() {
- if (display::Display::HasForceDeviceScaleFactor())
- return display::Display::GetForcedDeviceScaleFactor();
-
- GdkScreen* screen = gdk_screen_get_default();
- gint scale = gdk_screen_get_monitor_scale_factor(
- screen, gdk_screen_get_primary_monitor(screen));
- gdouble resolution = gdk_screen_get_resolution(screen);
- return resolution <= 0 ? scale : resolution * scale / kDefaultDPI;
-}
-
views::LinuxUI::NonClientMiddleClickAction GetDefaultMiddleClickAction() {
std::unique_ptr<base::Environment> env(base::Environment::Create());
switch (base::nix::GetDesktopEnvironment(env.get())) {
@@ -414,19 +404,17 @@ GtkUi::GtkUi() : middle_click_action_(Ge
#if GTK_MAJOR_VERSION == 2
native_theme_ = NativeThemeGtk2::instance();
fake_window_ = chrome_gtk_frame_new();
- gtk_widget_realize(fake_window_); // Is this necessary?
#elif GTK_MAJOR_VERSION == 3
native_theme_ = NativeThemeGtk3::instance();
- (void)fake_window_; // Silence the unused warning.
+ fake_window_ = gtk_window_new(GTK_WINDOW_TOPLEVEL);
#else
#error "Unsupported GTK version"
#endif
+ gtk_widget_realize(fake_window_);
}
GtkUi::~GtkUi() {
-#if GTK_MAJOR_VERSION == 2
gtk_widget_destroy(fake_window_);
-#endif
}
void OnThemeChanged(GObject* obj, GParamSpec* param, GtkUi* gtkui) {
@@ -440,6 +428,17 @@ void GtkUi::Initialize() {
g_signal_connect_after(settings, "notify::gtk-icon-theme-name",
G_CALLBACK(OnThemeChanged), this);
+ GdkScreen* screen = gdk_screen_get_default();
+ // Listen for DPI changes.
+ g_signal_connect_after(screen, "notify::resolution",
+ G_CALLBACK(OnDeviceScaleFactorMaybeChangedThunk),
+ this);
+ // Listen for scale factor changes. We would prefer to listen on
+ // |screen|, but there is no scale-factor property, so use an
+ // unmapped window instead.
+ g_signal_connect(fake_window_, "notify::scale-factor",
+ G_CALLBACK(OnDeviceScaleFactorMaybeChangedThunk), this);
+
LoadGtkValues();
#if BUILDFLAG(ENABLE_BASIC_PRINTING)
@@ -701,12 +700,12 @@ void GtkUi::AddWindowButtonOrderObserver
observer->OnWindowButtonOrderingChange(leading_buttons_, trailing_buttons_);
}
- observer_list_.AddObserver(observer);
+ window_button_order_observer_list_.AddObserver(observer);
}
void GtkUi::RemoveWindowButtonOrderObserver(
views::WindowButtonOrderObserver* observer) {
- observer_list_.RemoveObserver(observer);
+ window_button_order_observer_list_.RemoveObserver(observer);
}
void GtkUi::SetWindowButtonOrdering(
@@ -715,8 +714,10 @@ void GtkUi::SetWindowButtonOrdering(
leading_buttons_ = leading_buttons;
trailing_buttons_ = trailing_buttons;
- for (views::WindowButtonOrderObserver& observer : observer_list_)
+ for (views::WindowButtonOrderObserver& observer :
+ window_button_order_observer_list_) {
observer.OnWindowButtonOrderingChange(leading_buttons_, trailing_buttons_);
+ }
}
void GtkUi::SetNonClientMiddleClickAction(NonClientMiddleClickAction action) {
@@ -768,6 +769,16 @@ void GtkUi::NotifyWindowManagerStartupCo
gdk_notify_startup_complete();
}
+void GtkUi::AddDeviceScaleFactorObserver(
+ views::DeviceScaleFactorObserver* observer) {
+ device_scale_factor_observer_list_.AddObserver(observer);
+}
+
+void GtkUi::RemoveDeviceScaleFactorObserver(
+ views::DeviceScaleFactorObserver* observer) {
+ device_scale_factor_observer_list_.RemoveObserver(observer);
+}
+
bool GtkUi::MatchEvent(const ui::Event& event,
std::vector<ui::TextEditCommandAuraLinux>* commands) {
// Ensure that we have a keyboard handler.
@@ -777,6 +788,10 @@ bool GtkUi::MatchEvent(const ui::Event&
return key_bindings_handler_->MatchEvent(event, commands);
}
+void GtkUi::OnDeviceScaleFactorMaybeChanged(void*, GParamSpec*) {
+ UpdateDeviceScaleFactor();
+}
+
void GtkUi::SetScrollbarColors() {
thumb_active_color_ = SkColorSetRGB(244, 244, 244);
thumb_inactive_color_ = SkColorSetRGB(234, 234, 234);
@@ -1037,14 +1052,38 @@ void GtkUi::ResetStyle() {
native_theme_->NotifyObservers();
}
-void GtkUi::UpdateDeviceScaleFactor() {
- // Note: Linux chrome currently does not support dynamic DPI
- // changes. This is to allow flags to override the DPI settings
- // during startup.
- float scale = GetRawDeviceScaleFactor();
+float GtkUi::GetRawDeviceScaleFactor() {
+ if (display::Display::HasForceDeviceScaleFactor())
+ return display::Display::GetForcedDeviceScaleFactor();
+
+#if GTK_MAJOR_VERSION == 2
+ GtkSettings* gtk_settings = gtk_settings_get_default();
+ gint gtk_dpi = -1;
+ g_object_get(gtk_settings, "gtk-xft-dpi", &gtk_dpi, nullptr);
+ const float scale_factor = gtk_dpi / (1024 * kDefaultDPI);
+#else
+ GdkScreen* screen = gdk_screen_get_default();
+ gint scale = gtk_widget_get_scale_factor(fake_window_);
+ DCHECK_GT(scale, 0);
+ gdouble resolution = gdk_screen_get_resolution(screen);
+ const float scale_factor =
+ resolution <= 0 ? scale : resolution * scale / kDefaultDPI;
+#endif
+
// Blacklist scaling factors <120% (crbug.com/484400) and round
// to 1 decimal to prevent rendering problems (crbug.com/485183).
- device_scale_factor_ = scale < 1.2f ? 1.0f : roundf(scale * 10) / 10;
+ return scale_factor < 1.2f ? 1.0f : roundf(scale_factor * 10) / 10;
+}
+
+void GtkUi::UpdateDeviceScaleFactor() {
+ float old_device_scale_factor = device_scale_factor_;
+ device_scale_factor_ = GetRawDeviceScaleFactor();
+ if (device_scale_factor_ != old_device_scale_factor) {
+ for (views::DeviceScaleFactorObserver& observer :
+ device_scale_factor_observer_list_) {
+ observer.OnDeviceScaleFactorChanged();
+ }
+ }
UpdateDefaultFont();
}
diff -up chromium-60.0.3112.78/chrome/browser/ui/libgtkui/gtk_ui.h.gtk2fix chromium-60.0.3112.78/chrome/browser/ui/libgtkui/gtk_ui.h
--- chromium-60.0.3112.78/chrome/browser/ui/libgtkui/gtk_ui.h.gtk2fix 2017-08-03 10:35:28.031517634 -0400
+++ chromium-60.0.3112.78/chrome/browser/ui/libgtkui/gtk_ui.h 2017-08-03 10:37:29.300173415 -0400
@@ -18,12 +18,14 @@
#include "ui/views/linux_ui/linux_ui.h"
#include "ui/views/window/frame_buttons.h"
+typedef struct _GParamSpec GParamSpec;
typedef struct _GtkStyle GtkStyle;
typedef struct _GtkWidget GtkWidget;
namespace libgtkui {
class Gtk2KeyBindingsHandler;
class GConfListener;
+class DeviceScaleFactorObserver;
// Interface to GTK2 desktop features.
//
@@ -97,6 +99,10 @@ class GtkUi : public views::LinuxUI {
bool UnityIsRunning() override;
NonClientMiddleClickAction GetNonClientMiddleClickAction() override;
void NotifyWindowManagerStartupComplete() override;
+ void AddDeviceScaleFactorObserver(
+ views::DeviceScaleFactorObserver* observer) override;
+ void RemoveDeviceScaleFactorObserver(
+ views::DeviceScaleFactorObserver* observer) override;
// ui::TextEditKeybindingDelegate:
bool MatchEvent(const ui::Event& event,
@@ -110,6 +116,12 @@ class GtkUi : public views::LinuxUI {
typedef std::map<int, SkColor> ColorMap;
typedef std::map<int, color_utils::HSL> TintMap;
+ CHROMEG_CALLBACK_1(GtkUi,
+ void,
+ OnDeviceScaleFactorMaybeChanged,
+ void*,
+ GParamSpec*);
+
// This method returns the colors webkit will use for the scrollbars. When no
// colors are specified by the GTK+ theme, this function averages of the
// thumb part and of the track colors.
@@ -129,9 +141,12 @@ class GtkUi : public views::LinuxUI {
bool GetChromeStyleColor(const char* sytle_property,
SkColor* ret_color) const;
+ float GetRawDeviceScaleFactor();
+
ui::NativeTheme* native_theme_;
- // A GtkWindow object with the class "ChromeGtkFrame".
+ // On Gtk2, A GtkWindow object with the class "ChromeGtkFrame". On
+ // Gtk3, a regular GtkWindow.
GtkWidget* fake_window_;
// Colors calculated by LoadGtkValues() that are given to the
@@ -171,7 +186,12 @@ class GtkUi : public views::LinuxUI {
std::unique_ptr<Gtk2KeyBindingsHandler> key_bindings_handler_;
// Objects to notify when the window frame button order changes.
- base::ObserverList<views::WindowButtonOrderObserver> observer_list_;
+ base::ObserverList<views::WindowButtonOrderObserver>
+ window_button_order_observer_list_;
+
+ // Objects to notify when the device scale factor changes.
+ base::ObserverList<views::DeviceScaleFactorObserver>
+ device_scale_factor_observer_list_;
// Whether we should lower the window on a middle click to the non client
// area.
diff -up chromium-60.0.3112.78/ui/views/linux_ui/device_scale_factor_observer.h.gtk2fix chromium-60.0.3112.78/ui/views/linux_ui/device_scale_factor_observer.h
--- chromium-60.0.3112.78/ui/views/linux_ui/device_scale_factor_observer.h.gtk2fix 2017-08-03 10:39:23.600963296 -0400
+++ chromium-60.0.3112.78/ui/views/linux_ui/device_scale_factor_observer.h 2017-08-03 10:39:39.024664885 -0400
@@ -0,0 +1,19 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_VIEWS_LINUX_UI_DEVICE_SCALE_FACTOR_OBSERVER_H_
+#define UI_VIEWS_LINUX_UI_DEVICE_SCALE_FACTOR_OBSERVER_H_
+
+namespace views {
+
+class DeviceScaleFactorObserver {
+ public:
+ virtual ~DeviceScaleFactorObserver() {}
+
+ virtual void OnDeviceScaleFactorChanged() = 0;
+};
+
+} // namespace views
+
+#endif // UI_VIEWS_LINUX_UI_DEVICE_SCALE_FACTOR_OBSERVER_H_
diff -up chromium-60.0.3112.78/ui/views/linux_ui/linux_ui.h.gtk2fix chromium-60.0.3112.78/ui/views/linux_ui/linux_ui.h
--- chromium-60.0.3112.78/ui/views/linux_ui/linux_ui.h.gtk2fix 2017-08-03 10:39:48.866474799 -0400
+++ chromium-60.0.3112.78/ui/views/linux_ui/linux_ui.h 2017-08-03 10:41:05.598991893 -0400
@@ -38,6 +38,7 @@ class NativeTheme;
namespace views {
class Border;
+class DeviceScaleFactorObserver;
class LabelButton;
class LabelButtonBorder;
class WindowButtonOrderObserver;
@@ -157,6 +158,16 @@ class VIEWS_EXPORT LinuxUI : public ui::
// Determines the device scale factor of the primary screen.
virtual float GetDeviceScaleFactor() const = 0;
+
+ // Registers |observer| to be notified about changes to the device
+ // scale factor.
+ virtual void AddDeviceScaleFactorObserver(
+ DeviceScaleFactorObserver* observer) = 0;
+
+ // Unregisters |observer| from receiving changes to the device scale
+ // factor.
+ virtual void RemoveDeviceScaleFactorObserver(
+ DeviceScaleFactorObserver* observer) = 0;
};
} // namespace views
diff -up chromium-60.0.3112.78/ui/views/test/desktop_screen_x11_test_api.cc.gtk2fix chromium-60.0.3112.78/ui/views/test/desktop_screen_x11_test_api.cc
--- chromium-60.0.3112.78/ui/views/test/desktop_screen_x11_test_api.cc.gtk2fix 2017-08-03 10:41:28.014558483 -0400
+++ chromium-60.0.3112.78/ui/views/test/desktop_screen_x11_test_api.cc 2017-08-03 10:41:49.326146074 -0400
@@ -13,7 +13,7 @@ namespace test {
void DesktopScreenX11TestApi::UpdateDisplays() {
DesktopScreenX11* screen =
static_cast<DesktopScreenX11*>(display::Screen::GetScreen());
- screen->ConfigureTimerFired();
+ screen->UpdateDisplays();
}
} // namespace test
diff -up chromium-60.0.3112.78/ui/views/widget/desktop_aura/desktop_screen_x11.cc.gtk2fix chromium-60.0.3112.78/ui/views/widget/desktop_aura/desktop_screen_x11.cc
--- chromium-60.0.3112.78/ui/views/widget/desktop_aura/desktop_screen_x11.cc.gtk2fix 2017-08-03 10:41:59.219954866 -0400
+++ chromium-60.0.3112.78/ui/views/widget/desktop_aura/desktop_screen_x11.cc 2017-08-03 10:47:16.589818323 -0400
@@ -11,6 +11,7 @@
#undef RootWindow
#include "base/logging.h"
+#include "base/threading/thread_task_runner_handle.h"
#include "base/trace_event/trace_event.h"
#include "ui/aura/window.h"
#include "ui/aura/window_event_dispatcher.h"
@@ -40,10 +41,6 @@ const char* const kAtomsToCache[] = {
nullptr
};
-// The delay to perform configuration after RRNotify. See the comment
-// in |Dispatch()|.
-const int64_t kConfigureDelayMs = 500;
-
double GetDeviceScaleFactor() {
float device_scale_factor = 1.0f;
if (views::LinuxUI::instance()) {
@@ -95,7 +92,10 @@ DesktopScreenX11::DesktopScreenX11()
has_xrandr_(false),
xrandr_event_base_(0),
primary_display_index_(0),
+ weak_factory_(this),
atom_cache_(xdisplay_, kAtomsToCache) {
+ if (views::LinuxUI::instance())
+ views::LinuxUI::instance()->AddDeviceScaleFactorObserver(this);
// We only support 1.3+. There were library changes before this and we should
// use the new interface instead of the 1.2 one.
int randr_version_major = 0;
@@ -124,6 +124,8 @@ DesktopScreenX11::DesktopScreenX11()
}
DesktopScreenX11::~DesktopScreenX11() {
+ if (views::LinuxUI::instance())
+ views::LinuxUI::instance()->AddDeviceScaleFactorObserver(this);
if (has_xrandr_ && ui::PlatformEventSource::GetInstance())
ui::PlatformEventSource::GetInstance()->RemovePlatformEventDispatcher(this);
}
@@ -251,18 +253,7 @@ uint32_t DesktopScreenX11::DispatchEvent
} else if (event->type - xrandr_event_base_ == RRNotify ||
(event->type == PropertyNotify &&
event->xproperty.atom == atom_cache_.GetAtom("_NET_WORKAREA"))) {
- // There's some sort of observer dispatch going on here, but I don't think
- // it's the screen's?
- if (configure_timer_.get() && configure_timer_->IsRunning()) {
- configure_timer_->Reset();
- } else {
- configure_timer_.reset(new base::OneShotTimer());
- configure_timer_->Start(
- FROM_HERE,
- base::TimeDelta::FromMilliseconds(kConfigureDelayMs),
- this,
- &DesktopScreenX11::ConfigureTimerFired);
- }
+ RestartDelayedConfigurationTask();
} else {
NOTREACHED();
}
@@ -270,11 +261,15 @@ uint32_t DesktopScreenX11::DispatchEvent
return ui::POST_DISPATCH_NONE;
}
+void DesktopScreenX11::OnDeviceScaleFactorChanged() {
+ RestartDelayedConfigurationTask();
+}
+
// static
void DesktopScreenX11::UpdateDeviceScaleFactorForTest() {
DesktopScreenX11* screen =
static_cast<DesktopScreenX11*>(display::Screen::GetScreen());
- screen->ConfigureTimerFired();
+ screen->UpdateDisplays();
}
////////////////////////////////////////////////////////////////////////////////
@@ -288,7 +283,11 @@ DesktopScreenX11::DesktopScreenX11(
xrandr_event_base_(0),
displays_(test_displays),
primary_display_index_(0),
- atom_cache_(xdisplay_, kAtomsToCache) {}
+ weak_factory_(this),
+ atom_cache_(xdisplay_, kAtomsToCache) {
+ if (views::LinuxUI::instance())
+ views::LinuxUI::instance()->AddDeviceScaleFactorObserver(this);
+}
std::vector<display::Display> DesktopScreenX11::BuildDisplaysFromXRandRInfo() {
std::vector<display::Display> displays;
@@ -390,7 +389,14 @@ std::vector<display::Display> DesktopScr
return displays;
}
-void DesktopScreenX11::ConfigureTimerFired() {
+void DesktopScreenX11::RestartDelayedConfigurationTask() {
+ delayed_configuration_task_.Reset(base::Bind(
+ &DesktopScreenX11::UpdateDisplays, weak_factory_.GetWeakPtr()));
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
+ FROM_HERE, delayed_configuration_task_.callback());
+}
+
+void DesktopScreenX11::UpdateDisplays() {
std::vector<display::Display> old_displays = displays_;
SetDisplaysInternal(BuildDisplaysFromXRandRInfo());
change_notifier_.NotifyDisplaysChanged(old_displays, displays_);
diff -up chromium-60.0.3112.78/ui/views/widget/desktop_aura/desktop_screen_x11.h.gtk2fix chromium-60.0.3112.78/ui/views/widget/desktop_aura/desktop_screen_x11.h
--- chromium-60.0.3112.78/ui/views/widget/desktop_aura/desktop_screen_x11.h.gtk2fix 2017-08-03 10:47:28.734583288 -0400
+++ chromium-60.0.3112.78/ui/views/widget/desktop_aura/desktop_screen_x11.h 2017-08-03 10:49:54.850756813 -0400
@@ -9,11 +9,12 @@
#include <memory>
+#include "base/cancelable_callback.h"
#include "base/macros.h"
-#include "base/timer/timer.h"
#include "ui/display/display_change_notifier.h"
#include "ui/display/screen.h"
#include "ui/events/platform/platform_event_dispatcher.h"
+#include "ui/views/linux_ui/device_scale_factor_observer.h"
#include "ui/gfx/x/x11_atom_cache.h"
#include "ui/views/views_export.h"
@@ -30,7 +31,8 @@ class DesktopScreenX11TestApi;
// Our singleton screen implementation that talks to xrandr.
class VIEWS_EXPORT DesktopScreenX11 : public display::Screen,
- public ui::PlatformEventDispatcher {
+ public ui::PlatformEventDispatcher,
+ public views::DeviceScaleFactorObserver {
public:
DesktopScreenX11();
@@ -56,6 +58,9 @@ class VIEWS_EXPORT DesktopScreenX11 : pu
bool CanDispatchEvent(const ui::PlatformEvent& event) override;
uint32_t DispatchEvent(const ui::PlatformEvent& event) override;
+ // views::DeviceScaleFactorObserver:
+ void OnDeviceScaleFactorChanged() override;
+
static void UpdateDeviceScaleFactorForTest();
private:
@@ -69,10 +74,15 @@ class VIEWS_EXPORT DesktopScreenX11 : pu
// the X server.
std::vector<display::Display> BuildDisplaysFromXRandRInfo();
- // We delay updating the display so we can coalesce events.
- void ConfigureTimerFired();
+ // Removes |delayed_configuration_task_| from the task queue (if
+ // it's in the queue) and adds it back at the end of the queue.
+ void RestartDelayedConfigurationTask();
+
+ // Updates |displays_| with the latest XRandR info.
+ void UpdateDisplays();
- // Updates |displays_| and sets FontRenderParams's scale factor.
+ // Updates |displays_| from |displays| and sets FontRenderParams's scale
+ // factor.
void SetDisplaysInternal(const std::vector<display::Display>& displays);
Display* xdisplay_;
@@ -91,12 +101,14 @@ class VIEWS_EXPORT DesktopScreenX11 : pu
// The index into displays_ that represents the primary display.
size_t primary_display_index_;
- // The timer to delay configuring outputs. See also the comments in
- // Dispatch().
- std::unique_ptr<base::OneShotTimer> configure_timer_;
+ // The task to delay configuring outputs. We delay updating the
+ // display so we can coalesce events.
+ base::CancelableCallback<void()> delayed_configuration_task_;
display::DisplayChangeNotifier change_notifier_;
+ base::WeakPtrFactory<DesktopScreenX11> weak_factory_;
+
ui::X11AtomCache atom_cache_;
DISALLOW_COPY_AND_ASSIGN(DesktopScreenX11);
diff -up chromium-60.0.3112.78/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc.gtk2fix chromium-60.0.3112.78/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
--- chromium-60.0.3112.78/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc.gtk2fix 2017-08-03 10:50:14.858370042 -0400
+++ chromium-60.0.3112.78/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc 2017-08-03 10:52:58.367207187 -0400
@@ -212,13 +212,16 @@ DesktopWindowTreeHostX11::DesktopWindowT
has_pointer_focus_(false),
modal_dialog_counter_(0),
close_widget_factory_(this),
- weak_factory_(this) {}
+ weak_factory_(this) {
+ display::Screen::GetScreen()->AddObserver(this);
+}
DesktopWindowTreeHostX11::~DesktopWindowTreeHostX11() {
window()->ClearProperty(kHostForRootWindow);
aura::client::SetWindowMoveClient(window(), NULL);
desktop_native_widget_aura_->OnDesktopWindowTreeHostDestroyed(this);
DestroyDispatcher();
+ display::Screen::GetScreen()->RemoveObserver(this);
}
// static
@@ -1360,6 +1363,30 @@ void DesktopWindowTreeHostX11::OnCursorV
}
////////////////////////////////////////////////////////////////////////////////
+// DesktopWindowTreeHostX11, display::DisplayObserver implementation:
+
+void DesktopWindowTreeHostX11::OnDisplayAdded(
+ const display::Display& new_display) {}
+
+void DesktopWindowTreeHostX11::OnDisplayRemoved(
+ const display::Display& old_display) {}
+
+void DesktopWindowTreeHostX11::OnDisplayMetricsChanged(
+ const display::Display& display,
+ uint32_t changed_metrics) {
+ if ((changed_metrics & DISPLAY_METRIC_DEVICE_SCALE_FACTOR) &&
+ display::Screen::GetScreen()->GetDisplayNearestWindow(window()).id() ==
+ display.id()) {
+ // When the scale factor changes, also pretend that a resize
+ // occured so that the window layout will be refreshed and a
+ // compositor redraw will be scheduled. This is weird, but works.
+ // TODO(thomasanderson): Figure out a more direct way of doing
+ // this.
+ RestartDelayedResizeTask();
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
// DesktopWindowTreeHostX11, private:
void DesktopWindowTreeHostX11::InitX11Window(
@@ -2079,13 +2106,8 @@ uint32_t DesktopWindowTreeHostX11::Dispa
if (origin_changed)
OnHostMovedInPixels(bounds_in_pixels_.origin());
- if (size_changed) {
- delayed_resize_task_.Reset(base::Bind(
- &DesktopWindowTreeHostX11::DelayedResize,
- close_widget_factory_.GetWeakPtr(), bounds_in_pixels.size()));
- base::ThreadTaskRunnerHandle::Get()->PostTask(
- FROM_HERE, delayed_resize_task_.callback());
- }
+ if (size_changed)
+ RestartDelayedResizeTask();
break;
}
case GenericEvent: {
@@ -2358,6 +2380,14 @@ void DesktopWindowTreeHostX11::EnableEve
targeter_for_modal_.reset();
}
+void DesktopWindowTreeHostX11::RestartDelayedResizeTask() {
+ delayed_resize_task_.Reset(
+ base::Bind(&DesktopWindowTreeHostX11::DelayedResize,
+ close_widget_factory_.GetWeakPtr(), bounds_in_pixels_.size()));
+ base::ThreadTaskRunnerHandle::Get()->PostTask(
+ FROM_HERE, delayed_resize_task_.callback());
+}
+
////////////////////////////////////////////////////////////////////////////////
// DesktopWindowTreeHost, public:
diff -up chromium-60.0.3112.78/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h.gtk2fix chromium-60.0.3112.78/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
--- chromium-60.0.3112.78/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h.gtk2fix 2017-08-03 10:54:34.484348046 -0400
+++ chromium-60.0.3112.78/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h 2017-08-03 10:54:43.564172318 -0400
@@ -18,6 +18,7 @@
#include "ui/aura/scoped_window_targeter.h"
#include "ui/aura/window_tree_host.h"
#include "ui/base/cursor/cursor_loader_x11.h"
+#include "ui/display/display_observer.h"
#include "ui/events/platform/platform_event_dispatcher.h"
#include "ui/gfx/geometry/insets.h"
#include "ui/gfx/geometry/rect.h"
@@ -45,7 +46,8 @@ class X11DesktopWindowMoveClient;
class VIEWS_EXPORT DesktopWindowTreeHostX11
: public DesktopWindowTreeHost,
public aura::WindowTreeHost,
- public ui::PlatformEventDispatcher {
+ public ui::PlatformEventDispatcher,
+ public display::DisplayObserver {
public:
DesktopWindowTreeHostX11(
internal::NativeWidgetDelegate* native_widget_delegate,
@@ -170,6 +172,12 @@ class VIEWS_EXPORT DesktopWindowTreeHost
const gfx::Point& location_in_pixels) override;
void OnCursorVisibilityChangedNative(bool show) override;
+ // Overridden from display::DisplayObserver:
+ void OnDisplayAdded(const display::Display& new_display) override;
+ void OnDisplayRemoved(const display::Display& old_display) override;
+ void OnDisplayMetricsChanged(const display::Display& display,
+ uint32_t changed_metrics) override;
+
private:
friend class DesktopWindowTreeHostX11HighDPITest;
// Initializes our X11 surface to draw on. This method performs all
@@ -278,6 +286,10 @@ class VIEWS_EXPORT DesktopWindowTreeHost
// Enables event listening after closing |dialog|.
void EnableEventListening();
+ // Removes |delayed_resize_task_| from the task queue (if it's in
+ // the queue) and adds it back at the end of the queue.
+ void RestartDelayedResizeTask();
+
// X11 things
// The display and the native X window hosting the root window.
XDisplay* xdisplay_;

@ -0,0 +1,14 @@
diff -up chromium-60.0.3112.78/third_party/libjpeg_turbo/jpeglib.h.nomangle chromium-60.0.3112.78/third_party/libjpeg_turbo/jpeglib.h
--- chromium-60.0.3112.78/third_party/libjpeg_turbo/jpeglib.h.nomangle 2017-08-01 15:29:00.870759406 -0400
+++ chromium-60.0.3112.78/third_party/libjpeg_turbo/jpeglib.h 2017-08-01 15:29:09.326593414 -0400
@@ -18,10 +18,6 @@
#ifndef JPEGLIB_H
#define JPEGLIB_H
-/* Begin chromium edits */
-#include "jpeglibmangler.h"
-/* End chromium edits */
-
/*
* First we include the configuration files that record how this
* installation of the JPEG library is set up. jconfig.h can be

@ -0,0 +1,28 @@
diff -up chromium-60.0.3112.78/tools/gn/BUILD.gn.lastcommit chromium-60.0.3112.78/tools/gn/BUILD.gn
--- chromium-60.0.3112.78/tools/gn/BUILD.gn.lastcommit 2017-07-31 10:42:38.568041044 -0400
+++ chromium-60.0.3112.78/tools/gn/BUILD.gn 2017-07-31 10:47:50.760974587 -0400
@@ -268,7 +268,6 @@ executable("gn") {
deps = [
":gn_lib",
- ":last_commit_position",
"//base",
"//build/config:exe_and_shlib_deps",
"//build/win:default_exe_manifest",
diff -up chromium-60.0.3112.78/tools/gn/gn_main.cc.lastcommit chromium-60.0.3112.78/tools/gn/gn_main.cc
--- chromium-60.0.3112.78/tools/gn/gn_main.cc.lastcommit 2017-07-25 15:05:19.000000000 -0400
+++ chromium-60.0.3112.78/tools/gn/gn_main.cc 2017-07-31 10:42:38.568041044 -0400
@@ -12,13 +12,7 @@
#include "tools/gn/standard_out.h"
#include "tools/gn/switches.h"
-// Only the GN-generated build makes this header for now.
-// TODO(brettw) consider adding this if we need it in GYP.
-#if defined(GN_BUILD)
-#include "tools/gn/last_commit_position.h"
-#else
#define LAST_COMMIT_POSITION "UNKNOWN"
-#endif
namespace {

@ -0,0 +1,17 @@
diff -up chromium-60.0.3112.78/third_party/libpng/pnglibconf.h.noprefix chromium-60.0.3112.78/third_party/libpng/pnglibconf.h
--- chromium-60.0.3112.78/third_party/libpng/pnglibconf.h.noprefix 2017-08-01 14:42:54.321986758 -0400
+++ chromium-60.0.3112.78/third_party/libpng/pnglibconf.h 2017-08-01 14:43:01.493845832 -0400
@@ -225,13 +225,4 @@
#define PNG_USER_CHUNK_MALLOC_MAX 4000000L
/* end of chromium settings */
-/* chromium prefixing */
-/*
- * This is necessary to build multiple copies of libpng. We need this while pdfium builds
- * its own copy of libpng.
- */
-#define PNG_PREFIX
-#include "pngprefix.h"
-/* end of chromium prefixing */
-
#endif /* PNGLCONF_H */

@ -0,0 +1,13 @@
diff -up chromium-60.0.3112.78/third_party/zlib/zconf.h.nozmangle chromium-60.0.3112.78/third_party/zlib/zconf.h
--- chromium-60.0.3112.78/third_party/zlib/zconf.h.nozmangle 2017-08-04 10:45:17.509152089 -0400
+++ chromium-60.0.3112.78/third_party/zlib/zconf.h 2017-08-04 10:45:30.451902380 -0400
@@ -8,9 +8,6 @@
#ifndef ZCONF_H
#define ZCONF_H
-/* This include does prefixing as below, but with an updated set of names */
-#include "names.h"
-
/*
* If you *really* need a unique prefix for all types and library functions,
* compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.

@ -8,6 +8,7 @@
# Leave this alone, please. # Leave this alone, please.
%global target out/Release %global target out/Release
%global headlesstarget out/Headless
# Debuginfo packages aren't very useful here. If you need to debug # Debuginfo packages aren't very useful here. If you need to debug
# you should do a proper debug build (not implemented in this spec yet) # you should do a proper debug build (not implemented in this spec yet)
@ -25,7 +26,7 @@
# Requires is trickier. # Requires is trickier.
%global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so %global __provides_exclude_from %{chromium_path}/.*\\.so|%{chromium_path}/lib/.*\\.so
%global privlibs libEGL|libGLESv2|libaccessibility|libanimation|libaura|libaura_extra|libbase|libbase_i18n|libbindings|libblink_core|libblink_modules|libblink_platform|libblink_web|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcc|libcc_animation|libcc_base|libcc_blink|libcc_debug|libcc_ipc|libcc_paint|libcc_surfaces|libchromium_sqlite3|libclearkeycdm|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent|libcpp|libcrcrypto|libdbus|libdevice_base|libdevice_battery|libdevice_event_log|libdevice_gamepad|libdevice_vibration|libdevice_vr|libdevices|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay|libdisplay_compositor|libdisplay_types|libdisplay_util|libdomain_reliability|libembedder|libevents|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents_x|libffmpeg|libfingerprint|libgcm|libgeneric_sensor|libgeolocation|libgeometry|libgeometry_skia|libgesture_detection|libgfx|libgfx_ipc|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_x11|libgin|libgin_features|libgl_in_process_context|libgl_init|libgl_wrapper|libgles2_c_lib|libgles2_implementation|libgles2_utils|libgpu|libgtk2ui|libicui18n|libicuuc|libipc|libjs|libkeyboard|libkeyboard_with_content|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|libmanager|libmedia|libmedia_blink|libmedia_gpu|libmedia_mojo_services|libmessage_center|libmidi|libmojo_common_lib|libmojo_ime_lib|libmojo_public_system|libmojo_public_system_cpp|libmojo_system_impl|libnative_theme|libnet|libnet_with_v8|libonc|libosmesa|libplatform|libplatform_wtf|libpolicy_component|libpolicy_proto|libpower_save_blocker|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_globals|libproxy_config|librange|libsandbox_services|libseccomp_bpf|libsensors|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libui_base|libui_base_ime|libui_base_x|libui_data_pack|libui_touch_selection|libui_views_mus_lib|liburl|liburl_ipc|liburl_matcher|libuser_manager|libuser_prefs|libv8|libv8_libbase|libv8_libplatform|libviews|libweb_dialogs|libwebdata_common|libwebview|libwidevinecdm|libwidevinecdmadapter|libwm|libwtf|libx11_events_platform|libx11_window %global privlibs libaccessibility|libanimation|libaura_extra|libaura|libbase_i18n|libbase|libbindings|libblink_android_mojo_bindings_shared|libblink_core|libblink_modules|libblink_mojo_bindings_shared|libblink_offscreen_canvas_mojo_bindings_shared|libblink_platform|libblink_web|libbluetooth|libboringssl|libbrowser_ui_views|libcaptive_portal|libcapture_base|libcapture_lib|libcc_animation|libcc_base|libcc_blink|libcc_debug|libcc_ipc|libcc_paint|libcc|libcc_surfaces|libcdm_manager|libchromium_sqlite3|libclearkeycdm|libcloud_policy_proto_generated_compile|libcodec|libcolor_space|libcommon|libcompositor|libcontent_common_mojo_bindings_shared|libcontent|libcpp|libcrcrypto|libdbus|libdevice_base|libdevice_event_log|libdevice_gamepad|libdevices|libdevice_vr_mojo_bindings_blink|libdevice_vr_mojo_bindings_shared|libdevice_vr_mojo_bindings|libdiscardable_memory_client|libdiscardable_memory_common|libdiscardable_memory_service|libdisplay_compositor|libdisplay|libdisplay_types|libdisplay_util|libdomain_reliability|libEGL|libembedder|libevents_base|libevents_devices_x11|libevents_ozone_layout|libevents|libevents_x|libffmpeg|libfingerprint|libframe_sinks|libgcm|libgeneric_sensor_public_interfaces_shared|libgeneric_sensor|libgeolocation|libgeometry_skia|libgeometry|libgesture_detection|libgfx_ipc_color|libgfx_ipc_geometry|libgfx_ipc_skia|libgfx_ipc|libgfx|libgfx_x11|libgin_features|libgin|libgles2_c_lib|libgles2_implementation|libgles2_utils|libGLESv2|libgl_init|libgl_in_process_context|libgl_wrapper|libgpu|libgtk2ui|libheadless|libicui18n|libicuuc|libipc_mojom_shared|libipc_mojom|libipc|libjs|libkeyboard|libkeyboard_with_content|libkeycodes_x11|libkeyed_service_content|libkeyed_service_core|libmanager|libmedia_blink|libmedia_gpu|libmedia_mojo_services|libmedia|libmessage_center|libmidi|libmirclient.9|libmojo_common_lib|libmojo_ime_lib|libmojo_public_system_cpp|libmojo_public_system|libmojo_system_impl|libnative_theme|libnet|libnet_with_v8|libonc|libosmesa|libplatform|libpolicy_component|libpolicy_proto|libpower_save_blocker|libppapi_host|libppapi_proxy|libppapi_shared|libprefs|libprinting|libprotobuf_lite|libproxy_config|libpublic|librange|libresource_coordinator_cpp|libresource_coordinator_public_interfaces_internal_shared|libsandbox_services|libseccomp_bpf|libsensors|libservice_manager_cpp|libservice_manager_cpp_types|libservice_manager_mojom_blink|libservice_manager_mojom_constants_blink|libservice_manager_mojom_constants_shared|libservice_manager_mojom_constants|libservice_manager_mojom_shared|libservice_manager_mojom|libsessions|libshared_memory_support|libshell_dialogs|libskia|libsnapshot|libsql|libstartup_tracing|libstorage_browser|libstorage_common|libstub_window|libsuid_sandbox_client|libsurface|libtracing|libui_base_ime|libui_base|libui_base_x|libui_data_pack|libui_touch_selection|libui_views_mus_lib|liburl_ipc|liburl_matcher|liburl|libuser_manager|libuser_prefs|libv8_libbase|libv8_libplatform|libv8|libviews|libVkLayer_core_validation|libVkLayer_object_tracker|libVkLayer_parameter_validation|libVkLayer_swapchain|libVkLayer_threading|libVkLayer_unique_objects|libwebdata_common|libweb_dialogs|libwebview|libwidevinecdmadapter|libwidevinecdm|libwm|libwtf|libx11_events_platform|libx11_window
%global __requires_exclude ^(%{privlibs})\\.so %global __requires_exclude ^(%{privlibs})\\.so
# Try to not use the Xvfb as it is slow.. # Try to not use the Xvfb as it is slow..
@ -40,14 +41,8 @@
# https://www.chromium.org/developers/testing/addresssanitizer # https://www.chromium.org/developers/testing/addresssanitizer
%global asan 0 %global asan 0
# Only flip this on if stuff is really broken re: nacl. # nacl/pnacl are soon to be dead. We're just killing them off early.
# chromium-native_client doesn't build on Fedora 23 because
# clang is too old and buggy.
%if 0%{?fedora} <= 23
%global killnacl 1 %global killnacl 1
%else
%global killnacl 0
%endif
%if 0%{?killnacl} %if 0%{?killnacl}
%global nacl 0 %global nacl 0
@ -111,11 +106,15 @@ BuildRequires: libicu-devel >= 5.4
%global default_client_secret miEreAep8nuvTdvLums6qyLK %global default_client_secret miEreAep8nuvTdvLums6qyLK
%global chromoting_client_id 449907151817-8vnlfih032ni8c4jjps9int9t86k546t.apps.googleusercontent.com %global chromoting_client_id 449907151817-8vnlfih032ni8c4jjps9int9t86k546t.apps.googleusercontent.com
%global majorversion 59 %global majorversion 60
%if %{freeworld}
Name: chromium%{chromium_channel}%{?freeworld:-freeworld}
%else
Name: chromium%{chromium_channel} Name: chromium%{chromium_channel}
Version: %{majorversion}.0.3071.115 %endif
Release: 3%{?dist} Version: %{majorversion}.0.3112.90
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser Summary: A WebKit (Blink) powered web browser
Url: http://www.chromium.org/Home Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2) License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@ -149,10 +148,10 @@ Patch18: chromium-52.0.2743.82-master-prefs-path.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1361157 # https://bugzilla.redhat.com/show_bug.cgi?id=1361157
Patch19: chromium-52.0.2743.116-unset-madv_free.patch Patch19: chromium-52.0.2743.116-unset-madv_free.patch
# Use gn system files # Use gn system files
Patch20: chromium-54.0.2840.59-gn-system.patch Patch20: chromium-60.0.3112.78-gn-system.patch
# Fix last commit position issue # Fix last commit position issue
# https://groups.google.com/a/chromium.org/forum/#!topic/gn-dev/7nlJv486bD4 # https://groups.google.com/a/chromium.org/forum/#!topic/gn-dev/7nlJv486bD4
Patch21: chromium-53.0.2785.92-last-commit-position.patch Patch21: chromium-60.0.3112.78-last-commit-position.patch
# Fix issue where timespec is not defined when sys/stat.h is included. # Fix issue where timespec is not defined when sys/stat.h is included.
Patch22: chromium-53.0.2785.92-boringssl-time-fix.patch Patch22: chromium-53.0.2785.92-boringssl-time-fix.patch
# I wouldn't have to do this if there was a standard way to append extra compiler flags # I wouldn't have to do this if there was a standard way to append extra compiler flags
@ -168,24 +167,35 @@ Patch27: chromium-59.0.3071.86-setopaque.patch
Patch31: chromium-56.0.2924.87-fpermissive.patch Patch31: chromium-56.0.2924.87-fpermissive.patch
# Fix issue with compilation on gcc7 # Fix issue with compilation on gcc7
# Thanks to Ben Noordhuis # Thanks to Ben Noordhuis
Patch33: chromium-59.0.3071.86-gcc7.patch Patch33: chromium-60.0.3112.78-gcc7.patch
# Enable mp3 support # Enable mp3 support
Patch34: chromium-59.0.3071.86-enable-mp3.patch Patch34: chromium-60.0.3112.78-enable-mp3.patch
# Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8db6940240c563cf4%5E%21/#F0 # Revert https://chromium.googlesource.com/chromium/src/+/b794998819088f76b4cf44c8db6940240c563cf4%5E%21/#F0
# https://bugs.chromium.org/p/chromium/issues/detail?id=712737 # https://bugs.chromium.org/p/chromium/issues/detail?id=712737
# https://bugzilla.redhat.com/show_bug.cgi?id=1446851 # https://bugzilla.redhat.com/show_bug.cgi?id=1446851
Patch36: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch Patch36: chromium-58.0.3029.96-revert-b794998819088f76b4cf44c8db6940240c563cf4.patch
# Correctly compile the stdatomic.h in ffmpeg with gcc 4.8 # Correctly compile the stdatomic.h in ffmpeg with gcc 4.8
Patch37: chromium-59.0.3071.86-ffmpeg-stdatomic.patch Patch37: chromium-59.0.3071.86-ffmpeg-stdatomic.patch
# RHEL is too old to have this header in kernel-headers
# and some Fedora versions do not contain what Chromium expects to find
# so just use the hardcoded values instead
Patch38: chromium-59.0.3071.86-dma-buf-header-hack.patch
# Nacl can't die soon enough # Nacl can't die soon enough
Patch39: chromium-59.0.3071.86-system-clang.patch Patch39: chromium-59.0.3071.86-system-clang.patch
# Change struct ucontext to ucontext_t in breakpad # Change struct ucontext to ucontext_t in breakpad
# https://patchwork.openembedded.org/patch/141358/ # https://patchwork.openembedded.org/patch/141358/
Patch40: chromium-59.0.3071.115-ucontext-fix.patch Patch40: chromium-59.0.3071.115-ucontext-fix.patch
# Fix gn bootstrap. Not convinced anyone at Google ever tries to build Chromium from source.
Patch41: chromium-60.0.3112.78-fix-gn-bootstrap.patch
# Do not prefix libpng functions
Patch42: chromium-60.0.3112.78-no-libpng-prefix.patch
# Do not mangle libjpeg
Patch43: chromium-60.0.3112.78-jpeg-nomangle.patch
# Fix gtk2 build by applying these changes
# https://chromium.googlesource.com/chromium/src.git/+/804fd4ab5e41584d61c400ac19ce21e0468b53d4
# https://chromium.googlesource.com/chromium/src.git/+/4313334bead373b139eee72f47d43fbe6162a8f4
# https://chromium.googlesource.com/chromium/src.git/+/ca407201886875966db91d55c403fe0be3f0f4ca
# This probably will not be needed with 61+
Patch44: chromium-60.0.3112.78-gtk2fix.patch
# Do not mangle zlib
Patch45: chromium-60.0.3112.78-no-zlib-mangle.patch
### Chromium Tests Patches ### ### Chromium Tests Patches ###
Patch100: chromium-46.0.2490.86-use_system_opus.patch Patch100: chromium-46.0.2490.86-use_system_opus.patch
@ -220,9 +230,6 @@ Source9: chromium-browser.xml
Source10: https://dl.google.com/dl/edgedl/chrome/policy/policy_templates.zip Source10: https://dl.google.com/dl/edgedl/chrome/policy/policy_templates.zip
Source11: chrome-remote-desktop@.service Source11: chrome-remote-desktop@.service
Source13: master_preferences Source13: master_preferences
# Upstream did not include third_party/freetype source code in the tarball for 59.0.3071.115
# So we copy it from the previous build. :/
Source14: chromium-59.0.3071.109-freetype.tar.bz2
# We can assume gcc and binutils. # We can assume gcc and binutils.
BuildRequires: gcc-c++ BuildRequires: gcc-c++
@ -241,7 +248,7 @@ BuildRequires: glib2-devel
BuildRequires: gnome-keyring-devel BuildRequires: gnome-keyring-devel
BuildRequires: gtk2-devel BuildRequires: gtk2-devel
# Yes. This too. # Yes. This too.
BuildRequires: gtk3-devel # BuildRequires: gtk3-devel
BuildRequires: glibc-devel BuildRequires: glibc-devel
BuildRequires: gperf BuildRequires: gperf
BuildRequires: libatomic BuildRequires: libatomic
@ -253,7 +260,6 @@ BuildRequires: libusb-devel
BuildRequires: libXdamage-devel BuildRequires: libXdamage-devel
BuildRequires: libXScrnSaver-devel BuildRequires: libXScrnSaver-devel
BuildRequires: libXtst-devel BuildRequires: libXtst-devel
BuildRequires: mesa-libGL-devel
BuildRequires: nodejs BuildRequires: nodejs
BuildRequires: nss-devel BuildRequires: nss-devel
BuildRequires: pciutils-devel BuildRequires: pciutils-devel
@ -296,6 +302,7 @@ BuildRequires: bzip2-devel
BuildRequires: dbus-glib-devel BuildRequires: dbus-glib-devel
BuildRequires: elfutils-libelf-devel BuildRequires: elfutils-libelf-devel
BuildRequires: flac-devel BuildRequires: flac-devel
BuildRequires: freetype-devel
BuildRequires: hwdata BuildRequires: hwdata
BuildRequires: kernel-headers BuildRequires: kernel-headers
BuildRequires: libevent-devel BuildRequires: libevent-devel
@ -308,7 +315,7 @@ BuildRequires: libffi-devel
BuildRequires: libicu-devel = 54.1 BuildRequires: libicu-devel = 54.1
%endif %endif
BuildRequires: libjpeg-devel BuildRequires: libjpeg-devel
# BuildRequires: libpng-devel BuildRequires: libpng-devel
%if 0 %if 0
# see https://code.google.com/p/chromium/issues/detail?id=501318 # see https://code.google.com/p/chromium/issues/detail?id=501318
BuildRequires: libsrtp-devel >= 1.4.4 BuildRequires: libsrtp-devel >= 1.4.4
@ -323,7 +330,7 @@ BuildRequires: libusbx-devel >= 1.0.21-0.1.git448584a
# We don't use libvpx anymore because Chromium loves to # We don't use libvpx anymore because Chromium loves to
# use bleeding edge revisions here that break other things # use bleeding edge revisions here that break other things
# ... so we just use the bundled libvpx. # ... so we just use the bundled libvpx.
# Same is true for libwebp. BuildRequires: libwebp-devel
BuildRequires: libxslt-devel BuildRequires: libxslt-devel
# Same here, it seems. # Same here, it seems.
# BuildRequires: libyuv-devel # BuildRequires: libyuv-devel
@ -351,6 +358,7 @@ BuildRequires: re2-devel >= 20160401
%endif %endif
BuildRequires: speech-dispatcher-devel BuildRequires: speech-dispatcher-devel
BuildRequires: yasm BuildRequires: yasm
BuildRequires: zlib-devel
BuildRequires: pkgconfig(gnome-keyring-1) BuildRequires: pkgconfig(gnome-keyring-1)
# remote desktop needs this # remote desktop needs this
BuildRequires: pam-devel BuildRequires: pam-devel
@ -426,15 +434,15 @@ Provides: bundled(libaddressinput) = 0
Provides: bundled(libdrm) = 2.4.70 Provides: bundled(libdrm) = 2.4.70
Provides: bundled(libevent) = 1.4.15 Provides: bundled(libevent) = 1.4.15
Provides: bundled(libjingle) = 9564 Provides: bundled(libjingle) = 9564
Provides: bundled(libjpeg-turbo) = 1.4.90 # Provides: bundled(libjpeg-turbo) = 1.4.90
Provides: bundled(libphonenumber) = a4da30df63a097d67e3c429ead6790ad91d36cf4 Provides: bundled(libphonenumber) = a4da30df63a097d67e3c429ead6790ad91d36cf4
Provides: bundled(libpng) = 1.6.22 # Provides: bundled(libpng) = 1.6.22
Provides: bundled(libsrtp) = 2cbd85085037dc7bf2eda48d4cf62e2829056e2d Provides: bundled(libsrtp) = 2cbd85085037dc7bf2eda48d4cf62e2829056e2d
%if %{bundlelibusbx} %if %{bundlelibusbx}
Provides: bundled(libusbx) = 1.0.17 Provides: bundled(libusbx) = 1.0.17
%endif %endif
Provides: bundled(libvpx) = 1.6.0 Provides: bundled(libvpx) = 1.6.0
Provides: bundled(libwebp) = 0.6.0 # Provides: bundled(libwebp) = 0.6.0
%if %{bundlelibxml} %if %{bundlelibxml}
# Well, it's actually newer than 2.9.4 and has code in it that has been reverted upstream... but eh. # Well, it's actually newer than 2.9.4 and has code in it that has been reverted upstream... but eh.
Provides: bundled(libxml) = 2.9.4 Provides: bundled(libxml) = 2.9.4
@ -470,8 +478,7 @@ Provides: bundled(webrtc) = 90usrsctp
Provides: bundled(woff2) = 445f541996fe8376f3976d35692fd2b9a6eedf2d Provides: bundled(woff2) = 445f541996fe8376f3976d35692fd2b9a6eedf2d
Provides: bundled(xdg-mime) Provides: bundled(xdg-mime)
Provides: bundled(xdg-user-dirs) Provides: bundled(xdg-user-dirs)
Provides: bundled(x86inc) = 0 # Provides: bundled(zlib) = 1.2.11
Provides: bundled(zlib) = 1.2.11
# For selinux scriptlet # For selinux scriptlet
Requires(post): /usr/sbin/semanage Requires(post): /usr/sbin/semanage
@ -480,9 +487,16 @@ Requires(post): /usr/sbin/restorecon
%description %description
Chromium is an open-source web browser, powered by WebKit (Blink). Chromium is an open-source web browser, powered by WebKit (Blink).
%package common
Summary: Files needed for both the headless_shell and full Chromium
%description common
%{summary}.
%if 0%{?shared} %if 0%{?shared}
%package libs %package libs
Summary: Shared libraries used by chromium (and chrome-remote-desktop) Summary: Shared libraries used by chromium (and chrome-remote-desktop)
Requires: chromium-common%{_isa} = %{version}-%{release}
Requires: chromium-libs-media%{_isa} >= %{majorversion} Requires: chromium-libs-media%{_isa} >= %{majorversion}
Requires(post): %{_sbindir}/update-alternatives Requires(post): %{_sbindir}/update-alternatives
Requires(preun): %{_sbindir}/update-alternatives Requires(preun): %{_sbindir}/update-alternatives
@ -491,14 +505,14 @@ Requires(preun): %{_sbindir}/update-alternatives
Shared libraries used by chromium (and chrome-remote-desktop). Shared libraries used by chromium (and chrome-remote-desktop).
%if %{freeworld} %if %{freeworld}
%package libs-media-freeworld %package -n chromium-libs-media-freeworld
Summary: Chromium media libraries built with all possible codecs Summary: Chromium media libraries built with all possible codecs
Provides: chromium-libs-media = %{version}-%{release} Provides: chromium-libs-media = %{version}-%{release}
Provides: chromium-libs-media%{_isa} = %{version}-%{release} Provides: chromium-libs-media%{_isa} = %{version}-%{release}
Requires(post): %{_sbindir}/update-alternatives Requires(post): %{_sbindir}/update-alternatives
Requires(preun): %{_sbindir}/update-alternatives Requires(preun): %{_sbindir}/update-alternatives
%description libs-media-freeworld %description -n chromium-libs-media-freeworld
Chromium media libraries built with all possible codecs. Chromium is an Chromium media libraries built with all possible codecs. Chromium is an
open-source web browser, powered by WebKit (Blink). This package replaces open-source web browser, powered by WebKit (Blink). This package replaces
the default chromium-libs-media package, which is limited in what it the default chromium-libs-media package, which is limited in what it
@ -521,6 +535,7 @@ Requires(post): systemd
Requires(preun): systemd Requires(preun): systemd
Requires(postun): systemd Requires(postun): systemd
Requires: xorg-x11-server-Xvfb Requires: xorg-x11-server-Xvfb
Requires: python2-psutil
%if 0%{?shared} %if 0%{?shared}
Requires: chromium-libs%{_isa} = %{version}-%{release} Requires: chromium-libs%{_isa} = %{version}-%{release}
%endif %endif
@ -546,13 +561,22 @@ JavaScript execution, and more. ChromeDriver is a standalone server which
implements WebDriver's wire protocol for Chromium. It is being developed by implements WebDriver's wire protocol for Chromium. It is being developed by
members of the Chromium and WebDriver teams. members of the Chromium and WebDriver teams.
%package headless
Summary: A minimal headless shell built from Chromium
Requires: chromium-common%{_isa} = %{version}-%{release}
%description headless
A minimal headless client built from Chromium. headless_shell is built
without support for alsa, cups, dbus, gconf, gio, kerberos, pulseaudio, or
udev.
%prep %prep
%setup -q -T -c -n %{name}-policies -a 10 %setup -q -T -c -n %{name}-policies -a 10
%setup -q -T -c -n depot_tools -a 2 %setup -q -T -c -n depot_tools -a 2
%if 0%{tests} %if 0%{tests}
%setup -q -n chromium-%{version} -b 1 -a 14 %setup -q -n chromium-%{version} -b 1
%else %else
%setup -q -n chromium-%{version} -a 14 %setup -q -n chromium-%{version}
%endif %endif
### Chromium Fedora Patches ### ### Chromium Fedora Patches ###
@ -577,12 +601,20 @@ members of the Chromium and WebDriver teams.
%patch27 -p1 -b .setopaque %patch27 -p1 -b .setopaque
%patch31 -p1 -b .permissive %patch31 -p1 -b .permissive
%patch33 -p1 -b .gcc7 %patch33 -p1 -b .gcc7
%if %{freeworld}
# Do not apply mp3 change
%else
%patch34 -p1 -b .mp3 %patch34 -p1 -b .mp3
%endif
%patch36 -p1 -b .revert %patch36 -p1 -b .revert
%patch37 -p1 -b .ffmpeg-stdatomic %patch37 -p1 -b .ffmpeg-stdatomic
%patch38 -p1 -b .headerhack
%patch39 -p1 -b .system-clang %patch39 -p1 -b .system-clang
%patch40 -p1 -b .ucontextfix %patch40 -p1 -b .ucontextfix
%patch41 -p1 -b .fixgnbootstrap
%patch42 -p1 -b .noprefix
%patch43 -p1 -b .nomangle
%patch44 -p1 -b .gtk2fix
%patch45 -p1 -b .nozmangle
### Chromium Tests Patches ### ### Chromium Tests Patches ###
%patch100 -p1 -b .use_system_opus %patch100 -p1 -b .use_system_opus
@ -693,20 +725,26 @@ ln -s /usr/bin/clang clang
popd popd
%endif %endif
CHROMIUM_BROWSER_GN_DEFINES="" # Core defines are flags that are true for both the browser and headless.
CHROMIUM_BROWSER_GN_DEFINES+=' is_debug=false' CHROMIUM_CORE_GN_DEFINES=""
CHROMIUM_CORE_GN_DEFINES+=' is_debug=false'
%ifarch x86_64 %ifarch x86_64
CHROMIUM_BROWSER_GN_DEFINES+=' system_libdir="lib64"' CHROMIUM_CORE_GN_DEFINES+=' system_libdir="lib64"'
%endif
CHROMIUM_BROWSER_GN_DEFINES+=' google_api_key="%{api_key}" google_default_client_id="%{default_client_id}" google_default_client_secret="%{default_client_secret}"'
CHROMIUM_BROWSER_GN_DEFINES+=' is_clang=false use_sysroot=false use_gio=true use_pulseaudio=true icu_use_data_file=true'
%if 0%{?nonacl}
CHROMIUM_BROWSER_GN_DEFINES+=' enable_nacl=false'
%endif %endif
CHROMIUM_CORE_GN_DEFINES+=' google_api_key="%{api_key}" google_default_client_id="%{default_client_id}" google_default_client_secret="%{default_client_secret}"'
CHROMIUM_CORE_GN_DEFINES+=' is_clang=false use_sysroot=false use_gold=false fieldtrial_testing_like_official_build=true'
%if %{freeworld} %if %{freeworld}
CHROMIUM_BROWSER_GN_DEFINES+=' ffmpeg_branding="ChromeOS" proprietary_codecs=true' CHROMIUM_CORE_GN_DEFINES+=' ffmpeg_branding="ChromeOS" proprietary_codecs=true'
%else %else
CHROMIUM_BROWSER_GN_DEFINES+=' ffmpeg_branding="Chromium" proprietary_codecs=false' CHROMIUM_CORE_GN_DEFINES+=' ffmpeg_branding="Chromium" proprietary_codecs=false'
%endif
CHROMIUM_CORE_GN_DEFINES+=' treat_warnings_as_errors=false'
export CHROMIUM_CORE_GN_DEFINES
CHROMIUM_BROWSER_GN_DEFINES=""
CHROMIUM_BROWSER_GN_DEFINES+=' use_gio=true use_pulseaudio=true icu_use_data_file=true'
%if 0%{?nonacl}
CHROMIUM_BROWSER_GN_DEFINES+=' enable_nacl=false'
%endif %endif
%if 0%{?shared} %if 0%{?shared}
CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true' CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=true is_component_build=true'
@ -716,16 +754,21 @@ CHROMIUM_BROWSER_GN_DEFINES+=' is_component_ffmpeg=false is_component_build=fals
CHROMIUM_BROWSER_GN_DEFINES+=' remove_webcore_debug_symbols=true enable_hangout_services_extension=true' CHROMIUM_BROWSER_GN_DEFINES+=' remove_webcore_debug_symbols=true enable_hangout_services_extension=true'
CHROMIUM_BROWSER_GN_DEFINES+=' enable_hotwording=false use_aura=true' CHROMIUM_BROWSER_GN_DEFINES+=' enable_hotwording=false use_aura=true'
CHROMIUM_BROWSER_GN_DEFINES+=' enable_webrtc=true enable_widevine=true' CHROMIUM_BROWSER_GN_DEFINES+=' enable_webrtc=true enable_widevine=true'
CHROMIUM_BROWSER_GN_DEFINES+=' use_gold=false fieldtrial_testing_like_official_build=true'
%if 0%{gtk3} %if 0%{gtk3}
CHROMIUM_BROWSER_GN_DEFINES+=' use_gtk3=true' CHROMIUM_BROWSER_GN_DEFINES+=' use_gtk3=true'
%else %else
CHROMIUM_BROWSER_GN_DEFINES+=' use_gtk3=false' CHROMIUM_BROWSER_GN_DEFINES+=' use_gtk3=false'
%endif %endif
# CHROMIUM_BROWSER_GN_DEFINES+=' use_system_libjpeg=true'
CHROMIUM_BROWSER_GN_DEFINES+=' treat_warnings_as_errors=false'
export CHROMIUM_BROWSER_GN_DEFINES export CHROMIUM_BROWSER_GN_DEFINES
CHROMIUM_HEADLESS_GN_DEFINES=""
CHROMIUM_HEADLESS_GN_DEFINES+=' use_ozone=true ozone_auto_platforms=false ozone_platform="headless" ozone_platform_headless=true'
CHROMIUM_HEADLESS_GN_DEFINES+=' headless_use_embedded_resources=true icu_use_data_file=false v8_use_external_startup_data=false'
CHROMIUM_HEADLESS_GN_DEFINES+=' enable_nacl=false enable_print_preview=false enable_remoting=false use_alsa=false use_ash=false'
CHROMIUM_HEADLESS_GN_DEFINES+=' use_cups=false use_dbus=false use_gconf=false use_gio=false use_kerberos=false use_libpci=false'
CHROMIUM_HEADLESS_GN_DEFINES+=' use_pulseaudio=false use_udev=false'
export CHROMIUM_HEADLESS_GN_DEFINES
mkdir -p third_party/node/linux/node-linux-x64/bin mkdir -p third_party/node/linux/node-linux-x64/bin
ln -s %{_bindir}/node third_party/node/linux/node-linux-x64/bin/node ln -s %{_bindir}/node third_party/node/linux/node-linux-x64/bin/node
@ -739,6 +782,8 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/ffmpeg' \ 'third_party/ffmpeg' \
'third_party/adobe' \ 'third_party/adobe' \
'third_party/flac' \ 'third_party/flac' \
'third_party/googletest' \
'third_party/glslang-angle' \
'third_party/harfbuzz-ng' \ 'third_party/harfbuzz-ng' \
'third_party/icu' \ 'third_party/icu' \
'base/third_party/libevent' \ 'base/third_party/libevent' \
@ -761,7 +806,6 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/swiftshader/third_party/subzero' \ 'third_party/swiftshader/third_party/subzero' \
'third_party/swiftshader/third_party/LLVM' \ 'third_party/swiftshader/third_party/LLVM' \
'third_party/swiftshader/third_party/llvm-subzero' \ 'third_party/swiftshader/third_party/llvm-subzero' \
'third_party/swiftshader/third_party/pnacl-subzero' \
'third_party/usb_ids' \ 'third_party/usb_ids' \
'third_party/xdg-utils' \ 'third_party/xdg-utils' \
'third_party/yasm' \ 'third_party/yasm' \
@ -800,6 +844,7 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/catapult/tracing/third_party/gl-matrix' \ 'third_party/catapult/tracing/third_party/gl-matrix' \
'third_party/catapult/tracing/third_party/jszip' \ 'third_party/catapult/tracing/third_party/jszip' \
'third_party/catapult/tracing/third_party/mannwhitneyu' \ 'third_party/catapult/tracing/third_party/mannwhitneyu' \
'third_party/catapult/tracing/third_party/oboe' \
'third_party/catapult/third_party/polymer' \ 'third_party/catapult/third_party/polymer' \
'third_party/catapult/third_party/py_vulcanize' \ 'third_party/catapult/third_party/py_vulcanize' \
'third_party/catapult/third_party/py_vulcanize/third_party/rcssmin' \ 'third_party/catapult/third_party/py_vulcanize/third_party/rcssmin' \
@ -870,16 +915,19 @@ build/linux/unbundle/remove_bundled_libraries.py \
'third_party/sfntly' \ 'third_party/sfntly' \
'third_party/sinonjs' \ 'third_party/sinonjs' \
'third_party/skia' \ 'third_party/skia' \
'third_party/skia/third_party/vulkan' \
'third_party/smhasher' \ 'third_party/smhasher' \
'third_party/spirv-headers' \
'third_party/spirv-tools-angle' \
'third_party/sqlite' \ 'third_party/sqlite' \
'third_party/tcmalloc' \ 'third_party/tcmalloc' \
'third_party/usrsctp' \ 'third_party/usrsctp' \
'third_party/vulkan-validation-layers' \
'third_party/web-animations-js' \ 'third_party/web-animations-js' \
'third_party/webdriver' \ 'third_party/webdriver' \
'third_party/webrtc' \ 'third_party/webrtc' \
'third_party/widevine' \ 'third_party/widevine' \
'third_party/woff2' \ 'third_party/woff2' \
'third_party/x86inc' \
'third_party/zlib/google' \ 'third_party/zlib/google' \
'url/third_party/mozilla' \ 'url/third_party/mozilla' \
'v8/third_party/inspector_protocol' \ 'v8/third_party/inspector_protocol' \
@ -898,6 +946,7 @@ export PATH=$PATH:%{_builddir}/depot_tools
build/linux/unbundle/replace_gn_files.py --system-libraries \ build/linux/unbundle/replace_gn_files.py --system-libraries \
flac \ flac \
freetype \
%if 0%{?bundleharfbuzz} %if 0%{?bundleharfbuzz}
%else %else
harfbuzz-ng \ harfbuzz-ng \
@ -906,13 +955,14 @@ build/linux/unbundle/replace_gn_files.py --system-libraries \
%else %else
icu \ icu \
%endif %endif
%if 0 libdrm \
libevent \ libjpeg \
%endif libpng \
%if %{bundlelibusbx} %if %{bundlelibusbx}
%else %else
libusb \ libusb \
%endif %endif
libwebp \
%if %{bundlelibxml} %if %{bundlelibxml}
%else %else
libxml \ libxml \
@ -926,16 +976,25 @@ build/linux/unbundle/replace_gn_files.py --system-libraries \
%else %else
re2 \ re2 \
%endif %endif
yasm yasm \
zlib
tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "$CHROMIUM_BROWSER_GN_DEFINES" tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES"
%{target}/gn gen --args="$CHROMIUM_BROWSER_GN_DEFINES" %{target} %{target}/gn gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{target}
%if %{freeworld}
# do not need to do headless gen
%else
%{target}/gn gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlesstarget}
%endif
%if %{bundlelibusbx} %if %{bundlelibusbx}
# no hackity hack hack # no hackity hack hack
%else %else
# hackity hack hack # hackity hack hack
rm -rf third_party/libusb/src/libusb/libusb.h rm -rf third_party/libusb/src/libusb/libusb.h
# we _shouldn't need to do this, but it looks like we do.
cp -a %{_includedir}/libusb-1.0/libusb.h third_party/libusb/src/libusb/libusb.h
%endif %endif
# make up a version for widevine # make up a version for widevine
@ -1019,12 +1078,13 @@ export CHROMIUM_BROWSER_UNIT_TESTS="\
export CHROMIUM_BROWSER_UNIT_TESTS= export CHROMIUM_BROWSER_UNIT_TESTS=
%endif %endif
# Now do the full browser
%global target out/Release
%if 0%{freeworld} %if 0%{freeworld}
../depot_tools/ninja -C %{target} -vvv media $CHROMIUM_BROWSER_UNIT_TESTS ../depot_tools/ninja -C %{target} -vvv media $CHROMIUM_BROWSER_UNIT_TESTS
%else %else
# Do headless first.
../depot_tools/ninja -C %{headlesstarget} -vvv headless_shell
../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver widevinecdmadapter clearkeycdm policy_templates $CHROMIUM_BROWSER_UNIT_TESTS ../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver widevinecdmadapter clearkeycdm policy_templates $CHROMIUM_BROWSER_UNIT_TESTS
# remote client # remote client
@ -1055,6 +1115,10 @@ mkdir -p %{buildroot}%{chromium_path}
pushd %{target} pushd %{target}
cp -a libffmpeg.so* %{buildroot}%{chromium_path} cp -a libffmpeg.so* %{buildroot}%{chromium_path}
cp -a libmedia.so* %{buildroot}%{chromium_path} cp -a libmedia.so* %{buildroot}%{chromium_path}
mv %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}}
mv %{buildroot}%{chromium_path}/libffmpeg.so.TOC{,.%{lsuffix}}
mv %{buildroot}%{chromium_path}/libmedia.so{,.%{lsuffix}}
mv %{buildroot}%{chromium_path}/libmedia.so.TOC{,.%{lsuffix}}
popd popd
%else %else
mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_bindir}
@ -1154,6 +1218,10 @@ cp -a remoting_client_plugin_newlib.* %{buildroot}%{chromium_path}
%endif %endif
popd popd
pushd %{headlesstarget}
cp -a headless_lib.pak headless_shell %{buildroot}%{chromium_path}
popd
cp -a remoting/host/linux/linux_me2me_host.py %{buildroot}%{crd_path}/chrome-remote-desktop cp -a remoting/host/linux/linux_me2me_host.py %{buildroot}%{crd_path}/chrome-remote-desktop
cp -a remoting/host/installer/linux/is-remoting-session %{buildroot}%{crd_path}/ cp -a remoting/host/installer/linux/is-remoting-session %{buildroot}%{crd_path}/
@ -1547,10 +1615,10 @@ if [ $1 = 0 ]; then
fi fi
%if %{freeworld} %if %{freeworld}
%posttrans libs-media-freeworld %posttrans -n chromium-libs-media-freeworld
%{_sbindir}/update-alternatives --install \ %{_sbindir}/update-alternatives --install \
%{_libdir}/chromium-browser/libffmpeg.so libffmpeg.so \ %{_libdir}/chromium-browser/libffmpeg.so libffmpeg.so \
%{_libdir}/chromium-browser/libffmpeg.so.freeworld 5 \ %{_libdir}/chromium-browser/libffmpeg.so.freeworld 20 \
--slave %{_libdir}/chromium-browser/libffmpeg.so.TOC libffmpeg.so.TOC \ --slave %{_libdir}/chromium-browser/libffmpeg.so.TOC libffmpeg.so.TOC \
%{_libdir}/chromium-browser/libffmpeg.so.TOC.freeworld \ %{_libdir}/chromium-browser/libffmpeg.so.TOC.freeworld \
--slave %{_libdir}/chromium-browser/libmedia.so libmedia.so \ --slave %{_libdir}/chromium-browser/libmedia.so libmedia.so \
@ -1558,7 +1626,7 @@ fi
--slave %{_libdir}/chromium-browser/libmedia.so.TOC libmedia.so.TOC \ --slave %{_libdir}/chromium-browser/libmedia.so.TOC libmedia.so.TOC \
%{_libdir}/chromium-browser/libmedia.so.TOC.freeworld %{_libdir}/chromium-browser/libmedia.so.TOC.freeworld
%preun libs-media-freeworld %preun -n chromium-libs-media-freeworld
if [ $1 = 0 ]; then if [ $1 = 0 ]; then
%{_sbindir}/alternatives --remove libffmpeg.so \ %{_sbindir}/alternatives --remove libffmpeg.so \
%{_libdir}/chromium-browser/libffmpeg.so.freeworld %{_libdir}/chromium-browser/libffmpeg.so.freeworld
@ -1600,6 +1668,7 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%files %files
%doc AUTHORS %doc AUTHORS
%doc chrome_policy_list.html *.json
%license LICENSE %license LICENSE
%config %{_sysconfdir}/%{name}/ %config %{_sysconfdir}/%{name}/
%dir %{_sysconfdir}/%{name}/native-messaging-hosts %dir %{_sysconfdir}/%{name}/native-messaging-hosts
@ -1608,7 +1677,10 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{_bindir}/%{chromium_browser_channel} %{_bindir}/%{chromium_browser_channel}
%dir %{chromium_path} %dir %{chromium_path}
%{chromium_path}/*.bin %{chromium_path}/*.bin
%{chromium_path}/*.pak %{chromium_path}/chrome_*.pak
%{chromium_path}/keyboard_resources.pak
%{chromium_path}/resources.pak
%{chromium_path}/views_mus_resources.pak
%{chromium_path}/icudtl.dat %{chromium_path}/icudtl.dat
%{chromium_path}/%{chromium_browser_channel} %{chromium_path}/%{chromium_browser_channel}
%{chromium_path}/%{chromium_browser_channel}.sh %{chromium_path}/%{chromium_browser_channel}.sh
@ -1623,8 +1695,19 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
# %%{chromium_path}/remoting_locales/ # %%{chromium_path}/remoting_locales/
# %%{chromium_path}/pseudo_locales/ # %%{chromium_path}/pseudo_locales/
# %%{chromium_path}/plugins/ # %%{chromium_path}/plugins/
%{chromium_path}/pyproto/
%attr(4755, root, root) %{chromium_path}/chrome-sandbox %attr(4755, root, root) %{chromium_path}/chrome-sandbox
%{_mandir}/man1/%{chromium_browser_channel}.*
%{_datadir}/icons/hicolor/*/apps/%{chromium_browser_channel}.png
%{_datadir}/applications/*.desktop
%{_datadir}/appdata/*.appdata.xml
%{_datadir}/gnome-control-center/default-apps/chromium-browser.xml
%files common
%{chromium_path}/headless_lib.pak
%{chromium_path}/libosmesa.so
%{chromium_path}/mus_app_resources_*.pak
%{chromium_path}/pyproto/
%{chromium_path}/resources/
%dir %{chromium_path}/locales/ %dir %{chromium_path}/locales/
%lang(am) %{chromium_path}/locales/am.pak %lang(am) %{chromium_path}/locales/am.pak
%lang(ar) %{chromium_path}/locales/ar.pak %lang(ar) %{chromium_path}/locales/ar.pak
@ -1679,18 +1762,13 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%lang(vi) %{chromium_path}/locales/vi.pak %lang(vi) %{chromium_path}/locales/vi.pak
%lang(zh_CN) %{chromium_path}/locales/zh-CN.pak %lang(zh_CN) %{chromium_path}/locales/zh-CN.pak
%lang(zh_TW) %{chromium_path}/locales/zh-TW.pak %lang(zh_TW) %{chromium_path}/locales/zh-TW.pak
# %%{chromium_path}/locales/fake-bidi.pak
%{chromium_path}/resources/
%{_mandir}/man1/%{chromium_browser_channel}.*
%{_datadir}/icons/hicolor/*/apps/%{chromium_browser_channel}.png
%{_datadir}/applications/*.desktop
%{_datadir}/appdata/*.appdata.xml
%{_datadir}/gnome-control-center/default-apps/chromium-browser.xml
%doc chrome_policy_list.html *.json %files headless
%{chromium_path}/headless_shell
%if 0%{?shared} %if 0%{?shared}
%files libs %files libs
%exclude %{chromium_path}/libosmesa.so
%exclude %{chromium_path}/libffmpeg.so* %exclude %{chromium_path}/libffmpeg.so*
%exclude %{chromium_path}/libmedia.so* %exclude %{chromium_path}/libmedia.so*
%exclude %{chromium_path}/libwidevinecdm.so %exclude %{chromium_path}/libwidevinecdm.so
@ -1729,7 +1807,7 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%if 0%{?shared} %if 0%{?shared}
%if %{freeworld} %if %{freeworld}
%files libs-media-freeworld %files -n chromium-libs-media-freeworld
%else %else
%files libs-media %files libs-media
%endif %endif
@ -1741,6 +1819,16 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%changelog %changelog
* Fri Aug 4 2017 Tom Callaway <spot@fedoraproject.org> 60.0.3112.90-1
- update to 60.0.3112.90
* Mon Jul 31 2017 Tom Callaway <spot@fedoraproject.org> 60.0.3112.78-1
- update to 60.0.3112.78
* Fri Jul 21 2017 Tom Callaway <spot@fedoraproject.org> 59.0.3071.115-4
- put common files in -common subpackage
- build headless_shell for -headless subpackage
* Fri Jul 21 2017 Tom Callaway <spot@fedoraproject.org> 59.0.3071.115-3 * Fri Jul 21 2017 Tom Callaway <spot@fedoraproject.org> 59.0.3071.115-3
- use posttrans to ensure that old libs are gone before trying to make alternative symlinks - use posttrans to ensure that old libs are gone before trying to make alternative symlinks

@ -1,4 +1,3 @@
SHA512 (depot_tools.git-master.tar.gz) = d3d6a1873b2b0296a8cd99e0d8d2e629a17b1808934b4972556168f8b4ccea60577ebaeab4445baf15afb1b04080808db59a832a5b61d247bd48da14fa6acf03 SHA512 (depot_tools.git-master.tar.gz) = d3d6a1873b2b0296a8cd99e0d8d2e629a17b1808934b4972556168f8b4ccea60577ebaeab4445baf15afb1b04080808db59a832a5b61d247bd48da14fa6acf03
SHA512 (policy_templates.zip) = a997bd5d410cf8f0f104fb5b69b60699c9e60eb3f99b42e0aff167843f3a45923a9a99c881cac9cd4472a60ca9c7d1ba897e15d485fbfd66c996419e7fadd3f8 SHA512 (chromium-60.0.3112.90-clean.tar.xz) = 3b1579037b3debc0f714e5de3e02bd5fc1c8aa7482479ffc20b824653b11191ed558cef147633b30da16ffd8c26d5eacb95b93610041a44a6ea84606702f7ac1
SHA512 (chromium-59.0.3071.115-clean.tar.xz) = 001e6d9b4cae244767de7e85575d4071421d588422ca434461939e9652549bcd43c56fe0c510ab0d7d0a050e97d98f4086b8bf102dbadd7f83dc8827b9ea7ed1 SHA512 (policy_templates.zip) = 4d2a7162adb3ca224f3e1bf1d2936ae395603e8ffa3fda7753e666a16c42c7ba54c7acfcfdc742e22978ace37e471ed099d222063708d4d8a299da3daf135f15
SHA512 (chromium-59.0.3071.109-freetype.tar.bz2) = 62a698c0229c0eb5ed4d31efd211db70f1183f4f86558bd68a6110214b2f0a61eecdde27efcab359ecee684b3df819b37a75505c1b9ea6bec407d289d6e78a66

Loading…
Cancel
Save