1
0
forked from chromium/chromium

Accepting request 79098 from home:rwooninck:chromium

Move chromium to it's own place

OBS-URL: https://build.opensuse.org/request/show/79098
OBS-URL: https://build.opensuse.org/package/show/network:chromium/chromium?expand=0&rev=1
This commit is contained in:
Raymond Wooninck
2011-08-17 07:21:58 +00:00
committed by Git OBS Bridge
commit 6c64dee99b
77 changed files with 4688 additions and 0 deletions

25
.gitattributes vendored Normal file
View File

@@ -0,0 +1,25 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
## Specific LFS patterns
chromium-symbolic.svg filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.osc

View File

@@ -0,0 +1,350 @@
From 84d1d7adcd1697348e3f821811179c525d3b5717 Mon Sep 17 00:00:00 2001
From: Dale Curtis <dalecurtis@chromium.org>
Date: Tue, 28 Nov 2023 00:41:42 +0000
Subject: [PATCH] Roll src/third_party/ffmpeg/ c1d0dc413..866768f35 (492
commits)
https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/c1d0dc4135ec..866768f35c22
$ git log c1d0dc413..866768f35 --date=short --no-merges --format='%ad %ae %s'
2023-11-22 dalecurtis README.chromium file
2023-11-22 dalecurtis Chromium patches file
2023-11-22 dalecurtis GN Configuration
2023-11-21 dalecurtis Switch to remoteexec for robosushi
2023-11-12 mypopydev vulkan_decode: fix the print format of VkDeviceSize
2023-08-28 mypopydev avdevice/decklink_dec: add explicit specifier
2023-11-20 jamrial avcodec: bump version after EVC additions
2023-09-19 d.kozinski avcodec/evc_decoder: Provided support for EVC decoder
2023-09-19 d.kozinski avcodec/evc_encoder: Provided support for EVC encoder
2023-10-17 michael avcodec/h264dec: Support skipping frames that used gray gap frames
2023-10-17 michael avcodec/h264: Avoid using gray gap frames as references
2023-10-17 michael avcodec/h264: keep track of which frames used gray references
2023-10-02 michael avcodec/h264dec: More elaborate documentation for frame_recovered
2023-10-02 michael avcodec/h264: Use FRAME_RECOVERED_HEURISTIC instead of IDR/SEI
2023-10-02 michael avcodec/h264: Seperate SEI and IDR recovery handling
2023-11-19 onemda avfilter/af_afir: remove flag that is not needed
2023-11-19 onemda avfilter/af_afir: no need to dynamically add outpad
2023-11-19 onemda avfilter/af_afir: refactor crossfade code
2023-11-19 onemda avfilter/af_afir: add timeline support
2023-11-16 remi riscv: set fast half-precision conversion
2023-11-19 onemda avfilter/af_afir: remove IR response video rendering support
2023-11-19 onemda doc/filters: add one more example for afir filter usage
2023-11-14 anton tools/general_assembly: update to conform to new rules
2023-11-14 anton tools/general_assembly: make the script executable
2023-11-18 onemda avfilter/avf_showvolume: improve step for vertical orientation
2023-11-18 onemda avfilter/avf_showvolume: draw channel names directly into output frame
2023-11-15 remi lavc/llviddsp: R-V V add_bytes
2023-11-15 remi lavc/flacdsp: R-V V LPC16 function
2023-11-15 remi lavc/flacdsp: R-V V LPC32
2023-11-15 remi checkasm/flacdsp: add LPC test
2023-11-15 remi riscv: fix builds without Zbb support
2023-11-18 mypopydev lavfi/Makefile: fix vf_cropdetect missed edge_common
2023-11-10 ffmpeg-devel apply spelling fixes
2023-11-18 onemda avfilter/af_afir: add irnorm and irlink options
2023-11-14 remi lavc/flacdsp: R-V V decorrelate_indep 16-bit packed
2023-11-14 remi lavc/flacdsp: R-V V decorrelate_indep 32-bit packed
2023-11-13 remi lavc/flacdsp: R-V V decorrelate_ms packed
2023-08-16 remi lavc/flacdsp: R-V V packed decorrelate_{l,r}s
2023-11-13 remi checkasm/flacdsp: fix ls/rs/ms tests
2023-11-08 onemda avfilter/af_adynamicequalizer: add adaptive detection mode
2023-11-06 onemda avfilter/af_adynamicequalizer: do gain calculations in log domain
2023-11-03 sunyuechi af_afir: RISC-V V fcmul_add
2023-11-12 remi lavc/llauddsp: R-V V scalarproduct_and_madd_int32
2023-11-12 remi lavc/llauddsp: R-V V scalarproduct_and_madd_int16
2023-11-12 remi checkasm: add lossless audio DSP
2023-11-15 jamrial x86/flacds: clear the high bits from pred_order in lpc_32 functions
2023-11-13 jianhui.j.dai-at-intel.com avcodec/cbs_vp8: Add support for VP8 codec bitstream
2023-11-13 jianhui.j.dai-at-intel.com avcodec/vp8: Export `vp8_token_update_probs` variable
2023-11-12 remi lavc/huffyuvdsp: basic R-V V add_hfyu_left_pred_bgr32
2023-11-12 remi checkasm/huffyuvdsp: test for add_hfyu_left_pred_bgr32
(...)
2022-08-04 andreas.rheinhardt avcodec/cbs: Use RefStruct-API for unit content
2022-08-04 andreas.rheinhardt avcodec/refstruct: Allow checking for exclusive ownership
2022-08-04 andreas.rheinhardt avcodec/dovi_rpu: Use RefStruct API for Vdr data
2022-08-04 andreas.rheinhardt avcodec/wavpack: Use RefStruct API for DSD context
2023-07-17 andreas.rheinhardt avcodec/vp8: Use RefStruct API for seg_map
2022-08-04 andreas.rheinhardt avcodec/hevc_ps: Use RefStruct API for parameter sets
2022-08-04 andreas.rheinhardt avcodec/h264_ps: Use RefStruct API for SPS/PPS
2022-08-04 andreas.rheinhardt avcodec/get_buffer: Use RefStruct API for FramePool
2022-08-04 andreas.rheinhardt avcodec/refstruct: Add simple API for refcounted objects
2023-10-03 remi lavu/fixed_dsp: R-V V scalarproduct
2023-10-07 onemda avformat/wavdec: w64: do not error out for broken files if data start is found
2023-10-06 onemda avcodec/mlpenc: rename some variables related to thd
2023-10-03 andreas.rheinhardt avcodec/mpegvideo: Move allocating new_picture to the encoder
2023-07-17 jamrial fftools/ffplay: stop injecting stream side data in packets
2023-07-17 jamrial fftools/ffmpeg: stop injecting stream side data in packets
2023-07-17 jamrial avcodec/decode: propagate global side data to frames
2023-07-17 jamrial avcodec/hevcdec: check for DOVI configuration record in AVCodecContext side data
2023-07-16 jamrial fftools/ffprobe: stop using AVStream.side_data
2023-07-16 jamrial fftools/ffplay: stop using AVStream.side_data
2023-07-16 jamrial fftools/ffmpeg: stop using AVStream.side_data
2023-09-26 jamrial avcodec/packet: add some documentation for AVPacketSideData
2023-07-16 jamrial avformat/avformat: use the side data from AVStream.codecpar
2023-07-16 jamrial avcodec/codec_par: add side data to AVCodecParameters
2023-07-16 jamrial avcodec/packet: add generic side data helpers
2023-10-06 andreas.rheinhardt avfilter/vulkan_filter: Remove unused label
2023-10-06 onemda avcodec/mlpdec: set extended_substream_info from header
2023-08-26 stefasab doc/encoders/libopus: clarify lowdelay and cutoff options
2023-08-26 stefasab doc/encoders/libxvid: fix references for me_quality option
2023-08-26 stefasab doc/encoders/libx264: clarify meaning of level option
2023-08-26 stefasab lavc: clarify meaning of avctx.level option
2023-10-03 leo.izen avcodec/jpegxl_parser: fix various memory issues
2023-10-03 leo.izen avcodec/jpegxl_parser: add some icc profile checks
2023-09-01 stefasab ffprobe: introduce section type, use for the compact output
2023-09-01 stefasab ffprobe: correct section name for side data piece
2023-08-31 stefasab ffprobe: factorize side data printing to dedicated function
2023-10-03 onemda avcodec/mlpenc: restructure code and resolve several bugs
2023-10-05 dev hwcontext_vulkan: properly support STORAGE usage for mutliplane images
2023-09-30 ben vulkan_hevc: handle non-contiguous SPS/PPS/VPS ids
2023-10-03 ffmpeg-devel avcodec/svt-av1: Set force_key_frames only when gop_size == 1
2023-10-03 andreas.rheinhardt avcodec/h261dec, mpeg12dec, vc1dec: Remove setting write-only flags
2023-10-03 andreas.rheinhardt avcodec/rv10: Replace switch by LUT
2023-10-03 andreas.rheinhardt avcodec/rv10: Remove dead code
2023-10-02 andreas.rheinhardt avcodec/h263dec, mpeg4videodec: Parse extradata during init
2023-10-01 andreas.rheinhardt avcodec/mpegvideo_dec: Always initialize IDCTDSPContext during init
2023-10-01 andreas.rheinhardt avcodec/mpegvideo_dec: Don't zero context on init failure
2023-10-01 andreas.rheinhardt avcodec/mpeg12dec: Don't initialize IDCT more than once
2023-10-02 remi lavc/ac3: add R-V Zbb extract_exponents
2023-10-04 jamrial avcodec/hcadec: add a flush callback
2023-10-01 remi swscale/rgb2rgb: R-V V deinterleaveBytes
2023-10-01 remi swscale/rgb2rgb: fix extra iteration in R-V V interleave
Created with:
roll-dep src/third_party/ffmpeg
R=jrummell
Bug: 1504603
Change-Id: Ia40313bc2abcb0594543019bc8d1c22fbf7bde82
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5055586
Reviewed-by: John Rummell <jrummell@chromium.org>
Auto-Submit: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1229653}
---
DEPS | 2 +-
media/ffmpeg/ffmpeg_common.cc | 169 +++++++++---------
.../filters/audio_video_metadata_extractor.cc | 17 +-
media/filters/ffmpeg_demuxer_unittest.cc | 4 +-
third_party/ffmpeg | 2 +-
5 files changed, 97 insertions(+), 97 deletions(-)
diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
index 3c97e4a6cf4c7..a55e4ab51d5b3 100644
--- a/media/ffmpeg/ffmpeg_common.cc
+++ b/media/ffmpeg/ffmpeg_common.cc
@@ -653,15 +653,6 @@ bool AVStreamToVideoDecoderConfig(const AVStream* stream,
profile = ProfileIDToVideoCodecProfile(codec_context->profile);
}
- void* display_matrix =
- av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr);
-
- VideoTransformation video_transformation = VideoTransformation();
- if (display_matrix) {
- video_transformation = VideoTransformation::FromFFmpegDisplayMatrix(
- static_cast<int32_t*>(display_matrix));
- }
-
if (!color_space.IsSpecified()) {
// VP9 frames may have color information, but that information cannot
// express new color spaces, like HDR. For that reason, color space
@@ -718,91 +709,92 @@
codec_context->extradata + codec_context->extradata_size);
}
- if (stream->nb_side_data) {
- for (int i = 0; i < stream->nb_side_data; ++i) {
- AVPacketSideData side_data = stream->side_data[i];
- switch (side_data.type) {
- case AV_PKT_DATA_MASTERING_DISPLAY_METADATA: {
- AVMasteringDisplayMetadata* mdcv =
- reinterpret_cast<AVMasteringDisplayMetadata*>(side_data.data);
- gfx::HdrMetadataSmpteSt2086 smpte_st_2086;
- if (mdcv->has_primaries) {
- smpte_st_2086.primaries = {
- static_cast<float>(av_q2d(mdcv->display_primaries[0][0])),
- static_cast<float>(av_q2d(mdcv->display_primaries[0][1])),
- static_cast<float>(av_q2d(mdcv->display_primaries[1][0])),
- static_cast<float>(av_q2d(mdcv->display_primaries[1][1])),
- static_cast<float>(av_q2d(mdcv->display_primaries[2][0])),
- static_cast<float>(av_q2d(mdcv->display_primaries[2][1])),
- static_cast<float>(av_q2d(mdcv->white_point[0])),
- static_cast<float>(av_q2d(mdcv->white_point[1])),
- };
- }
- if (mdcv->has_luminance) {
- smpte_st_2086.luminance_max = av_q2d(mdcv->max_luminance);
- smpte_st_2086.luminance_min = av_q2d(mdcv->min_luminance);
- }
-
- // TODO(crbug.com/40268540): Consider rejecting metadata that
- // does not specify all values.
- if (mdcv->has_primaries || mdcv->has_luminance) {
- hdr_metadata.smpte_st_2086 = smpte_st_2086;
- }
- break;
+ VideoTransformation video_transformation = VideoTransformation();
+ for (int i = 0; i < stream->codecpar->nb_coded_side_data; ++i) {
+ const auto& side_data = stream->codecpar->coded_side_data[i];
+ switch (side_data.type) {
+ case AV_PKT_DATA_DISPLAYMATRIX: {
+ CHECK_EQ(side_data.size, sizeof(int32_t) * 3 * 3);
+ video_transformation = VideoTransformation::FromFFmpegDisplayMatrix(
+ reinterpret_cast<int32_t*>(side_data.data));
+ break;
+ }
+ case AV_PKT_DATA_MASTERING_DISPLAY_METADATA: {
+ AVMasteringDisplayMetadata* mdcv =
+ reinterpret_cast<AVMasteringDisplayMetadata*>(side_data.data);
+ gfx::HdrMetadataSmpteSt2086 smpte_st_2086;
+ if (mdcv->has_primaries) {
+ smpte_st_2086.primaries = {
+ static_cast<float>(av_q2d(mdcv->display_primaries[0][0])),
+ static_cast<float>(av_q2d(mdcv->display_primaries[0][1])),
+ static_cast<float>(av_q2d(mdcv->display_primaries[1][0])),
+ static_cast<float>(av_q2d(mdcv->display_primaries[1][1])),
+ static_cast<float>(av_q2d(mdcv->display_primaries[2][0])),
+ static_cast<float>(av_q2d(mdcv->display_primaries[2][1])),
+ static_cast<float>(av_q2d(mdcv->white_point[0])),
+ static_cast<float>(av_q2d(mdcv->white_point[1])),
+ };
}
- case AV_PKT_DATA_CONTENT_LIGHT_LEVEL: {
- AVContentLightMetadata* clli =
- reinterpret_cast<AVContentLightMetadata*>(side_data.data);
- hdr_metadata.cta_861_3 =
- gfx::HdrMetadataCta861_3(clli->MaxCLL, clli->MaxFALL);
- break;
+ if (mdcv->has_luminance) {
+ smpte_st_2086.luminance_max = av_q2d(mdcv->max_luminance);
+ smpte_st_2086.luminance_min = av_q2d(mdcv->min_luminance);
+ }
+
+ // TODO(crbug.com/40268540): Consider rejecting metadata that
+ // does not specify all values.
+ if (mdcv->has_primaries || mdcv->has_luminance) {
+ hdr_metadata.smpte_st_2086 = smpte_st_2086;
}
+ break;
+ }
+ case AV_PKT_DATA_CONTENT_LIGHT_LEVEL: {
+ AVContentLightMetadata* clli =
+ reinterpret_cast<AVContentLightMetadata*>(side_data.data);
+ hdr_metadata.cta_861_3 =
+ gfx::HdrMetadataCta861_3(clli->MaxCLL, clli->MaxFALL);
+ break;
+ }
#if BUILDFLAG(ENABLE_PLATFORM_DOLBY_VISION)
- case AV_PKT_DATA_DOVI_CONF: {
- AVDOVIDecoderConfigurationRecord* dovi =
- reinterpret_cast<AVDOVIDecoderConfigurationRecord*>(
- side_data.data);
- VideoType type;
- type.codec = VideoCodec::kDolbyVision;
- type.level = dovi->dv_level;
- type.color_space = color_space;
- type.hdr_metadata_type = gfx::HdrMetadataType::kNone;
- switch (dovi->dv_profile) {
- case 0:
- type.profile = VideoCodecProfile::DOLBYVISION_PROFILE0;
- break;
- case 4:
- type.profile = VideoCodecProfile::DOLBYVISION_PROFILE4;
- break;
- case 5:
- type.profile = VideoCodecProfile::DOLBYVISION_PROFILE5;
- break;
- case 7:
- type.profile = VideoCodecProfile::DOLBYVISION_PROFILE7;
- break;
- case 8:
- type.profile = VideoCodecProfile::DOLBYVISION_PROFILE8;
- break;
- case 9:
- type.profile = VideoCodecProfile::DOLBYVISION_PROFILE9;
- break;
- default:
- type.profile = VideoCodecProfile::VIDEO_CODEC_PROFILE_UNKNOWN;
- break;
- }
- // Treat dolby vision contents as dolby vision codec only if the
- // device support clear DV decoding, otherwise use the original
- // HEVC or AVC codec and profile.
- if (media::IsDecoderSupportedVideoType(type)) {
- codec = type.codec;
- profile = type.profile;
- }
- break;
+ case AV_PKT_DATA_DOVI_CONF: {
+ AVDOVIDecoderConfigurationRecord* dovi =
+ reinterpret_cast<AVDOVIDecoderConfigurationRecord*>(side_data.data);
+ VideoType type;
+ type.codec = VideoCodec::kDolbyVision;
+ type.level = dovi->dv_level;
+ type.color_space = color_space;
+ type.hdr_metadata_type = gfx::HdrMetadataType::kNone;
+ switch (dovi->dv_profile) {
+ case 0:
+ type.profile = VideoCodecProfile::DOLBYVISION_PROFILE0;
+ break;
+ case 5:
+ type.profile = VideoCodecProfile::DOLBYVISION_PROFILE5;
+ break;
+ case 7:
+ type.profile = VideoCodecProfile::DOLBYVISION_PROFILE7;
+ break;
+ case 8:
+ type.profile = VideoCodecProfile::DOLBYVISION_PROFILE8;
+ break;
+ case 9:
+ type.profile = VideoCodecProfile::DOLBYVISION_PROFILE9;
+ break;
+ default:
+ type.profile = VideoCodecProfile::VIDEO_CODEC_PROFILE_UNKNOWN;
+ break;
}
+ // Treat dolby vision contents as dolby vision codec only if the
+ // device support clear DV decoding, otherwise use the original
+ // HEVC or AVC codec and profile.
+ if (media::IsDecoderSupportedVideoType(type)) {
+ codec = type.codec;
+ profile = type.profile;
+ }
+ break;
+ }
#endif // BUILDFLAG(ENABLE_PLATFORM_DOLBY_VISION)
default:
break;
- }
}
}
diff --git a/media/filters/audio_video_metadata_extractor.cc b/media/filters/audio_video_metadata_extractor.cc
index cb002490a6322..e841b4ad13383 100644
--- a/media/filters/audio_video_metadata_extractor.cc
+++ b/media/filters/audio_video_metadata_extractor.cc
@@ -113,13 +113,16 @@ bool AudioVideoMetadataExtractor::Extract(DataSource* source,
if (!stream)
continue;
- void* display_matrix =
- av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr);
- if (display_matrix) {
- rotation_ = VideoTransformation::FromFFmpegDisplayMatrix(
- static_cast<int32_t*>(display_matrix))
- .rotation;
- info.tags["rotate"] = base::NumberToString(rotation_);
+ for (int j = 0; j < stream->codecpar->nb_coded_side_data; j++) {
+ const AVPacketSideData& sd = stream->codecpar->coded_side_data[j];
+ if (sd.type == AV_PKT_DATA_DISPLAYMATRIX) {
+ CHECK_EQ(sd.size, sizeof(int32_t) * 3 * 3);
+ rotation_ = VideoTransformation::FromFFmpegDisplayMatrix(
+ reinterpret_cast<int32_t*>(sd.data))
+ .rotation;
+ info.tags["rotate"] = base::NumberToString(rotation_);
+ break;
+ }
}
// Extract dictionary from streams also. Needed for containers that attach

181
INSTALL.sh Normal file
View File

@@ -0,0 +1,181 @@
#!/bin/bash
set -x
while getopts s:o:l:i: option
do
case "${option}" in
s) STAGEDIR=${OPTARG};;
o) OUTPUTDIR=${OPTARG};;
l) LIBDIR=${OPTARG};;
i) ICUDATAFILE=${OPTARG};;
esac
done
SHLIB_PERMS="755"
PROGNAME="chrome"
PACKAGE="chromium-browser"
MAINTMAIL="chromium-dev@chromium.org"
PROJECT_LICENSE="BSD-3-Clause and LGPL-2.1+ and Apache-2.0 and IJG and MIT and GPL-2.0+ and ISC and OpenSSL and (MPL-1.1 or GPL-2.0 or LGPL-2.0)"
SHORTDESC="The web browser from Chromium project"
FULLDESC=" Chromium is an open-source browser project that aims to build a safer, faster,\
and more stable way to experience the web.\
</p>\
<p>\
We invite you to join our effort to build a powerful platform for developing a\
new generation of web applications.\
</p>\
<p>\
Chromium supports Vorbis, Theora, WebM and HTML5 audio and video standards, but\
does not include the non-free AAC, H.264, MP3 or Adobe Flash code that is found\
in Chrome."
PRODUCTURL="https://www.chromium.org/Home"
DEVELOPER_NAME="The Chromium Authors"
BUGTRACKERURL="https://www.chromium.org/for-testers/bug-reporting-guidelines"
HELPURL="https://chromium.googlesource.com/chromium/src/+/main/docs/linux/debugging.md"
MENUNAME="Chromium Web Browser"
CHANNEL="stable"
INSTALLDIR="${LIBDIR}/chromium"
install -m 755 -d \
"${STAGEDIR}/${INSTALLDIR}" \
"${STAGEDIR}/usr/bin" \
"${STAGEDIR}/usr/share/applications" \
"${STAGEDIR}/usr/share/metainfo" \
"${STAGEDIR}/usr/share/man/man1"
# app
buildfile="${OUTPUTDIR}/${PROGNAME}"
install -m 755 "${buildfile}" "${STAGEDIR}/${INSTALLDIR}/${PROGNAME}"
# crashpad
buildfile="${OUTPUTDIR}/chrome_crashpad_handler"
install -m 755 "${buildfile}" "${STAGEDIR}/${INSTALLDIR}/chrome_crashpad_handler"
# resources
install -m 644 "${OUTPUTDIR}/resources.pak" "${STAGEDIR}/${INSTALLDIR}/"
install -m 644 "${OUTPUTDIR}/chrome_100_percent.pak" "${STAGEDIR}/${INSTALLDIR}/"
install -m 644 "${OUTPUTDIR}/chrome_200_percent.pak" "${STAGEDIR}/${INSTALLDIR}/"
# ICU data file; Necessary when the GN icu_use_data_file flag is true.
if [ "x$ICUDATAFILE" == "xtrue" ]; then
install -m 644 "${OUTPUTDIR}/icudtl.dat" "${STAGEDIR}/${INSTALLDIR}/"
fi
# V8 snapshot files; Necessary when the GN v8_use_external_startup_data flag
# is true.
# Use v8_context_snapshot.bin instead of snapshot_blob.bin if it is available.
# TODO(crbug.com/764576): Unship snapshot_blob.bin on ChromeOS and drop this branch
install -m 644 "${OUTPUTDIR}/v8_context_snapshot.bin" "${STAGEDIR}/${INSTALLDIR}/"
# l10n paks
install -m 755 -d "${STAGEDIR}/${INSTALLDIR}/locales/"
find "${OUTPUTDIR}/locales" -type f -name '*.pak' -print -exec \
cp -a {} "${STAGEDIR}/${INSTALLDIR}/locales/" \;
find "${STAGEDIR}/${INSTALLDIR}/locales" -type f -print -exec chmod 644 {} \;
# ANGLE
if [ -f "${OUTPUTDIR}/libEGL.so" ]; then
for file in libEGL.so libGLESv2.so;
do
buildfile="${OUTPUTDIR}/${file}"
install -m ${SHLIB_PERMS} "${buildfile}" "${STAGEDIR}/${INSTALLDIR}/${file}"
done
fi
# ANGLE's libvulkan library
if [ -f "${OUTPUTDIR}/libvulkan.so.1" ]; then
file="libvulkan.so.1"
buildfile="${OUTPUTDIR}/${file}"
install -m 755 "${buildfile}" "${STAGEDIR}/${INSTALLDIR}/${file}"
fi
# SwiftShader ES
if [ -f "${OUTPUTDIR}/swiftshader/libEGL.so" ]; then
install -m 755 -d "${STAGEDIR}/${INSTALLDIR}/swiftshader/"
for file in libEGL.so libGLESv2.so;
do
buildfile="${OUTPUTDIR}/swiftshader/${file}"
install -m ${SHLIB_PERMS} "${buildfile}" "${STAGEDIR}/${INSTALLDIR}/swiftshader/${file}"
done
fi
# SwiftShader VK
if [ -f "${OUTPUTDIR}/libvk_swiftshader.so" ]; then
install -m 755 -d "${STAGEDIR}/${INSTALLDIR}/"
file="libvk_swiftshader.so"
buildfile="${OUTPUTDIR}/${file}"
install -m ${SHLIB_PERMS} "${buildfile}" "${STAGEDIR}/${INSTALLDIR}/${file}"
fi
sed -e 's|${ICD_LIBRARY_PATH}|./libvk_swiftshader.so|g' third_party/swiftshader/src/Vulkan/vk_swiftshader_icd.json.tmpl > ${OUTPUTDIR}/vk_swiftshader_icd.json
# Install the ICD json file to point ANGLE to libvk_swiftshader.so
install -m 644 "${OUTPUTDIR}/vk_swiftshader_icd.json" "${STAGEDIR}/${INSTALLDIR}/"
# QT shim
if [ -f "${OUTPUTDIR}/libqt5_shim.so" ]; then
file="libqt5_shim.so"
buildfile="${OUTPUTDIR}/${file}"
install -m ${SHLIB_PERMS} "${buildfile}" "${STAGEDIR}/${INSTALLDIR}/${file}"
fi
if [ -f "${OUTPUTDIR}/libqt6_shim.so" ]; then
file="libqt6_shim.so"
buildfile="${OUTPUTDIR}/${file}"
install -m ${SHLIB_PERMS} "${buildfile}" "${STAGEDIR}/${INSTALLDIR}/${file}"
fi
# default apps
if [ -d "${OUTPUTDIR}/default_apps" ]; then
cp -a "${OUTPUTDIR}/default_apps" "${STAGEDIR}/${INSTALLDIR}/"
find "${STAGEDIR}/${INSTALLDIR}/default_apps" -type d -exec chmod 755 '{}' \;
find "${STAGEDIR}/${INSTALLDIR}/default_apps" -type f -exec chmod 644 '{}' \;
fi
# launcher script and symlink
sed \
-e "s#@@PROGNAME@@#${PROGNAME}#g" \
-e "s#@@CHANNEL@@#${CHANNEL}#g" \
"chrome/installer/linux/common/wrapper" > "${STAGEDIR}/${INSTALLDIR}/chrome-wrapper"
chmod 755 "${STAGEDIR}/${INSTALLDIR}/chrome-wrapper"
ln -s "${INSTALLDIR}/chrome-wrapper" "${STAGEDIR}/usr/bin/${PACKAGE}"
# app icons
for size in 16 32;
do
icon="chrome/app/theme/default_100_percent/chromium/product_logo_${size}.png"
installpath="${STAGEDIR}/usr/share/icons/hicolor/${size}x${size}/apps/chromium-browser.png"
install -D -m 644 ${icon} ${installpath}
done
for size in 24 48 64 128 256;
do
icon="chrome/app/theme/chromium/product_logo_${size}.png"
installpath="${STAGEDIR}/usr/share/icons/hicolor/${size}x${size}/apps/chromium-browser.png"
install -D -m 644 ${icon} ${installpath}
done
# desktop integration
## AppData
sed \
-e "s#@@PACKAGE@@#${PACKAGE}#g" \
-e "s#@@MAINTMAIL@@#${MAINTMAIL}#g" \
-e "s#@@PROJECT_LICENSE@@#${PROJECT_LICENSE}#g" \
-e "s#@@MENUNAME@@#${MENUNAME}#g" \
-e "s#@@SHORTDESC@@#${SHORTDESC}#g" \
-e "s#@@FULLDESC@@#${FULLDESC}#g" \
-e "s#@@PRODUCTURL@@#${PRODUCTURL}#g" \
-e "s#@@DEVELOPER_NAME@@#${DEVELOPER_NAME}#g" \
-e "s#@@BUGTRACKERURL@@#${BUGTRACKERURL}#g" \
-e "s#@@HELPURL@@#${HELPURL}#g" \
"chrome/installer/linux/common/appdata.xml.template" > "${STAGEDIR}/usr/share/metainfo/${PACKAGE}.appdata.xml"
## Desktop file
sed \
-e "s#@@MENUNAME@@#${MENUNAME}#g" \
-e "s#@@USR_BIN_SYMLINK_NAME@@#${PACKAGE}#g" \
-e "s#@@PACKAGE@@#${PACKAGE}#g" \
"chrome/installer/linux/common/desktop.template" > "${STAGEDIR}/usr/share/applications/${PACKAGE}.desktop"
chmod 644 "${STAGEDIR}/usr/share/applications/${PACKAGE}.desktop"
# documentation
sed \
-e "s#@@MENUNAME@@#${MENUNAME}#g" \
-e "s#@@PACKAGE@@#${PACKAGE}#g" \
"chrome/app/resources/manpage.1.in" > "${STAGEDIR}/usr/share/man/man1/${PACKAGE}.1"
gzip -9n "${STAGEDIR}/usr/share/man/man1/${PACKAGE}.1"
chmod 644 "${STAGEDIR}/usr/share/man/man1/${PACKAGE}.1.gz"

9
README.SUSE Normal file
View File

@@ -0,0 +1,9 @@
README for SUSE packagers
=========================
Patches for chromium can typically be found in the following places:
Stephan Hartmann - https://github.com/stha09/chromium-patches/releases
Gentoo - https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files
Fedora - https://src.fedoraproject.org/rpms/chromium/tree/rawhide
Arch - https://github.com/archlinux/svntogit-packages/tree/packages/chromium/trunk
Arch: https://gitlab.com/Matt.Jolly/chromium-patches/

24
_constraints Normal file
View File

@@ -0,0 +1,24 @@
<?xml version="1.0"?>
<constraints>
<hardware>
<disk>
<size unit="G">30</size>
</disk>
<physicalmemory>
<size unit="G">14</size>
</physicalmemory>
</hardware>
<overwrite>
<conditions>
<arch>aarch64</arch>
</conditions>
<hardware>
<cpu>
<flag>asimdrdm</flag>
</cpu>
<memory>
<size unit="G">11</size>
</memory>
</hardware>
</overwrite>
</constraints>

18
buildfix.patch Normal file
View File

@@ -0,0 +1,18 @@
--- chromium/src/third_party/WebKit/Source/WebCore/platform/ScrollAnimatorNone.cpp
+++ chromium/src/third_party/WebKit/Source/WebCore/platform/ScrollAnimatorNone.cpp
@@ -96,6 +96,7 @@
t -= 2.625 / 2.75;
return 7.5625 * t * t + .984375;
}
+ return t;
}
double ScrollAnimatorNone::PerAxisData::attackCurve(Curve curve, double deltaTime, double curveT, double startPosition, double attackPosition)
@@ -124,6 +125,7 @@
case Bounce:
return t;
}
+ return t;
}
ScrollAnimatorNone::PerAxisData::PerAxisData(ScrollAnimatorNone* parent, float* currentPosition)

