Do not double-unref send rights when using POLICY_SUBSTITUE_PORT.
[chromium-blink-merge.git] / DEPS
blob2b553dd2ae3acbe170a92b1bae46e2aa1311c011
1 # This file is automatically processed to create .DEPS.git which is the file
2 # that gclient uses under git.
4 # See http://code.google.com/p/chromium/wiki/UsingGit
6 # To test manually, run:
7 #   python tools/deps2git/deps2git.py -o .DEPS.git -w <gclientdir>
8 # where <gcliendir> is the absolute path to the directory containing the
9 # .gclient file (the parent of "src").
11 # Then commit .DEPS.git locally (gclient doesn't like dirty trees) and run
12 #   gclient sync
13 # Verify the thing happened you wanted. Then revert your .DEPS.git change
14 # DO NOT CHECK IN CHANGES TO .DEPS.git upstream. It will be automatically
15 # updated by a bot when you modify this one.
17 # When adding a new dependency, please update the top-level .gitignore file
18 # to list the dependency's destination directory.
20 vars = {
21   # Use this googlecode_url variable only if there is an internal mirror for it.
22   # If you do not know, use the full path while defining your new deps entry.
23   "googlecode_url": "http://%s.googlecode.com/svn",
24   "sourceforge_url": "http://svn.code.sf.net/p/%(repo)s/code",
25   "llvm_url": "http://src.chromium.org/llvm-project",
26   "llvm_git": "https://llvm.googlesource.com",
27   "libcxx_revision": "206024",
28   "libcxxabi_revision": "206024",
29   "webkit_trunk": "http://src.chromium.org/blink/trunk",
30   "nacl_trunk": "http://src.chromium.org/native_client/trunk",
31   "webkit_revision": "175314",
32   "chromium_git": "https://chromium.googlesource.com",
33   "chromiumos_git": "https://chromium.googlesource.com/chromiumos",
34   "pdfium_git": "https://pdfium.googlesource.com",
35   "skia_git": "https://skia.googlesource.com",
36   "swig_revision": "230490",
37   "nacl_revision": "13261",
38   # After changing nacl_revision, run 'glient sync' and check native_client/DEPS
39   # to update other nacl_*_revision's.
40   "nacl_tools_revision": "13077",  # native_client/DEPS: tools_rev
41   "google_toolbox_for_mac_revision": "662",
42   "libaddressinput_revision": "258",
43   "libphonenumber_revision": "621",
44   "libvpx_revision": "269083",
45   "lss_revision": "26",
46   "sfntly_revision": "228",
47   "lighttpd_revision": "33737",
48   "skia_revision": "1940df968da44ef95ddb332270aa23481552ca65",
49   # Three lines of non-changing comments so that
50   # the commit queue can handle CLs rolling Skia
51   # and V8 without interference from each other.
52   "v8_branch": "trunk",
53   "v8_revision": "21598",
54   # Three lines of non-changing comments so that
55   # the commit queue can handle CLs rolling WebRTC
56   # and V8 without interference from each other.
57   "webrtc_revision": "6261",
58   "jsoncpp_revision": "248",
59   "nss_revision": "271760",
60   # Three lines of non-changing comments so that
61   # the commit queue can handle CLs rolling swarming_client
62   # and whatever else without interference from each other.
63   "swarming_revision": "ae8085b09e6162b4ec869e430d7d09c16b32b433",
64   # Three lines of non-changing comments so that
65   # the commit queue can handle CLs rolling openssl
66   # and whatever else without interference from each other.
67   "openssl_revision": "271781",
68   # Three lines of non-changing comments so that
69   # the commit queue can handle CLs rolling ANGLE
70   # and whatever else without interference from each other.
71   "angle_revision": "d7e7d735ec75a6b0ff855447b20691c7fbb6c97e",
72   # Three lines of non-changing comments so that
73   # the commit queue can handle CLs rolling build tools
74   # and whatever else without interference from each other.
75   "buildtools_revision": "83ed7189066fd9b4b9ea15ffc2d4ab6d2da62571",
76   # Three lines of non-changing comments so that
77   # the commit queue can handle CLs rolling PDFIum
78   # and whatever else without interference from each other.
79   "pdfium_revision": "dbd4c06036f42d8dffe033ba112d6d7085dfe475",
82 deps = {
83   "src/breakpad/src":
84     (Var("googlecode_url") % "google-breakpad") + "/trunk/src@1331",
86   "src/buildtools":
87     Var("chromium_git") + "/chromium/buildtools.git@" +
88      Var("buildtools_revision"),
90   "src/sdch/open-vcdiff":
91     (Var("googlecode_url") % "open-vcdiff") + "/trunk@42",
93   "src/testing/gtest":
94     (Var("googlecode_url") % "googletest") + "/trunk@643",
96   "src/testing/gmock":
97     (Var("googlecode_url") % "googlemock") + "/trunk@410",
99   "src/third_party/angle":
100     Var("chromium_git") + "/angle/angle.git@" + Var("angle_revision"),
102   "src/third_party/trace-viewer":
103     (Var("googlecode_url") % "trace-viewer") + "/trunk@1281",
105   "src/third_party/WebKit":
106     Var("webkit_trunk") + "@" + Var("webkit_revision"),
108   "src/third_party/WebKit/LayoutTests/w3c/web-platform-tests":
109     Var("chromium_git") +
110     "/external/w3c/web-platform-tests.git@6bed4516fe8522d65512c76ef02e4f0ae8234395",
112   "src/third_party/WebKit/LayoutTests/w3c/csswg-test":
113     Var("chromium_git") +
114     "/external/w3c/csswg-test.git@bacbb4a8dca702cd86646761fde96793db13d4f1",
116   "src/third_party/icu":
117     "/trunk/deps/third_party/icu46@262949",
119   "src/third_party/libexif/sources":
120     "/trunk/deps/third_party/libexif/sources@265008",
122   "src/third_party/hunspell":
123    "/trunk/deps/third_party/hunspell@256272",
125   "src/third_party/hunspell_dictionaries":
126     "/trunk/deps/third_party/hunspell_dictionaries@255132",
128   "src/third_party/safe_browsing/testing":
129     (Var("googlecode_url") % "google-safe-browsing") + "/trunk/testing@112",
131   "src/third_party/cacheinvalidation/src":
132     (Var("googlecode_url") % "google-cache-invalidation-api") +
133     "/trunk/src@331",
135   "src/third_party/leveldatabase/src":
136     (Var("googlecode_url") % "leveldb") + "/trunk@80",
138   "src/third_party/libc++/trunk":
139     Var("llvm_url") + "/libcxx/trunk@" + Var("libcxx_revision"),
141   "src/third_party/libc++abi/trunk":
142     Var("llvm_url") + "/libcxxabi/trunk@" + Var("libcxxabi_revision"),
144   "src/third_party/snappy/src":
145     (Var("googlecode_url") % "snappy") + "/trunk@80",
147   "src/tools/grit":
148     (Var("googlecode_url") % "grit-i18n") + "/trunk@167",
150   "src/tools/gyp":
151     (Var("googlecode_url") % "gyp") + "/trunk@1921",
153   "src/tools/swarming_client":
154     Var("chromium_git") + "/external/swarming.client.git@" +
155         Var("swarming_revision"),
157   "src/v8":
158     (Var("googlecode_url") % "v8") + "/" + Var("v8_branch") + "@" +
159     Var("v8_revision"),
161   "src/native_client":
162     Var("nacl_trunk") + "/src/native_client@" + Var("nacl_revision"),
164   "src/chrome/test/data/extensions/api_test/permissions/nacl_enabled/bin":
165     Var("nacl_trunk") + "/src/native_client/tests/prebuilt@" +
166     Var("nacl_revision"),
168   "src/third_party/sfntly/cpp/src":
169     (Var("googlecode_url") % "sfntly") + "/trunk/cpp/src@" +
170     Var("sfntly_revision"),
172   "src/third_party/skia":
173     Var("chromium_git") + "/skia.git@" + Var("skia_revision"),
175   "src/third_party/ots":
176     (Var("googlecode_url") % "ots") + "/trunk@113",
178   "src/third_party/brotli/src":
179     Var("chromium_git") +
180     "/external/font-compression-reference.git@0829e37293abc2523a1d2b0f4d68ff7b5fcd8e01",
182   "src/tools/page_cycler/acid3":
183     "/trunk/deps/page_cycler/acid3@171600",
185   "src/chrome/test/data/perf/canvas_bench":
186     "/trunk/deps/canvas_bench@122605",
188   "src/chrome/test/data/perf/frame_rate/content":
189     "/trunk/deps/frame_rate/content@93671",
191   "src/chrome/test/data/perf/third_party/octane":
192     (Var("googlecode_url") % "octane-benchmark") + "/trunk@19",
194   "src/third_party/bidichecker":
195     (Var("googlecode_url") % "bidichecker") + "/trunk/lib@4",
197   "src/third_party/webgl/src":
198     Var("chromium_git") +
199     "/external/khronosgroup/webgl.git@0475a2763fc30cbed22740f8a9ef53a82f03b4ac",
201   "src/third_party/swig/Lib":
202     "/trunk/deps/third_party/swig/Lib@" + Var("swig_revision"),
204   # Make sure you update the two functional.DEPS and webdriver.DEPS too.
205   "src/third_party/webdriver/pylib":
206     (Var("googlecode_url") % "selenium") + "/trunk/py@18337",
208   "src/third_party/libvpx":
209     "/trunk/deps/third_party/libvpx@" +
210     Var("libvpx_revision"),
212   "src/third_party/ffmpeg":
213     Var("chromium_git") +
214     "/chromium/third_party/ffmpeg.git@96481cb9163681998d1407b0c951a4c951be1b04",
216   "src/third_party/libjingle/source/talk":
217     (Var("googlecode_url") % "webrtc") + "/trunk/talk@" +
218     Var("webrtc_revision"),
220   "src/third_party/usrsctp/usrsctplib":
221     (Var("googlecode_url") % "sctp-refimpl") +
222     "/trunk/KERN/usrsctp/usrsctplib@8875",
224   "src/third_party/libsrtp":
225     "/trunk/deps/third_party/libsrtp@261337",
227   "src/third_party/speex":
228     "/trunk/deps/third_party/speex@198168",
230   "src/third_party/yasm/source/patched-yasm":
231     "/trunk/deps/third_party/yasm/patched-yasm@167605",
233   "src/third_party/libjpeg_turbo":
234     "/trunk/deps/third_party/libjpeg_turbo@272637",
236   "src/third_party/flac":
237     "/trunk/deps/third_party/flac@222897",
239   "src/third_party/pyftpdlib/src":
240     (Var("googlecode_url") % "pyftpdlib") + "/trunk@977",
242   "src/third_party/scons-2.0.1":
243     Var("nacl_trunk") + "/src/third_party/scons-2.0.1@" +
244         Var("nacl_tools_revision"),
246   "src/third_party/webrtc":
247     (Var("googlecode_url") % "webrtc") + "/trunk/webrtc@" + Var("webrtc_revision"),
249   "src/third_party/openmax_dl":
250     (Var("googlecode_url") % "webrtc") + "/deps/third_party/openmax@6024",
252   "src/third_party/jsoncpp/source/include":
253     (Var("sourceforge_url") % {"repo": "jsoncpp"}) +
254         "/trunk/jsoncpp/include@" + Var("jsoncpp_revision"),
256   "src/third_party/jsoncpp/source/src/lib_json":
257     (Var("sourceforge_url") % {"repo": "jsoncpp"}) +
258         "/trunk/jsoncpp/src/lib_json@" + Var("jsoncpp_revision"),
260   "src/third_party/libyuv":
261     (Var("googlecode_url") % "libyuv") + "/trunk@1007",
263   "src/third_party/smhasher/src":
264     (Var("googlecode_url") % "smhasher") + "/trunk@152",
266   "src/third_party/libaddressinput/src/cpp":
267     (Var("googlecode_url") % "libaddressinput") + "/trunk/cpp@" +
268         Var("libaddressinput_revision"),
269   "src/third_party/libaddressinput/src/testdata":
270     (Var("googlecode_url") % "libaddressinput") + "/trunk/testdata@" +
271         Var("libaddressinput_revision"),
273   "src/third_party/libphonenumber/src/phonenumbers":
274     (Var("googlecode_url") % "libphonenumber") +
275         "/trunk/cpp/src/phonenumbers@" + Var("libphonenumber_revision"),
276   "src/third_party/libphonenumber/src/test":
277     (Var("googlecode_url") % "libphonenumber") + "/trunk/cpp/test@" +
278         Var("libphonenumber_revision"),
279   "src/third_party/libphonenumber/src/resources":
280     (Var("googlecode_url") % "libphonenumber") + "/trunk/resources@" +
281         Var("libphonenumber_revision"),
283   "src/tools/deps2git":
284     "/trunk/tools/deps2git@270777",
286   "src/third_party/clang_format/script":
287     Var("llvm_url") + "/cfe/trunk/tools/clang-format@206068",
289   "src/third_party/webpagereplay":
290     Var("chromium_git") + "/external/web-page-replay.git@" +
291     "d1447899a2176bc8700865e76ed70da329628abd",
293   "src/third_party/pywebsocket/src":
294     (Var("googlecode_url") % "pywebsocket") + "/trunk/src@790",
296   "src/third_party/opus/src":
297     "/trunk/deps/third_party/opus@256783",
299   "src/media/cdm/ppapi/api":
300     "/trunk/deps/cdm@262570",
302   "src/third_party/mesa/src":
303     "/trunk/deps/third_party/mesa@265279",
305   "src/third_party/cld_2/src":
306     (Var("googlecode_url") % "cld2") + "/trunk@161",
308   "src/chrome/browser/resources/pdf/html_office":
309      Var("chromium_git") +
310          "/chromium/html-office-public.git@eeff97614f65e0578529490d44d412032c3d7359",
312   "src/third_party/libwebm/source":
313     Var("chromium_git") +
314       "/webm/libwebm.git@acf788bedd1ddc0f4a8553c28a8b4e2266accbc9",
316   "src/third_party/openssl":
317     "/trunk/deps/third_party/openssl@" + Var("openssl_revision"),
319   "src/third_party/pdfium":
320     Var("pdfium_git") + "/pdfium.git@" + Var("pdfium_revision"),
324 deps_os = {
325   "win": {
326     "src/chrome/tools/test/reference_build/chrome_win":
327       "/trunk/deps/reference_builds/chrome_win@273882",
329     "src/third_party/cygwin":
330       "/trunk/deps/third_party/cygwin@231940",
332     "src/third_party/psyco_win32":
333       "/trunk/deps/third_party/psyco_win32@237949",
335     "src/third_party/bison":
336       "/trunk/deps/third_party/bison@147303",
338     "src/third_party/gperf":
339       "/trunk/deps/third_party/gperf@147304",
341     "src/third_party/perl":
342       "/trunk/deps/third_party/perl@147900",
344     "src/third_party/lighttpd":
345       "/trunk/deps/third_party/lighttpd@" + Var("lighttpd_revision"),
347     # Parses Windows PE/COFF executable format.
348     "src/third_party/pefile":
349       (Var("googlecode_url") % "pefile") + "/trunk@63",
351     # NSS, for SSLClientSocketNSS.
352     "src/third_party/nss":
353       "/trunk/deps/third_party/nss@" + Var("nss_revision"),
355     "src/third_party/swig/win":
356       "/trunk/deps/third_party/swig/win@" + Var("swig_revision"),
358     # GNU binutils assembler for x86-32.
359     "src/third_party/gnu_binutils":
360       (Var("nacl_trunk") + "/deps/third_party/gnu_binutils@" +
361        Var("nacl_tools_revision")),
362     # GNU binutils assembler for x86-64.
363     "src/third_party/mingw-w64/mingw/bin":
364       (Var("nacl_trunk") + "/deps/third_party/mingw-w64/mingw/bin@" +
365        Var("nacl_tools_revision")),
367     # Dependencies used by libjpeg-turbo
368     "src/third_party/yasm/binaries":
369       "/trunk/deps/third_party/yasm/binaries@154708",
371     # Binary level profile guided optimizations. This points to the
372     # latest release binaries for the toolchain.
373     "src/third_party/syzygy/binaries":
374       (Var("googlecode_url") % "sawbuck") + "/trunk/syzygy/binaries@2154",
376     # Binaries for nacl sdk.
377     "src/third_party/nacl_sdk_binaries":
378       "/trunk/deps/third_party/nacl_sdk_binaries@111576",
379   },
380   "ios": {
381     "src/third_party/google_toolbox_for_mac/src":
382       (Var("googlecode_url") % "google-toolbox-for-mac") + "/trunk@" +
383       Var("google_toolbox_for_mac_revision"),
385     "src/third_party/nss":
386       "/trunk/deps/third_party/nss@" + Var("nss_revision"),
388     # class-dump utility to generate header files for undocumented SDKs
389     "src/testing/iossim/third_party/class-dump":
390       "/trunk/deps/third_party/class-dump@199203",
392     # Code that's not needed due to not building everything
393     "src/build/util/support": None,
394     "src/chrome/test/data/extensions/api_test/permissions/nacl_enabled/bin": None,
395     "src/chrome/test/data/perf/canvas_bench": None,
396     "src/chrome/test/data/perf/frame_rate/content": None,
397     "src/chrome/test/data/perf/third_party/octane": None,
398     "src/media/cdm/ppapi/api": None,
399     "src/native_client": None,
400     "src/native_client/src/third_party/ppapi": None,
401     "src/third_party/angle": None,
402     "src/third_party/bidichecker": None,
403     "src/third_party/brotli/src": None,
404     "src/third_party/cld_2/src": None,
405     "src/third_party/ffmpeg": None,
406     "src/third_party/hunspell_dictionaries": None,
407     "src/third_party/hunspell": None,
408     "src/third_party/libaddressinput/src/cpp": None,
409     "src/third_party/libaddressinput/src/testdata": None,
410     "src/third_party/libc++/trunk": None,
411     "src/third_party/libc++abi/trunk": None,
412     "src/third_party/libexif/sources": None,
413     "src/third_party/libjpeg_turbo": None,
414     "src/third_party/libsrtp": None,
415     "src/third_party/libvpx": None,
416     "src/third_party/libyuv": None,
417     "src/third_party/mesa/src": None,
418     "src/third_party/opus/src": None,
419     "src/third_party/openmax_dl": None,
420     "src/third_party/ots": None,
421     "src/third_party/pymox/src": None,
422     "src/third_party/safe_browsing/testing": None,
423     "src/third_party/scons-2.0.1": None,
424     "src/third_party/sfntly/cpp/src": None,
425     "src/third_party/speex": None,
426     "src/third_party/swig/Lib": None,
427     "src/third_party/usrsctp/usrsctplib": None,
428     "src/third_party/v8-i18n": None,
429     "src/third_party/webdriver/pylib": None,
430     "src/third_party/webgl": None,
431     "src/third_party/webpagereplay": None,
432     "src/third_party/webrtc": None,
433     "src/third_party/WebKit/LayoutTests/w3c/web-platform-tests": None,
434     "src/third_party/WebKit/LayoutTests/w3c/csswg-test": None,
435     "src/third_party/yasm/source/patched-yasm": None,
436     "src/tools/page_cycler/acid3": None,
437     "src/v8": None,
438   },
439   "mac": {
440     "src/chrome/tools/test/reference_build/chrome_mac":
441       "/trunk/deps/reference_builds/chrome_mac@273882",
443     "src/third_party/google_toolbox_for_mac/src":
444       (Var("googlecode_url") % "google-toolbox-for-mac") + "/trunk@" +
445       Var("google_toolbox_for_mac_revision"),
447     "src/third_party/pdfsqueeze":
448       (Var("googlecode_url") % "pdfsqueeze") + "/trunk@5",
450     "src/third_party/lighttpd":
451       "/trunk/deps/third_party/lighttpd@" + Var("lighttpd_revision"),
453     "src/third_party/swig/mac":
454       "/trunk/deps/third_party/swig/mac@" + Var("swig_revision"),
456     # NSS, for SSLClientSocketNSS.
457     "src/third_party/nss":
458       "/trunk/deps/third_party/nss@" + Var("nss_revision"),
460     "src/chrome/installer/mac/third_party/xz/xz":
461       "/trunk/deps/third_party/xz@233311",
462   },
463   "unix": {
464     # Linux, really.
465     "src/chrome/tools/test/reference_build/chrome_linux":
466       "/trunk/deps/reference_builds/chrome_linux64@273882",
468     "src/third_party/xdg-utils":
469       "/trunk/deps/third_party/xdg-utils@203785",
471     "src/third_party/swig/linux":
472       "/trunk/deps/third_party/swig/linux@" + Var("swig_revision"),
474     "src/third_party/lss":
475       ((Var("googlecode_url") % "linux-syscall-support") + "/trunk/lss@" +
476        Var("lss_revision")),
478     # For Linux and Chromium OS.
479     "src/third_party/cros_system_api":
480       Var("chromiumos_git") + "/platform/system_api.git" +
481       "@7837af4f429eb20ca62f32a8dc6019b5b8b9078e",
483     # Note that this is different from Android's freetype repo.
484     "src/third_party/freetype2/src":
485       Var("chromium_git") + "/chromium/src/third_party/freetype2.git" +
486       "@d699c2994ecc178c4ed05ac2086061b2034c2178",
488     # Build tools for targeting ChromeOS.
489     "src/third_party/chromite":
490       Var("chromiumos_git") + "/chromite.git" +
491       "@ff441bf434f22888b09cd65daa86d9aa2982f650",
493     # Dependency of chromite.git.
494     "src/third_party/pyelftools":
495       Var("chromiumos_git") + "/third_party/pyelftools.git" +
496       "@bdc1d380acd88d4bfaf47265008091483b0d614e",
498     "src/third_party/undoview":
499       "/trunk/deps/third_party/undoview@119694",
501     "src/third_party/liblouis/src":
502       Var("chromium_git") +
503       "/external/liblouis.git@3c2daee56250162e5a75830871601d74328d39f5",
505     # Used for embedded builds. CrOS & Linux use the system version.
506     "src/third_party/fontconfig/src":
507       Var("chromium_git") + "/external/fontconfig.git" +
508       "@f16c3118e25546c1b749f9823c51827a60aeb5c1",
509   },
510   "android": {
511     "src/third_party/android_tools":
512       Var("chromium_git") + "/android_tools.git" +
513       "@ac519ee39778f7a1f2aac797a941a6b3db9d3882",
515     "src/third_party/aosp":
516       "/trunk/deps/third_party/aosp@148330",
518     "src/third_party/apache-mime4j":
519       "/trunk/deps/third_party/apache-mime4j@170888",
521     "src/third_party/findbugs":
522       "/trunk/deps/third_party/findbugs@245039",
524     "src/third_party/freetype":
525       Var("chromium_git") + "/chromium/src/third_party/freetype.git" +
526       "@a2b9955b49034a51dfbc8bf9f4e9d312149cecac",
528     "src/third_party/guava/src":
529       Var("chromium_git") + "/external/guava-libraries.git" +
530       "@c523556ab7d0f05afadebd20e7768d4c16af8771",
532    "src/third_party/elfutils/src":
533       Var("chromium_git") + "/external/elfutils.git" +
534       "@43a97297be82feab4b3176a094ed701ad3ccb308",
536     "src/third_party/httpcomponents-client":
537       "/trunk/deps/third_party/httpcomponents-client@170888",
539     "src/third_party/httpcomponents-core":
540       "/trunk/deps/third_party/httpcomponents-core@170888",
542     "src/third_party/jarjar":
543       "/trunk/deps/third_party/jarjar@170888",
545     "src/third_party/jsr-305/src":
546       (Var("googlecode_url") % "jsr-305") + "/trunk@51",
548     "src/third_party/lss":
549       ((Var("googlecode_url") % "linux-syscall-support") + "/trunk/lss@" +
550        Var("lss_revision")),
552     "src/third_party/eyesfree/src/android/java/src/com/googlecode/eyesfree/braille":
553       (Var("googlecode_url") % "eyes-free") + "/trunk/braille/client/src/com/googlecode/eyesfree/braille@797",
555     # Android shouldn't use this address validation library.
556     "src/third_party/libaddressinput/src/cpp": None,
557     "src/third_party/libaddressinput/src/testdata": None,
558   },
562 include_rules = [
563   # Everybody can use some things.
564   "+base",
565   "+build",
566   "+ipc",
568   # Everybody can use headers generated by tools/generate_library_loader.
569   "+library_loaders",
571   "+testing",
572   "+third_party/icu/source/common/unicode",
573   "+third_party/icu/source/i18n/unicode",
574   "+url",
578 # checkdeps.py shouldn't check include paths for files in these dirs:
579 skip_child_includes = [
580   "breakpad",
581   "delegate_execute",
582   "metro_driver",
583   "native_client_sdk",
584   "o3d",
585   "pdf",
586   "sdch",
587   "skia",
588   "testing",
589   "third_party",
590   "v8",
591   "win8",
595 hooks = [
596   {
597     # This downloads binaries for Native Client's newlib toolchain.
598     # Done in lieu of building the toolchain from scratch as it can take
599     # anywhere from 30 minutes to 4 hours depending on platform to build.
600     "name": "nacltools",
601     "pattern": ".",
602     "action": [
603         "python", "src/build/download_nacl_toolchains.py",
604         "--exclude", "arm_trusted",
605     ],
606   },
607   {
608     # Downloads an ARM sysroot image to src/arm-sysroot. This image updates
609     # at about the same rate that the chrome build deps change.
610     # This script is a no-op except for linux users who have
611     # target_arch=arm in their GYP_DEFINES.
612     "name": "sysroot",
613     "pattern": ".",
614     "action": ["python", "src/build/linux/install-arm-sysroot.py",
615                "--linux-only"],
616   },
617   {
618     # Downloads the Debian Wheezy sysroot to chrome/installer/linux if needed.
619     # This sysroot updates at about the same rate that the chrome build deps
620     # change. This script is a no-op except for linux users who are doing
621     # official chrome builds.
622     "name": "sysroot",
623     "pattern": ".",
624     "action": [
625         "python",
626         "src/chrome/installer/linux/sysroot_scripts/install-debian.wheezy.sysroot.py",
627         "--linux-only",
628         "--arch=amd64"],
629   },
630   {
631     # Same as above, but for 32-bit Linux.
632     "name": "sysroot",
633     "pattern": ".",
634     "action": [
635         "python",
636         "src/chrome/installer/linux/sysroot_scripts/install-debian.wheezy.sysroot.py",
637         "--linux-only",
638         "--arch=i386"],
639   },
640   {
641     # Pull clang if on Mac or clang is requested via GYP_DEFINES.
642     "name": "clang",
643     "pattern": ".",
644     "action": ["python", "src/tools/clang/scripts/update.py", "--if-needed"],
645   },
646   {
647     # Update the Windows toolchain if necessary.
648     "name": "win_toolchain",
649     "pattern": ".",
650     "action": ["python", "src/build/vs_toolchain.py", "update"],
651   },
652   {
653     # Update LASTCHANGE. This is also run by export_tarball.py in
654     # src/tools/export_tarball - please keep them in sync.
655     "name": "lastchange",
656     "pattern": ".",
657     "action": ["python", "src/build/util/lastchange.py",
658                "-o", "src/build/util/LASTCHANGE"],
659   },
660   {
661     # Update LASTCHANGE.blink. This is also run by export_tarball.py in
662     # src/tools/export_tarball - please keep them in sync.
663     "name": "lastchange",
664     "pattern": ".",
665     "action": ["python", "src/build/util/lastchange.py",
666                "-s", "src/third_party/WebKit",
667                "-o", "src/build/util/LASTCHANGE.blink"],
668   },
669   # Pull GN binaries. This needs to be before running GYP below.
670   {
671     "name": "gn_win",
672     "pattern": ".",
673     "action": [ "download_from_google_storage",
674                 "--no_resume",
675                 "--platform=win32",
676                 "--no_auth",
677                 "--bucket", "chromium-gn",
678                 "-s", "src/tools/gn/bin/win/gn.exe.sha1",
679     ],
680   },
681   {
682     "name": "gn_mac",
683     "pattern": ".",
684     "action": [ "download_from_google_storage",
685                 "--no_resume",
686                 "--platform=darwin",
687                 "--no_auth",
688                 "--bucket", "chromium-gn",
689                 "-s", "src/tools/gn/bin/mac/gn.sha1",
690     ],
691   },
692   {
693     "name": "gn_linux",
694     "pattern": ".",
695     "action": [ "download_from_google_storage",
696                 "--no_resume",
697                 "--platform=linux*",
698                 "--no_auth",
699                 "--bucket", "chromium-gn",
700                 "-s", "src/tools/gn/bin/linux/gn.sha1",
701     ],
702   },
703   {
704     "name": "gn_linux32",
705     "pattern": ".",
706     "action": [ "download_from_google_storage",
707                 "--no_resume",
708                 "--platform=linux*",
709                 "--no_auth",
710                 "--bucket", "chromium-gn",
711                 "-s", "src/tools/gn/bin/linux/gn32.sha1",
712     ],
713   },
714   # Pull clang-format binaries using checked-in hashes.
715   {
716     "name": "clang_format_win",
717     "pattern": ".",
718     "action": [ "download_from_google_storage",
719                 "--no_resume",
720                 "--platform=win32",
721                 "--no_auth",
722                 "--bucket", "chromium-clang-format",
723                 "-s", "src/third_party/clang_format/bin/win/clang-format.exe.sha1",
724     ],
725   },
726   {
727     "name": "clang_format_mac",
728     "pattern": ".",
729     "action": [ "download_from_google_storage",
730                 "--no_resume",
731                 "--platform=darwin",
732                 "--no_auth",
733                 "--bucket", "chromium-clang-format",
734                 "-s", "src/third_party/clang_format/bin/mac/clang-format.sha1",
735     ],
736   },
737   {
738     "name": "clang_format_linux",
739     "pattern": ".",
740     "action": [ "download_from_google_storage",
741                 "--no_resume",
742                 "--platform=linux*",
743                 "--no_auth",
744                 "--bucket", "chromium-clang-format",
745                 "-s", "src/third_party/clang_format/bin/linux/clang-format.sha1",
746     ],
747   },
748   # Pull binutils for linux, enabled debug fission for faster linking /
749   # debugging when used with clang on Ubuntu Precise.
750   # https://code.google.com/p/chromium/issues/detail?id=352046
751   {
752     "name": "binutils",
753     "pattern": "src/third_party/binutils",
754     "action": [
755         "python",
756         "src/third_party/binutils/download.py",
757     ],
758   },
759   # Pull eu-strip binaries using checked-in hashes.
760   {
761     "name": "eu-strip",
762     "pattern": ".",
763     "action": [ "download_from_google_storage",
764                 "--no_resume",
765                 "--platform=linux*",
766                 "--no_auth",
767                 "--bucket", "chromium-eu-strip",
768                 "-s", "src/build/linux/bin/eu-strip.sha1",
769     ],
770   },
771   {
772     # A change to a .gyp, .gypi, or to GYP itself should run the generator.
773     "name": "gyp",
774     "pattern": ".",
775     "action": ["python", "src/build/gyp_chromium"],
776   },