Remove a bunch of cruft from //build.

R=jamesr@chromium.org

Review URL: https://codereview.chromium.org/1432403002 .
diff --git a/build/README.chromium b/build/README.chromium
deleted file mode 100644
index 012df35..0000000
--- a/build/README.chromium
+++ /dev/null
@@ -1,15 +0,0 @@
-List of property sheets to be included by projects:
-  common.vsprops
-    Not used anymore. No-op. Kept for compatibility with current projects.
-
-  debug.vsprops
-    Enables debug settings. Must be included directly in Debug configuration. Includes internal\essential.vsprops.
-
-  external_code.vsprops
-    Contains settings made to simplify usage of external (non-Google) code. It relaxes the warning levels. Should be included after debug.vsprops or release.vsprops to override their settings.
-
-  output_dll_copy.rules
-    Run to enable automatic copy of DLL when they are as an input file in a vcproj project.
-
-  release.vsprops
-    Enables release settings. Must be included directly in Release configuration. Includes internal\essential.vsprops. Also includes "internal\release_impl$(CHROME_BUILD_TYPE).vsprops". So the behavior is dependant on the CHROME_BUILD_TYPE environment variable.
diff --git a/build/apply_locales.py b/build/apply_locales.py
deleted file mode 100755
index 6af7280..0000000
--- a/build/apply_locales.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2009 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.
-
-# TODO: remove this script when GYP has for loops
-
-import sys
-import optparse
-
-def main(argv):
-
-  parser = optparse.OptionParser()
-  usage = 'usage: %s [options ...] format_string locale_list'
-  parser.set_usage(usage.replace('%s', '%prog'))
-  parser.add_option('-d', dest='dash_to_underscore', action="store_true",
-                    default=False,
-                    help='map "en-US" to "en" and "-" to "_" in locales')
-
-  (options, arglist) = parser.parse_args(argv)
-
-  if len(arglist) < 3:
-    print 'ERROR: need string and list of locales'
-    return 1
-
-  str_template = arglist[1]
-  locales = arglist[2:]
-
-  results = []
-  for locale in locales:
-    # For Cocoa to find the locale at runtime, it needs to use '_' instead
-    # of '-' (http://crbug.com/20441).  Also, 'en-US' should be represented
-    # simply as 'en' (http://crbug.com/19165, http://crbug.com/25578).
-    if options.dash_to_underscore:
-      if locale == 'en-US':
-        locale = 'en'
-      locale = locale.replace('-', '_')
-    results.append(str_template.replace('ZZLOCALE', locale))
-
-  # Quote each element so filename spaces don't mess up GYP's attempt to parse
-  # it into a list.
-  print ' '.join(["'%s'" % x for x in results])
-
-if __name__ == '__main__':
-  sys.exit(main(sys.argv))
diff --git a/build/branding_value.sh b/build/branding_value.sh
deleted file mode 100755
index 9fcb550..0000000
--- a/build/branding_value.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/sh
-
-# Copyright (c) 2008 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.
-
-# This is a wrapper for fetching values from the BRANDING files.  Pass the
-# value of GYP's branding variable followed by the key you want and the right
-# file is checked.
-#
-#  branding_value.sh Chromium COPYRIGHT
-#  branding_value.sh Chromium PRODUCT_FULLNAME
-#
-
-set -e
-
-if [ $# -ne 2 ] ;  then
-  echo "error: expect two arguments, branding and key" >&2
-  exit 1
-fi
-
-BUILD_BRANDING=$1
-THE_KEY=$2
-
-pushd $(dirname "${0}") > /dev/null
-BUILD_DIR=$(pwd)
-popd > /dev/null
-
-TOP="${BUILD_DIR}/.."
-
-case ${BUILD_BRANDING} in
-  Chromium)
-    BRANDING_FILE="${TOP}/chrome/app/theme/chromium/BRANDING"
-    ;;
-  Chrome)
-    BRANDING_FILE="${TOP}/chrome/app/theme/google_chrome/BRANDING"
-    ;;
-  *)
-    echo "error: unknown branding: ${BUILD_BRANDING}" >&2
-    exit 1
-    ;;
-esac
-
-BRANDING_VALUE=$(sed -n -e "s/^${THE_KEY}=\(.*\)\$/\1/p" "${BRANDING_FILE}")
-
-if [ -z "${BRANDING_VALUE}" ] ; then
-  echo "error: failed to find key '${THE_KEY}'" >&2
-  exit 1
-fi
-
-echo "${BRANDING_VALUE}"
diff --git a/build/check_return_value.py b/build/check_return_value.py
deleted file mode 100755
index c659d1e..0000000
--- a/build/check_return_value.py
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2014 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.
-
-"""This program wraps an arbitrary command and prints "1" if the command ran
-successfully."""
-
-import os
-import subprocess
-import sys
-
-devnull = open(os.devnull, 'wb')
-if not subprocess.call(sys.argv[1:], stdout=devnull, stderr=devnull):
-  print 1
-else:
-  print 0
diff --git a/build/common.croc b/build/common.croc
deleted file mode 100644
index fde7a8b..0000000
--- a/build/common.croc
+++ /dev/null
@@ -1,127 +0,0 @@
-# -*- python -*-
-# Crocodile config file for Chromium - settings common to all platforms
-#
-# This should be speicified before the platform-specific config, for example:
-#       croc -c chrome_common.croc -c linux/chrome_linux.croc
-
-{
-  # List of root directories, applied in order
-  'roots' : [
-    # Sub-paths we specifically care about and want to call out
-    {
-      'root' : '_/src',
-      'altname' : 'CHROMIUM',
-    },
-  ],
-
-  # List of rules, applied in order
-  # Note that any 'include':0 rules here will be overridden by the 'include':1
-  # rules in the platform-specific configs.
-  'rules' : [
-    # Don't scan for executable lines in uninstrumented C++ header files
-    {
-      'regexp' : '.*\\.(h|hpp)$',
-      'add_if_missing' : 0,
-    },
-
-    # Groups
-    {
-      'regexp' : '',
-      'group' : 'source',
-    },
-    {
-      'regexp' : '.*_(test|unittest|uitest|browsertest)\\.',
-      'group' : 'test',
-    },
-
-    # Languages
-    {
-      'regexp' : '.*\\.(c|h)$',
-      'language' : 'C',
-    },
-    {
-      'regexp' : '.*\\.(cc|cpp|hpp)$',
-      'language' : 'C++',
-    },
-
-    # Files/paths to include.  Specify these before the excludes, since rules
-    # are in order.
-    {
-      'regexp' : '^CHROMIUM/(base|media|net|printing|remoting|chrome|content|webkit/glue|native_client)/',
-      'include' : 1,
-    },
-    # Don't include subversion or mercurial SCM dirs
-    {
-      'regexp' : '.*/(\\.svn|\\.hg)/',
-      'include' : 0,
-    },
-    # Don't include output dirs
-    {
-      'regexp' : '.*/(Debug|Release|out|xcodebuild)/',
-      'include' : 0,
-    },
-    # Don't include third-party source
-    {
-      'regexp' : '.*/third_party/',
-      'include' : 0,
-    },
-    # We don't run the V8 test suite, so we don't care about V8 coverage.
-    {
-      'regexp' : '.*/v8/',
-      'include' : 0,
-    },
-  ],
-
-  # Paths to add source from
-  'add_files' : [
-    'CHROMIUM'
-  ],
-
-  # Statistics to print
-  'print_stats' : [
-    {
-      'stat' : 'files_executable',
-      'format' : '*RESULT FilesKnown: files_executable= %d files',
-    },
-    {
-      'stat' : 'files_instrumented',
-      'format' : '*RESULT FilesInstrumented: files_instrumented= %d files',
-    },
-    {
-      'stat' : '100.0 * files_instrumented / files_executable',
-      'format' : '*RESULT FilesInstrumentedPercent: files_instrumented_percent= %g percent',
-    },
-    {
-      'stat' : 'lines_executable',
-      'format' : '*RESULT LinesKnown: lines_known= %d lines',
-    },
-    {
-      'stat' : 'lines_instrumented',
-      'format' : '*RESULT LinesInstrumented: lines_instrumented= %d lines',
-    },
-    {
-      'stat' : 'lines_covered',
-      'format' : '*RESULT LinesCoveredSource: lines_covered_source= %d lines',
-      'group' : 'source',
-    },
-    {
-      'stat' : 'lines_covered',
-      'format' : '*RESULT LinesCoveredTest: lines_covered_test= %d lines',
-      'group' : 'test',
-    },
-    {
-      'stat' : '100.0 * lines_covered / lines_executable',
-      'format' : '*RESULT PercentCovered: percent_covered= %g percent',
-    },
-    {
-      'stat' : '100.0 * lines_covered / lines_executable',
-      'format' : '*RESULT PercentCoveredSource: percent_covered_source= %g percent',
-      'group' : 'source',
-    },
-    {
-      'stat' : '100.0 * lines_covered / lines_executable',
-      'format' : '*RESULT PercentCoveredTest: percent_covered_test= %g percent',
-      'group' : 'test',
-    },
-  ],
-}
diff --git a/build/cp.py b/build/cp.py
deleted file mode 100755
index 0f32536..0000000
--- a/build/cp.py
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 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.
-
-"""Copy a file.
-
-This module works much like the cp posix command - it takes 2 arguments:
-(src, dst) and copies the file with path |src| to |dst|.
-"""
-
-import os
-import shutil
-import sys
-
-
-def Main(src, dst):
-  # Use copy instead of copyfile to ensure the executable bit is copied.
-  return shutil.copy(src, os.path.normpath(dst))
-
-
-if __name__ == '__main__':
-  sys.exit(Main(sys.argv[1], sys.argv[2]))
diff --git a/build/env_dump.py b/build/env_dump.py
deleted file mode 100755
index 21edfe6..0000000
--- a/build/env_dump.py
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/python
-# Copyright 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.
-
-# This script can either source a file and dump the enironment changes done by
-# it, or just simply dump the current environment as JSON into a file.
-
-import json
-import optparse
-import os
-import pipes
-import subprocess
-import sys
-
-
-def main():
-  parser = optparse.OptionParser()
-  parser.add_option('-f', '--output-json',
-                    help='File to dump the environment as JSON into.')
-  parser.add_option(
-      '-d', '--dump-mode', action='store_true',
-      help='Dump the environment to sys.stdout and exit immediately.')
-
-  parser.disable_interspersed_args()
-  options, args = parser.parse_args()
-  if options.dump_mode:
-    if args or options.output_json:
-      parser.error('Cannot specify args or --output-json with --dump-mode.')
-    json.dump(dict(os.environ), sys.stdout)
-  else:
-    if not options.output_json:
-      parser.error('Requires --output-json option.')
-
-    envsetup_cmd = ' '.join(map(pipes.quote, args))
-    full_cmd = [
-        'bash', '-c',
-        '. %s > /dev/null; %s -d' % (envsetup_cmd, os.path.abspath(__file__))
-    ]
-    try:
-      output = subprocess.check_output(full_cmd)
-    except Exception as e:
-      sys.exit('Error running %s and dumping environment.' % envsetup_cmd)
-
-    env_diff = {}
-    new_env = json.loads(output)
-    for k, val in new_env.items():
-      if k == '_' or (k in os.environ and os.environ[k] == val):
-        continue
-      env_diff[k] = val
-    with open(options.output_json, 'w') as f:
-      json.dump(env_diff, f)
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/build/extract_from_cab.py b/build/extract_from_cab.py
deleted file mode 100755
index 080370c..0000000
--- a/build/extract_from_cab.py
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 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.
-
-"""Extracts a single file from a CAB archive."""
-
-import os
-import shutil
-import subprocess
-import sys
-import tempfile
-
-def run_quiet(*args):
-  """Run 'expand' suppressing noisy output. Returns returncode from process."""
-  popen = subprocess.Popen(args, stdout=subprocess.PIPE)
-  out, _ = popen.communicate()
-  if popen.returncode:
-    # expand emits errors to stdout, so if we fail, then print that out.
-    print out
-  return popen.returncode
-
-def main():
-  if len(sys.argv) != 4:
-    print 'Usage: extract_from_cab.py cab_path archived_file output_dir'
-    return 1
-
-  [cab_path, archived_file, output_dir] = sys.argv[1:]
-
-  # Expand.exe does its work in a fixed-named temporary directory created within
-  # the given output directory. This is a problem for concurrent extractions, so
-  # create a unique temp dir within the desired output directory to work around
-  # this limitation.
-  temp_dir = tempfile.mkdtemp(dir=output_dir)
-
-  try:
-    # Invoke the Windows expand utility to extract the file.
-    level = run_quiet('expand', cab_path, '-F:' + archived_file, temp_dir)
-    if level == 0:
-      # Move the output file into place, preserving expand.exe's behavior of
-      # paving over any preexisting file.
-      output_file = os.path.join(output_dir, archived_file)
-      try:
-        os.remove(output_file)
-      except OSError:
-        pass
-      os.rename(os.path.join(temp_dir, archived_file), output_file)
-  finally:
-    shutil.rmtree(temp_dir, True)
-
-  if level != 0:
-    return level
-
-  # The expand utility preserves the modification date and time of the archived
-  # file. Touch the extracted file. This helps build systems that compare the
-  # modification times of input and output files to determine whether to do an
-  # action.
-  os.utime(os.path.join(output_dir, archived_file), None)
-  return 0
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/build/find_isolated_tests.py b/build/find_isolated_tests.py
deleted file mode 100755
index c5b3ab7..0000000
--- a/build/find_isolated_tests.py
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2014 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.
-
-"""Scans build output directory for .isolated files, calculates their SHA1
-hashes, stores final list in JSON document and then removes *.isolated files
-found (to ensure no stale *.isolated stay around on the next build).
-
-Used to figure out what tests were build in isolated mode to trigger these
-tests to run on swarming.
-
-For more info see:
-https://sites.google.com/a/chromium.org/dev/developers/testing/isolated-testing
-"""
-
-import glob
-import hashlib
-import json
-import optparse
-import os
-import re
-import sys
-
-
-def hash_file(filepath):
-  """Calculates the hash of a file without reading it all in memory at once."""
-  digest = hashlib.sha1()
-  with open(filepath, 'rb') as f:
-    while True:
-      chunk = f.read(1024*1024)
-      if not chunk:
-        break
-      digest.update(chunk)
-  return digest.hexdigest()
-
-
-def main():
-  parser = optparse.OptionParser(
-      usage='%prog --build-dir <path> --output-json <path>',
-      description=sys.modules[__name__].__doc__)
-  parser.add_option(
-      '--build-dir',
-      help='Path to a directory to search for *.isolated files.')
-  parser.add_option(
-      '--output-json',
-      help='File to dump JSON results into.')
-
-  options, _ = parser.parse_args()
-  if not options.build_dir:
-    parser.error('--build-dir option is required')
-  if not options.output_json:
-    parser.error('--output-json option is required')
-
-  result = {}
-
-  # Get the file hash values and output the pair.
-  pattern = os.path.join(options.build_dir, '*.isolated')
-  for filepath in sorted(glob.glob(pattern)):
-    test_name = os.path.splitext(os.path.basename(filepath))[0]
-    if re.match(r'^.+?\.\d$', test_name):
-      # It's a split .isolated file, e.g. foo.0.isolated. Ignore these.
-      continue
-
-    # TODO(csharp): Remove deletion once the isolate tracked dependencies are
-    # inputs for the isolated files.
-    sha1_hash = hash_file(filepath)
-    os.remove(filepath)
-    result[test_name] = sha1_hash
-
-  with open(options.output_json, 'wb') as f:
-    json.dump(result, f)
-
-  return 0
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/build/get_syzygy_binaries.py b/build/get_syzygy_binaries.py
deleted file mode 100755
index 2577c7c..0000000
--- a/build/get_syzygy_binaries.py
+++ /dev/null
@@ -1,451 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2014 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.
-
-"""A utility script for downloading versioned Syzygy binaries."""
-
-import cStringIO
-import hashlib
-import errno
-import json
-import logging
-import optparse
-import os
-import re
-import shutil
-import stat
-import sys
-import subprocess
-import urllib2
-import zipfile
-
-
-_LOGGER = logging.getLogger(os.path.basename(__file__))
-
-# The URL where official builds are archived.
-_SYZYGY_ARCHIVE_URL = ('https://syzygy-archive.commondatastorage.googleapis.com'
-    '/builds/official/%(revision)s')
-
-# A JSON file containing the state of the download directory. If this file and
-# directory state do not agree, then the binaries will be downloaded and
-# installed again.
-_STATE = '.state'
-
-# This matches an integer (an SVN revision number) or a SHA1 value (a GIT hash).
-# The archive exclusively uses lowercase GIT hashes.
-_REVISION_RE = re.compile('^(?:\d+|[a-f0-9]{40})$')
-
-# This matches an MD5 hash.
-_MD5_RE = re.compile('^[a-f0-9]{32}$')
-
-# List of reources to be downloaded and installed. These are tuples with the
-# following format:
-# (basename, logging name, relative installation path, extraction filter)
-_RESOURCES = [
-  ('benchmark.zip', 'benchmark', '', None),
-  ('binaries.zip', 'binaries', 'exe', None),
-  ('symbols.zip', 'symbols', 'exe',
-      lambda x: x.filename.endswith('.dll.pdb'))]
-
-
-def _Shell(*cmd, **kw):
-  """Runs |cmd|, returns the results from Popen(cmd).communicate()."""
-  _LOGGER.debug('Executing %s.', cmd)
-  prog = subprocess.Popen(cmd, shell=True, **kw)
-
-  stdout, stderr = prog.communicate()
-  if prog.returncode != 0:
-    raise RuntimeError('Command "%s" returned %d.' % (cmd, prog.returncode))
-  return (stdout, stderr)
-
-
-def _LoadState(output_dir):
-  """Loads the contents of the state file for a given |output_dir|, returning
-  None if it doesn't exist.
-  """
-  path = os.path.join(output_dir, _STATE)
-  if not os.path.exists(path):
-    _LOGGER.debug('No state file found.')
-    return None
-  with open(path, 'rb') as f:
-    _LOGGER.debug('Reading state file: %s', path)
-    try:
-      return json.load(f)
-    except ValueError:
-      _LOGGER.debug('Invalid state file.')
-      return None
-
-
-def _SaveState(output_dir, state, dry_run=False):
-  """Saves the |state| dictionary to the given |output_dir| as a JSON file."""
-  path = os.path.join(output_dir, _STATE)
-  _LOGGER.debug('Writing state file: %s', path)
-  if dry_run:
-    return
-  with open(path, 'wb') as f:
-    f.write(json.dumps(state, sort_keys=True, indent=2))
-
-
-def _Md5(path):
-  """Returns the MD5 hash of the file at |path|, which must exist."""
-  return hashlib.md5(open(path, 'rb').read()).hexdigest()
-
-
-def _StateIsValid(state):
-  """Returns true if the given state structure is valid."""
-  if not isinstance(state, dict):
-    _LOGGER.debug('State must be a dict.')
-    return False
-  r = state.get('revision', None)
-  if not isinstance(r, basestring) or not _REVISION_RE.match(r):
-    _LOGGER.debug('State contains an invalid revision.')
-    return False
-  c = state.get('contents', None)
-  if not isinstance(c, dict):
-    _LOGGER.debug('State must contain a contents dict.')
-    return False
-  for (relpath, md5) in c.iteritems():
-    if not isinstance(relpath, basestring) or len(relpath) == 0:
-      _LOGGER.debug('State contents dict contains an invalid path.')
-      return False
-    if not isinstance(md5, basestring) or not _MD5_RE.match(md5):
-      _LOGGER.debug('State contents dict contains an invalid MD5 digest.')
-      return False
-  return True
-
-
-def _BuildActualState(stored, revision, output_dir):
-  """Builds the actual state using the provided |stored| state as a template.
-  Only examines files listed in the stored state, causing the script to ignore
-  files that have been added to the directories locally. |stored| must be a
-  valid state dictionary.
-  """
-  contents = {}
-  state = { 'revision': revision, 'contents': contents }
-  for relpath, md5 in stored['contents'].iteritems():
-    abspath = os.path.abspath(os.path.join(output_dir, relpath))
-    if os.path.isfile(abspath):
-      m = _Md5(abspath)
-      contents[relpath] = m
-
-  return state
-
-
-def _StatesAreConsistent(stored, actual):
-  """Validates whether two state dictionaries are consistent. Both must be valid
-  state dictionaries. Additional entries in |actual| are ignored.
-  """
-  if stored['revision'] != actual['revision']:
-    _LOGGER.debug('Mismatched revision number.')
-    return False
-  cont_stored = stored['contents']
-  cont_actual = actual['contents']
-  for relpath, md5 in cont_stored.iteritems():
-    if relpath not in cont_actual:
-      _LOGGER.debug('Missing content: %s', relpath)
-      return False
-    if md5 != cont_actual[relpath]:
-      _LOGGER.debug('Modified content: %s', relpath)
-      return False
-  return True
-
-
-def _GetCurrentState(revision, output_dir):
-  """Loads the current state and checks to see if it is consistent. Returns
-  a tuple (state, bool). The returned state will always be valid, even if an
-  invalid state is present on disk.
-  """
-  stored = _LoadState(output_dir)
-  if not _StateIsValid(stored):
-    _LOGGER.debug('State is invalid.')
-    # Return a valid but empty state.
-    return ({'revision': '0', 'contents': {}}, False)
-  actual = _BuildActualState(stored, revision, output_dir)
-  # If the script has been modified consider the state invalid.
-  path = os.path.join(output_dir, _STATE)
-  if os.path.getmtime(__file__) > os.path.getmtime(path):
-    return (stored, False)
-  # Otherwise, explicitly validate the state.
-  if not _StatesAreConsistent(stored, actual):
-    return (stored, False)
-  return (stored, True)
-
-
-def _DirIsEmpty(path):
-  """Returns true if the given directory is empty, false otherwise."""
-  for root, dirs, files in os.walk(path):
-    return not dirs and not files
-
-
-def _RmTreeHandleReadOnly(func, path, exc):
-  """An error handling function for use with shutil.rmtree. This will
-  detect failures to remove read-only files, and will change their properties
-  prior to removing them. This is necessary on Windows as os.remove will return
-  an access error for read-only files, and git repos contain read-only
-  pack/index files.
-  """
-  excvalue = exc[1]
-  if func in (os.rmdir, os.remove) and excvalue.errno == errno.EACCES:
-    _LOGGER.debug('Removing read-only path: %s', path)
-    os.chmod(path, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO)
-    func(path)
-  else:
-    raise
-
-
-def _RmTree(path):
-  """A wrapper of shutil.rmtree that handles read-only files."""
-  shutil.rmtree(path, ignore_errors=False, onerror=_RmTreeHandleReadOnly)
-
-
-def _CleanState(output_dir, state, dry_run=False):
-  """Cleans up files/directories in |output_dir| that are referenced by
-  the given |state|. Raises an error if there are local changes. Returns a
-  dictionary of files that were deleted.
-  """
-  _LOGGER.debug('Deleting files from previous installation.')
-  deleted = {}
-
-  # Generate a list of files to delete, relative to |output_dir|.
-  contents = state['contents']
-  files = sorted(contents.keys())
-
-  # Try to delete the files. Keep track of directories to delete as well.
-  dirs = {}
-  for relpath in files:
-    fullpath = os.path.join(output_dir, relpath)
-    fulldir = os.path.dirname(fullpath)
-    dirs[fulldir] = True
-    if os.path.exists(fullpath):
-      # If somehow the file has become a directory complain about it.
-      if os.path.isdir(fullpath):
-        raise Exception('Directory exists where file expected: %s' % fullpath)
-
-      # Double check that the file doesn't have local changes. If it does
-      # then refuse to delete it.
-      if relpath in contents:
-        stored_md5 = contents[relpath]
-        actual_md5 = _Md5(fullpath)
-        if actual_md5 != stored_md5:
-          raise Exception('File has local changes: %s' % fullpath)
-
-      # The file is unchanged so it can safely be deleted.
-      _LOGGER.debug('Deleting file "%s".', fullpath)
-      deleted[relpath] = True
-      if not dry_run:
-        os.unlink(fullpath)
-
-  # Sort directories from longest name to shortest. This lets us remove empty
-  # directories from the most nested paths first.
-  dirs = sorted(dirs.keys(), key=lambda x: len(x), reverse=True)
-  for p in dirs:
-    if os.path.exists(p) and _DirIsEmpty(p):
-      _LOGGER.debug('Deleting empty directory "%s".', p)
-      if not dry_run:
-        _RmTree(p)
-
-  return deleted
-
-
-def _Download(url):
-  """Downloads the given URL and returns the contents as a string."""
-  response = urllib2.urlopen(url)
-  if response.code != 200:
-    raise RuntimeError('Failed to download "%s".' % url)
-  return response.read()
-
-
-def _InstallBinaries(options, deleted={}):
-  """Installs Syzygy binaries. This assumes that the output directory has
-  already been cleaned, as it will refuse to overwrite existing files."""
-  contents = {}
-  state = { 'revision': options.revision, 'contents': contents }
-  archive_url = _SYZYGY_ARCHIVE_URL % { 'revision': options.revision }
-  if options.resources:
-    resources = [(resource, resource, '', None)
-                 for resource in options.resources]
-  else:
-    resources = _RESOURCES
-  for (base, name, subdir, filt) in resources:
-    # Create the output directory if it doesn't exist.
-    fulldir = os.path.join(options.output_dir, subdir)
-    if os.path.isfile(fulldir):
-      raise Exception('File exists where a directory needs to be created: %s' %
-                      fulldir)
-    if not os.path.exists(fulldir):
-      _LOGGER.debug('Creating directory: %s', fulldir)
-      if not options.dry_run:
-        os.makedirs(fulldir)
-
-    # Download the archive.
-    url = archive_url + '/' + base
-    _LOGGER.debug('Retrieving %s archive at "%s".', name, url)
-    data = _Download(url)
-
-    _LOGGER.debug('Unzipping %s archive.', name)
-    archive = zipfile.ZipFile(cStringIO.StringIO(data))
-    for entry in archive.infolist():
-      if not filt or filt(entry):
-        fullpath = os.path.normpath(os.path.join(fulldir, entry.filename))
-        relpath = os.path.relpath(fullpath, options.output_dir)
-        if os.path.exists(fullpath):
-          # If in a dry-run take into account the fact that the file *would*
-          # have been deleted.
-          if options.dry_run and relpath in deleted:
-            pass
-          else:
-            raise Exception('Path already exists: %s' % fullpath)
-
-        # Extract the file and update the state dictionary.
-        _LOGGER.debug('Extracting "%s".', fullpath)
-        if not options.dry_run:
-          archive.extract(entry.filename, fulldir)
-          md5 = _Md5(fullpath)
-          contents[relpath] = md5
-          if sys.platform == 'cygwin':
-            os.chmod(fullpath, os.stat(fullpath).st_mode | stat.S_IXUSR)
-
-  return state
-
-
-def _ParseCommandLine():
-  """Parses the command-line and returns an options structure."""
-  option_parser = optparse.OptionParser()
-  option_parser.add_option('--dry-run', action='store_true', default=False,
-      help='If true then will simply list actions that would be performed.')
-  option_parser.add_option('--force', action='store_true', default=False,
-      help='Force an installation even if the binaries are up to date.')
-  option_parser.add_option('--output-dir', type='string',
-      help='The path where the binaries will be replaced. Existing binaries '
-           'will only be overwritten if not up to date.')
-  option_parser.add_option('--overwrite', action='store_true', default=False,
-      help='If specified then the installation will happily delete and rewrite '
-           'the entire output directory, blasting any local changes.')
-  option_parser.add_option('--revision', type='string',
-      help='The SVN revision or GIT hash associated with the required version.')
-  option_parser.add_option('--revision-file', type='string',
-      help='A text file containing an SVN revision or GIT hash.')
-  option_parser.add_option('--resource', type='string', action='append',
-      dest='resources', help='A resource to be downloaded.')
-  option_parser.add_option('--verbose', dest='log_level', action='store_const',
-      default=logging.INFO, const=logging.DEBUG,
-      help='Enables verbose logging.')
-  option_parser.add_option('--quiet', dest='log_level', action='store_const',
-      default=logging.INFO, const=logging.ERROR,
-      help='Disables all output except for errors.')
-  options, args = option_parser.parse_args()
-  if args:
-    option_parser.error('Unexpected arguments: %s' % args)
-  if not options.output_dir:
-    option_parser.error('Must specify --output-dir.')
-  if not options.revision and not options.revision_file:
-    option_parser.error('Must specify one of --revision or --revision-file.')
-  if options.revision and options.revision_file:
-    option_parser.error('Must not specify both --revision and --revision-file.')
-
-  # Configure logging.
-  logging.basicConfig(level=options.log_level)
-
-  # If a revision file has been specified then read it.
-  if options.revision_file:
-    options.revision = open(options.revision_file, 'rb').read().strip()
-    _LOGGER.debug('Parsed revision "%s" from file "%s".',
-                 options.revision, options.revision_file)
-
-  # Ensure that the specified SVN revision or GIT hash is valid.
-  if not _REVISION_RE.match(options.revision):
-    option_parser.error('Must specify a valid SVN or GIT revision.')
-
-  # This just makes output prettier to read.
-  options.output_dir = os.path.normpath(options.output_dir)
-
-  return options
-
-
-def _RemoveOrphanedFiles(options):
-  """This is run on non-Windows systems to remove orphaned files that may have
-  been downloaded by a previous version of this script.
-  """
-  # Reconfigure logging to output info messages. This will allow inspection of
-  # cleanup status on non-Windows buildbots.
-  _LOGGER.setLevel(logging.INFO)
-
-  output_dir = os.path.abspath(options.output_dir)
-
-  # We only want to clean up the folder in 'src/third_party/syzygy', and we
-  # expect to be called with that as an output directory. This is an attempt to
-  # not start deleting random things if the script is run from an alternate
-  # location, or not called from the gclient hooks.
-  expected_syzygy_dir = os.path.abspath(os.path.join(
-      os.path.dirname(__file__), '..', 'third_party', 'syzygy'))
-  expected_output_dir = os.path.join(expected_syzygy_dir, 'binaries')
-  if expected_output_dir != output_dir:
-    _LOGGER.info('Unexpected output directory, skipping cleanup.')
-    return
-
-  if not os.path.isdir(expected_syzygy_dir):
-    _LOGGER.info('Output directory does not exist, skipping cleanup.')
-    return
-
-  def OnError(function, path, excinfo):
-    """Logs error encountered by shutil.rmtree."""
-    _LOGGER.error('Error when running %s(%s)', function, path, exc_info=excinfo)
-
-  _LOGGER.info('Removing orphaned files from %s', expected_syzygy_dir)
-  if not options.dry_run:
-    shutil.rmtree(expected_syzygy_dir, True, OnError)
-
-
-def main():
-  options = _ParseCommandLine()
-
-  if options.dry_run:
-    _LOGGER.debug('Performing a dry-run.')
-
-  # We only care about Windows platforms, as the Syzygy binaries aren't used
-  # elsewhere. However, there was a short period of time where this script
-  # wasn't gated on OS types, and those OSes downloaded and installed binaries.
-  # This will cleanup orphaned files on those operating systems.
-  if sys.platform not in ('win32', 'cygwin'):
-    return _RemoveOrphanedFiles(options)
-
-  # Load the current installation state, and validate it against the
-  # requested installation.
-  state, is_consistent = _GetCurrentState(options.revision, options.output_dir)
-
-  # Decide whether or not an install is necessary.
-  if options.force:
-    _LOGGER.debug('Forcing reinstall of binaries.')
-  elif is_consistent:
-    # Avoid doing any work if the contents of the directory are consistent.
-    _LOGGER.debug('State unchanged, no reinstall necessary.')
-    return
-
-  # Under normal logging this is the only only message that will be reported.
-  _LOGGER.info('Installing revision %s Syzygy binaries.',
-               options.revision[0:12])
-
-  # Clean up the old state to begin with.
-  deleted = []
-  if options.overwrite:
-    if os.path.exists(options.output_dir):
-      # If overwrite was specified then take a heavy-handed approach.
-      _LOGGER.debug('Deleting entire installation directory.')
-      if not options.dry_run:
-        _RmTree(options.output_dir)
-  else:
-    # Otherwise only delete things that the previous installation put in place,
-    # and take care to preserve any local changes.
-    deleted = _CleanState(options.output_dir, state, options.dry_run)
-
-  # Install the new binaries. In a dry-run this will actually download the
-  # archives, but it won't write anything to disk.
-  state = _InstallBinaries(options, deleted)
-
-  # Build and save the state for the directory.
-  _SaveState(options.output_dir, state, options.dry_run)
-
-
-if __name__ == '__main__':
-  main()
diff --git a/build/gyp_chromium b/build/gyp_chromium
deleted file mode 100755
index 9dac871..0000000
--- a/build/gyp_chromium
+++ /dev/null
@@ -1,333 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2012 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.
-
-# This script is wrapper for Chromium that adds some support for how GYP
-# is invoked by Chromium beyond what can be done in the gclient hooks.
-
-import argparse
-import glob
-import gyp_environment
-import os
-import re
-import shlex
-import subprocess
-import string
-import sys
-import vs_toolchain
-
-script_dir = os.path.dirname(os.path.realpath(__file__))
-chrome_src = os.path.abspath(os.path.join(script_dir, os.pardir))
-
-sys.path.insert(0, os.path.join(chrome_src, 'tools', 'gyp', 'pylib'))
-import gyp
-
-# Assume this file is in a one-level-deep subdirectory of the source root.
-SRC_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-
-# Add paths so that pymod_do_main(...) can import files.
-sys.path.insert(1, os.path.join(chrome_src, 'android_webview', 'tools'))
-sys.path.insert(1, os.path.join(chrome_src, 'build', 'android', 'gyp'))
-sys.path.insert(1, os.path.join(chrome_src, 'chrome', 'tools', 'build'))
-sys.path.insert(1, os.path.join(chrome_src, 'chromecast', 'tools', 'build'))
-sys.path.insert(1, os.path.join(chrome_src, 'ios', 'chrome', 'tools', 'build'))
-sys.path.insert(1, os.path.join(chrome_src, 'native_client', 'build'))
-sys.path.insert(1, os.path.join(chrome_src, 'native_client_sdk', 'src',
-    'build_tools'))
-sys.path.insert(1, os.path.join(chrome_src, 'remoting', 'tools', 'build'))
-sys.path.insert(1, os.path.join(chrome_src, 'third_party', 'liblouis'))
-sys.path.insert(1, os.path.join(chrome_src, 'third_party', 'WebKit',
-    'Source', 'build', 'scripts'))
-sys.path.insert(1, os.path.join(chrome_src, 'tools'))
-sys.path.insert(1, os.path.join(chrome_src, 'tools', 'generate_shim_headers'))
-sys.path.insert(1, os.path.join(chrome_src, 'tools', 'grit'))
-
-# On Windows, Psyco shortens warm runs of build/gyp_chromium by about
-# 20 seconds on a z600 machine with 12 GB of RAM, from 90 down to 70
-# seconds.  Conversely, memory usage of build/gyp_chromium with Psyco
-# maxes out at about 158 MB vs. 132 MB without it.
-#
-# Psyco uses native libraries, so we need to load a different
-# installation depending on which OS we are running under. It has not
-# been tested whether using Psyco on our Mac and Linux builds is worth
-# it (the GYP running time is a lot shorter, so the JIT startup cost
-# may not be worth it).
-if sys.platform == 'win32':
-  try:
-    sys.path.insert(0, os.path.join(chrome_src, 'third_party', 'psyco_win32'))
-    import psyco
-  except:
-    psyco = None
-else:
-  psyco = None
-
-
-def GetSupplementalFiles():
-  """Returns a list of the supplemental files that are included in all GYP
-  sources."""
-  return glob.glob(os.path.join(chrome_src, '*', 'supplement.gypi'))
-
-
-def ProcessGypDefinesItems(items):
-  """Converts a list of strings to a list of key-value pairs."""
-  result = []
-  for item in items:
-    tokens = item.split('=', 1)
-    # Some GYP variables have hyphens, which we don't support.
-    if len(tokens) == 2:
-      result += [(tokens[0], tokens[1])]
-    else:
-      # No value supplied, treat it as a boolean and set it. Note that we
-      # use the string '1' here so we have a consistent definition whether
-      # you do 'foo=1' or 'foo'.
-      result += [(tokens[0], '1')]
-  return result
-
-
-def GetGypVars(supplemental_files):
-  """Returns a dictionary of all GYP vars."""
-  # Find the .gyp directory in the user's home directory.
-  home_dot_gyp = os.environ.get('GYP_CONFIG_DIR', None)
-  if home_dot_gyp:
-    home_dot_gyp = os.path.expanduser(home_dot_gyp)
-  if not home_dot_gyp:
-    home_vars = ['HOME']
-    if sys.platform in ('cygwin', 'win32'):
-      home_vars.append('USERPROFILE')
-    for home_var in home_vars:
-      home = os.getenv(home_var)
-      if home != None:
-        home_dot_gyp = os.path.join(home, '.gyp')
-        if not os.path.exists(home_dot_gyp):
-          home_dot_gyp = None
-        else:
-          break
-
-  if home_dot_gyp:
-    include_gypi = os.path.join(home_dot_gyp, "include.gypi")
-    if os.path.exists(include_gypi):
-      supplemental_files += [include_gypi]
-
-  # GYP defines from the supplemental.gypi files.
-  supp_items = []
-  for supplement in supplemental_files:
-    with open(supplement, 'r') as f:
-      try:
-        file_data = eval(f.read(), {'__builtins__': None}, None)
-      except SyntaxError, e:
-        e.filename = os.path.abspath(supplement)
-        raise
-      variables = file_data.get('variables', [])
-      for v in variables:
-        supp_items += [(v, str(variables[v]))]
-
-  # GYP defines from the environment.
-  env_items = ProcessGypDefinesItems(
-      shlex.split(os.environ.get('GYP_DEFINES', '')))
-
-  # GYP defines from the command line.
-  parser = argparse.ArgumentParser()
-  parser.add_argument('-D', dest='defines', action='append', default=[])
-  cmdline_input_items = parser.parse_known_args()[0].defines
-  cmdline_items = ProcessGypDefinesItems(cmdline_input_items)
-
-  vars_dict = dict(supp_items + env_items + cmdline_items)
-  return vars_dict
-
-
-def GetOutputDirectory():
-  """Returns the output directory that GYP will use."""
-
-  # Handle command line generator flags.
-  parser = argparse.ArgumentParser()
-  parser.add_argument('-G', dest='genflags', default=[], action='append')
-  genflags = parser.parse_known_args()[0].genflags
-
-  # Handle generator flags from the environment.
-  genflags += shlex.split(os.environ.get('GYP_GENERATOR_FLAGS', ''))
-
-  needle = 'output_dir='
-  for item in genflags:
-    if item.startswith(needle):
-      return item[len(needle):]
-
-  return 'out'
-
-
-def additional_include_files(supplemental_files, args=[]):
-  """
-  Returns a list of additional (.gypi) files to include, without duplicating
-  ones that are already specified on the command line. The list of supplemental
-  include files is passed in as an argument.
-  """
-  # Determine the include files specified on the command line.
-  # This doesn't cover all the different option formats you can use,
-  # but it's mainly intended to avoid duplicating flags on the automatic
-  # makefile regeneration which only uses this format.
-  specified_includes = set()
-  for arg in args:
-    if arg.startswith('-I') and len(arg) > 2:
-      specified_includes.add(os.path.realpath(arg[2:]))
-
-  result = []
-  def AddInclude(path):
-    if os.path.realpath(path) not in specified_includes:
-      result.append(path)
-
-  if os.environ.get('GYP_INCLUDE_FIRST') != None:
-    AddInclude(os.path.join(chrome_src, os.environ.get('GYP_INCLUDE_FIRST')))
-
-  # Always include common.gypi.
-  AddInclude(os.path.join(script_dir, 'common.gypi'))
-
-  # Optionally add supplemental .gypi files if present.
-  for supplement in supplemental_files:
-    AddInclude(supplement)
-
-  if os.environ.get('GYP_INCLUDE_LAST') != None:
-    AddInclude(os.path.join(chrome_src, os.environ.get('GYP_INCLUDE_LAST')))
-
-  return result
-
-
-if __name__ == '__main__':
-  # Disabling garbage collection saves about 1 second out of 16 on a Linux
-  # z620 workstation. Since this is a short-lived process it's not a problem to
-  # leak a few cyclyc references in order to spare the CPU cycles for
-  # scanning the heap.
-  import gc
-  gc.disable()
-
-  args = sys.argv[1:]
-
-  use_analyzer = len(args) and args[0] == '--analyzer'
-  if use_analyzer:
-    args.pop(0)
-    os.environ['GYP_GENERATORS'] = 'analyzer'
-    args.append('-Gconfig_path=' + args.pop(0))
-    args.append('-Ganalyzer_output_path=' + args.pop(0))
-
-  if int(os.environ.get('GYP_CHROMIUM_NO_ACTION', 0)):
-    print 'Skipping gyp_chromium due to GYP_CHROMIUM_NO_ACTION env var.'
-    sys.exit(0)
-
-  # Use the Psyco JIT if available.
-  if psyco:
-    psyco.profile()
-    print "Enabled Psyco JIT."
-
-  # Fall back on hermetic python if we happen to get run under cygwin.
-  # TODO(bradnelson): take this out once this issue is fixed:
-  #    http://code.google.com/p/gyp/issues/detail?id=177
-  if sys.platform == 'cygwin':
-    import find_depot_tools
-    depot_tools_path = find_depot_tools.add_depot_tools_to_path()
-    python_dir = sorted(glob.glob(os.path.join(depot_tools_path,
-                                               'python2*_bin')))[-1]
-    env = os.environ.copy()
-    env['PATH'] = python_dir + os.pathsep + env.get('PATH', '')
-    cmd = [os.path.join(python_dir, 'python.exe')] + sys.argv
-    sys.exit(subprocess.call(cmd, env=env))
-
-  # This could give false positives since it doesn't actually do real option
-  # parsing.  Oh well.
-  gyp_file_specified = any(arg.endswith('.gyp') for arg in args)
-
-  gyp_environment.SetEnvironment()
-
-  # If we didn't get a file, check an env var, and then fall back to
-  # assuming 'all.gyp' from the same directory as the script.
-  if not gyp_file_specified:
-    gyp_file = os.environ.get('CHROMIUM_GYP_FILE')
-    if gyp_file:
-      # Note that CHROMIUM_GYP_FILE values can't have backslashes as
-      # path separators even on Windows due to the use of shlex.split().
-      args.extend(shlex.split(gyp_file))
-    else:
-      args.append(os.path.join(script_dir, 'all.gyp'))
-
-  supplemental_includes = GetSupplementalFiles()
-  gyp_vars_dict = GetGypVars(supplemental_includes)
-  # There shouldn't be a circular dependency relationship between .gyp files,
-  # but in Chromium's .gyp files, on non-Mac platforms, circular relationships
-  # currently exist.  The check for circular dependencies is currently
-  # bypassed on other platforms, but is left enabled on iOS, where a violation
-  # of the rule causes Xcode to misbehave badly.
-  # TODO(mark): Find and kill remaining circular dependencies, and remove this
-  # option.  http://crbug.com/35878.
-  # TODO(tc): Fix circular dependencies in ChromiumOS then add linux2 to the
-  # list.
-  if gyp_vars_dict.get('OS') != 'ios':
-    args.append('--no-circular-check')
-
-  # libtool on Mac warns about duplicate basenames in static libraries, so
-  # they're disallowed in general by gyp. We are lax on this point, so disable
-  # this check other than on Mac. GN does not use static libraries as heavily,
-  # so over time this restriction will mostly go away anyway, even on Mac.
-  # https://code.google.com/p/gyp/issues/detail?id=384
-  if sys.platform != 'darwin':
-    args.append('--no-duplicate-basename-check')
-
-  # We explicitly don't support the make gyp generator (crbug.com/348686). Be
-  # nice and fail here, rather than choking in gyp.
-  if re.search(r'(^|,|\s)make($|,|\s)', os.environ.get('GYP_GENERATORS', '')):
-    print 'Error: make gyp generator not supported (check GYP_GENERATORS).'
-    sys.exit(1)
-
-  # We explicitly don't support the native msvs gyp generator. Be nice and
-  # fail here, rather than generating broken projects.
-  if re.search(r'(^|,|\s)msvs($|,|\s)', os.environ.get('GYP_GENERATORS', '')):
-    print 'Error: msvs gyp generator not supported (check GYP_GENERATORS).'
-    print 'Did you mean to use the `msvs-ninja` generator?'
-    sys.exit(1)
-
-  # If CHROMIUM_GYP_SYNTAX_CHECK is set to 1, it will invoke gyp with --check
-  # to enfore syntax checking.
-  syntax_check = os.environ.get('CHROMIUM_GYP_SYNTAX_CHECK')
-  if syntax_check and int(syntax_check):
-    args.append('--check')
-
-  # TODO(dmikurube): Remove these checks and messages after a while.
-  if ('linux_use_tcmalloc' in gyp_vars_dict or
-      'android_use_tcmalloc' in gyp_vars_dict):
-    print '*****************************************************************'
-    print '"linux_use_tcmalloc" and "android_use_tcmalloc" are deprecated!'
-    print '-----------------------------------------------------------------'
-    print 'You specify "linux_use_tcmalloc" or "android_use_tcmalloc" in'
-    print 'your GYP_DEFINES. Please switch them into "use_allocator" now.'
-    print 'See http://crbug.com/345554 for the details.'
-    print '*****************************************************************'
-
-  # Automatically turn on crosscompile support for platforms that need it.
-  # (The Chrome OS build sets CC_host / CC_target which implicitly enables
-  # this mode.)
-  if all(('ninja' in os.environ.get('GYP_GENERATORS', ''),
-          gyp_vars_dict.get('OS') in ['android', 'ios'],
-          'GYP_CROSSCOMPILE' not in os.environ)):
-    os.environ['GYP_CROSSCOMPILE'] = '1'
-  if gyp_vars_dict.get('OS') == 'android':
-    args.append('--check')
-
-  args.extend(
-      ['-I' + i for i in additional_include_files(supplemental_includes, args)])
-
-  args.extend(['-D', 'gyp_output_dir=' + GetOutputDirectory()])
-
-  if not use_analyzer:
-    print 'Updating projects from gyp files...'
-    sys.stdout.flush()
-
-  # Off we go...
-  gyp_rc = gyp.main(args)
-
-  if not use_analyzer:
-    vs2013_runtime_dll_dirs = vs_toolchain.SetEnvironmentAndGetRuntimeDllDirs()
-    if vs2013_runtime_dll_dirs:
-      x64_runtime, x86_runtime = vs2013_runtime_dll_dirs
-      vs_toolchain.CopyVsRuntimeDlls(
-        os.path.join(chrome_src, GetOutputDirectory()),
-        (x86_runtime, x64_runtime))
-
-  sys.exit(gyp_rc)
diff --git a/build/gyp_chromium.py b/build/gyp_chromium.py
deleted file mode 100644
index f9e8ac8..0000000
--- a/build/gyp_chromium.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright 2012 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.
-
-# This file is (possibly, depending on python version) imported by
-# gyp_chromium when GYP_PARALLEL=1 and it creates sub-processes
-# through the multiprocessing library.
-
-# Importing in Python 2.6 (fixed in 2.7) on Windows doesn't search for
-# imports that don't end in .py (and aren't directories with an
-# __init__.py). This wrapper makes "import gyp_chromium" work with
-# those old versions and makes it possible to execute gyp_chromium.py
-# directly on Windows where the extension is useful.
-
-import os
-
-path = os.path.abspath(os.path.split(__file__)[0])
-execfile(os.path.join(path, 'gyp_chromium'))
diff --git a/build/gyp_chromium_test.py.remove b/build/gyp_chromium_test.py.remove
deleted file mode 100755
index 0c0e479..0000000
--- a/build/gyp_chromium_test.py.remove
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2015 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import os
-import sys
-import unittest
-
-SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__))
-SRC_DIR = os.path.dirname(SCRIPT_DIR)
-
-sys.path.append(os.path.join(SRC_DIR, 'third_party', 'pymock'))
-
-import mock
-
-# TODO(sbc): Make gyp_chromium more testable by putting the code in
-# a .py file.
-gyp_chromium = __import__('gyp_chromium')
-
-
-class TestGetOutputDirectory(unittest.TestCase):
-  @mock.patch('os.environ', {})
-  @mock.patch('sys.argv', [__file__])
-  def testDefaultValue(self):
-    self.assertEqual(gyp_chromium.GetOutputDirectory(), 'out')
-
-  @mock.patch('os.environ', {'GYP_GENERATOR_FLAGS': 'output_dir=envfoo'})
-  @mock.patch('sys.argv', [__file__])
-  def testEnvironment(self):
-    self.assertEqual(gyp_chromium.GetOutputDirectory(), 'envfoo')
-
-  @mock.patch('os.environ', {'GYP_GENERATOR_FLAGS': 'output_dir=envfoo'})
-  @mock.patch('sys.argv', [__file__, '-Goutput_dir=cmdfoo'])
-  def testGFlagOverridesEnv(self):
-    self.assertEqual(gyp_chromium.GetOutputDirectory(), 'cmdfoo')
-
-  @mock.patch('os.environ', {})
-  @mock.patch('sys.argv', [__file__, '-G', 'output_dir=foo'])
-  def testGFlagWithSpace(self):
-    self.assertEqual(gyp_chromium.GetOutputDirectory(), 'foo')
-
-
-class TestGetGypVars(unittest.TestCase):
-  @mock.patch('os.environ', {})
-  def testDefault(self):
-    self.assertEqual(gyp_chromium.GetGypVars([]), {})
-
-  @mock.patch('os.environ', {})
-  @mock.patch('sys.argv', [__file__, '-D', 'foo=bar'])
-  def testDFlags(self):
-    self.assertEqual(gyp_chromium.GetGypVars([]), {'foo': 'bar'})
-
-  @mock.patch('os.environ', {})
-  @mock.patch('sys.argv', [__file__, '-D', 'foo'])
-  def testDFlagsNoValue(self):
-    self.assertEqual(gyp_chromium.GetGypVars([]), {'foo': '1'})
-
-  @mock.patch('os.environ', {})
-  @mock.patch('sys.argv', [__file__, '-D', 'foo=bar', '-Dbaz'])
-  def testDFlagMulti(self):
-    self.assertEqual(gyp_chromium.GetGypVars([]), {'foo': 'bar', 'baz': '1'})
-
-
-if __name__ == '__main__':
-  unittest.main()
diff --git a/build/gyp_environment.py b/build/gyp_environment.py
deleted file mode 100644
index fb50645..0000000
--- a/build/gyp_environment.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 2014 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.
-
-"""
-Sets up various automatic gyp environment variables. These are used by
-gyp_chromium and landmines.py which run at different stages of runhooks. To
-make sure settings are consistent between them, all setup should happen here.
-"""
-
-import gyp_helper
-import os
-import sys
-import vs_toolchain
-
-def SetEnvironment():
-  """Sets defaults for GYP_* variables."""
-  gyp_helper.apply_chromium_gyp_env()
-
-  # Default to ninja on linux and windows, but only if no generator has
-  # explicitly been set.
-  # Also default to ninja on mac, but only when not building chrome/ios.
-  # . -f / --format has precedence over the env var, no need to check for it
-  # . set the env var only if it hasn't been set yet
-  # . chromium.gyp_env has been applied to os.environ at this point already
-  if sys.platform.startswith(('linux', 'win', 'freebsd')) and \
-      not os.environ.get('GYP_GENERATORS'):
-    os.environ['GYP_GENERATORS'] = 'ninja'
-  elif sys.platform == 'darwin' and not os.environ.get('GYP_GENERATORS') and \
-      not 'OS=ios' in os.environ.get('GYP_DEFINES', []):
-    os.environ['GYP_GENERATORS'] = 'ninja'
-
-  vs_toolchain.SetEnvironmentAndGetRuntimeDllDirs()
diff --git a/build/gyp_helper.py b/build/gyp_helper.py
deleted file mode 100644
index c840f2d..0000000
--- a/build/gyp_helper.py
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright (c) 2012 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.
-
-# This file helps gyp_chromium and landmines correctly set up the gyp
-# environment from chromium.gyp_env on disk
-
-import os
-
-SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
-CHROME_SRC = os.path.dirname(SCRIPT_DIR)
-
-
-def apply_gyp_environment_from_file(file_path):
-  """Reads in a *.gyp_env file and applies the valid keys to os.environ."""
-  if not os.path.exists(file_path):
-    return
-  with open(file_path, 'rU') as f:
-    file_contents = f.read()
-  try:
-    file_data = eval(file_contents, {'__builtins__': None}, None)
-  except SyntaxError, e:
-    e.filename = os.path.abspath(file_path)
-    raise
-  supported_vars = (
-      'CC',
-      'CC_wrapper',
-      'CC.host_wrapper',
-      'CHROMIUM_GYP_FILE',
-      'CHROMIUM_GYP_SYNTAX_CHECK',
-      'CXX',
-      'CXX_wrapper',
-      'CXX.host_wrapper',
-      'GYP_DEFINES',
-      'GYP_GENERATOR_FLAGS',
-      'GYP_CROSSCOMPILE',
-      'GYP_GENERATOR_OUTPUT',
-      'GYP_GENERATORS',
-      'GYP_INCLUDE_FIRST',
-      'GYP_INCLUDE_LAST',
-      'GYP_MSVS_VERSION',
-  )
-  for var in supported_vars:
-    file_val = file_data.get(var)
-    if file_val:
-      if var in os.environ:
-        behavior = 'replaces'
-        if var == 'GYP_DEFINES':
-          result = file_val + ' ' + os.environ[var]
-          behavior = 'merges with, and individual components override,'
-        else:
-          result = os.environ[var]
-        print 'INFO: Environment value for "%s" %s value in %s' % (
-            var, behavior, os.path.abspath(file_path)
-        )
-        string_padding = max(len(var), len(file_path), len('result'))
-        print '      %s: %s' % (var.rjust(string_padding), os.environ[var])
-        print '      %s: %s' % (file_path.rjust(string_padding), file_val)
-        os.environ[var] = result
-      else:
-        os.environ[var] = file_val
-
-
-def apply_chromium_gyp_env():
-  if 'SKIP_CHROMIUM_GYP_ENV' not in os.environ:
-    # Update the environment based on chromium.gyp_env
-    path = os.path.join(os.path.dirname(CHROME_SRC), 'chromium.gyp_env')
-    apply_gyp_environment_from_file(path)
diff --git a/build/internal/README.chromium b/build/internal/README.chromium
deleted file mode 100644
index 4624830..0000000
--- a/build/internal/README.chromium
+++ /dev/null
@@ -1,24 +0,0 @@
-Internal property sheets:
-  essential.vsprops
-    Contains the common settings used throughout the projects. Is included by either ..\debug.vsprops or ..\release.vsprops, so in general, it is not included directly.
-
-  release_defaults.vsprops
-    Included by ..\release.vsprops. Its settings are overriden by release_impl$(CHROME_BUILD_TYPE).vsprops. Uses the default VS setting which is "Maximize Speed". Results in relatively fast build with reasonable optimization level but without whole program optimization to reduce build time.
-
-  release_impl.vsprops
-    Included by ..\release.vsprops by default when CHROME_BUILD_TYPE is undefined. Includes release_defaults.vsprops.
-
-  release_impl_checksenabled.vsprops
-    Included by ..\release.vsprops when CHROME_BUILD_TYPE=_checksenabled. Matches what release_defaults.vsprops does, but doesn't actually inherit from it as we couldn't quite get that working. The only difference is that _DEBUG is set instead of NDEBUG. Used for keeping debug checks enabled with a build that is fast enough to dogfood with.
-
-  release_impl_official.vsprops
-    Included by ..\release.vsprops when CHROME_BUILD_TYPE=_official. Includes release_defaults.vsprops. Enables Whole Program Optimizations (WPO), which doubles the build time. Results in much more optimized build. Uses "Full Optimization" and "Flavor small code".
-
-  release_impl_pgo_instrument.vsprops
-    Included by ..\release.vsprops when CHROME_BUILD_TYPE=_pgo_instrument. Includes release_defaults.vsprops. Enables Profile Guided Optimization (PGO) instrumentation (first pass). Uses "Full Optimization" and "Flavor small code".
-
-  release_impl_pgo_optimize.vsprops
-    Included by ..\release.vsprops when CHROME_BUILD_TYPE=_pgo_optimize. Includes release_defaults.vsprops. Enables Profile Guided Optimization (PGO) optimization (second pass). Uses "Full Optimization" and "Flavor small code".
-
-  release_impl_purify.vsprops
-    Included by ..\release.vsprops when CHROME_BUILD_TYPE=_purify. Includes release_defaults.vsprops. Disables optimizations. Used with Purify to test without debug tools and without optimization; i.e. NDEBUG is defined but the compiler doesn't optimize the binary.
diff --git a/build/inverse_depth.py b/build/inverse_depth.py
deleted file mode 100755
index ce7a6ab..0000000
--- a/build/inverse_depth.py
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2014 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import os
-import sys
-
-
-def DoMain(argv):
-  depth = argv[0]
-  return os.path.relpath(os.getcwd(), os.path.abspath(depth))
-
-
-def main(argv):
-  if len(argv) < 2:
-    print "USAGE: inverse_depth.py depth"
-    return 1
-  print DoMain(argv[1:])
-  return 0
-
-
-if __name__ == '__main__':
-  sys.exit(main(sys.argv))
diff --git a/build/ios/chrome_ios.croc b/build/ios/chrome_ios.croc
deleted file mode 100644
index 938a2e9..0000000
--- a/build/ios/chrome_ios.croc
+++ /dev/null
@@ -1,71 +0,0 @@
-# -*- python -*-
-# Crocodile config file for Chromium iOS.
-#
-# Note that Chromium iOS also uses the config file at src/build/common.croc.
-#
-# See src/tools/code_coverage/example.croc for more info on config files.
-
-{
-  # List of rules, applied in order
-  'rules' : [
-    # Specify inclusions before exclusions, since rules are in order.
-
-    # Exclude everything to negate whatever is in src/build/common.croc
-    {
-      'regexp' : '.*',
-      'include' : 0,
-    },
-
-    # Include all directories (but not the files in the directories).
-    # This is a workaround for how croc.py walks the directory tree. See the
-    # TODO in the AddFiles method of src/tools/code_coverage/croc.py
-    {
-      'regexp' : '.*/$',
-      'include' : 1,
-    },
-
-    # Include any file with an 'ios' directory in the path.
-    {
-      'regexp' : '.*/ios/.*',
-      'include' : 1,
-      'add_if_missing' : 1,
-    },
-    
-    # Include any file that ends with _ios.
-    {
-      'regexp' : '.*_ios\\.(c|cc|m|mm)$',
-      'include' : 1,
-      'add_if_missing' : 1,
-    },
-
-    # Include any file that ends with _ios_unittest (and label it a test).
-    {
-      'regexp' : '.*_ios_unittest\\.(c|cc|m|mm)$',
-      'include' : 1,
-      'add_if_missing' : 1,
-      'group' : 'test',
-    },
-
-    # Don't scan for executable lines in uninstrumented header files
-    {
-      'regexp' : '.*\\.(h|hpp)$',
-      'add_if_missing' : 0,
-    },
-
-    # Don't measure coverage of perftests.
-    {
-      'regexp' : '.*perftest\\.(c|cc|m|mm)$',
-      'include' : 0,
-    },
-
-    # Languages
-    {
-      'regexp' : '.*\\.m$',
-      'language' : 'ObjC',
-    },
-    {
-      'regexp' : '.*\\.mm$',
-      'language' : 'ObjC++',
-    },
-  ],
-}
diff --git a/build/linux/chrome_linux.croc b/build/linux/chrome_linux.croc
deleted file mode 100644
index f400306..0000000
--- a/build/linux/chrome_linux.croc
+++ /dev/null
@@ -1,29 +0,0 @@
-# -*- python -*-
-# Crocodile config file for Chromium linux
-
-# TODO(jhawkins): We'll need to add a chromeos.croc once we get a coverage bot
-# for that platform.
-
-{
-  # List of rules, applied in order
-  'rules' : [
-    # Specify inclusions before exclusions, since rules are in order.
-
-    # Don't include non-Linux platform dirs
-    {
-      'regexp' : '.*/(chromeos|views)/',
-      'include' : 0,
-    },
-    # Don't include chromeos, windows, or mac specific files
-    {
-      'regexp' : '.*(_|/)(chromeos|mac|win|views)(\\.|_)',
-      'include' : 0,
-    },
-
-    # Groups
-    {
-      'regexp' : '.*_test_linux\\.',
-      'group' : 'test',
-    },
-  ],
-}
diff --git a/build/mac/chrome_mac.croc b/build/mac/chrome_mac.croc
deleted file mode 100644
index 8cde00c..0000000
--- a/build/mac/chrome_mac.croc
+++ /dev/null
@@ -1,36 +0,0 @@
-# -*- python -*-
-# Crocodile config file for Chromium mac
-
-{
-  # List of rules, applied in order
-  'rules' : [
-    # Specify inclusions before exclusions, since rules are in order.
-
-    # Don't include chromeos, linux, or windows specific files
-    {
-      'regexp' : '.*(_|/)(chromeos|linux|win|views)(\\.|_)',
-      'include' : 0,
-    },
-    # Don't include ChromeOS dirs
-    {
-      'regexp' : '.*/chromeos/',
-      'include' : 0,
-    },
-
-    # Groups
-    {
-      'regexp' : '.*_test_mac\\.',
-      'group' : 'test',
-    },
-
-    # Languages
-    {
-      'regexp' : '.*\\.m$',
-      'language' : 'ObjC',
-    },
-    {
-      'regexp' : '.*\\.mm$',
-      'language' : 'ObjC++',
-    },
-  ],
-}
diff --git a/build/output_dll_copy.rules b/build/output_dll_copy.rules
deleted file mode 100644
index c6e9051..0000000
--- a/build/output_dll_copy.rules
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<VisualStudioToolFile
-	Name="Output DLL copy"
-	Version="8.00"
-	>
-	<Rules>
-		<CustomBuildRule
-			Name="Output DLL copy"
-			CommandLine="xcopy /R /C /Y $(InputPath) $(OutDir)"
-			Outputs="$(OutDir)\$(InputFileName)"
-			FileExtensions="*.dll"
-			>
-			<Properties>
-			</Properties>
-		</CustomBuildRule>
-	</Rules>
-</VisualStudioToolFile>
diff --git a/build/rmdir_and_stamp.py b/build/rmdir_and_stamp.py
deleted file mode 100755
index 6aa11f8..0000000
--- a/build/rmdir_and_stamp.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 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.
-
-"""Wipes out a directory recursively and then touches a stamp file.
-
-This odd pairing of operations is used to support build scripts which
-slurp up entire directories (e.g. build/android/javac.py when handling
-generated sources) as inputs.
-
-The general pattern of use is:
-
-  - Add a target which generates |gen_sources| into |out_path| from |inputs|.
-  - Include |stamp_file| as an input for that target or any of its rules which
-    generate files in |out_path|.
-  - Add an action which depends on |inputs| and which outputs |stamp_file|;
-    the action should run this script and pass |out_path| and |stamp_file| as
-    its arguments.
-
-The net result is that you will force |out_path| to be wiped and all
-|gen_sources| to be regenerated any time any file in |inputs| changes.
-
-See //third_party/mojo/mojom_bindings_generator.gypi for an example use case.
-
-"""
-
-import errno
-import os
-import shutil
-import sys
-
-
-def Main(dst_dir, stamp_file):
-  try:
-    shutil.rmtree(os.path.normpath(dst_dir))
-  except OSError as e:
-    # Ignore only "not found" errors.
-    if e.errno != errno.ENOENT:
-      raise e
-  with open(stamp_file, 'a'):
-    os.utime(stamp_file, None)
-
-if __name__ == '__main__':
-  sys.exit(Main(sys.argv[1], sys.argv[2]))
diff --git a/build/sanitize-mac-build-log.sed b/build/sanitize-mac-build-log.sed
deleted file mode 100644
index b4111c7..0000000
--- a/build/sanitize-mac-build-log.sed
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright (c) 2012 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.
-
-# Use this sed script to reduce a Mac build log into something readable.
-
-# Drop uninformative lines.
-/^distcc/d
-/^Check dependencies/d
-/^    setenv /d
-/^    cd /d
-/^make: Nothing to be done/d
-/^$/d
-
-# Xcode prints a short "compiling foobar.o" line followed by the lengthy
-# full command line.  These deletions drop the command line.
-\|^    /Developer/usr/bin/|d
-\|^    /Developer/Library/PrivateFrameworks/DevToolsCore\.framework/|d
-\|^    /Developer/Library/Xcode/Plug-ins/CoreBuildTasks\.xcplugin/|d
-
-# Drop any goma command lines as well.
-\|^    .*/gomacc |d
-
-# And, if you've overridden something from your own bin directory, remove those
-# full command lines, too.
-\|^    /Users/[^/]*/bin/|d
-
-# There's already a nice note for bindings, don't need the command line.
-\|^python scripts/rule_binding\.py|d
-
-# Shorten the "compiling foobar.o" line.
-s|^Distributed-CompileC (.*) normal i386 c\+\+ com\.apple\.compilers\.gcc\.4_2|    CC \1|
-s|^CompileC (.*) normal i386 c\+\+ com\.apple\.compilers\.gcc\.4_2|    CC \1|
diff --git a/build/sanitize-mac-build-log.sh b/build/sanitize-mac-build-log.sh
deleted file mode 100755
index df5a7af..0000000
--- a/build/sanitize-mac-build-log.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-# Copyright (c) 2010 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-sed -r -f `dirname "${0}"`/`basename "${0}" sh`sed
diff --git a/build/sanitize-win-build-log.sed b/build/sanitize-win-build-log.sed
deleted file mode 100644
index c18e664..0000000
--- a/build/sanitize-win-build-log.sed
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright (c) 2012 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.
-
-# Use this sed script to reduce a Windows build log into something
-# machine-parsable.
-
-# Drop uninformative lines.
-/The operation completed successfully\./d
-
-# Drop parallelization indicators on lines.
-s/^[0-9]+>//
-
-# Shorten bindings generation lines
-s/^.*"python".*idl_compiler\.py".*("[^"]+\.idl").*$/  idl_compiler \1/
diff --git a/build/sanitize-win-build-log.sh b/build/sanitize-win-build-log.sh
deleted file mode 100755
index df5a7af..0000000
--- a/build/sanitize-win-build-log.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-# Copyright (c) 2010 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-sed -r -f `dirname "${0}"`/`basename "${0}" sh`sed
diff --git a/build/slave/OWNERS b/build/slave/OWNERS
deleted file mode 100644
index f562c92..0000000
--- a/build/slave/OWNERS
+++ /dev/null
@@ -1,20 +0,0 @@
-set noparent
-agable@chromium.org
-agable@google.com
-cmp@chromium.org
-cmp@google.com
-dpranke@chromium.org
-iannucci@chromium.org
-iannucci@google.com
-johnw@chromium.org
-johnw@google.com
-maruel@chromium.org
-maruel@google.com
-mmoss@chromium.org
-mmoss@google.com
-pschmidt@chromium.org
-pschmidt@google.com
-stip@chromium.org
-stip@google.com
-szager@chromium.org
-szager@google.com
diff --git a/build/slave/README b/build/slave/README
deleted file mode 100644
index e3718b2..0000000
--- a/build/slave/README
+++ /dev/null
@@ -1,8 +0,0 @@
-This is a directory which contains configuration information for the
-buildsystem.
-
-* Under recipes, the buildsystem should use only this directory as an
-  entry point into src/.
-
-* Scripts in this directory must not import from outside this directory or shell
-  to scripts outside this directory.
diff --git a/build/temp_gyp/README.chromium b/build/temp_gyp/README.chromium
deleted file mode 100644
index 8045d61..0000000
--- a/build/temp_gyp/README.chromium
+++ /dev/null
@@ -1,3 +0,0 @@
-This directory will be removed once the files in it are committed upstream and
-Chromium imports an upstream revision with these files.  Contact mark for
-details.
diff --git a/build/tree_truth.sh b/build/tree_truth.sh
deleted file mode 100755
index 617092d..0000000
--- a/build/tree_truth.sh
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/bin/bash
-# Copyright 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.
-#
-# Script for printing recent commits in a buildbot run.
-
-# Return the sha1 of the given tag.  If not present, return "".
-# $1: path to repo
-# $2: tag name
-tt_sha1_for_tag() {
-  oneline=$(cd $1 && git log -1 $2 --format='%H' 2>/dev/null)
-  if [ $? -eq 0 ] ; then
-    echo $oneline
-  fi
-}
-
-# Return the sha1 of HEAD, or ""
-# $1: path to repo
-tt_sha1_for_head() {
-  ( cd $1 && git log HEAD -n1 --format='%H' | cat )
-}
-
-# For the given repo, set tag to HEAD.
-# $1: path to repo
-# $2: tag name
-tt_tag_head() {
-  ( cd $1 && git tag -f $2 )
-}
-
-# For the given repo, delete the tag.
-# $1: path to repo
-# $2: tag name
-tt_delete_tag() {
-  ( cd $1 && git tag -d $2 )
-}
-
-# For the given repo, set tag to "three commits ago" (for testing).
-# $1: path to repo
-# $2: tag name
-tt_tag_three_ago() {
- local sh=$(cd $1 && git log --pretty=oneline -n 3 | tail -1 | awk '{print $1}')
-  ( cd $1 && git tag -f $2 $sh )
-}
-
-# List the commits between the given tag and HEAD.
-# If the tag does not exist, only list the last few.
-# If the tag is at HEAD, list nothing.
-# Output format has distinct build steps for repos with changes.
-# $1: path to repo
-# $2: tag name
-# $3: simple/short repo name to use for display
-tt_list_commits() {
-  local tag_sha1=$(tt_sha1_for_tag $1 $2)
-  local head_sha1=$(tt_sha1_for_head $1)
-  local display_name=$(echo $3 | sed 's#/#_#g')
-  if [ "${tag_sha1}" = "${head_sha1}" ] ; then
-    return
-  fi
-  if [ "${tag_sha1}" = "" ] ; then
-    echo "@@@BUILD_STEP Recent commits in repo $display_name@@@"
-    echo "NOTE: git tag was not found so we have no baseline."
-    echo "Here are some recent commits, but they may not be new for this build."
-    ( cd $1 && git log -n 10 --stat | cat)
-  else
-    echo "@@@BUILD_STEP New commits in repo $display_name@@@"
-    ( cd $1 && git log -n 500 $2..HEAD --stat | cat)
-  fi
-}
-
-# Clean out the tree truth tags in all repos.  For testing.
-tt_clean_all() {
- for project in $@; do
-   tt_delete_tag $CHROME_SRC/../$project tree_truth
- done
-}
-
-# Print tree truth for all clank repos.
-tt_print_all() {
- for project in $@; do
-   local full_path=$CHROME_SRC/../$project
-   tt_list_commits $full_path tree_truth $project
-   tt_tag_head $full_path tree_truth
- done
-}
-
-# Print a summary of the last 10 commits for each repo.
-tt_brief_summary() {
-  echo "@@@BUILD_STEP Brief summary of recent CLs in every branch@@@"
-  for project in $@; do
-    echo $project:
-    local full_path=$CHROME_SRC/../$project
-    (cd $full_path && git log -n 10 --format="   %H %s   %an, %ad" | cat)
-    echo "================================================================="
-  done
-}
-
-CHROME_SRC=$1
-shift
-PROJECT_LIST=$@
-tt_brief_summary $PROJECT_LIST
-tt_print_all $PROJECT_LIST
diff --git a/build/win/chrome_win.croc b/build/win/chrome_win.croc
deleted file mode 100644
index e1e3bb7..0000000
--- a/build/win/chrome_win.croc
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- python -*-
-# Crocodile config file for Chromium windows
-
-{
-  # List of rules, applied in order
-  'rules' : [
-    # Specify inclusions before exclusions, since rules are in order.
-
-    # Don't include chromeos, posix, or linux specific files
-    {
-      'regexp' : '.*(_|/)(chromeos|linux|posix)(\\.|_)',
-      'include' : 0,
-    },
-    # Don't include ChromeOS dirs
-    {
-      'regexp' : '.*/chromeos/',
-      'include' : 0,
-    },
-
-    # Groups
-    {
-      'regexp' : '.*_test_win\\.',
-      'group' : 'test',
-    },
-  ],
-}
diff --git a/build/win/compatibility.manifest b/build/win/compatibility.manifest
deleted file mode 100644
index 10d10da..0000000
--- a/build/win/compatibility.manifest
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
-  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
-    <application>
-      <!--The ID below indicates application support for Windows Vista -->
-      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
-      <!--The ID below indicates application support for Windows 7 -->
-      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
-      <!--The ID below indicates application support for Windows 8 -->
-      <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
-      <!--The ID below indicates application support for Windows 8.1 -->
-      <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
-      <!--The ID below indicates application support for Windows 10 -->
-      <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
-    </application>
-  </compatibility>
-</assembly>
diff --git a/build/win/dbghelp_xp/README.chromium b/build/win/dbghelp_xp/README.chromium
deleted file mode 100644
index a52cfad..0000000
--- a/build/win/dbghelp_xp/README.chromium
+++ /dev/null
@@ -1,2 +0,0 @@
-This dbghelp.dll is the redistributable version from the Windows 7 SDK, the

