+++ /dev/null
---- chromium-browser-26.0.1410.43/content/browser/gpu/software_rendering_list.json~ 2013-03-22 02:13:13.000000000 +0100
-+++ chromium-browser-26.0.1410.43/content/browser/gpu/software_rendering_list.json 2013-04-05 10:20:21.695004360 +0200
-@@ -430,6 +430,18 @@
- "op": "contains",
- "value": "AMD"
- },
-+ "exceptions": [
-+ {
-+ "driver_vendor": {
-+ "op": "contains",
-+ "value": "AMD"
-+ },
-+ "driver_version": {
-+ "op": ">=",
-+ "number": "9.0"
-+ }
-+ }
-+ ],
- "blacklist": [
- "all"
- ]
-@@ -449,6 +461,18 @@
- "op": "contains",
- "value": "ATI"
- },
-+ "exceptions": [
-+ {
-+ "driver_vendor": {
-+ "op": "contains",
-+ "value": "ATI"
-+ },
-+ "driver_version": {
-+ "op": ">=",
-+ "number": "9.0"
-+ }
-+ }
-+ ],
- "blacklist": [
- "all"
- ]
%bcond_without system_protobuf # system protobuf
%bcond_without system_re2 # system re2
%bcond_without system_speex # system speex
-%bcond_with system_sqlite # system sqlite
+%bcond_with system_sqlite # system sqlite WebSQL (http://www.w3.org/TR/webdatabase/) will not work
%bcond_without system_libsrtp # system srtp (can be used if using bundled libjingle)
%bcond_with system_v8 # system v8
%bcond_without system_libvpx # system libvpx
# - http://code.google.com/p/chromium/wiki/LinuxBuildInstructionsPrerequisites
# - to look for new tarball, use update-source.sh script
-# NOTE TO USERS:
-# To use chromium nightly beta builds for pld-th save to /etc/poldek/repos.d (as chromium-nightly.conf):
-# http://carme.pld-linux.org/~glen/chromium-browser/th/x86_64/chromium-nightly.conf
-# http://carme.pld-linux.org/~glen/chromium-browser/th/i686/chromium-nightly.conf
-
-%define branch 26.0.1410
-%define basever 43
-%define patchver 63
+%define branch 27.0.1453
+%define basever 93
+#define patchver 70
%define gyp_rev 1014
Summary: A WebKit powered web browser
Name: chromium-browser
License: BSD%{!?with_system_ffmpeg:, LGPL v2+ (ffmpeg)}
Group: X11/Applications/Networking
Source0: http://carme.pld-linux.org/~glen/chromium-browser/src/stable/%{name}-%{branch}.%{basever}.tar.xz
-# Source0-md5: eafd6a919faadc8a7446cd673f460c4c
+# Source0-md5: 6bb4fc8f0c437b447a76c3bd91cf9f81
%if "%{?patchver}" != ""
Patch0: http://carme.pld-linux.org/~glen/chromium-browser/src/stable/%{name}-%{version}.patch.xz
# Patch0-md5: 8eaaa7eb2866d1b3b5536074853de998
Source8: get-source.sh
Source9: master_preferences.json
Patch1: plugin-searchdirs.patch
-#Patch2: system-nspr.patch
Patch3: disable_dlog_and_dcheck_in_release_builds.patch
Patch4: path-libpdf.patch
Patch6: get-webkit_revision.patch
Patch7: dlopen_sonamed_gl.patch
Patch8: chromium_useragent.patch.in
-Patch9: chromium-ppapi.patch
Patch10: system-libxnvctrl.patch
# https://bugs.gentoo.org/show_bug.cgi?id=393471
# libjpeg-turbo >= 1.1.90 supports that feature
Patch15: nacl-build-irt.patch
Patch16: nacl-linkingfix.patch
Patch18: nacl-no-untar.patch
-Patch19: system-jsoncpp.patch
Patch24: nacl-verbose.patch
Patch25: gnome3-volume-control.patch
Patch26: master-prefs-path.patch
-Patch27: tcmalloc-glibc2.16.patch
Patch28: system-mesa.patch
Patch29: speechd-0.8.patch
-Patch30: harfbuzz-0.13.patch
-Patch31: %{name}-whitelist-gpu.patch
+Patch30: no-pnacl.patch
+Patch31: sync-session-name.patch
URL: http://www.chromium.org/Home
%{?with_gconf:BuildRequires: GConf2-devel}
%{?with_system_mesa:BuildRequires: Mesa-libGL-devel >= 9.1}
BuildRequires: rpmbuild(macros) >= 1.453
BuildRequires: speech-dispatcher-devel >= 0.8
%{?with_system_speex:BuildRequires: speex-devel >= 1:1.2-rc1}
-BuildRequires: sqlite3-devel >= 3.6.1
+%{?with_system_sqlite:BuildRequires: sqlite3-devel >= 3.7}
%{?with_system_libsrtp:BuildRequires: srtp-devel >= 1.4.4}
BuildRequires: subversion
BuildRequires: tar >= 1:1.22
Requires: lsb-release
%{?with_system_re2:Requires: re2 >= 20130115-2}
Requires: shared-mime-info
+%{?with_system_sqlite:Requires: sqlite3(icu)}
Requires: xdg-utils >= 1.0.2-4
Requires: xorg-lib-libX11 >= 1.4.99.1
Provides: wwwbrowser
Summary: chromium-browser language packages
Group: I18n
Requires: %{name} = %{version}-%{release}
+%if "%{_rpmversion}" >= "5"
+BuildArch: noarch
+%endif
%description l10n
Chromium is an open-source browser project that aims to build a safer,
# Google's versioning is interesting. They never reset "BUILD", which is how we jumped
# from 3.0.201.0 to 4.0.202.0 as they moved to a new major branch
. ./chrome/VERSION
-ver=$MAJOR.$MINOR.$BUILD.$PATCH
-test "$ver" = %{version}
+chrome=$MAJOR.$MINOR.$BUILD.$PATCH
+test "$chrome" = %{version}
gyp_rev=$(grep googlecode_url.*gyp DEPS | cut -d'"' -f6 | cut -d@ -f2)
test "$gyp_rev" = %{gyp_rev} || :
-v8_ver=$(awk 'NR=1 {print $NF; exit}' v8/ChangeLog || :)
+. ./v8.sh
+v8=$MAJOR_VERSION.$MINOR_VERSION.$BUILD_NUMBER.$PATCH_LEVEL
# add chromium and pld to useragent
%define pld_version %(echo %{pld_release} | sed -e 'y/[at]/[AT]/')
-e 's/@BUILD_DIST_VERSION@/%{pld_version}/g' \
< %{PATCH8} | %{__patch} -p2
-%{__sed} -e 's,@localedir@,%{_libdir}/%{name},' %{SOURCE5} > find-lang.sh
+%{__sed} -e 's,@localedir@,%{_datadir}/%{name},' %{SOURCE5} > find-lang.sh
ln -s %{SOURCE7} .
%patch1 -p2
%patch7 -p2
%patch10 -p2
%patch15 -p2
-%patch9 -p0
-#%patch2 -p1
%{!?with_libjpegturbo:%patch11 -p0}
%patch12 -p1
%patch16 -p1
-%patch19 -p2
-%patch27 -p1
%patch28 -p1
%patch25 -p2
%patch18 -p2
%patch24 -p2
%patch26 -p2
%patch29 -p2
-cd third_party/WebKit
-%patch30 -p1
-cd -
-%patch31 -p1
+%patch30 -p0
+%patch31 -p0
sh -x clean-source.sh \
%{!?with_nacl:nacl=0} \
%{!?with_system_mesa:mesa=0} \
%{!?with_system_protobuf:protobuf=0} \
%{!?with_system_re2:re2=0} \
+ %{!?with_system_sqlite:sqlite=0} \
%{!?with_system_v8:v8=0} \
%{!?with_system_zlib:zlib=0} \
%{nil}
%{gyp_with system_protobuf} \
%{gyp_with system_re2} \
%{gyp_with system_speex} \
- %{gyp_with system_sqlite} \
+ %{gyp_with system_sqlite} %{?with_system_sqlite:-Denable_sql_database=0} \
%{gyp_with system_v8} \
%{gyp_with system_yasm} \
%{gyp_with system_zlib} \
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/{themes,plugins,extensions} \
+install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins \
+ $RPM_BUILD_ROOT%{_datadir}/%{name}/{locales,resources} \
$RPM_BUILD_ROOT{%{_bindir},%{_sysconfdir}/%{name},%{_mandir}/man1,%{_desktopdir}}
cd out/%{!?debug:Release}%{?debug:Debug}
d
}
' $RPM_BUILD_ROOT%{_bindir}/%{name}
-cp -a *.pak locales resources $RPM_BUILD_ROOT%{_libdir}/%{name}
+cp -a locales resources $RPM_BUILD_ROOT%{_datadir}/%{name}
+cp -a *.pak $RPM_BUILD_ROOT%{_libdir}/%{name}
+ln -s %{_datadir}/%{name}/locales $RPM_BUILD_ROOT%{_libdir}/%{name}/locales
+ln -s %{_datadir}/%{name}/resources $RPM_BUILD_ROOT%{_libdir}/%{name}/resources
cp -p chrome.1 $RPM_BUILD_ROOT%{_mandir}/man1/%{name}.1
install -p chrome $RPM_BUILD_ROOT%{_libdir}/%{name}/%{name}
install -p chrome_sandbox $RPM_BUILD_ROOT%{_libdir}/%{name}/chromium-sandbox
cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_desktopdir}
cp -p %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/master_preferences
-%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/%{name}/resources/extension/demo
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/%{name}/resources/extension/demo
%if %{with nacl}
# Install Native Client files on platforms that support it.
%clean
rm -rf $RPM_BUILD_ROOT
+%pretrans
+for d in locales resources; do
+ if [ -d %{_libdir}/%{name}/$d ] && [ ! -L %{_libdir}/%{name}/$d ]; then
+ install -d %{_datadir}/%{name}
+ mv %{_libdir}/%{name}/$d %{_datadir}/%{name}/$d
+ fi
+done
+exit 0
+
%post
%update_icon_cache hicolor
%update_desktop_database
%{_libdir}/%{name}/chrome*.pak
%{_libdir}/%{name}/content_resources.pak
%{_libdir}/%{name}/resources.pak
-%dir %{_libdir}/%{name}/locales
-%{_libdir}/%{name}/locales/en-US.pak
-%dir %{_libdir}/%{name}/resources
-%{_libdir}/%{name}/resources/inspector
-%dir %{_libdir}/%{name}/themes
-%dir %{_libdir}/%{name}/extensions
+%{_libdir}/%{name}/locales
+%{_libdir}/%{name}/resources
+
+%dir %{_datadir}/%{name}
+%dir %{_datadir}/%{name}/locales
+%{_datadir}/%{name}/locales/en-US.pak
+%dir %{_datadir}/%{name}/resources
+%{_datadir}/%{name}/resources/inspector
+
%dir %{_libdir}/%{name}/plugins
%attr(755,root,root) %{_libdir}/%{name}/%{name}
# These unique permissions are intentional and necessary for the sandboxing
+++ /dev/null
-from gentoo chromium-ppapi-r0.patch
-
---- ppapi/ppapi_untrusted.gyp.orig 2012-06-12 10:20:16.000000000 +0200
-+++ ppapi/ppapi_untrusted.gyp 2012-06-12 10:20:52.000000000 +0200
-@@ -80,7 +80,7 @@
- ],
- },
- 'conditions': [
-- ['target_arch!="arm"', {
-+ ['target_arch!="arm" and disable_glibc==0', {
- 'variables': {
- 'build_glibc': 1,
- # NOTE: Use /lib, not /lib64 here; it is a symbolic link which
local dir
for dir in \
+ v8/benchmarks \
+ v8/src/arm \
+ v8/src/d8* \
+ third_party/chromite \
android_webview \
ash/resources/default_100_percent/cros_ \
ash/resources/default_200_percent/cros_ \
'!' -path 'base/win/windows_version.h' \
'!' -path 'build/android/cpufeatures.gypi' \
'!' -path 'chrome/browser/chromeos/contacts/contact.proto' \
+ '!' -path 'chrome/browser/chromeos/extensions/echo_private_api.h' \
'!' -path 'chrome/browser/chromeos/extensions/file_browser_handler_api.h' \
+ '!' -path 'chrome/browser/chromeos/extensions/info_private_api.h' \
+ '!' -path 'chrome/browser/chromeos/extensions/media_player_api.h' \
'!' -path 'chrome/browser/chromeos/extensions/networking_private_api.h' \
+ '!' -path 'chrome/browser/chromeos/extensions/wallpaper_private_api.h' \
'!' -path 'chrome/browser/chromeos/settings/cros_settings.h' \
'!' -path 'chrome/browser/chromeos/settings/cros_settings_names.h' \
'!' -path 'chrome/browser/chromeos/settings/cros_settings_provider.h' \
'!' -path 'chrome/tools/build/repack_locales.py' \
'!' -path 'chrome/tools/build/version.py' \
'!' -path 'chromeos/chromeos_export.h' \
+ '!' -path 'chromeos/chromeos_switches.h' \
'!' -path 'chromeos/dbus/dbus_client_implementation_type.h' \
'!' -path 'chromeos/dbus/session_manager_client.h' \
'!' -path 'chromeos/network/onc/onc_constants.h' \
'!' -path 'ui/base/win/dpi.h' \
'!' -path 'v8/tools/js2c.py' \
'!' -path 'v8/tools/jsmin.py' \
+ '!' -path 'webkit/tools/test_shell/*.h' \
')' \
-print -delete
}
\! -path 'third_party/sfntly/*' \
\! -path 'third_party/skia/*' \
\! -path 'third_party/smhasher/*' \
- \! -path 'third_party/sqlite/*' \
+ \! -path 'third_party/sqlite/amalgamation/*' \
+ \! -path 'third_party/sqlite/sqlite3.h' \
+ \! -path 'third_party/sqlite/src/ext/*' \
\! -path 'third_party/tcmalloc/*' \
\! -path 'third_party/trace-viewer/*' \
\! -path 'third_party/undoview/*' \
third_party/webrtc/modules/utility/test \
third_party/webrtc/modules/video_capture/main/test/android \
third_party/webrtc/system_wrappers/test \
- third_party/webrtc/test \
+ third_party/webrtc/test/manual \
third_party/webrtc/test/testsupport/mac \
third_party/webrtc/video_engine/test/android \
third_party/webrtc/video_engine/test/auto_test/android \
'!' -path './chrome/browser/resources/net_internals/*' \
'!' -path './chrome/browser/ui/webui/test_chrome_web_ui_controller_factory*' \
'!' -path './chrome/common/net/test_server_locations.*' \
+ '!' -path './chrome/renderer/resources/extensions/test_custom_bindings.js' \
'!' -path './chrome/test/base/test_switches.*' \
'!' -path './chrome/test/perf/browser_perf_test.*' \
'!' -path './chrome/test/perf/perf_test.*' \
'!' -path './tools/compile_test/compile_test.py' \
'!' -path './ui/compositor/test_web_graphics_context_3d.*' \
'!' -path './webkit/fileapi/test_mount_point_provider.*' \
+ '!' -path './webkit/gpu/test_context_provider_factory.*' \
+ '!' -path './webkit/support/test_webkit_platform_support.h' \
+ '!' -path './webkit/tools/test_shell/*.h' \
-print -delete || :
}
third_party/protobuf \
third_party/re2 \
third_party/speex \
+ third_party/sqlite \
third_party/yasm \
third_party/zlib \
v8 \
> REMOVED-system_dirs.txt
+if [ "${sqlite:-1}" = 1 ]; then
+ # some code does not pass -DUSE_SYSTEM_SQLITE properly
+ ln -sf /usr/include/sqlite3.h third_party/sqlite/sqlite3.h
+fi
+
clean_third_party > REMOVED-third_party.txt
if [ "${v8:-1}" != "0" ]; then
cd $PACKAGE_NAME-$VERSION
du -sh .
- awk 'NR=1 {print $NF; exit}' v8/ChangeLog | tee -a v8.txt
+ awk '/^#define/ && /(MAJOR|MINOR)_VERSION|BUILD_NUMBER|PATCH_LEVEL/ { printf("%s=%s\n", $2, $3) }' v8/src/version.cc | tee -a v8.sh
if [ "$CHANNEL" != "dev" ]; then
- sh -x $WORK_DIR/clean-source.sh emptydirs=1 v8=0 libvpx=0 mesa=0 re2=0
+ sh -x $WORK_DIR/clean-source.sh emptydirs=1 v8=0 mesa=0 sqlite=0
fi
# do not keep REMOVED*.txt in tarball. they are visible in .log anyway
+++ /dev/null
-http://crbug.com/223500
-http://trac.webkit.org/changeset/143337/trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp
-
-Index: trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp
-===================================================================
---- trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp (revision 142928)
-+++ trunk/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp (revision 143337)
-@@ -330,4 +330,7 @@
- if (shouldSetDirection)
- hb_buffer_set_direction(harfBuzzBuffer.get(), currentRun->rtl() ? HB_DIRECTION_RTL : HB_DIRECTION_LTR);
-+ else
-+ // Leaving direction to HarfBuzz to guess is *really* bad, but will do for now.
-+ hb_buffer_guess_segment_properties(harfBuzzBuffer.get());
-
- // Add a space as pre-context to the buffer. This prevents showing dotted-circle
base::FilePath master_prefs;
- if (!PathService::Get(base::DIR_EXE, &master_prefs))
- return base::FilePath();
-+ master_prefs = FilePath("/etc/chromium-browser");
++ master_prefs = base::FilePath("/etc/chromium-browser");
return master_prefs.AppendASCII(installer::kDefaultMasterPrefs);
}
--- /dev/null
+--- ppapi/native_client/src/untrusted/pnacl_support_extension/pnacl_support_extension.gyp.orig 2013-03-27 19:49:17.000000000 +0100
++++ ppapi/native_client/src/untrusted/pnacl_support_extension/pnacl_support_extension.gyp 2013-03-27 19:49:59.000000000 +0100
+@@ -13,7 +13,7 @@
+ 'target_name': 'pnacl_support_extension',
+ 'type': 'none',
+ 'conditions': [
+- ['disable_nacl==0 and disable_nacl_untrusted==0', {
++ ['disable_nacl==0 and disable_pnacl==0 and disable_nacl_untrusted==0', {
+ 'dependencies': [
+ '../../../../../ppapi/native_client/src/untrusted/pnacl_irt_shim/pnacl_irt_shim.gyp:pnacl_irt_shim',
+ '../../../../../native_client/tools.gyp:prep_toolchain',
--- /dev/null
+https://code.google.com/p/chromium/issues/detail?id=123827
+
+Index: sync/sync_core.gypi
+===================================================================
+--- sync/sync_core.gypi (revision 198703)
++++ sync/sync_core.gypi (revision 198704)
+@@ -181,6 +181,8 @@
+ 'util/get_session_name.h',
+ 'util/get_session_name_ios.mm',
+ 'util/get_session_name_ios.h',
++ 'util/get_session_name_linux.cc',
++ 'util/get_session_name_linux.h',
+ 'util/get_session_name_mac.mm',
+ 'util/get_session_name_mac.h',
+ 'util/get_session_name_win.cc',
+Index: sync/util/get_session_name_linux.h
+===================================================================
+--- sync/util/get_session_name_linux.h (revision 0)
++++ sync/util/get_session_name_linux.h (revision 198704)
+@@ -0,0 +1,19 @@
++// Copyright (c) 2013 The Chromium Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef SYNC_UTIL_GET_SESSION_NAME_LINUX_H_
++#define SYNC_UTIL_GET_SESSION_NAME_LINUX_H_
++
++#include <string>
++
++namespace syncer {
++namespace internal {
++
++std::string GetHostname();
++
++} // namespace internal
++} // namespace syncer
++
++#endif // SYNC_UTIL_GET_SESSION_NAME_LINUX_H_
++
+
+Property changes on: sync/util/get_session_name_linux.h
+___________________________________________________________________
+Added: svn:eol-style
+## -0,0 +1 ##
++LF
+\ No newline at end of property
+Index: sync/util/get_session_name.cc
+===================================================================
+--- sync/util/get_session_name.cc (revision 198703)
++++ sync/util/get_session_name.cc (revision 198704)
+@@ -15,7 +15,7 @@
+ #include "base/command_line.h"
+ #include "chromeos/chromeos_switches.h"
+ #elif defined(OS_LINUX)
+-#include "base/linux_util.h"
++#include "sync/util/get_session_name_linux.h"
+ #elif defined(OS_IOS)
+ #include "sync/util/get_session_name_ios.h"
+ #elif defined(OS_MACOSX)
+@@ -60,7 +60,7 @@
+ // "CHROMEOS_RELEASE_BOARD" line in chrome://system.
+ session_name = board.substr(0, 6) == "stumpy" ? "Chromebox" : "Chromebook";
+ #elif defined(OS_LINUX)
+- session_name = base::GetLinuxDistro();
++ session_name = internal::GetHostname();
+ #elif defined(OS_IOS)
+ session_name = internal::GetComputerName();
+ #elif defined(OS_MACOSX)
+Index: sync/util/get_session_name_linux.cc
+===================================================================
+--- sync/util/get_session_name_linux.cc (revision 0)
++++ sync/util/get_session_name_linux.cc (revision 198704)
+@@ -0,0 +1,24 @@
++// Copyright (c) 2013 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.
++
++#include "sync/util/get_session_name_linux.h"
++
++#include <limits.h> // for HOST_NAME_MAX
++#include <unistd.h> // for gethostname()
++
++#include "base/linux_util.h"
++
++namespace syncer {
++namespace internal {
++
++std::string GetHostname() {
++ char hostname[HOST_NAME_MAX];
++ if (gethostname(hostname, HOST_NAME_MAX) == 0) // Success.
++ return hostname;
++ return base::GetLinuxDistro();
++}
++
++} // namespace internal
++} // namespace syncer
++
+
+Property changes on: sync/util/get_session_name_linux.cc
+___________________________________________________________________
+Added: svn:eol-style
+## -0,0 +1 ##
++LF
+\ No newline at end of property
+Index: tools/compile_test/compile_test.py
+diff --git a/tools/compile_test/compile_test.py b/tools/compile_test/compile_test.py
+index 79371a1fd05d2e03e098340527fc897faadad54c..bbda4abfe54f327aabede26f400bebd5e1376d82 100755
+--- a/tools/compile_test/compile_test.py
++++ b/tools/compile_test/compile_test.py
+@@ -30,7 +30,9 @@ def DoMain(argv):
+ if not options.code:
+ parser.error('Missing required --code switch.')
+
+- cxx = os.environ.get('CXX', 'g++')
++ # The environment variable might expand to a string with spaces,
++ # e.g. "ccache g++". Convert it to a list suitable for argv.
++ cxx = os.environ.get('CXX', 'g++').split()
+
+ tmpdir = tempfile.mkdtemp()
+ try:
+@@ -41,7 +41,7 @@
+
+ o_path = os.path.join(tmpdir, 'test.o')
+
+- cxx_popen = subprocess.Popen([cxx, cxx_path, '-o', o_path, '-c'],
++ cxx_popen = subprocess.Popen(cxx + [cxx_path, '-o', o_path, '-c'],
+ stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+ cxx_stdout, cxx_stderr = cxx_popen.communicate()
diff --git a/media/filters/ffmpeg_glue.h b/media/filters/ffmpeg_glue.h
index 17241b9..8a92312 100644
--- a/media/filters/ffmpeg_glue.h
namespace media {
---- chromium-browser-26.0.1410.28/media/media.gyp~ 2013-03-07 10:20:52.000000000 +0200
-+++ chromium-browser-26.0.1410.28/media/media.gyp 2013-03-07 10:22:28.357340017 +0200
-@@ -430,6 +430,9 @@
+diff --git a/media/media.gyp b/media/media.gyp
+index df217d2..fde3830 100644
+--- a/media/media.gyp
++++ b/media/media.gyp
+@@ -363,6 +363,9 @@
'dependencies': [
'../third_party/ffmpeg/ffmpeg.gyp:ffmpeg',
],
namespace media {
// Why FF_INPUT_BUFFER_PADDING_SIZE? FFmpeg assumes all input buffers are
-Index: build/common.gypi
-diff --git a/build/common.gypi b/build/common.gypi
-index 34c6a15e0add1001e4a24712c9c809e3b698a390..521decfa19d102263086ebf4de7c8bac74c95e30 100644
---- a/build/common.gypi
-+++ b/build/common.gypi
-@@ -741,6 +741,9 @@
- 'google_default_client_secret%': '<(google_default_client_secret)',
- 'enable_managed_users%': '<(enable_managed_users)',
-
-+ # Use system ffmpeg instead of bundled one.
-+ 'use_system_ffmpeg%': 0,
-+
- # Use system mesa instead of bundled one.
- 'use_system_mesa%': 0,
-
-Index: media/ffmpeg/ffmpeg_common.cc
-diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
-index 26953efc699a0dc1ce9cd951eb47b04713974b44..bf234304aa2b26fb7e0f729a4e75257099c00358 100644
---- a/media/ffmpeg/ffmpeg_common.cc
-+++ b/media/ffmpeg/ffmpeg_common.cc
-@@ -84,8 +84,10 @@ AudioCodec CodecIDToAudioCodec(CodecID codec_id) {
- return kCodecGSM_MS;
- case CODEC_ID_PCM_MULAW:
- return kCodecPCM_MULAW;
-+#ifndef CHROMIUM_OMIT_CODEC_ID_OPUS
- case CODEC_ID_OPUS:
- return kCodecOpus;
-+#endif
- default:
- DVLOG(1) << "Unknown audio CodecID: " << codec_id;
- }
-@@ -129,8 +131,10 @@ static CodecID AudioCodecToCodecID(AudioCodec audio_codec,
- return CODEC_ID_GSM_MS;
- case kCodecPCM_MULAW:
- return CODEC_ID_PCM_MULAW;
-+#ifndef CHROMIUM_OMIT_CODEC_ID_OPUS
- case kCodecOpus:
- return CODEC_ID_OPUS;
-+#endif
- default:
- DVLOG(1) << "Unknown AudioCodec: " << audio_codec;
- }
-@@ -147,8 +151,10 @@ VideoCodec CodecIDToVideoCodec(CodecID codec_id) {
- return kCodecMPEG4;
- case CODEC_ID_VP8:
- return kCodecVP8;
-+#ifndef CHROMIUM_OMIT_AV_CODEC_ID_VP9
- case AV_CODEC_ID_VP9:
- return kCodecVP9;
-+#endif
- default:
- DVLOG(1) << "Unknown video CodecID: " << codec_id;
- }
-@@ -165,8 +171,10 @@ static CodecID VideoCodecToCodecID(VideoCodec video_codec) {
- return CODEC_ID_MPEG4;
- case kCodecVP8:
- return CODEC_ID_VP8;
-+#ifndef CHROMIUM_OMIT_AV_CODEC_ID_VP9
- case kCodecVP9:
- return AV_CODEC_ID_VP9;
-+#endif
- default:
- DVLOG(1) << "Unknown VideoCodec: " << video_codec;
- }
-@@ -468,8 +476,10 @@ ChannelLayout ChannelLayoutToChromeChannelLayout(int64_t layout, int channels) {
- return CHANNEL_LAYOUT_6_1_FRONT;
- case AV_CH_LAYOUT_7POINT0_FRONT:
- return CHANNEL_LAYOUT_7_0_FRONT;
-+#ifdef AV_CH_LAYOUT_7POINT1_WIDE_BACK
- case AV_CH_LAYOUT_7POINT1_WIDE_BACK:
- return CHANNEL_LAYOUT_7_1_WIDE_BACK;
-+#endif
- case AV_CH_LAYOUT_OCTAGONAL:
- return CHANNEL_LAYOUT_OCTAGONAL;
- default:
-Index: media/media.gyp
-diff --git a/media/media.gyp b/media/media.gyp
-index f514dec48e5cc78567d141f20e2cb970a8707e92..75b62bebb503e2d9488bf0fc5cec3fd0a7e1916d 100644
---- a/media/media.gyp
-+++ b/media/media.gyp
-@@ -469,6 +469,18 @@
- 'filters/vpx_video_decoder.h',
- ],
- }],
-+ ['use_system_ffmpeg == 1', {
-+ 'defines': [
-+ '<!(python <(DEPTH)/tools/compile_test/compile_test.py '
-+ '--code "#include <libavcodec/avcodec.h>\n'
-+ 'int test() { return CODEC_ID_OPUS; }" '
-+ '--on-failure CHROMIUM_OMIT_CODEC_ID_OPUS)',
-+ '<!(python <(DEPTH)/tools/compile_test/compile_test.py '
-+ '--code "#include <libavcodec/avcodec.h>\n'
-+ 'int test() { return AV_CODEC_ID_VP9; }" '
-+ '--on-failure CHROMIUM_OMIT_AV_CODEC_ID_VP9)',
-+ ],
-+ }],
- ['OS == "ios"', {
- 'includes': [
- # For shared_memory_support_sources variable.
-Index: tools/compile_test/compile_test.py
-diff --git a/tools/compile_test/compile_test.py b/tools/compile_test/compile_test.py
-new file mode 100755
-index 0000000000000000000000000000000000000000..a52c0720209142af858d656a071ca43328dd3b16
---- /dev/null
-+++ b/tools/compile_test/compile_test.py
-@@ -0,0 +1,57 @@
-+#!/usr/bin/env python
-+# Copyright (c) 2013 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.
-+
-+"""
-+Tries to compile given code, produces different output depending on success.
-+
-+This is similar to checks done by ./configure scripts.
-+"""
-+
-+
-+import optparse
-+import os
-+import shutil
-+import subprocess
-+import sys
-+import tempfile
-+
-+
-+def DoMain(argv):
-+ parser = optparse.OptionParser()
-+ parser.add_option('--code')
-+ parser.add_option('--on-success', default='')
-+ parser.add_option('--on-failure', default='')
-+
-+ options, args = parser.parse_args(argv)
-+
-+ if not options.code:
-+ parser.error('Missing required --code switch.')
-+
-+ cxx = os.environ.get('CXX', 'g++')
-+
-+ tmpdir = tempfile.mkdtemp()
-+ try:
-+ cxx_path = os.path.join(tmpdir, 'test.cc')
-+ with open(cxx_path, 'w') as f:
-+ f.write(options.code.decode('string-escape'))
-+
-+ o_path = os.path.join(tmpdir, 'test.o')
-+
-+ cxx_popen = subprocess.Popen([cxx, cxx_path, '-o', o_path, '-c'], shell=True,
-+ stdout=subprocess.PIPE,
-+ stderr=subprocess.PIPE)
-+ cxx_stdout, cxx_stderr = cxx_popen.communicate()
-+ if cxx_popen.returncode == 0:
-+ print options.on_success
-+ else:
-+ print options.on_failure
-+ finally:
-+ shutil.rmtree(tmpdir)
-+
-+ return 0
-+
-+
-+if __name__ == '__main__':
-+ sys.exit(DoMain(sys.argv[1:]))
+++ /dev/null
-Adjust include path for system jsoncpp
-
-https://src.chromium.org/viewvc/chrome?view=rev&revision=183190
-
---- a/src/third_party/jsoncpp/jsoncpp.gyp
-+++ b/src/third_party/jsoncpp/jsoncpp.gyp
-@@ -66,6 +66,11 @@
- 'includes': [
- '../../build/shim_headers.gypi',
- ],
-+ 'direct_dependent_settings': {
-+ 'include_dirs': [
-+ '/usr/include/jsoncpp',
-+ ],
-+ },
- 'link_settings': {
- 'libraries': [
- '-ljsoncpp',
in PLD Linux, windows includes are not packaged
http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2013-February/023459.html
-
-also, load in patch from gentoo: files/chromium-mesa-r0.patch
--- chromium-browser-26.0.1410.12/ui/gl/generate_bindings.py~ 2013-02-21 12:18:08.000000000 +0200
+++ chromium-browser-26.0.1410.12/ui/gl/generate_bindings.py 2013-02-28 11:54:36.763395432 +0200
@@ -1172,7 +1172,7 @@
[GLX_FUNCTIONS, 'glx', ['GL/glx.h', 'GL/glxext.h'], []],
]
-Index: gpu/command_buffer/client/gles2_c_lib_autogen.h
-diff --git a/gpu/command_buffer/client/gles2_c_lib_autogen.h b/gpu/command_buffer/client/gles2_c_lib_autogen.h
-index 80a4d230ad4b82abbaa82f2c328286b9d89da329..d56df6fdb0d851125148a1aac0bedbc487320682 100644
---- a/gpu/command_buffer/client/gles2_c_lib_autogen.h
-+++ b/gpu/command_buffer/client/gles2_c_lib_autogen.h
-@@ -355,7 +355,8 @@ void GLES2ShaderBinary(
- n, shaders, binaryformat, binary, length);
- }
- void GLES2ShaderSource(
-- GLuint shader, GLsizei count, const char** str, const GLint* length) {
-+ GLuint shader, GLsizei count, const GLchar* const* str,
-+ const GLint* length) {
- gles2::GetGLContext()->ShaderSource(shader, count, str, length);
- }
- void GLES2StencilFunc(GLenum func, GLint ref, GLuint mask) {
-Index: gpu/command_buffer/client/gles2_implementation.cc
-diff --git a/gpu/command_buffer/client/gles2_implementation.cc b/gpu/command_buffer/client/gles2_implementation.cc
-index b6c354819ce5d556ff91f7b5273875c3cec83f7a..600c02f3751a2ab72eed498be7ee0f02e628130d 100644
---- a/gpu/command_buffer/client/gles2_implementation.cc
-+++ b/gpu/command_buffer/client/gles2_implementation.cc
-@@ -1173,7 +1173,7 @@ void GLES2Implementation::VertexAttribDivisorANGLE(
- }
-
- void GLES2Implementation::ShaderSource(
-- GLuint shader, GLsizei count, const char** source, const GLint* length) {
-+ GLuint shader, GLsizei count, const GLchar* const* source, const GLint* length) {
- GPU_CLIENT_SINGLE_THREAD_CHECK();
- GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glShaderSource("
- << shader << ", " << count << ", "
-Index: gpu/command_buffer/client/gles2_implementation_autogen.h
-diff --git a/gpu/command_buffer/client/gles2_implementation_autogen.h b/gpu/command_buffer/client/gles2_implementation_autogen.h
-index febcaf45bb5446393c7785196c9ef4a329438d0f..e4a63822ae6b3b9c950b7f9b05f173ce1ecfdb87 100644
---- a/gpu/command_buffer/client/gles2_implementation_autogen.h
-+++ b/gpu/command_buffer/client/gles2_implementation_autogen.h
-@@ -253,7 +253,7 @@ virtual void ShaderBinary(
- GLsizei length) OVERRIDE;
-
- virtual void ShaderSource(
-- GLuint shader, GLsizei count, const char** str,
-+ GLuint shader, GLsizei count, const GLchar* const* str,
- const GLint* length) OVERRIDE;
-
- virtual void StencilFunc(GLenum func, GLint ref, GLuint mask) OVERRIDE;
-Index: gpu/command_buffer/client/gles2_interface_autogen.h
-diff --git a/gpu/command_buffer/client/gles2_interface_autogen.h b/gpu/command_buffer/client/gles2_interface_autogen.h
-index b84dd71bd9139ac487a40847ddb746f839cf3593..8aafc7fd45891be4e2aa61f5825c20d0ccd1dc76 100644
---- a/gpu/command_buffer/client/gles2_interface_autogen.h
-+++ b/gpu/command_buffer/client/gles2_interface_autogen.h
-@@ -152,7 +152,8 @@ virtual void ShaderBinary(
- GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary,
- GLsizei length) = 0;
- virtual void ShaderSource(
-- GLuint shader, GLsizei count, const char** str, const GLint* length) = 0;
-+ GLuint shader, GLsizei count, const GLchar* const* str,
-+ const GLint* length) = 0;
- virtual void StencilFunc(GLenum func, GLint ref, GLuint mask) = 0;
- virtual void StencilFuncSeparate(
- GLenum face, GLenum func, GLint ref, GLuint mask) = 0;
-Index: gpu/command_buffer/client/gles2_interface_stub_autogen.h
-diff --git a/gpu/command_buffer/client/gles2_interface_stub_autogen.h b/gpu/command_buffer/client/gles2_interface_stub_autogen.h
-index 3c1c6696b08923142c879aa591b3902339e5874c..80e6c1003ae1be90fcd1a2871ffdde58f7237bff 100644
---- a/gpu/command_buffer/client/gles2_interface_stub_autogen.h
-+++ b/gpu/command_buffer/client/gles2_interface_stub_autogen.h
-@@ -163,7 +163,7 @@ virtual void ShaderBinary(
- GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary,
- GLsizei length) OVERRIDE;
- virtual void ShaderSource(
-- GLuint shader, GLsizei count, const char** str,
-+ GLuint shader, GLsizei count, const GLchar* const* str,
- const GLint* length) OVERRIDE;
- virtual void StencilFunc(GLenum func, GLint ref, GLuint mask) OVERRIDE;
- virtual void StencilFuncSeparate(
-Index: gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
-diff --git a/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h b/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
-index dce39c0def3ec52499c712afe1f792809c00db28..f097e8cba8e4d13af9027122a36b93f2ec28ae46 100644
---- a/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
-+++ b/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
-@@ -310,7 +310,7 @@ void GLES2InterfaceStub::ShaderBinary(
- const void* /* binary */, GLsizei /* length */) {
- }
- void GLES2InterfaceStub::ShaderSource(
-- GLuint /* shader */, GLsizei /* count */, const char** /* str */,
-+ GLuint /* shader */, GLsizei /* count */, const GLchar* const* /* str */,
- const GLint* /* length */) {
- }
- void GLES2InterfaceStub::StencilFunc(
-Index: gpu/command_buffer/client/gles2_trace_implementation_autogen.h
-diff --git a/gpu/command_buffer/client/gles2_trace_implementation_autogen.h b/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
-index 46cbdccccd0e3e4074b1fd919fc6b91d95fe04a5..da02881f9d180bd26f5a2bad2d4e814a9ca085b3 100644
---- a/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
-+++ b/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
-@@ -163,7 +163,7 @@ virtual void ShaderBinary(
- GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary,
- GLsizei length) OVERRIDE;
- virtual void ShaderSource(
-- GLuint shader, GLsizei count, const char** str,
-+ GLuint shader, GLsizei count, const GLchar* const* str,
- const GLint* length) OVERRIDE;
- virtual void StencilFunc(GLenum func, GLint ref, GLuint mask) OVERRIDE;
- virtual void StencilFuncSeparate(
-Index: gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
-diff --git a/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h b/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
-index 8aff42a6711c38b76e8767057b41fa31fe89f168..8f87a40da0f26f0dd71772e5fbcf519c8b02ad12 100644
---- a/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
-+++ b/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
-@@ -570,7 +570,8 @@ void GLES2TraceImplementation::ShaderBinary(
- }
-
- void GLES2TraceImplementation::ShaderSource(
-- GLuint shader, GLsizei count, const char** str, const GLint* length) {
-+ GLuint shader, GLsizei count, const GLchar* const* str,
-+ const GLint* length) {
- TRACE_EVENT0("gpu", "GLES2Trace::ShaderSource");
- gl_->ShaderSource(shader, count, str, length);
- }
-Index: gpu/command_buffer/cmd_buffer_functions.txt
-diff --git a/gpu/command_buffer/cmd_buffer_functions.txt b/gpu/command_buffer/cmd_buffer_functions.txt
-index 2ad875a4aeaf86566c5f0334090f6583468c4781..08d33d963e3450d6fe442b333fb88089b184d86b 100644
---- a/gpu/command_buffer/cmd_buffer_functions.txt
-+++ b/gpu/command_buffer/cmd_buffer_functions.txt
-@@ -103,7 +103,7 @@ GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenumRenderBufferTar
- GL_APICALL void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert);
- GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
- GL_APICALL void GL_APIENTRY glShaderBinary (GLsizeiNotNegative n, const GLuint* shaders, GLenumShaderBinaryFormat binaryformat, const void* binary, GLsizeiNotNegative length);
--GL_APICALL void GL_APIENTRY glShaderSource (GLidShader shader, GLsizeiNotNegative count, const char** str, const GLint* length);
-+GL_APICALL void GL_APIENTRY glShaderSource (GLidShader shader, GLsizeiNotNegative count, const GLchar* const* str, const GLint* length);
- GL_APICALL void GL_APIENTRY glStencilFunc (GLenumCmpFunction func, GLint ref, GLuint mask);
- GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenumFaceType face, GLenumCmpFunction func, GLint ref, GLuint mask);
- GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask);
-Index: third_party/khronos/GLES2/gl2.h
-diff --git a/third_party/khronos/GLES2/gl2.h b/third_party/khronos/GLES2/gl2.h
-index edebb8b23a56f6a67bb1ecfe5304bb5b372745e6..7aef573b6af7f4e3c76bdfb741374521b2f1eca4 100644
---- a/third_party/khronos/GLES2/gl2.h
-+++ b/third_party/khronos/GLES2/gl2.h
-@@ -160,7 +160,6 @@ typedef khronos_ssize_t GLsizeiptr;
- #define GL_INVALID_VALUE 0x0501
- #define GL_INVALID_OPERATION 0x0502
- #define GL_OUT_OF_MEMORY 0x0505
--#define GL_CONTEXT_LOST 0x300E // TODO(gman): What value?
-
- /* FrontFaceDirection */
- #define GL_CW 0x0900
-@@ -529,7 +528,7 @@ GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures);
- GL_APICALL void GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
- GL_APICALL void GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
- GL_APICALL void GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
--GL_APICALL int GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name);
-+GL_APICALL GLint GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name);
- GL_APICALL void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params);
- GL_APICALL void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params);
- GL_APICALL GLenum GL_APIENTRY glGetError (void);
-@@ -548,7 +547,7 @@ GL_APICALL void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum p
- GL_APICALL void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params);
- GL_APICALL void GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params);
- GL_APICALL void GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params);
--GL_APICALL int GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name);
-+GL_APICALL GLint GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name);
- GL_APICALL void GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params);
- GL_APICALL void GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params);
- GL_APICALL void GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer);
-@@ -570,7 +569,7 @@ GL_APICALL void GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum
- GL_APICALL void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert);
- GL_APICALL void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
- GL_APICALL void GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
--GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar** string, const GLint* length);
-+GL_APICALL void GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length);
- GL_APICALL void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
- GL_APICALL void GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
- GL_APICALL void GL_APIENTRY glStencilMask (GLuint mask);
-Index: third_party/khronos/README.chromium
-diff --git a/third_party/khronos/README.chromium b/third_party/khronos/README.chromium
-index b47cb038c3cc5b51181194a55869842118bf7a56..da2e6c511e33767a458da1a17bd1b78e87779439 100644
---- a/third_party/khronos/README.chromium
-+++ b/third_party/khronos/README.chromium
-@@ -20,7 +20,6 @@ NOTE: Please add Chromium-specific declarations to files in gpu/{GL,EGL,GLES2}
- and not here.
-
- GLES2/gl2.h
-- - Added GL_CONTEXT_LOST constant.
- - Added include of gl2chromium.h
- GLES2/gl2ext.h
- - Added Chromium and Angle extensions.
-Index: ui/gl/generate_bindings.py
-diff --git a/ui/gl/generate_bindings.py b/ui/gl/generate_bindings.py
-index 16f89984bc3d1dc967d6ea3d2c4c1ed799716f8e..8422bbc8baf049f6431cea602a179296698f12b3 100755
---- a/ui/gl/generate_bindings.py
-+++ b/ui/gl/generate_bindings.py
-@@ -482,7 +482,7 @@ GL_FUNCTIONS = [
- { 'return_type': 'void',
- 'names': ['glShaderSource'],
- 'arguments':
-- 'GLuint shader, GLsizei count, const char** str, const GLint* length',
-+ 'GLuint shader, GLsizei count, const char* const* str, const GLint* length',
- 'logging_code': """
- GL_SERVICE_LOG_CODE_BLOCK({
- for (GLsizei ii = 0; ii < count; ++ii) {
-@@ -1584,7 +1584,7 @@ namespace gfx {
- file.write('\n')
- file.write('%s GL_BINDING_CALL Mock_%s(%s) {\n' %
- (func['return_type'], func['names'][0], func['arguments']))
-- argument_names = re.sub(r'(const )?[a-zA-Z0-9]+\** ([a-zA-Z0-9]+)', r'\2',
-+ argument_names = re.sub(r'(const )?[a-zA-Z0-9]+((\s*const\s*)?\*)* ([a-zA-Z0-9]+)', r'\4',
- func['arguments'])
- if argument_names == 'void':
- argument_names = ''
-Index: ui/gl/gl_bindings_skia_in_process.cc
-diff --git a/ui/gl/gl_bindings_skia_in_process.cc b/ui/gl/gl_bindings_skia_in_process.cc
-index f45626616ed6ff8e8de0c59b25165e6b51f3668d..115eac8d8a57e7abc000935e20c8eb311cd404e8 100644
---- a/ui/gl/gl_bindings_skia_in_process.cc
-+++ b/ui/gl/gl_bindings_skia_in_process.cc
-@@ -365,7 +365,7 @@ GLvoid StubGLScissor(GLint x, GLint y, GLsizei width, GLsizei height) {
- glScissor(x, y, width, height);
- }
-
--GLvoid StubGLShaderSource(GLuint shader, GLsizei count, const char** str,
-+GLvoid StubGLShaderSource(GLuint shader, GLsizei count, const char* const* str,
- const GLint* length) {
- glShaderSource(shader, count, str, length);
- }
-Index: third_party/skia/include/gpu/gl/GrGLConfig_chrome.h
-===================================================================
---- a/third_party/skia/include/gpu/gl/GrGLConfig_chrome.h (revision 7840)
-+++ b/third_party/skia/include/gpu/gl/GrGLConfig_chrome.h (working copy)
-@@ -37,4 +37,8 @@
- // Non-VBO vertices and indices are not allowed in Chromium.
- #define GR_GL_MUST_USE_VBO 1
-
-+// Use updated Khronos signature for glShaderSource
-+// (const char* const instead of char**).
-+#define GR_USE_NEW_GL_SHADER_SOURCE_SIGNATURE 1
-+
- #endif
+++ /dev/null
---- chromium-23.0.1271.95/base/pr_time_unittest.cc.system-code 2012-11-27 21:01:53.000000000 -0500
-+++ chromium-23.0.1271.95/base/pr_time_unittest.cc 2012-12-12 15:22:19.695293771 -0500
-@@ -5,7 +5,7 @@
- #include <time.h>
-
- #include "base/compiler_specific.h"
--#include "base/third_party/nspr/prtime.h"
-+#include <prtime.h>
- #include "base/time.h"
- #include "testing/gtest/include/gtest/gtest.h"
-
---- chromium-23.0.1271.95/chrome/browser/metrics/metrics_log.cc.system-code 2012-11-27 21:02:10.000000000 -0500
-+++ chromium-23.0.1271.95/chrome/browser/metrics/metrics_log.cc 2012-12-12 15:22:19.699293773 -0500
-@@ -16,7 +16,7 @@
- #include "base/string_number_conversions.h"
- #include "base/string_util.h"
- #include "base/sys_info.h"
--#include "base/third_party/nspr/prtime.h"
-+#include <prtime.h>
- #include "base/time.h"
- #include "base/tracked_objects.h"
- #include "base/utf_string_conversions.h"
---- chromium-23.0.1271.95/chrome/common/metrics/metrics_log_base.cc.system-code 2012-11-27 21:02:37.000000000 -0500
-+++ chromium-23.0.1271.95/chrome/common/metrics/metrics_log_base.cc 2012-12-12 15:22:19.706293777 -0500
-@@ -11,7 +11,7 @@
- #include "base/string_number_conversions.h"
- #include "base/sys_byteorder.h"
- #include "base/sys_info.h"
--#include "base/third_party/nspr/prtime.h"
-+#include <prtime.h>
- #include "base/utf_string_conversions.h"
- #include "chrome/common/chrome_version_info.h"
- #include "chrome/common/logging_chrome.h"
+++ /dev/null
-diff -up chromium-21.0.1180.81/third_party/tcmalloc/chromium/src/base/linuxthreads.cc.glibc216 chromium-21.0.1180.81/third_party/tcmalloc/chromium/src/base/linuxthreads.cc
---- chromium-21.0.1180.81/third_party/tcmalloc/chromium/src/base/linuxthreads.cc.glibc216 2012-08-30 20:34:00.324468082 -0400
-+++ chromium-21.0.1180.81/third_party/tcmalloc/chromium/src/base/linuxthreads.cc 2012-08-30 20:34:15.458468310 -0400
-@@ -193,7 +193,7 @@ static volatile int *sig_pids, sig_num_t
- /* Signal handler to help us recover from dying while we are attached to
- * other threads.
- */
--static void SignalHandler(int signum, siginfo_t *si, void *data) {
-+static void SignalHandler(int signum, siginfo *si, void *data) {
- if (sig_pids != NULL) {
- if (signum == SIGABRT) {
- while (sig_num_threads-- > 0) {