51
chrome-wrapper Normal file
View File

@@ -0,0 +1,51 @@
#!/bin/sh
# Copyright (c) 2010 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.
# Running Chromium via this script makes it possible to set Chromium as the
# default browser directly out of a compile, without needing to package it.
DESKTOP="chromium-devel"
TITLE="Chromium"
# Checks a file to see if it's a 32 or 64-bit.
check_executable() {
out=$(file $(readlink -f $1) 2> /dev/null)
echo $out | grep -qs "ELF 32-bit LSB"
if [ $? = 0 ]; then
echo 32
return
fi
echo $out | grep -qs "ELF 64-bit LSB"
if [ $? = 0 ]; then
echo 64
return
fi
echo neither
}
# Let the wrapped binary know that it has been run through the wrapper.
export CHROME_WRAPPER="`readlink -f "$0"`"
HERE="`dirname "$CHROME_WRAPPER"`"
# We include some xdg utilities next to the binary, and we want to prefer them
# over the system versions because we know they work correctly for us. But if
# our path already exists, we leave it where it is, to allow overriding this.
# (Once distributions have picked up the updated xdg-mime, we can go back to
# appending $HERE rather than prepending.)
case ":$PATH:" in
*:$HERE:*)
# $PATH already contains $HERE, leave it where it is.
;;
*)
# Prepend $HERE to $PATH.
export PATH="$HERE:$PATH"
;;
esac
export LD_LIBRARY_PATH="$HERE:$HERE/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
exec "$HERE/chrome" "$@"

View File