-last one to work on Windows XP.

diff --git a/build/win/dbghelp_xp/dbghelp.dll b/build/win/dbghelp_xp/dbghelp.dll
deleted file mode 100755
index 9f52a5d..0000000
--- a/build/win/dbghelp_xp/dbghelp.dll
+++ /dev/null
Binary files differ
diff --git a/build/win/importlibs/create_importlib_win.py b/build/win/importlibs/create_importlib_win.py
deleted file mode 100755
index bb6a2f0..0000000
--- a/build/win/importlibs/create_importlib_win.py
+++ /dev/null
@@ -1,217 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 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.
-#
-"""Creates an import library from an import description file."""
-import ast
-import logging
-import optparse
-import os
-import os.path
-import shutil
-import subprocess
-import sys
-import tempfile
-
-
-_USAGE = """\
-Usage: %prog [options] [imports-file]
-
-Creates an import library from imports-file.
-
-Note: this script uses the microsoft assembler (ml.exe) and the library tool
-    (lib.exe), both of which must be in path.
-"""
-
-
-_ASM_STUB_HEADER = """\
-; This file is autogenerated by create_importlib_win.py, do not edit.
-.386
-.MODEL FLAT, C
-.CODE
-
-; Stubs to provide mangled names to lib.exe for the
-; correct generation of import libs.
-"""
-
-
-_DEF_STUB_HEADER = """\
-; This file is autogenerated by create_importlib_win.py, do not edit.
-
-; Export declarations for generating import libs.
-"""
-
-
-_LOGGER = logging.getLogger()
-
-
-
-class _Error(Exception):
-  pass
-
-
-class _ImportLibraryGenerator(object):
-  def __init__(self, temp_dir):
-    self._temp_dir = temp_dir
-
-  def _Shell(self, cmd, **kw):
-    ret = subprocess.call(cmd, **kw)
-    _LOGGER.info('Running "%s" returned %d.', cmd, ret)
-    if ret != 0:
-      raise _Error('Command "%s" returned %d.' % (cmd, ret))
-
-  def _ReadImportsFile(self, imports_file):
-    # Slurp the imports file.
-    return ast.literal_eval(open(imports_file).read())
-
-  def _WriteStubsFile(self, import_names, output_file):
-    output_file.write(_ASM_STUB_HEADER)
-
-    for name in import_names:
-      output_file.write('%s PROC\n' % name)
-      output_file.write('%s ENDP\n' % name)
-
-    output_file.write('END\n')
-
-  def _WriteDefFile(self, dll_name, import_names, output_file):
-    output_file.write(_DEF_STUB_HEADER)
-    output_file.write('NAME %s\n' % dll_name)
-    output_file.write('EXPORTS\n')
-    for name in import_names:
-      name = name.split('@')[0]
-      output_file.write('  %s\n' % name)
-
-  def _CreateObj(self, dll_name, imports):
-    """Writes an assembly file containing empty declarations.
-
-    For each imported function of the form:
-
-    AddClipboardFormatListener@4 PROC
-    AddClipboardFormatListener@4 ENDP
-
-    The resulting object file is then supplied to lib.exe with a .def file
-    declaring the corresponding non-adorned exports as they appear on the
-    exporting DLL, e.g.
-
-    EXPORTS
-      AddClipboardFormatListener
-
-    In combination, the .def file and the .obj file cause lib.exe to generate
-    an x86 import lib with public symbols named like
-    "__imp__AddClipboardFormatListener@4", binding to exports named like
-    "AddClipboardFormatListener".
-
-    All of this is perpetrated in a temporary directory, as the intermediate
-    artifacts are quick and easy to produce, and of no interest to anyone
-    after the fact."""
-
-    # Create an .asm file to provide stdcall-like stub names to lib.exe.
-    asm_name = dll_name + '.asm'
-    _LOGGER.info('Writing asm file "%s".', asm_name)
-    with open(os.path.join(self._temp_dir, asm_name), 'wb') as stubs_file:
-      self._WriteStubsFile(imports, stubs_file)
-
-    # Invoke on the assembler to compile it to .obj.
-    obj_name = dll_name + '.obj'
-    cmdline = ['ml.exe', '/nologo', '/c', asm_name, '/Fo', obj_name]
-    self._Shell(cmdline, cwd=self._temp_dir, stdout=open(os.devnull))
-
-    return obj_name
-
-  def _CreateImportLib(self, dll_name, imports, architecture, output_file):
-    """Creates an import lib binding imports to dll_name for architecture.
-
-    On success, writes the import library to output file.
-    """
-    obj_file = None
-
-    # For x86 architecture we have to provide an object file for correct
-    # name mangling between the import stubs and the exported functions.
-    if architecture == 'x86':
-      obj_file = self._CreateObj(dll_name, imports)
-
-    # Create the corresponding .def file. This file has the non stdcall-adorned
-    # names, as exported by the destination DLL.
-    def_name = dll_name + '.def'
-    _LOGGER.info('Writing def file "%s".', def_name)
-    with open(os.path.join(self._temp_dir, def_name), 'wb') as def_file:
-      self._WriteDefFile(dll_name, imports, def_file)
-
-    # Invoke on lib.exe to create the import library.
-    # We generate everything into the temporary directory, as the .exp export
-    # files will be generated at the same path as the import library, and we
-    # don't want those files potentially gunking the works.
-    dll_base_name, ext = os.path.splitext(dll_name)
-    lib_name = dll_base_name + '.lib'
-    cmdline = ['lib.exe',
-               '/machine:%s' % architecture,
-               '/def:%s' % def_name,
-               '/out:%s' % lib_name]
-    if obj_file:
-      cmdline.append(obj_file)
-
-    self._Shell(cmdline, cwd=self._temp_dir, stdout=open(os.devnull))
-
-    # Copy the .lib file to the output directory.
-    shutil.copyfile(os.path.join(self._temp_dir, lib_name), output_file)
-    _LOGGER.info('Created "%s".', output_file)
-
-  def CreateImportLib(self, imports_file, output_file):
-    # Read the imports file.
-    imports = self._ReadImportsFile(imports_file)
-
-    # Creates the requested import library in the output directory.
-    self._CreateImportLib(imports['dll_name'],
-                          imports['imports'],
-                          imports.get('architecture', 'x86'),
-                          output_file)
-
-
-def main():
-  parser = optparse.OptionParser(usage=_USAGE)
-  parser.add_option('-o', '--output-file',
-                    help='Specifies the output file path.')
-  parser.add_option('-k', '--keep-temp-dir',
-                    action='store_true',
-                    help='Keep the temporary directory.')
-  parser.add_option('-v', '--verbose',
-                    action='store_true',
-                    help='Verbose logging.')
-
-  options, args = parser.parse_args()
-
-  if len(args) != 1:
-    parser.error('You must provide an imports file.')
-
-  if not options.output_file:
-    parser.error('You must provide an output file.')
-
-  options.output_file = os.path.abspath(options.output_file)
-
-  if options.verbose:
-    logging.basicConfig(level=logging.INFO)
-  else:
-    logging.basicConfig(level=logging.WARN)
-
-
-  temp_dir = tempfile.mkdtemp()
-  _LOGGER.info('Created temporary directory "%s."', temp_dir)
-  try:
-    # Create a generator and create the import lib.
-    generator = _ImportLibraryGenerator(temp_dir)
-
-    ret = generator.CreateImportLib(args[0], options.output_file)
-  except Exception, e:
-    _LOGGER.exception('Failed to create import lib.')
-    ret = 1
-  finally:
-    if not options.keep_temp_dir:
-      shutil.rmtree(temp_dir)
-      _LOGGER.info('Deleted temporary directory "%s."', temp_dir)
-
-  return ret
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/build/win/importlibs/filter_export_list.py b/build/win/importlibs/filter_export_list.py
deleted file mode 100755
index c2489a9..0000000
--- a/build/win/importlibs/filter_export_list.py
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 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.
-#
-"""Help maintaining DLL import lists."""
-import ast
-import optparse
-import re
-import sys
-
-
-_EXPORT_RE = re.compile(r"""
-  ^\s*(?P<ordinal>[0-9]+)  # The ordinal field.
-  \s+(?P<hint>[0-9A-F]+)   # The hint field.
-  \s(?P<rva>........)      # The RVA field.
-  \s+(?P<name>[^ ]+)       # And finally the name we're really after.
-""", re.VERBOSE)
-
-
-_USAGE = r"""\
-Usage: %prog [options] [master-file]
-
-This script filters a list of exports from a DLL, generated from something
-like the following command line:
-
-C:\> dumpbin /exports user32.dll
-
-against a master list of imports built from e.g.
-
-C:\> dumpbin /exports user32.lib
-
-The point of this is to trim non-public exports from the list, and to
-normalize the names to their stdcall-mangled form for the generation of
-import libraries.
-Note that the export names from the latter incanatation are stdcall-mangled,
-e.g. they are suffixed with "@" and the number of argument bytes to the
-function.
-"""
-
-def _ReadMasterFile(master_file):
-  # Slurp the master file.
-  with open(master_file) as f:
-    master_exports = ast.literal_eval(f.read())
-
-  master_mapping = {}
-  for export in master_exports:
-    name = export.split('@')[0]
-    master_mapping[name] = export
-
-  return master_mapping
-
-
-def main():
-  parser = optparse.OptionParser(usage=_USAGE)
-  parser.add_option('-r', '--reverse',
-                    action='store_true',
-                    help='Reverse the matching, e.g. return the functions '
-                         'in the master list that aren\'t in the input.')
-
-  options, args = parser.parse_args()
-  if len(args) != 1:
-    parser.error('Must provide a master file.')
-
-  master_mapping = _ReadMasterFile(args[0])
-
-  found_exports = []
-  for line in sys.stdin:
-    match = _EXPORT_RE.match(line)
-    if match:
-      export_name = master_mapping.get(match.group('name'), None)
-      if export_name:
-          found_exports.append(export_name)
-
-  if options.reverse:
-    # Invert the found_exports list.
-    found_exports = set(master_mapping.values()) - set(found_exports)
-
-  # Sort the found exports for tidy output.
-  print '\n'.join(sorted(found_exports))
-  return 0
-
-
-if __name__ == '__main__':
-  sys.exit(main())
diff --git a/build/win/importlibs/x86/user32.winxp.imports b/build/win/importlibs/x86/user32.winxp.imports
deleted file mode 100644
index 24403a8..0000000
--- a/build/win/importlibs/x86/user32.winxp.imports
+++ /dev/null
@@ -1,670 +0,0 @@
-# Copyright (c) 2012 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.
-#
-# This file is used to create a custom import library for Chrome's use of
-# user32.dll exports. The set of exports defined below
-{
-  'architecture': 'x86',
-
-  # The DLL to bind to.
-  'dll_name': 'user32.dll',
-
-  # Name of the generated import library.
-  'importlib_name': 'user32.winxp.lib',
-
-  # This is the set of exports observed on a user32.dll from Windows XP SP2.
-  # The version of the DLL where these were observed is 5.1.2600.2180.
-  # Incidentally this set of exports also coincides with Windows XP SP3, where
-  # the version of the DLL is 5.1.2600.5512.
-  # Don't add new imports here unless and until the minimal supported
-  # Windows version has been bumped past Windows XP SP2+.
-  'imports': [
-    'ActivateKeyboardLayout@8',
-    'AdjustWindowRect@12',
-    'AdjustWindowRectEx@16',
-    'AllowSetForegroundWindow@4',
-    'AnimateWindow@12',
-    'AnyPopup@0',
-    'AppendMenuA@16',
-    'AppendMenuW@16',
-    'ArrangeIconicWindows@4',
-    'AttachThreadInput@12',
-    'BeginDeferWindowPos@4',
-    'BeginPaint@8',
-    'BlockInput@4',
-    'BringWindowToTop@4',
-    'BroadcastSystemMessage@20',
-    'BroadcastSystemMessageA@20',
-    'BroadcastSystemMessageExA@24',
-    'BroadcastSystemMessageExW@24',
-    'BroadcastSystemMessageW@20',
-    'CallMsgFilter@8',
-    'CallMsgFilterA@8',
-    'CallMsgFilterW@8',
-    'CallNextHookEx@16',
-    'CallWindowProcA@20',
-    'CallWindowProcW@20',
-    'CascadeChildWindows@8',
-    'CascadeWindows@20',
-    'ChangeClipboardChain@8',
-    'ChangeDisplaySettingsA@8',
-    'ChangeDisplaySettingsExA@20',
-    'ChangeDisplaySettingsExW@20',
-    'ChangeDisplaySettingsW@8',
-    'ChangeMenuA@20',
-    'ChangeMenuW@20',
-    'CharLowerA@4',
-    'CharLowerBuffA@8',
-    'CharLowerBuffW@8',
-    'CharLowerW@4',
-    'CharNextA@4',
-    'CharNextExA@12',
-    'CharNextW@4',
-    'CharPrevA@8',
-    'CharPrevExA@16',
-    'CharPrevW@8',
-    'CharToOemA@8',
-    'CharToOemBuffA@12',
-    'CharToOemBuffW@12',
-    'CharToOemW@8',
-    'CharUpperA@4',
-    'CharUpperBuffA@8',
-    'CharUpperBuffW@8',
-    'CharUpperW@4',
-    'CheckDlgButton@12',
-    'CheckMenuItem@12',
-    'CheckMenuRadioItem@20',
-    'CheckRadioButton@16',
-    'ChildWindowFromPoint@12',
-    'ChildWindowFromPointEx@16',
-    'ClientToScreen@8',
-    'ClipCursor@4',
-    'CloseClipboard@0',
-    'CloseDesktop@4',
-    'CloseWindow@4',
-    'CloseWindowStation@4',
-    'CopyAcceleratorTableA@12',
-    'CopyAcceleratorTableW@12',
-    'CopyIcon@4',
-    'CopyImage@20',
-    'CopyRect@8',
-    'CountClipboardFormats@0',
-    'CreateAcceleratorTableA@8',
-    'CreateAcceleratorTableW@8',
-    'CreateCaret@16',
-    'CreateCursor@28',
-    'CreateDesktopA@24',
-    'CreateDesktopW@24',
-    'CreateDialogIndirectParamA@20',
-    'CreateDialogIndirectParamW@20',
-    'CreateDialogParamA@20',
-    'CreateDialogParamW@20',
-    'CreateIcon@28',
-    'CreateIconFromResource@16',
-    'CreateIconFromResourceEx@28',
-    'CreateIconIndirect@4',
-    'CreateMDIWindowA@40',
-    'CreateMDIWindowW@40',
-    'CreateMenu@0',
-    'CreatePopupMenu@0',
-    'CreateWindowExA@48',
-    'CreateWindowExW@48',
-    'CreateWindowStationA@16',
-    'CreateWindowStationW@16',
-    'DdeAbandonTransaction@12',
-    'DdeAccessData@8',
-    'DdeAddData@16',
-    'DdeClientTransaction@32',
-    'DdeCmpStringHandles@8',
-    'DdeConnect@16',
-    'DdeConnectList@20',
-    'DdeCreateDataHandle@28',
-    'DdeCreateStringHandleA@12',
-    'DdeCreateStringHandleW@12',
-    'DdeDisconnect@4',
-    'DdeDisconnectList@4',
-    'DdeEnableCallback@12',
-    'DdeFreeDataHandle@4',
-    'DdeFreeStringHandle@8',
-    'DdeGetData@16',
-    'DdeGetLastError@4',
-    'DdeImpersonateClient@4',
-    'DdeInitializeA@16',
-    'DdeInitializeW@16',
-    'DdeKeepStringHandle@8',
-    'DdeNameService@16',
-    'DdePostAdvise@12',
-    'DdeQueryConvInfo@12',
-    'DdeQueryNextServer@8',
-    'DdeQueryStringA@20',
-    'DdeQueryStringW@20',
-    'DdeReconnect@4',
-    'DdeSetQualityOfService@12',
-    'DdeSetUserHandle@12',
-    'DdeUnaccessData@4',
-    'DdeUninitialize@4',
-    'DefDlgProcA@16',
-    'DefDlgProcW@16',
-    'DefFrameProcA@20',
-    'DefFrameProcW@20',
-    'DefMDIChildProcA@16',
-    'DefMDIChildProcW@16',
-    'DefRawInputProc@12',
-    'DefWindowProcA@16',
-    'DefWindowProcW@16',
-    'DeferWindowPos@32',
-    'DeleteMenu@12',
-    'DeregisterShellHookWindow@4',
-    'DestroyAcceleratorTable@4',
-    'DestroyCaret@0',
-    'DestroyCursor@4',
-    'DestroyIcon@4',
-    'DestroyMenu@4',
-    'DestroyWindow@4',
-    'DialogBoxIndirectParamA@20',
-    'DialogBoxIndirectParamW@20',
-    'DialogBoxParamA@20',
-    'DialogBoxParamW@20',
-    'DisableProcessWindowsGhosting@0',
-    'DispatchMessageA@4',
-    'DispatchMessageW@4',
-    'DlgDirListA@20',
-    'DlgDirListComboBoxA@20',
-    'DlgDirListComboBoxW@20',
-    'DlgDirListW@20',
-    'DlgDirSelectComboBoxExA@16',
-    'DlgDirSelectComboBoxExW@16',
-    'DlgDirSelectExA@16',
-    'DlgDirSelectExW@16',
-    'DragDetect@12',
-    'DragObject@20',
-    'DrawAnimatedRects@16',
-    'DrawCaption@16',
-    'DrawEdge@16',
-    'DrawFocusRect@8',
-    'DrawFrame@16',
-    'DrawFrameControl@16',
-    'DrawIcon@16',
-    'DrawIconEx@36',
-    'DrawMenuBar@4',
-    'DrawStateA@40',
-    'DrawStateW@40',
-    'DrawTextA@20',
-    'DrawTextExA@24',
-    'DrawTextExW@24',
-    'DrawTextW@20',
-    'EditWndProc@16',
-    'EmptyClipboard@0',
-    'EnableMenuItem@12',
-    'EnableScrollBar@12',
-    'EnableWindow@8',
-    'EndDeferWindowPos@4',
-    'EndDialog@8',
-    'EndMenu@0',
-    'EndPaint@8',
-    'EndTask@12',
-    'EnumChildWindows@12',
-    'EnumClipboardFormats@4',
-    'EnumDesktopWindows@12',
-    'EnumDesktopsA@12',
-    'EnumDesktopsW@12',
-    'EnumDisplayDevicesA@16',
-    'EnumDisplayDevicesW@16',
-    'EnumDisplayMonitors@16',
-    'EnumDisplaySettingsA@12',
-    'EnumDisplaySettingsExA@16',
-    'EnumDisplaySettingsExW@16',
-    'EnumDisplaySettingsW@12',
-    'EnumPropsA@8',
-    'EnumPropsExA@12',
-    'EnumPropsExW@12',
-    'EnumPropsW@8',
-    'EnumThreadWindows@12',
-    'EnumWindowStationsA@8',
-    'EnumWindowStationsW@8',
-    'EnumWindows@8',
-    'EqualRect@8',
-    'ExcludeUpdateRgn@8',
-    'ExitWindowsEx@8',
-    'FillRect@12',
-    'FindWindowA@8',
-    'FindWindowExA@16',
-    'FindWindowExW@16',
-    'FindWindowW@8',
-    'FlashWindow@8',
-    'FlashWindowEx@4',
-    'FrameRect@12',
-    'FreeDDElParam@8',
-    'GetActiveWindow@0',
-    'GetAltTabInfo@20',
-    'GetAltTabInfoA@20',
-    'GetAltTabInfoW@20',
-    'GetAncestor@8',
-    'GetAsyncKeyState@4',
-    'GetCapture@0',
-    'GetCaretBlinkTime@0',
-    'GetCaretPos@4',
-    'GetClassInfoA@12',
-    'GetClassInfoExA@12',
-    'GetClassInfoExW@12',
-    'GetClassInfoW@12',
-    'GetClassLongA@8',
-    'GetClassLongW@8',
-    'GetClassNameA@12',
-    'GetClassNameW@12',
-    'GetClassWord@8',
-    'GetClientRect@8',
-    'GetClipCursor@4',
-    'GetClipboardData@4',
-    'GetClipboardFormatNameA@12',
-    'GetClipboardFormatNameW@12',
-    'GetClipboardOwner@0',
-    'GetClipboardSequenceNumber@0',
-    'GetClipboardViewer@0',
-    'GetComboBoxInfo@8',
-    'GetCursor@0',
-    'GetCursorInfo@4',
-    'GetCursorPos@4',
-    'GetDC@4',
-    'GetDCEx@12',
-    'GetDesktopWindow@0',
-    'GetDialogBaseUnits@0',
-    'GetDlgCtrlID@4',
-    'GetDlgItem@8',
-    'GetDlgItemInt@16',
-    'GetDlgItemTextA@16',
-    'GetDlgItemTextW@16',
-    'GetDoubleClickTime@0',
-    'GetFocus@0',
-    'GetForegroundWindow@0',
-    'GetGUIThreadInfo@8',
-    'GetGuiResources@8',
-    'GetIconInfo@8',
-    'GetInputDesktop@0',
-    'GetInputState@0',
-    'GetKBCodePage@0',
-    'GetKeyNameTextA@12',
-    'GetKeyNameTextW@12',
-    'GetKeyState@4',
-    'GetKeyboardLayout@4',
-    'GetKeyboardLayoutList@8',
-    'GetKeyboardLayoutNameA@4',
-    'GetKeyboardLayoutNameW@4',
-    'GetKeyboardState@4',
-    'GetKeyboardType@4',
-    'GetLastActivePopup@4',
-    'GetLastInputInfo@4',
-    'GetLayeredWindowAttributes@16',
-    'GetListBoxInfo@4',
-    'GetMenu@4',
-    'GetMenuBarInfo@16',
-    'GetMenuCheckMarkDimensions@0',
-    'GetMenuContextHelpId@4',
-    'GetMenuDefaultItem@12',
-    'GetMenuInfo@8',
-    'GetMenuItemCount@4',
-    'GetMenuItemID@8',
-    'GetMenuItemInfoA@16',
-    'GetMenuItemInfoW@16',
-    'GetMenuItemRect@16',
-    'GetMenuState@12',
-    'GetMenuStringA@20',
-    'GetMenuStringW@20',
-    'GetMessageA@16',
-    'GetMessageExtraInfo@0',
-    'GetMessagePos@0',
-    'GetMessageTime@0',
-    'GetMessageW@16',
-    'GetMonitorInfoA@8',
-    'GetMonitorInfoW@8',
-    'GetMouseMovePointsEx@20',
-    'GetNextDlgGroupItem@12',
-    'GetNextDlgTabItem@12',
-    'GetOpenClipboardWindow@0',
-    'GetParent@4',
-    'GetPriorityClipboardFormat@8',
-    'GetProcessDefaultLayout@4',
-    'GetProcessWindowStation@0',
-    'GetPropA@8',
-    'GetPropW@8',
-    'GetQueueStatus@4',
-    'GetRawInputBuffer@12',
-    'GetRawInputData@20',
-    'GetRawInputDeviceInfoA@16',
-    'GetRawInputDeviceInfoW@16',
-    'GetRawInputDeviceList@12',
-    'GetRegisteredRawInputDevices@12',
-    'GetScrollBarInfo@12',
-    'GetScrollInfo@12',
-    'GetScrollPos@8',
-    'GetScrollRange@16',
-    'GetShellWindow@0',
-    'GetSubMenu@8',
-    'GetSysColor@4',
-    'GetSysColorBrush@4',
-    'GetSystemMenu@8',
-    'GetSystemMetrics@4',
-    'GetTabbedTextExtentA@20',
-    'GetTabbedTextExtentW@20',
-    'GetThreadDesktop@4',
-    'GetTitleBarInfo@8',
-    'GetTopWindow@4',
-    'GetUpdateRect@12',
-    'GetUpdateRgn@12',
-    'GetUserObjectInformationA@20',
-    'GetUserObjectInformationW@20',
-    'GetUserObjectSecurity@20',
-    'GetWindow@8',
-    'GetWindowContextHelpId@4',
-    'GetWindowDC@4',
-    'GetWindowInfo@8',
-    'GetWindowLongA@8',
-    'GetWindowLongW@8',
-    'GetWindowModuleFileName@12',
-    'GetWindowModuleFileNameA@12',
-    'GetWindowModuleFileNameW@12',
-    'GetWindowPlacement@8',
-    'GetWindowRect@8',
-    'GetWindowRgn@8',
-    'GetWindowRgnBox@8',
-    'GetWindowTextA@12',
-    'GetWindowTextLengthA@4',
-    'GetWindowTextLengthW@4',
-    'GetWindowTextW@12',
-    'GetWindowThreadProcessId@8',
-    'GetWindowWord@8',
-    'GrayStringA@36',
-    'GrayStringW@36',
-    'HideCaret@4',
-    'HiliteMenuItem@16',
-    'IMPGetIMEA@8',
-    'IMPGetIMEW@8',
-    'IMPQueryIMEA@4',
-    'IMPQueryIMEW@4',
-    'IMPSetIMEA@8',
-    'IMPSetIMEW@8',
-    'ImpersonateDdeClientWindow@8',
-    'InSendMessage@0',
-    'InSendMessageEx@4',
-    'InflateRect@12',
-    'InsertMenuA@20',
-    'InsertMenuItemA@16',
-    'InsertMenuItemW@16',
-    'InsertMenuW@20',
-    'InternalGetWindowText@12',
-    'IntersectRect@12',
-    'InvalidateRect@12',
-    'InvalidateRgn@12',
-    'InvertRect@8',
-    'IsCharAlphaA@4',
-    'IsCharAlphaNumericA@4',
-    'IsCharAlphaNumericW@4',
-    'IsCharAlphaW@4',
-    'IsCharLowerA@4',
-    'IsCharLowerW@4',
-    'IsCharUpperA@4',
-    'IsCharUpperW@4',
-    'IsChild@8',
-    'IsClipboardFormatAvailable@4',
-    'IsDialogMessage@8',
-    'IsDialogMessageA@8',
-    'IsDialogMessageW@8',
-    'IsDlgButtonChecked@8',
-    'IsGUIThread@4',
-    'IsHungAppWindow@4',
-    'IsIconic@4',
-    'IsMenu@4',
-    'IsRectEmpty@4',
-    'IsWinEventHookInstalled@4',
-    'IsWindow@4',
-    'IsWindowEnabled@4',
-    'IsWindowUnicode@4',
-    'IsWindowVisible@4',
-    'IsZoomed@4',
-    'KillTimer@8',
-    'LoadAcceleratorsA@8',
-    'LoadAcceleratorsW@8',
-    'LoadBitmapA@8',
-    'LoadBitmapW@8',
-    'LoadCursorA@8',
-    'LoadCursorFromFileA@4',
-    'LoadCursorFromFileW@4',
-    'LoadCursorW@8',
-    'LoadIconA@8',
-    'LoadIconW@8',
-    'LoadImageA@24',
-    'LoadImageW@24',
-    'LoadKeyboardLayoutA@8',
-    'LoadKeyboardLayoutW@8',
-    'LoadMenuA@8',
-    'LoadMenuIndirectA@4',
-    'LoadMenuIndirectW@4',
-    'LoadMenuW@8',
-    'LoadStringA@16',
-    'LoadStringW@16',
-    'LockSetForegroundWindow@4',
-    'LockWindowUpdate@4',
-    'LockWorkStation@0',
-    'LookupIconIdFromDirectory@8',
-    'LookupIconIdFromDirectoryEx@20',
-    'MapDialogRect@8',
-    'MapVirtualKeyA@8',
-    'MapVirtualKeyExA@12',
-    'MapVirtualKeyExW@12',
-    'MapVirtualKeyW@8',
-    'MapWindowPoints@16',
-    'MenuItemFromPoint@16',
-    'MessageBeep@4',
-    'MessageBoxA@16',
-    'MessageBoxExA@20',
-    'MessageBoxExW@20',
-    'MessageBoxIndirectA@4',
-    'MessageBoxIndirectW@4',
-    'MessageBoxTimeoutA@24',
-    'MessageBoxTimeoutW@24',
-    'MessageBoxW@16',
-    'ModifyMenuA@20',
-    'ModifyMenuW@20',
-    'MonitorFromPoint@12',
-    'MonitorFromRect@8',
-    'MonitorFromWindow@8',
-    'MoveWindow@24',
-    'MsgWaitForMultipleObjects@20',
-    'MsgWaitForMultipleObjectsEx@20',
-    'NotifyWinEvent@16',
-    'OemKeyScan@4',
-    'OemToCharA@8',
-    'OemToCharBuffA@12',
-    'OemToCharBuffW@12',
-    'OemToCharW@8',
-    'OffsetRect@12',
-    'OpenClipboard@4',
-    'OpenDesktopA@16',
-    'OpenDesktopW@16',
-    'OpenIcon@4',
-    'OpenInputDesktop@12',
-    'OpenWindowStationA@12',
-    'OpenWindowStationW@12',
-    'PackDDElParam@12',
-    'PaintDesktop@4',
-    'PeekMessageA@20',
-    'PeekMessageW@20',
-    'PostMessageA@16',
-    'PostMessageW@16',
-    'PostQuitMessage@4',
-    'PostThreadMessageA@16',
-    'PostThreadMessageW@16',
-    'PrintWindow@12',
-    'PrivateExtractIconsA@32',
-    'PrivateExtractIconsW@32',
-    'PtInRect@12',
-    'RealChildWindowFromPoint@12',
-    'RealGetWindowClass@12',
-    'RealGetWindowClassA@12',
-    'RealGetWindowClassW@12',
-    'RedrawWindow@16',
-    'RegisterClassA@4',
-    'RegisterClassExA@4',
-    'RegisterClassExW@4',
-    'RegisterClassW@4',
-    'RegisterClipboardFormatA@4',
-    'RegisterClipboardFormatW@4',
-    'RegisterDeviceNotificationA@12',
-    'RegisterDeviceNotificationW@12',
-    'RegisterHotKey@16',
-    'RegisterRawInputDevices@12',
-    'RegisterShellHookWindow@4',
-    'RegisterWindowMessageA@4',
-    'RegisterWindowMessageW@4',
-    'ReleaseCapture@0',
-    'ReleaseDC@8',
-    'RemoveMenu@12',
-    'RemovePropA@8',
-    'RemovePropW@8',
-    'ReplyMessage@4',
-    'ReuseDDElParam@20',
-    'ScreenToClient@8',
-    'ScrollDC@28',
-    'ScrollWindow@20',
-    'ScrollWindowEx@32',
-    'SendDlgItemMessageA@20',
-    'SendDlgItemMessageW@20',
-    'SendIMEMessageExA@8',
-    'SendIMEMessageExW@8',
-    'SendInput@12',
-    'SendMessageA@16',
-    'SendMessageCallbackA@24',
-    'SendMessageCallbackW@24',
-    'SendMessageTimeoutA@28',
-    'SendMessageTimeoutW@28',
-    'SendMessageW@16',
-    'SendNotifyMessageA@16',
-    'SendNotifyMessageW@16',
-    'SetActiveWindow@4',
-    'SetCapture@4',
-    'SetCaretBlinkTime@4',
-    'SetCaretPos@8',
-    'SetClassLongA@12',
-    'SetClassLongW@12',
-    'SetClassWord@12',
-    'SetClipboardData@8',
-    'SetClipboardViewer@4',
-    'SetCursor@4',
-    'SetCursorPos@8',
-    'SetDebugErrorLevel@4',
-    'SetDeskWallpaper@4',
-    'SetDlgItemInt@16',
-    'SetDlgItemTextA@12',
-    'SetDlgItemTextW@12',
-    'SetDoubleClickTime@4',
-    'SetFocus@4',
-    'SetForegroundWindow@4',
-    'SetKeyboardState@4',
-    'SetLastErrorEx@8',
-    'SetLayeredWindowAttributes@16',
-    'SetMenu@8',
-    'SetMenuContextHelpId@8',
-    'SetMenuDefaultItem@12',
-    'SetMenuInfo@8',
-    'SetMenuItemBitmaps@20',
-    'SetMenuItemInfoA@16',
-    'SetMenuItemInfoW@16',
-    'SetMessageExtraInfo@4',
-    'SetMessageQueue@4',
-    'SetParent@8',
-    'SetProcessDefaultLayout@4',
-    'SetProcessWindowStation@4',
-    'SetPropA@12',
-    'SetPropW@12',
-    'SetRect@20',
-    'SetRectEmpty@4',
-    'SetScrollInfo@16',
-    'SetScrollPos@16',
-    'SetScrollRange@20',
-    'SetShellWindow@4',
-    'SetSysColors@12',
-    'SetSystemCursor@8',
-    'SetThreadDesktop@4',
-    'SetTimer@16',
-    'SetUserObjectInformationA@16',
-    'SetUserObjectInformationW@16',
-    'SetUserObjectSecurity@12',
-    'SetWinEventHook@28',
-    'SetWindowContextHelpId@8',
-    'SetWindowLongA@12',
-    'SetWindowLongW@12',
-    'SetWindowPlacement@8',
-    'SetWindowPos@28',
-    'SetWindowRgn@12',
-    'SetWindowTextA@8',
-    'SetWindowTextW@8',
-    'SetWindowWord@12',
-    'SetWindowsHookA@8',
-    'SetWindowsHookExA@16',
-    'SetWindowsHookExW@16',
-    'SetWindowsHookW@8',
-    'ShowCaret@4',
-    'ShowCursor@4',
-    'ShowOwnedPopups@8',
-    'ShowScrollBar@12',
-    'ShowWindow@8',
-    'ShowWindowAsync@8',
-    'SubtractRect@12',
-    'SwapMouseButton@4',
-    'SwitchDesktop@4',
-    'SwitchToThisWindow@8',
-    'SystemParametersInfoA@16',
-    'SystemParametersInfoW@16',
-    'TabbedTextOutA@32',
-    'TabbedTextOutW@32',
-    'TileChildWindows@8',
-    'TileWindows@20',
-    'ToAscii@20',
-    'ToAsciiEx@24',
-    'ToUnicode@24',
-    'ToUnicodeEx@28',
-    'TrackMouseEvent@4',
-    'TrackPopupMenu@28',
-    'TrackPopupMenuEx@24',
-    'TranslateAccelerator@12',
-    'TranslateAcceleratorA@12',
-    'TranslateAcceleratorW@12',
-    'TranslateMDISysAccel@8',
-    'TranslateMessage@4',
-    'UnhookWinEvent@4',
-    'UnhookWindowsHook@8',
-    'UnhookWindowsHookEx@4',
-    'UnionRect@12',
-    'UnloadKeyboardLayout@4',
-    'UnpackDDElParam@16',
-    'UnregisterClassA@8',
-    'UnregisterClassW@8',
-    'UnregisterDeviceNotification@4',
-    'UnregisterHotKey@8',
-    'UpdateLayeredWindow@36',
-    'UpdateWindow@4',
-    'UserHandleGrantAccess@12',
-    'ValidateRect@8',
-    'ValidateRgn@8',
-    'VkKeyScanA@4',
-    'VkKeyScanExA@8',
-    'VkKeyScanExW@8',
-    'VkKeyScanW@4',
-    'WINNLSEnableIME@8',
-    'WINNLSGetEnableStatus@4',
-    'WINNLSGetIMEHotkey@4',
-    'WaitForInputIdle@8',
-    'WaitMessage@0',
-    'WinHelpA@16',
-    'WinHelpW@16',
-    'WindowFromDC@4',
-    'WindowFromPoint@8',
-    'keybd_event@16',
-    'mouse_event@20',
-    'wsprintfA',
-    'wsprintfW',
-    'wvsprintfA@12',
-    'wvsprintfW@12',
-  ]
-}
diff --git a/build/win/importlibs/x86/user32.winxp.lib b/build/win/importlibs/x86/user32.winxp.lib
deleted file mode 100644
index deb5577..0000000
--- a/build/win/importlibs/x86/user32.winxp.lib
+++ /dev/null
Binary files differ
diff --git a/build/win/reorder-imports.py b/build/win/reorder-imports.py
deleted file mode 100755
index 281668f..0000000
--- a/build/win/reorder-imports.py
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2014 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import glob
-import optparse
-import os
-import shutil
-import subprocess
-import sys
-
-def reorder_imports(input_dir, output_dir, architecture):
-  """Run swapimports.exe on the initial chrome.exe, and write to the output
-  directory. Also copy over any related files that might be needed
-  (pdbs, manifests etc.).
-  """
-
-  input_image = os.path.join(input_dir, 'chrome.exe')
-  output_image = os.path.join(output_dir, 'chrome.exe')
-
-  swap_exe = os.path.join(
-    __file__,
-    '..\\..\\..\\third_party\\syzygy\\binaries\\exe\\swapimport.exe')
-
-  args = [swap_exe, '--input-image=%s' % input_image,
-      '--output-image=%s' % output_image, '--overwrite', '--no-logo']
-
-  if architecture == 'x64':
-    args.append('--x64');
-
-  args.append('chrome_elf.dll');
-
-  subprocess.call(args)
-
-  for fname in glob.iglob(os.path.join(input_dir, 'chrome.exe.*')):
-    shutil.copy(fname, os.path.join(output_dir, os.path.basename(fname)))
-  return 0
-
-
-def main(argv):
-  usage = 'reorder_imports.py -i <input_dir> -o <output_dir> -a <target_arch>'
-  parser = optparse.OptionParser(usage=usage)
-  parser.add_option('-i', '--input', help='reorder chrome.exe in DIR',
-      metavar='DIR')
-  parser.add_option('-o', '--output', help='write new chrome.exe to DIR',
-      metavar='DIR')
-  parser.add_option('-a', '--arch', help='architecture of build (optional)',
-      default='ia32')
-  opts, args = parser.parse_args()
-
-  if not opts.input or not opts.output:
-    parser.error('Please provide and input and output directory')
-  return reorder_imports(opts.input, opts.output, opts.arch)
-
-if __name__ == "__main__":
-  sys.exit(main(sys.argv[1:]))
diff --git a/build/win_is_xtree_patched.py b/build/win_is_xtree_patched.py
deleted file mode 100755
index 3f1994f..0000000
--- a/build/win_is_xtree_patched.py
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2014 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.
-
-"""Determines if the VS xtree header has been patched to disable C4702."""
-
-import os
-
-
-def IsPatched():
-  # TODO(scottmg): For now, just return if we're using the packaged toolchain
-  # script (because we know it's patched). Another case could be added here to
-  # query the active VS installation and actually check the contents of xtree.
-  # http://crbug.com/346399.
-  return int(os.environ.get('DEPOT_TOOLS_WIN_TOOLCHAIN', 1)) == 1
-
-
-def DoMain(_):
-  """Hook to be called from gyp without starting a separate python
-  interpreter."""
-  return "1" if IsPatched() else "0"
-
-
-if __name__ == '__main__':
-  print DoMain([])