Commit 5d4451eb authored by jbauman@chromium.org's avatar jbauman@chromium.org

Roll ANGLE r704:r705

BUG=
TEST=try

Review URL: http://codereview.chromium.org/7375016

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93026 0039d316-1c4b-4281-b951-d872f2087c98
parent c8d0c9e7

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.
# DO NOT EDIT. THIS IS A GENERATED FILE.
# ALL MANUAL CHANGES WILL BE OVERWRITTEN.
vars = {
'webkit_url':
'http://git.chromium.org/external/WebKit_trimmed.git',
'git_url':
'http://git.chromium.org',
'webkit_rev':
'@fa113f82cde91714a6e8990647ae7ee345fe8cf2'
}
deps = {
'src/breakpad/src':
Var('git_url') + '/external/google-breakpad/src.git@072eac01b55527ad6511c04471d9e0b2329d4471',
'src/build/util/support':
Var('git_url') + '/chromium/support.git@9306628dc48b26b6264fc32a09bd5f926fec7218',
'src/chrome/test/data/extensions/api_test/permissions/nacl_enabled/bin':
Var('git_url') + '/native_client/src/native_client/tests/prebuilt.git@3e17365176c94624f46cace174f61834b7f3c35d',
'src/chrome/test/data/gpu/webgl_conformance':
Var('git_url') + '/chromium/deps/webgl/sdk/tests.git@78790758b9a185c16f53dc57dd0cc2e466091720',
'src/googleurl':
Var('git_url') + '/external/google-url.git@290665e5ec3f648c6d94f0a4e2d0f1c603f65b84',
'src/native_client':
Var('git_url') + '/native_client/src/native_client.git@03fd44915a73f60f7cb956f800d5e313a7478226',
'src/native_client/src/third_party/ppapi':
Var('git_url') + '/chromium/src/ppapi.git@6736167d89a437064082b2bf8a6efc33045d6e4e',
'src/sdch/open-vcdiff':
Var('git_url') + '/external/open-vcdiff.git@f1dd933c4e47a65889b4bba2a5f58b12aac53383',
'src/seccompsandbox':
Var('git_url') + '/external/seccompsandbox.git@ae569868426ffe442eeca5026e0f2593b0e98623',
'src/testing/gmock':
Var('git_url') + '/external/googlemock.git@1de8831515fed5d6c86989c6c021f08abd2c37a5',
'src/testing/gtest':
Var('git_url') + '/external/googletest.git@a2965825b1953c7b8ad292f726eb5c3f2659d5d3',
'src/third_party/WebKit':
Var('webkit_url') + Var('webkit_rev'),
'src/third_party/angle':
Var('git_url') + '/external/angleproject.git@5e89aabe2f7485a181475070e6d0e2dce5e9510e',
'src/third_party/bidichecker':
Var('git_url') + '/external/bidichecker/lib.git@97f2aa645b74c28c57eca56992235c79850fa9e0',
'src/third_party/cacheinvalidation/files/src/google':
Var('git_url') + '/external/google-cache-invalidation-api/src/google.git@567d5203970db47e4a1fc1a2bd638a1cf6442fef',
'src/third_party/ffmpeg':
Var('git_url') + '/chromium/deps/ffmpeg/source.git@1e14938ad47d7e431f669fa6a3bb182433e85a7d',
'src/third_party/flac':
Var('git_url') + '/chromium/deps/flac.git@921080d4f74c6de2119bd3d185ba7908865a375b',
'src/third_party/hunspell':
Var('git_url') + '/chromium/deps/hunspell.git@e9549194ca7d44e940a15fd70f66df2325b54239',
'src/third_party/hunspell_dictionaries':
Var('git_url') + '/chromium/deps/hunspell_dictionaries.git@50fb79b30a2e3e512c88884152f26b255d0e4074',
'src/third_party/icu':
Var('git_url') + '/chromium/deps/icu46.git@7356ec58175869f3eec718c6964ae7425b1e7117',
'src/third_party/leveldb':
Var('git_url') + '/external/leveldb.git@e67cd63d8a779971247078b2715b6ae7b37dbc2e',
'src/third_party/libjingle/source':
Var('git_url') + '/external/libjingle.git@100569c349b89facfcabff0d6db881ace31a05c0',
'src/third_party/libjpeg_turbo':
Var('git_url') + '/chromium/deps/libjpeg_turbo.git@6eb4f2096c80f5f3286f63bb76b671eb5eb97d78',
'src/third_party/libvpx':
Var('git_url') + '/chromium/deps/libvpx.git@23e067305b541d58bccb822a279644077f613a49',
'src/third_party/ots':
Var('git_url') + '/external/ots.git@7f9bebe3906fb30f0632f9d010754d12dd6c02d7',
'src/third_party/pylib':
Var('git_url') + '/native_client/src/third_party/pylib.git@be1b3e269cb698f969a5a630a026628cc6d6cc78',
'src/third_party/safe_browsing/testing':
Var('git_url') + '/external/google-safe-browsing/testing.git@1c915e54f77f3a8288bd6af5c507d2dbdc6b4035',
'src/third_party/scons-2.0.1':
Var('git_url') + '/native_client/src/third_party/scons-2.0.1.git@c81c95aff36392cffede13382dd5fcad25c0a603',
'src/third_party/skia/gpu':
Var('git_url') + '/external/skia/gpu.git@a30745dcda39c1c76da1040385e6ea7b44de16b9',
'src/third_party/skia/include':
Var('git_url') + '/external/skia/include.git@49015846eb2605ca98124a6ceed0f54662142ea0',
'src/third_party/skia/src':
Var('git_url') + '/external/skia/src.git@b7bae27ac2fac9bc6f961fb9bd704b1ceb0e1195',
'src/third_party/skia/third_party/glu':
Var('git_url') + '/external/skia/third_party/glu.git@ff7deb69dcaabf939d45fca80ad507219e938412',
'src/third_party/snappy/src':
Var('git_url') + '/external/snappy.git@5258607248a000affb2f72b87b9bbd044806677d',
'src/third_party/speex':
Var('git_url') + '/chromium/deps/speex.git@0c94ee62322ce3272783cafda02b3ee172c45553',
'src/third_party/swig/Lib':
Var('git_url') + '/chromium/deps/swig/Lib.git@549f0b084ad9c40ef42d111303d831eb8d91252e',
'src/third_party/webdriver/python/selenium':
Var('git_url') + '/external/selenium/py/selenium.git@f531d35cf99dd456a1e52af343e738635dd755e4',
'src/third_party/webrtc':
Var('git_url') + '/external/webrtc.git@ba28d7fd4e4376c04bf270009b1e101a3df8071c',
'src/third_party/yasm/source/patched-yasm':
Var('git_url') + '/chromium/deps/yasm/patched-yasm.git@44efe151b6960bab3db0c85354cc4cce1024219d',
'src/tools/gyp':
Var('git_url') + '/external/gyp.git@52de20c269423e263996d3f77bfb6c7858b61965',
'src/tools/page_cycler/acid3':
Var('git_url') + '/chromium/deps/acid3.git@59c6ae4c476750845a529cd407454378ebaaa347',
'src/v8':
Var('git_url') + '/external/v8.git@37f4447773402769fd4da67c10868b6752664504',
}
deps_os = {
'mac':
{
'src/chrome/installer/mac/third_party/xz/xz':
Var('git_url') + '/chromium/deps/xz.git@604fa85cc4e214aa0f418a2596ea865c0eed7a54',
'src/chrome/tools/test/reference_build/chrome_mac':
Var('git_url') + '/chromium/reference_builds/chrome_mac.git@dde16d147a5b8d0229f8adf8eee6d180fb9f4684',
'src/third_party/GTM':
Var('git_url') + '/external/google-toolbox-for-mac.git@a1651c0f2fef1d41fdc1e72c5688cca7e2c3a1b6',
'src/third_party/lighttpd':
Var('git_url') + '/chromium/deps/lighttpd.git@9dfa55d15937a688a92cbf2b7a8621b0927d06eb',
'src/third_party/nss':
Var('git_url') + '/chromium/deps/nss.git@d6b9dce024c4cbe1a0236b8be59c95ea6d47aa25',
'src/third_party/pdfsqueeze':
Var('git_url') + '/external/pdfsqueeze.git@a2470ff9fcc9d399a1c0ac58e8b1df6f46143801',
'src/third_party/swig/mac':
Var('git_url') + '/chromium/deps/swig/mac.git@1b182eef16df2b506f1d710b34df65d55c1ac44e',
},
'unix':
{
'src/chrome/tools/test/reference_build/chrome_linux':
Var('git_url') + '/chromium/reference_builds/chrome_linux.git@30e720f6bfd2be52c37307114b6fca8817a90562',
'src/third_party/lss':
Var('git_url') + '/external/linux-syscall-support/lss.git@d4ba6b8d8c6ab24825d11d4e5b69920c41b36880',
'src/third_party/openssl':
Var('git_url') + '/chromium/deps/openssl.git@fc41d95865ab02a8ad85ffac6fc20fc2de5dbe8d',
'src/third_party/swig/linux':
Var('git_url') + '/chromium/deps/swig/linux.git@866b8e0e0e0cfe99ebe608260030916ca0c3f92d',
'src/third_party/xdg-utils':
Var('git_url') + '/chromium/deps/xdg-utils.git@c1f3b268e700f3a3c7fdf49d83dc4bb9d95fdb4a',
},
'win':
{
'src/chrome/tools/test/reference_build/chrome_win':
Var('git_url') + '/chromium/reference_builds/chrome_win.git@b9f52667918a74977cb85eefd4e967150f852fbc',
'src/chrome_frame/tools/test/reference_build/chrome_win':
Var('git_url') + '/chromium/reference_builds/chrome_win.git@b9f52667918a74977cb85eefd4e967150f852fbc',
'src/rlz':
Var('git_url') + '/external/rlz.git@7a81d763b9078abeb33f5ca7c2f66ab25fb17b9d',
'src/third_party/cygwin':
Var('git_url') + '/chromium/deps/cygwin.git@06a117a90c15174436bfa20ceebbfdf43b7eb820',
'src/third_party/ffmpeg/binaries/chromium/win/ia32':
Var('git_url') + '/chromium/deps/ffmpeg/binaries/win.git@359ff7231ad572aec02744a650d288450cb94058',
'src/third_party/lighttpd':
Var('git_url') + '/chromium/deps/lighttpd.git@856e79c6109d4f0abe93c01d4c22419e33c9bee7',
'src/third_party/mingw-w64/mingw/bin':
Var('git_url') + '/native_client/src/third_party/mingw-w64/mingw/bin.git@f8d5ecca68faf1f7dad0a1b4905519e3732ecc21',
'src/third_party/nss':
Var('git_url') + '/chromium/deps/nss.git@d6b9dce024c4cbe1a0236b8be59c95ea6d47aa25',
'src/third_party/pefile':
Var('git_url') + '/external/pefile.git@d0ca75794f69f1d09fd6d31d40ba2f1e9b3b7fb4',
'src/third_party/psyco_win32':
Var('git_url') + '/chromium/deps/psyco_win32.git@a9e06703f2909e3725cf01e415daaac617fb319e',
'src/third_party/python_26':
Var('git_url') + '/chromium/deps/python_26.git@67d19f904470effe3122d27101cc5a8195abd157',
'src/third_party/swig/win':
Var('git_url') + '/chromium/deps/swig/win.git@986f013ba518541adf5c839811efb35630a31031',
'src/third_party/xulrunner-sdk':
Var('git_url') + '/chromium/deps/xulrunner-sdk.git@143c700d4d51e850c4b921129bb53c1ed1c8752e',
'src/third_party/yasm/binaries':
Var('git_url') + '/chromium/deps/yasm/binaries.git@52f9b3f4b0aa06da24ef8b123058bb61ee468881',
},
}
include_rules = [
'+base',
'+build',
'+ipc',
'+unicode',
'+testing'
]
skip_child_includes = [
'breakpad',
'chrome_frame',
'native_client',
'o3d',
'pdf',
'sdch',
'skia',
'testing',
'third_party',
'v8'
]
hooks = [
{
'action':
[
'python',
'src/build/gyp_chromium'
],
'pattern':
'.'
},
{
'action':
[
'python',
'src/build/download_nacl_irt.py',
'--nacl_revision',
'5988',
'--file_hash',
'x86_32',
'40737ff789c03561a79dc7802f16e84d4dbe3b07',
'--file_hash',
'x86_64',
'8d7d2f6f5ef19467981eb89ab2a138e79aa5926d'
],
'pattern':
'.'
}
]
*.Makefile
*.mk
*.ncb
*.ninja
*.props
*.pyc
*.rules
*.scons
*.sdf
*.sln
*.suo
*.targets
*.user
*.vcproj
*.vcxproj
*.vcxproj.filters
*.vpj
*.vpw
*.vpwhistu
*.vtg
*.xcodeproj
*~
.*.sw?
.DS_Store
.cproject
.gdb_history
.gdbinit
.metadata
.project
tags
Thumbs.db
v8.log
/Makefile
/_out
/breakpad/src/
/build/Debug
/build/Purify
/build/Release
/build/util/support
# The Chrome OS build creates a /c symlink due to http://crbug.com/54866.
/c
/ceee/internal/
/chrome/Debug
/chrome/Hammer
/chrome/Release
/chrome/app/theme/google_chrome
/chrome/browser/autofill/internal
/chrome/browser/extensions/default_extensions/chromeos
/chrome/installer/linux
/chrome/installer/mac/internal
/chrome/installer/mac/third_party/xz/xz
/chrome/test/data/extensions/api_test/permissions/nacl_enabled/bin
/chrome/test/data/firefox2_profile/searchplugins
/chrome/test/data/firefox2_searchplugins
/chrome/test/data/firefox3_profile/searchplugins
/chrome/test/data/firefox3_searchplugins
/chrome/test/data/layout_tests
/chrome/test/data/osdd
/chrome/test/data/plugin
/chrome/test/data/pyauto_private
/chrome/test/data/gpu/webgl_conformance
/chrome/tools/memory
/chrome/tools/test/reference_build
/chrome_frame/tools/test/reference_build
/data
/googleurl
/gpu/gles2_conform_test
/native_client
/net/Debug
/net/Release
/net/testserver.log
/ninja
/out
/out_*
/rlz
/sdch/open-vcdiff
/seccompsandbox
/testing/gmock
/testing/gtest
/testserver.log
/third_party/GTM
/third_party/WebKit
/third_party/adobe/flash/binaries
/third_party/angle
/third_party/bidichecker
/third_party/cacheinvalidation/files
/third_party/chromeos_login_manager
/third_party/chromeos_text_input
/third_party/cros
/third_party/cygwin
/third_party/directxsdk
/third_party/drmemory
/third_party/flac
/third_party/adobe/flash/symbols
/third_party/ffmpeg
/third_party/gles2_conform
/third_party/googlemac
/third_party/hunspell
/third_party/hunspell_dictionaries
/third_party/icu
/third_party/leveldb
/third_party/libjingle/source
/third_party/libjpeg_turbo
/third_party/libsrtp/src
/third_party/libvpx
/third_party/libvpx/include
/third_party/libvpx/lib
/third_party/lighttpd
/third_party/lss
/third_party/llvm
/third_party/llvm-build
/third_party/mingw-w64
/third_party/mkl
/third_party/nss
/third_party/openssl
/third_party/ots
/third_party/pdfsqueeze
/third_party/pefile
/third_party/platformsdk_win2008_6_1
/third_party/platformsdk_win7
/third_party/ppapi
/third_party/psyco_win32
/third_party/pthreads-win32
/third_party/pylib
/third_party/python_24
/third_party/python_26
/third_party/pywebsocket
/third_party/safe_browsing/testing
/third_party/scons-2.0.1
/third_party/skia
/third_party/snappy/src
/third_party/speex
/third_party/swig
/third_party/valgrind
/third_party/webdriver/python
/third_party/webrtc
/third_party/xdg-utils
/third_party/xulrunner-sdk
/third_party/yasm/binaries
/third_party/yasm/source/patched-yasm
/tools/distcc
/tools/grit/grit/test/data
/tools/gyp
/tools/histograms
/tools/page_cycler/acid3
/tools/tryserver
/v8
/webkit/Debug
/webkit/Release
/webkit/data/bmp_decoder
/webkit/data/ico_decoder
/webkit/data/layout_tests/LayoutTests
/webkit/data/test_shell/plugins
/webkit/data/xbm_decoder
/x86-generic_out/
/xcodebuild
# Names should be added to this file with this pattern:
#
# For individuals:
# Name <email address>
#
# For organizations:
# Organization <fnmatch pattern>
#
# See python fnmatch module documentation for more information.
The Chromium Authors <*@chromium.org>
Google Inc. <*@google.com>
Seo Sanghyeon <sanxiyn@gmail.com>
Alex Scheele <alexscheele@gmail.com>
Andrew Brampton <me@bramp.net>
Paweł Hajdan jr <phajdan.jr@gmail.com>
Jesse Miller <jesse@jmiller.biz>
Szymon Piechowicz <szymonpiechowicz@o2.pl>
James Vega <vega.james@gmail.com>
Marco Rodrigues <gothicx@gmail.com>
Matthias Reitinger <reimarvin@gmail.com>
Peter Bright <drpizza@quiscalusmexicanus.org>
Arthur Lussos <developer0420@gmail.com>
Masahiro Yado <yado.masa@gmail.com>
Yarin Kaul <yarin.kaul@gmail.com>
Gaetano Mendola <mendola@gmail.com>
Comodo CA Limited
Torchmobile Inc.
Craig Schlenter <craig.schlenter@gmail.com>
Ibrar Ahmed <ibrar.ahmad@gmail.com>
Naoki Takano <takano.naoki@gmail.com>
Fabien Tassin <fta@sofaraway.org>
Kunal Thakar <kunalt@gmail.com>
Mohamed Mansour <m0.interactive@gmail.com>
Joshua Roesslein <jroesslein@gmail.com>
Yong Shin <sy3620@gmail.com>
Laszlo Radanyi <bekkra@gmail.com>
Raman Tenneti <raman.tenneti@gmail.com>
Kyle Nahrgang <kpn24@drexel.edu>
Kim Christensen <kimworking@gmail.com>
Paul Robinson <paulrobinson85@googlemail.com>
Josué Ratelle <jorat1346@gmail.com>
Edward Crossman <tedoc2000@gmail.com>
Nikita Ofitserov <himikof@gmail.com>
Sean Bryant <sean@cyberwang.net>
Robert Sesek <rsesek@bluestatic.org>
Janwar Dinata <j.dinata@gmail.com>
Will Hirsch <chromium@willhirsch.co.uk>
Yoav Zilberberg <yoav.zilberberg@gmail.com>
Joel Stanley <joel@jms.id.au>
Jacob Mandelson <jacob@mandelson.org>
Yuri Gorobets <yuri.gorobets@gmail.com>
Paul Wicks <pwicks86@gmail.com>
Thiago Farina <thiago.farina@gmail.com>
Viet-Trung Luu <viettrungluu@gmail.com>
Pierre-Antoine LaFayette <pierre.lafayette@gmail.com>
Song YeWen <ffmpeg@gmail.com>
Philippe Beauchamp <philippe.beauchamp@gmail.com>
Vedran Šajatović <vedran.sajatovic@gmail.com>
Randy Posynick <randy.posynick@gmail.com>
Bruno Calvignac <brunocalvignac@gmail.com>
Jaime Soriano Pastor <jsorianopastor@gmail.com>
Bryan Donlan <bdonlan@gmail.com>
Ramkumar Ramachandra <artagnon@gmail.com>
Dominic Jodoin <dominic.jodoin@gmail.com>
Kaspar Brand <googlecontrib@velox.ch>
Clemens Fruhwirth <clemens@endorphin.org>
Kevin Lee Helpingstine <sig11@reprehensible.net>
Bernard Cafarelli <voyageur@gentoo.org>
Vernon Tang <vt@foilhead.net>
Alexander Sulfrian <alexander@sulfrian.net>
Philippe Beaudoin <philippe.beaudoin@gmail.com>
Mark Hahnenberg <mhahnenb@gmail.com>
Alex Gartrell <alexgartrell@gmail.com>
Leith Bade <leith@leithalweapon.geek.nz>
James Choi <jchoi42@pha.jhu.edu>
Paul Kehrer <paul.l.kehrer@gmail.com>
Chamal De Silva <chamal.desilva@gmail.com>
Jay Soffian <jaysoffian@gmail.com>
Brian G. Merrell <bgmerrell@gmail.com>
Matthew Willis <appamatto@gmail.com>
Novell Inc. <*@novell.com>
Ryan Sleevi <ryan.sleevi@gmail.com>
Satoshi Matsuzaki <satoshi.matsuzaki@gmail.com>
Benjamin Jemlich <pcgod99@gmail.com>
Ningxin Hu <ningxin.hu@intel.com>
Jared Wein <weinjared@gmail.com>
Mingmin Xie <melvinxie@gmail.com>
Michael Gilbert <floppymaster@gmail.com>
Giuseppe Iuculano <giuseppe@iuculano.it>
litl LLC <*@litl.com>
James Willcox <jwillcox@litl.com>
Shreyas VA <v.a.shreyas@gmail.com>
Steven Pennington <spenn@engr.uvic.ca>
Jorge Villatoro <jorge@tomatocannon.com>
Paul Nettleship <pnettleship@gmail.com>
David Benjamin <davidben@mit.edu>
Sevan Janiyan <venture37@geeklan.co.uk>
Peter Beverloo <peter@lvp-media.com>
Lauri Oherd <lauri.oherd@gmail.com>
Ben Karel <eschew@gmail.com>
Sam McDonald <sam@sammcd.com>
Magnus Danielsson <fuzzac@gmail.com>
Kushal Pisavadia <kushi.p@gmail.com>
Maarten Lankhorst <m.b.lankhorst@gmail.com>
Vipul Bhasin <vipul.bhasin@gmail.com>
Ryan Norton <rnorton10@gmail.com>
Dillon Sellars <dill.sellars@gmail.com>
Seshadri Mahalingam <seshadri.mahalingam@gmail.com>
Clement Scheelfeldt Skau <clementskau@gmail.com>
David Futcher <bobbo@ubuntu.com>
Ramkumar Gokarnesan <ramgo@yahoo-inc.com>
Matt Arpidone <mma.public@gmail.com>
ruben <chromium@hybridsource.org>
NVIDIA Corporation <*@nvidia.com>
Torsten Kurbad <google@tk-webart.de>
Max Perepelitsyn <pph34r@gmail.com>
......@@ -49,7 +49,7 @@ deps = {
(Var("googlecode_url") % "googlemock") + "/trunk@374",
"src/third_party/angle":
(Var("googlecode_url") % "angleproject") + "/trunk@704",
(Var("googlecode_url") % "angleproject") + "/trunk@705",
# Note that this is *not* where we check out WebKit -- this just
# puts some extra files into place for the real WebKit checkout to
......
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Copyright (c) 2011 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.
"""Top-level presubmit script for Chromium.
See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
for more details about the presubmit API built into gcl.
"""
_EXCLUDED_PATHS = (
r"^breakpad[\\\/].*",
r"^net/tools/spdyshark/[\\\/].*",
r"^skia[\\\/].*",
r"^v8[\\\/].*",
r".*MakeFile$",
)
def _CheckNoInterfacesInBase(input_api, output_api):
"""Checks to make sure no files in libbase.a have |@interface|."""
pattern = input_api.re.compile(r'^\s*@interface', input_api.re.MULTILINE)
files = []
for f in input_api.AffectedSourceFiles(input_api.FilterSourceFile):
if (f.LocalPath().find('base/') != -1 and
f.LocalPath().find('base/test/') == -1 and
not f.LocalPath().endswith('_unittest.mm')):
contents = input_api.ReadFile(f)
if pattern.search(contents):
files.append(f)
if len(files):
return [ output_api.PresubmitError(
'Objective-C interfaces or categories are forbidden in libbase. ' +
'See http://groups.google.com/a/chromium.org/group/chromium-dev/' +
'browse_thread/thread/efb28c10435987fd',
files) ]
return []
def _CommonChecks(input_api, output_api):
"""Checks common to both upload and commit."""
results = []
results.extend(input_api.canned_checks.PanProjectChecks(
input_api, output_api, excluded_paths=_EXCLUDED_PATHS))
results.extend(_CheckNoInterfacesInBase(input_api, output_api))
results.extend(_CheckAuthorizedAuthor(input_api, output_api))
return results
def _CheckSubversionConfig(input_api, output_api):
"""Verifies the subversion config file is correctly setup.
Checks that autoprops are enabled, returns an error otherwise.
"""
join = input_api.os_path.join
if input_api.platform == 'win32':
appdata = input_api.environ.get('APPDATA', '')
if not appdata:
return [output_api.PresubmitError('%APPDATA% is not configured.')]
path = join(appdata, 'Subversion', 'config')
else:
home = input_api.environ.get('HOME', '')
if not home:
return [output_api.PresubmitError('$HOME is not configured.')]
path = join(home, '.subversion', 'config')
error_msg = (
'Please look at http://dev.chromium.org/developers/coding-style to\n'
'configure your subversion configuration file. This enables automatic\n'
'properties to simplify the project maintenance.\n'
'Pro-tip: just download and install\n'
'http://src.chromium.org/viewvc/chrome/trunk/tools/build/slave/config\n')
try:
lines = open(path, 'r').read().splitlines()
# Make sure auto-props is enabled and check for 2 Chromium standard
# auto-prop.
if (not '*.cc = svn:eol-style=LF' in lines or
not '*.pdf = svn:mime-type=application/pdf' in lines or
not 'enable-auto-props = yes' in lines):
return [
output_api.PresubmitNotifyResult(
'It looks like you have not configured your subversion config '
'file or it is not up-to-date.\n' + error_msg)
]
except (OSError, IOError):
return [
output_api.PresubmitNotifyResult(
'Can\'t find your subversion config file.\n' + error_msg)
]
return []
def _CheckAuthorizedAuthor(input_api, output_api):
"""For non-googler/chromites committers, verify the author's email address is
in AUTHORS.
"""
# TODO(maruel): Add it to input_api?
import fnmatch
author = input_api.change.author_email
if not author:
input_api.logging.info('No author, skipping AUTHOR check')
return []
authors_path = input_api.os_path.join(