@@ -0,0 +1,16 @@
Index: chromium-123.0.6312.46/components/autofill/core/browser/BUILD.gn
===================================================================
--- chromium-123.0.6312.46.orig/components/autofill/core/browser/BUILD.gn
+++ chromium-123.0.6312.46/components/autofill/core/browser/BUILD.gn
@@ -64,6 +64,11 @@
}
static_library("browser") {
+ if (is_clang) {
+ cflags = [
+ "-fbracket-depth=1000",
+ ]
+ }
sources = [
"autofill_browser_util.cc",
"autofill_browser_util.h",

View File

@@ -0,0 +1,17 @@
Index: chromium-106.0.5249.91/media/filters/audio_file_reader.cc
===================================================================
--- chromium-106.0.5249.91.orig/media/filters/audio_file_reader.cc
+++ chromium-106.0.5249.91/media/filters/audio_file_reader.cc
@@ -243,10 +243,10 @@ bool AudioFileReader::OnNewFrame(
// silence from being output. In the case where we are also discarding some
// portion of the packet (as indicated by a negative pts), we further want to
// adjust the duration downward by however much exists before zero.
- if (audio_codec_ == AudioCodec::kAAC && frame->duration) {
+ if (audio_codec_ == AudioCodec::kAAC && frame->pkt_duration) {
const base::TimeDelta pkt_duration = ConvertFromTimeBase(
glue_->format_context()->streams[stream_index_]->time_base,
- frame->duration + std::min(static_cast<int64_t>(0), frame->pts));
+ frame->pkt_duration + std::min(static_cast<int64_t>(0), frame->pts));
const base::TimeDelta frame_duration =
base::Seconds(frames_read / static_cast<double>(sample_rate_));

View File

@@ -0,0 +1,21 @@
diff -up chromium-117.0.5938.62/net/dns/host_resolver_cache.cc.me chromium-117.0.5938.62/net/dns/host_resolver_cache.cc
diff -up chromium-117.0.5938.62/net/dns/host_resolver_cache.h.me chromium-117.0.5938.62/net/dns/host_resolver_cache.h
--- chromium-117.0.5938.62/net/dns/host_resolver_cache.h.me 2023-09-14 15:21:24.632965004 +0200
+++ chromium-117.0.5938.62/net/dns/host_resolver_cache.h 2023-09-15 09:15:48.511300845 +0200
@@ -143,12 +143,14 @@ class NET_EXPORT HostResolverCache final
}
bool operator()(const Key& lhs, const KeyRef& rhs) const {
+ const std::string rhs_domain_name{rhs.domain_name};
return std::tie(lhs.domain_name, lhs.network_anonymization_key) <
- std::tie(rhs.domain_name, *rhs.network_anonymization_key);
+ std::tie(rhs_domain_name, *rhs.network_anonymization_key);
}
bool operator()(const KeyRef& lhs, const Key& rhs) const {
- return std::tie(lhs.domain_name, *lhs.network_anonymization_key) <
+ const std::string lhs_domain_name{lhs.domain_name};
+ return std::tie(lhs_domain_name, *lhs.network_anonymization_key) <
std::tie(rhs.domain_name, rhs.network_anonymization_key);
}
};

View File

@@ -0,0 +1,41 @@
diff -up chromium-121.0.6167.57/build/config/clang/BUILD.gn.rust-clang_lib chromium-121.0.6167.57/build/config/clang/BUILD.gn
--- chromium-121.0.6167.57/build/config/clang/BUILD.gn.rust-clang_lib 2024-01-10 16:43:01.000000000 +0100
+++ chromium-121.0.6167.57/build/config/clang/BUILD.gn 2024-01-20 19:51:38.481992799 +0100
@@ -112,6 +112,7 @@ template("clang_lib") {
_prefix = "lib"
_suffix = ""
_ext = "a"
+ _libprefix = ""
if (is_win) {
_dir = "windows"
_prefix = ""
@@ -127,7 +128,19 @@ template("clang_lib") {
}
} else if (is_apple) {
_dir = "darwin"
- } else if (is_linux || is_chromeos) {
+ } else if (is_linux) {
+ _libprefix = "64"
+ _dir = "linux"
+ if (current_cpu == "x64") {
+ _suffix ="-x86_64"
+ } else if (current_cpu == "arm64") {
+ _suffix = "-aarch64"
+ } else if (current_cpu == "riscv64") {
+ _suffix = "-riscv64"
+ } else {
+ assert(false) # Unhandled cpu type
+ }
+ } else if (is_chromeos) {
if (current_cpu == "x64") {
_dir = "x86_64-unknown-linux-gnu"
} else if (current_cpu == "x86") {
@@ -166,7 +193,7 @@ template("clang_lib") {
assert(false) # Unhandled target platform
}
- _clang_lib_dir = "$clang_base_path/lib/clang/$clang_version/lib"
+ _clang_lib_dir = "$clang_base_path/lib${_libprefix}/clang/$clang_version/lib"
_lib_file = "${_prefix}clang_rt.${_libname}${_suffix}.${_ext}"
libs = [ "$_clang_lib_dir/$_dir/$_lib_file" ]
}

View File

@@ -0,0 +1,12 @@
diff --git a/ui/qt/BUILD.gn b/ui/qt/BUILD.gn.new
index 2da7845..02ae3c8 100644
--- a/ui/qt/BUILD.gn
+++ b/ui/qt/BUILD.gn
@@ -61,6 +61,7 @@ template("qt_shim") {
packages = [
"Qt" + invoker.qt_version + "Core",
"Qt" + invoker.qt_version + "Widgets",
+ "Qt" + invoker.qt_version + "Gui",
]
}

View File

@@ -0,0 +1,24 @@
diff -up chromium-121.0.6167.139/third_party/blink/renderer/core/xml/xslt_processor.h.me chromium-121.0.6167.139/third_party/blink/renderer/core/xml/xslt_processor.h
--- chromium-121.0.6167.139/third_party/blink/renderer/core/xml/xslt_processor.h.me 2024-02-06 08:22:36.013021582 +0100
+++ chromium-121.0.6167.139/third_party/blink/renderer/core/xml/xslt_processor.h 2024-02-06 08:23:08.281607499 +0100
@@ -77,7 +77,7 @@ class XSLTProcessor final : public Scrip
void reset();
- static void ParseErrorFunc(void* user_data, const xmlError*);
+ static void ParseErrorFunc(void* user_data, xmlError*);
static void GenericErrorFunc(void* user_data, const char* msg, ...);
// Only for libXSLT callbacks
diff -up chromium-121.0.6167.139/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc.me chromium-121.0.6167.139/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
--- chromium-121.0.6167.139/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc.me 2024-02-06 08:14:32.368066214 +0100
+++ chromium-121.0.6167.139/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc 2024-02-06 08:23:08.282607518 +0100
@@ -66,7 +66,7 @@ void XSLTProcessor::GenericErrorFunc(voi
// It would be nice to do something with this error message.
}
-void XSLTProcessor::ParseErrorFunc(void* user_data, const xmlError* error) {
+void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) {
FrameConsole* console = static_cast<FrameConsole*>(user_data);
if (!console)
return;

285
chromium-125-compiler.patch Normal file
View File

@@ -0,0 +1,285 @@
From 307a0f63dd9b118f4b8470ed3d7567e81fdb7a6d Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Tue, 15 Nov 2022 10:27:58 +0000
Subject: [PATCH] Disable various compiler configs
---
build/config/compiler/BUILD.gn | 134 +++++----------------------------
1 file changed, 17 insertions(+), 117 deletions(-)
Index: chromium-126.0.6478.8/build/config/compiler/BUILD.gn
===================================================================
--- chromium-126.0.6478.8.orig/build/config/compiler/BUILD.gn
+++ chromium-126.0.6478.8/build/config/compiler/BUILD.gn
@@ -305,9 +305,7 @@ config("compiler") {
configs += [
# See the definitions below.
- ":clang_revision",
":rustc_revision",
- ":compiler_cpu_abi",
":compiler_codegen",
":compiler_deterministic",
]
@@ -566,63 +566,6 @@
ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
}
- if (is_clang && !is_nacl) {
- cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
- if (save_reproducers_on_lld_crash && use_lld) {
- ldflags += [
- "-fcrash-diagnostics=all",
- "-fcrash-diagnostics-dir=" + clang_diagnostic_dir,
- ]
- }
-
- # TODO(hans): Remove this once Clang generates better optimized debug info
- # by default. https://crbug.com/765793
- cflags += [
- "-mllvm",
- "-instcombine-lower-dbg-declare=0",
- ]
- if (!is_debug && use_thin_lto && is_a_target_toolchain) {
- if (is_win) {
- ldflags += [ "-mllvm:-instcombine-lower-dbg-declare=0" ]
- } else {
- ldflags += [ "-Wl,-mllvm,-instcombine-lower-dbg-declare=0" ]
- }
- }
-
- # TODO(crbug.com/40283598): This causes binary size growth and potentially
- # other problems.
- # TODO(crbug.com/40284925): This isn't supported by Cronet's mainline llvm version.
- if (default_toolchain != "//build/toolchain/cros:target" &&
- !llvm_android_mainline) {
- cflags += [
- "-mllvm",
- "-split-threshold-for-reg-with-hint=0",
- ]
- if (use_thin_lto && is_a_target_toolchain) {
- if (is_win) {
- ldflags += [ "-mllvm:-split-threshold-for-reg-with-hint=0" ]
- } else {
- ldflags += [ "-Wl,-mllvm,-split-threshold-for-reg-with-hint=0" ]
- }
- }
- }
-
- # TODO(crbug.com/40192287): Investigate why/if this should be needed.
- if (is_win) {
- cflags += [ "/clang:-ffp-contract=off" ]
- } else {
- cflags += [ "-ffp-contract=off" ]
- }
-
- # Enable ELF CREL (see crbug.com/357878242) for all platforms that use ELF
- # (excluding toolchains that use an older version of LLVM).
- # TODO(crbug.com/376278218): This causes segfault on Linux ARM builds.
- if (is_linux && !llvm_android_mainline && current_cpu != "arm" &&
- default_toolchain != "//build/toolchain/cros:target") {
- cflags += [ "-Wa,--crel,--allow-experimental-crel" ]
- }
- }
-
# C11/C++11 compiler flags setup.
# ---------------------------
if (is_linux || is_chromeos || is_android || (is_nacl && is_clang) ||
@@ -1538,52 +1489,6 @@ config("compiler_deterministic") {
}
}
- # Makes builds independent of absolute file path.
- if (is_clang && strip_absolute_paths_from_debug_symbols) {
- # If debug option is given, clang includes $cwd in debug info by default.
- # For such build, this flag generates reproducible obj files even we use
- # different build directory like "out/feature_a" and "out/feature_b" if
- # we build same files with same compile flag.
- # Other paths are already given in relative, no need to normalize them.
- if (is_nacl) {
- # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
- cflags += [
- "-Xclang",
- "-fdebug-compilation-dir",
- "-Xclang",
- ".",
- ]
- } else {
- # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
- # and -fcoverage-compilation-dir=.
- cflags += [ "-ffile-compilation-dir=." ]
-
- # Convert absolute paths to relative paths. Expands to, for example:
- # -file-prefix-map /path/to/chromium/src=../..
- swiftflags += [
- "-file-prefix-map",
- rebase_path("//.", "") + "=" + rebase_path("//.", root_build_dir),
- ]
- }
- if (!is_win) {
- # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
- asmflags = [ "-Wa,-fdebug-compilation-dir,." ]
- }
-
- if (is_win && use_lld) {
- if (symbol_level == 2 || (is_clang && using_sanitizer)) {
- # Absolutize source file paths for PDB. Pass the real build directory
- # if the pdb contains source-level debug information and if linker
- # reproducibility is not critical.
- ldflags += [ "/PDBSourcePath:" + rebase_path(root_build_dir) ]
- } else {
- # Use a fake fixed base directory for paths in the pdb to make the pdb
- # output fully deterministic and independent of the build directory.
- ldflags += [ "/PDBSourcePath:o:\fake\prefix" ]
- }
- }
- }
-
# Tells the compiler not to use absolute paths when passing the default
# paths to the tools it invokes. We don't want this because we don't
# really need it and it can mess up the RBE cache entries.
@@ -1602,28 +1507,6 @@ config("compiler_deterministic") {
}
}
-config("clang_revision") {
- if (is_clang && clang_base_path == default_clang_base_path &&
- current_os != "zos") {
- update_args = [
- "--print-revision",
- "--verify-version=$clang_version",
- ]
- if (llvm_force_head_revision) {
- update_args += [ "--llvm-force-head-revision" ]
- }
- clang_revision = exec_script("//tools/clang/scripts/update.py",
- update_args,
- "trim string")
-
- # This is here so that all files get recompiled after a clang roll and
- # when turning clang on or off. (defines are passed via the command line,
- # and build system rebuild things when their commandline changes). Nothing
- # should ever read this define.
- defines = [ "CR_CLANG_REVISION=\"$clang_revision\"" ]
- }
-}
-
config("rustc_revision") {
if (rustc_revision != "") {
# Similar to the above config, this is here so that all files get recompiled
@@ -1983,10 +1871,6 @@ config("chromium_code") {
}
} else {
cflags = [ "-Wall" ]
- if (is_clang) {
- # Enable extra warnings for chromium_code when we control the compiler.
- cflags += [ "-Wextra" ]
- }
# In Chromium code, we define __STDC_foo_MACROS in order to get the
# C99 macros on Mac and Linux.
@@ -1995,24 +1879,6 @@ config("chromium_code") {
"__STDC_FORMAT_MACROS",
]
- if (!is_debug && !using_sanitizer && current_cpu != "s390x" &&
- current_cpu != "s390" && current_cpu != "ppc64" &&
- current_cpu != "mips" && current_cpu != "mips64" &&
- current_cpu != "riscv64" && current_cpu != "loong64") {
- # Non-chromium code is not guaranteed to compile cleanly with
- # _FORTIFY_SOURCE. Also, fortified build may fail when optimizations are
- # disabled, so only do that for Release build.
- fortify_level = "2"
-
- # ChromeOS's toolchain supports a high-quality _FORTIFY_SOURCE=3
- # implementation with a few custom glibc patches. Use that if it's
- # available.
- if (is_chromeos_device && !lacros_use_chromium_toolchain) {
- fortify_level = "3"
- }
- defines += [ "_FORTIFY_SOURCE=" + fortify_level ]
- }
-
if (is_apple) {
cflags_objc = [ "-Wimplicit-retain-self" ]
cflags_objcc = [ "-Wimplicit-retain-self" ]
@@ -2442,7 +2325,8 @@ config("default_stack_frames") {
# [0]: https://pinpoint-dot-chromeperf.appspot.com/job/147634a8be0000
# [1]: https://pinpoint-dot-chromeperf.appspot.com/job/132bc772be0000
# [2]: https://crrev.com/c/5447532
-config("optimize") {
+config("optimize") { }
+config("xoptimize") {
if (is_win) {
# clang-cl's /O2 corresponds to clang's -O3, and really want -O2 for
# consistency with the other platforms.
@@ -2450,7 +2317,8 @@ config("optimize") {
}
# Turn off optimizations.
-config("no_optimize") {
+config("no_optimize") { }
+config("xno_optimize") {
if (is_win) {
cflags = [
"/Od", # Disable optimization.
@@ -2490,7 +2358,8 @@ config("no_optimize") {
# Turns up the optimization level. Used to explicitly enable -O2 instead of
# -Os for select targets on platforms that use optimize_for_size. No-op
# elsewhere.
-config("optimize_max") {
+config("optimize_max") { }
+config("xoptimize_max") {
if (is_nacl && is_nacl_irt) {
# The NaCl IRT is a special case and always wants its own config.
# Various components do:
@@ -2523,7 +2392,8 @@ config("optimize_max") {
#
# TODO(crbug.com/41259697) - rework how all of these configs are related
# so that we don't need this disclaimer.
-config("optimize_speed") {
+config("optimize_speed") { }
+config("xoptimize_speed") {
if (is_nacl && is_nacl_irt) {
# The NaCl IRT is a special case and always wants its own config.
# Various components do:
@@ -2552,7 +2422,8 @@ config("optimize_speed") {
}
}
-config("optimize_fuzzing") {
+config("optimize_fuzzing") { }
+config("xoptimize_fuzzing") {
cflags = [ "-O1" ] + common_optimize_on_cflags
rustflags = [ "-Copt-level=1" ]
ldflags = common_optimize_on_ldflags
@@ -2685,7 +2556,8 @@ config("win_pdbaltpath") {
}
# Full symbols.
-config("symbols") {
+config("symbols") { }
+config("xsymbols") {
rustflags = []
configs = []
if (is_win) {
@@ -2835,7 +2707,8 @@ config("symbols") {
# Minimal symbols.
# This config guarantees to hold symbol for stack trace which are shown to user
# when crash happens in unittests running on buildbot.
-config("minimal_symbols") {
+config("minimal_symbols") { }
+config("xminimal_symbols") {
rustflags = []
if (is_win) {
# Functions, files, and line tables only.
@@ -2920,7 +2793,8 @@ config("minimal_symbols") {
# This configuration contains function names only. That is, the compiler is
# told to not generate debug information and the linker then just puts function
# names in the final debug information.
-config("no_symbols") {
+config("no_symbols") { }
+config("xno_symbols") {
if (is_win) {
ldflags = [ "/DEBUG" ]

View File

@@ -0,0 +1,105 @@
commit 62274859104bd828373ae406aa9309e610449ac5
Author: Ted Meyer <tmathmeyer@chromium.org>
Date: Fri Mar 22 19:56:55 2024 +0000
Replace deprecated use of AVCodecContext::reordered_opaque
We can use the AV_CODEC_FLAG_COPY_OPAQUE flag on the codec context
now to trigger timestamp propagation.
Bug: 330573128
Change-Id: I6bc57241a35ab5283742aad8d42acb4dc5e85858
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5384308
Commit-Queue: Ted (Chromium) Meyer <tmathmeyer@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1277051}
diff --git a/media/filters/ffmpeg_video_decoder.cc b/media/filters/ffmpeg_video_decoder.cc
index bd75477feeabb..8a658a58caac5 100644
--- a/media/filters/ffmpeg_video_decoder.cc
+++ b/media/filters/ffmpeg_video_decoder.cc
@@ -134,7 +134,7 @@ bool FFmpegVideoDecoder::IsCodecSupported(VideoCodec codec) {
}
FFmpegVideoDecoder::FFmpegVideoDecoder(MediaLog* media_log)
- : media_log_(media_log) {
+ : media_log_(media_log), timestamp_map_(128) {
DVLOG(1) << __func__;
DETACH_FROM_SEQUENCE(sequence_checker_);
}
@@ -363,8 +363,10 @@ bool FFmpegVideoDecoder::FFmpegDecode(const DecoderBuffer& buffer) {
DCHECK(packet->data);
DCHECK_GT(packet->size, 0);
- // Let FFmpeg handle presentation timestamp reordering.
- codec_context_->reordered_opaque = buffer.timestamp().InMicroseconds();
+ const int64_t timestamp = buffer.timestamp().InMicroseconds();
+ const TimestampId timestamp_id = timestamp_id_generator_.GenerateNextId();
+ timestamp_map_.Put(std::make_pair(timestamp_id, timestamp));
+ packet->opaque = reinterpret_cast<void*>(timestamp_id.GetUnsafeValue());
}
FFmpegDecodingLoop::DecodeStatus decode_status = decoding_loop_->DecodePacket(
packet, base::BindRepeating(&FFmpegVideoDecoder::OnNewFrame,
@@ -423,7 +425,12 @@ bool FFmpegVideoDecoder::OnNewFrame(AVFrame* frame) {
}
gfx::Size natural_size = aspect_ratio.GetNaturalSize(visible_rect);
- const auto pts = base::Microseconds(frame->reordered_opaque);
+ const auto ts_id = TimestampId(reinterpret_cast<size_t>(frame->opaque));
+ const auto ts_lookup = timestamp_map_.Get(ts_id);
+ if (ts_lookup == timestamp_map_.end()) {
+ return false;
+ }
+ const auto pts = base::Microseconds(std::get<1>(*ts_lookup));
auto video_frame = VideoFrame::WrapExternalDataWithLayout(
opaque->layout, visible_rect, natural_size, opaque->data, opaque->size,
pts);
@@ -482,8 +482,10 @@ bool FFmpegVideoDecoder::ConfigureDecoder(const VideoDecoderConfig& config,
codec_context_->thread_count = GetFFmpegVideoDecoderThreadCount(config);
codec_context_->thread_type =
FF_THREAD_SLICE | (low_delay ? 0 : FF_THREAD_FRAME);
+
codec_context_->opaque = this;
codec_context_->get_buffer2 = GetVideoBufferImpl;
+ codec_context_->flags |= AV_CODEC_FLAG_COPY_OPAQUE;
if (decode_nalus_) {
codec_context_->flags2 |= AV_CODEC_FLAG2_CHUNKS;
diff --git a/media/filters/ffmpeg_video_decoder.h b/media/filters/ffmpeg_video_decoder.h
index d02cb89c3ddf7..0a2de1c623fff 100644
--- a/media/filters/ffmpeg_video_decoder.h
+++ b/media/filters/ffmpeg_video_decoder.h
@@ -7,10 +7,12 @@
#include <memory>
+#include "base/containers/lru_cache.h"
#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/scoped_refptr.h"
#include "base/sequence_checker.h"
+#include "base/types/id_type.h"
#include "media/base/frame_buffer_pool.h"
#include "media/base/supported_video_decoder_config.h"
#include "media/base/video_decoder.h"
@@ -87,6 +89,20 @@ class MEDIA_EXPORT FFmpegVideoDecoder : public VideoDecoder {
// FFmpeg structures owned by this object.
std::unique_ptr<AVCodecContext, ScopedPtrAVFreeContext> codec_context_;
+ // The gist here is that timestamps need to be 64 bits to store microsecond
+ // precision. A 32 bit integer would overflow at ~35 minutes at this level of
+ // precision. We can't cast the timestamp to the void ptr object used by the
+ // opaque field in ffmpeg then, because it would lose data on a 32 bit build.
+ // However, we don't actually have 2^31 timestamped frames in a single
+ // playback, so it's fine to use the 32 bit value as a key in a map which
+ // contains the actual timestamps. Additionally, we've in the past set 128
+ // outstanding frames for re-ordering as a limit for cross-thread decoding
+ // tasks, so we'll do that here too with the LRU cache.
+ using TimestampId = base::IdType<int64_t, size_t, 0>;
+
+ TimestampId::Generator timestamp_id_generator_;
+ base::LRUCache<TimestampId, int64_t> timestamp_map_;
+
VideoDecoderConfig config_;
scoped_refptr<FrameBufferPool> frame_pool_;

View File

@@ -0,0 +1,12 @@
diff -up chromium-126.0.6478.26/net/third_party/quiche/src/quiche/quic/core/quic_interval_deque.h.me chromium-126.0.6478.26/net/third_party/quiche/src/quiche/quic/core/quic_interval_deque.h
--- chromium-126.0.6478.26/net/third_party/quiche/src/quiche/quic/core/quic_interval_deque.h.me 2024-06-03 15:01:54.724207324 +0200
+++ chromium-126.0.6478.26/net/third_party/quiche/src/quiche/quic/core/quic_interval_deque.h 2024-06-03 14:58:16.244189794 +0200
@@ -144,7 +144,7 @@ class QUICHE_NO_EXPORT QuicIntervalDeque
// for efficient std::lower_bound() calls.
class QUICHE_NO_EXPORT Iterator {
public:
- using iterator_category = std::random_access_iterator_tag;
+ using iterator_category = std::forward_iterator_tag;
using value_type = T;
using difference_type = std::ptrdiff_t;
using pointer = T*;

View File

@@ -0,0 +1,21 @@
author: Andres Salomon <dilinger@debian.org>
description: fix bindgen-related stuff
Also, the call to bindgen sets the path for libclang to
rust_bindgen_root, which is wrong. We're already passing
clang_base_path with the path to libclang, there's no reason that
we'd expect libclang to be in the same directory as bindgen. That
fix should probably go upstream.
--- a/build/rust/rust_bindgen.gni
+++ b/build/rust/rust_bindgen.gni
@@ -18,7 +18,7 @@ if (host_os == "win") {
# On Windows, the libclang.dll is beside the bindgen.exe, otherwise it is in
# ../lib.
-_libclang_path = rust_bindgen_root
+_libclang_path = clang_base_path
if (host_os == "win") {
_libclang_path += "/bin"
} else {

View File

@@ -0,0 +1,108 @@
author: Andres Salomon <dilinger@debian.org>
../../services/network/shared_dictionary/simple_url_pattern_matcher.cc:31:34: error: constexpr variable 'kDefaultOptions' must be initialized by a constant expression
31 | constexpr liburlpattern::Options kDefaultOptions = {.delimiter_list = "",
| ^ ~~~~~~~~~~~~~~~~~~~~~~
32 | .prefix_list = "",
| ~~~~~~~~~~~~~~~~~~
33 | .sensitive = true,
| ~~~~~~~~~~~~~~~~~~
34 | .strict = true};
| ~~~~~~~~~~~~~~~
--- a/services/network/shared_dictionary/simple_url_pattern_matcher.cc
+++ b/services/network/shared_dictionary/simple_url_pattern_matcher.cc
@@ -28,17 +28,17 @@ namespace network {
namespace {
// https://urlpattern.spec.whatwg.org/#default-options
-constexpr liburlpattern::Options kDefaultOptions = {.delimiter_list = "",
+const liburlpattern::Options kDefaultOptions = {.delimiter_list = "",
.prefix_list = "",
.sensitive = true,
.strict = true};
// https://urlpattern.spec.whatwg.org/#hostname-options
-constexpr liburlpattern::Options kHostnameOptions = {.delimiter_list = ".",
+const liburlpattern::Options kHostnameOptions = {.delimiter_list = ".",
.prefix_list = "",
.sensitive = true,
.strict = true};
// https://urlpattern.spec.whatwg.org/#pathname-options
-constexpr liburlpattern::Options kPathnameOptions = {.delimiter_list = "/",
+const liburlpattern::Options kPathnameOptions = {.delimiter_list = "/",
.prefix_list = "/",
.sensitive = true,
.strict = true};
--- a/components/autofill/core/browser/data_model/addresses/autofill_i18n_api.h
+++ b/components/autofill/core/browser/data_model/addresses/autofill_i18n_api.h
@@ -16,8 +16,8 @@ namespace autofill::i18n_model_definitio
// Country code that represents autofill's legacy address hierarchy model as
// stored `kAutofillModelRules`. As a workaround for GCC we declare the
// std::string constexpr first.
-constexpr inline std::string kLegacyHierarchyCountryCodeString{"XX"};
-constexpr AddressCountryCode kLegacyHierarchyCountryCode =
+[[clang::no_destroy]] const inline std::string kLegacyHierarchyCountryCodeString{"XX"};
+[[clang::no_destroy]] const AddressCountryCode kLegacyHierarchyCountryCode =
AddressCountryCode(kLegacyHierarchyCountryCodeString);
// Creates an instance of the address hierarchy model corresponding to the
--- a/components/omnibox/browser/on_device_tail_model_service.cc
+++ b/components/omnibox/browser/on_device_tail_model_service.cc
@@ -26,7 +26,7 @@
namespace {
// Constants for TFlite model validation.
-constexpr std::string kTestPrefix = "google m";
+const std::string kTestPrefix = "google m";
constexpr std::string_view kModelValidationSwitchName =
"omnibox-on-device-tail-model-validation";
--- a/chrome/browser/ui/lens/lens_overlay_url_builder.cc
+++ b/chrome/browser/ui/lens/lens_overlay_url_builder.cc
@@ -80,7 +80,7 @@
inline constexpr char kSecActQueryParamKey[] = "sec_act";
// The list of query parameters to ignore when comparing search URLs.
-inline constexpr std::string kIgnoredSearchUrlQueryParameters[] = {
+inline const std::string kIgnoredSearchUrlQueryParameters[] = {
kViewportWidthQueryParamKey, kViewportHeightQueryParamKey,
kXSRFTokenQueryParamKey, kSecActQueryParamKey,
kModeParameterKey, kToolbeltModeParameterKey};
--- a/content/public/test/prefetch_test_util.h
+++ b/content/public/test/prefetch_test_util.h
@@ -15,7 +15,7 @@ namespace content::test {
using PrefetchContainerIdForTesting =
base::StrongAlias<class PrefetchContainerIdForTestingTag, std::string>;
-inline constexpr PrefetchContainerIdForTesting
+inline const PrefetchContainerIdForTesting
InvalidPrefetchContainerIdForTesting = PrefetchContainerIdForTesting("");
class TestPrefetchWatcherImpl;
--- a/components/history_embeddings/ml_answerer.cc
+++ b/components/history_embeddings/ml_answerer.cc
@@ -24,7 +24,7 @@ using optimization_guide::proto::Passage
namespace {
-static constexpr std::string kPassageIdToken = "ID";
+static const std::string kPassageIdToken = "ID";
// Estimated token count of the preamble text in prompt.
static constexpr size_t kPreambleTokenBufferSize = 100u;
// Estimated token count of overhead text per passage.
--- a/components/compose/core/browser/config.cc
+++ b/components/compose/core/browser/config.cc
@@ -46,11 +46,11 @@
}
constexpr auto DEFAULT_COMPOSE_ENABLED_COUNTRIES =
- base::MakeFixedFlatSet<std::string>({"bd", "ca", "gh", "in", "ke", "my",
+ base::MakeFixedFlatSet<std::string_view>({"bd", "ca", "gh", "in", "ke", "my",
"ng", "ph", "pk", "sg", "tz", "ug",
"us", "zm", "zw"});
constexpr auto DEFAULT_PROACTIVE_NUDGE_ENABLED_COUNTRIES =
- base::MakeFixedFlatSet<std::string>({"us"});
+ base::MakeFixedFlatSet<std::string_view>({"us"});
} // namespace

View File

@@ -0,0 +1,57 @@
diff -up chromium-127.0.6533.72/build/rust/rust_bindgen.gni.me chromium-127.0.6533.72/build/rust/rust_bindgen.gni
--- chromium-127.0.6533.72/build/rust/rust_bindgen.gni.me 2024-07-25 16:11:18.754551595 +0200
+++ chromium-127.0.6533.72/build/rust/rust_bindgen.gni 2024-07-25 16:11:33.997837660 +0200
@@ -22,7 +22,7 @@ _libclang_path = rust_bindgen_root
if (host_os == "win") {
_libclang_path += "/bin"
} else {
- _libclang_path += "/lib"
+ _libclang_path += "/lib64"
}
# Template to build Rust/C bindings with bindgen.
@@ -105,6 +105,14 @@
# it's declared.
deps = [ ":${_rust_bindgen_generator_name}_static_fns" ]
}
+
+ # Default configs include "-fvisibility=hidden", and for some reason this
+ # causes bindgen not to emit function bindings. Override it.
+ args = []
+ if (!is_win) {
+ args += [ "-fvisibility=default" ]
+ }
+
if (defined(cpp) && cpp) {
# This cfg is used to control the bindings public export.
rustflags = [
--- chromium-132.0.6811.2/build/rust/rust_bindgen_generator.gni 2024/11/07 11:34:54 1.1
+++ chromium-132.0.6811.2/build/rust/rust_bindgen_generator.gni 2024/11/07 11:35:41
@@ -22,7 +22,7 @@
if (host_os == "win") {
_libclang_path += "/bin"
} else {
- _libclang_path += "/lib"
+ _libclang_path += "/lib64"
}
# Template to build Rust/C bindings with bindgen.
@@ -266,6 +266,8 @@
# causes bindgen not to emit function bindings. Override it.
if (!is_win) {
args += [ "-fvisibility=default" ]
+ args += [ "-I/usr/include/c++/v1" ]
+ args += [ "-I/usr/lib64/clang/" + clang_version + "/include" ]
}
if (is_win) {
--- chromium-132.0.6811.2/build/config/gcc/BUILD.gn 2024/11/07 14:13:22 1.1
+++ chromium-132.0.6811.2/build/config/gcc/BUILD.gn 2024/11/07 14:13:45
@@ -32,7 +32,6 @@
# See http://gcc.gnu.org/wiki/Visibility
config("symbol_visibility_hidden") {
cflags = [ "-fvisibility=hidden" ]
- rustflags = [ "-Zdefault-visibility=hidden" ]
# Visibility attribute is not supported on AIX.
if (current_os != "aix") {

View File

@@ -0,0 +1,12 @@
--- chromium-133.0.6943.16/media/filters/ffmpeg_glue.cc 2025/01/20 15:06:56 1.1
+++ chromium-133.0.6943.16/media/filters/ffmpeg_glue.cc 2025/01/20 15:07:32
@@ -111,7 +111,8 @@
// We don't allow H.264 parsing during demuxing since we have our own parser
// and the ffmpeg one increases memory usage unnecessarily.
- format_context_->flags |= AVFMT_FLAG_NOH264PARSE;
+ // TODO(crbug.com/355485812): Re-enable this flag.
+ // format_context_->flags |= AVFMT_FLAG_NOH264PARSE;
// Ensures format parsing errors will bail out. From an audit on 11/2017, all
// instances were real failures. Solves bugs like http://crbug.com/710791.

View File

@@ -0,0 +1,19 @@
--- chromium-131.0.6778.69/base/compiler_specific.h 2024/11/18 15:29:10 1.1
+++ chromium-131.0.6778.69/base/compiler_specific.h 2024/11/18 16:16:01
@@ -424,10 +424,12 @@
// // Stack canary checks will not be performed in this body.
// }
// ```
-#if __has_cpp_attribute(gnu::no_stack_protector)
-#define NO_STACK_PROTECTOR [[gnu::no_stack_protector]]
-#elif __has_cpp_attribute(gnu::optimize)
-#define NO_STACK_PROTECTOR [[gnu::optimize("-fno-stack-protector")]]
+#if defined(COMPILER_GCC) || defined(__clang__)
+#if HAS_ATTRIBUTE(__no_stack_protector__)
+#define NO_STACK_PROTECTOR __attribute__((__no_stack_protector__))
+#else
+#define NO_STACK_PROTECTOR __attribute__((__optimize__("-fno-stack-protector")))
+#endif
#else
#define NO_STACK_PROTECTOR
#endif

View File

@@ -0,0 +1,18 @@
From b9075d0e1f687f9a5cf80a7778bde99cece9fdf7 Mon Sep 17 00:00:00 2001
From: Than Ngo <than@redhat.com>
Date: Sat, 23 Nov 2024 12:33:22 +0100
Subject: [PATCH] Enable qt-ui
diff -up chromium-131.0.6778.85/ui/qt/qt_shim.cc.me chromium-131.0.6778.85/ui/qt/qt_shim.cc
--- chromium-131.0.6778.85/ui/qt/qt_shim.cc.me 2024-11-23 10:04:16.789121846 +0100
+++ chromium-131.0.6778.85/ui/qt/qt_shim.cc 2024-11-23 11:40:02.905064702 +0100
@@ -265,7 +265,7 @@ FontRenderParams QtShim::GetFontRenderPa
FontDescription QtShim::GetFontDescription() const {
QFont font = app_.font();
return {
- .family = String(font.family().toStdString().c_str()),
+ .family = String(font.family().toUtf8().constData()),
.size_pixels = font.pixelSize(),
.size_points = font.pointSize(),
.is_italic = IsStyleItalic(font.style()),

View File

@@ -0,0 +1,11 @@
--- chromium-132.0.6834.15/pdf/pdfium/pdfium_api_wrappers.cc 2024/12/03 16:47:07 1.1
+++ chromium-132.0.6834.15/pdf/pdfium/pdfium_api_wrappers.cc 2024/12/03 16:48:54
@@ -147,7 +147,7 @@
// Number of characters, including the NUL.
const size_t expected_size = base::checked_cast<size_t>(buflen_bytes / 2);
- PDFiumAPIStringBufferAdapter adapter(&name, expected_size,
+ PDFiumAPIStringBufferAdapter<std::u16string> adapter(&name, expected_size,
/*check_expected_size=*/true);
unsigned long actual_buflen_bytes = 0; // NOLINT(runtime/int)
bool result =

View File

@@ -0,0 +1,60 @@
--- chromium-133.0.6943.98/media/base/media_switches.h 2025/02/18 15:56:48 1.1
+++ chromium-133.0.6943.98/media/base/media_switches.h 2025/02/18 15:57:20
@@ -516,6 +516,8 @@
MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseWindowBoundsForPip);
+MEDIA_EXPORT BASE_DECLARE_FEATURE(kFFmpegAllowLists);
+
MEDIA_EXPORT BASE_DECLARE_FEATURE(kMediaLogToConsole);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kLibvpxUseChromeThreads);
--- chromium-133.0.6943.98/media/base/media_switches.cc 2025/02/18 15:56:07 1.1
+++ chromium-133.0.6943.98/media/base/media_switches.cc 2025/02/18 15:56:48
@@ -1657,6 +1657,11 @@
"UseWindowBoundsForPip",
base::FEATURE_ENABLED_BY_DEFAULT);
+// Enables FFmpeg allow lists for supported codecs / containers.
+BASE_FEATURE(kFFmpegAllowLists,
+ "FFmpegAllowLists",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
#if BUILDFLAG(IS_WIN)
// Enables audio offload when supported by endpoints.
BASE_FEATURE(kAudioOffload, "AudioOffload", base::FEATURE_DISABLED_BY_DEFAULT);
--- chromium-133.0.6943.98/media/ffmpeg/ffmpeg_common.cc 2025/02/18 16:03:18 1.1
+++ chromium-133.0.6943.98/media/ffmpeg/ffmpeg_common.cc 2025/02/18 16:04:02
@@ -19,6 +19,7 @@
#include "media/base/audio_decoder_config.h"
#include "media/base/decoder_buffer.h"
#include "media/base/encryption_scheme.h"
+#include "media/base/media_switches.h"
#include "media/base/media_util.h"
#include "media/base/supported_types.h"
#include "media/base/video_aspect_ratio.h"
@@ -76,7 +76,8 @@
void ApplyCodecContextSecuritySettings(AVCodecContext* codec_context) {
// Future versions of ffmpeg may copy the allow list from the format
// context.
- if (!codec_context->codec_whitelist) {
+ if (base::FeatureList::IsEnabled(kFFmpegAllowLists) &&
+ !codec_context->codec_whitelist) {
// Note: FFmpeg will try to free this string, so we must duplicate it.
codec_context->codec_whitelist =
av_strdup(codec_context->codec_type == AVMEDIA_TYPE_AUDIO
--- chromium-133.0.6943.98/media/filters/ffmpeg_glue.cc 2025/02/18 16:06:06 1.1
+++ chromium-133.0.6943.98/media/filters/ffmpeg_glue.cc 2025/02/18 16:07:06
@@ -131,8 +131,10 @@
// memory usage.
//
// Note: FFmpeg will try to free these strings, so we must duplicate them.
- format_context_->codec_whitelist = av_strdup(GetAllowedAudioDecoders());
- format_context_->format_whitelist = av_strdup(GetAllowedDemuxers());
+ if (base::FeatureList::IsEnabled(kFFmpegAllowLists)) {
+ format_context_->codec_whitelist = av_strdup(GetAllowedAudioDecoders());
+ format_context_->format_whitelist = av_strdup(GetAllowedDemuxers());
+ }
}
bool FFmpegGlue::OpenContext(bool is_local_file) {

View File

@@ -0,0 +1,57 @@
diff --git a/build/rust/std/BUILD.gn b/build/rust/std/BUILD.gn
index 68b085be200fa..6b996aa1fe386 100644
--- a/build/rust/std/BUILD.gn
+++ b/build/rust/std/BUILD.gn
@@ -89,7 +89,7 @@ if (toolchain_has_rust) {
# These are no longer present in the Windows toolchain.
stdlib_files += [
"addr2line",
- "adler",
+ "adler2",
"gimli",
"libc",
"memchr",
diff --git a/build/rust/std/rules/BUILD.gn b/build/rust/std/rules/BUILD.gn
index 6b59b0894d365..e44d638832b6f 100644
--- a/build/rust/std/rules/BUILD.gn
+++ b/build/rust/std/rules/BUILD.gn
@@ -65,22 +70,22 @@ cargo_crate("addr2line") {
output_dir =
"$root_out_dir/local_rustc_sysroot/lib/rustlib/$rust_abi_target/lib/"
}
-cargo_crate("adler") {
+cargo_crate("adler2") {
crate_type = "rlib"
- crate_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/adler-1.0.2/src/lib.rs"
+ crate_root = "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/adler2-2.0.0/src/lib.rs"
sources = [
- "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/adler-1.0.2/src/algo.rs",
- "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/adler-1.0.2/src/lib.rs",
+ "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/adler2-2.0.0/src/algo.rs",
+ "//third_party/rust-toolchain/lib/rustlib/src/rust/library/vendor/adler2-2.0.0/src/lib.rs",
]
inputs = []
no_std = true
# Unit tests skipped. Generate with --with-tests to include them.
build_native_rust_unit_tests = false
- edition = "2015"
- cargo_pkg_version = "1.0.2"
- cargo_pkg_authors = "Jonas Schievink <jonasschievink@gmail.com>"
- cargo_pkg_name = "adler"
+ edition = "2021"
+ cargo_pkg_version = "2.0.0"
+ cargo_pkg_authors = "Jonas Schievink <jonasschievink@gmail.com>, oyvindln <oyvindln@users.noreply.github.com>"
+ cargo_pkg_name = "adler2"
cargo_pkg_description =
"A simple clean-room implementation of the Adler-32 checksum"
library_configs -= [
@@ -1618,7 +1624,7 @@ cargo_crate("miniz_oxide") {
]
executable_configs += [ "//build/config/compiler:no_chromium_code" ]
deps = [
- ":adler",
+ ":adler2",
":compiler_builtins",
":rustc_std_workspace_alloc",
":rustc_std_workspace_core",

View File

@@ -0,0 +1,13 @@
diff -up chromium-134.0.6998.23/base/containers/to_value_list.h.me chromium-134.0.6998.23/base/containers/to_value_list.h
--- chromium-134.0.6998.23/base/containers/to_value_list.h.me 2025-02-23 22:39:33.369668072 +0100
+++ chromium-134.0.6998.23/base/containers/to_value_list.h 2025-02-23 22:42:42.653990901 +0100
@@ -36,8 +36,7 @@ Value::List ToValueList(Range&& range, P
auto container = Value::List::with_capacity(std::ranges::size(range));
std::ranges::for_each(
std::forward<Range>(range),
- [&]<typename T>(T&& value) { container.Append(std::forward<T>(value)); },
- std::move(proj));
+ [&](auto&& value) { container.Append(std::invoke(proj, std::forward<decltype(*std::ranges::begin(range))>(value))); });
return container;
}

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:620ed41ac1c1bd465c775376deaafd43fd0f6cdd2be1971ed87511683728f5a7
size 7017155948

View File

@@ -0,0 +1,249 @@
--- chromium/src/build/all.gyp 2010-11-25 19:17:16.000000000 +0100
+++ new/src/build/all.gyp 2010-11-25 21:05:09.413000018 +0100
@@ -59,7 +59,7 @@
'conditions': [
['javascript_engine=="v8"', {
'dependencies': [
- '../v8/tools/gyp/v8.gyp:*',
+ 'linux/system.gyp:v8',
],
}],
['OS=="mac" or OS=="linux"', {
@@ -149,167 +149,6 @@
}],
],
}, # target_name: All
- {
- 'target_name': 'chromium_builder_tests',
- 'type': 'none',
- 'dependencies': [
- '../base/base.gyp:base_unittests',
- '../chrome/chrome.gyp:browser_tests',
- '../chrome/chrome.gyp:interactive_ui_tests',
- '../chrome/chrome.gyp:nacl_ui_tests',
- '../chrome/chrome.gyp:nacl_sandbox_tests',
- '../chrome/chrome.gyp:safe_browsing_tests',
- '../chrome/chrome.gyp:sync_integration_tests',
- '../chrome/chrome.gyp:sync_unit_tests',
- '../chrome/chrome.gyp:ui_tests',
- '../chrome/chrome.gyp:unit_tests',
- '../content/content.gyp:content_unittests',
- '../crypto/crypto.gyp:crypto_unittests',
- '../ui/ui.gyp:gfx_unittests',
- '../gpu/gpu.gyp:gpu_unittests',
- '../gpu/gles2_conform_support/gles2_conform_support.gyp:gles2_conform_support',
- '../ipc/ipc.gyp:ipc_tests',
- '../jingle/jingle.gyp:jingle_unittests',
- '../media/media.gyp:media_unittests',
- '../net/net.gyp:net_unittests',
- '../printing/printing.gyp:printing_unittests',
- '../remoting/remoting.gyp:remoting_unittests',
- '../sql/sql.gyp:sql_unittests',
- '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
- '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
- 'temp_gyp/googleurl.gyp:googleurl_unittests',
- ],
- 'conditions': [
- ['OS=="win"', {
- 'dependencies': [
- '../chrome/chrome.gyp:installer_util_unittests',
- '../chrome/chrome.gyp:mini_installer_test',
- # mini_installer_tests depends on mini_installer. This should be
- # defined in installer.gyp.
- '../chrome/installer/mini_installer.gyp:mini_installer',
- '../chrome_frame/chrome_frame.gyp:chrome_frame_net_tests',
- '../chrome_frame/chrome_frame.gyp:chrome_frame_perftests',
- '../chrome_frame/chrome_frame.gyp:chrome_frame_reliability_tests',
- '../chrome_frame/chrome_frame.gyp:chrome_frame_tests',
- '../chrome_frame/chrome_frame.gyp:chrome_frame_unittests',
- '../chrome_frame/chrome_frame.gyp:npchrome_frame',
- '../courgette/courgette.gyp:courgette_unittests',
- '../sandbox/sandbox.gyp:sbox_integration_tests',
- '../sandbox/sandbox.gyp:sbox_unittests',
- '../sandbox/sandbox.gyp:sbox_validation_tests',
- '../views/views.gyp:views_unittests',
- '../third_party/WebKit/Source/WebKit/chromium/WebKit.gyp:copy_TestNetscapePlugIn',
- # TODO(nsylvain) ui_tests.exe depends on test_shell_common.
- # This should:
- # 1) not be the case. OR.
- # 2) be expressed in the ui tests dependencies.
- '../webkit/webkit.gyp:test_shell_common',
- ],
- }],
- ],
- }, # target_name: chromium_builder_tests
- {
- 'target_name': 'chromium_2010_builder_tests',
- 'type': 'none',
- 'dependencies': [
- '../chrome/chrome.gyp:chrome',
- '../base/base.gyp:base_unittests',
- '../chrome/chrome.gyp:browser_tests',
- '../chrome/chrome.gyp:interactive_ui_tests',
- # TODO(bradnelson): fix and enable.
- #'../chrome/chrome.gyp:nacl_ui_tests',
- #'../chrome/chrome.gyp:nacl_sandbox_tests',
- '../chrome/chrome.gyp:safe_browsing_tests',
- '../chrome/chrome.gyp:sync_integration_tests',
- '../chrome/chrome.gyp:sync_unit_tests',
- '../chrome/chrome.gyp:ui_tests',
- '../chrome/chrome.gyp:unit_tests',
- '../content/content.gyp:content_unittests',
- '../crypto/crypto.gyp:crypto_unittests',
- '../ui/ui.gyp:gfx_unittests',
- '../gpu/gpu.gyp:gpu_unittests',
- '../ipc/ipc.gyp:ipc_tests',
- '../jingle/jingle.gyp:jingle_unittests',
- '../media/media.gyp:media_unittests',
- '../net/net.gyp:net_unittests',
- '../printing/printing.gyp:printing_unittests',
- '../remoting/remoting.gyp:remoting_unittests',
- '../sql/sql.gyp:sql_unittests',
- '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
- '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
- 'temp_gyp/googleurl.gyp:googleurl_unittests',
- ],
- 'conditions': [
- ['OS=="win"', {
- 'dependencies': [
- '../chrome/chrome.gyp:installer_util_unittests',
- # TODO(bradnelson): fix and enable.
- #'../chrome/chrome.gyp:mini_installer_test',
- # mini_installer_tests depends on mini_installer. This should be
- # defined in installer.gyp.
- #'../chrome/installer/mini_installer.gyp:mini_installer',
- #'../chrome_frame/chrome_frame.gyp:chrome_frame_net_tests',
- #'../chrome_frame/chrome_frame.gyp:chrome_frame_perftests',
- #'../chrome_frame/chrome_frame.gyp:chrome_frame_reliability_tests',
- #'../chrome_frame/chrome_frame.gyp:chrome_frame_tests',
- #'../chrome_frame/chrome_frame.gyp:chrome_frame_unittests',
- #'../chrome_frame/chrome_frame.gyp:npchrome_frame',
- '../courgette/courgette.gyp:courgette_unittests',
- '../sandbox/sandbox.gyp:sbox_integration_tests',
- '../sandbox/sandbox.gyp:sbox_unittests',
- '../sandbox/sandbox.gyp:sbox_validation_tests',
- '../views/views.gyp:views_unittests',
- '../third_party/WebKit/Source/WebKit/chromium/WebKit.gyp:copy_TestNetscapePlugIn',
- # TODO(nsylvain) ui_tests.exe depends on test_shell_common.
- # This should:
- # 1) not be the case. OR.
- # 2) be expressed in the ui tests dependencies.
- '../webkit/webkit.gyp:test_shell_common',
- ],
- }],
- ],
- }, # target_name: chromium_2010_builder_tests
- {
- 'target_name': 'chromium_builder_nacl_win_integration',
- 'type': 'none',
- 'dependencies': [
- 'chromium_builder_qa', # needed for pyauto
- 'chromium_builder_tests',
- ],
- }, # target_name: chromium_builder_nacl_win_integration
- {
- 'target_name': 'chromium_builder_perf',
- 'type': 'none',
- 'dependencies': [
- 'chromium_builder_qa', # needed for pyauto
- '../chrome/chrome.gyp:performance_ui_tests',
- '../chrome/chrome.gyp:plugin_tests',
- '../chrome/chrome.gyp:sync_performance_tests',
- '../chrome/chrome.gyp:ui_tests',
- ],
- }, # target_name: chromium_builder_perf
- {
- 'target_name': 'chromium_gpu_builder',
- 'type': 'none',
- 'dependencies': [
- '../chrome/chrome.gyp:gpu_tests',
- '../third_party/WebKit/Source/WebKit/chromium/WebKit.gyp:DumpRenderTree',
- ],
- }, # target_name: chromium_gpu_builder
- {
- 'target_name': 'chromium_builder_qa',
- 'type': 'none',
- 'dependencies': [
- '../chrome/chrome.gyp:chromedriver',
- ],
- 'conditions': [
- ['OS=="mac" or OS=="win" or (os_posix==1 and target_arch==python_arch)', {
- 'dependencies': [
- '../chrome/chrome.gyp:pyautolib',
- ],
- }],
- ],
- }, # target_name: chromium_builder_qa
],
'conditions': [
['OS=="mac"', {
--- chromium/src/build/linux/system.gyp 2010-11-20 23:07:46.000000000 +0100
+++ new/src/build/linux/system.gyp 2010-11-25 21:05:09.418000018 +0100
@@ -340,6 +340,19 @@
}]]
},
{
+ 'target_name': 'v8',
+ 'type': 'settings',
+ 'conditions': [
+ ['_toolset=="target"', {
+ 'link_settings': {
+ 'libraries': [
+ '-lv8',
+ '-lvpx',
+ ],
+ },
+ }]]
+ },
+ {
'target_name': 'gnome_keyring',
'type': 'settings',
'conditions': [
--- chromium/src/net/net.gyp 2010-11-25 19:17:15.000000000 +0100
+++ new/src/net/net.gyp 2010-11-25 21:05:09.427000018 +0100
@@ -717,7 +717,7 @@
'conditions': [
['javascript_engine=="v8"', {
'dependencies': [
- '../v8/tools/gyp/v8.gyp:v8',
+ '../build/linux/system.gyp:v8',
],
}],
['chromeos==1', {
--- chromium/src/third_party/WebKit/Source/WebCore/WebCore.gyp/WebCore.gyp 2010-11-20 23:09:21.000000000 +0100
+++ new/src/third_party/WebKit/Source/WebCore/WebCore.gyp/WebCore.gyp 2010-11-25 21:05:09.435000018 +0100
@@ -789,7 +789,7 @@
'conditions': [
['javascript_engine=="v8"', {
'dependencies': [
- '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8',
+ '<(chromium_src_dir)/build/linux/system.gyp:v8',
],
'conditions': [
['inside_chromium_build==1 and OS=="win" and component=="shared_library"', {
@@ -904,10 +904,10 @@
'conditions': [
['javascript_engine=="v8"', {
'dependencies': [
- '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8',
+ '<(chromium_src_dir)/build/linux/system.gyp:v8',
],
'export_dependent_settings': [
- '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8',
+ '<(chromium_src_dir)/build/linux/system.gyp:v8',
],
'conditions': [
['inside_chromium_build==1 and OS=="win" and component=="shared_library"', {
@@ -1438,10 +1438,10 @@
'conditions': [
['javascript_engine=="v8"', {
'dependencies': [
- '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8',
+ '<(chromium_src_dir)/build/linux/system.gyp:v8',
],
'export_dependent_settings': [
- '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8',
+ '<(chromium_src_dir)/build/linux/system.gyp:v8',
],
}],
['OS=="mac"', {

View File

@@ -0,0 +1,23 @@
diff -up chromium-6.0.425.0-20100603svn48830/third_party/ffmpeg/ffmpeg.gyp.BAD chromium-6.0.425.0-20100603svn48830/third_party/ffmpeg/ffmpeg.gyp
--- chromium-6.0.425.0-20100603svn48830/src/third_party/ffmpeg/ffmpeg.gyp.BAD 2010-06-03 13:48:45.196313786 -0400
+++ chromium-6.0.425.0-20100603svn48830/src/third_party/ffmpeg/ffmpeg.gyp 2010-06-03 13:50:10.580325776 -0400
@@ -818,12 +818,14 @@
# Add pkg-config result to include path when use_system_ffmpeg!=0
['use_system_ffmpeg!=0', {
- 'cflags': [
- '<!@(pkg-config --cflags libavcodec libavformat libavutil)',
- ],
+ 'include_dirs': [
+ 'config',
+ 'ffmpeg-0.6-headers',
+ ],
'direct_dependent_settings': {
- 'cflags': [
- '<!@(pkg-config --cflags libavcodec libavformat libavutil)',
+ 'include_dirs': [
+ 'config',
+ 'ffmpeg-0.6-headers',
],
},
}, { # else use_system_ffmpeg==0, add local copy to include path

View File

@@ -0,0 +1,53 @@
diff -up chromium-7.0.500.0-20100819svn56724/build/linux/system.gyp.speex chromium-7.0.500.0-20100819svn56724/build/linux/system.gyp
--- chromium-7.0.500.0-20100819svn56724/src/build/linux/system.gyp.speex 2010-08-19 16:23:14.594998783 -0400
+++ chromium-7.0.500.0-20100819svn56724/src/build/linux/system.gyp 2010-08-19 16:23:14.676903548 -0400
@@ -348,6 +348,26 @@
}]]
},
{
+ 'target_name': 'speex',
+ 'type': 'settings',
+ 'conditions': [
+ ['_toolset=="target"', {
+ 'direct_dependent_settings': {
+ 'cflags': [
+ '<!@(pkg-config --cflags speex)',
+ ],
+ },
+ 'link_settings': {
+ 'ldflags': [
+ '<!@(pkg-config --libs-only-L --libs-only-other speex)',
+ ],
+ 'libraries': [
+ '<!@(pkg-config --libs-only-l speex)',
+ ],
+ },
+ }]]
+ },
+ {
'target_name': 'gnome_keyring',
'type': 'settings',
'conditions': [
diff -up chromium-7.0.500.0-20100819svn56724/content/content_browser.gypi.speex chromium-7.0.500.0-20100819svn56724/chrome/chrome_browser.gypi
--- chromium-7.0.500.0-20100819svn56724/src/content/content_browser.gypi.speex 2010-08-19 16:23:14.594998783 -0400
+++ chromium-7.0.500.0-20100819svn56724/src/content/content_browser.gypi 2010-08-19 16:25:27.921293238 -0400
@@ -15,7 +15,7 @@
'../third_party/flac/flac.gyp:libflac',
# TODO(ericu): remove leveldb ref after crbug.com/6955013 is fixed.
'../third_party/leveldb/leveldb.gyp:leveldb',
- '../third_party/speex/speex.gyp:libspeex',
+ '../build/linux/system.gyp:speex',
'../third_party/WebKit/Source/WebKit/chromium/WebKit.gyp:webkit',
'../third_party/zlib/zlib.gyp:zlib',
'../ui/ui.gyp:ui',
--- chromium/src/content/browser/speech/audio_encoder.cc 2011-01-20 09:04:11.631000020 +0100
+++ chromium/src/content/browser/speech/audio_encoder.cc 2011-01-20 09:04:11.631000020 +0100
@@ -10,7 +10,7 @@
#include "base/stl_util.h"
#include "base/string_number_conversions.h"
#include "third_party/flac/flac.h"
-#include "third_party/speex/speex.h"
+#include <speex/speex.h>
using std::string;

View File

@@ -0,0 +1,35 @@
diff -up chromium-7.0.510.0/media/filters/ffmpeg_glue.cc.system-ffmpeg chromium-7.0.510.0/media/filters/ffmpeg_glue.cc
--- chromium-7.0.510.0/src/media/filters/ffmpeg_glue.cc.system-ffmpeg 2010-08-31 04:22:39.000000000 -0400
+++ chromium-7.0.510.0/src/media/filters/ffmpeg_glue.cc 2010-09-01 10:50:30.259172512 -0400
@@ -119,14 +119,14 @@ namespace media {
static const char kProtocol[] = "http";
// Fill out our FFmpeg protocol definition.
-static URLProtocol kFFmpegURLProtocol = {
- kProtocol,
- &OpenContext,
- &ReadContext,
- &WriteContext,
- &SeekContext,
- &CloseContext,
-};
+// static URLProtocol kFFmpegURLProtocol = {
+// kProtocol,
+// &OpenContext,
+// &ReadContext,
+// &WriteContext,
+// &SeekContext,
+// &CloseContext,
+//};
FFmpegGlue::FFmpegGlue() {
// Before doing anything disable logging as it interferes with layout tests.
@@ -134,7 +134,7 @@ FFmpegGlue::FFmpegGlue() {
// Register our protocol glue code with FFmpeg.
avcodec_init();
- av_register_protocol2(&kFFmpegURLProtocol, sizeof(kFFmpegURLProtocol));
+ // av_register_protocol2(&kFFmpegURLProtocol, sizeof(kFFmpegURLProtocol));
av_lockmgr_register(&LockManagerOperation);
// Now register the rest of FFmpeg.

View File

@@ -0,0 +1,314 @@
diff -up chromium-7.0.542.0/chrome/browser/browser_about_handler.cc.system-code chromium-7.0.542.0/chrome/browser/browser_about_handler.cc
--- chromium-7.0.542.0/src/chrome/browser/browser_about_handler.cc.system-code 2010-10-04 05:42:38.000000000 -0400
+++ chromium-7.0.542.0/src/chrome/browser/browser_about_handler.cc 2010-10-04 13:50:45.322377060 -0400
@@ -63,7 +63,7 @@
#include "webkit/plugins/webplugininfo.h"
#ifdef CHROME_V8
-#include "v8/include/v8.h"
+#include <v8.h>
#endif
#if defined(OS_WIN)
diff -up chromium-7.0.542.0/chrome/browser/ui/webui/options/about_page_handler.cc.system-code chromium-7.0.542.0/chrome/browser/dom_ui/options/about_page_handler.cc
--- chromium-7.0.542.0/src/chrome/browser/ui/webui/options/chromeos/about_page_handler.cc.system-code 2010-10-04 14:20:06.569129133 -0400
+++ chromium-7.0.542.0/src/chrome/browser/ui/webui/options/chromeos/about_page_handler.cc 2010-10-04 14:20:21.197112798 -0400
@@ -28,7 +28,7 @@
#include "webkit/glue/webkit_glue.h"
#if defined(CHROME_V8)
-#include "v8/include/v8.h"
+#include <v8.h>
#endif
#include "chrome/browser/chromeos/cros/cros_library.h"
diff -up chromium-7.0.542.0/chrome/browser/memory_purger.cc.system-code chromium-7.0.542.0/chrome/browser/memory_purger.cc
--- chromium-7.0.542.0/src/chrome/browser/memory_purger.cc.system-code 2010-10-04 05:42:38.000000000 -0400
+++ chromium-7.0.542.0/src/chrome/browser/memory_purger.cc 2010-10-04 14:16:54.837353728 -0400
@@ -23,7 +23,7 @@
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_context_getter.h"
#include "third_party/tcmalloc/chromium/src/google/malloc_extension.h"
-#include "v8/include/v8.h"
+#include <v8.h>
// PurgeMemoryHelper -----------------------------------------------------------
diff -up chromium-7.0.542.0/chrome/renderer/automation/dom_automation_v8_extension.h.system-code chromium-7.0.542.0/chrome/renderer/automation/dom_automation_v8_extension.h
--- chromium-7.0.542.0/src/chrome/renderer/automation/dom_automation_v8_extension.h.system-code 2010-10-04 05:42:44.000000000 -0400
+++ chromium-7.0.542.0/src/chrome/renderer/automation/dom_automation_v8_extension.h 2010-10-04 14:16:54.839353510 -0400
@@ -6,7 +6,7 @@
#define CHROME_RENDERER_AUTOMATION_DOM_AUTOMATION_V8_EXTENSION_H_
#pragma once
-#include "v8/include/v8.h"
+#include <v8.h>
class DomAutomationV8Extension {
public:
diff -up chromium-7.0.542.0/chrome/renderer/extensions/bindings_utils.h.system-code chromium-7.0.542.0/chrome/renderer/extensions/bindings_utils.h
--- chromium-7.0.542.0/src/chrome/renderer/extensions/bindings_utils.h.system-code 2010-10-04 05:42:44.000000000 -0400
+++ chromium-7.0.542.0/src/chrome/renderer/extensions/bindings_utils.h 2010-10-04 14:16:54.840353450 -0400
@@ -10,7 +10,7 @@
#include "base/memory/singleton.h"
#include "base/string_piece.h"
#include "ui/base/resource/resource_bundle.h"
-#include "v8/include/v8.h"
+#include <v8.h>
#include <list>
#include <string>
diff -up chromium-7.0.542.0/chrome/renderer/extensions/chrome_app_bindings.cc.system-code chromium-7.0.542.0/chrome/renderer/extensions/chrome_app_bindings.cc
--- chromium-7.0.542.0/src/chrome/renderer/extensions/chrome_app_bindings.cc.system-code 2010-10-04 05:42:44.000000000 -0400
+++ chromium-7.0.542.0/src/chrome/renderer/extensions/chrome_app_bindings.cc 2010-10-04 14:16:54.841498794 -0400
@@ -19,7 +19,7 @@
#include "content/renderer/v8_value_converter.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
-#include "v8/include/v8.h"
+#include <v8.h>
using WebKit::WebFrame;
diff -up chromium-7.0.542.0/chrome/renderer/extensions/event_bindings.h.system-code chromium-7.0.542.0/chrome/renderer/extensions/event_bindings.h
--- chromium-7.0.542.0/src/chrome/renderer/extensions/event_bindings.h.system-code 2010-10-04 05:42:44.000000000 -0400
+++ chromium-7.0.542.0/src/chrome/renderer/extensions/event_bindings.h 2010-10-04 14:16:54.841498794 -0400
@@ -8,7 +8,7 @@
#include <string>
-#include "v8/include/v8.h"
+#include <v8.h>
class ExtensionDispatcher;
class GURL;
diff -up chromium-7.0.542.0/chrome/renderer/extensions/extension_process_bindings.h.system-code chromium-7.0.542.0/chrome/renderer/extensions/extension_process_bindings.h
--- chromium-7.0.542.0/src/chrome/renderer/extensions/extension_process_bindings.h.system-code 2010-10-04 05:42:44.000000000 -0400
+++ chromium-7.0.542.0/src/chrome/renderer/extensions/extension_process_bindings.h 2010-10-04 14:16:54.842499822 -0400
@@ -12,7 +12,7 @@
#include <string>
#include <vector>
-#include "v8/include/v8.h"
+#include <v8.h>
class ExtensionDispatcher;
class GURL;
diff -up chromium-7.0.542.0/chrome/renderer/extensions/js_only_v8_extensions.h.system-code chromium-7.0.542.0/chrome/renderer/extensions/js_only_v8_extensions.h
--- chromium-7.0.542.0/src/chrome/renderer/extensions/js_only_v8_extensions.h.system-code 2010-10-04 05:42:44.000000000 -0400
+++ chromium-7.0.542.0/src/chrome/renderer/extensions/js_only_v8_extensions.h 2010-10-04 14:16:54.843500372 -0400
@@ -6,7 +6,7 @@
#define CHROME_RENDERER_EXTENSIONS_JS_ONLY_V8_EXTENSIONS_H_
#pragma once
-#include "v8/include/v8.h"
+#include <v8.h>
// This file contains various V8 Extensions that are JavaScript only, and
// don't have any C++ native functions.
diff -up chromium-7.0.542.0/chrome/renderer/extensions/renderer_extension_bindings.h.system-code chromium-7.0.542.0/chrome/renderer/extensions/renderer_extension_bindings.h
--- chromium-7.0.542.0/src/chrome/renderer/extensions/renderer_extension_bindings.h.system-code 2010-10-04 05:42:44.000000000 -0400
+++ chromium-7.0.542.0/src/chrome/renderer/extensions/renderer_extension_bindings.h 2010-10-04 14:16:54.844504849 -0400
@@ -6,7 +6,7 @@
#define CHROME_RENDERER_EXTENSIONS_RENDERER_EXTENSION_BINDINGS_H_
#pragma once
-#include "v8/include/v8.h"
+#include <v8.h>
#include <string>
diff -up chromium-7.0.542.0/chrome/renderer/external_extension.cc.system-code chromium-7.0.542.0/chrome/renderer/external_extension.cc
--- chromium-7.0.542.0/src/chrome/renderer/external_extension.cc.system-code 2010-10-04 05:42:44.000000000 -0400
+++ chromium-7.0.542.0/src/chrome/renderer/external_extension.cc 2010-10-04 14:16:54.845500082 -0400
@@ -12,7 +12,7 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
-#include "v8/include/v8.h"
+#include <v8.h>
using WebKit::WebFrame;
using WebKit::WebView;
diff -up chromium-7.0.542.0/chrome/renderer/loadtimes_extension_bindings.cc.system-code chromium-7.0.542.0/chrome/renderer/loadtimes_extension_bindings.cc
--- chromium-7.0.542.0/src/chrome/renderer/loadtimes_extension_bindings.cc.system-code 2010-10-04 05:42:44.000000000 -0400
+++ chromium-7.0.542.0/src/chrome/renderer/loadtimes_extension_bindings.cc 2010-10-04 14:16:54.846500790 -0400
@@ -9,7 +9,7 @@
#include "base/time.h"
#include "content/renderer/navigation_state.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
-#include "v8/include/v8.h"
+#include <v8.h>
using WebKit::WebDataSource;
using WebKit::WebFrame;
diff -up chromium-7.0.542.0/content/renderer/render_thread.cc.system-code chromium-7.0.542.0/chrome/renderer/render_thread.cc
--- chromium-7.0.542.0/src/content/renderer/render_thread.cc.system-code 2010-10-04 05:42:44.000000000 -0400
+++ chromium-7.0.542.0/src/content/renderer/render_thread.cc 2010-10-04 14:16:54.848500089 -0400
@@ -59,7 +59,7 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/WebStorageEventDispatcher.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
-#include "v8/include/v8.h"
+#include <v8.h>
#include "webkit/extensions/v8/benchmarking_extension.h"
#include "webkit/extensions/v8/playback_extension.h"
#include "webkit/glue/webkit_glue.h"
diff -up chromium-7.0.542.0/chrome/renderer/search_extension.cc.system-code chromium-7.0.542.0/chrome/renderer/search_extension.cc
--- chromium-7.0.542.0/src/chrome/renderer/search_extension.cc.system-code 2010-10-04 05:42:44.000000000 -0400
+++ chromium-7.0.542.0/src/chrome/renderer/search_extension.cc 2010-10-04 14:16:54.849503141 -0400
@@ -12,7 +12,7 @@
#include "chrome/renderer/searchbox.h"
#include "content/renderer/render_view.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
-#include "v8/include/v8.h"
+#include <v8.h>
using WebKit::WebFrame;
using WebKit::WebView;
diff -up chromium-7.0.542.0/chrome/renderer/translate_helper.cc.system-code chromium-7.0.542.0/chrome/renderer/translate_helper.cc
--- chromium-7.0.542.0/src/chrome/renderer/translate_helper.cc.system-code 2010-10-04 05:42:44.000000000 -0400
+++ chromium-7.0.542.0/src/chrome/renderer/translate_helper.cc 2010-10-04 14:16:54.850500334 -0400
@@ -18,7 +18,7 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/WebScriptSource.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h"
#include "third_party/cld/encodings/compact_lang_det/win/cld_unicodetext.h"
-#include "v8/include/v8.h"
+#include <v8.h>
#include "webkit/glue/dom_operations.h"
using WebKit::WebDocument;
diff -up chromium-7.0.542.0/chrome/test/v8_unit_test.h.system-code chromium-7.0.542.0/chrome/test/v8_unit_test.h
--- chromium-7.0.542.0/src/chrome/test/base/v8_unit_test.h.system-code 2010-10-04 05:42:17.000000000 -0400
+++ chromium-7.0.542.0/src/chrome/test/base/v8_unit_test.h 2010-10-04 14:16:54.851503148 -0400
@@ -9,7 +9,7 @@
#include <string>
#include "testing/gtest/include/gtest/gtest.h"
-#include "v8/include/v8.h"
+#include <v8.h>
namespace base {
class StringPiece;
diff -up chromium-7.0.542.0/net/proxy/proxy_resolver_v8.cc.system-code chromium-7.0.542.0/net/proxy/proxy_resolver_v8.cc
--- chromium-7.0.542.0/src/net/proxy/proxy_resolver_v8.cc.system-code 2010-10-04 05:40:28.000000000 -0400
+++ chromium-7.0.542.0/src/net/proxy/proxy_resolver_v8.cc 2010-10-04 14:16:54.852507424 -0400
@@ -22,7 +22,7 @@
#include "net/proxy/proxy_resolver_js_bindings.h"
#include "net/proxy/proxy_resolver_request_context.h"
#include "net/proxy/proxy_resolver_script.h"
-#include "v8/include/v8.h"
+#include <v8.h>
// Notes on the javascript environment:
//
diff -up chromium-7.0.542.0/webkit/extensions/v8/benchmarking_extension.h.system-code chromium-7.0.542.0/webkit/extensions/v8/benchmarking_extension.h
--- chromium-7.0.542.0/src/webkit/extensions/v8/benchmarking_extension.h.system-code 2010-10-04 05:39:56.000000000 -0400
+++ chromium-7.0.542.0/src/webkit/extensions/v8/benchmarking_extension.h 2010-10-04 14:16:54.854152851 -0400
@@ -9,7 +9,7 @@
#ifndef WEBKIT_EXTENSIONS_V8_BENCHMARKING_EXTENSION_H_
#define WEBKIT_EXTENSIONS_V8_BENCHMARKING_EXTENSION_H_
-#include "v8/include/v8.h"
+#include <v8.h>
namespace extensions_v8 {
diff -up chromium-7.0.542.0/webkit/extensions/v8/gc_extension.h.system-code chromium-7.0.542.0/webkit/extensions/v8/gc_extension.h
--- chromium-7.0.542.0/src/webkit/extensions/v8/gc_extension.h.system-code 2010-10-04 05:39:56.000000000 -0400
+++ chromium-7.0.542.0/src/webkit/extensions/v8/gc_extension.h 2010-10-04 14:16:54.855479939 -0400
@@ -8,7 +8,7 @@
#ifndef WEBKIT_EXTENSIONS_V8_GC_EXTENSION_H_
#define WEBKIT_EXTENSIONS_V8_GC_EXTENSION_H_
-#include "v8/include/v8.h"
+#include <v8.h>
namespace extensions_v8 {
diff -up chromium-7.0.542.0/webkit/extensions/v8/heap_profiler_extension.h.system-code chromium-7.0.542.0/webkit/extensions/v8/heap_profiler_extension.h
--- chromium-7.0.542.0/src/webkit/extensions/v8/heap_profiler_extension.h.system-code 2010-10-04 05:39:56.000000000 -0400
+++ chromium-7.0.542.0/src/webkit/extensions/v8/heap_profiler_extension.h 2010-10-04 14:16:54.858478535 -0400
@@ -9,7 +9,7 @@
#ifndef WEBKIT_EXTENSIONS_V8_HEAP_PROFILER_EXTENSION_H_
#define WEBKIT_EXTENSIONS_V8_HEAP_PROFILER_EXTENSION_H_
-#include "v8/include/v8.h"
+#include <v8.h>
namespace extensions_v8 {
diff -up chromium-7.0.542.0/webkit/extensions/v8/playback_extension.h.system-code chromium-7.0.542.0/webkit/extensions/v8/playback_extension.h
--- chromium-7.0.542.0/src/webkit/extensions/v8/playback_extension.h.system-code 2010-10-04 05:39:56.000000000 -0400
+++ chromium-7.0.542.0/src/webkit/extensions/v8/playback_extension.h 2010-10-04 14:16:54.859478557 -0400
@@ -5,7 +5,7 @@
#ifndef WEBKIT_EXTENSIONS_V8_PLAYBACK_EXTENSION_H_
#define WEBKIT_EXTENSIONS_V8_PLAYBACK_EXTENSION_H_
-#include "v8/include/v8.h"
+#include <v8.h>
namespace extensions_v8 {
diff -up chromium-7.0.542.0/webkit/extensions/v8/profiler_extension.h.system-code chromium-7.0.542.0/webkit/extensions/v8/profiler_extension.h
--- chromium-7.0.542.0/src/webkit/extensions/v8/profiler_extension.h.system-code 2010-10-04 05:39:56.000000000 -0400
+++ chromium-7.0.542.0/src/webkit/extensions/v8/profiler_extension.h 2010-10-04 14:16:54.861478714 -0400
@@ -9,7 +9,7 @@
#ifndef WEBKIT_EXTENSIONS_V8_PROFILER_EXTENSION_H_
#define WEBKIT_EXTENSIONS_V8_PROFILER_EXTENSION_H_
-#include "v8/include/v8.h"
+#include <v8.h>
namespace extensions_v8 {
diff -up chromium-7.0.542.0/webkit/glue/webkitclient_impl.cc.system-code chromium-7.0.542.0/webkit/glue/webkitclient_impl.cc
--- chromium-7.0.542.0/src/webkit/glue/webkitclient_impl.cc.system-code 2010-10-04 05:39:57.000000000 -0400
+++ chromium-7.0.542.0/src/webkit/glue/webkitclient_impl.cc 2010-10-04 14:16:54.867374474 -0400
@@ -42,7 +42,7 @@
#include "webkit/glue/weburlloader_impl.h"
#if defined(OS_LINUX)
-#include "v8/include/v8.h"
+#include <v8.h>
#endif
using WebKit::WebAudioBus;
diff -up chromium-7.0.542.0/webkit/glue/webkit_glue.cc.system-code chromium-7.0.542.0/webkit/glue/webkit_glue.cc
--- chromium-7.0.542.0/src/webkit/glue/webkit_glue.cc.system-code 2010-10-04 05:39:57.000000000 -0400
+++ chromium-7.0.542.0/src/webkit/glue/webkit_glue.cc 2010-10-04 14:16:54.869402307 -0400
@@ -43,7 +43,7 @@
#endif
#include "webkit/glue/glue_serialize.h"
#include "webkit/glue/user_agent.h"
-#include "v8/include/v8.h"
+#include <v8.h>
using WebKit::WebCanvas;
using WebKit::WebData;
diff -up chromium-7.0.542.0/webkit/support/test_webkit_client.cc.system-code chromium-7.0.542.0/webkit/support/test_webkit_client.cc
--- chromium-7.0.542.0/src/webkit/support/test_webkit_client.cc.system-code 2010-10-04 05:39:57.000000000 -0400
+++ chromium-7.0.542.0/src/webkit/support/test_webkit_client.cc 2010-10-04 14:16:54.871369363 -0400
@@ -31,7 +31,7 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/WebStorageNamespace.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebURL.h"
-#include "v8/include/v8.h"
+#include <v8.h>
#include "webkit/appcache/web_application_cache_host_impl.h"
#include "webkit/database/vfs_backend.h"
#include "webkit/extensions/v8/gc_extension.h"
diff -up chromium-7.0.542.0/webkit/tools/test_shell/listener_leak_test.cc.system-code chromium-7.0.542.0/webkit/tools/test_shell/listener_leak_test.cc
--- chromium-7.0.542.0/src/webkit/tools/test_shell/listener_leak_test.cc.system-code 2010-10-04 05:39:56.000000000 -0400
+++ chromium-7.0.542.0/src/webkit/tools/test_shell/listener_leak_test.cc 2010-10-04 14:16:54.872365629 -0400
@@ -8,8 +8,8 @@
#include "base/string_number_conversions.h"
#include "base/string_util.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "v8/include/v8.h"
-#include "v8/include/v8-profiler.h"
+#include <v8.h>
+#include <v8-profiler.h>
#include "webkit/glue/webkit_glue.h"
#include "webkit/tools/test_shell/test_shell.h"
#include "webkit/tools/test_shell/test_shell_test.h"

View File

@@ -0,0 +1,190 @@
diff -up chromium-7.0.542.0/net/base/mime_util.cc.media-probe chromium-7.0.542.0/net/base/mime_util.cc
--- chromium-7.0.542.0/src/net/base/mime_util.cc.media-probe 2010-10-04 05:40:38.000000000 -0400
+++ chromium-7.0.542.0/src/net/base/mime_util.cc 2010-10-04 15:02:09.324499172 -0400
@@ -15,6 +15,15 @@
#include "base/string_util.h"
#include "base/utf_string_conversions.h"
+#include "base/path_service.h"
+
+#if ! defined(OS_MACOSX) && defined (OS_POSIX)
+#include <dlfcn.h>
+#define HAVE_DLFCN 1
+#else
+#define HAVE_DLFCN 0
+#endif
+
using std::string;
namespace net {
@@ -224,51 +233,47 @@
"image/x-xbitmap" // xbm
};
-// A list of media types: http://en.wikipedia.org/wiki/Internet_media_type
-// A comprehensive mime type list: http://plugindoc.mozdev.org/winmime.php
-static const char* const supported_media_types[] = {
-#if defined(ENABLE_MEDIA_TYPE_OGG)
- // Ogg.
- "video/ogg",
- "audio/ogg",
- "application/ogg",
-#endif
-
- // WebM.
- "video/webm",
- "audio/webm",
- "audio/wav",
- "audio/x-wav",
+struct format_info {
+ const char* name;
+ const char* symbol;
+ const bool fallback;
+};
#if defined(GOOGLE_CHROME_BUILD) || defined(USE_PROPRIETARY_CODECS)
- // MPEG-4.
- "video/mp4",
- "video/x-m4v",
- "audio/mp4",
- "audio/x-m4a",
-
- // MP3.
- "audio/mp3",
- "audio/x-mp3",
- "audio/mpeg",
+#define MPEG true
+#else
+#define MPEG false
#endif
+
+// A list of media types: http://en.wikipedia.org/wiki/Internet_media_type
+// A comprehensive mime type list: http://plugindoc.mozdev.org/winmime.php
+static const format_info supported_media_types[] = {
+ { "video/ogg", "ogg_demuxer", true },
+ { "audio/ogg", "ogg_demuxer", true },
+ { "application/ogg", "ogg_demuxer", true },
+ { "video/webm", "matroska_demuxer", true },
+ { "audio/webm", "matroska_demuxer", true },
+ { "audio/wav", "wav_demuxer", true },
+ { "audio/x-wav", "wav_demuxer", true },
+ { "video/mp4", "mov_demuxer", MPEG },
+ { "video/x-m4v", "mov_demuxer", MPEG },
+ { "audio/mp4", "mov_demuxer", MPEG },
+ { "audio/x-m4a", "mov_demuxer", MPEG },
+ { "audio/mp3", "mp3_demuxer", MPEG },
+ { "audio/x-mp3", "mp3_demuxer", MPEG },
+ { "audio/mpeg", "mp3_demuxer", MPEG },
};
// List of supported codecs when passed in with <source type="...">.
//
// Refer to http://wiki.whatwg.org/wiki/Video_type_parameters#Browser_Support
// for more information.
-static const char* const supported_media_codecs[] = {
-#if defined(GOOGLE_CHROME_BUILD) || defined(USE_PROPRIETARY_CODECS)
- "avc1",
- "mp4a",
-#endif
-#if defined(ENABLE_MEDIA_CODEC_THEORA)
- "theora",
-#endif
- "vorbis",
- "vp8",
- "1" // PCM for WAV.
+static const format_info supported_media_codecs[] = {
+ { "avc1", "aac_decoder", MPEG },
+ { "mp4a", "h264_decoder", MPEG },
+ { "theora", "theora_decoder", true },
+ { "vorbis", "vorbis_decoder", true },
+ { "vp8", "libvpx_decoder", true },
};
// Note: does not include javascript types list (see supported_javascript_types)
@@ -342,7 +347,47 @@
{ "audio/wav", "1" }
};
-void MimeUtil::InitializeMimeTypeMaps() {
+#if defined(OS_MACOSX)
+#define DSO_NAME(MODULE) ("lib" MODULE ".dylib")
+#elif defined(OS_POSIX)
+#define DSO_NAME(MODULE) ("lib" MODULE ".so")
+#else
+#define DSO_NAME(MODULE) (MODULE ".dll")
+#endif
+
+static void* GetHandle(const FilePath& module_dir, const char* library) {
+#if HAVE_DLFCN
+ FilePath path = module_dir.Append(library);
+ return dlopen(path.value().c_str(), RTLD_LAZY);
+#else
+ return NULL;
+#endif
+}
+
+static void DumpHandle(void* dlhandle) {
+#if HAVE_DLFCN
+ if (dlhandle)
+ dlclose(dlhandle);
+#endif
+}
+
+static bool ProbeFormat(void* dlhandle, const char* symbol, bool fallback) {
+#if HAVE_DLFCN
+ return dlhandle && dlsym(dlhandle, symbol);
+#else
+ return fallback;
+#endif
+}
+
+ void MimeUtil::InitializeMimeTypeMaps() {
+ FilePath module_path;
+#if defined(OS_MACOSX)
+ module_path = mac_util::MainAppBundlePath().Append("Libraries");
+#else
+ PathService::Get(base::DIR_MODULE, &module_path);
+#endif
+ void* h_ffmpegsumo = GetHandle(module_path, DSO_NAME("ffmpegsumo"));
+
for (size_t i = 0; i < arraysize(supported_image_types); ++i)
image_map_.insert(supported_image_types[i]);
@@ -352,11 +397,15 @@
for (size_t i = 0; i < arraysize(supported_javascript_types); ++i)
non_image_map_.insert(supported_javascript_types[i]);
for (size_t i = 0; i < arraysize(supported_media_types); ++i)
- non_image_map_.insert(supported_media_types[i]);
+ if (ProbeFormat(h_ffmpegsumo, supported_media_types[i].symbol,
+ supported_media_types[i].fallback))
+ non_image_map_.insert(supported_media_types[i].name);
// Initialize the supported media types.
for (size_t i = 0; i < arraysize(supported_media_types); ++i)
- media_map_.insert(supported_media_types[i]);
+ if (ProbeFormat(h_ffmpegsumo, supported_media_types[i].symbol,
+ supported_media_types[i].fallback))
+ media_map_.insert(supported_media_types[i].name);
for (size_t i = 0; i < arraysize(supported_javascript_types); ++i)
javascript_map_.insert(supported_javascript_types[i]);
@@ -365,7 +414,9 @@
view_source_map_.insert(view_source_types[i]);
for (size_t i = 0; i < arraysize(supported_media_codecs); ++i)
- codecs_map_.insert(supported_media_codecs[i]);
+ if (ProbeFormat(h_ffmpegsumo, supported_media_codecs[i].symbol,
+ supported_media_codecs[i].fallback))
+ codecs_map_.insert(supported_media_codecs[i].name);
// Initialize the strict supported media types.
for (size_t i = 0; i < arraysize(format_codec_mappings); ++i) {
@@ -379,6 +430,8 @@
codecs.insert(mime_type_codecs[j]);
strict_format_map_[format_codec_mappings[i].mime_type] = codecs;
}
+
+ DumpHandle(h_ffmpegsumo);
}
bool MimeUtil::IsSupportedImageMimeType(const char* mime_type) const {

View File

@@ -0,0 +1,64 @@
diff -up chromium-7.0.542.0/build/linux/system.gyp.system-libvpx chromium-7.0.542.0/build/linux/system.gyp
--- chromium-7.0.542.0/src/build/linux/system.gyp.system-libvpx 2010-10-06 14:01:19.638507000 -0400
+++ chromium-7.0.542.0/src/build/linux/system.gyp 2010-10-06 14:01:19.650507000 -0400
@@ -409,6 +409,26 @@
}]]
},
{
+ 'target_name': 'libvpx',
+ 'type': 'settings',
+ 'conditions': [
+ ['_toolset=="target"', {
+ 'direct_dependent_settings': {
+ 'cflags': [
+ '-I/usr/include/vpx',
+ ],
+ },
+ 'link_settings': {
+ 'ldflags': [
+ '',
+ ],
+ 'libraries': [
+ '-lvpx',
+ ],
+ },
+ }]]
+ },
+ {
'target_name': 'gnome_keyring',
'type': 'settings',
'conditions': [
diff -up chromium-7.0.542.0/remoting/remoting.gyp.system-libvpx chromium-7.0.542.0/remoting/remoting.gyp
--- chromium-7.0.542.0/src/remoting/remoting.gyp.system-libvpx 2010-10-06 14:01:19.641507000 -0400
+++ chromium-7.0.542.0/src/remoting/remoting.gyp 2010-10-06 14:01:19.654507000 -0400
@@ -165,7 +165,7 @@
'remoting_base',
'remoting_host',
'remoting_jingle_glue',
- '../third_party/libvpx/libvpx.gyp:libvpx',
+ '../build/linux/system.gyp:libvpx',
'../third_party/npapi/npapi.gyp:npapi',
],
'sources': [
@@ -303,7 +303,7 @@
# TODO(hclam): Remove this and depend on libvpx directly once we remove
# libvpx from FFmpeg.
'include_dirs': [
- '../third_party/libvpx/source/libvpx',
+ '/usr/include/vpx',
],
# This target needs a hard dependency because dependent targets
# depend on chromotocol_proto_lib for headers.
diff -up chromium-7.0.542.0/third_party/ffmpeg/ffmpeg.gyp.system-libvpx chromium-7.0.542.0/third_party/ffmpeg/ffmpeg.gyp
--- chromium-7.0.542.0/src/third_party/ffmpeg/ffmpeg.gyp.system-libvpx 2010-10-06 14:04:09.730507291 -0400
+++ chromium-7.0.542.0/src/third_party/ffmpeg/ffmpeg.gyp 2010-10-06 14:05:14.341510863 -0400
@@ -812,6 +812,9 @@
'<(output_root)',
'../..', # The chromium 'src' directory.
],
+ 'dependencies': [
+ '../../build/linux/system.gyp:libvpx',
+ ],
'direct_dependent_settings': {
'defines': [
'__STDC_CONSTANT_MACROS', # FFmpeg uses INT64_C.

View File

@@ -0,0 +1,16 @@
References: https://bugs.chromium.org/p/chromium/issues/detail?id=1192875
Index: chromium-91.0.4472.57/third_party/closure_compiler/compiler.py
===================================================================
--- chromium-91.0.4472.57.orig/third_party/closure_compiler/compiler.py
+++ chromium-91.0.4472.57/third_party/closure_compiler/compiler.py
@@ -13,8 +13,7 @@ import subprocess
_CURRENT_DIR = os.path.join(os.path.dirname(__file__))
-_JAVA_PATH = os.path.join(_CURRENT_DIR, "..", "jdk", "current", "bin", "java")
-assert os.path.isfile(_JAVA_PATH), "java only allowed in android builds"
+_JAVA_PATH = "java"
class Compiler(object):
"""Runs the Closure compiler on given source files to typecheck them

View File

@@ -0,0 +1,59 @@
From: 52c3e9c0f140a8742034e107fb0f371c0d73bf1d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <kabel@kernel.org>
Date: Sun, 12 Sep 2021 04:20:11 +0200
Subject: [PATCH] chromium-93: fix building with system-ffmpeg
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The version of ffmpeg bundled in Chromium changed ABI a little, which
affected the code in that the type of the last parameter of
av_packet_get_side_data() is now size_t instead of int.
This causes Chromium to fail to build with system-ffmpeg if the system
ffmpeg's version does not yet have this ABI change.
Fix the code to be able to compile with older ffmpeg as well.
Signed-off-by: Marek Behún <kabel@kernel.org>
---
media/filters/audio_decoder_unittest.cc | 4 ++++
media/filters/ffmpeg_demuxer.cc | 16 ++++++++++++++++
2 files changed, 20 insertions(+)
Index: chromium-126.0.6478.8/media/filters/ffmpeg_demuxer.cc
===================================================================
--- chromium-126.0.6478.8.orig/media/filters/ffmpeg_demuxer.cc
+++ chromium-126.0.6478.8/media/filters/ffmpeg_demuxer.cc
@@ -343,11 +343,19 @@
}
base::span<const uint8_t> GetSideData(const AVPacket* packet) {
+#if LIBAVUTIL_VERSION_MAJOR < 57
+ int side_data_size = 0;
+#else
size_t side_data_size = 0;
+#endif
uint8_t* side_data = av_packet_get_side_data(
packet, AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
+#if LIBAVUTIL_VERSION_MAJOR < 57
+ return base::span<const uint8_t>(side_data, base::checked_cast<size_t>(side_data_size));
+#else
return base::span<const uint8_t>(side_data, side_data_size);
+#endif
}
void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
@@ -474,7 +482,11 @@
base::HeapArray<uint8_t>::CopiedFrom(side_data);
}
+#if LIBAVUTIL_VERSION_MAJOR < 57
+ int skip_samples_size = 0;
+#else
size_t skip_samples_size = 0;
+#endif
const uint32_t* skip_samples_ptr =
reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
packet.get(), AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));

View File

@@ -0,0 +1,39 @@
From: 52c3e9c0f140a8742034e107fb0f371c0d73bf1d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <kabel@kernel.org>
Date: Sun, 12 Sep 2021 04:20:11 +0200
Subject: [PATCH] chromium-93: fix building with system-ffmpeg
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The version of ffmpeg bundled in Chromium changed ABI a little, which
affected the code in that the type of the last parameter of
av_packet_get_side_data() is now size_t instead of int.
This causes Chromium to fail to build with system-ffmpeg if the system
ffmpeg's version does not yet have this ABI change.
Fix the code to be able to compile with older ffmpeg as well.
Signed-off-by: Marek Behún <kabel@kernel.org>
---
media/filters/audio_decoder_unittest.cc | 4 ++++
media/filters/ffmpeg_demuxer.cc | 16 ++++++++++++++++
2 files changed, 20 insertions(+)
Index: chromium-126.0.6478.8/media/filters/audio_decoder_unittest.cc
===================================================================
--- chromium-126.0.6478.8.orig/media/filters/audio_decoder_unittest.cc
+++ chromium-126.0.6478.8/media/filters/audio_decoder_unittest.cc
@@ -109,7 +109,11 @@ void SetDiscardPadding(AVPacket* packet,
}
// If the timestamp is positive, try to use FFmpeg's discard data.
+#if LIBAVUTIL_VERSION_MAJOR < 57
+ int skip_samples_size = 0;
+#else
size_t skip_samples_size = 0;
+#endif
const uint32_t* skip_samples_ptr =
reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
packet, AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));

View File

@@ -0,0 +1 @@
setBadness("permissions-file-setuid-bit", 0)

14
chromium-browser.desktop Normal file
View File

@@ -0,0 +1,14 @@
[Desktop Entry]
Version=1.0
Name=Chromium Web Browser
Comment=Browse the World Wide Web
GenericName=Web Browser
Exec=chromium %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=chromium-browser.png
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;
StartupWMClass=Chromium

117
chromium-browser.sh Normal file
View File

@@ -0,0 +1,117 @@
#!/bin/sh
# Chromium launcher
# Authors:
# Fabien Tassin <fta@sofaraway.org>
# License: GPLv2 or later
APPNAME=chromium
LIBDIR=/usr/lib/chromium
GDB=/usr/bin/gdb
# Let the Chromium aware MeeGo desktop environment.
# For system proxy setting integration.
GNOME_DESKTOP_SESSION_ID="this-is-deprecated"
export GNOME_DESKTOP_SESSION_ID
usage () {
echo "$APPNAME [-h|--help] [-g|--debug] [options] [URL]"
echo
echo " -g or --debug Start within $GDB"
echo " -h or --help This help screen"
}
# FFmpeg needs to know where its libs are located
if [ "Z$LD_LIBRARY_PATH" != Z ] ; then
LD_LIBRARY_PATH=$LIBDIR:$LD_LIBRARY_PATH
else
LD_LIBRARY_PATH=$LIBDIR
fi
export LD_LIBRARY_PATH
# xdg-settings should in PATH
PATH=$PATH:$LIBDIR
export PATH
want_debug=0
while [ $# -gt 0 ]; do
case "$1" in
-h | --help | -help )
usage
exit 0 ;;
-g | --debug )
want_debug=1
shift ;;
-- ) # Stop option prcessing
shift
break ;;
* )
break ;;
esac
done
# Setup the default profile if this is none
# Set the default theme as GTK+ with system window decoration
if [ ! -d ~/.config/chromium/Default ]; then
mkdir -p ~/.config/chromium/Default
cat <<EOF > ~/.config/chromium/Default/Preferences
{
"browser": {
"custom_chrome_frame": false
},
"extensions": {
"theme": {
"colors": {
},
"id": "",
"images": {
},
"properties": {
},
"tints": {
},
"use_system": true
}
},
"homepage": "http://meego.com/",
"homepage_is_newtabpage": false,
"session": {
"restore_on_startup": 1
},
"webkit": {
"webprefs": {
"default_fixed_font_size": 13,
"default_font_size": 16,
"fixed_font_family": "Droid Sans Mono",
"sansserif_font_family": "Droid Sans",
"serif_font_family": "Droid Serif"
}
}
}
EOF
# Set the default browser
$LIBDIR/xdg-settings set default-web-browser chromium-browser.desktop
fi
if [ $want_debug -eq 1 ] ; then
if [ ! -x $GDB ] ; then
echo "Sorry, can't find usable $GDB. Please install it."
exit 1
fi
tmpfile=`mktemp /tmp/chromiumargs.XXXXXX` || { echo "Cannot create temporary file" >&2; exit 1; }
trap " [ -f \"$tmpfile\" ] && /bin/rm -f -- \"$tmpfile\"" 0 1 2 3 13 15
echo "set args ${1+"$@"}" > $tmpfile
echo "# Env:"
echo "# LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
echo "$GDB $LIBDIR/$APPNAME -x $tmpfile"
$GDB "$LIBDIR/$APPNAME" -x $tmpfile
exit $?
else
exec $LIBDIR/$APPNAME "--password-store=detect" "--enable-experimental-extension-apis" "--enable-plugins" "--enable-extensions" "--enable-user-scripts" "--enable-printing" "--enable-sync" "--auto-ssl-client-auth" "$@"
fi

16
chromium-browser.xml Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE default-apps SYSTEM "gnome-da-list.dtd">
<default-apps>
<web-browsers>
<web-browser>
<name>Chromium</name>
<executable>chromium</executable>
<command>chromium %s</command>
<icon-name>chromium-browser</icon-name>
<run-in-terminal>false</run-in-terminal>
<netscape-remote>true</netscape-remote>
<tab-command>false</tab-command>
<win-command>false</win-command>
</web-browser>
</web-browsers>
</default-apps>

13
chromium-buildname.patch Normal file
View File

@@ -0,0 +1,13 @@
Index: chromium-73.0.3683.27/components/version_ui_strings.grdp
===================================================================
--- chromium-73.0.3683.27.orig/components/version_ui_strings.grdp
+++ chromium-73.0.3683.27/components/version_ui_strings.grdp
@@ -7,7 +7,7 @@
Official Build
</message>
<message name="IDS_VERSION_UI_UNOFFICIAL" desc="unofficial build on the about:version page">
- Developer Build
+ openSUSE Build
</message>
<message name="IDS_VERSION_UI_32BIT" desc="32-bit on the chrome://version page">
(32-bit)

View File

@@ -0,0 +1,50 @@
diff -up chromium/src/net/base/gzip_header.cc chromium/src/net/base/gzip_header.cc
--- chromium/src/net/base/gzip_header.cc 2009-09-28 10:34:28.000000000 -0600
+++ chromium/src/net/base/gzip_header.cc 2009-11-24 17:23:22.000000000 -0700
@@ -4,11 +4,11 @@
#include "net/base/gzip_header.h"
-#if defined(USE_SYSTEM_ZLIB)
+/* #if defined(USE_SYSTEM_ZLIB) */
#include <zlib.h>
-#else
+/* #else
#include "third_party/zlib/zlib.h" // for Z_DEFAULT_COMPRESSION
-#endif
+#endif */
#include "base/logging.h"
diff -up chromium/src/net/base/sdch_filter_unittest.cc chromium/src/net/base/sdch_filter_unittest.cc
--- chromium/src/net/base/sdch_filter_unittest.cc 2009-09-28 10:34:29.000000000 -0600
+++ chromium/src/net/base/sdch_filter_unittest.cc 2009-11-24 17:21:57.000000000 -0700
@@ -8,11 +8,11 @@
#include <string>
#include <vector>
-#if defined(USE_SYSTEM_ZLIB)
+/* #if defined(USE_SYSTEM_ZLIB) */
#include <zlib.h>
-#else
+/* #else
#include "third_party/zlib/zlib.h"
-#endif
+#endif */
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
--- chromium/src/chrome/common/metrics_helpers.cc 2009-09-28 10:34:29.000000000 -0600
+++ chromium/src/chrome/common/metrics_helpers.cc 2009-11-24 17:21:57.000000000 -0700
@@ -4,11 +4,7 @@
#include "chrome/common/metrics_helpers.h"
-#if defined(USE_SYSTEM_LIBBZ2)
#include <bzlib.h>
-#else
-#include "third_party/bzip2/bzlib.h"
-#endif
#include "base/base64.h"
#include "base/basictypes.h"

100
chromium-gcc46.patch Normal file
View File

@@ -0,0 +1,100 @@
--- chromium/src/ui/gfx/codec/jpeg_codec.h~ 2011-03-31 14:11:18.000000000 +0400
+++ chromium/src/ui/gfx/codec/jpeg_codec.h 2011-03-31 14:11:27.000000000 +0400
@@ -8,6 +8,7 @@
#include <stddef.h>
#include <vector>
+#include <cstddef>
#include "ui/base/ui_export.h"
--- chromium/src/chrome/browser/search_engines/template_url_prepopulate_data.h 2011-03-31 14:48:03.000000000 +0400
+++ chromium/src/chrome/browser/search_engines/template_url_prepopulate_data.h 2011-03-31 14:49:52.000000000 +0400
@@ -8,6 +8,7 @@
#include <stddef.h>
#include <vector>
+#include <cstddef>
class GURL;
class PrefService;
--- chromium/src/third_party/tcmalloc/chromium/src/common.cc~ 2011-03-29 20:46:14.000000000 +0400
+++ chromium/src/third_party/tcmalloc/chromium/src/common.cc 2011-03-29 20:47:02.000000000 +0400
@@ -30,6 +30,7 @@
// ---
// Author: Sanjay Ghemawat <opensource@google.com>
+#include <cstddef>
#include "config.h"
#include "common.h"
#include "system-alloc.h"
--- chromium/src/third_party/libjingle/source/talk/base/sigslot.h~ 2011-03-31 13:43:11.000000000 +0400
+++ chromium/src/third_party/libjingle/source/talk/base/sigslot.h 2011-03-31 13:52:32.000000000 +0400
@@ -81,6 +81,7 @@
#include <list>
#include <set>
#include <stdlib.h>
+#include <cstddef>
// On our copy of sigslot.h, we force single threading
#define SIGSLOT_PURE_ISO
--- chromium/src/third_party/ots/src/os2.cc~ 2011-03-31 14:03:13.000000000 +0400
+++ chromium/src/third_party/ots/src/os2.cc 2011-03-31 14:03:25.000000000 +0400
@@ -5,6 +5,7 @@
#include "os2.h"
#include "head.h"
+#include <cstddef>
// OS/2 - OS/2 and Windows Metrics
// http://www.microsoft.com/opentype/otspec/os2.htm
--- chromium/src/third_party/tcmalloc/chromium/src/base/vdso_support.h~ 2011-03-29 23:20:20.000000000 +0400
+++ chromium/src/third_party/tcmalloc/chromium/src/base/vdso_support.h 2011-03-29 23:20:37.000000000 +0400
@@ -38,6 +38,7 @@
#define HAVE_VDSO_SUPPORT 1
+#include <cstddef>
#include <stdlib.h> // for NULL
#include <link.h> // for ElfW
--- chromium/src/third_party/tcmalloc/chromium/src/base/stl_allocator.h~ 2011-03-31 12:53:13.000000000 +0400
+++ chromium/src/third_party/tcmalloc/chromium/src/base/stl_allocator.h 2011-03-31 12:53:32.000000000 +0400
@@ -39,6 +39,7 @@
#include <stddef.h> // for std::ptrdiff_t
#include <limits>
+#include <cstddef>
#include "base/logging.h"
--- chromium/src/third_party/tcmalloc/chromium/src/symbolize.h~ 2011-03-31 12:58:42.000000000 +0400
+++ chromium/src/third_party/tcmalloc/chromium/src/symbolize.h 2011-03-31 12:59:00.000000000 +0400
@@ -39,6 +39,7 @@
#endif
#include <stddef.h> // for NULL
#include <map>
+#include <cstddef>
using std::map;
--- chromium/src/third_party/tcmalloc/chromium/src/system-alloc.h~ 2011-03-31 13:01:01.000000000 +0400
+++ chromium/src/third_party/tcmalloc/chromium/src/system-alloc.h 2011-03-31 13:01:15.000000000 +0400
@@ -37,6 +37,7 @@
#define TCMALLOC_SYSTEM_ALLOC_H_
#include <config.h>
+#include <cstddef>
#include <stddef.h> // for size_t
class SysAllocator;
--- chromium/src/ppapi/cpp/paint_aggregator.h 2010-12-23 18:10:27.000000000 -0600
+++ chromium/src/ppapi/cpp/paint_aggregator.h 2011-04-19 05:34:56.085582885 -0500
@@ -5,6 +5,7 @@
#ifndef PPAPI_CPP_PAINT_AGGREGATOR_H_
#define PPAPI_CPP_PAINT_AGGREGATOR_H_
+#include <cstddef>
#include <stddef.h>
#include <vector>

3
chromium-icons.tar.bz2 Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c4d0115898a05eda80d3b1c291c9d9ee23d70db6b61411610a9b1fcbeaee40d2
size 96357

View File

@@ -0,0 +1,15 @@
diff -up chromium-48.0.2564.116/services/device/usb/usb_context.cc.modern-libusbx chromium-48.0.2564.116/device/usb/usb_context.cc
--- chromium-48.0.2564.116/services/device/usb/usb_context.cc.modern-libusbx 2016-02-24 10:21:10.534996028 -0500
+++ chromium-48.0.2564.116/services/device/usb/usb_context.cc 2016-02-24 10:22:28.270499864 -0500
@@ -57,7 +57,11 @@ void UsbContext::UsbEventHandler::Run()
void UsbContext::UsbEventHandler::Stop() {
base::subtle::Release_Store(&running_, 0);
+#ifdef LIBUSB_API_VERSION >= 0x01000105
+ libusb_interrupt_event_handler(context_);
+#else
libusb_interrupt_handle_event(context_);
+#endif
}
UsbContext::UsbContext(PlatformUsbContext context) : context_(context) {

View File

@@ -0,0 +1,13 @@
diff -dupr a/src/chrome/browser/first_run.cc b/src/chrome/browser/first_run.cc
--- a/src/chrome/browser/first_run/first_run.cc 2010-03-10 10:21:33.000000000 -0700
+++ b/src/chrome/browser/first_run/first_run.cc 2010-03-10 13:08:12.000000000 -0700
@@ -92,8 +92,7 @@
// The standard location of the master prefs is next to the chrome binary.
FilePath master_prefs;
- if (!PathService::Get(base::DIR_EXE, &master_prefs))
- return true;
+ master_prefs = FilePath("/etc/chromium");
master_prefs = master_prefs.AppendASCII(installer::kDefaultMasterPrefs);
installer::MasterPreferences prefs(master_prefs);

View File

@@ -0,0 +1,12 @@
diff -up chromium-20100218svn39394/src/build/all.gyp.no-courgette chromium-20100218svn39394/src/build/all.gyp
--- chromium-20100218svn39394/src/build/all.gyp.no-courgette 2010-02-19 16:03:23.305138076 -0500
+++ chromium-20100218svn39394/src/build/all.gyp 2010-02-19 16:03:42.426124248 -0500
@@ -81,7 +81,6 @@
['OS=="linux"', {
'dependencies': [
'../breakpad/breakpad.gyp:*',
- '../courgette/courgette.gyp:*',
'../dbus/dbus.gyp:*',
'../sandbox/sandbox.gyp:*',
],
diff -up chromium-20100218svn39394/src/chrome/chrome.gyp.no-courgette chromium-20100218svn39394/src/chrome/chrome.gyp

View File

@@ -0,0 +1,22 @@
diff -up chromium-20100218svn39394/src/chrome/common/sqlite_utils.cc.no-sqlite-debugging chromium-20100218svn39394/src/chrome/common/sqlite_utils.cc
--- chromium-20100218svn39394/src/chrome/common/sqlite_utils.cc.no-sqlite-debugging 2010-02-18 18:23:31.000000000 -0500
+++ chromium-20100218svn39394/src/chrome/common/sqlite_utils.cc 2010-02-19 15:40:50.338131672 -0500
@@ -32,8 +32,6 @@ class DebugSQLErrorHandler: public Vanil
public:
virtual int HandleError(int error, sqlite3* db) {
error_ = error;
- NOTREACHED() << "sqlite error " << error
- << " db " << static_cast<void*>(db);
return error;
}
};
@@ -276,8 +274,7 @@ int SQLStatement::prepare(sqlite3* db, c
DCHECK(!stmt_);
int rv = sqlite3_prepare_v2(db, sql, sql_len, &stmt_, NULL);
if (rv != SQLITE_OK) {
- SQLErrorHandler* error_handler = GetErrorHandlerFactory()->Make();
- return error_handler->HandleError(rv, db);
+ DLOG(ERROR) << "SQLStatement.prepare_v2 failed: " << sqlite3_errmsg(db);
}
return rv;
}

View File

@@ -0,0 +1,53 @@
diff -up chromium-6.0.417.0-20100526svn48276/chrome/chrome.gyp.notests chromium-6.0.417.0-20100526svn48276/chrome/chrome.gyp
--- chromium-6.0.417.0-20100526svn48276/src/chrome/chrome.gyp.notests 2010-05-27 11:08:15.000000000 -0400
+++ chromium-6.0.417.0-20100526svn48276/src/chrome/chrome.gyp 2010-05-27 11:09:38.961194394 -0400
@@ -132,7 +132,6 @@
'chrome_installer.gypi',
'chrome_installer_util.gypi',
'chrome_renderer.gypi',
- 'chrome_tests.gypi',
'common_constants.gypi',
'nacl.gypi',
],
@@ -920,7 +919,6 @@
'target_name': 'ipclist',
'type': 'executable',
'dependencies': [
- 'test_support_common',
'../skia/skia.gyp:skia',
],
'include_dirs': [
@@ -1238,7 +1236,6 @@
'type': 'executable',
'dependencies': [
'../base/base.gyp:base',
- '../base/base.gyp:test_support_base',
],
'sources': [
'tools/perf/flush_cache/flush_cache.cc',
@@ -1351,7 +1348,6 @@
'..',
],
'dependencies': [
- 'test_support_common',
'../skia/skia.gyp:skia',
],
'sources': [
@@ -1528,7 +1524,6 @@
'dependencies': [
'theme_resources',
'theme_resources_standard',
- '../base/base.gyp:test_support_base',
'../skia/skia.gyp:skia',
'../testing/gtest.gyp:gtest',
],
--- chromium/src/chrome/browser/sync/tools/sync_tools.gyp 2011-04-08 16:44:28.737000131 +0200
+++ chromium/src/chrome/browser/sync/tools/sync_tools.gyp 2011-04-08 16:44:28.737000131 +0200
@@ -13,7 +13,6 @@
'dependencies': [
'<(DEPTH)/base/base.gyp:base',
'<(DEPTH)/chrome/chrome.gyp:sync_notifier',
- '<(DEPTH)/chrome/chrome.gyp:test_support_common',
'<(DEPTH)/content/content.gyp:content_browser',
'<(DEPTH)/net/net.gyp:net',
],

16
chromium-norar.patch Normal file
View File

@@ -0,0 +1,16 @@
diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
index 2a930f44908f4..095a1ac913334 100644
--- a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
+++ b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
@@ -78,11 +78,6 @@ void FileAnalyzer::Start(const base::FilePath& target_file_name,
return;
}
- if (inspection_type == DownloadFileType::RAR) {
- StartExtractRarFeatures();
- return;
- }
-
#if BUILDFLAG(IS_MAC)
if (inspection_type == DownloadFileType::DMG) {
StartExtractDmgFeatures();

11
chromium-norpath.patch Normal file
View File

@@ -0,0 +1,11 @@
--- chromium/src/native_client/build/common.gypi.norpath 2009-12-16 10:15:46.000000000 -0500
+++ chromium/src/native_client/build/common.gypi 2009-12-16 10:15:52.000000000 -0500
@@ -511,7 +511,7 @@
# -rpath is only used when building with shared libraries.
'conditions': [
[ 'library=="shared_library"', {
- 'RPATH': '$LIB_DIR',
+ # 'RPATH': '$LIB_DIR',
}],
],
},

View File

@@ -0,0 +1,17 @@
Index: chromium-106.0.5249.91/media/BUILD.gn
===================================================================
--- chromium-106.0.5249.91.orig/media/BUILD.gn
+++ chromium-106.0.5249.91/media/BUILD.gn
@@ -64,12 +64,6 @@ buildflag_header("media_buildflags") {
}
}
-if (proprietary_codecs && media_use_ffmpeg) {
- assert(
- ffmpeg_branding != "Chromium",
- "proprietary codecs and ffmpeg_branding set to Chromium are incompatible")
-}
-
# Common configuration for targets in the media directory; these must not be
# exported since things like USE_NEON have different meanings elsewhere in the
# code base.

View File

@@ -0,0 +1,14 @@
--- chromium/src/remoting/remoting.gyp 2010-10-03 15:13:07.746440175 +0200
+++ chromium/src/remoting/remoting.gyp 2010-10-03 15:13:07.746440175 +0200
@@ -243,6 +243,11 @@
# TODO(hclam): Enable VP8 in the build.
#'third_party/on2/on2.gyp:vp8',
],
+ 'link_settings': {
+ 'libraries': [
+ '-lvpx',
+ ],
+ },
'export_dependent_settings': [
'../base/base.gyp:base',
'../net/net.gyp:net',

BIN
chromium-symbolic.svg (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,42 @@
diff -up chromium-5.0.358.0-20100318svn41971/src/chrome/browser/autofill/autofill_xml_parser.h.system-expat chromium-5.0.358.0-20100318svn41971/src/chrome/browser/autofill/autofill_xml_parser.h
--- chromium-5.0.358.0-20100318svn41971/src/chrome/browser/autofill/autofill_xml_parser.h.system-expat 2010-03-18 22:55:12.071283208 -0400
+++ chromium-5.0.358.0-20100318svn41971/src/chrome/browser/autofill/autofill_xml_parser.h 2010-03-18 22:55:27.671209061 -0400
@@ -10,7 +10,7 @@
#include "base/basictypes.h"
#include "chrome/browser/autofill/field_types.h"
#include "chrome/browser/autofill/form_structure.h"
-#include "third_party/expat/files/lib/expat.h"
+#include <expat.h>
#include "third_party/libjingle/source/talk/xmllite/xmlparser.h"
// The base class that contains common functionality between
--- chromium-5.0.358.0-20100318svn41971/src/third_party/libjingle/source/talk/xmllite/xmlparser.h.system-expat 2010-03-18 22:55:12.071283208 -0400
+++ chromium-5.0.358.0-20100318svn41971/src/third_party/libjingle/source/talk/xmllite/xmlparser.h 2010-03-18 22:55:27.671209061 -0400
@@ -31,11 +31,7 @@
#include <string>
#include "talk/xmllite/xmlnsstack.h"
-#ifdef EXPAT_RELATIVE_PATH
-#include "expat.h"
-#else
-#include "third_party/expat/v2_0_1/Source/lib/expat.h"
-#endif // EXPAT_RELATIVE_PATH
+#include <expat.h>
struct XML_ParserStruct;
typedef struct XML_ParserStruct* XML_Parser;
--- chromium-5.0.358.0-20100318svn41971/src/third_party/libjingle/source/talk/xmllite/xmlbuilder.h.system-expat 2010-03-18 22:55:12.071283208 -0400
+++ chromium-5.0.358.0-20100318svn41971/src/third_party/libjingle/source/talk/xmllite/xmlbuilder.h 2010-03-18 22:55:27.671209061 -0400
@@ -33,11 +33,7 @@
#include "talk/base/scoped_ptr.h"
#include "talk/xmllite/xmlparser.h"
-#ifdef EXPAT_RELATIVE_PATH
-#include "expat.h"
-#else
-#include "third_party/expat/v2_0_1/Source/lib/expat.h"
-#endif // EXPAT_RELATIVE_PATH
+#include <expat.h>
namespace buzz {

View File

@@ -0,0 +1,46 @@
diff -up chromium-5.0.377.0-20100413svn44349/src/build/linux/system.gyp.GLEW chromium-5.0.377.0-20100413svn44349/src/build/linux/system.gyp
--- chromium-5.0.377.0-20100413svn44349/src/build/linux/system.gyp.GLEW 2010-04-13 11:36:47.300172139 -0400
+++ chromium-5.0.377.0-20100413svn44349/src/build/linux/system.gyp 2010-04-13 11:36:47.579173387 -0400
@@ -340,6 +340,42 @@
},
}]]
},
+ {
+ 'target_name': 'icu',
+ 'type': 'settings',
+ 'conditions': [
+ ['_toolset=="target"', {
+ 'direct_dependent_settings': {
+ 'cflags': [
+ '-Wno-unused-function',
+ # TODO(port): fix ICU to not depend on this flag.
+ '-fno-strict-aliasing',
+ ],
+ },
+ 'link_settings': {
+ 'ldflags': [
+ '',
+ ],
+ 'libraries': [
+ '-licui18n',
+ ],
+ },
+ }]]
+ },
+ {
+ 'target_name': 'glew',
+ 'type': 'settings',
+ 'conditions': [
+ ['_toolset=="target"', {
+ 'link_settings': {
+ 'libraries': [
+ '-lGLEW',
+ '-lGL',
+ '-lX11',
+ ],
+ },
+ }]]
+ },
{
'target_name': 'gnome_keyring',
'type': 'settings',

View File

@@ -0,0 +1,19 @@
diff -up chromium-20100315svn41580/src/third_party/WebKit/Source/WebCore/WebCore.gyp/WebCore.gyp.system-zlib chromium-20100315svn41580/src/third_party/WebKit/WebCore/WebCore.gyp/WebCore.gyp
--- chromium-20100315svn41580/src/third_party/WebKit/Source/WebCore/WebCore.gyp/WebCore.gyp.system-zlib 2010-03-15 13:08:00.000000000 -0400
+++ chromium-20100315svn41580/src/third_party/WebKit/Source/WebCore/WebCore.gyp/WebCore.gyp 2010-03-15 13:10:34.697208907 -0400
@@ -855,6 +855,7 @@
'<(chromium_src_dir)/third_party/ots/ots.gyp:ots',
'<(chromium_src_dir)/third_party/sqlite/sqlite.gyp:sqlite',
'<(chromium_src_dir)/third_party/angle/src/build_angle.gyp:translator_common',
+ '<(chromium_src_dir)/third_party/zlib/zlib.gyp:zlib',
'<(libjpeg_gyp_path):libjpeg',
],
'export_dependent_settings': [
@@ -872,6 +873,7 @@
'<(chromium_src_dir)/third_party/ots/ots.gyp:ots',
'<(chromium_src_dir)/third_party/sqlite/sqlite.gyp:sqlite',
'<(chromium_src_dir)/third_party/angle/src/build_angle.gyp:translator_common',
+ '<(chromium_src_dir)/third_party/zlib/zlib.gyp:zlib',
'<(libjpeg_gyp_path):libjpeg',
],
# This is needed for mac because of webkit_system_interface. It'd be nice

11
chromium-vendor.patch.in Normal file
View File

@@ -0,0 +1,11 @@
--- src/webkit/glue/user_agent.cc
+++ src/webkit/glue/user_agent.cc
@@ -106,6 +106,7 @@ void BuildUserAgent(bool mimic_chrome1,
base::StringAppendF(
result,
"Mozilla/5.0 (%s%s) AppleWebKit/%d.%d"
- " (KHTML, like Gecko) %s Safari/%d.%d",
+ " (KHTML, like Gecko) %s Safari/%d.%d"
+ " SUSE/RPM_VERSION",
mimic_windows ? "Windows " : kUserAgentPlatform,
BuildOSCpuInfo().c_str(),

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d09fedf04e64c8ff6876464af4ef20672a0d917052842f390aa6244716199f5f
size 191564388

406
chromium.changes Normal file
View File

@@ -0,0 +1,406 @@
-------------------------------------------------------------------
Tue Aug 16 09:14:32 UTC 2011 - tittiatcoke@gmail.com
- Update to 15.0.854
-------------------------------------------------------------------
Sun Aug 7 09:13:32 UTC 2011 - tittiatcoke@gmail.com
- Introduce an option to switch the password store for Chromium in
a more friendlier way, by using the update-alternatives. The user
has now the option to install a new package (chromium-desktop-kde
or chromium-desktop-gnome) and based on this the respective
password store is selected.
-------------------------------------------------------------------
Sat Aug 6 10:09:02 UTC 2011 - tittiatcoke@gmail.com
- Update to 15.0.846
-------------------------------------------------------------------
Sat Jul 30 08:12:51 UTC 2011 - tittiatcoke@gmail.com
- Update to 15.0.839
-------------------------------------------------------------------
Thu Jul 21 17:06:31 UTC 2011 - tittiatcoke@gmail.com
- Update to 14.0.829
-------------------------------------------------------------------
Sun Jul 17 09:15:18 UTC 2011 - tittiatcoke@gmail.com
- Update to 14.0.825
-------------------------------------------------------------------
Tue Jul 12 02:26:20 UTC 2011 - nmarques@opensuse.org
- Fix for bnc#705223:
+ Icons are installed in hicolor instead of oxygen, this ensures
compatibility with open Desktop standards.
+ Add GTK icon cache update for >= 1140 on %post and %postun.
+ Removed the .png in %{_datadir}/pixmaps as hicolor is a better
option.
+ Add hicolor-icon-theme to BuildRequires and Requires.
-------------------------------------------------------------------
Mon Jun 13 11:49:27 UTC 2011 - tittiatcoke@gmail.com
- Update to 14.0.792
-------------------------------------------------------------------
Mon Jun 6 08:47:30 UTC 2011 - tittiatcoke@gmail.com
- Update to 14.0.786
-------------------------------------------------------------------
Sat Jun 4 07:22:05 UTC 2011 - tittiatcoke@gmail.com
- Update to 14.0.785
-------------------------------------------------------------------
Sat May 28 20:05:21 UTC 2011 - tittiatcoke@gmail.com
- Update to 13.0.780
-------------------------------------------------------------------
Wed May 25 13:03:04 UTC 2011 - tittiatcoke@gmail.com
- Update to 13.0.777
+ Builds now based on system library for V8.
+ Removed Shared Library build due to errors. Everything is back
into one single binary
+ Added patchfile to build with GCC 4.6
-------------------------------------------------------------------
Sun May 15 12:49:33 UTC 2011 - tittiatcoke@gmail.com
- Update to 13.0.767
-------------------------------------------------------------------
Thu Apr 28 17:44:47 UTC 2011 - tittiatcoke@gmail.com
- Update to 13.0.751
-------------------------------------------------------------------
Fri Apr 22 06:23:09 UTC 2011 - tittiatcoke@gmail.com
- Update to 12.0.744
-------------------------------------------------------------------
Mon Apr 18 17:01:00 UTC 2011 - tittiatcoke@gmail.com
- Update to 12.0.741
- Include icon-set for Oxygen. (bnc#684728)
-------------------------------------------------------------------
Fri Apr 8 15:29:13 UTC 2011 - tittiatcoke@gmail.com
- Update to 12.0.731
-------------------------------------------------------------------
Sun Apr 3 15:30:49 UTC 2011 - tittiatcoke@gmail.com
- Update to 12.0.724
-------------------------------------------------------------------
Thu Mar 31 19:28:18 UTC 2011 - tittiatcoke@gmail.com
- Update to 12.0.721
-------------------------------------------------------------------
Mon Mar 28 18:26:22 UTC 2011 - tittiatcoke@gmail.com
- Update to 12.0.718
- Added conflict for xine-browser-plugin
-------------------------------------------------------------------
Wed Mar 16 05:15:44 UTC 2011 - tittiatcoke@gmail.com
- Update to 12.0.705
- Included option to detect the password store in /usr/bin/chromium
(options there are detect,default,gnome,kwallet)
-------------------------------------------------------------------
Fri Mar 11 08:42:36 UTC 2011 - tittiatcoke@gmail.com
- Update to 12.0.700
-------------------------------------------------------------------
Wed Mar 9 18:45:16 UTC 2011 - tittiatcoke@gmail.com
- Update to 11.0.698
-------------------------------------------------------------------
Fri Mar 4 08:08:57 UTC 2011 - tittiatcoke@gmail.com
- Update to 11.0.691
-------------------------------------------------------------------
Wed Mar 2 18:17:40 UTC 2011 - tittiatcoke@gmail.com
- Update to 11.0.688
-------------------------------------------------------------------
Sun Feb 27 09:05:00 UTC 2011 - tittiatcoke@gmail.com
- Update to 11.0.685
-------------------------------------------------------------------
Sun Feb 27 08:52:51 UTC 2011 - tittiatcoke@gmail.com
- Update to 11.0.683
* Chromium will now use the internal ICU libraries for all
openSUSE versions.
-------------------------------------------------------------------
Wed Feb 16 23:45:49 UTC 2011 - tittiatcoke@gmail.com
- Update to 11.0.674
-------------------------------------------------------------------
Tue Feb 15 18:37:51 UTC 2011 - tittiatcoke@gmail.com
- Update to 11.0.673
* For Factory the internal ICU libraries are used as that
Chromium does not build with the ones provided by Factory
-------------------------------------------------------------------
Wed Jan 19 13:23:13 UTC 2011 - prusnak@opensuse.org
- add more mimetypes to desktop file
-------------------------------------------------------------------
Sat Dec 25 09:40:13 UTC 2010 - rwooninck@opensuse.org
- update to 10.0.622.0
-------------------------------------------------------------------
Mon Oct 25 14:30:33 UTC 2010 - tittiatcoke@gmail.com
- Update to 9.0.564 build
* Added specific patches for MeeGo.
* We are now using shared libraries for Chromium
* Spec-file cleanup (Thanks to prusnak)
-------------------------------------------------------------------
Thu Jul 8 00:13:33 UTC 2010 - cristian.rodriguez@opensuse.org
- use jobs instead of a fixed numer of jobs, buildsystem may hang
-------------------------------------------------------------------
Wed Jul 7 20:10:06 UTC 2010 - cristian.rodriguez@opensuse.org
- workaround gcc bug, that produces extremely annoying
failure of the search bar.
-------------------------------------------------------------------
Mon May 24 01:17:14 UTC 2010 - cristian.rodriguez@opensuse.org
- do not include %{release} in RPM_VERSION that makes the
package to republish everytime to users even if there
are no code changes.
-------------------------------------------------------------------
Wed Mar 10 20:10:14 UTC 2010 - bgmerrell@novell.com
- Add master_preferences source file and install it to /etc/chromium.
- Create a new patch (chromium-master-prefs-path.patch) which tells
chromium to look in /etc/chromium for the master_preferences file
(instead of looking in the default directory, which is the same
directory as the 'chrome' binary).
-------------------------------------------------------------------
* Sun Mar 7 00:00:00 UTC 2010 - tititatcoke@gmail.com
- Update to 5.0.347
+ moved back to static binary again.
+ No longer depends on system v8
-------------------------------------------------------------------
* Mon Feb 21 00:00:00 UTC 2010 - tititatcoke@gmail.com
- Update to 5.0.341
+ remove courgette build and sources (patent issue)
+ Move to shared libraries build
+ Depends on system v8 again
-------------------------------------------------------------------
Sun Jan 24 21:42:27 UTC 2010 - prusnak@suse.cz
- added vendor to user agent (chromium-vendor.patch.in)
-------------------------------------------------------------------
Sun Nov 29 14:18:27 UTC 2009 - prusnak@suse.cz
- added --enable-sync to wrapper to enable bookmark sync
-------------------------------------------------------------------
* Sun Nov 29 00:00:00 UTC 2009 - tittiatcoke@gmail.com
- Update to 4.0.260
-------------------------------------------------------------------
* Fri Nov 27 00:00:00 UTC 2009 - tittiatcoke@gmail.com
- Update to 4.0.259
-------------------------------------------------------------------
* Thu Nov 26 00:00:00 UTC 2009 - tittiatcoke@gmail.com
- Update to 4.0.258
-------------------------------------------------------------------
* Tue Nov 24 00:00:00 UTC 2009 - tittatcoke@gmai.com
- In order to complete prevent the wrong v8 version to be used,
the Chromium build has been changed to having an built-in v8
-------------------------------------------------------------------
* Tue Nov 24 00:00:00 UTC 2009 - dbuck@example.com
- Re-base patches.
- Fixed a few patch errors.
- Rename some patches to better correspond with function.
- Removed some patches.
- Minor SPEC changes.
- I changed the v8 requirement to be exact, instead of greater than a specific version.
-------------------------------------------------------------------
Fri Nov 13 20:34:05 UTC 2009 - tittiatcoke@gmail.com
- update to 247.0 svn 31928
-------------------------------------------------------------------
Fri Oct 30 13:58:11 UTC 2009 - tittiatcoke@gmail.com
- update to 229.0 svn 30454
+ Fix regression where popups and app frames lost their titlebars.
+ Makes it so that when a folder is open on the bookmark bar
and the mouse moves over another folder, the menu for that
folder is shown.
+ Lazily create the find bar.
+ Polish to the gmail checker sample.
* New, crisper icons that are exactly 19x19
* Add a loading animation at the beginning before Gmail
responds.
* Fix a bug where we sometimes don't update the UI after a
logout/login cycle.
+ Refactor widget methods to support desktop notifications,
including GTK stubs.
+ Find-in-page should not ding while deleting characters.
+ Add SSL wrapper for linux and mac. This allows notifier to
use chrome's SSL layer instead of OpenSSL.
+ Add three of the six extensions to PAC that Internet Explorer supports.
+ WebSocket support in chromium. (Run with --enable-web-sockets
enables WebSocket features.)
+ Do not allow GTK File Chooser dialogs to return directories.
+ Fix the notifier SSL layer to make notifications work for
Linux Bookmark sync.
+ linux: don't override mouse selection behavior in omnibox
-------------------------------------------------------------------
Sun Oct 25 08:37:29 UTC 2009 - tittiatcoke@gmail.com
- Update to 224.4 svn 30027
+ First cut at new page and browser action docs based
on new API. Deleted old stuff.
+ Add suppression for new memory leak caused by WebKit merge 49830:49844
+ Cleanup: change PIDs to base::ProcessId (or pid_t, as appropriate)
+ Minimize dependency of user scripts
+ Fixup the flip_framer eof-handling semantics now that we have
the FIN bit in place
+ app depends on x11 because of active_window_watcher_x
+ Adding two images for the new Extension managment UI
+ Removing hard-coded Chrome Frame output path
+ Rearrange clipboard code
+ Fix crash bug when attempting to download a url with unsupported scheme,
e.g. 'data:', by 'Alt + Click'
+ GTK: Change text for extension download UI
+ Ignore invalid urls on command line
+ Make dropped tabs animate from where they were dropped.
+ Make room for the full width of the tab placeholder.
+ Make tab dragging as smooth as glass.
+ Remove an annoying NOTIMPLEMNETED
+ Extensions: guarantee removal of BROWSER_WINDOW_READY registration
+ If we're in the middle of a drag, don't allow the user to middle
click to close or right click for the context menu
+ "Fix" a NOTIMPLEMENTED on Linux by using the default password store
+ Remove +x bit from files that shouldn't have it
+ Fold first 3 channels of multichannel instead of 5. Use fixed point
+ Adding new image needed for the managment UI
+ Fix a race bug where content scripts would not apply to the first page load
+ Make escape remove a bookmark if it's just been added (but not if it already existed)
+ Fix bubbles deactivating the opaque frame
+ Allow ESC to cancel ALT+SHIFT+T in Toolbar
+ ake all pepper plugins default to windowless and transparent
+ Add styles for printing
+ Implement the new extension management UI
+ Add support for to automation interface load install and load extensions
+ GTK: theme the info bar border
+ Update V8 to version 1.3.16.1
+ Introduce WebSecurityPolicy for security related methods
+ New button scheme...borders are separate from the inner contents so
that they can be highlighted / depressed independently
+ When opening Chrome maximized with an application window already
running, the Chrome window was not activated
+ Fix compatibility problems with FileZilla FTP Server
+ Remove the extension shelf on Linux
+ Fix the proxy host and port string to start with http:// if it does not already
+ Enable HTML5 databases for all extension renderer processes
-------------------------------------------------------------------
* Sat Oct 24 00:00:00 UTC 2009 - prusnak@opensuse.org
- don't create desktop files in wrapper
- fix LD_LIBRARY_PATH (chromium-fix-wrapper.patch)
-------------------------------------------------------------------
* Tue Oct 20 00:00:00 UTC 2009 - tittiatcoke@gmail.com
- update to newer svn snapshot
+ Obsoletes fwrite patch (included upstream)
-------------------------------------------------------------------
* Fri Oct 16 00:00:00 UTC 2009 - tittiatcoke@gmail.com
- update to newer svn snapshot
+ Requires newer version of v8
-------------------------------------------------------------------
* Thu Oct 15 00:00:00 UTC 2009 - prusnak@suse.cz
- do not force SSE on x86 (drop-sse.patch)
-------------------------------------------------------------------
* Tue Oct 13 00:00:00 UTC 2009 - tittiatcoke@gmail.com
- Update to newer svn snapshot
- Fixed spec file in order to build
- Included patch to build with system zlib
-------------------------------------------------------------------
* Mon Oct 12 00:00:00 UTC 2009 - prusnak@suse.cz
- package renamed to chromium
- cleaned up spec file
-------------------------------------------------------------------
* Tue Oct 6 00:00:00 UTC 2009 - dbuck@example.com
- v8 is now built as a separate package, and is required
- included many patches to use system libraries:
v8, icu, libxml2, libxslt, libjpeg, libpng, libevent, bzip2, zlib, nspr, nss
-------------------------------------------------------------------
* Sun Oct 1 00:00:00 UTC 2009 - dbuck@example.com
- included a newer DEP than is in svn, native_client@823
- things should compile cleanly now
-------------------------------------------------------------------
* Sun Aug 31 00:00:00 UTC 2009 - dbuck@example.com
- initial build

379
chromium.spec Normal file
View File

@@ -0,0 +1,379 @@
# Thanks to malcolmlewis for help with this script
# Thanks to Tom "spot" Callaway for much of the patchwork
# Thanks to jhaygood for most of the icu patch
%define svn_rev 96902
%define v8_ver 3.5.5.0
Name: chromium
Version: 15.0.854.0
Release: 1
License: BSD
Summary: Google's opens source browser project
Group: Productivity/Networking/Web/Browsers
Source0: %{name}.%{version}.svn%{svn_rev}.tar.lzma
Source8: ffmpeg-0.6-headers.tar.bz2
Source20: chromium-vendor.patch.in
Source30: master_preferences
Source31: default_bookmarks.html
Source99: chrome-wrapper
Source100: chromium-browser.sh
Source101: chromium-browser.desktop
Source102: chromium-browser.xml
Source103: chromium-browser-rpmlintrc
Source104: chromium-icons.tar.bz2
Provides: chromium-browser = %{version}
Provides: chromium-based-browser = %{version}
Obsoletes: chromium-browser < %{version}
Obsoletes: chromium-devel <= %{version}
Obsoletes: chromium-libs <= %{version}
Provides: chromium-libs = %{version}
Conflicts: xine-browser-plugin
## Start Patches
# Many changes to the gyp systems so we can use system libraries
# PATCH-FIX-OPENSUSE Fix build with GCC 4.6
Patch1: chromium-gcc46.patch
# PATCH-FIX-OPENSUSE disable debug for sqlite
#Patch4: chromium-no-sqlite-debug.patch
# PATCH-FIX-OPENSUSE patches in system zlib library
Patch8: chromium-codechanges-zlib.patch
# PATCH-FIX-OPENSUSE disables the build of the test suite
Patch12: chromium-no-test-sources.patch
# PATCH-FIX-OPENSUSE removes build part for courgette
Patch13: chromium-no-courgette.patch
# PATCH-FIX-OPENSUSE enables reading of the master preference
Patch14: chromium-master-prefs-path.patch
# PATCH-FIX-OPENSUSE patches in system glew library
Patch17: chromium-system-glew.patch
# PATCH-FIX-OPENSUSE patches in system expat library
Patch18: chromium-system-expat.patch
# PATCH-FIX-OPENSUSE further changes to work with system zlib library
Patch19: chromium-system-zlib.patch
# PATCH-FIX-OPENSUSE disables the requirement for ffmpeg
Patch20: chromium-6.0.425.0-ffmpeg-no-pkgconfig.patch
# PATCH-FIX-OPENSUSE ensure that all media formats are being recognized
Patch21: chromium-7.0.542.0-media-probe.patch
# PATCH-FIX-OPENSUSE disable the use of tcmallic function
Patch25: tcmalloc-factory.patch
# PATCH-FIX-OPENSUSE make sure that Chrome remoting is linking against the system libvpx
Patch26: chromium-remoting-build-fix.diff
# PATCH-FIX-OPENSUSE patches in system speex library
Patch28: chromium-7.0.500.0-system-speex.patch
# PATCH-FIX-OPENSUSE patches in the system ffmpeg header files
Patch29: chromium-7.0.510.0-system-ffmpeg.patch
# PATCH-FIX-OPENSUSE patches in the system libvpx library
Patch32: chromium-7.0.542.0-system-libvpx.patch
# PATCH-FIX-OPENSUSE further changes to ensure working with the system minizip and v8 libraries
Patch34: chromium-7.0.542.0-codechanges-system-minizip-v8.patch
# PATCH-FIX-OPENSUSE remove the rpath in the libraries
Patch62: chromium-norpath.patch
# PATCH-FIX-OPENSUSE patches in the system v8 library
Patch63: chromium-6.0.406.0-system-gyp-v8.patch
%if 0%{?suse_version} > 1130
# PATCH-FIX-OPENSUSE ensure that on newer kernels the right /proc/oom_score_adj file is used
Patch99: chromium_patch_newer_kernels.patch
%endif
Patch999: buildfix.patch
BuildRequires: Mesa-devel
BuildRequires: alsa-devel
BuildRequires: bison
BuildRequires: cups-devel
BuildRequires: desktop-file-utils
BuildRequires: fdupes
BuildRequires: flex
BuildRequires: freetype2-devel
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: gperf
BuildRequires: hunspell-devel
BuildRequires: libbz2-devel
BuildRequires: libevent
BuildRequires: libexpat-devel
BuildRequires: libgnutls-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
BuildRequires: libstdc++-devel
BuildRequires: libvpx-devel
BuildRequires: libxslt-devel
BuildRequires: libzip-devel
BuildRequires: lzma
BuildRequires: mozilla-nspr-devel
BuildRequires: mozilla-nss-devel
BuildRequires: openssl-devel
BuildRequires: pam-devel
BuildRequires: perl(Switch)
BuildRequires: pkg-config
BuildRequires: pkgconfig(cairo) >= 1.6
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(gconf-2.0)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gtk+-2.0)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: python
BuildRequires: python-xml
BuildRequires: sqlite3-devel
BuildRequires: update-desktop-files
BuildRequires: v8-devel = %{v8_ver}
BuildRequires: wdiff
BuildRequires: zlib-devel
BuildRequires: libpulse-devel
%if 0%{?suse_version} > 1120
BuildRequires: libgnome-keyring-devel
%else
BuildRequires: gnome-keyring-devel
%endif
%if 0%{?suse_version} > 1130
BuildRequires: python-devel
%endif
%if 0%{?suse_version} >= 1110
BuildRequires: libevent-devel
BuildRequires: libicu-devel >= 4.0
%endif
BuildRequires: speex-devel
BuildRequires: hicolor-icon-theme
Requires: alsa
Requires: xdg-utils
Requires: libv8-3 = %{v8_ver}
Requires: hicolor-icon-theme
Requires: update-alternatives
Recommends: Chromium-password
# Recommends the chromium-ffmpeg library (available from packman)
Recommends: chromium-ffmpeg = %{version}
%if 0%{?suse_version} < 1120
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%endif
%description
Chromium is the open-source project behind Google Chrome. We invite you to join us in our effort to help build a safer, faster, and more stable way for all Internet users to experience the web, and to create a powerful platform for developing a new generation of web applications.
%package desktop-kde
Summary: Update to chromium to use KDE's kwallet to store passwords
Group: Productivity/Networking/Web/Browsers
supplements: packageand(chromium:kdebase4-session)
conflicts: chromium-desktop-gnome
Provides: Chromium-password
%description desktop-kde
By using the openSUSE update-alternatives the password store for Chromium is changed to utilize
KDE's kwallet. Please be aware that by this change the old password are no longer accessible and
are also not converted to kwallet.
%package desktop-gnome
Summary: Update to chromium to use Gnome keyring to store passwords
Group: Productivity/Networking/Web/Browsers
supplements: packageand(chromium:gnome-session)
conflicts: chromium-desktop-kde
Provides: Chromium-password
%description desktop-gnome
By using the openSUSE update-alternatives the password store for Chromium is changed to utilize
Gnome's Keyring. Please be aware that by this change the old password are no longer accessible and
are also not converted to Gnome's Keyring.
%prep
lzma -cd %{SOURCE0} | tar xf -
%setup -D -T -n %{name}-suse
%patch1 -p1
%patch62 -p1
%patch63 -p1
%patch8 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch25 -p1
%patch26 -p1
%patch28 -p1
%patch29 -p1
%patch32 -p1
%patch34 -p1
%if 0%{?suse_version} > 1130
%patch99 -p1
%endif
%patch999 -p1
pushd src/third_party/ffmpeg/
tar xf %{SOURCE8}
popd
rm -rf src/third_party/speex/
# apply vendor patch after substitution
sed "s:RPM_VERSION:%{version}:" %{SOURCE20} | patch -p0
%build
## create make files
PARSED_OPT_FLAGS=`echo \'%{optflags} -DUSE_SYSTEM_LIBEVENT -fPIC -fno-ipa-cp -fno-strict-aliasing \' | sed "s/ /',/g" | sed "s/',/', '/g"`
for i in src/build/common.gypi; do
sed -i "s|'-march=pentium4',||g" $i
sed -i "s|'-mfpmath=sse',||g" $i
sed -i "s|'-O<(debug_optimize)',||g" $i
sed -i "s|'-m32',||g" $i
sed -i "s|'-fno-exceptions',|$PARSED_OPT_FLAGS|g" $i
sed -i "s|'-Werror'|'-Wno-error'|g" $i
done
# '
pushd src
./build/gyp_chromium -f make build/all.gyp \
-Dlinux_sandbox_path=%{_libdir}/chromium/chrome-sandbox \
-Dlinux_sandbox_chrome_path=%{_libdir}/chromium/chromium-browser \
-Duse_openssl=0 \
-Duse_system_ffmpeg=1 \
-Duse_system_zlib=1 \
-Duse_system_libpng=1 \
-Duse_system_bzip2=1 \
-Duse_system_libbz2=1 \
-Duse_system_libjpeg=1 \
-Duse_system_libxml=1 \
-Duse_system_libxslt=1 \
-Duse_system_libevent=1 \
-Duse_system_vpx=1 \
-Dremove_webcore_debug_symbols=1 \
%if 0
-Duse_system_v8=1 \
%endif
-Dproprietary_codecs=1 \
-Djavascript_engine=v8 \
-Dlinux_fpic=1 \
-Ddisable_sse2=1 \
%ifarch x86_64
-Dtarget_arch=x64 \
%endif
-Dno_strict_aliasing=1 \
-Drelease_extra_cflags=-fPIC
make -r %{?_smp_mflags} chrome V=1 BUILDTYPE=Release
popd
%install
mkdir -p %{buildroot}%{_libdir}/chromium/
install -m 755 %{SOURCE100} %{buildroot}%{_libdir}/chromium/chromium-generic
# x86_64 capable systems need this
sed -i "s|/usr/lib/chromium|%{_libdir}/chromium|g" %{buildroot}%{_libdir}/chromium/chromium-generic
#update the password-store settings for each alternative
sed "s|password-store=detect|password-store=kwallet|g" %{buildroot}%{_libdir}/chromium/chromium-generic > %{buildroot}%{_libdir}/chromium/chromium-kde
sed "s|password-store=detect|password-store=gnome|g" %{buildroot}%{_libdir}/chromium/chromium-generic > %{buildroot}%{_libdir}/chromium/chromium-gnome
mkdir -p %{buildroot}%{_mandir}/man1/
pushd src/out/Release
cp -a chrome.pak locales resources xdg-settings %{buildroot}%{_libdir}/chromium/
cp -a resources.pak %{buildroot}%{_libdir}/chromium/
cp -a chrome %{buildroot}%{_libdir}/chromium/chromium
#cp -a lib.target/lib*.so %{buildroot}%{_libdir}/chromium/
#cp -a lib.host/lib*.so %{buildroot}%{_libdir}/chromium/
cp -a chrome.1 %{buildroot}%{_mandir}/man1/chrome.1
cp -a chrome.1 %{buildroot}%{_mandir}/man1/chromium.1
%fdupes %{buildroot}%{_mandir}/man1/
popd
mkdir -p %{buildroot}%{_datadir}/icons/
pushd %{buildroot}%{_datadir}/icons/
tar -xjf %{SOURCE104}
mv oxygen hicolor
popd
mkdir -p %{buildroot}%{_datadir}/applications/
desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE101}
mkdir -p %{buildroot}%{_datadir}/gnome-control-center/default-apps/
cp -a %{SOURCE102} %{buildroot}%{_datadir}/gnome-control-center/default-apps/
# link to browser plugin path. Plugin patch doesn't work. Why?
mkdir -p %{buildroot}%{_libdir}/browser-plugins
pushd %{buildroot}%{_libdir}/%{name}
ln -s %{_libdir}/browser-plugins plugins
# Install the master_preferences file
mkdir -p %{buildroot}%{_sysconfdir}/%{name}
install -m 0644 %{SOURCE30} %{buildroot}%{_sysconfdir}/%{name}
install -m 0644 %{SOURCE31} %{buildroot}%{_sysconfdir}/%{name}
%clean
rm -rf %{buildroot}
%pre
if [ -f /usr/bin/chromium ] ; then
rm -v /usr/bin/chromium ;
fi
# Add snipplets to update the GTK cache on package install.
%if 0%{?suse_version} >= 1140
%post
%icon_theme_cache_post
update-alternatives --install %{_bindir}/chromium chromium %{_libdir}/chromium/chromium-generic 10
%postun
%icon_theme_cache_postun
update-alternatives --remove all chromium
%endif
%if 0%{?suse_version} < 1140
%post
update-alternatives --install %{_bindir}/chromium chromium %{_libdir}/chromium/chromium-generic 10
%postun
update-alternatives --remove all chromium
%endif
%post desktop-kde
update-alternatives --install %{_bindir}/chromium chromium %{_libdir}/chromium/chromium-kde 15
update-alternatives --auto chromium
%postun desktop-kde
update-alternatives --remove %{_bindir}/chromium %{_libdir}/chromium/chromium-kde
update-alternatives --auto chromium
%post desktop-gnome
update-alternatives --install %{_bindir}/chromium chromium %{_libdir}/chromium/chromium-gnome 15
update-alternatives --auto chromium
%postun desktop-gnome
update-alternatives --remove %{_bindir}/chromium %{_libdir}/chromium/chromium-gnome
update-alternatives --auto chromium
# Files!
%files
%defattr(-,root,root,-)
%config %{_sysconfdir}/%{name}
%dir %{_datadir}/gnome-control-center
%dir %{_datadir}/gnome-control-center/default-apps
%dir %{_libdir}/chromium/
%{_libdir}/chromium/chromium
%{_libdir}/chromium/chromium-generic
%{_libdir}/chromium/plugins/
%{_libdir}/chromium/resources/
%{_libdir}/chromium/xdg-settings
%{_mandir}/man1/chrom*
%{_datadir}/applications/*.desktop
%{_datadir}/gnome-control-center/default-apps/chromium-browser.xml
%{_datadir}/icons/hicolor/
%{_libdir}/chromium/chrome.pak
%{_libdir}/chromium/resources.pak
%{_libdir}/chromium/locales/
%files desktop-kde
%attr(755, root, root) %{_libdir}/chromium/chromium-kde
%files desktop-gnome
%attr(755, root, root) %{_libdir}/chromium/chromium-gnome
%changelog

View File

@@ -0,0 +1,11 @@
--- chromium/src/base/process_util_linux.cc 2011-03-03 19:19:41.840017366 +0100
+++ chromium/src/base/process_util_linux.cc 2011-03-03 19:19:41.840017366 +0100
@@ -702,7 +702,7 @@
FilePath oom_adj("/proc");
oom_adj = oom_adj.Append(base::Int64ToString(process));
- oom_adj = oom_adj.AppendASCII("oom_adj");
+ oom_adj = oom_adj.AppendASCII("oom_score_adj");
if (!file_util::PathExists(oom_adj))
return false;

38
default_bookmarks.html Normal file
View File

@@ -0,0 +1,38 @@
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<!-- This is an automatically generated file.
It will be read and overwritten.
DO NOT EDIT! -->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks Menu</H1>
<DL><p>
<DT><A HREF="place:folder=BOOKMARKS_MENU&folder=UNFILED_BOOKMARKS&folder=TOOLBAR&sort=12&excludeQueries=1&excludeItemIfParentHasAnnotation=livemark%2FfeedURI&maxResults=10&queryType=1">Recently Bookmarked</A>
<DT><A HREF="place:sort=14&type=6&maxResults=10&queryType=1">Recent Tags</A>
<HR>
<DT><A HREF="http://en-us.add-ons.mozilla.com/en-US/firefox/bookmarks/" ADD_DATE="1273256552" LAST_MODIFIED="1273256552" ICON_URI="http://www.mozilla.org/2005/made-up-favicon/0-1273256552642492" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADGUlEQVQ4jXWTXUxTZxjH33jBhRfGkGXGEC+M8dYbL7z0eiZL5sWJQqJuwnAz26CKxgrGN1Iwa/lwCVmDDJBZQNsdYlCraGlUSu0X/ZDak67tWmxpWjh9Szk9tJue/ncBG6LbL/nfPf/f81y8LyEf0EjpdpVGU9Ok0x1o6tQdaurUHfq2Q3eg4XLHrs8b6fYP59+Dbmvu6N19pd9QN2wRUg/9mbcvYhKskVXcdaTfdt97HT+j/fUIp6LVhNBtH5VVmp6aLpOdfxFllbnFEjypNbjeyLDFi7BGJDwWChh1ZZSWgZmR2ssdu7ZIvmymO3sn5qZ8iyXMZ8oIZsuYz5ThS5fgSsqYiRVhCUt4ECyA9zNcvOUw156nnxBCCOE4WqX++f4XjgUJrzJlCMtlhHN/YirEYA7mMBkQMZuQYY1IMIcKmAjkcdu5jHqtieM4WkXqVbT6l+lowrtYQjC7Xo7l/8JTgeEfhEwJ1uimYNzDcNUUTB5toZ+Ss63de8wB8Z0ntYb5TBlTrxmeCAxToa2C6XAB5lAB/Iagz5JSjl1o30ca2nR7n0clOJMyfOkSzMEc/g93ogjezzDqZhiwZVH3Q/t+0tCi2/tUWIEtXoQzuYbJgAhFqUBRlI/ijBdh9DIY3DkM2JbWBd+0amp475JijUqYiRUxm5BhXyiC9y3/u9mblOFOyJiNSRj3MIw4RfxkSSnHz2r2EE5Fq/WPf889EgqwhCVMRyRYoxLuupdQqQCVCuBKyJgI5HFnjuG2K4chu4h2PsS4elpNOI5Wnes1dfIBhgfBFZhDhY2swp2Q4YxLsP8h4c7c+unDL0XctGVxRmvScRytIoQQclKlqek0+sK8n4EP5DGxkd/8DEYvw5h7szwwu4w2g2fh2IX2fVue8lfqnsPXxpzBEXu2Mu5hGPMwjLpzMLhyGHGIGHopQv88jVaDI16n1h7h6Mb29yV157sONncZ+7vuR/L6Z2ll2CFi0C6iz7Ko/DgpFL/rNhpr1drD/1He5LPv6Y4Tl25w9Vf62r6mN/WNmsH+01f110+qe06t/8St/A10n5SW/zQjywAAAABJRU5ErkJggg==">Get Bookmark Add-ons</A>
<DT><H3 ADD_DATE="1273256552" LAST_MODIFIED="1273256742" PERSONAL_TOOLBAR_FOLDER="true">Bookmarks Toolbar</H3>
<DD>Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar
<DL><p>
<DT><H3 ADD_DATE="1273256552" LAST_MODIFIED="1273256552">openSUSE</H3>
<DL><p>
<DT><A HREF="http://www.opensuse.org/" ADD_DATE="1273256552" LAST_MODIFIED="1273256552" ICON_URI="http://www.opensuse.org/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABSklEQVQ4jZWToY6EMBCGeRlegCfgBfYJEGg0CQZbu+IQSJAoEtyFChIQGwIC0YRwSQXJgkAgFoFY859qc9wBu9dkxCTtN/1n/lEAmH5twK8NRMxB3ofgc4k3j6lUY4zr7QKbqn/Crw2k3MOwtIcEZe/hXpBCR8o9rM/H/wBupiFiDoLGgptpcDMN1Ri/B7jeLmATRdBYiJgDNlEpd17vrwF8Ljf9ENVtqiJizjlANNCmKoLGAp9LkELfQNfn4xhACl1WO/pVNcZbACn0zeVqjOHXhsyFT0QeNNYWkHIPbKIS5GaaNBafSynpZ8ENwM00Oeszg4kezet9vwdi9sPSYlha5H0ovSCcWY0xko68NhIpdCQdQco9pNxDxBy4mQabqsj78H0r/46gsc7HeCZNuBAAlM+vD7MaY6TcQ9IRiNX2a0NqzvvwaCPNb8+My7ifNoCEAAAAAElFTkSuQmCC" LAST_CHARSET="UTF-8">openSUSE</A>
<DT><A HREF="http://en.opensuse.org/documentation/" ADD_DATE="1273256552" LAST_MODIFIED="1273256552" ICON_URI="http://www.mozilla.org/2005/made-up-favicon/2-1273256552647245" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABSklEQVQ4jZWToY6EMBCGeRlegCfgBfYJEGg0CQZbu+IQSJAoEtyFChIQGwIC0YRwSQXJgkAgFoFY859qc9wBu9dkxCTtN/1n/lEAmH5twK8NRMxB3ofgc4k3j6lUY4zr7QKbqn/Crw2k3MOwtIcEZe/hXpBCR8o9rM/H/wBupiFiDoLGgptpcDMN1Ri/B7jeLmATRdBYiJgDNlEpd17vrwF8Ljf9ENVtqiJizjlANNCmKoLGAp9LkELfQNfn4xhACl1WO/pVNcZbACn0zeVqjOHXhsyFT0QeNNYWkHIPbKIS5GaaNBafSynpZ8ENwM00Oeszg4kezet9vwdi9sPSYlha5H0ovSCcWY0xko68NhIpdCQdQco9pNxDxBy4mQabqsj78H0r/46gsc7HeCZNuBAAlM+vD7MaY6TcQ9IRiNX2a0NqzvvwaCPNb8+My7ifNoCEAAAAAElFTkSuQmCC" LAST_CHARSET="UTF-8">openSUSE Documentation</A>
<DT><A HREF="http://software.opensuse.org/" ADD_DATE="1273256552" LAST_MODIFIED="1273256552" ICON_URI="http://www.mozilla.org/2005/made-up-favicon/3-1273256552648253" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABSklEQVQ4jZWToY6EMBCGeRlegCfgBfYJEGg0CQZbu+IQSJAoEtyFChIQGwIC0YRwSQXJgkAgFoFY859qc9wBu9dkxCTtN/1n/lEAmH5twK8NRMxB3ofgc4k3j6lUY4zr7QKbqn/Crw2k3MOwtIcEZe/hXpBCR8o9rM/H/wBupiFiDoLGgptpcDMN1Ri/B7jeLmATRdBYiJgDNlEpd17vrwF8Ljf9ENVtqiJizjlANNCmKoLGAp9LkELfQNfn4xhACl1WO/pVNcZbACn0zeVqjOHXhsyFT0QeNNYWkHIPbKIS5GaaNBafSynpZ8ENwM00Oeszg4kezet9vwdi9sPSYlha5H0ovSCcWY0xko68NhIpdCQdQco9pNxDxBy4mQabqsj78H0r/46gsc7HeCZNuBAAlM+vD7MaY6TcQ9IRiNX2a0NqzvvwaCPNb8+My7ifNoCEAAAAAElFTkSuQmCC" LAST_CHARSET="UTF-8">openSUSE Download</A>
<DT><A FEEDURL="http://news.opensuse.org/?feed=rss2" HREF="http://news.opensuse.org/">openSUSE News</A>
<DT><A HREF="http://wiki.opensuse.org/Portal:How_to_participate" ADD_DATE="1273256552" LAST_MODIFIED="1273256552" ICON_URI="http://www.mozilla.org/2005/made-up-favicon/4-1273256552650167" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABSklEQVQ4jZWToY6EMBCGeRlegCfgBfYJEGg0CQZbu+IQSJAoEtyFChIQGwIC0YRwSQXJgkAgFoFY859qc9wBu9dkxCTtN/1n/lEAmH5twK8NRMxB3ofgc4k3j6lUY4zr7QKbqn/Crw2k3MOwtIcEZe/hXpBCR8o9rM/H/wBupiFiDoLGgptpcDMN1Ri/B7jeLmATRdBYiJgDNlEpd17vrwF8Ljf9ENVtqiJizjlANNCmKoLGAp9LkELfQNfn4xhACl1WO/pVNcZbACn0zeVqjOHXhsyFT0QeNNYWkHIPbKIS5GaaNBafSynpZ8ENwM00Oeszg4kezet9vwdi9sPSYlha5H0ovSCcWY0xko68NhIpdCQdQco9pNxDxBy4mQabqsj78H0r/46gsc7HeCZNuBAAlM+vD7MaY6TcQ9IRiNX2a0NqzvvwaCPNb8+My7ifNoCEAAAAAElFTkSuQmCC" LAST_CHARSET="UTF-8">How To participate in openSUSE</A>
<DT><A HREF="http://forums.opensuse.org/" ADD_DATE="1273256552" LAST_MODIFIED="1273256552" ICON_URI="http://www.mozilla.org/2005/made-up-favicon/5-1273256552651242" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABSklEQVQ4jZWToY6EMBCGeRlegCfgBfYJEGg0CQZbu+IQSJAoEtyFChIQGwIC0YRwSQXJgkAgFoFY859qc9wBu9dkxCTtN/1n/lEAmH5twK8NRMxB3ofgc4k3j6lUY4zr7QKbqn/Crw2k3MOwtIcEZe/hXpBCR8o9rM/H/wBupiFiDoLGgptpcDMN1Ri/B7jeLmATRdBYiJgDNlEpd17vrwF8Ljf9ENVtqiJizjlANNCmKoLGAp9LkELfQNfn4xhACl1WO/pVNcZbACn0zeVqjOHXhsyFT0QeNNYWkHIPbKIS5GaaNBafSynpZ8ENwM00Oeszg4kezet9vwdi9sPSYlha5H0ovSCcWY0xko68NhIpdCQdQco9pNxDxBy4mQabqsj78H0r/46gsc7HeCZNuBAAlM+vD7MaY6TcQ9IRiNX2a0NqzvvwaCPNb8+My7ifNoCEAAAAAElFTkSuQmCC" LAST_CHARSET="UTF-8">openSUSE Forums</A>
<DT><A FEEDURL="http://www.planetsuse.org/rss20.xml" HREF="http://planet.opensuse.org/">Planet SUSE</A>
</DL><p>
<DT><A FEEDURL="http://en-us.fxfeeds.mozilla.com/en-US/firefox/headlines.xml" HREF="http://news.bbc.co.uk/go/rss/-/2/hi/default.stm">Latest Headlines</A>
<HR>
<DT><H3 ADD_DATE="1273256722" LAST_MODIFIED="1273256951">Chromium</H3>
<DL><p>
<DT><A HREF="http://dev.chromium.org/for-testers/bug-reporting-guidelines" ADD_DATE="1273256788" ICON_URI="http://www.gstatic.com/sites/p/0d68f1/system/app/images/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC3ElEQVQ4jW3S3WtTBxiA8dz4B3inNwNvTJ3YDmstWHGotNVMWcsqRNm60Q8ZQ9FdbKDsZgOhoBOGC/Qj0NJSMB6wJqsm5ixZT0J6TrO1VYaBUpNjzrGH1PQkbdeUJP14vNCmluWF9/aBH+9rWbSdxTxzhvmGBrSTJ5k9fpx/a48yVX2Y6CdVKJWHUKoqeVBRgaXcpBsbKbx8Se7FC8xgEH1wkFBVJU8PHmT0QAUjFVYe7N/Pfau1fOD1qVM8bmujfaaD9lgbl5+38d1kB9eVTr4Pd3L1r1a+9V+i03uBjtEvaBlo3BkyDANJkvjq2UXS+TfoOY3nC//gnnXR7rtA65PPufj0HHavDfuTs3zmPLEzoOs6gUCAS1ITXwab+drXTMdoM60Pz9N8/zQNA3V82ltL3e811N2t5sTtmp2BZDJJMBjEMAwAFEWhezJL39QifVOL9E4u0j2ZxfF3hp/H3vBTIMW1xzpXPEmO/TaORVVVRFFE13UA+vv7uRfNkiuss/J+/8uv8eeMyQ/e11z1vKJdmOUb1wxH7oSwJBIJRFEkmUwCEIlE6IoscCuU5pexFDf8c/zo07niSWDrm+K0Q6H21zBH7khU3w5hicfj+Hw+VFUFwOl0ljgfzsbGBsVikXw+TzabJZPJEIlE3hH8fj+JRAKAUChU4ni9XjY3N7Hb7bS0tNDU1ITNZqO+vp50Ok00GsUSi8UQBIF4PE6xWKSnp6fEAVhbW6NQKLCyssLS0hKmaZJKpTAMA1mWty+iqir5fB5Jkkocj8fD6uoqLpeLoaEhNE1Dv3mTwJ49fNQ1ztiYtB2IxWJMT08zMjJS4qyvr7O8vIxpmszPz6NpGuNWKw937WJv5GO8fm/5997iCIKAaZo4nU4cDgeappH7w0JmyMJu/z4euR+VD2xxcrkcqVSKubk5NE373wqCUD6wxZmYmECWZRRFQZZlZFkmHA4jiiJut5vh4WHeAhqappiWhSp5AAAAAElFTkSuQmCC">Bug Life Cycle and Reporting Guidelines (The Chromium Projects)</A>
<DT><A HREF="http://code.google.com/chromium/" ADD_DATE="1273256762" ICON_URI="http://code.google.com/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADRUlEQVQ4jSXT60/VdQDH8c/vd7AlI4EHtjW0WCs1i7U2i8u54GWxYDVtpkabumX5JLs86oLYEgRDQjAIBbsYayTmCjDQMwsrtcgxUBdWkNyyJDkCB9jRw+/8vu8e8OD9D7y2tyTJiUFX/wipWxuJe/pzSo9fwiVGNDzB2ewsei0xa9u4Eq5sIpYYl5AkxRwwwLriU2hTEHtbFwte/I6//p0CEyPyWy/XE+JxJYzlwbVExBIhxTFkCwE4jsMDO9rRtk60vQfl/0jxN5fBgInBUE4OUVnEPCJqWUzKw5glBiVkXCAG3sIO7M0/Y2/vxH7hHJv2dwMOAFfXr2NGcWAJVx6mLfGPRJ/tQeACLkVNl9H6IHEvXcB+/nvyqzpxMXAbfnloGT/dcwctS5JpT02mK2kew7botYT6h29igNFwhGU72tBzp1mwOUiw5xoGqGs5zOI3UtFH6Xhq/ajay/yyJ8h6OY19DyeipVs+43jHFXANE1NRjpwZoG/kJi6GklN1qOgRPPVePIeyUG06qs3EOpCFqrOx9q5GCzceJWntx6x+vZE9DR1zajic6fsV+6370OHHUV06qk/HqvFh1fhQZQZWuR9rbwAtzW9g0YYvuDPvU5KfOsTgaBhjDMOhayypfxbVpGEfzMQ+6EU1GdgferEq/djlflSWge7P3U/Glk/Y+G4rr1X9QE/fOC4Gg8vY1Bg5R1/BqkhDtT5U7Z2r0o/2+dEeP2o8fZGxcRcDzE72Mnq1mYGeWm5N3wBgNuaQ2/gqVsVyVJ2BqrzY5ZnofR8q8SFcmP7vIt3NGQw2x/N3mxj52uZK03LCoT/BxPh9dIi7SrNRVSaeD3zYZX5UEkC7A+i2M0NXYzoT3wpz3sY5G0+kYz43jon+5jyMMZgYPHhgAypbgSq8qNTPvN1rsHYF0FRogD8aUrgVTCIcTGCqLZHJ1kRmTqRw/atHITpNxDEsLslDpZnYJatQqQ/7vZVopx85McPgya2EvkxgsuVuwq0LmTmRQvjYvYyfK8QATRdO4nnzMaxiL56ibLQrgAoC6J01c0c6MyHGzhcy0b6WcMuTTLQ/Q6S7mqgT4dLwAIvezkUFK7ALs1HhSrTThwpWIUn/A1g/hnpCRmiJAAAAAElFTkSuQmCC">Chromium - Google Code</A>
<DT><A HREF="http://blog.chromium.org/" ADD_DATE="1273256696" ICON_URI="http://www.blogger.com/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAiUlEQVQ4jWNggIJ/aUz/ScEMyIBUzSiGkKsZbgiG4L6+//++vfv/798/BD637v+/IiEiDNjXh6oRGd/aR4QByDbPi4NgZLEmIwIGwBSuykOIzYtDiG9qwjAEuwGEMO0NQPYCDK/KI8IAbIEIwzDxb+/IjEYY3tdHRkKC2YymGbsB9MwPFOVImD4AmSK780dhlOYAAAAASUVORK5CYII=">Chromium Blog</A>
<DT><A HREF="http://dev.chromium.org/getting-involved" ADD_DATE="1273256924" ICON_URI="http://www.gstatic.com/sites/p/0d68f1/system/app/images/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAC3ElEQVQ4jW3S3WtTBxiA8dz4B3inNwNvTJ3YDmstWHGotNVMWcsqRNm60Q8ZQ9FdbKDsZgOhoBOGC/Qj0NJSMB6wJqsm5ixZT0J6TrO1VYaBUpNjzrGH1PQkbdeUJP14vNCmluWF9/aBH+9rWbSdxTxzhvmGBrSTJ5k9fpx/a48yVX2Y6CdVKJWHUKoqeVBRgaXcpBsbKbx8Se7FC8xgEH1wkFBVJU8PHmT0QAUjFVYe7N/Pfau1fOD1qVM8bmujfaaD9lgbl5+38d1kB9eVTr4Pd3L1r1a+9V+i03uBjtEvaBlo3BkyDANJkvjq2UXS+TfoOY3nC//gnnXR7rtA65PPufj0HHavDfuTs3zmPLEzoOs6gUCAS1ITXwab+drXTMdoM60Pz9N8/zQNA3V82ltL3e811N2t5sTtmp2BZDJJMBjEMAwAFEWhezJL39QifVOL9E4u0j2ZxfF3hp/H3vBTIMW1xzpXPEmO/TaORVVVRFFE13UA+vv7uRfNkiuss/J+/8uv8eeMyQ/e11z1vKJdmOUb1wxH7oSwJBIJRFEkmUwCEIlE6IoscCuU5pexFDf8c/zo07niSWDrm+K0Q6H21zBH7khU3w5hicfj+Hw+VFUFwOl0ljgfzsbGBsVikXw+TzabJZPJEIlE3hH8fj+JRAKAUChU4ni9XjY3N7Hb7bS0tNDU1ITNZqO+vp50Ok00GsUSi8UQBIF4PE6xWKSnp6fEAVhbW6NQKLCyssLS0hKmaZJKpTAMA1mWty+iqir5fB5Jkkocj8fD6uoqLpeLoaEhNE1Dv3mTwJ49fNQ1ztiYtB2IxWJMT08zMjJS4qyvr7O8vIxpmszPz6NpGuNWKw937WJv5GO8fm/5997iCIKAaZo4nU4cDgeappH7w0JmyMJu/z4euR+VD2xxcrkcqVSKubk5NE373wqCUD6wxZmYmECWZRRFQZZlZFkmHA4jiiJut5vh4WHeAhqappiWhSp5AAAAAElFTkSuQmCC">Getting Involved (The Chromium Projects)</A>
<DT><A HREF="http://www.google.com/support/forum/p/Chrome" ADD_DATE="1273256938" ICON_URI="http://www.google.com/favicon.ico" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADRUlEQVQ4jSXT60/VdQDH8c/vd7AlI4EHtjW0WCs1i7U2i8u54GWxYDVtpkabumX5JLs86oLYEgRDQjAIBbsYayTmCjDQMwsrtcgxUBdWkNyyJDkCB9jRw+/8vu8e8OD9D7y2tyTJiUFX/wipWxuJe/pzSo9fwiVGNDzB2ewsei0xa9u4Eq5sIpYYl5AkxRwwwLriU2hTEHtbFwte/I6//p0CEyPyWy/XE+JxJYzlwbVExBIhxTFkCwE4jsMDO9rRtk60vQfl/0jxN5fBgInBUE4OUVnEPCJqWUzKw5glBiVkXCAG3sIO7M0/Y2/vxH7hHJv2dwMOAFfXr2NGcWAJVx6mLfGPRJ/tQeACLkVNl9H6IHEvXcB+/nvyqzpxMXAbfnloGT/dcwctS5JpT02mK2kew7botYT6h29igNFwhGU72tBzp1mwOUiw5xoGqGs5zOI3UtFH6Xhq/ajay/yyJ8h6OY19DyeipVs+43jHFXANE1NRjpwZoG/kJi6GklN1qOgRPPVePIeyUG06qs3EOpCFqrOx9q5GCzceJWntx6x+vZE9DR1zajic6fsV+6370OHHUV06qk/HqvFh1fhQZQZWuR9rbwAtzW9g0YYvuDPvU5KfOsTgaBhjDMOhayypfxbVpGEfzMQ+6EU1GdgferEq/djlflSWge7P3U/Glk/Y+G4rr1X9QE/fOC4Gg8vY1Bg5R1/BqkhDtT5U7Z2r0o/2+dEeP2o8fZGxcRcDzE72Mnq1mYGeWm5N3wBgNuaQ2/gqVsVyVJ2BqrzY5ZnofR8q8SFcmP7vIt3NGQw2x/N3mxj52uZK03LCoT/BxPh9dIi7SrNRVSaeD3zYZX5UEkC7A+i2M0NXYzoT3wpz3sY5G0+kYz43jon+5jyMMZgYPHhgAypbgSq8qNTPvN1rsHYF0FRogD8aUrgVTCIcTGCqLZHJ1kRmTqRw/atHITpNxDEsLslDpZnYJatQqQ/7vZVopx85McPgya2EvkxgsuVuwq0LmTmRQvjYvYyfK8QATRdO4nnzMaxiL56ibLQrgAoC6J01c0c6MyHGzhcy0b6WcMuTTLQ/Q6S7mqgT4dLwAIvezkUFK7ALs1HhSrTThwpWIUn/A1g/hnpCRmiJAAAAAElFTkSuQmCC">Google Chrome Help</A>
</DL><p>
</DL><p>
</DL><p>

BIN
esbuild-0.24.0-vendor.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

BIN
esbuild-0.24.0.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

10
exclude_ymp.patch Normal file
View File

@@ -0,0 +1,10 @@
--- a/third_party/blink/common/mime_util/mime_util.cc 2013-08-25 10:12:05.428599992 +0200
+++ b/third_party/blink/common/mime_util/mime_util.cc 2013-08-25 10:12:05.428599992 +0200
@@ -79,6 +79,7 @@
"text/x-csv",
"text/x-vcf",
"text/rtf",
+ "text/x-suse-ymp",
"text/comma-separated-values",
"text/csv",
"text/tab-separated-values",

BIN
ffmpeg-0.6-headers.tar.bz2 (Stored with Git LFS) Normal file

Binary file not shown.

View File

@@ -0,0 +1,304 @@
From 6e554a30893150793c2638e3689cf208ffc8e375 Mon Sep 17 00:00:00 2001
From: Dale Curtis <dalecurtis@chromium.org>
Date: Sat, 2 Apr 2022 05:13:53 +0000
Subject: [PATCH] Roll src/third_party/ffmpeg/ 574c39cce..32b2d1d526 (1125
commits)
https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/574c39cce323..32b2d1d526
Created with:
roll-dep src/third_party/ffmpeg
Fixed: 1293918
Cq-Include-Trybots: luci.chromium.try:mac_chromium_asan_rel_ng,linux_chromium_asan_rel_ng,linux_chromium_chromeos_asan_rel_ng
Change-Id: I41945d0f963e3d1f65940067bac22f63b68e37d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3565647
Auto-Submit: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#988253}
---
.../clear_key_cdm/ffmpeg_cdm_audio_decoder.cc | 29 ++++++++++---------
media/ffmpeg/ffmpeg_common.cc | 11 +++----
media/filters/audio_file_reader.cc | 9 +++---
media/filters/audio_file_reader_unittest.cc | 6 ++--
.../filters/audio_video_metadata_extractor.cc | 11 +++++--
.../filters/ffmpeg_aac_bitstream_converter.cc | 7 +++--
...ffmpeg_aac_bitstream_converter_unittest.cc | 2 +-
media/filters/ffmpeg_audio_decoder.cc | 13 +++++----
8 files changed, 51 insertions(+), 37 deletions(-)
diff --git a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
index e4fc3f460e2..9b1ad9f7675 100644
--- a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
+++ b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
@@ -74,7 +74,7 @@ void CdmAudioDecoderConfigToAVCodecContext(
codec_context->sample_fmt = AV_SAMPLE_FMT_NONE;
}
- codec_context->channels = config.channel_count;
+ codec_context->ch_layout.nb_channels = config.channel_count;
codec_context->sample_rate = config.samples_per_second;
if (config.extra_data) {
@@ -124,8 +124,8 @@ void CopySamples(cdm::AudioFormat cdm_format,
case cdm::kAudioFormatPlanarS16:
case cdm::kAudioFormatPlanarF32: {
const int decoded_size_per_channel =
- decoded_audio_size / av_frame.channels;
- for (int i = 0; i < av_frame.channels; ++i) {
+ decoded_audio_size / av_frame.ch_layout.nb_channels;
+ for (int i = 0; i < av_frame.ch_layout.nb_channels; ++i) {
memcpy(output_buffer, av_frame.extended_data[i],
decoded_size_per_channel);
output_buffer += decoded_size_per_channel;
@@ -185,13 +185,14 @@ bool FFmpegCdmAudioDecoder::Initialize(
// Success!
decoding_loop_ = std::make_unique<FFmpegDecodingLoop>(codec_context_.get());
samples_per_second_ = config.samples_per_second;
- bytes_per_frame_ = codec_context_->channels * config.bits_per_channel / 8;
+ bytes_per_frame_ =
+ codec_context_->ch_layout.nb_channels * config.bits_per_channel / 8;
output_timestamp_helper_ =
std::make_unique<AudioTimestampHelper>(config.samples_per_second);
is_initialized_ = true;
// Store initial values to guard against midstream configuration changes.
- channels_ = codec_context_->channels;
+ channels_ = codec_context_->ch_layout.nb_channels;
av_sample_format_ = codec_context_->sample_fmt;
return true;
@@ -291,17 +292,19 @@ cdm::Status FFmpegCdmAudioDecoder::DecodeBuffer(
for (auto& frame : audio_frames) {
int decoded_audio_size = 0;
if (frame->sample_rate != samples_per_second_ ||
- frame->channels != channels_ || frame->format != av_sample_format_) {
+ frame->ch_layout.nb_channels != channels_ ||
+ frame->format != av_sample_format_) {
DLOG(ERROR) << "Unsupported midstream configuration change!"
<< " Sample Rate: " << frame->sample_rate << " vs "
- << samples_per_second_ << ", Channels: " << frame->channels
- << " vs " << channels_ << ", Sample Format: " << frame->format
- << " vs " << av_sample_format_;
+ << samples_per_second_
+ << ", Channels: " << frame->ch_layout.nb_channels << " vs "
+ << channels_ << ", Sample Format: " << frame->format << " vs "
+ << av_sample_format_;
return cdm::kDecodeError;
}
decoded_audio_size = av_samples_get_buffer_size(
- nullptr, codec_context_->channels, frame->nb_samples,
+ nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples,
codec_context_->sample_fmt, 1);
if (!decoded_audio_size)
continue;
@@ -320,9 +323,9 @@ bool FFmpegCdmAudioDecoder::OnNewFrame(
size_t* total_size,
std::vector<std::unique_ptr<AVFrame, ScopedPtrAVFreeFrame>>* audio_frames,
AVFrame* frame) {
- *total_size += av_samples_get_buffer_size(nullptr, codec_context_->channels,
- frame->nb_samples,
- codec_context_->sample_fmt, 1);
+ *total_size += av_samples_get_buffer_size(
+ nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples,
+ codec_context_->sample_fmt, 1);
audio_frames->emplace_back(av_frame_clone(frame));
return true;
}
diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
index 87ca8969626..76f03d6608e 100644
--- a/media/ffmpeg/ffmpeg_common.cc
+++ b/media/ffmpeg/ffmpeg_common.cc
@@ -334,10 +334,11 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context,
codec_context->sample_fmt, codec_context->codec_id);
ChannelLayout channel_layout =
- codec_context->channels > 8
+ codec_context->ch_layout.nb_channels > 8
? CHANNEL_LAYOUT_DISCRETE
- : ChannelLayoutToChromeChannelLayout(codec_context->channel_layout,
- codec_context->channels);
+ : ChannelLayoutToChromeChannelLayout(
+ codec_context->ch_layout.u.mask,
+ codec_context->ch_layout.nb_channels);
switch (codec) {
// For AC3/EAC3 we enable only demuxing, but not decoding, so FFmpeg does
@@ -401,7 +402,7 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context,
extra_data, encryption_scheme, seek_preroll,
codec_context->delay);
if (channel_layout == CHANNEL_LAYOUT_DISCRETE)
- config->SetChannelsForDiscrete(codec_context->channels);
+ config->SetChannelsForDiscrete(codec_context->ch_layout.nb_channels);
#if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO)
// These are bitstream formats unknown to ffmpeg, so they don't have
@@ -470,7 +471,7 @@ void AudioDecoderConfigToAVCodecContext(const AudioDecoderConfig& config,
// TODO(scherkus): should we set |channel_layout|? I'm not sure if FFmpeg uses
// said information to decode.
- codec_context->channels = config.channels();
+ codec_context->ch_layout.nb_channels = config.channels();
codec_context->sample_rate = config.samples_per_second();
if (config.extra_data().empty()) {
diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc
index 5f257bdfaa6..e1be5aa9a5b 100644
--- a/media/filters/audio_file_reader.cc
+++ b/media/filters/audio_file_reader.cc
@@ -113,14 +113,15 @@ bool AudioFileReader::OpenDecoder() {
// Verify the channel layout is supported by Chrome. Acts as a sanity check
// against invalid files. See http://crbug.com/171962
- if (ChannelLayoutToChromeChannelLayout(codec_context_->channel_layout,
- codec_context_->channels) ==
+ if (ChannelLayoutToChromeChannelLayout(
+ codec_context_->ch_layout.u.mask,
+ codec_context_->ch_layout.nb_channels) ==
CHANNEL_LAYOUT_UNSUPPORTED) {
return false;
}
// Store initial values to guard against midstream configuration changes.
- channels_ = codec_context_->channels;
+ channels_ = codec_context_->ch_layout.nb_channels;
audio_codec_ = CodecIDToAudioCodec(codec_context_->codec_id);
sample_rate_ = codec_context_->sample_rate;
av_sample_format_ = codec_context_->sample_fmt;
@@ -223,7 +224,7 @@ bool AudioFileReader::OnNewFrame(
if (frames_read < 0)
return false;
- const int channels = frame->channels;
+ const int channels = frame->ch_layout.nb_channels;
if (frame->sample_rate != sample_rate_ || channels != channels_ ||
frame->format != av_sample_format_) {
DLOG(ERROR) << "Unsupported midstream configuration change!"
diff --git a/media/filters/audio_file_reader_unittest.cc b/media/filters/audio_file_reader_unittest.cc
index 2aba7927a31..1f45a50cace 100644
--- a/media/filters/audio_file_reader_unittest.cc
+++ b/media/filters/audio_file_reader_unittest.cc
@@ -121,11 +121,11 @@ class AudioFileReaderTest : public testing::Test {
EXPECT_FALSE(reader_->Open());
}
- void RunTestFailingDecode(const char* fn) {
+ void RunTestFailingDecode(const char* fn, int expect_read = 0) {
Initialize(fn);
EXPECT_TRUE(reader_->Open());
std::vector<std::unique_ptr<AudioBus>> decoded_audio_packets;
- EXPECT_EQ(reader_->Read(&decoded_audio_packets), 0);
+ EXPECT_EQ(reader_->Read(&decoded_audio_packets), expect_read);
}
void RunTestPartialDecode(const char* fn) {
@@ -219,7 +219,7 @@ TEST_F(AudioFileReaderTest, AAC_ADTS) {
}
TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) {
- RunTestFailingDecode("midstream_config_change.mp3");
+ RunTestFailingDecode("midstream_config_change.mp3", 0);
}
#endif
diff --git a/media/filters/ffmpeg_aac_bitstream_converter.cc b/media/filters/ffmpeg_aac_bitstream_converter.cc
index 6f231c85729..ca5e5fb927d 100644
--- a/media/filters/ffmpeg_aac_bitstream_converter.cc
+++ b/media/filters/ffmpeg_aac_bitstream_converter.cc
@@ -195,14 +195,15 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) {
if (!header_generated_ || codec_ != stream_codec_parameters_->codec_id ||
audio_profile_ != stream_codec_parameters_->profile ||
sample_rate_index_ != sample_rate_index ||
- channel_configuration_ != stream_codec_parameters_->channels ||
+ channel_configuration_ !=
+ stream_codec_parameters_->ch_layout.nb_channels ||
frame_length_ != header_plus_packet_size) {
header_generated_ =
GenerateAdtsHeader(stream_codec_parameters_->codec_id,
0, // layer
stream_codec_parameters_->profile, sample_rate_index,
0, // private stream
- stream_codec_parameters_->channels,
+ stream_codec_parameters_->ch_layout.nb_channels,
0, // originality
0, // home
0, // copyrighted_stream
@@ -214,7 +215,7 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) {
codec_ = stream_codec_parameters_->codec_id;
audio_profile_ = stream_codec_parameters_->profile;
sample_rate_index_ = sample_rate_index;
- channel_configuration_ = stream_codec_parameters_->channels;
+ channel_configuration_ = stream_codec_parameters_->ch_layout.nb_channels;
frame_length_ = header_plus_packet_size;
}
diff --git a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
index 1fd4c5ccd7d..f59bcd8fdaf 100644
--- a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
+++ b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
@@ -34,7 +34,7 @@ class FFmpegAACBitstreamConverterTest : public testing::Test {
memset(&test_parameters_, 0, sizeof(AVCodecParameters));
test_parameters_.codec_id = AV_CODEC_ID_AAC;
test_parameters_.profile = FF_PROFILE_AAC_MAIN;
- test_parameters_.channels = 2;
+ test_parameters_.ch_layout.nb_channels = 2;
test_parameters_.extradata = extradata_header_;
test_parameters_.extradata_size = sizeof(extradata_header_);
}
diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_decoder.cc
index 6a56c675f7d..4615fdeb3fb 100644
--- a/media/filters/ffmpeg_audio_decoder.cc
+++ b/media/filters/ffmpeg_audio_decoder.cc
@@ -28,7 +28,7 @@ namespace media {
// Return the number of channels from the data in |frame|.
static inline int DetermineChannels(AVFrame* frame) {
- return frame->channels;
+ return frame->ch_layout.nb_channels;
}
// Called by FFmpeg's allocation routine to allocate a buffer. Uses
@@ -231,7 +231,7 @@ bool FFmpegAudioDecoder::OnNewFrame(const DecoderBuffer& buffer,
// Translate unsupported into discrete layouts for discrete configurations;
// ffmpeg does not have a labeled discrete configuration internally.
ChannelLayout channel_layout = ChannelLayoutToChromeChannelLayout(
- codec_context_->channel_layout, codec_context_->channels);
+ codec_context_->ch_layout.u.mask, codec_context_->ch_layout.nb_channels);
if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED &&
config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE) {
channel_layout = CHANNEL_LAYOUT_DISCRETE;
@@ -348,11 +348,11 @@ bool FFmpegAudioDecoder::ConfigureDecoder(const AudioDecoderConfig& config) {
// Success!
av_sample_format_ = codec_context_->sample_fmt;
- if (codec_context_->channels != config.channels()) {
+ if (codec_context_->ch_layout.nb_channels != config.channels()) {
MEDIA_LOG(ERROR, media_log_)
<< "Audio configuration specified " << config.channels()
<< " channels, but FFmpeg thinks the file contains "
- << codec_context_->channels << " channels";
+ << codec_context_->ch_layout.nb_channels << " channels";
ReleaseFFmpegResources();
state_ = DecoderState::kUninitialized;
return false;
@@ -403,7 +403,7 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s,
if (frame->nb_samples <= 0)
return AVERROR(EINVAL);
- if (s->channels != channels) {
+ if (s->ch_layout.nb_channels != channels) {
DLOG(ERROR) << "AVCodecContext and AVFrame disagree on channel count.";
return AVERROR(EINVAL);
}
@@ -436,7 +436,8 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s,
ChannelLayout channel_layout =
config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE
? CHANNEL_LAYOUT_DISCRETE
- : ChannelLayoutToChromeChannelLayout(s->channel_layout, s->channels);
+ : ChannelLayoutToChromeChannelLayout(s->ch_layout.u.mask,
+ s->ch_layout.nb_channels);
if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED) {
DLOG(ERROR) << "Unsupported channel layout.";

View File

@@ -0,0 +1,22 @@
Index: chromium-133.0.6943.98/third_party/webrtc/modules/video_capture/linux/pipewire_session.cc
===================================================================
--- chromium-133.0.6943.98.orig/third_party/webrtc/modules/video_capture/linux/pipewire_session.cc
+++ chromium-133.0.6943.98/third_party/webrtc/modules/video_capture/linux/pipewire_session.cc
@@ -87,7 +87,7 @@ PipeWireNode::PipeWireNode(PipeWireSessi
.param = OnNodeParam,
};
- pw_node_add_listener(proxy_, &node_listener_, &node_events, this);
+ pw_node_add_listener(reinterpret_cast<pw_node*>(proxy_), &node_listener_, &node_events, this);
}
// static
@@ -119,7 +119,7 @@ void PipeWireNode::OnNodeInfo(void* data
uint32_t id = info->params[i].id;
if (id == SPA_PARAM_EnumFormat &&
info->params[i].flags & SPA_PARAM_INFO_READ) {
- pw_node_enum_params(that->proxy_, 0, id, 0, UINT32_MAX, nullptr);
+ pw_node_enum_params(reinterpret_cast<pw_node *>(that->proxy_), 0, id, 0, UINT32_MAX, nullptr);
break;
}
}

View File

@@ -0,0 +1,11 @@
--- chromium-125.0.6422.141.orig/third_party/widevine/cdm/widevine.gni
+++ chromium-125.0.6422.141/third_party/widevine/cdm/widevine.gni
@@ -27,7 +27,7 @@
library_widevine_cdm_available =
(is_chromeos &&
(target_cpu == "x64" || target_cpu == "arm" || target_cpu == "arm64")) ||
- (target_os == "linux" && target_cpu == "x64") ||
+ (target_os == "linux" && (target_cpu == "x64" || target_cpu == "arm64")) ||
(target_os == "mac" && (target_cpu == "x64" || target_cpu == "arm64")) ||
(target_os == "win" &&
(target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm64"))

70
gcc-enable-lto.patch Normal file
View File

@@ -0,0 +1,70 @@
Index: chromium-120.0.6099.18/build/config/BUILDCONFIG.gn
===================================================================
--- chromium-120.0.6099.18.orig/build/config/BUILDCONFIG.gn
+++ chromium-120.0.6099.18/build/config/BUILDCONFIG.gn
@@ -135,6 +135,8 @@ declare_args() {
# set "is_official_build" to true for any build intended to ship to end-users.
is_official_build = false
+ gcc_lto = false
+
# Set to true when compiling with the Clang compiler.
is_clang = current_os != "linux" ||
(current_cpu != "s390x" && current_cpu != "s390" &&
@@ -354,6 +356,12 @@ default_compiler_configs = [
"//build/config/sanitizers:default_sanitizer_flags",
]
+if (gcc_lto) {
+ default_compiler_configs += [
+ "//build/config/compiler:gcc_lto",
+ ]
+}
+
if (is_win) {
default_compiler_configs += [
"//build/config/win:default_cfg_compiler",
Index: chromium-120.0.6099.18/build/config/compiler/BUILD.gn
===================================================================
--- chromium-120.0.6099.18.orig/build/config/compiler/BUILD.gn
+++ chromium-120.0.6099.18/build/config/compiler/BUILD.gn
@@ -2342,6 +2342,10 @@ if (is_win) {
common_optimize_on_cflags += [ "-fno-math-errno" ]
}
+config("gcc_lto") {
+ cflags = [ "-flto" ]
+}
+
config("default_stack_frames") {
if (!is_win) {
if (enable_frame_pointers) {
Index: chromium-120.0.6099.18/sandbox/linux/BUILD.gn
===================================================================
--- chromium-120.0.6099.18.orig/sandbox/linux/BUILD.gn
+++ chromium-120.0.6099.18/sandbox/linux/BUILD.gn
@@ -253,6 +253,9 @@ component("seccomp_bpf") {
"//base",
"//sandbox:sandbox_buildflags",
]
+ if (gcc_lto) {
+ configs -= [ "//build/config/compiler:gcc_lto" ]
+ }
if (is_android) {
sources += [
Index: chromium-120.0.6099.18/base/BUILD.gn
===================================================================
--- chromium-120.0.6099.18.orig/base/BUILD.gn
+++ chromium-120.0.6099.18/base/BUILD.gn
@@ -3561,6 +3561,10 @@
sources += [ "location_unittest.cc" ]
}
+ if (gcc_lto) {
+ configs -= [ "//build/config/compiler:gcc_lto" ]
+ }
+
if (!is_nacl) {
sources += [
"containers/span_rust_unittest.cc",

119
gtk-414.patch Normal file
View File

@@ -0,0 +1,119 @@
From b3e4993ab0aaf2ed41a0c8c69b94ae1226be7494 Mon Sep 17 00:00:00 2001
From: Tom Anderson <thomasanderson@chromium.org>
Date: Mon, 3 Mar 2025 10:41:42 -0800
Subject: [PATCH] [GTK] Fix caption button rendering on newer versions of GTK4
A few new node types have been introduced since the GTK4 port was
written, so this CL adds and handles the new types and adds logging to
more easily diagnose this in the future.
R=thestig
Change-Id: Ie1d69ff7d7effc19aa1e873a58f8dd8943a43366
Fixed: 400336287, 400365777
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6318540
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1427225}
diff --git a/ui/gtk/gsk.sigs b/ui/gtk/gsk.sigs
index 8f80d9d6bd11a..9dc03167830f4 100644
--- a/ui/gtk/gsk.sigs
+++ b/ui/gtk/gsk.sigs
@@ -15,3 +15,6 @@ guint gsk_container_node_get_n_children(UI_GTK_CONST GskRenderNode* node);
guint gsk_gl_shader_node_get_n_children(UI_GTK_CONST GskRenderNode* node);
GdkTexture* gsk_texture_node_get_texture(UI_GTK_CONST GskRenderNode* node);
float gsk_opacity_node_get_opacity(const GskRenderNode* node);
+GskRenderNode* gsk_mask_node_get_mask(const GskRenderNode* node);
+GdkTexture* gsk_texture_scale_node_get_texture(const GskRenderNode* node);
+GskRenderNode* gsk_subsurface_node_get_child(const GskRenderNode* node);
\ No newline at end of file
diff --git a/ui/gtk/gtk_types.h b/ui/gtk/gtk_types.h
index 6a18a86ed1570..6c3b820fab09b 100644
--- a/ui/gtk/gtk_types.h
+++ b/ui/gtk/gtk_types.h
@@ -41,7 +41,15 @@ using GskRenderNodeType = enum {
GSK_TEXT_NODE,
GSK_BLUR_NODE,
GSK_DEBUG_NODE,
- GSK_GL_SHADER_NODE
+ GSK_GL_SHADER_NODE,
+ GSK_TEXTURE_SCALE_NODE,
+ GSK_MASK_NODE,
+ GSK_FILL_NODE,
+ GSK_STROKE_NODE,
+ GSK_SUBSURFACE_NODE,
+
+ // Not defined in GTK.
+ GSK_RENDER_NODE_MAX_VALUE = GSK_SUBSURFACE_NODE,
};
enum GdkMemoryFormat : int;
diff --git a/ui/gtk/gtk_util.cc b/ui/gtk/gtk_util.cc
index 0413e6fd94f59..78c4dc6bd57e5 100644
--- a/ui/gtk/gtk_util.cc
+++ b/ui/gtk/gtk_util.cc
@@ -66,6 +66,10 @@ GskRenderNode* GetRenderNodeChild(GskRenderNode* node) {
return gsk_blur_node_get_child(node);
case GSK_DEBUG_NODE:
return gsk_debug_node_get_child(node);
+ case GSK_MASK_NODE:
+ return gsk_mask_node_get_mask(node);
+ case GSK_SUBSURFACE_NODE:
+ return gsk_subsurface_node_get_child(node);
default:
return nullptr;
}
@@ -769,8 +773,19 @@ GdkTexture* GetTextureFromRenderNode(GskRenderNode* node) {
return nullptr;
}
- if (gsk_render_node_get_node_type(node) == GSK_TEXTURE_NODE) {
- return gsk_texture_node_get_texture(node);
+ auto node_type = gsk_render_node_get_node_type(node);
+ if (node_type > GSK_RENDER_NODE_MAX_VALUE) {
+ LOG(ERROR) << "Unexpected node type: " << node_type;
+ return nullptr;
+ }
+
+ switch (node_type) {
+ case GSK_TEXTURE_NODE:
+ return gsk_texture_node_get_texture(node);
+ case GSK_TEXTURE_SCALE_NODE:
+ return gsk_texture_node_get_texture(node);
+ default:
+ break;
}
if (auto* texture = GetTextureFromRenderNode(GetRenderNodeChild(node))) {
diff --git a/ui/gtk/nav_button_provider_gtk.cc b/ui/gtk/nav_button_provider_gtk.cc
index efe6321149679..239fbf4ca69a1 100644
--- a/ui/gtk/nav_button_provider_gtk.cc
+++ b/ui/gtk/nav_button_provider_gtk.cc
@@ -117,11 +117,13 @@ gfx::Size LoadNavButtonIcon(ui::NavButtonProvider::FrameButtonDisplayType type,
auto* snapshot = gtk_snapshot_new();
gdk_paintable_snapshot(paintable, snapshot, width, height);
auto* node = gtk_snapshot_free_to_node(snapshot);
- GdkTexture* texture = GetTextureFromRenderNode(node);
size_t nbytes = width * height * sizeof(SkColor);
SkColor* pixels = reinterpret_cast<SkColor*>(g_malloc(nbytes));
+ memset(pixels, 0, nbytes);
size_t stride = sizeof(SkColor) * width;
- gdk_texture_download(texture, reinterpret_cast<guchar*>(pixels), stride);
+ if (GdkTexture* texture = GetTextureFromRenderNode(node)) {
+ gdk_texture_download(texture, reinterpret_cast<guchar*>(pixels), stride);
+ }
SkColor fg = GtkStyleContextGetColor(button_context);
for (int i = 0; i < width * height; ++i) {
pixels[i] = SkColorSetA(fg, SkColorGetA(pixels[i]));
@@ -199,7 +201,7 @@ void CalculateUnscaledButtonSize(
gfx::Size* button_size,
gfx::Insets* button_margin) {
// views::ImageButton expects the images for each state to be of the
- // same size, but GTK can, in general, use a differnetly-sized
+ // same size, but GTK can, in general, use a differently-sized
// button for each state. For this reason, render buttons for all
// states at the size of a GTK_STATE_FLAG_NORMAL button.
auto button_context = AppendCssNodeToStyleContext(

31
master_preferences Normal file
View File

@@ -0,0 +1,31 @@
{
"distribution": {
"skip_first_run_ui": true,
"import_bookmarks_from_file": "/etc/chromium/default_bookmarks.html",
"alternate_shortcut_text": false,
"oem_bubble": true,
"chrome_shortcut_icon_index": 0,
"create_all_shortcuts": true,
"show_welcome_page": true,
"make_chrome_default": false,
"make_chrome_default_for_user": false,
"system_level": false,
"verbose_logging": false
},
"download": {
"extensions_to_open": "ymp"
},
"browser": {
"show_home_button": true,
"check_default_browser": false
},
"bookmark_bar": {
"show_on_all_tabs": true
},
"first_run_tabs": [
"http://www.opensuse.org",
"http://tools.google.com/chrome/intl/en/welcome.html"
],
"homepage": "http://www.opensuse.org",
"homepage_is_newtabpage": false
}

42
system-libdrm.patch Normal file
View File

@@ -0,0 +1,42 @@
Index: chromium-114.0.5735.90/build/linux/unbundle/libdrm.gn
===================================================================
--- chromium-114.0.5735.90.orig/build/linux/unbundle/libdrm.gn
+++ chromium-114.0.5735.90/build/linux/unbundle/libdrm.gn
@@ -11,7 +11,10 @@ pkg_config("system_libdrm") {
shim_headers("libdrm_shim") {
root_path = "src/include"
- headers = [ "drm.h" ]
+ headers = [
+ "drm.h",
+ "drm_fourcc.h",
+ ]
}
source_set("libdrm") {
Index: chromium-114.0.5735.90/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
===================================================================
--- chromium-114.0.5735.90.orig/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
+++ chromium-114.0.5735.90/ui/ozone/platform/drm/gpu/hardware_display_controller.cc
@@ -18,7 +18,7 @@
#include "base/logging.h"
#include "base/metrics/histogram_macros.h"
#include "base/trace_event/typed_macros.h"
-#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
+#include <drm_fourcc.h>
#include "third_party/perfetto/include/perfetto/tracing/traced_value.h"
#include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkImage.h"
Index: chromium-114.0.5735.90/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
===================================================================
--- chromium-114.0.5735.90.orig/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
+++ chromium-114.0.5735.90/media/gpu/chromeos/video_decoder_pipeline_unittest.cc
@@ -25,7 +25,7 @@
#include "media/gpu/chromeos/dmabuf_video_frame_pool.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/libdrm/src/include/drm/drm_fourcc.h"
+#include <drm_fourcc.h>
#if BUILDFLAG(IS_CHROMEOS)
// gn check does not account for BUILDFLAG(), so including this header will

12
tcmalloc-factory.patch Normal file
View File

@@ -0,0 +1,12 @@
--- chromium/src/build/common.gypi 2010-04-29 12:39:04.018140987 +0200
+++ chromium/src/build/common.gypi 2010-05-03 21:38:49.733821848 +0200
@@ -261,7 +261,7 @@
'linux_strip_reliability_tests%': 0,
# Enable TCMalloc.
- 'linux_use_tcmalloc%': 1,
+ 'linux_use_tcmalloc%': 0,
# Disable TCMalloc's debugallocation.
'linux_use_debugallocation%': 0,