diff --git a/base/allocator/allocator.gyp b/base/allocator/allocator.gyp
deleted file mode 100644
index d426c9c..0000000
--- a/base/allocator/allocator.gyp
+++ /dev/null
@@ -1,572 +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.
-
-{
-  'target_defaults': {
-    'variables': {
-      # This code gets run a lot and debugged rarely, so it should be fast
-      # by default. See http://crbug.com/388949.
-      'debug_optimize': '2',
-      'win_debug_Optimization': '0',
-      # Run time checks are incompatible with any level of optimizations.
-      'win_debug_RuntimeChecks': '0',
-    },
-  },
-  'variables': {
-    'tcmalloc_dir': '../../third_party/tcmalloc/chromium',
-    'use_vtable_verify%': 0,
-  },
-  'targets': [
-    # Only executables and not libraries should depend on the
-    # allocator target; only the application (the final executable)
-    # knows what allocator makes sense.
-    {
-      'target_name': 'allocator',
-      'type': 'static_library',
-      'direct_dependent_settings': {
-        'configurations': {
-          'Common_Base': {
-            'msvs_settings': {
-              'VCLinkerTool': {
-                'IgnoreDefaultLibraryNames': ['libcmtd.lib', 'libcmt.lib'],
-                'AdditionalDependencies': [
-                  '<(SHARED_INTERMEDIATE_DIR)/allocator/libcmt.lib'
-                ],
-              },
-            },
-          },
-        },
-        'conditions': [
-          ['OS=="win"', {
-            'defines': [
-              'PERFTOOLS_DLL_DECL=',
-            ],
-          }],
-        ],
-      },
-      'dependencies': [
-        '../third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
-      ],
-      'msvs_settings': {
-        # TODO(sgk):  merge this with build/common.gypi settings
-        'VCLibrarianTool': {
-          'AdditionalOptions': ['/ignore:4006,4221'],
-        },
-        'VCLinkerTool': {
-          'AdditionalOptions': ['/ignore:4006'],
-        },
-      },
-      'configurations': {
-        'Debug_Base': {
-          'msvs_settings': {
-            'VCCLCompilerTool': {
-              'RuntimeLibrary': '0',
-            },
-          },
-          'variables': {
-            # Provide a way to force disable debugallocation in Debug builds,
-            # e.g. for profiling (it's more rare to profile Debug builds,
-            # but people sometimes need to do that).
-            'disable_debugallocation%': 0,
-          },
-          'conditions': [
-            ['disable_debugallocation==0', {
-              'defines': [
-                # Use debugallocation for Debug builds to catch problems early
-                # and cleanly, http://crbug.com/30715 .
-                'TCMALLOC_FOR_DEBUGALLOCATION',
-              ],
-            }],
-          ],
-        },
-      },
-      'conditions': [
-        ['use_allocator=="tcmalloc"', {
-          # Disable the heap checker in tcmalloc.
-          'defines': [
-            'NO_HEAP_CHECK',
-          ],
-          'include_dirs': [
-            '.',
-            '<(tcmalloc_dir)/src/base',
-            '<(tcmalloc_dir)/src',
-            '../..',
-          ],
-          'sources': [
-            # Generated for our configuration from tcmalloc's build
-            # and checked in.
-            '<(tcmalloc_dir)/src/config.h',
-            '<(tcmalloc_dir)/src/config_android.h',
-            '<(tcmalloc_dir)/src/config_linux.h',
-            '<(tcmalloc_dir)/src/config_win.h',
-
-            # all tcmalloc native and forked files
-            '<(tcmalloc_dir)/src/addressmap-inl.h',
-            '<(tcmalloc_dir)/src/base/abort.cc',
-            '<(tcmalloc_dir)/src/base/abort.h',
-            '<(tcmalloc_dir)/src/base/arm_instruction_set_select.h',
-            '<(tcmalloc_dir)/src/base/atomicops-internals-arm-generic.h',
-            '<(tcmalloc_dir)/src/base/atomicops-internals-arm-v6plus.h',
-            '<(tcmalloc_dir)/src/base/atomicops-internals-linuxppc.h',
-            '<(tcmalloc_dir)/src/base/atomicops-internals-macosx.h',
-            '<(tcmalloc_dir)/src/base/atomicops-internals-windows.h',
-            '<(tcmalloc_dir)/src/base/atomicops-internals-x86.cc',
-            '<(tcmalloc_dir)/src/base/atomicops-internals-x86.h',
-            '<(tcmalloc_dir)/src/base/atomicops.h',
-            '<(tcmalloc_dir)/src/base/basictypes.h',
-            '<(tcmalloc_dir)/src/base/commandlineflags.h',
-            '<(tcmalloc_dir)/src/base/cycleclock.h',
-            # We don't list dynamic_annotations.c since its copy is already
-            # present in the dynamic_annotations target.
-            '<(tcmalloc_dir)/src/base/dynamic_annotations.h',
-            '<(tcmalloc_dir)/src/base/elf_mem_image.cc',
-            '<(tcmalloc_dir)/src/base/elf_mem_image.h',
-            '<(tcmalloc_dir)/src/base/elfcore.h',
-            '<(tcmalloc_dir)/src/base/googleinit.h',
-            '<(tcmalloc_dir)/src/base/linux_syscall_support.h',
-            '<(tcmalloc_dir)/src/base/linuxthreads.cc',
-            '<(tcmalloc_dir)/src/base/linuxthreads.h',
-            '<(tcmalloc_dir)/src/base/logging.cc',
-            '<(tcmalloc_dir)/src/base/logging.h',
-            '<(tcmalloc_dir)/src/base/low_level_alloc.cc',
-            '<(tcmalloc_dir)/src/base/low_level_alloc.h',
-            '<(tcmalloc_dir)/src/base/simple_mutex.h',
-            '<(tcmalloc_dir)/src/base/spinlock.cc',
-            '<(tcmalloc_dir)/src/base/spinlock.h',
-            '<(tcmalloc_dir)/src/base/spinlock_internal.cc',
-            '<(tcmalloc_dir)/src/base/spinlock_internal.h',
-            '<(tcmalloc_dir)/src/base/spinlock_linux-inl.h',
-            '<(tcmalloc_dir)/src/base/spinlock_posix-inl.h',
-            '<(tcmalloc_dir)/src/base/spinlock_win32-inl.h',
-            '<(tcmalloc_dir)/src/base/stl_allocator.h',
-            '<(tcmalloc_dir)/src/base/synchronization_profiling.h',
-            '<(tcmalloc_dir)/src/base/sysinfo.cc',
-            '<(tcmalloc_dir)/src/base/sysinfo.h',
-            '<(tcmalloc_dir)/src/base/thread_annotations.h',
-            '<(tcmalloc_dir)/src/base/thread_lister.c',
-            '<(tcmalloc_dir)/src/base/thread_lister.h',
-            '<(tcmalloc_dir)/src/base/vdso_support.cc',
-            '<(tcmalloc_dir)/src/base/vdso_support.h',
-            '<(tcmalloc_dir)/src/central_freelist.cc',
-            '<(tcmalloc_dir)/src/central_freelist.h',
-            '<(tcmalloc_dir)/src/common.cc',
-            '<(tcmalloc_dir)/src/common.h',
-            '<(tcmalloc_dir)/src/debugallocation.cc',
-            '<(tcmalloc_dir)/src/deep-heap-profile.cc',
-            '<(tcmalloc_dir)/src/deep-heap-profile.h',
-            '<(tcmalloc_dir)/src/free_list.cc',
-            '<(tcmalloc_dir)/src/free_list.h',
-            '<(tcmalloc_dir)/src/getpc.h',
-            '<(tcmalloc_dir)/src/gperftools/heap-checker.h',
-            '<(tcmalloc_dir)/src/gperftools/heap-profiler.h',
-            '<(tcmalloc_dir)/src/gperftools/malloc_extension.h',
-            '<(tcmalloc_dir)/src/gperftools/malloc_extension_c.h',
-            '<(tcmalloc_dir)/src/gperftools/malloc_hook.h',
-            '<(tcmalloc_dir)/src/gperftools/malloc_hook_c.h',
-            '<(tcmalloc_dir)/src/gperftools/profiler.h',
-            '<(tcmalloc_dir)/src/gperftools/stacktrace.h',
-            '<(tcmalloc_dir)/src/gperftools/tcmalloc.h',
-            '<(tcmalloc_dir)/src/heap-checker-bcad.cc',
-            '<(tcmalloc_dir)/src/heap-checker.cc',
-            '<(tcmalloc_dir)/src/heap-profile-table.cc',
-            '<(tcmalloc_dir)/src/heap-profile-table.h',
-            '<(tcmalloc_dir)/src/heap-profiler.cc',
-            '<(tcmalloc_dir)/src/internal_logging.cc',
-            '<(tcmalloc_dir)/src/internal_logging.h',
-            '<(tcmalloc_dir)/src/libc_override.h',
-            '<(tcmalloc_dir)/src/libc_override_gcc_and_weak.h',
-            '<(tcmalloc_dir)/src/libc_override_glibc.h',
-            '<(tcmalloc_dir)/src/libc_override_osx.h',
-            '<(tcmalloc_dir)/src/libc_override_redefine.h',
-            '<(tcmalloc_dir)/src/linked_list.h',
-            '<(tcmalloc_dir)/src/malloc_extension.cc',
-            '<(tcmalloc_dir)/src/malloc_hook-inl.h',
-            '<(tcmalloc_dir)/src/malloc_hook.cc',
-            '<(tcmalloc_dir)/src/malloc_hook_mmap_freebsd.h',
-            '<(tcmalloc_dir)/src/malloc_hook_mmap_linux.h',
-            '<(tcmalloc_dir)/src/maybe_threads.cc',
-            '<(tcmalloc_dir)/src/maybe_threads.h',
-            '<(tcmalloc_dir)/src/memfs_malloc.cc',
-            '<(tcmalloc_dir)/src/memory_region_map.cc',
-            '<(tcmalloc_dir)/src/memory_region_map.h',
-            '<(tcmalloc_dir)/src/packed-cache-inl.h',
-            '<(tcmalloc_dir)/src/page_heap.cc',
-            '<(tcmalloc_dir)/src/page_heap.h',
-            '<(tcmalloc_dir)/src/page_heap_allocator.h',
-            '<(tcmalloc_dir)/src/pagemap.h',
-            '<(tcmalloc_dir)/src/profile-handler.cc',
-            '<(tcmalloc_dir)/src/profile-handler.h',
-            '<(tcmalloc_dir)/src/profiledata.cc',
-            '<(tcmalloc_dir)/src/profiledata.h',
-            '<(tcmalloc_dir)/src/profiler.cc',
-            '<(tcmalloc_dir)/src/raw_printer.cc',
-            '<(tcmalloc_dir)/src/raw_printer.h',
-            '<(tcmalloc_dir)/src/sampler.cc',
-            '<(tcmalloc_dir)/src/sampler.h',
-            '<(tcmalloc_dir)/src/span.cc',
-            '<(tcmalloc_dir)/src/span.h',
-            '<(tcmalloc_dir)/src/stack_trace_table.cc',
-            '<(tcmalloc_dir)/src/stack_trace_table.h',
-            '<(tcmalloc_dir)/src/stacktrace.cc',
-            '<(tcmalloc_dir)/src/stacktrace_arm-inl.h',
-            '<(tcmalloc_dir)/src/stacktrace_config.h',
-            '<(tcmalloc_dir)/src/stacktrace_generic-inl.h',
-            '<(tcmalloc_dir)/src/stacktrace_libunwind-inl.h',
-            '<(tcmalloc_dir)/src/stacktrace_powerpc-inl.h',
-            '<(tcmalloc_dir)/src/stacktrace_win32-inl.h',
-            '<(tcmalloc_dir)/src/stacktrace_with_context.cc',
-            '<(tcmalloc_dir)/src/stacktrace_x86-inl.h',
-            '<(tcmalloc_dir)/src/static_vars.cc',
-            '<(tcmalloc_dir)/src/static_vars.h',
-            '<(tcmalloc_dir)/src/symbolize.cc',
-            '<(tcmalloc_dir)/src/symbolize.h',
-            '<(tcmalloc_dir)/src/system-alloc.cc',
-            '<(tcmalloc_dir)/src/system-alloc.h',
-            '<(tcmalloc_dir)/src/tcmalloc.cc',
-            '<(tcmalloc_dir)/src/tcmalloc_guard.h',
-            '<(tcmalloc_dir)/src/thread_cache.cc',
-            '<(tcmalloc_dir)/src/thread_cache.h',
-
-            'debugallocation_shim.cc',
-          ],
-          # sources! means that these are not compiled directly.
-          'sources!': [
-            # We simply don't use these, but list them above so that IDE
-            # users can view the full available source for reference, etc.
-            '<(tcmalloc_dir)/src/addressmap-inl.h',
-            '<(tcmalloc_dir)/src/base/atomicops-internals-linuxppc.h',
-            '<(tcmalloc_dir)/src/base/atomicops-internals-macosx.h',
-            '<(tcmalloc_dir)/src/base/atomicops-internals-x86-msvc.h',
-            '<(tcmalloc_dir)/src/base/atomicops-internals-x86.h',
-            '<(tcmalloc_dir)/src/base/atomicops.h',
-            '<(tcmalloc_dir)/src/base/basictypes.h',
-            '<(tcmalloc_dir)/src/base/commandlineflags.h',
-            '<(tcmalloc_dir)/src/base/cycleclock.h',
-            '<(tcmalloc_dir)/src/base/elf_mem_image.h',
-            '<(tcmalloc_dir)/src/base/elfcore.h',
-            '<(tcmalloc_dir)/src/base/googleinit.h',
-            '<(tcmalloc_dir)/src/base/linux_syscall_support.h',
-            '<(tcmalloc_dir)/src/base/simple_mutex.h',
-            '<(tcmalloc_dir)/src/base/spinlock_linux-inl.h',
-            '<(tcmalloc_dir)/src/base/spinlock_posix-inl.h',
-            '<(tcmalloc_dir)/src/base/spinlock_win32-inl.h',
-            '<(tcmalloc_dir)/src/base/stl_allocator.h',
-            '<(tcmalloc_dir)/src/base/thread_annotations.h',
-            '<(tcmalloc_dir)/src/getpc.h',
-            '<(tcmalloc_dir)/src/gperftools/heap-checker.h',
-            '<(tcmalloc_dir)/src/gperftools/heap-profiler.h',
-            '<(tcmalloc_dir)/src/gperftools/malloc_extension.h',
-            '<(tcmalloc_dir)/src/gperftools/malloc_extension_c.h',
-            '<(tcmalloc_dir)/src/gperftools/malloc_hook.h',
-            '<(tcmalloc_dir)/src/gperftools/malloc_hook_c.h',
-            '<(tcmalloc_dir)/src/gperftools/profiler.h',
-            '<(tcmalloc_dir)/src/gperftools/stacktrace.h',
-            '<(tcmalloc_dir)/src/gperftools/tcmalloc.h',
-            '<(tcmalloc_dir)/src/heap-checker-bcad.cc',
-            '<(tcmalloc_dir)/src/heap-checker.cc',
-            '<(tcmalloc_dir)/src/libc_override.h',
-            '<(tcmalloc_dir)/src/libc_override_gcc_and_weak.h',
-            '<(tcmalloc_dir)/src/libc_override_glibc.h',
-            '<(tcmalloc_dir)/src/libc_override_osx.h',
-            '<(tcmalloc_dir)/src/libc_override_redefine.h',
-            '<(tcmalloc_dir)/src/malloc_hook_mmap_freebsd.h',
-            '<(tcmalloc_dir)/src/malloc_hook_mmap_linux.h',
-            '<(tcmalloc_dir)/src/memfs_malloc.cc',
-            '<(tcmalloc_dir)/src/packed-cache-inl.h',
-            '<(tcmalloc_dir)/src/page_heap_allocator.h',
-            '<(tcmalloc_dir)/src/pagemap.h',
-            '<(tcmalloc_dir)/src/stacktrace_arm-inl.h',
-            '<(tcmalloc_dir)/src/stacktrace_config.h',
-            '<(tcmalloc_dir)/src/stacktrace_generic-inl.h',
-            '<(tcmalloc_dir)/src/stacktrace_libunwind-inl.h',
-            '<(tcmalloc_dir)/src/stacktrace_powerpc-inl.h',
-            '<(tcmalloc_dir)/src/stacktrace_win32-inl.h',
-            '<(tcmalloc_dir)/src/stacktrace_with_context.cc',
-            '<(tcmalloc_dir)/src/stacktrace_x86-inl.h',
-            '<(tcmalloc_dir)/src/tcmalloc_guard.h',
-
-            # Included by debugallocation_shim.cc.
-            '<(tcmalloc_dir)/src/debugallocation.cc',
-            '<(tcmalloc_dir)/src/tcmalloc.cc',
-          ]
-        },{
-          'include_dirs': [
-            '.',
-            '../..',
-          ],
-        }],
-        ['OS=="linux" and clang_type_profiler==1', {
-          'dependencies': [
-            'type_profiler_tcmalloc',
-          ],
-          # It is undoing dependencies and cflags_cc for type_profiler which
-          # build/common.gypi injects into all targets.
-          'dependencies!': [
-            'type_profiler',
-          ],
-          'cflags_cc!': [
-            '-fintercept-allocation-functions',
-          ],
-        }],
-        ['OS=="win"', {
-          'dependencies': [
-            'libcmt',
-          ],
-          'sources': [
-            'allocator_shim_win.cc',
-          ],
-        }],
-        ['profiling!=1', {
-          'sources!': [
-            # cpuprofiler
-            '<(tcmalloc_dir)/src/base/thread_lister.c',
-            '<(tcmalloc_dir)/src/base/thread_lister.h',
-            '<(tcmalloc_dir)/src/profile-handler.cc',
-            '<(tcmalloc_dir)/src/profile-handler.h',
-            '<(tcmalloc_dir)/src/profiledata.cc',
-            '<(tcmalloc_dir)/src/profiledata.h',
-            '<(tcmalloc_dir)/src/profiler.cc',
-          ],
-        }],
-        ['OS=="linux" or OS=="freebsd" or OS=="solaris" or OS=="android"', {
-          'sources!': [
-            '<(tcmalloc_dir)/src/system-alloc.h',
-          ],
-          # We enable all warnings by default, but upstream disables a few.
-          # Keep "-Wno-*" flags in sync with upstream by comparing against:
-          # http://code.google.com/p/google-perftools/source/browse/trunk/Makefile.am
-          'cflags': [
-            '-Wno-sign-compare',
-            '-Wno-unused-result',
-          ],
-          'cflags!': [
-            '-fvisibility=hidden',
-          ],
-          'link_settings': {
-            'ldflags': [
-              # Don't let linker rip this symbol out, otherwise the heap&cpu
-              # profilers will not initialize properly on startup.
-              '-Wl,-uIsHeapProfilerRunning,-uProfilerStart',
-              # Do the same for heap leak checker.
-              '-Wl,-u_Z21InitialMallocHook_NewPKvj,-u_Z22InitialMallocHook_MMapPKvS0_jiiix,-u_Z22InitialMallocHook_SbrkPKvi',
-              '-Wl,-u_Z21InitialMallocHook_NewPKvm,-u_Z22InitialMallocHook_MMapPKvS0_miiil,-u_Z22InitialMallocHook_SbrkPKvl',
-              '-Wl,-u_ZN15HeapLeakChecker12IgnoreObjectEPKv,-u_ZN15HeapLeakChecker14UnIgnoreObjectEPKv',
-          ]},
-        }],
-        [ 'use_vtable_verify==1', {
-          'cflags': [
-            '-fvtable-verify=preinit',
-          ],
-        }],
-        ['order_profiling != 0', {
-          'target_conditions' : [
-            ['_toolset=="target"', {
-              'cflags!': [ '-finstrument-functions' ],
-            }],
-          ],
-        }],
-      ],
-    },
-    {
-      # This library is linked in to src/base.gypi:base and allocator_unittests
-      # It can't depend on either and nothing else should depend on it - all
-      # other code should use the interfaced provided by base.
-      'target_name': 'allocator_extension_thunks',
-      'type': 'static_library',
-      'sources': [
-        'allocator_extension_thunks.cc',
-        'allocator_extension_thunks.h',
-      ],
-      'toolsets': ['host', 'target'],
-      'include_dirs': [
-        '../../'
-      ],
-      'conditions': [
-        ['OS=="linux" and clang_type_profiler==1', {
-          # It is undoing dependencies and cflags_cc for type_profiler which
-          # build/common.gypi injects into all targets.
-          'dependencies!': [
-            'type_profiler',
-          ],
-          'cflags_cc!': [
-            '-fintercept-allocation-functions',
-          ],
-        }],
-      ],
-    },
-   ],
-  'conditions': [
-    ['OS=="win"', {
-      'targets': [
-        {
-          'target_name': 'libcmt',
-          'type': 'none',
-          'actions': [
-            {
-              'action_name': 'libcmt',
-              'inputs': [
-                'prep_libc.py',
-              ],
-              'outputs': [
-                '<(SHARED_INTERMEDIATE_DIR)/allocator/libcmt.lib',
-              ],
-              'action': [
-                'python',
-                'prep_libc.py',
-                '$(VCInstallDir)lib',
-                '<(SHARED_INTERMEDIATE_DIR)/allocator',
-                '<(target_arch)',
-              ],
-            },
-          ],
-        },
-        {
-          'target_name': 'allocator_unittests',
-          'type': 'executable',
-          'dependencies': [
-            'allocator',
-            'allocator_extension_thunks',
-            '../../testing/gtest.gyp:gtest',
-          ],
-          'include_dirs': [
-            '.',
-            '../..',
-          ],
-          'sources': [
-            '../profiler/alternate_timer.cc',
-            '../profiler/alternate_timer.h',
-            'allocator_unittest.cc',
-          ],
-        },
-      ],
-    }],
-    ['OS=="win" and target_arch=="ia32"', {
-      'targets': [
-        {
-          'target_name': 'allocator_extension_thunks_win64',
-          'type': 'static_library',
-          'sources': [
-            'allocator_extension_thunks.cc',
-            'allocator_extension_thunks.h',
-          ],
-          'toolsets': ['host', 'target'],
-          'include_dirs': [
-            '../../'
-          ],
-          'configurations': {
-            'Common_Base': {
-              'msvs_target_platform': 'x64',
-            },
-          },
-        },
-      ],
-    }],
-    ['OS=="linux" and clang_type_profiler==1', {
-      # Some targets in this section undo dependencies and cflags_cc for
-      # type_profiler which build/common.gypi injects into all targets.
-      'targets': [
-        {
-          'target_name': 'type_profiler',
-          'type': 'static_library',
-          'dependencies!': [
-            'type_profiler',
-          ],
-          'cflags_cc!': [
-            '-fintercept-allocation-functions',
-          ],
-          'include_dirs': [
-            '../..',
-          ],
-          'sources': [
-            'type_profiler.cc',
-            'type_profiler.h',
-            'type_profiler_control.h',
-          ],
-          'toolsets': ['host', 'target'],
-        },
-        {
-          'target_name': 'type_profiler_tcmalloc',
-          'type': 'static_library',
-          'dependencies!': [
-            'type_profiler',
-          ],
-          'cflags_cc!': [
-            '-fintercept-allocation-functions',
-          ],
-          'include_dirs': [
-            '<(tcmalloc_dir)/src',
-            '../..',
-          ],
-          'sources': [
-            '<(tcmalloc_dir)/src/gperftools/type_profiler_map.h',
-            '<(tcmalloc_dir)/src/type_profiler_map.cc',
-            'type_profiler_tcmalloc.cc',
-            'type_profiler_tcmalloc.h',
-          ],
-        },
-        {
-          'target_name': 'type_profiler_unittests',
-          'type': 'executable',
-          'dependencies': [
-            '../../testing/gtest.gyp:gtest',
-            '../base.gyp:base',
-            'allocator',
-            'type_profiler_tcmalloc',
-          ],
-          'include_dirs': [
-            '../..',
-          ],
-          'sources': [
-            'type_profiler_control.cc',
-            'type_profiler_control.h',
-            'type_profiler_unittest.cc',
-          ],
-        },
-        {
-          'target_name': 'type_profiler_map_unittests',
-          'type': 'executable',
-          'dependencies': [
-            '../../testing/gtest.gyp:gtest',
-            '../base.gyp:base',
-            'allocator',
-          ],
-          'dependencies!': [
-            'type_profiler',
-          ],
-          'cflags_cc!': [
-            '-fintercept-allocation-functions',
-          ],
-          'include_dirs': [
-            '<(tcmalloc_dir)/src',
-            '../..',
-          ],
-          'sources': [
-            '<(tcmalloc_dir)/src/gperftools/type_profiler_map.h',
-            '<(tcmalloc_dir)/src/type_profiler_map.cc',
-            'type_profiler_map_unittest.cc',
-          ],
-        },
-      ],
-    }],
-    ['use_allocator=="tcmalloc"', {
-      'targets': [
-         {
-           'target_name': 'tcmalloc_unittest',
-           'type': 'executable',
-           'sources': [
-             'tcmalloc_unittest.cc',
-           ],
-           'include_dirs': [
-             '<(tcmalloc_dir)/src',
-             '../..',
-           ],
-           'dependencies': [
-             '../../testing/gtest.gyp:gtest',
-             'allocator',
-          ],
-        },
-      ],
-    }],
-  ],
-}
diff --git a/base/android/jni_generator/jni_generator.gyp b/base/android/jni_generator/jni_generator.gyp
deleted file mode 100644
index 4a17f3e..0000000
--- a/base/android/jni_generator/jni_generator.gyp
+++ /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.
-
-{
-  'targets': [
-    {
-      'target_name': 'jni_generator_py_tests',
-      'type': 'none',
-      'variables': {
-        'stamp': '<(INTERMEDIATE_DIR)/jni_generator_py_tests.stamp',
-      },
-      'actions': [
-        {
-          'action_name': 'run_jni_generator_py_tests',
-          'inputs': [
-            'jni_generator.py',
-            'jni_generator_tests.py',
-            'java/src/org/chromium/example/jni_generator/SampleForTests.java',
-            'golden_sample_for_tests_jni.h',
-          ],
-          'outputs': [
-            '<(stamp)',
-          ],
-          'action': [
-            'python', 'jni_generator_tests.py',
-            '--stamp=<(stamp)',
-          ],
-        },
-      ],
-    },
-    {
-      'target_name': 'jni_sample_header',
-      'type': 'none',
-      'sources': [
-        'java/src/org/chromium/example/jni_generator/SampleForTests.java',
-      ],
-      'variables': {
-        'jni_gen_package': 'example',
-      },
-      'includes': [ '../../../build/jni_generator.gypi' ],
-    },
-    {
-      'target_name': 'jni_sample_java',
-      'type': 'none',
-      'variables': {
-        'java_in_dir': '../../../base/android/jni_generator/java',
-      },
-      'dependencies': [
-        '<(DEPTH)/base/base.gyp:base_java',
-      ],
-      'includes': [ '../../../build/java.gypi' ],
-    },
-    {
-      'target_name': 'jni_generator_tests',
-      'type': 'executable',
-      'dependencies': [
-        '../../base.gyp:test_support_base',
-        'jni_generator_py_tests',
-        'jni_sample_header',
-        'jni_sample_java',
-      ],
-      'sources': [
-        'sample_for_tests.cc',
-      ],
-    },
-  ],
-}
diff --git a/base/base.gyp b/base/base.gyp
deleted file mode 100644
index 4d1b892..0000000
--- a/base/base.gyp
+++ /dev/null
@@ -1,1645 +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.
-
-{
-  'variables': {
-    'chromium_code': 1,
-  },
-  'includes': [
-    '../build/win_precompile.gypi',
-    'base.gypi',
-  ],
-  'targets': [
-    {
-      'target_name': 'base',
-      'type': '<(component)',
-      'toolsets': ['host', 'target'],
-      'variables': {
-        'base_target': 1,
-        'enable_wexit_time_destructors': 1,
-        'optimize': 'max',
-      },
-      'dependencies': [
-        'base_static',
-        'allocator/allocator.gyp:allocator_extension_thunks',
-        '../testing/gtest.gyp:gtest_prod',
-        '../third_party/modp_b64/modp_b64.gyp:modp_b64',
-        'third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
-      ],
-      # TODO(gregoryd): direct_dependent_settings should be shared with the
-      #  64-bit target, but it doesn't work due to a bug in gyp
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '..',
-        ],
-      },
-      'conditions': [
-        ['desktop_linux == 1 or chromeos == 1', {
-          'conditions': [
-            ['chromeos==1', {
-              'sources/': [ ['include', '_chromeos\\.cc$'] ]
-            }],
-          ],
-          'dependencies': [
-            'symbolize',
-            'xdg_mime',
-          ],
-          'defines': [
-            'USE_SYMBOLIZE',
-          ],
-        }, {  # desktop_linux == 0 and chromeos == 0
-            'sources/': [
-              ['exclude', '/xdg_user_dirs/'],
-              ['exclude', '_nss\\.cc$'],
-            ],
-        }],
-        ['use_glib==1', {
-          'dependencies': [
-            '../build/linux/system.gyp:glib',
-          ],
-          'export_dependent_settings': [
-            '../build/linux/system.gyp:glib',
-          ],
-        }],
-        ['OS == "android" and _toolset == "host"', {
-          # Always build base as a static_library for host toolset, even if
-          # we're doing a component build. Specifically, we only care about the
-          # target toolset using components since that's what developers are
-          # focusing on. In theory we should do this more generally for all
-          # targets when building for host, but getting the gyp magic
-          # per-toolset for the "component" variable is hard, and we really only
-          # need base on host.
-          'type': 'static_library',
-          # Base for host support is the minimum required to run the
-          # ssl false start blacklist tool. It requires further changes
-          # to generically support host builds (and tests).
-          # Note: when building for host, gyp has OS == "android",
-          # hence the *_android.cc files are included but the actual code
-          # doesn't have OS_ANDROID / ANDROID defined.
-          'conditions': [
-            ['host_os == "mac"', {
-              'sources/': [
-                ['exclude', '^native_library_linux\\.cc$'],
-                ['exclude', '^process_util_linux\\.cc$'],
-                ['exclude', '^sys_info_linux\\.cc$'],
-                ['exclude', '^sys_string_conversions_linux\\.cc$'],
-                ['exclude', '^worker_pool_linux\\.cc$'],
-              ],
-            }],
-          ],
-        }],
-        ['OS == "android" and _toolset == "target"', {
-          'conditions': [
-            ['target_arch == "ia32" or target_arch == "x64"', {
-              'sources/': [
-                ['include', '^atomicops_internals_x86_gcc\\.cc$'],
-              ],
-            }],
-            ['target_arch == "mipsel"', {
-              'sources/': [
-                ['include', '^atomicops_internals_mips_gcc\\.cc$'],
-              ],
-            }],
-          ],
-          'dependencies': [
-            'base_java',
-            'base_jni_headers',
-            '../build/android/ndk.gyp:cpu_features',
-            '../third_party/ashmem/ashmem.gyp:ashmem',
-          ],
-          'link_settings': {
-            'libraries': [
-              '-llog',
-            ],
-          },
-          'sources!': [
-            'debug/stack_trace_posix.cc',
-          ],
-        }],
-        ['os_bsd==1', {
-          'include_dirs': [
-            '/usr/local/include',
-          ],
-          'link_settings': {
-            'libraries': [
-              '-L/usr/local/lib -lexecinfo',
-            ],
-          },
-        }],
-        ['OS == "linux"', {
-          'link_settings': {
-            'libraries': [
-              # We need rt for clock_gettime().
-              '-lrt',
-              # For 'native_library_linux.cc'
-              '-ldl',
-            ],
-          },
-          'conditions': [
-            ['use_allocator!="tcmalloc"', {
-              'defines': [
-                'NO_TCMALLOC',
-              ],
-              'direct_dependent_settings': {
-                'defines': [
-                  'NO_TCMALLOC',
-                ],
-              },
-            }],
-          ],
-        }],
-        ['OS == "win"', {
-          # Specify delayload for base.dll.
-          'msvs_settings': {
-            'VCLinkerTool': {
-              'DelayLoadDLLs': [
-                'cfgmgr32.dll',
-                'powrprof.dll',
-                'setupapi.dll',
-              ],
-              'AdditionalDependencies': [
-                'cfgmgr32.lib',
-                'powrprof.lib',
-                'setupapi.lib',
-              ],
-            },
-          },
-          # Specify delayload for components that link with base.lib.
-          'all_dependent_settings': {
-            'msvs_settings': {
-              'VCLinkerTool': {
-                'DelayLoadDLLs': [
-                  'cfgmgr32.dll',
-                  'powrprof.dll',
-                  'setupapi.dll',
-                ],
-                'AdditionalDependencies': [
-                  'cfgmgr32.lib',
-                  'powrprof.lib',
-                  'setupapi.lib',
-                ],
-              },
-            },
-          },
-          'copies': [
-            {
-              'destination': '<(PRODUCT_DIR)/',
-              'files': [
-                '../build/win/dbghelp_xp/dbghelp.dll',
-              ],
-            },
-          ],
-          'dependencies': [
-           'trace_event/etw_manifest/etw_manifest.gyp:etw_manifest',
-          ],
-        }],
-        ['OS == "mac" or (OS == "ios" and _toolset == "host")', {
-          'link_settings': {
-            'libraries': [
-              '$(SDKROOT)/System/Library/Frameworks/AppKit.framework',
-              '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework',
-              '$(SDKROOT)/System/Library/Frameworks/Carbon.framework',
-              '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
-              '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
-              '$(SDKROOT)/System/Library/Frameworks/IOKit.framework',
-              '$(SDKROOT)/System/Library/Frameworks/Security.framework',
-            ],
-          },
-        }],
-        ['OS == "ios" and _toolset != "host"', {
-          'link_settings': {
-            'libraries': [
-              '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework',
-              '$(SDKROOT)/System/Library/Frameworks/CoreGraphics.framework',
-              '$(SDKROOT)/System/Library/Frameworks/CoreText.framework',
-              '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
-              '$(SDKROOT)/System/Library/Frameworks/UIKit.framework',
-            ],
-          },
-        }],
-        ['OS != "win" and (OS != "ios" or _toolset == "host")', {
-            'dependencies': ['../third_party/libevent/libevent.gyp:libevent'],
-        },],
-        ['component=="shared_library"', {
-          'conditions': [
-            ['OS=="win"', {
-              'sources!': [
-                'debug/debug_on_start_win.cc',
-              ],
-            }],
-          ],
-        }],
-      ],
-      'sources': [
-        'async_socket_io_handler.h',
-        'async_socket_io_handler_posix.cc',
-        'async_socket_io_handler_win.cc',
-        'auto_reset.h',
-        'linux_util.cc',
-        'linux_util.h',
-        'message_loop/message_pump_android.cc',
-        'message_loop/message_pump_android.h',
-        'message_loop/message_pump_glib.cc',
-        'message_loop/message_pump_glib.h',
-        'message_loop/message_pump_io_ios.cc',
-        'message_loop/message_pump_io_ios.h',
-        'message_loop/message_pump_libevent.cc',
-        'message_loop/message_pump_libevent.h',
-        'message_loop/message_pump_mac.h',
-        'message_loop/message_pump_mac.mm',
-        'metrics/field_trial.cc',
-        'metrics/field_trial.h',
-        'posix/file_descriptor_shuffle.cc',
-        'posix/file_descriptor_shuffle.h',
-        'sync_socket.h',
-        'sync_socket_posix.cc',
-        'sync_socket_win.cc',
-        'third_party/xdg_user_dirs/xdg_user_dir_lookup.cc',
-        'third_party/xdg_user_dirs/xdg_user_dir_lookup.h',
-      ],
-      'includes': [
-        '../build/android/increase_size_for_speed.gypi',
-      ],
-    },
-    {
-      'target_name': 'base_i18n',
-      'type': '<(component)',
-      'variables': {
-        'enable_wexit_time_destructors': 1,
-        'optimize': 'max',
-        'base_i18n_target': 1,
-      },
-      'dependencies': [
-        'base',
-        'third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
-        '../third_party/icu/icu.gyp:icui18n',
-        '../third_party/icu/icu.gyp:icuuc',
-      ],
-      'conditions': [
-        ['OS == "win"', {
-          # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
-          'msvs_disabled_warnings': [
-            4267,
-          ],
-        }],
-        ['icu_use_data_file_flag==1', {
-          'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE'],
-        }, { # else icu_use_data_file_flag !=1
-          'conditions': [
-            ['OS=="win"', {
-              'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_SHARED'],
-            }, {
-              'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC'],
-            }],
-          ],
-        }],
-        ['OS == "ios"', {
-          'toolsets': ['host', 'target'],
-        }],
-      ],
-      'export_dependent_settings': [
-        'base',
-      ],
-      'includes': [
-        '../build/android/increase_size_for_speed.gypi',
-      ],
-    },
-    {
-      'target_name': 'base_message_loop_tests',
-      'type': 'static_library',
-      'dependencies': [
-        'base',
-        '../testing/gtest.gyp:gtest',
-      ],
-      'sources': [
-        'message_loop/message_loop_test.cc',
-        'message_loop/message_loop_test.h',
-      ],
-    },
-    {
-      'target_name': 'base_prefs',
-      'type': '<(component)',
-      'variables': {
-        'enable_wexit_time_destructors': 1,
-        'optimize': 'max',
-      },
-      'dependencies': [
-        'base',
-      ],
-      'export_dependent_settings': [
-        'base',
-      ],
-      'defines': [
-        'BASE_PREFS_IMPLEMENTATION',
-      ],
-      'sources': [
-        'prefs/base_prefs_export.h',
-        'prefs/default_pref_store.cc',
-        'prefs/default_pref_store.h',
-        'prefs/json_pref_store.cc',
-        'prefs/json_pref_store.h',
-        'prefs/overlay_user_pref_store.cc',
-        'prefs/overlay_user_pref_store.h',
-        'prefs/persistent_pref_store.h',
-        'prefs/pref_change_registrar.cc',
-        'prefs/pref_change_registrar.h',
-        'prefs/pref_filter.h',
-        'prefs/pref_member.cc',
-        'prefs/pref_member.h',
-        'prefs/pref_notifier.h',
-        'prefs/pref_notifier_impl.cc',
-        'prefs/pref_notifier_impl.h',
-        'prefs/pref_observer.h',
-        'prefs/pref_registry.cc',
-        'prefs/pref_registry.h',
-        'prefs/pref_registry_simple.cc',
-        'prefs/pref_registry_simple.h',
-        'prefs/pref_service.cc',
-        'prefs/pref_service.h',
-        'prefs/pref_service_factory.cc',
-        'prefs/pref_service_factory.h',
-        'prefs/pref_store.cc',
-        'prefs/pref_store.h',
-        'prefs/pref_value_map.cc',
-        'prefs/pref_value_map.h',
-        'prefs/pref_value_store.cc',
-        'prefs/pref_value_store.h',
-        'prefs/scoped_user_pref_update.cc',
-        'prefs/scoped_user_pref_update.h',
-        'prefs/value_map_pref_store.cc',
-        'prefs/value_map_pref_store.h',
-        'prefs/writeable_pref_store.h',
-      ],
-      'includes': [
-        '../build/android/increase_size_for_speed.gypi',
-      ],
-    },
-    {
-      'target_name': 'base_prefs_test_support',
-      'type': 'static_library',
-      'dependencies': [
-        'base',
-        'base_prefs',
-        '../testing/gmock.gyp:gmock',
-      ],
-      'sources': [
-        'prefs/mock_pref_change_callback.cc',
-        'prefs/pref_store_observer_mock.cc',
-        'prefs/pref_store_observer_mock.h',
-        'prefs/testing_pref_service.cc',
-        'prefs/testing_pref_service.h',
-        'prefs/testing_pref_store.cc',
-        'prefs/testing_pref_store.h',
-      ],
-    },
-    {
-      # This is the subset of files from base that should not be used with a
-      # dynamic library. Note that this library cannot depend on base because
-      # base depends on base_static.
-      'target_name': 'base_static',
-      'type': 'static_library',
-      'variables': {
-        'enable_wexit_time_destructors': 1,
-        'optimize': 'max',
-      },
-      'toolsets': ['host', 'target'],
-      'sources': [
-        'base_switches.cc',
-        'base_switches.h',
-        'win/pe_image.cc',
-        'win/pe_image.h',
-      ],
-      'include_dirs': [
-        '..',
-      ],
-      'includes': [
-        '../build/android/increase_size_for_speed.gypi',
-      ],
-    },
-    # Include this target for a main() function that simply instantiates
-    # and runs a base::TestSuite.
-    {
-      'target_name': 'run_all_unittests',
-      'type': 'static_library',
-      'dependencies': [
-        'test_support_base',
-      ],
-      'sources': [
-        'test/run_all_unittests.cc',
-      ],
-    },
-    {
-      'target_name': 'base_unittests',
-      'type': '<(gtest_target_type)',
-      'sources': [
-        'android/application_status_listener_unittest.cc',
-        'android/content_uri_utils_unittest.cc',
-        'android/jni_android_unittest.cc',
-        'android/jni_array_unittest.cc',
-        'android/jni_string_unittest.cc',
-        'android/library_loader/library_prefetcher_unittest.cc',
-        'android/path_utils_unittest.cc',
-        'android/scoped_java_ref_unittest.cc',
-        'android/sys_utils_unittest.cc',
-        'async_socket_io_handler_unittest.cc',
-        'at_exit_unittest.cc',
-        'atomicops_unittest.cc',
-        'barrier_closure_unittest.cc',
-        'base64_unittest.cc',
-        'big_endian_unittest.cc',
-        'bind_unittest.cc',
-        'bind_unittest.nc',
-        'bits_unittest.cc',
-        'build_time_unittest.cc',
-        'callback_helpers_unittest.cc',
-        'callback_list_unittest.cc',
-        'callback_list_unittest.nc',
-        'callback_unittest.cc',
-        'callback_unittest.nc',
-        'cancelable_callback_unittest.cc',
-        'command_line_unittest.cc',
-        'containers/adapters_unittest.cc',
-        'containers/hash_tables_unittest.cc',
-        'containers/linked_list_unittest.cc',
-        'containers/mru_cache_unittest.cc',
-        'containers/scoped_ptr_hash_map_unittest.cc',
-        'containers/small_map_unittest.cc',
-        'containers/stack_container_unittest.cc',
-        'cpu_unittest.cc',
-        'debug/crash_logging_unittest.cc',
-        'debug/debugger_unittest.cc',
-        'debug/leak_tracker_unittest.cc',
-        'debug/proc_maps_linux_unittest.cc',
-        'debug/stack_trace_unittest.cc',
-        'debug/task_annotator_unittest.cc',
-        'deferred_sequenced_task_runner_unittest.cc',
-        'environment_unittest.cc',
-        'file_version_info_unittest.cc',
-        'files/dir_reader_posix_unittest.cc',
-        'files/file_path_unittest.cc',
-        'files/file_path_watcher_unittest.cc',
-        'files/file_proxy_unittest.cc',
-        'files/file_unittest.cc',
-        'files/file_util_proxy_unittest.cc',
-        'files/file_util_unittest.cc',
-        'files/important_file_writer_unittest.cc',
-        'files/memory_mapped_file_unittest.cc',
-        'files/scoped_temp_dir_unittest.cc',
-        'gmock_unittest.cc',
-        'guid_unittest.cc',
-        'hash_unittest.cc',
-        'i18n/break_iterator_unittest.cc',
-        'i18n/case_conversion_unittest.cc',
-        'i18n/char_iterator_unittest.cc',
-        'i18n/file_util_icu_unittest.cc',
-        'i18n/icu_string_conversions_unittest.cc',
-        'i18n/number_formatting_unittest.cc',
-        'i18n/rtl_unittest.cc',
-        'i18n/streaming_utf8_validator_unittest.cc',
-        'i18n/string_search_unittest.cc',
-        'i18n/time_formatting_unittest.cc',
-        'i18n/timezone_unittest.cc',
-        'id_map_unittest.cc',
-        'ios/crb_protocol_observers_unittest.mm',
-        'ios/device_util_unittest.mm',
-        'ios/weak_nsobject_unittest.mm',
-        'json/json_parser_unittest.cc',
-        'json/json_reader_unittest.cc',
-        'json/json_value_converter_unittest.cc',
-        'json/json_value_serializer_unittest.cc',
-        'json/json_writer_unittest.cc',
-        'json/string_escape_unittest.cc',
-        'lazy_instance_unittest.cc',
-        'logging_unittest.cc',
-        'mac/bind_objc_block_unittest.mm',
-        'mac/dispatch_source_mach_unittest.cc',
-        'mac/foundation_util_unittest.mm',
-        'mac/libdispatch_task_runner_unittest.cc',
-        'mac/mac_util_unittest.mm',
-        'mac/objc_property_releaser_unittest.mm',
-        'mac/scoped_nsobject_unittest.mm',
-        'mac/scoped_objc_class_swizzler_unittest.mm',
-        'mac/scoped_sending_event_unittest.mm',
-        'md5_unittest.cc',
-        'memory/aligned_memory_unittest.cc',
-        'memory/discardable_shared_memory_unittest.cc',
-        'memory/linked_ptr_unittest.cc',
-        'memory/memory_pressure_monitor_chromeos_unittest.cc',
-        'memory/memory_pressure_monitor_mac_unittest.cc',
-        'memory/memory_pressure_monitor_win_unittest.cc',
-        'memory/ref_counted_memory_unittest.cc',
-        'memory/ref_counted_unittest.cc',
-        'memory/scoped_ptr_unittest.cc',
-        'memory/scoped_ptr_unittest.nc',
-        'memory/scoped_vector_unittest.cc',
-        'memory/shared_memory_unittest.cc',
-        'memory/singleton_unittest.cc',
-        'memory/weak_ptr_unittest.cc',
-        'memory/weak_ptr_unittest.nc',
-        'message_loop/message_loop_proxy_impl_unittest.cc',
-        'message_loop/message_loop_proxy_unittest.cc',
-        'message_loop/message_loop_unittest.cc',
-        'message_loop/message_pump_glib_unittest.cc',
-        'message_loop/message_pump_io_ios_unittest.cc',
-        'message_loop/message_pump_libevent_unittest.cc',
-        'metrics/bucket_ranges_unittest.cc',
-        'metrics/field_trial_unittest.cc',
-        'metrics/histogram_base_unittest.cc',
-        'metrics/histogram_delta_serialization_unittest.cc',
-        'metrics/histogram_macros_unittest.cc',
-        'metrics/histogram_snapshot_manager_unittest.cc',
-        'metrics/histogram_unittest.cc',
-        'metrics/sample_map_unittest.cc',
-        'metrics/sample_vector_unittest.cc',
-        'metrics/sparse_histogram_unittest.cc',
-        'metrics/statistics_recorder_unittest.cc',
-        'move_unittest.cc',
-        'numerics/safe_numerics_unittest.cc',
-        'observer_list_unittest.cc',
-        'os_compat_android_unittest.cc',
-        'path_service_unittest.cc',
-        'pickle_unittest.cc',
-        'posix/file_descriptor_shuffle_unittest.cc',
-        'posix/unix_domain_socket_linux_unittest.cc',
-        'power_monitor/power_monitor_unittest.cc',
-        'prefs/default_pref_store_unittest.cc',
-        'prefs/json_pref_store_unittest.cc',
-        'prefs/mock_pref_change_callback.h',
-        'prefs/overlay_user_pref_store_unittest.cc',
-        'prefs/pref_change_registrar_unittest.cc',
-        'prefs/pref_member_unittest.cc',
-        'prefs/pref_notifier_impl_unittest.cc',
-        'prefs/pref_service_unittest.cc',
-        'prefs/pref_value_map_unittest.cc',
-        'prefs/pref_value_store_unittest.cc',
-        'prefs/scoped_user_pref_update_unittest.cc',
-        'process/memory_unittest.cc',
-        'process/memory_unittest_mac.h',
-        'process/memory_unittest_mac.mm',
-        'process/process_metrics_unittest.cc',
-        'process/process_metrics_unittest_ios.cc',
-        'process/process_unittest.cc',
-        'process/process_util_unittest.cc',
-        'profiler/stack_sampling_profiler_unittest.cc',
-        'profiler/tracked_time_unittest.cc',
-        'rand_util_unittest.cc',
-        'scoped_clear_errno_unittest.cc',
-        'scoped_generic_unittest.cc',
-        'scoped_native_library_unittest.cc',
-        'security_unittest.cc',
-        'sequence_checker_unittest.cc',
-        'sha1_unittest.cc',
-        'stl_util_unittest.cc',
-        'strings/nullable_string16_unittest.cc',
-        'strings/safe_sprintf_unittest.cc',
-        'strings/string16_unittest.cc',
-        'strings/string_number_conversions_unittest.cc',
-        'strings/string_piece_unittest.cc',
-        'strings/string_split_unittest.cc',
-        'strings/string_tokenizer_unittest.cc',
-        'strings/string_util_unittest.cc',
-        'strings/stringize_macros_unittest.cc',
-        'strings/stringprintf_unittest.cc',
-        'strings/sys_string_conversions_mac_unittest.mm',
-        'strings/sys_string_conversions_unittest.cc',
-        'strings/utf_offset_string_conversions_unittest.cc',
-        'strings/utf_string_conversions_unittest.cc',
-        'supports_user_data_unittest.cc',
-        'sync_socket_unittest.cc',
-        'synchronization/cancellation_flag_unittest.cc',
-        'synchronization/condition_variable_unittest.cc',
-        'synchronization/lock_unittest.cc',
-        'synchronization/waitable_event_unittest.cc',
-        'synchronization/waitable_event_watcher_unittest.cc',
-        'sys_info_unittest.cc',
-        'system_monitor/system_monitor_unittest.cc',
-        'task/cancelable_task_tracker_unittest.cc',
-        'task_runner_util_unittest.cc',
-        'template_util_unittest.cc',
-        'test/expectations/expectation_unittest.cc',
-        'test/expectations/parser_unittest.cc',
-        'test/histogram_tester_unittest.cc',
-        'test/test_pending_task_unittest.cc',
-        'test/test_reg_util_win_unittest.cc',
-        'test/trace_event_analyzer_unittest.cc',
-        'test/user_action_tester_unittest.cc',
-        'threading/non_thread_safe_unittest.cc',
-        'threading/platform_thread_unittest.cc',
-        'threading/sequenced_worker_pool_unittest.cc',
-        'threading/simple_thread_unittest.cc',
-        'threading/thread_checker_unittest.cc',
-        'threading/thread_collision_warner_unittest.cc',
-        'threading/thread_id_name_manager_unittest.cc',
-        'threading/thread_local_storage_unittest.cc',
-        'threading/thread_local_unittest.cc',
-        'threading/thread_unittest.cc',
-        'threading/watchdog_unittest.cc',
-        'threading/worker_pool_posix_unittest.cc',
-        'threading/worker_pool_unittest.cc',
-        'time/pr_time_unittest.cc',
-        'time/time_unittest.cc',
-        'time/time_win_unittest.cc',
-        'timer/hi_res_timer_manager_unittest.cc',
-        'timer/mock_timer_unittest.cc',
-        'timer/timer_unittest.cc',
-        'tools_sanity_unittest.cc',
-        'tracked_objects_unittest.cc',
-        'tuple_unittest.cc',
-        'values_unittest.cc',
-        'version_unittest.cc',
-        'vlog_unittest.cc',
-        'win/dllmain.cc',
-        'win/enum_variant_unittest.cc',
-        'win/event_trace_consumer_unittest.cc',
-        'win/event_trace_controller_unittest.cc',
-        'win/event_trace_provider_unittest.cc',
-        'win/i18n_unittest.cc',
-        'win/iunknown_impl_unittest.cc',
-        'win/message_window_unittest.cc',
-        'win/object_watcher_unittest.cc',
-        'win/pe_image_unittest.cc',
-        'win/registry_unittest.cc',
-        'win/scoped_bstr_unittest.cc',
-        'win/scoped_comptr_unittest.cc',
-        'win/scoped_process_information_unittest.cc',
-        'win/scoped_variant_unittest.cc',
-        'win/shortcut_unittest.cc',
-        'win/startup_information_unittest.cc',
-        'win/win_util_unittest.cc',
-        'win/wrapped_window_proc_unittest.cc',
-        '<@(trace_event_test_sources)',
-      ],
-      'dependencies': [
-        'base',
-        'base_i18n',
-        'base_message_loop_tests',
-        'base_prefs',
-        'base_prefs_test_support',
-        'base_static',
-        'run_all_unittests',
-        'test_support_base',
-        'third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
-        '../testing/gmock.gyp:gmock',
-        '../testing/gtest.gyp:gtest',
-        '../third_party/icu/icu.gyp:icui18n',
-        '../third_party/icu/icu.gyp:icuuc',
-      ],
-      'includes': ['../build/nocompile.gypi'],
-      'variables': {
-         # TODO(ajwong): Is there a way to autodetect this?
-        'module_dir': 'base'
-      },
-      'conditions': [
-        ['OS == "android"', {
-          'dependencies': [
-            'android/jni_generator/jni_generator.gyp:jni_generator_tests',
-            '../testing/android/native_test.gyp:native_test_native_code',
-          ],
-        }],
-        ['OS == "ios" and _toolset != "host"', {
-          'sources/': [
-            # Only test the iOS-meaningful portion of process_utils.
-            ['exclude', '^process/memory_unittest'],
-            ['exclude', '^process/process_unittest\\.cc$'],
-            ['exclude', '^process/process_util_unittest\\.cc$'],
-            ['include', '^process/process_util_unittest_ios\\.cc$'],
-            # iOS does not use message_pump_libevent.
-            ['exclude', '^message_loop/message_pump_libevent_unittest\\.cc$'],
-          ],
-          'actions': [
-            {
-              'action_name': 'copy_test_data',
-              'variables': {
-                'test_data_files': [
-                  'test/data',
-                ],
-                'test_data_prefix': 'base',
-              },
-              'includes': [ '../build/copy_test_data_ios.gypi' ],
-            },
-          ],
-        }],
-        ['desktop_linux == 1 or chromeos == 1', {
-          'defines': [
-            'USE_SYMBOLIZE',
-          ],
-          'sources!': [
-            'file_version_info_unittest.cc',
-          ],
-          'conditions': [
-            [ 'desktop_linux==1', {
-              'sources': [
-                'nix/xdg_util_unittest.cc',
-              ],
-            }],
-          ],
-        }],
-        ['use_glib == 1', {
-          'dependencies': [
-            '../build/linux/system.gyp:glib',
-          ],
-        }, {  # use_glib == 0
-          'sources!': [
-            'message_loop/message_pump_glib_unittest.cc',
-          ]
-        }],
-        ['use_ozone == 1', {
-          'sources!': [
-            'message_loop/message_pump_glib_unittest.cc',
-          ]
-        }],
-        ['OS == "linux"', {
-          'dependencies': [
-            'malloc_wrapper',
-          ],
-          'conditions': [
-            ['use_allocator!="none"', {
-              'dependencies': [
-                'allocator/allocator.gyp:allocator',
-              ],
-            }],
-          ]},
-        ],
-        ['OS == "win"', {
-          'sources!': [
-            'file_descriptor_shuffle_unittest.cc',
-            'files/dir_reader_posix_unittest.cc',
-            'message_loop/message_pump_libevent_unittest.cc',
-            'threading/worker_pool_posix_unittest.cc',
-          ],
-          # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
-          'msvs_disabled_warnings': [
-            4267,
-          ],
-          'conditions': [
-            # This is needed so base_unittests uses the allocator shim, as
-            # SecurityTest.MemoryAllocationRestriction* tests are dependent
-            # on tcmalloc.
-            # TODO(wfh): crbug.com/246278 Move tcmalloc specific tests into
-            # their own test suite.
-            ['win_use_allocator_shim==1', {
-              'dependencies': [
-                'allocator/allocator.gyp:allocator',
-              ],
-            }],
-            ['icu_use_data_file_flag==0', {
-              # This is needed to trigger the dll copy step on windows.
-              # TODO(mark): This should not be necessary.
-              'dependencies': [
-                '../third_party/icu/icu.gyp:icudata',
-              ],
-            }],
-          ],
-        }, {  # OS != "win"
-          'dependencies': [
-            '../third_party/libevent/libevent.gyp:libevent'
-          ],
-        }],
-      ],  # conditions
-      'target_conditions': [
-        ['OS == "ios" and _toolset != "host"', {
-          'sources/': [
-            # Pull in specific Mac files for iOS (which have been filtered out
-            # by file name rules).
-            ['include', '^mac/bind_objc_block_unittest\\.mm$'],
-            ['include', '^mac/foundation_util_unittest\\.mm$',],
-            ['include', '^mac/objc_property_releaser_unittest\\.mm$'],
-            ['include', '^mac/scoped_nsobject_unittest\\.mm$'],
-            ['include', '^sys_string_conversions_mac_unittest\\.mm$'],
-          ],
-        }],
-        ['OS == "android"', {
-          'sources/': [
-            ['include', '^debug/proc_maps_linux_unittest\\.cc$'],
-          ],
-        }],
-        # Enable more direct string conversions on platforms with native utf8
-        # strings
-        ['OS=="mac" or OS=="ios" or <(chromeos)==1 or <(chromecast)==1', {
-          'defines': ['SYSTEM_NATIVE_UTF8'],
-        }],
-      ],  # target_conditions
-    },
-    {
-      # GN: //base:base_perftests
-      'target_name': 'base_perftests',
-      'type': '<(gtest_target_type)',
-      'dependencies': [
-        'base',
-        'test_support_base',
-        '../testing/gtest.gyp:gtest',
-      ],
-      'sources': [
-        'message_loop/message_pump_perftest.cc',
-        'test/run_all_unittests.cc',
-        'threading/thread_perftest.cc',
-        '../testing/perf/perf_test.cc'
-      ],
-      'conditions': [
-        ['OS == "android"', {
-          'dependencies': [
-            '../testing/android/native_test.gyp:native_test_native_code',
-          ],
-        }],
-      ],
-    },
-    {
-      # GN: //base:base_i18n_perftests
-      'target_name': 'base_i18n_perftests',
-      'type': '<(gtest_target_type)',
-      'dependencies': [
-        'test_support_base',
-        'test_support_perf',
-        '../testing/gtest.gyp:gtest',
-        'base_i18n',
-        'base',
-      ],
-      'sources': [
-        'i18n/streaming_utf8_validator_perftest.cc',
-      ],
-    },
-    {
-      # GN: //base/test:test_support
-      'target_name': 'test_support_base',
-      'type': 'static_library',
-      'dependencies': [
-        'base',
-        'base_static',
-        'base_i18n',
-        '../testing/gmock.gyp:gmock',
-        '../testing/gtest.gyp:gtest',
-        '../third_party/icu/icu.gyp:icuuc',
-        '../third_party/libxml/libxml.gyp:libxml',
-        'third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
-      ],
-      'export_dependent_settings': [
-        'base',
-      ],
-      'conditions': [
-        ['os_posix==0', {
-          'sources!': [
-            'test/scoped_locale.cc',
-            'test/scoped_locale.h',
-          ],
-        }],
-        ['os_bsd==1', {
-          'sources!': [
-            'test/test_file_util_linux.cc',
-          ],
-        }],
-        ['OS == "android"', {
-          'dependencies': [
-            'base_unittests_jni_headers',
-            'base_java_unittest_support',
-          ],
-        }],
-        ['OS == "ios"', {
-          'toolsets': ['host', 'target'],
-        }],
-      ],
-      'sources': [
-        'test/expectations/expectation.cc',
-        'test/expectations/expectation.h',
-        'test/expectations/parser.cc',
-        'test/expectations/parser.h',
-        'test/gtest_util.cc',
-        'test/gtest_util.h',
-        'test/gtest_xml_unittest_result_printer.cc',
-        'test/gtest_xml_unittest_result_printer.h',
-        'test/gtest_xml_util.cc',
-        'test/gtest_xml_util.h',
-        'test/histogram_tester.cc',
-        'test/histogram_tester.h',
-        'test/ios/wait_util.h',
-        'test/ios/wait_util.mm',
-        'test/launcher/test_launcher.cc',
-        'test/launcher/test_launcher.h',
-        'test/launcher/test_result.cc',
-        'test/launcher/test_result.h',
-        'test/launcher/test_results_tracker.cc',
-        'test/launcher/test_results_tracker.h',
-        'test/launcher/unit_test_launcher.cc',
-        'test/launcher/unit_test_launcher.h',
-        'test/launcher/unit_test_launcher_ios.cc',
-        'test/mock_chrome_application_mac.h',
-        'test/mock_chrome_application_mac.mm',
-        'test/mock_devices_changed_observer.cc',
-        'test/mock_devices_changed_observer.h',
-        'test/mock_entropy_provider.cc',
-        'test/mock_entropy_provider.h',
-        'test/mock_log.cc',
-        'test/mock_log.h',
-        'test/multiprocess_test.cc',
-        'test/multiprocess_test.h',
-        'test/multiprocess_test_android.cc',
-        'test/null_task_runner.cc',
-        'test/null_task_runner.h',
-        'test/opaque_ref_counted.cc',
-        'test/opaque_ref_counted.h',
-        'test/perf_log.cc',
-        'test/perf_log.h',
-        'test/perf_test_suite.cc',
-        'test/perf_test_suite.h',
-        'test/perf_time_logger.cc',
-        'test/perf_time_logger.h',
-        'test/power_monitor_test_base.cc',
-        'test/power_monitor_test_base.h',
-        'test/scoped_locale.cc',
-        'test/scoped_locale.h',
-        'test/scoped_path_override.cc',
-        'test/scoped_path_override.h',
-        'test/sequenced_task_runner_test_template.cc',
-        'test/sequenced_task_runner_test_template.h',
-        'test/sequenced_worker_pool_owner.cc',
-        'test/sequenced_worker_pool_owner.h',
-        'test/simple_test_clock.cc',
-        'test/simple_test_clock.h',
-        'test/simple_test_tick_clock.cc',
-        'test/simple_test_tick_clock.h',
-        'test/task_runner_test_template.cc',
-        'test/task_runner_test_template.h',
-        'test/test_discardable_memory_allocator.cc',
-        'test/test_discardable_memory_allocator.h',
-        'test/test_file_util.cc',
-        'test/test_file_util.h',
-        'test/test_file_util_android.cc',
-        'test/test_file_util_linux.cc',
-        'test/test_file_util_mac.cc',
-        'test/test_file_util_posix.cc',
-        'test/test_file_util_win.cc',
-        'test/test_io_thread.cc',
-        'test/test_io_thread.h',
-        'test/test_listener_ios.h',
-        'test/test_listener_ios.mm',
-        'test/test_mock_time_task_runner.cc',
-        'test/test_mock_time_task_runner.h',
-        'test/test_pending_task.cc',
-        'test/test_pending_task.h',
-        'test/test_reg_util_win.cc',
-        'test/test_reg_util_win.h',
-        'test/test_shortcut_win.cc',
-        'test/test_shortcut_win.h',
-        'test/test_simple_task_runner.cc',
-        'test/test_simple_task_runner.h',
-        'test/test_suite.cc',
-        'test/test_suite.h',
-        'test/test_support_android.cc',
-        'test/test_support_android.h',
-        'test/test_support_ios.h',
-        'test/test_support_ios.mm',
-        'test/test_switches.cc',
-        'test/test_switches.h',
-        'test/test_timeouts.cc',
-        'test/test_timeouts.h',
-        'test/test_ui_thread_android.cc',
-        'test/test_ui_thread_android.h',
-        'test/thread_test_helper.cc',
-        'test/thread_test_helper.h',
-        'test/trace_event_analyzer.cc',
-        'test/trace_event_analyzer.h',
-        'test/trace_to_file.cc',
-        'test/trace_to_file.h',
-        'test/user_action_tester.cc',
-        'test/user_action_tester.h',
-        'test/values_test_util.cc',
-        'test/values_test_util.h',
-      ],
-      'target_conditions': [
-        ['OS == "ios"', {
-          'sources/': [
-            # Pull in specific Mac files for iOS (which have been filtered out
-            # by file name rules).
-            ['include', '^test/test_file_util_mac\\.cc$'],
-          ],
-        }],
-        ['OS == "ios" and _toolset == "target"', {
-          'sources!': [
-            # iOS uses its own unit test launcher.
-            'test/launcher/unit_test_launcher.cc',
-          ],
-        }],
-        ['OS == "ios" and _toolset == "host"', {
-          'sources!': [
-            'test/launcher/unit_test_launcher_ios.cc',
-            'test/test_support_ios.h',
-            'test/test_support_ios.mm',
-          ],
-        }],
-      ],  # target_conditions
-    },
-    {
-      'target_name': 'test_support_perf',
-      'type': 'static_library',
-      'dependencies': [
-        'base',
-        'test_support_base',
-        '../testing/gtest.gyp:gtest',
-      ],
-      'sources': [
-        'test/run_all_perftests.cc',
-      ],
-      'direct_dependent_settings': {
-        'defines': [
-          'PERF_TEST',
-        ],
-      },
-    },
-    {
-      'target_name': 'test_launcher_nacl_nonsfi',
-      'conditions': [
-        ['disable_nacl==0 and disable_nacl_untrusted==0 and enable_nacl_nonsfi_test==1', {
-          'type': 'static_library',
-          'sources': [
-            'test/launcher/test_launcher_nacl_nonsfi.cc',
-          ],
-          'dependencies': [
-            'test_support_base',
-          ],
-        }, {
-          'type': 'none',
-        }],
-      ],
-    },
-  ],
-  'conditions': [
-    ['OS=="ios" and "<(GENERATOR)"=="ninja"', {
-      'targets': [
-        {
-          'target_name': 'test_launcher',
-          'toolsets': ['host'],
-          'type': 'executable',
-          'dependencies': [
-            'test_support_base',
-          ],
-          'sources': [
-            'test/launcher/test_launcher_ios.cc',
-          ],
-        },
-      ],
-    }],
-    ['OS!="ios"', {
-      'targets': [
-        {
-          # GN: //base:check_example
-          'target_name': 'check_example',
-          'type': 'executable',
-          'sources': [
-            'check_example.cc',
-          ],
-          'dependencies': [
-            'base',
-          ],
-        },
-        {
-          'target_name': 'build_utf8_validator_tables',
-          'type': 'executable',
-          'toolsets': ['host'],
-          'dependencies': [
-            'base',
-            '../third_party/icu/icu.gyp:icuuc',
-          ],
-          'sources': [
-            'i18n/build_utf8_validator_tables.cc'
-          ],
-        },
-      ],
-    }],
-    ['OS == "win" and target_arch=="ia32"', {
-      'targets': [
-        # The base_win64 target here allows us to use base for Win64 targets
-        # (the normal build is 32 bits).
-        {
-          'target_name': 'base_win64',
-          'type': '<(component)',
-          'variables': {
-            'base_target': 1,
-          },
-          'dependencies': [
-            'base_static_win64',
-            'allocator/allocator.gyp:allocator_extension_thunks_win64',
-            '../third_party/modp_b64/modp_b64.gyp:modp_b64_win64',
-            'third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
-            'trace_event/etw_manifest/etw_manifest.gyp:etw_manifest',
-          ],
-          # TODO(gregoryd): direct_dependent_settings should be shared with the
-          # 32-bit target, but it doesn't work due to a bug in gyp
-          'direct_dependent_settings': {
-            'include_dirs': [
-              '..',
-            ],
-          },
-          'defines': [
-            'BASE_WIN64',
-            '<@(nacl_win64_defines)',
-          ],
-          'configurations': {
-            'Common_Base': {
-              'msvs_target_platform': 'x64',
-            },
-          },
-          'conditions': [
-            ['component == "shared_library"', {
-              'sources!': [
-                'debug/debug_on_start_win.cc',
-              ],
-            }],
-          ],
-          # Specify delayload for base_win64.dll.
-          'msvs_settings': {
-            'VCLinkerTool': {
-              'DelayLoadDLLs': [
-                'cfgmgr32.dll',
-                'powrprof.dll',
-                'setupapi.dll',
-              ],
-              'AdditionalDependencies': [
-                'cfgmgr32.lib',
-                'powrprof.lib',
-                'setupapi.lib',
-              ],
-            },
-          },
-          # Specify delayload for components that link with base_win64.lib.
-          'all_dependent_settings': {
-            'msvs_settings': {
-              'VCLinkerTool': {
-                'DelayLoadDLLs': [
-                  'cfgmgr32.dll',
-                  'powrprof.dll',
-                  'setupapi.dll',
-                ],
-                'AdditionalDependencies': [
-                  'cfgmgr32.lib',
-                  'powrprof.lib',
-                  'setupapi.lib',
-                ],
-              },
-            },
-          },
-          # TODO(rvargas): Bug 78117. Remove this.
-          'msvs_disabled_warnings': [
-            4244,
-            4996,
-            4267,
-          ],
-          'sources': [
-            'async_socket_io_handler.h',
-            'async_socket_io_handler_posix.cc',
-            'async_socket_io_handler_win.cc',
-            'auto_reset.h',
-            'linux_util.cc',
-            'linux_util.h',
-            'md5.cc',
-            'md5.h',
-            'message_loop/message_pump_libevent.cc',
-            'message_loop/message_pump_libevent.h',
-            'metrics/field_trial.cc',
-            'metrics/field_trial.h',
-            'posix/file_descriptor_shuffle.cc',
-            'posix/file_descriptor_shuffle.h',
-            'sync_socket.h',
-            'sync_socket_posix.cc',
-            'sync_socket_win.cc',
-            'third_party/xdg_user_dirs/xdg_user_dir_lookup.cc',
-            'third_party/xdg_user_dirs/xdg_user_dir_lookup.h',
-          ],
-        },
-        {
-          'target_name': 'base_i18n_nacl_win64',
-          'type': '<(component)',
-          # TODO(gregoryd): direct_dependent_settings should be shared with the
-          # 32-bit target, but it doesn't work due to a bug in gyp
-          'direct_dependent_settings': {
-            'include_dirs': [
-              '..',
-            ],
-          },
-          'defines': [
-            '<@(nacl_win64_defines)',
-            'BASE_I18N_IMPLEMENTATION',
-          ],
-          'include_dirs': [
-            '..',
-          ],
-          'sources': [
-            'i18n/icu_util_nacl_win64.cc',
-          ],
-          'configurations': {
-            'Common_Base': {
-              'msvs_target_platform': 'x64',
-            },
-          },
-        },
-        {
-          # TODO(rvargas): Remove this when gyp finally supports a clean model.
-          # See bug 36232.
-          'target_name': 'base_static_win64',
-          'type': 'static_library',
-          'sources': [
-            'base_switches.cc',
-            'base_switches.h',
-            'win/pe_image.cc',
-            'win/pe_image.h',
-          ],
-          'sources!': [
-            # base64.cc depends on modp_b64.
-            'base64.cc',
-          ],
-          'include_dirs': [
-            '..',
-          ],
-          'configurations': {
-            'Common_Base': {
-              'msvs_target_platform': 'x64',
-            },
-          },
-          'defines': [
-            '<@(nacl_win64_defines)',
-          ],
-          # TODO(rvargas): Bug 78117. Remove this.
-          'msvs_disabled_warnings': [
-            4244,
-          ],
-        },
-      ],
-    }],
-    ['os_posix==1 and OS!="mac" and OS!="ios"', {
-      'targets': [
-        {
-          'target_name': 'symbolize',
-          'type': 'static_library',
-          'toolsets': ['host', 'target'],
-          'variables': {
-            'chromium_code': 0,
-          },
-          'conditions': [
-            ['OS == "solaris"', {
-              'include_dirs': [
-                '/usr/gnu/include',
-                '/usr/gnu/include/libelf',
-              ],
-            },],
-          ],
-          'cflags': [
-            '-Wno-sign-compare',
-          ],
-          'cflags!': [
-            '-Wextra',
-          ],
-          'defines': [
-            'GLOG_BUILD_CONFIG_INCLUDE="build/build_config.h"',
-          ],
-          'sources': [
-            'third_party/symbolize/config.h',
-            'third_party/symbolize/demangle.cc',
-            'third_party/symbolize/demangle.h',
-            'third_party/symbolize/glog/logging.h',
-            'third_party/symbolize/glog/raw_logging.h',
-            'third_party/symbolize/symbolize.cc',
-            'third_party/symbolize/symbolize.h',
-            'third_party/symbolize/utilities.h',
-          ],
-          'include_dirs': [
-            '..',
-          ],
-          'includes': [
-            '../build/android/increase_size_for_speed.gypi',
-          ],
-        },
-        {
-          'target_name': 'xdg_mime',
-          'type': 'static_library',
-          'toolsets': ['host', 'target'],
-          'variables': {
-            'chromium_code': 0,
-          },
-          'cflags!': [
-            '-Wextra',
-          ],
-          'sources': [
-            'third_party/xdg_mime/xdgmime.c',
-            'third_party/xdg_mime/xdgmime.h',
-            'third_party/xdg_mime/xdgmimealias.c',
-            'third_party/xdg_mime/xdgmimealias.h',
-            'third_party/xdg_mime/xdgmimecache.c',
-            'third_party/xdg_mime/xdgmimecache.h',
-            'third_party/xdg_mime/xdgmimeglob.c',
-            'third_party/xdg_mime/xdgmimeglob.h',
-            'third_party/xdg_mime/xdgmimeicon.c',
-            'third_party/xdg_mime/xdgmimeicon.h',
-            'third_party/xdg_mime/xdgmimeint.c',
-            'third_party/xdg_mime/xdgmimeint.h',
-            'third_party/xdg_mime/xdgmimemagic.c',
-            'third_party/xdg_mime/xdgmimemagic.h',
-            'third_party/xdg_mime/xdgmimeparent.c',
-            'third_party/xdg_mime/xdgmimeparent.h',
-          ],
-          'includes': [
-            '../build/android/increase_size_for_speed.gypi',
-          ],
-        },
-      ],
-    }],
-    ['OS == "linux"', {
-      'targets': [
-        {
-          'target_name': 'malloc_wrapper',
-          'type': 'shared_library',
-          'dependencies': [
-            'base',
-          ],
-          'sources': [
-            'test/malloc_wrapper.cc',
-          ],
-        }
-      ],
-    }],
-    ['OS == "android"', {
-      'targets': [
-        {
-          # GN: //base:base_jni_headers
-          'target_name': 'base_jni_headers',
-          'type': 'none',
-          'sources': [
-            'android/java/src/org/chromium/base/ApkAssets.java',
-            'android/java/src/org/chromium/base/ApplicationStatus.java',
-            'android/java/src/org/chromium/base/AnimationFrameTimeHistogram.java',
-            'android/java/src/org/chromium/base/BuildInfo.java',
-            'android/java/src/org/chromium/base/CommandLine.java',
-            'android/java/src/org/chromium/base/ContentUriUtils.java',
-            'android/java/src/org/chromium/base/CpuFeatures.java',
-            'android/java/src/org/chromium/base/EventLog.java',
-            'android/java/src/org/chromium/base/FieldTrialList.java',
-            'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java',
-            'android/java/src/org/chromium/base/JNIUtils.java',
-            'android/java/src/org/chromium/base/JavaHandlerThread.java',
-            'android/java/src/org/chromium/base/LocaleUtils.java',
-            'android/java/src/org/chromium/base/MemoryPressureListener.java',
-            'android/java/src/org/chromium/base/PathService.java',
-            'android/java/src/org/chromium/base/PathUtils.java',
-            'android/java/src/org/chromium/base/PowerMonitor.java',
-            'android/java/src/org/chromium/base/SysUtils.java',
-            'android/java/src/org/chromium/base/SystemMessageHandler.java',
-            'android/java/src/org/chromium/base/ThreadUtils.java',
-            'android/java/src/org/chromium/base/TraceEvent.java',
-            'android/java/src/org/chromium/base/library_loader/LibraryLoader.java',
-            'android/java/src/org/chromium/base/metrics/RecordHistogram.java',
-            'android/java/src/org/chromium/base/metrics/RecordUserAction.java',
-          ],
-          'variables': {
-            'jni_gen_package': 'base',
-          },
-          'dependencies': [
-            'android_runtime_jni_headers',
-          ],
-          'includes': [ '../build/jni_generator.gypi' ],
-        },
-        {
-          # GN: //base:android_runtime_jni_headers
-          'target_name': 'android_runtime_jni_headers',
-          'type': 'none',
-          'variables': {
-            'jni_gen_package': 'base',
-            'input_java_class': 'java/lang/Runtime.class',
-          },
-          'includes': [ '../build/jar_file_jni_generator.gypi' ],
-        },
-        {
-          # TODO(GN)
-          'target_name': 'base_unittests_jni_headers',
-          'type': 'none',
-          'sources': [
-            'test/android/java/src/org/chromium/base/ContentUriTestUtils.java',
-            'test/android/java/src/org/chromium/base/TestUiThread.java',
-          ],
-          'variables': {
-            'jni_gen_package': 'base',
-          },
-          'includes': [ '../build/jni_generator.gypi' ],
-        },
-        {
-          # GN: //base:base_native_libraries_gen
-          'target_name': 'base_native_libraries_gen',
-          'type': 'none',
-          'sources': [
-            'android/java/templates/NativeLibraries.template',
-          ],
-          'variables': {
-            'package_name': 'org/chromium/base/library_loader',
-            'template_deps': [],
-          },
-          'includes': [ '../build/android/java_cpp_template.gypi' ],
-        },
-        {
-          # GN: //base:base_android_java_enums_srcjar
-          'target_name': 'base_java_library_process_type',
-          'type': 'none',
-          'variables': {
-            'source_file': 'android/library_loader/library_loader_hooks.h',
-          },
-          'includes': [ '../build/android/java_cpp_enum.gypi' ],
-        },
-        {
-          # GN: //base:base_java
-          'target_name': 'base_java',
-          'type': 'none',
-          'variables': {
-            'java_in_dir': '../base/android/java',
-            'jar_excluded_classes': [ '*/NativeLibraries.class' ],
-          },
-          'dependencies': [
-            'base_java_application_state',
-            'base_java_library_load_from_apk_status_codes',
-            'base_java_library_process_type',
-            'base_java_memory_pressure_level',
-            'base_native_libraries_gen',
-            '../third_party/jsr-305/jsr-305.gyp:jsr_305_javalib',
-          ],
-          'includes': [ '../build/java.gypi' ],
-        },
-        {
-          # GN: //base:base_java_unittest_support
-          'target_name': 'base_java_unittest_support',
-          'type': 'none',
-          'dependencies': [
-            'base_java',
-          ],
-          'variables': {
-            'java_in_dir': '../base/test/android/java',
-          },
-          'includes': [ '../build/java.gypi' ],
-        },
-        {
-          # GN: //base:base_android_java_enums_srcjar
-          'target_name': 'base_java_application_state',
-          'type': 'none',
-          'variables': {
-            'source_file': 'android/application_status_listener.h',
-          },
-          'includes': [ '../build/android/java_cpp_enum.gypi' ],
-        },
-        {
-          # GN: //base:base_android_java_enums_srcjar
-          'target_name': 'base_java_library_load_from_apk_status_codes',
-          'type': 'none',
-          'variables': {
-            'source_file': 'android/library_loader/library_load_from_apk_status_codes.h'
-          },
-          'includes': [ '../build/android/java_cpp_enum.gypi' ],
-        },
-        {
-          # GN: //base:base_android_java_enums_srcjar
-          'target_name': 'base_java_memory_pressure_level',
-          'type': 'none',
-          'variables': {
-            'source_file': 'memory/memory_pressure_listener.h',
-          },
-          'includes': [ '../build/android/java_cpp_enum.gypi' ],
-        },
-        {
-          # GN: //base:base_java_test_support
-          'target_name': 'base_java_test_support',
-          'type': 'none',
-          'dependencies': [
-            'base_java',
-            '../testing/android/on_device_instrumentation.gyp:reporter_java',
-          ],
-          'variables': {
-            'java_in_dir': '../base/test/android/javatests',
-          },
-          'includes': [ '../build/java.gypi' ],
-        },
-        {
-          # GN: //base:base_junit_tests
-          'target_name': 'base_junit_tests',
-          'type': 'none',
-          'dependencies': [
-            'base_java',
-            'base_java_test_support',
-            '../testing/android/junit/junit_test.gyp:junit_test_support',
-          ],
-          'variables': {
-             'main_class': 'org.chromium.testing.local.JunitTestMain',
-             'src_paths': [
-               '../base/android/junit/',
-             ],
-           },
-          'includes': [ '../build/host_jar.gypi' ],
-        },
-        {
-          # GN: //base:base_javatests
-          'target_name': 'base_javatests',
-          'type': 'none',
-          'dependencies': [
-            'base_java',
-            'base_java_test_support',
-          ],
-          'variables': {
-            'java_in_dir': '../base/android/javatests',
-          },
-          'includes': [ '../build/java.gypi' ],
-        },
-        {
-          # GN: //base/android/linker:chromium_android_linker
-          'target_name': 'chromium_android_linker',
-          'type': 'shared_library',
-          'sources': [
-            'android/linker/linker_jni.cc',
-          ],
-          # The crazy linker is never instrumented.
-          'cflags!': [
-            '-finstrument-functions',
-          ],
-          'dependencies': [
-            # The NDK contains the crazy_linker here:
-            #   '<(android_ndk_root)/crazy_linker.gyp:crazy_linker'
-            # However, we use our own fork.  See bug 384700.
-            '../third_party/android_crazy_linker/crazy_linker.gyp:crazy_linker',
-          ],
-        },
-        {
-          # TODO(GN)
-          'target_name': 'base_perftests_apk',
-          'type': 'none',
-          'dependencies': [
-            'base_perftests',
-          ],
-          'variables': {
-            'test_suite_name': 'base_perftests',
-          },
-          'includes': [ '../build/apk_test.gypi' ],
-        },
-        {
-          # GN: //base:base_unittests_apk
-          'target_name': 'base_unittests_apk',
-          'type': 'none',
-          'dependencies': [
-            'base_java',
-            'base_unittests',
-          ],
-          'variables': {
-            'test_suite_name': 'base_unittests',
-            'isolate_file': 'base_unittests.isolate',
-          },
-          'includes': [ '../build/apk_test.gypi' ],
-        },
-      ],
-    }],
-    ['OS == "win"', {
-      'targets': [
-        {
-          'target_name': 'debug_message',
-          'type': 'executable',
-          'sources': [
-            'debug_message.cc',
-          ],
-          'msvs_settings': {
-            'VCLinkerTool': {
-              'SubSystem': '2',         # Set /SUBSYSTEM:WINDOWS
-            },
-          },
-        },
-        {
-          # Target to manually rebuild pe_image_test.dll which is checked into
-          # base/test/data/pe_image.
-          'target_name': 'pe_image_test',
-          'type': 'shared_library',
-          'sources': [
-            'win/pe_image_test.cc',
-          ],
-          'msvs_settings': {
-            'VCLinkerTool': {
-              'SubSystem': '2',         # Set /SUBSYSTEM:WINDOWS
-              'DelayLoadDLLs': [
-                'cfgmgr32.dll',
-                'shell32.dll',
-              ],
-              'AdditionalDependencies': [
-                'cfgmgr32.lib',
-                'shell32.lib',
-              ],
-            },
-          },
-        },
-      ],
-    }],
-    ['test_isolation_mode != "noop"', {
-      'targets': [
-        {
-          'target_name': 'base_unittests_run',
-          'type': 'none',
-          'dependencies': [
-            'base_unittests',
-          ],
-          'includes': [
-            '../build/isolate.gypi',
-          ],
-          'sources': [
-            'base_unittests.isolate',
-          ],
-        },
-      ],
-    }],
-  ],
-}
diff --git a/base/base.gypi b/base/base.gypi
deleted file mode 100644
index f086b43..0000000
--- a/base/base.gypi
+++ /dev/null
@@ -1,1038 +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.
-
-{
-  'includes': [
-    'trace_event/trace_event.gypi',
-  ],
-  'target_defaults': {
-    'variables': {
-      'base_target': 0,
-      'base_i18n_target': 0,
-    },
-    'target_conditions': [
-      # This part is shared between the targets defined below.
-      ['base_target==1', {
-        'sources': [
-          '../build/build_config.h',
-          'allocator/allocator_extension.cc',
-          'allocator/allocator_extension.h',
-          'allocator/type_profiler_control.cc',
-          'allocator/type_profiler_control.h',
-          'android/animation_frame_time_histogram.cc',
-          'android/animation_frame_time_histogram.h',
-          'android/apk_assets.cc',
-          'android/apk_assets.h',
-          'android/application_status_listener.cc',
-          'android/application_status_listener.h',
-          'android/base_jni_onload.cc',
-          'android/base_jni_onload.h',
-          'android/base_jni_registrar.cc',
-          'android/base_jni_registrar.h',
-          'android/build_info.cc',
-          'android/build_info.h',
-          'android/command_line_android.cc',
-          'android/command_line_android.h',
-          'android/content_uri_utils.cc',
-          'android/content_uri_utils.h',
-          'android/cpu_features.cc',
-          'android/event_log.cc',
-          'android/event_log.h',
-          'android/field_trial_list.cc',
-          'android/field_trial_list.h',
-          'android/fifo_utils.cc',
-          'android/fifo_utils.h',
-          'android/important_file_writer_android.cc',
-          'android/important_file_writer_android.h',
-          'android/java_handler_thread.cc',
-          'android/java_handler_thread.h',
-          'android/java_runtime.cc',
-          'android/java_runtime.h',
-          'android/jni_android.cc',
-          'android/jni_android.h',
-          'android/jni_array.cc',
-          'android/jni_array.h',
-          'android/jni_registrar.cc',
-          'android/jni_registrar.h',
-          'android/jni_string.cc',
-          'android/jni_string.h',
-          'android/jni_utils.cc',
-          'android/jni_utils.h',
-          'android/jni_weak_ref.cc',
-          'android/jni_weak_ref.h',
-          'android/library_loader/library_load_from_apk_status_codes.h',
-          'android/library_loader/library_loader_hooks.cc',
-          'android/library_loader/library_loader_hooks.h',
-          'android/library_loader/library_prefetcher.cc',
-          'android/library_loader/library_prefetcher.h',
-          'android/locale_utils.cc',
-          'android/locale_utils.h',
-          'android/memory_pressure_listener_android.cc',
-          'android/memory_pressure_listener_android.h',
-          'android/path_service_android.cc',
-          'android/path_service_android.h',
-          'android/path_utils.cc',
-          'android/path_utils.h',
-          'android/record_histogram.cc',
-          'android/record_histogram.h',
-          'android/record_user_action.cc',
-          'android/record_user_action.h',
-          'android/scoped_java_ref.cc',
-          'android/scoped_java_ref.h',
-          'android/sys_utils.cc',
-          'android/sys_utils.h',
-          'android/thread_utils.h',
-          'android/trace_event_binding.cc',
-          'android/trace_event_binding.h',
-          'at_exit.cc',
-          'at_exit.h',
-          'atomic_ref_count.h',
-          'atomic_sequence_num.h',
-          'atomicops.h',
-          'atomicops_internals_gcc.h',
-          'atomicops_internals_mac.h',
-          'atomicops_internals_portable.h',
-          'atomicops_internals_x86_gcc.cc',
-          'atomicops_internals_x86_gcc.h',
-          'atomicops_internals_x86_msvc.h',
-          'barrier_closure.cc',
-          'barrier_closure.h',
-          'base64.cc',
-          'base64.h',
-          'base_export.h',
-          'base_paths.cc',
-          'base_paths.h',
-          'base_paths_android.cc',
-          'base_paths_android.h',
-          'base_paths_mac.h',
-          'base_paths_mac.mm',
-          'base_paths_posix.cc',
-          'base_paths_posix.h',
-          'base_paths_win.cc',
-          'base_paths_win.h',
-          'base_switches.h',
-          'basictypes.h',
-          'big_endian.cc',
-          'big_endian.h',
-          'bind.h',
-          'bind_helpers.cc',
-          'bind_helpers.h',
-          'bind_internal.h',
-          'bind_internal_win.h',
-          'bits.h',
-          'build_time.cc',
-          'build_time.h',
-          'callback.h',
-          'callback_helpers.cc',
-          'callback_helpers.h',
-          'callback_internal.cc',
-          'callback_internal.h',
-          'callback_list.h',
-          'cancelable_callback.h',
-          'command_line.cc',
-          'command_line.h',
-          'compiler_specific.h',
-          'containers/adapters.h',
-          'containers/hash_tables.h',
-          'containers/linked_list.h',
-          'containers/mru_cache.h',
-          'containers/scoped_ptr_hash_map.h',
-          'containers/small_map.h',
-          'containers/stack_container.h',
-          'cpu.cc',
-          'cpu.h',
-          'critical_closure.h',
-          'critical_closure_internal_ios.mm',
-          'debug/alias.cc',
-          'debug/alias.h',
-          'debug/asan_invalid_access.cc',
-          'debug/asan_invalid_access.h',
-          'debug/crash_logging.cc',
-          'debug/crash_logging.h',
-          'debug/debugger.cc',
-          'debug/debugger.h',
-          'debug/debugger_posix.cc',
-          'debug/debugger_win.cc',
-          'debug/dump_without_crashing.cc',
-          'debug/dump_without_crashing.h',
-          'debug/gdi_debug_util_win.cc',
-          'debug/gdi_debug_util_win.h',
-          # This file depends on files from the 'allocator' target,
-          # but this target does not depend on 'allocator' (see
-          # allocator.gyp for details).
-          'debug/leak_annotations.h',
-          'debug/leak_tracker.h',
-          'debug/proc_maps_linux.cc',
-          'debug/proc_maps_linux.h',
-          'debug/profiler.cc',
-          'debug/profiler.h',
-          'debug/stack_trace.cc',
-          'debug/stack_trace.h',
-          'debug/stack_trace_android.cc',
-          'debug/stack_trace_posix.cc',
-          'debug/stack_trace_win.cc',
-          'debug/task_annotator.cc',
-          'debug/task_annotator.h',
-          'deferred_sequenced_task_runner.cc',
-          'deferred_sequenced_task_runner.h',
-          'environment.cc',
-          'environment.h',
-          'file_descriptor_posix.h',
-          'file_version_info.h',
-          'file_version_info_mac.h',
-          'file_version_info_mac.mm',
-          'file_version_info_win.cc',
-          'file_version_info_win.h',
-          'files/dir_reader_fallback.h',
-          'files/dir_reader_linux.h',
-          'files/dir_reader_posix.h',
-          'files/file.cc',
-          'files/file.h',
-          'files/file_enumerator.cc',
-          'files/file_enumerator.h',
-          'files/file_enumerator_posix.cc',
-          'files/file_enumerator_win.cc',
-          'files/file_path.cc',
-          'files/file_path.h',
-          'files/file_path_constants.cc',
-          'files/file_path_watcher.cc',
-          'files/file_path_watcher.h',
-          'files/file_path_watcher_fsevents.cc',
-          'files/file_path_watcher_fsevents.h',
-          'files/file_path_watcher_kqueue.cc',
-          'files/file_path_watcher_kqueue.h',
-          'files/file_path_watcher_linux.cc',
-          'files/file_path_watcher_mac.cc',
-          'files/file_path_watcher_stub.cc',
-          'files/file_path_watcher_win.cc',
-          'files/file_posix.cc',
-          'files/file_proxy.cc',
-          'files/file_proxy.h',
-          'files/file_tracing.cc',
-          'files/file_tracing.h',
-          'files/file_util.cc',
-          'files/file_util.h',
-          'files/file_util_android.cc',
-          'files/file_util_linux.cc',
-          'files/file_util_mac.mm',
-          'files/file_util_posix.cc',
-          'files/file_util_proxy.cc',
-          'files/file_util_proxy.h',
-          'files/file_util_win.cc',
-          'files/file_win.cc',
-          'files/important_file_writer.cc',
-          'files/important_file_writer.h',
-          'files/memory_mapped_file.cc',
-          'files/memory_mapped_file.h',
-          'files/memory_mapped_file_posix.cc',
-          'files/memory_mapped_file_win.cc',
-          'files/scoped_file.cc',
-          'files/scoped_file.h',
-          'files/scoped_temp_dir.cc',
-          'files/scoped_temp_dir.h',
-          'format_macros.h',
-          'gtest_prod_util.h',
-          'guid.cc',
-          'guid.h',
-          'guid_posix.cc',
-          'guid_win.cc',
-          'hash.cc',
-          'hash.h',
-          'id_map.h',
-          'ios/block_types.h',
-          'ios/crb_protocol_observers.h',
-          'ios/crb_protocol_observers.mm',
-          'ios/device_util.h',
-          'ios/device_util.mm',
-          'ios/ios_util.h',
-          'ios/ios_util.mm',
-          'ios/scoped_critical_action.h',
-          'ios/scoped_critical_action.mm',
-          'ios/weak_nsobject.h',
-          'ios/weak_nsobject.mm',
-          'json/json_file_value_serializer.cc',
-          'json/json_file_value_serializer.h',
-          'json/json_parser.cc',
-          'json/json_parser.h',
-          'json/json_reader.cc',
-          'json/json_reader.h',
-          'json/json_string_value_serializer.cc',
-          'json/json_string_value_serializer.h',
-          'json/json_value_converter.cc',
-          'json/json_value_converter.h',
-          'json/json_writer.cc',
-          'json/json_writer.h',
-          'json/string_escape.cc',
-          'json/string_escape.h',
-          'lazy_instance.cc',
-          'lazy_instance.h',
-          'location.cc',
-          'location.h',
-          'logging.cc',
-          'logging.h',
-          'logging_win.cc',
-          'logging_win.h',
-          'mac/authorization_util.h',
-          'mac/authorization_util.mm',
-          'mac/bind_objc_block.h',
-          'mac/bundle_locations.h',
-          'mac/bundle_locations.mm',
-          'mac/close_nocancel.cc',
-          'mac/cocoa_protocols.h',
-          'mac/dispatch_source_mach.cc',
-          'mac/dispatch_source_mach.h',
-          'mac/foundation_util.h',
-          'mac/foundation_util.mm',
-          'mac/launch_services_util.cc',
-          'mac/launch_services_util.h',
-          'mac/launchd.cc',
-          'mac/launchd.h',
-          'mac/libdispatch_task_runner.cc',
-          'mac/libdispatch_task_runner.h',
-          'mac/mac_logging.cc',
-          'mac/mac_logging.h',
-          'mac/mac_util.h',
-          'mac/mac_util.mm',
-          'mac/mach_logging.cc',
-          'mac/mach_logging.h',
-          'mac/objc_property_releaser.h',
-          'mac/objc_property_releaser.mm',
-          'mac/os_crash_dumps.cc',
-          'mac/os_crash_dumps.h',
-          'mac/scoped_aedesc.h',
-          'mac/scoped_authorizationref.h',
-          'mac/scoped_block.h',
-          'mac/scoped_cftyperef.h',
-          'mac/scoped_ioobject.h',
-          'mac/scoped_ioplugininterface.h',
-          'mac/scoped_launch_data.h',
-          'mac/scoped_mach_port.cc',
-          'mac/scoped_mach_port.h',
-          'mac/scoped_mach_vm.cc',
-          'mac/scoped_mach_vm.h',
-          'mac/scoped_nsautorelease_pool.h',
-          'mac/scoped_nsautorelease_pool.mm',
-          'mac/scoped_nsexception_enabler.h',
-          'mac/scoped_nsexception_enabler.mm',
-          'mac/scoped_nsobject.h',
-          'mac/scoped_objc_class_swizzler.h',
-          'mac/scoped_objc_class_swizzler.mm',
-          'mac/scoped_sending_event.h',
-          'mac/scoped_sending_event.mm',
-          'mac/scoped_typeref.h',
-          'mac/sdk_forward_declarations.h',
-          'mac/sdk_forward_declarations.mm',
-          'macros.h',
-          'md5.cc',
-          'md5.h',
-          'memory/aligned_memory.cc',
-          'memory/aligned_memory.h',
-          'memory/discardable_memory.cc',
-          'memory/discardable_memory.h',
-          'memory/discardable_memory_allocator.cc',
-          'memory/discardable_memory_allocator.h',
-          'memory/discardable_shared_memory.cc',
-          'memory/discardable_shared_memory.h',
-          'memory/linked_ptr.h',
-          'memory/manual_constructor.h',
-          'memory/memory_pressure_listener.cc',
-          'memory/memory_pressure_listener.h',
-          'memory/memory_pressure_monitor.cc',
-          'memory/memory_pressure_monitor.h',
-          'memory/memory_pressure_monitor_chromeos.cc',
-          'memory/memory_pressure_monitor_chromeos.h',
-          'memory/memory_pressure_monitor_mac.cc',
-          'memory/memory_pressure_monitor_mac.h',
-          'memory/memory_pressure_monitor_win.cc',
-          'memory/memory_pressure_monitor_win.h',
-          'memory/raw_scoped_refptr_mismatch_checker.h',
-          'memory/ref_counted.cc',
-          'memory/ref_counted.h',
-          'memory/ref_counted_delete_on_message_loop.h',
-          'memory/ref_counted_memory.cc',
-          'memory/ref_counted_memory.h',
-          'memory/scoped_policy.h',
-          'memory/scoped_ptr.h',
-          'memory/scoped_vector.h',
-          'memory/shared_memory.h',
-          'memory/shared_memory_android.cc',
-          'memory/shared_memory_nacl.cc',
-          'memory/shared_memory_posix.cc',
-          'memory/shared_memory_win.cc',
-          'memory/singleton.cc',
-          'memory/singleton.h',
-          'memory/weak_ptr.cc',
-          'memory/weak_ptr.h',
-          'message_loop/incoming_task_queue.cc',
-          'message_loop/incoming_task_queue.h',
-          'message_loop/message_loop.cc',
-          'message_loop/message_loop.h',
-          'message_loop/message_loop_proxy.cc',
-          'message_loop/message_loop_proxy.h',
-          'message_loop/message_loop_proxy_impl.cc',
-          'message_loop/message_loop_proxy_impl.h',
-          'message_loop/message_pump.cc',
-          'message_loop/message_pump.h',
-          'message_loop/message_pump_android.cc',
-          'message_loop/message_pump_android.h',
-          'message_loop/message_pump_default.cc',
-          'message_loop/message_pump_default.h',
-          'message_loop/message_pump_win.cc',
-          'message_loop/message_pump_win.h',
-          'message_loop/timer_slack.h',
-          'metrics/bucket_ranges.cc',
-          'metrics/bucket_ranges.h',
-          'metrics/histogram.cc',
-          'metrics/histogram.h',
-          'metrics/histogram_base.cc',
-          'metrics/histogram_base.h',
-          'metrics/histogram_delta_serialization.cc',
-          'metrics/histogram_delta_serialization.h',
-          'metrics/histogram_flattener.h',
-          'metrics/histogram_macros.h',
-          'metrics/histogram_samples.cc',
-          'metrics/histogram_samples.h',
-          'metrics/histogram_snapshot_manager.cc',
-          'metrics/histogram_snapshot_manager.h',
-          'metrics/sample_map.cc',
-          'metrics/sample_map.h',
-          'metrics/sample_vector.cc',
-          'metrics/sample_vector.h',
-          'metrics/sparse_histogram.cc',
-          'metrics/sparse_histogram.h',
-          'metrics/statistics_recorder.cc',
-          'metrics/statistics_recorder.h',
-          'metrics/user_metrics.cc',
-          'metrics/user_metrics.h',
-          'metrics/user_metrics_action.h',
-          'move.h',
-          'native_library.h',
-          'native_library_ios.mm',
-          'native_library_mac.mm',
-          'native_library_posix.cc',
-          'native_library_win.cc',
-          'nix/mime_util_xdg.cc',
-          'nix/mime_util_xdg.h',
-          'nix/xdg_util.cc',
-          'nix/xdg_util.h',
-          'numerics/safe_conversions.h',
-          'numerics/safe_conversions_impl.h',
-          'numerics/safe_math.h',
-          'numerics/safe_math_impl.h',
-          'observer_list.h',
-          'observer_list_threadsafe.h',
-          'os_compat_android.cc',
-          'os_compat_android.h',
-          'os_compat_nacl.cc',
-          'os_compat_nacl.h',
-          'path_service.cc',
-          'path_service.h',
-          'pending_task.cc',
-          'pending_task.h',
-          'pickle.cc',
-          'pickle.h',
-          'port.h',
-          'posix/eintr_wrapper.h',
-          'posix/global_descriptors.cc',
-          'posix/global_descriptors.h',
-          'posix/safe_strerror.cc',
-          'posix/safe_strerror.h',
-          'posix/unix_domain_socket_linux.cc',
-          'posix/unix_domain_socket_linux.h',
-          'power_monitor/power_monitor.cc',
-          'power_monitor/power_monitor.h',
-          'power_monitor/power_monitor_device_source.cc',
-          'power_monitor/power_monitor_device_source.h',
-          'power_monitor/power_monitor_device_source_android.cc',
-          'power_monitor/power_monitor_device_source_android.h',
-          'power_monitor/power_monitor_device_source_chromeos.cc',
-          'power_monitor/power_monitor_device_source_ios.mm',
-          'power_monitor/power_monitor_device_source_mac.mm',
-          'power_monitor/power_monitor_device_source_posix.cc',
-          'power_monitor/power_monitor_device_source_win.cc',
-          'power_monitor/power_monitor_source.cc',
-          'power_monitor/power_monitor_source.h',
-          'power_monitor/power_observer.h',
-          'process/internal_linux.cc',
-          'process/internal_linux.h',
-          'process/kill.cc',
-          'process/kill.h',
-          'process/kill_mac.cc',
-          'process/kill_posix.cc',
-          'process/kill_win.cc',
-          'process/launch.cc',
-          'process/launch.h',
-          'process/launch_ios.cc',
-          'process/launch_mac.cc',
-          'process/launch_posix.cc',
-          'process/launch_win.cc',
-          'process/memory.cc',
-          'process/memory.h',
-          'process/memory_linux.cc',
-          'process/memory_mac.mm',
-          'process/memory_win.cc',
-          'process/process.h',
-          'process/process_handle_freebsd.cc',
-          'process/process_handle_linux.cc',
-          'process/process_handle_mac.cc',
-          'process/process_handle_openbsd.cc',
-          'process/process_handle_posix.cc',
-          'process/process_handle_win.cc',
-          'process/process_info.h',
-          'process/process_info_linux.cc',
-          'process/process_info_mac.cc',
-          'process/process_info_win.cc',
-          'process/process_iterator.cc',
-          'process/process_iterator.h',
-          'process/process_iterator_freebsd.cc',
-          'process/process_iterator_linux.cc',
-          'process/process_iterator_mac.cc',
-          'process/process_iterator_openbsd.cc',
-          'process/process_iterator_win.cc',
-          'process/process_linux.cc',
-          'process/process_mac.cc',
-          'process/process_metrics.cc',
-          'process/process_metrics.h',
-          'process/process_metrics_freebsd.cc',
-          'process/process_metrics_ios.cc',
-          'process/process_metrics_linux.cc',
-          'process/process_metrics_mac.cc',
-          'process/process_metrics_openbsd.cc',
-          'process/process_metrics_posix.cc',
-          'process/process_metrics_win.cc',
-          'process/process_posix.cc',
-          'process/process_win.cc',
-          'profiler/alternate_timer.cc',
-          'profiler/alternate_timer.h',
-          'profiler/native_stack_sampler.cc',
-          'profiler/native_stack_sampler.h',
-          'profiler/scoped_profile.cc',
-          'profiler/scoped_profile.h',
-          'profiler/scoped_tracker.cc',
-          'profiler/scoped_tracker.h',
-          'profiler/stack_sampling_profiler.cc',
-          'profiler/stack_sampling_profiler.h',
-          'profiler/stack_sampling_profiler_posix.cc',
-          'profiler/stack_sampling_profiler_win.cc',
-          'profiler/tracked_time.cc',
-          'profiler/tracked_time.h',
-          'rand_util.cc',
-          'rand_util.h',
-          'rand_util_nacl.cc',
-          'rand_util_posix.cc',
-          'rand_util_win.cc',
-          'run_loop.cc',
-          'run_loop.h',
-          'scoped_generic.h',
-          'scoped_native_library.cc',
-          'scoped_native_library.h',
-          'scoped_observer.h',
-          'sequence_checker.h',
-          'sequence_checker_impl.cc',
-          'sequence_checker_impl.h',
-          'sequenced_task_runner.cc',
-          'sequenced_task_runner.h',
-          'sequenced_task_runner_helpers.h',
-          'sha1.h',
-          'sha1_portable.cc',
-          'sha1_win.cc',
-          'single_thread_task_runner.h',
-          'stl_util.h',
-          'strings/latin1_string_conversions.cc',
-          'strings/latin1_string_conversions.h',
-          'strings/nullable_string16.cc',
-          'strings/nullable_string16.h',
-          'strings/safe_sprintf.cc',
-          'strings/safe_sprintf.h',
-          'strings/string16.cc',
-          'strings/string16.h',
-          'strings/string_number_conversions.cc',
-          'strings/string_number_conversions.h',
-          'strings/string_piece.cc',
-          'strings/string_piece.h',
-          'strings/string_split.cc',
-          'strings/string_split.h',
-          'strings/string_tokenizer.h',
-          'strings/string_util.cc',
-          'strings/string_util.h',
-          'strings/string_util_constants.cc',
-          'strings/string_util_posix.h',
-          'strings/string_util_win.h',
-          'strings/stringize_macros.h',
-          'strings/stringprintf.cc',
-          'strings/stringprintf.h',
-          'strings/sys_string_conversions.h',
-          'strings/sys_string_conversions_mac.mm',
-          'strings/sys_string_conversions_posix.cc',
-          'strings/sys_string_conversions_win.cc',
-          'strings/utf_offset_string_conversions.cc',
-          'strings/utf_offset_string_conversions.h',
-          'strings/utf_string_conversion_utils.cc',
-          'strings/utf_string_conversion_utils.h',
-          'strings/utf_string_conversions.cc',
-          'strings/utf_string_conversions.h',
-          'supports_user_data.cc',
-          'supports_user_data.h',
-          'synchronization/cancellation_flag.cc',
-          'synchronization/cancellation_flag.h',
-          'synchronization/condition_variable.h',
-          'synchronization/condition_variable_posix.cc',
-          'synchronization/condition_variable_win.cc',
-          'synchronization/lock.cc',
-          'synchronization/lock.h',
-          'synchronization/lock_impl.h',
-          'synchronization/lock_impl_posix.cc',
-          'synchronization/lock_impl_win.cc',
-          'synchronization/spin_wait.h',
-          'synchronization/waitable_event.h',
-          'synchronization/waitable_event_posix.cc',
-          'synchronization/waitable_event_watcher.h',
-          'synchronization/waitable_event_watcher_posix.cc',
-          'synchronization/waitable_event_watcher_win.cc',
-          'synchronization/waitable_event_win.cc',
-          'sys_byteorder.h',
-          'sys_info.cc',
-          'sys_info.h',
-          'sys_info_android.cc',
-          'sys_info_chromeos.cc',
-          'sys_info_freebsd.cc',
-          'sys_info_internal.h',
-          'sys_info_ios.mm',
-          'sys_info_linux.cc',
-          'sys_info_mac.cc',
-          'sys_info_openbsd.cc',
-          'sys_info_posix.cc',
-          'sys_info_win.cc',
-          'system_monitor/system_monitor.cc',
-          'system_monitor/system_monitor.h',
-          'task/cancelable_task_tracker.cc',
-          'task/cancelable_task_tracker.h',
-          'task_runner.cc',
-          'task_runner.h',
-          'task_runner_util.h',
-          'template_util.h',
-          'third_party/dmg_fp/dmg_fp.h',
-          'third_party/dmg_fp/dtoa_wrapper.cc',
-          'third_party/dmg_fp/g_fmt.cc',
-          'third_party/icu/icu_utf.cc',
-          'third_party/icu/icu_utf.h',
-          'third_party/nspr/prtime.cc',
-          'third_party/nspr/prtime.h',
-          'third_party/superfasthash/superfasthash.c',
-          'third_party/xdg_mime/xdgmime.h',
-          'thread_task_runner_handle.cc',
-          'thread_task_runner_handle.h',
-          'threading/non_thread_safe.h',
-          'threading/non_thread_safe_impl.cc',
-          'threading/non_thread_safe_impl.h',
-          'threading/platform_thread.h',
-          'threading/platform_thread_android.cc',
-          'threading/platform_thread_internal_posix.cc',
-          'threading/platform_thread_internal_posix.h',
-          'threading/platform_thread_linux.cc',
-          'threading/platform_thread_mac.mm',
-          'threading/platform_thread_posix.cc',
-          'threading/platform_thread_win.cc',
-          'threading/post_task_and_reply_impl.cc',
-          'threading/post_task_and_reply_impl.h',
-          'threading/sequenced_worker_pool.cc',
-          'threading/sequenced_worker_pool.h',
-          'threading/simple_thread.cc',
-          'threading/simple_thread.h',
-          'threading/thread.cc',
-          'threading/thread.h',
-          'threading/thread_checker.h',
-          'threading/thread_checker_impl.cc',
-          'threading/thread_checker_impl.h',
-          'threading/thread_collision_warner.cc',
-          'threading/thread_collision_warner.h',
-          'threading/thread_id_name_manager.cc',
-          'threading/thread_id_name_manager.h',
-          'threading/thread_local.h',
-          'threading/thread_local_android.cc',
-          'threading/thread_local_posix.cc',
-          'threading/thread_local_storage.cc',
-          'threading/thread_local_storage.h',
-          'threading/thread_local_storage_posix.cc',
-          'threading/thread_local_storage_win.cc',
-          'threading/thread_local_win.cc',
-          'threading/thread_restrictions.cc',
-          'threading/thread_restrictions.h',
-          'threading/watchdog.cc',
-          'threading/watchdog.h',
-          'threading/worker_pool.cc',
-          'threading/worker_pool.h',
-          'threading/worker_pool_posix.cc',
-          'threading/worker_pool_posix.h',
-          'threading/worker_pool_win.cc',
-          'time/clock.cc',
-          'time/clock.h',
-          'time/default_clock.cc',
-          'time/default_clock.h',
-          'time/default_tick_clock.cc',
-          'time/default_tick_clock.h',
-          'time/tick_clock.cc',
-          'time/tick_clock.h',
-          'time/time.cc',
-          'time/time.h',
-          'time/time_mac.cc',
-          'time/time_posix.cc',
-          'time/time_win.cc',
-          'timer/elapsed_timer.cc',
-          'timer/elapsed_timer.h',
-          'timer/hi_res_timer_manager.h',
-          'timer/hi_res_timer_manager_posix.cc',
-          'timer/hi_res_timer_manager_win.cc',
-          'timer/mock_timer.cc',
-          'timer/mock_timer.h',
-          'timer/timer.cc',
-          'timer/timer.h',
-          'tracked_objects.cc',
-          'tracked_objects.h',
-          'tracking_info.cc',
-          'tracking_info.h',
-          'tuple.h',
-          'value_conversions.cc',
-          'value_conversions.h',
-          'values.cc',
-          'values.h',
-          'version.cc',
-          'version.h',
-          'vlog.cc',
-          'vlog.h',
-          'win/enum_variant.cc',
-          'win/enum_variant.h',
-          'win/event_trace_consumer.h',
-          'win/event_trace_controller.cc',
-          'win/event_trace_controller.h',
-          'win/event_trace_provider.cc',
-          'win/event_trace_provider.h',
-          'win/i18n.cc',
-          'win/i18n.h',
-          'win/iat_patch_function.cc',
-          'win/iat_patch_function.h',
-          'win/iunknown_impl.cc',
-          'win/iunknown_impl.h',
-          'win/message_window.cc',
-          'win/message_window.h',
-          'win/metro.cc',
-          'win/metro.h',
-          'win/object_watcher.cc',
-          'win/object_watcher.h',
-          'win/registry.cc',
-          'win/registry.h',
-          'win/resource_util.cc',
-          'win/resource_util.h',
-          'win/scoped_bstr.cc',
-          'win/scoped_bstr.h',
-          'win/scoped_co_mem.h',
-          'win/scoped_com_initializer.h',
-          'win/scoped_comptr.h',
-          'win/scoped_gdi_object.h',
-          'win/scoped_handle.cc',
-          'win/scoped_handle.h',
-          'win/scoped_hdc.h',
-          'win/scoped_hglobal.h',
-          'win/scoped_process_information.cc',
-          'win/scoped_process_information.h',
-          'win/scoped_propvariant.h',
-          'win/scoped_select_object.h',
-          'win/scoped_variant.cc',
-          'win/scoped_variant.h',
-          'win/shortcut.cc',
-          'win/shortcut.h',
-          'win/startup_information.cc',
-          'win/startup_information.h',
-          'win/win_util.cc',
-          'win/win_util.h',
-          'win/windows_version.cc',
-          'win/windows_version.h',
-          'win/wrapped_window_proc.cc',
-          'win/wrapped_window_proc.h',
-          '<@(trace_event_sources)',
-        ],
-        'defines': [
-          'BASE_IMPLEMENTATION',
-        ],
-        'include_dirs': [
-          '..',
-        ],
-        'msvs_disabled_warnings': [
-          4018,
-        ],
-        'target_conditions': [
-          ['(<(desktop_linux) == 0 and <(chromeos) == 0) or >(nacl_untrusted_build)==1', {
-              'sources/': [
-                ['exclude', '^nix/'],
-              ],
-              'sources!': [
-                'atomicops_internals_x86_gcc.cc',
-              ],
-          }],
-          ['<(use_glib)==0 or >(nacl_untrusted_build)==1', {
-              'sources!': [
-                'message_loop/message_pump_glib.cc',
-              ],
-          }],
-          ['(OS != "linux" and <(os_bsd) != 1 and OS != "android") or >(nacl_untrusted_build)==1', {
-              'sources!': [
-                # Not automatically excluded by the *linux.cc rules.
-                'linux_util.cc',
-              ],
-            },
-          ],
-          ['>(nacl_untrusted_build)==1', {
-            'sources!': [
-               'allocator/type_profiler_control.cc',
-               'allocator/type_profiler_control.h',
-               'base_paths.cc',
-               'cpu.cc',
-               'debug/stack_trace.cc',
-               'debug/stack_trace_posix.cc',
-               'files/file_enumerator_posix.cc',
-               'files/file_path_watcher_fsevents.cc',
-               'files/file_path_watcher_fsevents.h',
-               'files/file_path_watcher_kqueue.cc',
-               'files/file_path_watcher_kqueue.h',
-               'files/file_proxy.cc',
-               'files/file_util.cc',
-               'files/file_util_posix.cc',
-               'files/file_util_proxy.cc',
-               'files/important_file_writer.cc',
-               'files/scoped_temp_dir.cc',
-               'memory/shared_memory_posix.cc',
-               'native_library_posix.cc',
-               'path_service.cc',
-               'posix/unix_domain_socket_linux.cc',
-               'process/kill.cc',
-               'process/kill_posix.cc',
-               'process/launch.cc',
-               'process/launch_posix.cc',
-               'process/process_metrics.cc',
-               'process/process_metrics_posix.cc',
-               'process/process_posix.cc',
-               'rand_util_posix.cc',
-               'scoped_native_library.cc',
-               'sys_info.cc',
-               'sys_info_posix.cc',
-               'third_party/dynamic_annotations/dynamic_annotations.c',
-            ],
-            'sources/': [
-              ['include', '^threading/platform_thread_linux\\.cc$'],
-            ],
-          }],
-          ['OS == "android" and >(nacl_untrusted_build)==0', {
-            'sources!': [
-              'base_paths_posix.cc',
-              'files/file_path_watcher_fsevents.cc',
-              'files/file_path_watcher_fsevents.h',
-              'files/file_path_watcher_kqueue.cc',
-              'files/file_path_watcher_kqueue.h',
-              'files/file_path_watcher_stub.cc',
-              'power_monitor/power_monitor_device_source_posix.cc',
-            ],
-            'sources/': [
-              ['include', '^debug/proc_maps_linux\\.cc$'],
-              ['include', '^files/file_path_watcher_linux\\.cc$'],
-              ['include', '^process/memory_linux\\.cc$'],
-              ['include', '^process/internal_linux\\.cc$'],
-              ['include', '^process/process_handle_linux\\.cc$'],
-              ['include', '^process/process_iterator\\.cc$'],
-              ['include', '^process/process_iterator_linux\\.cc$'],
-              ['include', '^process/process_metrics_linux\\.cc$'],
-              ['include', '^posix/unix_domain_socket_linux\\.cc$'],
-              ['include', '^strings/sys_string_conversions_posix\\.cc$'],
-              ['include', '^sys_info_linux\\.cc$'],
-              ['include', '^worker_pool_linux\\.cc$'],
-            ],
-          }],
-          ['OS == "android" and _toolset == "host" and host_os == "linux"', {
-            'defines': [
-              'OS_ANDROID_HOST=Linux',
-            ],
-            'sources/': [
-              # Pull in specific files for host builds.
-              ['include', '^atomicops_internals_x86_gcc\\.cc$'],
-              ['include', '^threading/platform_thread_linux\\.cc$'],
-            ],
-          }],
-          ['<(chromeos) == 1', {
-            'sources!': [
-              'power_monitor/power_monitor_device_source_posix.cc',
-            ],
-          }],
-          ['OS == "ios" and _toolset != "host"', {
-            'sources/': [
-              # Pull in specific Mac files for iOS (which have been filtered out
-              # by file name rules).
-              ['include', '^atomicops_internals_mac\\.'],
-              ['include', '^base_paths_mac\\.'],
-              ['include', '^files/file_util_mac\\.'],
-              ['include', '^file_version_info_mac\\.'],
-              ['include', '^mac/bundle_locations\\.'],
-              ['include', '^mac/foundation_util\\.'],
-              ['include', '^mac/mac_logging\\.'],
-              ['include', '^mac/mach_logging\\.'],
-              ['include', '^mac/objc_property_releaser\\.'],
-              ['include', '^mac/scoped_mach_port\\.'],
-              ['include', '^mac/scoped_mach_vm\\.'],
-              ['include', '^mac/scoped_nsautorelease_pool\\.'],
-              ['include', '^mac/scoped_nsobject\\.'],
-              ['include', '^mac/scoped_objc_class_swizzler\\.'],
-              ['include', '^message_loop/message_pump_mac\\.'],
-              ['include', '^strings/sys_string_conversions_mac\\.'],
-              ['include', '^threading/platform_thread_mac\\.'],
-              ['include', '^time/time_mac\\.'],
-              ['include', '^worker_pool_mac\\.'],
-              # Exclude all process/ except the minimal implementation
-              # needed on iOS (mostly for unit tests).
-              ['exclude', '^process/.*'],
-              ['include', '^process/.*_ios\.(cc|mm)$'],
-              ['include', '^process/memory_stubs\.cc$'],
-              ['include', '^process/process_handle_posix\.cc$'],
-              ['include', '^process/process_metrics\\.cc$'],
-              ['exclude', '^threading/platform_thread_internal_posix\\.(h|cc)'],
-              ['exclude', 'files/file_path_watcher_fsevents.cc'],
-              ['exclude', 'files/file_path_watcher_fsevents.h'],
-              ['include', 'files/file_path_watcher_mac.cc'],
-            ],
-            'sources': [
-              'process/memory_stubs.cc',
-            ],
-            'sources!': [
-              'message_loop/message_pump_libevent.cc'
-            ],
-          }],
-          ['OS == "ios" and _toolset == "host"', {
-            'sources/': [
-              # Copied filename_rules to switch from iOS to Mac inclusions.
-              ['include', '_(cocoa|mac)(_unittest)?\\.(h|cc|mm?)$'],
-              ['include', '(^|/)(cocoa|mac)/'],
-              ['exclude', '_ios(_unittest)?\\.(h|cc|mm?)$'],
-              ['exclude', '(^|/)ios/'],
-              ['exclude', 'files/file_path_watcher_fsevents.cc'],
-              ['exclude', 'files/file_path_watcher_fsevents.h'],
-              ['include', 'files/file_path_watcher_mac.cc'],
-            ]
-          }],
-          # For now, just test the *BSD platforms enough to exclude them.
-          # Subsequent changes will include them further.
-          ['OS != "freebsd" or >(nacl_untrusted_build)==1', {
-              'sources/': [ ['exclude', '_freebsd\\.cc$'] ],
-            },
-          ],
-          ['OS != "openbsd" or >(nacl_untrusted_build)==1', {
-              'sources/': [ ['exclude', '_openbsd\\.cc$'] ],
-            },
-          ],
-          ['OS == "win" and >(nacl_untrusted_build)==0', {
-            'include_dirs': [
-              '<(DEPTH)/third_party/wtl/include',
-            ],
-            'sources!': [
-              'files/file_path_watcher_fsevents.cc',
-              'files/file_path_watcher_fsevents.h',
-              'files/file_path_watcher_kqueue.cc',
-              'files/file_path_watcher_kqueue.h',
-              'files/file_path_watcher_stub.cc',
-              'message_loop/message_pump_libevent.cc',
-              'posix/file_descriptor_shuffle.cc',
-              # Not using sha1_win.cc because it may have caused a
-              # regression to page cycler moz.
-              'sha1_win.cc',
-              'strings/string16.cc',
-            ],
-          },],
-          ['<(use_ozone) == 1', {
-            'sources!': [
-              'message_loop/message_pump_glib.cc',
-            ]
-          }],
-          ['OS == "linux" and >(nacl_untrusted_build)==0', {
-            'sources!': [
-              'files/file_path_watcher_fsevents.cc',
-              'files/file_path_watcher_fsevents.h',
-              'files/file_path_watcher_kqueue.cc',
-              'files/file_path_watcher_kqueue.h',
-              'files/file_path_watcher_stub.cc',
-            ],
-          }],
-          ['(OS == "mac" or OS == "ios") and >(nacl_untrusted_build)==0', {
-            'sources/': [
-              ['exclude', '^base_paths_posix\\.cc$'],
-              ['exclude', '^files/file_path_watcher_stub\\.cc$'],
-              ['exclude', '^native_library_posix\\.cc$'],
-              ['exclude', '^strings/sys_string_conversions_posix\\.cc$'],
-              ['exclude', '^threading/platform_thread_internal_posix\\.cc$'],
-            ],
-          }],
-          ['<(os_bsd)==1 and >(nacl_untrusted_build)==0', {
-            'sources': [
-              'process/memory_stubs.cc',
-            ],
-            'sources/': [
-              ['exclude', '^files/file_path_watcher_linux\\.cc$'],
-              ['exclude', '^files/file_path_watcher_stub\\.cc$'],
-              ['exclude', '^files/file_util_linux\\.cc$'],
-              ['exclude', '^process/process_linux\\.cc$'],
-              ['exclude', '^sys_info_linux\\.cc$'],
-            ],
-          }],
-          # Remove all unnecessary files for build_nexe.py to avoid exceeding
-          # command-line-string limitation when building NaCl on Windows.
-          ['OS == "win" and >(nacl_untrusted_build)==1', {
-              'sources/': [ ['exclude', '\\.h$'] ],
-          }],
-          # Enable more direct string conversions on platforms with native utf8
-          # strings
-          ['OS=="mac" or OS=="ios" or <(chromeos)==1 or <(chromecast)==1', {
-            'defines': ['SYSTEM_NATIVE_UTF8'],
-          }],
-        ],
-      }],
-      ['base_i18n_target==1', {
-        'defines': [
-          'BASE_I18N_IMPLEMENTATION',
-        ],
-        'sources': [
-          'i18n/base_i18n_export.h',
-          'i18n/bidi_line_iterator.cc',
-          'i18n/bidi_line_iterator.h',
-          'i18n/break_iterator.cc',
-          'i18n/break_iterator.h',
-          'i18n/case_conversion.cc',
-          'i18n/case_conversion.h',
-          'i18n/char_iterator.cc',
-          'i18n/char_iterator.h',
-          'i18n/file_util_icu.cc',
-          'i18n/file_util_icu.h',
-          'i18n/i18n_constants.cc',
-          'i18n/i18n_constants.h',
-          'i18n/icu_encoding_detection.cc',
-          'i18n/icu_encoding_detection.h',
-          'i18n/icu_string_conversions.cc',
-          'i18n/icu_string_conversions.h',
-          'i18n/icu_util.cc',
-          'i18n/icu_util.h',
-          'i18n/number_formatting.cc',
-          'i18n/number_formatting.h',
-          'i18n/rtl.cc',
-          'i18n/rtl.h',
-          'i18n/streaming_utf8_validator.cc',
-          'i18n/streaming_utf8_validator.h',
-          'i18n/string_compare.cc',
-          'i18n/string_compare.h',
-          'i18n/string_search.cc',
-          'i18n/string_search.h',
-          'i18n/time_formatting.cc',
-          'i18n/time_formatting.h',
-          'i18n/timezone.cc',
-          'i18n/timezone.h',
-          'i18n/utf8_validator_tables.cc',
-          'i18n/utf8_validator_tables.h',
-        ],
-      }]
-    ],
-  },
-}
diff --git a/base/base_nacl.gyp b/base/base_nacl.gyp
deleted file mode 100644
index 7e7d34f..0000000
--- a/base/base_nacl.gyp
+++ /dev/null
@@ -1,143 +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.
-
-{
-  'variables': {
-    'chromium_code': 1,
-  },
-  'includes': [
-    # base.gypi must be included before common_untrusted.gypi.
-    #
-    # TODO(sergeyu): Replace the target_defaults magic in base.gypi with a
-    # sources variables lists. That way order of includes will not matter.
-    'base.gypi',
-    '../build/common_untrusted.gypi',
-  ],
-  'conditions': [
-    ['disable_nacl==0 and disable_nacl_untrusted==0', {
-      'targets': [
-        {
-          'target_name': 'base_nacl',
-          'type': 'none',
-          'variables': {
-            'base_target': 1,
-            'nacl_untrusted_build': 1,
-            'nlib_target': 'libbase_nacl.a',
-            'build_glibc': 0,
-            'build_newlib': 0,
-            'build_irt': 1,
-            'build_pnacl_newlib': 1,
-            'sources': [
-              'base_switches.cc',
-              'base_switches.h',
-              'strings/string16.cc',
-              'sync_socket_nacl.cc',
-              'time/time_posix.cc',
-            ],
-            'gcc_compile_flags': [
-              '-fno-strict-aliasing',
-            ],
-          },
-        },
-        {
-          'target_name': 'base_i18n_nacl',
-          'type': 'none',
-          'variables': {
-            'base_i18n_target': 1,
-            'nacl_untrusted_build': 1,
-            'nlib_target': 'libbase_i18n_nacl.a',
-            'build_glibc': 0,
-            'build_newlib': 0,
-            'build_irt': 0,
-            'build_pnacl_newlib': 1,
-            'sources': [
-              'base_switches.cc',
-              'base_switches.h',
-              'strings/string16.cc',
-              'sync_socket_nacl.cc',
-              'time/time_posix.cc',
-            ],
-          },
-          'dependencies': [
-            '../third_party/icu/icu_nacl.gyp:icudata_nacl',
-            '../third_party/icu/icu_nacl.gyp:icui18n_nacl',
-            '../third_party/icu/icu_nacl.gyp:icuuc_nacl',
-          ],
-        },
-        {
-          'target_name': 'base_nacl_nonsfi',
-          'type': 'none',
-          'variables': {
-            'base_target': 1,
-            'nacl_untrusted_build': 1,
-            'nlib_target': 'libbase_nacl_nonsfi.a',
-            'build_glibc': 0,
-            'build_newlib': 0,
-            'build_irt': 0,
-            'build_pnacl_newlib': 0,
-            'build_nonsfi_helper': 1,
-
-            'sources': [
-              'base_switches.cc',
-              'base_switches.h',
-
-              # For PathExists and ReadFromFD.
-              'files/file_util.cc',
-              'files/file_util_posix.cc',
-
-              # For MessageLoopForIO based on libevent.
-              'message_loop/message_pump_libevent.cc',
-              'message_loop/message_pump_libevent.h',
-
-              # For UnixDomainSocket::SendMsg and RecvMsg.
-              'posix/unix_domain_socket_linux.cc',
-
-              # For GetKnownDeadTerminationStatus and GetTerminationStatus.
-              'process/kill_posix.cc',
-
-              # Unlike libbase_nacl, for Non-SFI build, we need to use
-              # rand_util_posix for random implementation, instead of
-              # rand_util_nacl.cc, which is based on IRT. rand_util_nacl.cc is
-              # excluded below.
-              'rand_util_posix.cc',
-
-              # For CancelableSyncSocket.
-              'sync_socket_nacl.cc',
-            ],
-          },
-          'sources!': [
-            'rand_util_nacl.cc',
-          ],
-          'dependencies': [
-            '../third_party/libevent/libevent_nacl_nonsfi.gyp:event_nacl_nonsfi',
-          ],
-        },
-        {
-          'target_name': 'test_support_base_nacl_nonsfi',
-          'type': 'none',
-          'variables': {
-            'nacl_untrusted_build': 1,
-            'nlib_target': 'libtest_support_base_nacl_nonsfi.a',
-            'build_glibc': 0,
-            'build_newlib': 0,
-            'build_irt': 0,
-            'build_pnacl_newlib': 0,
-            'build_nonsfi_helper': 1,
-
-            'sources': [
-              'test/gtest_util.cc',
-              'test/launcher/unit_test_launcher_nacl_nonsfi.cc',
-              'test/gtest_xml_unittest_result_printer.cc',
-              'test/test_switches.cc',
-            ],
-          },
-          'dependencies': [
-            'base_nacl_nonsfi',
-            '../testing/gtest_nacl.gyp:gtest_nacl',
-          ],
-        },
-      ],
-    }],
-  ],
-}
diff --git a/base/third_party/dynamic_annotations/dynamic_annotations.gyp b/base/third_party/dynamic_annotations/dynamic_annotations.gyp
deleted file mode 100644
index 8d2e9ec..0000000
--- a/base/third_party/dynamic_annotations/dynamic_annotations.gyp
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-{
-  'targets': [
-    {
-      'target_name': 'dynamic_annotations',
-      'type': 'static_library',
-      'toolsets': ['host', 'target'],
-      'include_dirs': [
-        '../../../',
-      ],
-      'sources': [
-        '../valgrind/valgrind.h',
-        'dynamic_annotations.c',
-        'dynamic_annotations.h',
-      ],
-      'includes': [
-        '../../../build/android/increase_size_for_speed.gypi',
-      ],
-    },
-  ],
-  'conditions': [
-    ['OS == "win" and target_arch=="ia32"', {
-      'targets': [
-        {
-          'target_name': 'dynamic_annotations_win64',
-          'type': 'static_library',
-          # We can't use dynamic_annotations target for win64 build since it is
-          # a 32-bit library.
-          # TODO(gregoryd): merge with dynamic_annotations when
-          # the win32/64 targets are merged.
-          'include_dirs': [
-              '../../../',
-          ],
-          'sources': [
-            'dynamic_annotations.c',
-            'dynamic_annotations.h',
-          ],
-          'configurations': {
-            'Common_Base': {
-              'msvs_target_platform': 'x64',
-            },
-          },
-        },
-      ],
-    }],
-  ],
-}
diff --git a/base/trace_event/etw_manifest/etw_manifest.gyp b/base/trace_event/etw_manifest/etw_manifest.gyp
deleted file mode 100644
index b2f0eb8..0000000
--- a/base/trace_event/etw_manifest/etw_manifest.gyp
+++ /dev/null
@@ -1,41 +0,0 @@
-# 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.
-{
-  'targets': [
-    {
-      # GN version: //base/trace_event/etw_manifest/BUILD.gn
-      'target_name': 'etw_manifest',
-      'type': 'none',
-      'toolsets': ['host', 'target'],
-      'hard_dependency': 1,
-      'conditions': [
-        ['OS=="win"', {
-          'sources': [
-            'chrome_events_win.man',
-          ],
-          'variables': {
-            'man_output_dir': '<(SHARED_INTERMEDIATE_DIR)/base/trace_event/etw_manifest',
-          },
-          'rules': [{
-            # Rule to run the message compiler.
-            'rule_name': 'message_compiler',
-            'extension': 'man',
-            'outputs': [
-              '<(man_output_dir)/chrome_events_win.h',
-              '<(man_output_dir)/chrome_events_win.rc',
-            ],
-            'action': [
-              'mc.exe',
-              '-h', '<(man_output_dir)',
-              '-r', '<(man_output_dir)/.',
-              '-um',
-              '<(RULE_INPUT_PATH)',
-            ],
-            'message': 'Running message compiler on <(RULE_INPUT_PATH)',
-          }],
-        }],
-      ],
-    }
-  ]
-}
diff --git a/base/trace_event/trace_event.gypi b/base/trace_event/trace_event.gypi
deleted file mode 100644
index b595004..0000000
--- a/base/trace_event/trace_event.gypi
+++ /dev/null
@@ -1,76 +0,0 @@
-# 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.
-{
-  'variables': {
-    'trace_event_sources' : [
-      'trace_event/java_heap_dump_provider_android.cc',
-      'trace_event/java_heap_dump_provider_android.h',
-      'trace_event/memory_allocator_dump.cc',
-      'trace_event/memory_allocator_dump.h',
-      'trace_event/memory_allocator_dump_guid.cc',
-      'trace_event/memory_allocator_dump_guid.h',
-      'trace_event/memory_dump_manager.cc',
-      'trace_event/memory_dump_manager.h',
-      'trace_event/memory_dump_provider.h',
-      'trace_event/memory_dump_request_args.h',
-      'trace_event/memory_dump_session_state.cc',
-      'trace_event/memory_dump_session_state.h',
-      'trace_event/process_memory_dump.cc',
-      'trace_event/process_memory_dump.h',
-      'trace_event/process_memory_maps.cc',
-      'trace_event/process_memory_maps.h',
-      'trace_event/process_memory_maps_dump_provider.cc',
-      'trace_event/process_memory_maps_dump_provider.h',
-      'trace_event/process_memory_totals.cc',
-      'trace_event/process_memory_totals.h',
-      'trace_event/process_memory_totals_dump_provider.cc',
-      'trace_event/process_memory_totals_dump_provider.h',
-      'trace_event/trace_config.cc',
-      'trace_event/trace_config.h',
-      'trace_event/trace_event.h',
-      'trace_event/trace_event_android.cc',
-      'trace_event/trace_event_argument.cc',
-      'trace_event/trace_event_argument.h',
-      'trace_event/trace_event_etw_export_win.cc',
-      'trace_event/trace_event_etw_export_win.h',
-      'trace_event/trace_event_impl.cc',
-      'trace_event/trace_event_impl.h',
-      'trace_event/trace_event_impl_constants.cc',
-      'trace_event/trace_event_memory.cc',
-      'trace_event/trace_event_memory.h',
-      'trace_event/trace_event_synthetic_delay.cc',
-      'trace_event/trace_event_synthetic_delay.h',
-      'trace_event/trace_event_system_stats_monitor.cc',
-      'trace_event/trace_event_system_stats_monitor.h',
-      'trace_event/trace_event_win.cc',
-      'trace_event/trace_event_win.h',
-      'trace_event/winheap_dump_provider_win.cc',
-      'trace_event/winheap_dump_provider_win.h',
-    ],
-    'conditions': [
-      ['OS == "linux" or OS == "android"', {
-          'trace_event_sources': [
-            'trace_event/malloc_dump_provider.cc',
-            'trace_event/malloc_dump_provider.h',
-          ],
-      }],
-    ],
-    'trace_event_test_sources' : [
-      'trace_event/java_heap_dump_provider_android_unittest.cc',
-      'trace_event/memory_allocator_dump_unittest.cc',
-      'trace_event/memory_dump_manager_unittest.cc',
-      'trace_event/process_memory_dump_unittest.cc',
-      'trace_event/process_memory_maps_dump_provider_unittest.cc',
-      'trace_event/process_memory_totals_dump_provider_unittest.cc',
-      'trace_event/trace_config_unittest.cc',
-      'trace_event/trace_event_argument_unittest.cc',
-      'trace_event/trace_event_memory_unittest.cc',
-      'trace_event/trace_event_synthetic_delay_unittest.cc',
-      'trace_event/trace_event_system_stats_monitor_unittest.cc',
-      'trace_event/trace_event_unittest.cc',
-      'trace_event/trace_event_win_unittest.cc',
-      'trace_event/winheap_dump_provider_win_unittest.cc',
-    ],
-  },
-}
diff --git a/build/all.gyp b/build/all.gyp
deleted file mode 100644
index 6b8ad83..0000000
--- a/build/all.gyp
+++ /dev/null
@@ -1,1409 +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.
-
-{
-  'variables': {
-    # A hook that can be overridden in other repositories to add additional
-    # compilation targets to 'All'.
-    'app_targets%': [],
-    # For Android-specific targets.
-    'android_app_targets%': [],
-  },
-  'targets': [
-    {
-      'target_name': 'All',
-      'type': 'none',
-      'xcode_create_dependents_test_runner': 1,
-      'dependencies': [
-        '<@(app_targets)',
-        'some.gyp:*',
-        '../base/base.gyp:*',
-        '../components/components.gyp:*',
-        '../components/components_tests.gyp:*',
-        '../content/content.gyp:*',
-        '../crypto/crypto.gyp:*',
-        '../net/net.gyp:*',
-        '../sdch/sdch.gyp:*',
-        '../sql/sql.gyp:*',
-        '../testing/gmock.gyp:*',
-        '../testing/gtest.gyp:*',
-        '../third_party/icu/icu.gyp:*',
-        '../third_party/libxml/libxml.gyp:*',
-        '../third_party/sqlite/sqlite.gyp:*',
-        '../third_party/zlib/zlib.gyp:*',
-        '../ui/accessibility/accessibility.gyp:*',
-        '../ui/base/ui_base.gyp:*',
-        '../ui/display/display.gyp:display_unittests',
-        '../ui/snapshot/snapshot.gyp:*',
-        '../url/url.gyp:*',
-      ],
-      'conditions': [
-        ['OS!="ios" and OS!="mac"', {
-          'dependencies': [
-            '../ui/touch_selection/ui_touch_selection.gyp:*',
-          ],
-        }],
-        ['OS=="ios"', {
-          'dependencies': [
-            '../chrome/chrome.gyp:browser',
-            '../chrome/chrome.gyp:browser_ui',
-            '../ios/ios.gyp:*',
-            # NOTE: This list of targets is present because
-            # mojo_base.gyp:mojo_base cannot be built on iOS, as
-            # javascript-related targets cause v8 to be built.
-            '../mojo/mojo_base.gyp:mojo_common_lib',
-            '../mojo/mojo_base.gyp:mojo_common_unittests',
-            '../google_apis/google_apis.gyp:google_apis_unittests',
-            '../skia/skia_tests.gyp:skia_unittests',
-            '../third_party/mojo/mojo_edk.gyp:mojo_system_impl',
-            '../third_party/mojo/mojo_edk_tests.gyp:mojo_public_bindings_unittests',
-            '../third_party/mojo/mojo_edk_tests.gyp:mojo_public_environment_unittests',
-            '../third_party/mojo/mojo_edk_tests.gyp:mojo_public_system_unittests',
-            '../third_party/mojo/mojo_edk_tests.gyp:mojo_public_utility_unittests',
-            '../third_party/mojo/mojo_edk_tests.gyp:mojo_system_unittests',
-            '../third_party/mojo/mojo_public.gyp:mojo_cpp_bindings',
-            '../third_party/mojo/mojo_public.gyp:mojo_public_test_utils',
-            '../third_party/mojo/mojo_public.gyp:mojo_system',
-            '../ui/base/ui_base_tests.gyp:ui_base_unittests',
-            '../ui/gfx/gfx_tests.gyp:gfx_unittests',
-          ],
-        }],
-        ['OS=="android"', {
-          'dependencies': [
-            '../content/content_shell_and_tests.gyp:content_shell_apk',
-            '<@(android_app_targets)',
-            'android_builder_tests',
-            '../tools/telemetry/telemetry.gyp:*#host',
-            # TODO(nyquist) This should instead by a target for sync when all of
-            # the sync-related code for Android has been upstreamed.
-            # See http://crbug.com/159203
-            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_javalib',
-          ],
-          'conditions': [
-            ['chromecast==0', {
-              'dependencies': [
-                '../android_webview/android_webview.gyp:android_webview_apk',
-                '../android_webview/android_webview.gyp:system_webview_apk',
-                '../android_webview/android_webview_shell.gyp:android_webview_shell_apk',
-                '../android_webview/android_webview_telemetry_shell.gyp:android_webview_telemetry_shell_apk',
-                '../chrome/android/chrome_apk.gyp:chrome_public_apk',
-                '../chrome/chrome.gyp:chrome_shell_apk',
-                '../chrome/chrome.gyp:chrome_sync_shell_apk',
-                '../remoting/remoting.gyp:remoting_apk',
-              ],
-            }],
-            ['target_arch == "arm" or target_arch == "arm64"', {
-              'dependencies': [
-                # The relocation packer is currently used only for ARM or ARM64.
-                '../third_party/android_platform/relocation_packer.gyp:android_relocation_packer_unittests#host',
-              ],
-            }],
-          ],
-        }, {
-          'dependencies': [
-            '../content/content_shell_and_tests.gyp:*',
-            # TODO: This should build on Android and the target should move to the list above.
-            '../sync/sync.gyp:*',
-          ],
-        }],
-        ['OS!="ios" and OS!="android" and chromecast==0', {
-          'dependencies': [
-            '../third_party/re2/re2.gyp:re2',
-            '../chrome/chrome.gyp:*',
-            '../chrome/tools/profile_reset/jtl_compiler.gyp:*',
-            '../cc/blink/cc_blink_tests.gyp:*',
-            '../cc/cc_tests.gyp:*',
-            '../device/usb/usb.gyp:*',
-            '../extensions/extensions.gyp:*',
-            '../extensions/extensions_tests.gyp:*',
-            '../gin/gin.gyp:*',
-            '../gpu/gpu.gyp:*',
-            '../gpu/tools/tools.gyp:*',
-            '../ipc/ipc.gyp:*',
-            '../ipc/mojo/ipc_mojo.gyp:*',
-            '../jingle/jingle.gyp:*',
-            '../media/cast/cast.gyp:*',
-            '../media/media.gyp:*',
-            '../media/midi/midi.gyp:*',
-            '../mojo/mojo.gyp:*',
-            '../mojo/mojo_base.gyp:*',
-            '../ppapi/ppapi.gyp:*',
-            '../ppapi/ppapi_internal.gyp:*',
-            '../ppapi/tools/ppapi_tools.gyp:*',
-            '../printing/printing.gyp:*',
-            '../skia/skia.gyp:*',
-            '../sync/tools/sync_tools.gyp:*',
-            '../third_party/WebKit/public/all.gyp:*',
-            '../third_party/cacheinvalidation/cacheinvalidation.gyp:*',
-            '../third_party/codesighs/codesighs.gyp:*',
-            '../third_party/ffmpeg/ffmpeg.gyp:*',
-            '../third_party/iccjpeg/iccjpeg.gyp:*',
-            '../third_party/libpng/libpng.gyp:*',
-            '../third_party/libusb/libusb.gyp:*',
-            '../third_party/libwebp/libwebp.gyp:*',
-            '../third_party/libxslt/libxslt.gyp:*',
-            '../third_party/lzma_sdk/lzma_sdk.gyp:*',
-            '../third_party/mesa/mesa.gyp:*',
-            '../third_party/modp_b64/modp_b64.gyp:*',
-            '../third_party/npapi/npapi.gyp:*',
-            '../third_party/ots/ots.gyp:*',
-            '../third_party/pdfium/samples/samples.gyp:*',
-            '../third_party/qcms/qcms.gyp:*',
-            '../tools/gn/gn.gyp:*',
-            '../tools/perf/clear_system_cache/clear_system_cache.gyp:*',
-            '../tools/telemetry/telemetry.gyp:*',
-            '../v8/tools/gyp/v8.gyp:*',
-            '<(libjpeg_gyp_path):*',
-          ],
-        }],
-        ['OS!="ios"', {
-          'dependencies': [
-            '../device/bluetooth/bluetooth.gyp:*',
-            '../device/device_tests.gyp:*',
-          ],
-        }],
-        ['use_openssl==0 and (OS=="mac" or OS=="ios" or OS=="win")', {
-          'dependencies': [
-            '../third_party/nss/nss.gyp:*',
-           ],
-        }],
-        ['OS=="win" or OS=="ios" or OS=="linux"', {
-          'dependencies': [
-            '../breakpad/breakpad.gyp:*',
-           ],
-        }],
-        ['OS=="mac"', {
-          'dependencies': [
-            '../sandbox/sandbox.gyp:*',
-            '../third_party/crashpad/crashpad/crashpad.gyp:*',
-            '../third_party/ocmock/ocmock.gyp:*',
-          ],
-        }],
-        ['OS=="linux"', {
-          'dependencies': [
-            '../courgette/courgette.gyp:*',
-            '../sandbox/sandbox.gyp:*',
-          ],
-          'conditions': [
-            ['branding=="Chrome"', {
-              'dependencies': [
-                '../chrome/chrome.gyp:linux_packages_<(channel)',
-              ],
-            }],
-            ['enable_ipc_fuzzer==1', {
-              'dependencies': [
-                '../tools/ipc_fuzzer/ipc_fuzzer.gyp:*',
-              ],
-            }],
-            ['use_dbus==1', {
-              'dependencies': [
-                '../dbus/dbus.gyp:*',
-              ],
-            }],
-          ],
-        }],
-        ['chromecast==1', {
-          'dependencies': [
-            '../chromecast/chromecast.gyp:*',
-          ],
-        }],
-        ['use_x11==1', {
-          'dependencies': [
-            '../tools/xdisplaycheck/xdisplaycheck.gyp:*',
-          ],
-        }],
-        ['OS=="win"', {
-          'conditions': [
-            ['win_use_allocator_shim==1', {
-              'dependencies': [
-                '../base/allocator/allocator.gyp:*',
-              ],
-            }],
-          ],
-          'dependencies': [
-            '../chrome/tools/crash_service/caps/caps.gyp:*',
-            '../chrome_elf/chrome_elf.gyp:*',
-            '../cloud_print/cloud_print.gyp:*',
-            '../courgette/courgette.gyp:*',
-            '../rlz/rlz.gyp:*',
-            '../sandbox/sandbox.gyp:*',
-            '<(angle_path)/src/angle.gyp:*',
-            '../third_party/bspatch/bspatch.gyp:*',
-            '../tools/win/static_initializers/static_initializers.gyp:*',
-          ],
-        }, {
-          'dependencies': [
-            '../third_party/libevent/libevent.gyp:*',
-          ],
-        }],
-        ['toolkit_views==1', {
-          'dependencies': [
-            '../ui/views/controls/webview/webview.gyp:*',
-            '../ui/views/views.gyp:*',
-          ],
-        }],
-        ['use_aura==1', {
-          'dependencies': [
-            '../ui/aura/aura.gyp:*',
-            '../ui/aura_extra/aura_extra.gyp:*',
-          ],
-        }],
-        ['use_ash==1', {
-          'dependencies': [
-            '../ash/ash.gyp:*',
-          ],
-        }],
-        ['remoting==1', {
-          'dependencies': [
-            '../remoting/remoting_all.gyp:remoting_all',
-          ],
-        }],
-        ['use_openssl==0', {
-          'dependencies': [
-            '../net/third_party/nss/ssl.gyp:*',
-          ],
-        }],
-        ['use_openssl==1', {
-          'dependencies': [
-            '../third_party/boringssl/boringssl.gyp:*',
-            '../third_party/boringssl/boringssl_tests.gyp:*',
-          ],
-        }],
-        ['enable_app_list==1', {
-          'dependencies': [
-            '../ui/app_list/app_list.gyp:*',
-          ],
-        }],
-        ['OS!="android" and OS!="ios"', {
-          'dependencies': [
-            '../google_apis/gcm/gcm.gyp:*',
-          ],
-        }],
-        ['(chromeos==1 or OS=="linux" or OS=="win" or OS=="mac") and chromecast==0', {
-          'dependencies': [
-            '../extensions/shell/app_shell.gyp:*',
-          ],
-        }],
-        ['envoy==1', {
-          'dependencies': [
-            '../envoy/envoy.gyp:*',
-          ],
-        }],
-      ],
-    }, # target_name: All
-    {
-      'target_name': 'All_syzygy',
-      'type': 'none',
-      'conditions': [
-        ['OS=="win" and fastbuild==0 and target_arch=="ia32" and '
-            '(syzyasan==1 or syzygy_optimize==1)', {
-          'dependencies': [
-            '../chrome/installer/mini_installer_syzygy.gyp:*',
-          ],
-        }],
-      ],
-    }, # target_name: All_syzygy
-    {
-      # Note: Android uses android_builder_tests below.
-      # TODO: Consider merging that with this target.
-      'target_name': 'chromium_builder_tests',
-      'type': 'none',
-      'dependencies': [
-        '../base/base.gyp:base_unittests',
-        '../components/components_tests.gyp:components_unittests',
-        '../crypto/crypto.gyp:crypto_unittests',
-        '../net/net.gyp:net_unittests',
-        '../skia/skia_tests.gyp:skia_unittests',
-        '../sql/sql.gyp:sql_unittests',
-        '../sync/sync.gyp:sync_unit_tests',
-        '../ui/base/ui_base_tests.gyp:ui_base_unittests',
-        '../ui/display/display.gyp:display_unittests',
-        '../ui/gfx/gfx_tests.gyp:gfx_unittests',
-        '../url/url.gyp:url_unittests',
-      ],
-      'conditions': [
-        ['OS!="ios"', {
-          'dependencies': [
-            '../ui/gl/gl_tests.gyp:gl_unittests',
-          ],
-        }],
-        ['OS!="ios" and OS!="mac"', {
-          'dependencies': [
-            '../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection_unittests',
-          ],
-        }],
-        ['OS!="ios" and OS!="android"', {
-          'dependencies': [
-            '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests',
-            '../cc/cc_tests.gyp:cc_unittests',
-            '../cloud_print/cloud_print.gyp:cloud_print_unittests',
-            '../content/content_shell_and_tests.gyp:content_browsertests',
-            '../content/content_shell_and_tests.gyp:content_shell',
-            '../content/content_shell_and_tests.gyp:content_unittests',
-            '../device/device_tests.gyp:device_unittests',
-            '../gin/gin.gyp:gin_unittests',
-            '../google_apis/google_apis.gyp:google_apis_unittests',
-            '../gpu/gles2_conform_support/gles2_conform_support.gyp:gles2_conform_support',
-            '../gpu/gpu.gyp:gpu_unittests',
-            '../ipc/ipc.gyp:ipc_tests',
-            '../ipc/mojo/ipc_mojo.gyp:ipc_mojo_unittests',
-            '../jingle/jingle.gyp:jingle_unittests',
-            '../media/cast/cast.gyp:cast_unittests',
-            '../media/media.gyp:media_unittests',
-            '../media/midi/midi.gyp:midi_unittests',
-            '../mojo/mojo.gyp:mojo',
-            '../ppapi/ppapi_internal.gyp:ppapi_unittests',
-            '../remoting/remoting.gyp:remoting_unittests',
-            '../third_party/WebKit/public/all.gyp:all_blink',
-            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
-            '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
-            '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
-            '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
-            '../tools/telemetry/telemetry.gyp:*',
-          ],
-        }],
-        ['OS!="ios" and OS!="android" and chromecast==0', {
-          'dependencies': [
-            '../chrome/chrome.gyp:browser_tests',
-            '../chrome/chrome.gyp:chromedriver_tests',
-            '../chrome/chrome.gyp:chromedriver_unittests',
-            '../chrome/chrome.gyp:interactive_ui_tests',
-            '../chrome/chrome.gyp:sync_integration_tests',
-            '../chrome/chrome.gyp:unit_tests',
-            '../extensions/extensions_tests.gyp:extensions_browsertests',
-            '../extensions/extensions_tests.gyp:extensions_unittests',
-          ],
-        }],
-        ['OS=="win"', {
-          'dependencies': [
-            '../chrome/chrome.gyp:crash_service',
-            '../chrome/chrome.gyp:installer_util_unittests',
-            # ../chrome/test/mini_installer requires mini_installer.
-            '../chrome/installer/mini_installer.gyp:mini_installer',
-            '../chrome_elf/chrome_elf.gyp:chrome_elf_unittests',
-            '../content/content_shell_and_tests.gyp:copy_test_netscape_plugin',
-            '../courgette/courgette.gyp:courgette_unittests',
-            '../sandbox/sandbox.gyp:sbox_integration_tests',
-            '../sandbox/sandbox.gyp:sbox_unittests',
-            '../sandbox/sandbox.gyp:sbox_validation_tests',
-            '../ui/app_list/app_list.gyp:app_list_unittests',
-          ],
-          'conditions': [
-            # remoting_host_installation uses lots of non-trivial GYP that tend
-            # to break because of differences between ninja and msbuild. Make
-            # sure this target is built by the builders on the main waterfall.
-            # See http://crbug.com/180600.
-            ['wix_exists == "True" and sas_dll_exists == "True"', {
-              'dependencies': [
-                '../remoting/remoting.gyp:remoting_host_installation',
-              ],
-            }],
-            ['syzyasan==1', {
-              'variables': {
-                # Disable incremental linking for all modules.
-                # 0: inherit, 1: disabled, 2: enabled.
-                'msvs_debug_link_incremental': '1',
-                'msvs_large_module_debug_link_mode': '1',
-                # Disable RTC. Syzygy explicitly doesn't support RTC
-                # instrumented binaries for now.
-                'win_debug_RuntimeChecks': '0',
-              },
-              'defines': [
-                # Disable iterator debugging (huge speed boost).
-                '_HAS_ITERATOR_DEBUGGING=0',
-              ],
-              'msvs_settings': {
-                'VCLinkerTool': {
-                  # Enable profile information (necessary for SyzyAsan
-                  # instrumentation). This is incompatible with incremental
-                  # linking.
-                  'Profile': 'true',
-                },
-              }
-            }],
-          ],
-        }],
-        ['chromeos==1', {
-          'dependencies': [
-            '../ui/chromeos/ui_chromeos.gyp:ui_chromeos_unittests',
-          ],
-        }],
-        ['OS=="linux"', {
-          'dependencies': [
-            '../sandbox/sandbox.gyp:sandbox_linux_unittests',
-          ],
-        }],
-        ['OS=="linux" and use_dbus==1', {
-          'dependencies': [
-            '../dbus/dbus.gyp:dbus_unittests',
-          ],
-        }],
-        ['OS=="mac"', {
-          'dependencies': [
-            '../ui/app_list/app_list.gyp:app_list_unittests',
-            '../ui/message_center/message_center.gyp:*',
-          ],
-        }],
-        ['test_isolation_mode != "noop"', {
-          'dependencies': [
-            'chromium_swarm_tests',
-          ],
-        }],
-        ['OS!="android"', {
-          'dependencies': [
-            '../google_apis/gcm/gcm.gyp:gcm_unit_tests',
-          ],
-        }],
-        ['enable_basic_printing==1 or enable_print_preview==1', {
-          'dependencies': [
-            '../printing/printing.gyp:printing_unittests',
-          ],
-        }],
-        ['use_aura==1', {
-          'dependencies': [
-            '../ui/app_list/app_list.gyp:app_list_unittests',
-            '../ui/aura/aura.gyp:aura_unittests',
-            '../ui/compositor/compositor.gyp:compositor_unittests',
-          ],
-        }],
-        ['use_aura==1 and chromecast==0', {
-          'dependencies': [
-            '../ui/keyboard/keyboard.gyp:keyboard_unittests',
-            '../ui/views/views.gyp:views_unittests',
-          ],
-        }],
-        ['use_aura==1 or toolkit_views==1', {
-          'dependencies': [
-            '../ui/events/events.gyp:events_unittests',
-          ],
-        }],
-        ['use_ash==1', {
-          'dependencies': [
-            '../ash/ash.gyp:ash_unittests',
-          ],
-        }],
-        ['disable_nacl==0', {
-          'dependencies': [
-            '../components/nacl.gyp:nacl_loader_unittests',
-          ],
-        }],
-        ['disable_nacl==0 and disable_nacl_untrusted==0 and enable_nacl_nonsfi_test==1', {
-          'dependencies': [
-            '../components/nacl.gyp:nacl_helper_nonsfi_unittests',
-          ],
-        }],
-        ['disable_nacl==0 and disable_nacl_untrusted==0', {
-          'dependencies': [
-            '../mojo/mojo_nacl_untrusted.gyp:libmojo',
-            '../mojo/mojo_nacl.gyp:monacl_codegen',
-            '../mojo/mojo_nacl.gyp:monacl_sel',
-            '../mojo/mojo_nacl.gyp:monacl_shell',
-          ],
-        }],
-      ],
-    }, # target_name: chromium_builder_tests
-  ],
-  'conditions': [
-    # TODO(GYP): make gn_migration.gypi work unconditionally.
-    ['OS=="mac" or OS=="win" or (OS=="linux" and target_arch=="x64" and chromecast==0)', {
-      'includes': [
-        'gn_migration.gypi',
-      ],
-    }],
-    ['OS!="ios"', {
-      'targets': [
-        {
-          'target_name': 'blink_tests',
-          'type': 'none',
-          'dependencies': [
-            '../third_party/WebKit/public/all.gyp:all_blink',
-          ],
-          'conditions': [
-            ['OS=="android"', {
-              'dependencies': [
-                '../content/content_shell_and_tests.gyp:content_shell_apk',
-                '../breakpad/breakpad.gyp:dump_syms#host',
-                '../breakpad/breakpad.gyp:minidump_stackwalk#host',
-              ],
-            }, {  # OS!="android"
-              'dependencies': [
-                '../content/content_shell_and_tests.gyp:content_shell',
-              ],
-            }],
-            ['OS=="win"', {
-              'dependencies': [
-                '../components/test_runner/test_runner.gyp:layout_test_helper',
-                '../content/content_shell_and_tests.gyp:content_shell_crash_service',
-              ],
-            }],
-            ['OS!="win" and OS!="android"', {
-              'dependencies': [
-                '../breakpad/breakpad.gyp:minidump_stackwalk',
-              ],
-            }],
-            ['OS=="mac"', {
-              'dependencies': [
-                '../components/test_runner/test_runner.gyp:layout_test_helper',
-                '../breakpad/breakpad.gyp:dump_syms#host',
-              ],
-            }],
-            ['OS=="linux"', {
-              'dependencies': [
-                '../breakpad/breakpad.gyp:dump_syms#host',
-              ],
-            }],
-          ],
-        }, # target_name: blink_tests
-      ],
-    }], # OS!=ios
-    ['OS!="ios" and OS!="android" and chromecast==0', {
-      'targets': [
-        {
-          'target_name': 'chromium_builder_nacl_win_integration',
-          'type': 'none',
-          'dependencies': [
-            'chromium_builder_tests',
-          ],
-        }, # target_name: chromium_builder_nacl_win_integration
-        {
-          'target_name': 'chromium_builder_perf',
-          'type': 'none',
-          'dependencies': [
-            '../cc/cc_tests.gyp:cc_perftests',
-            '../chrome/chrome.gyp:chrome',
-            '../chrome/chrome.gyp:load_library_perf_tests',
-            '../chrome/chrome.gyp:performance_browser_tests',
-            '../chrome/chrome.gyp:sync_performance_tests',
-            '../content/content_shell_and_tests.gyp:content_shell',
-            '../gpu/gpu.gyp:gpu_perftests',
-            '../media/media.gyp:media_perftests',
-            '../media/midi/midi.gyp:midi_unittests',
-            '../tools/perf/clear_system_cache/clear_system_cache.gyp:*',
-            '../tools/telemetry/telemetry.gyp:*',
-          ],
-          'conditions': [
-            ['OS!="ios" and OS!="win"', {
-              'dependencies': [
-                '../breakpad/breakpad.gyp:minidump_stackwalk',
-              ],
-            }],
-            ['OS=="linux"', {
-              'dependencies': [
-                '../chrome/chrome.gyp:linux_symbols'
-              ],
-            }],
-            ['OS=="win"', {
-              'dependencies': [
-                '../chrome/chrome.gyp:crash_service',
-                '../gpu/gpu.gyp:angle_perftests',
-              ],
-            }],
-            ['OS=="win" and target_arch=="ia32"', {
-              'dependencies': [
-                '../chrome/chrome.gyp:crash_service_win64',
-              ],
-            }],
-          ],
-        }, # target_name: chromium_builder_perf
-        {
-          'target_name': 'chromium_gpu_builder',
-          'type': 'none',
-          'dependencies': [
-            '../chrome/chrome.gyp:chrome',
-            '../chrome/chrome.gyp:performance_browser_tests',
-            '../content/content_shell_and_tests.gyp:content_browsertests',
-            '../content/content_shell_and_tests.gyp:content_gl_tests',
-            '../gpu/gles2_conform_support/gles2_conform_test.gyp:gles2_conform_test',
-            '../gpu/khronos_glcts_support/khronos_glcts_test.gyp:khronos_glcts_test',
-            '../gpu/gpu.gyp:gl_tests',
-            '../gpu/gpu.gyp:angle_unittests',
-            '../gpu/gpu.gyp:gpu_unittests',
-            '../tools/telemetry/telemetry.gyp:*',
-          ],
-          'conditions': [
-            ['OS!="ios" and OS!="win"', {
-              'dependencies': [
-                '../breakpad/breakpad.gyp:minidump_stackwalk',
-              ],
-            }],
-            ['OS=="linux"', {
-              'dependencies': [
-                '../chrome/chrome.gyp:linux_symbols'
-              ],
-            }],
-            ['OS=="win"', {
-              'dependencies': [
-                '../chrome/chrome.gyp:crash_service',
-              ],
-            }],
-            ['OS=="win" and target_arch=="ia32"', {
-              'dependencies': [
-                '../chrome/chrome.gyp:crash_service_win64',
-              ],
-            }],
-          ],
-        }, # target_name: chromium_gpu_builder
-        {
-          'target_name': 'chromium_gpu_debug_builder',
-          'type': 'none',
-          'dependencies': [
-            '../chrome/chrome.gyp:chrome',
-            '../content/content_shell_and_tests.gyp:content_browsertests',
-            '../content/content_shell_and_tests.gyp:content_gl_tests',
-            '../gpu/gles2_conform_support/gles2_conform_test.gyp:gles2_conform_test',
-            '../gpu/khronos_glcts_support/khronos_glcts_test.gyp:khronos_glcts_test',
-            '../gpu/gpu.gyp:gl_tests',
-            '../gpu/gpu.gyp:angle_unittests',
-            '../gpu/gpu.gyp:gpu_unittests',
-            '../tools/telemetry/telemetry.gyp:*',
-          ],
-          'conditions': [
-            ['OS!="ios" and OS!="win"', {
-              'dependencies': [
-                '../breakpad/breakpad.gyp:minidump_stackwalk',
-              ],
-            }],
-            ['OS=="linux"', {
-              'dependencies': [
-                '../chrome/chrome.gyp:linux_symbols'
-              ],
-            }],
-            ['OS=="win"', {
-              'dependencies': [
-                '../chrome/chrome.gyp:crash_service',
-              ],
-            }],
-            ['OS=="win" and target_arch=="ia32"', {
-              'dependencies': [
-                '../chrome/chrome.gyp:crash_service_win64',
-              ],
-            }],
-          ],
-        }, # target_name: chromium_gpu_debug_builder
-        {
-          # This target contains everything we need to run tests on the special
-          # device-equipped WebRTC bots. We have device-requiring tests in
-          # browser_tests and content_browsertests.
-          'target_name': 'chromium_builder_webrtc',
-          'type': 'none',
-          'dependencies': [
-            'chromium_builder_perf',
-            '../chrome/chrome.gyp:browser_tests',
-            '../content/content_shell_and_tests.gyp:content_browsertests',
-            '../content/content_shell_and_tests.gyp:content_unittests',
-            '../media/media.gyp:media_unittests',
-            '../media/midi/midi.gyp:midi_unittests',
-            '../third_party/webrtc/tools/tools.gyp:frame_analyzer',
-            '../third_party/webrtc/tools/tools.gyp:rgba_to_i420_converter',
-          ],
-          'conditions': [
-            ['remoting==1', {
-              'dependencies': [
-                '../remoting/remoting.gyp:*',
-              ],
-            }],
-          ],
-        },  # target_name: chromium_builder_webrtc
-        {
-          'target_name': 'chromium_builder_chromedriver',
-          'type': 'none',
-          'dependencies': [
-            '../chrome/chrome.gyp:chromedriver',
-            '../chrome/chrome.gyp:chromedriver_tests',
-            '../chrome/chrome.gyp:chromedriver_unittests',
-          ],
-        },  # target_name: chromium_builder_chromedriver
-        {
-          'target_name': 'chromium_builder_asan',
-          'type': 'none',
-          'dependencies': [
-            '../chrome/chrome.gyp:chrome',
-
-            # We refer to content_shell directly rather than blink_tests
-            # because we don't want the _unittests binaries.
-            '../content/content_shell_and_tests.gyp:content_shell',
-          ],
-          'conditions': [
-            ['OS!="win"', {
-              'dependencies': [
-                '../net/net.gyp:hpack_fuzz_wrapper',
-                '../net/net.gyp:dns_fuzz_stub',
-                '../skia/skia.gyp:filter_fuzz_stub',
-              ],
-            }],
-            ['enable_ipc_fuzzer==1 and component!="shared_library" and '
-                 '(OS=="linux" or OS=="win")', {
-              'dependencies': [
-                '../tools/ipc_fuzzer/ipc_fuzzer.gyp:*',
-              ],
-            }],
-            ['chromeos==0', {
-              'dependencies': [
-                '../v8/src/d8.gyp:d8#host',
-                '../third_party/pdfium/samples/samples.gyp:pdfium_test',
-              ],
-            }],
-            ['internal_filter_fuzzer==1', {
-              'dependencies': [
-                '../skia/tools/clusterfuzz-data/fuzzers/filter_fuzzer/filter_fuzzer.gyp:filter_fuzzer',
-              ],
-            }], # internal_filter_fuzzer
-            ['clang==1', {
-              'dependencies': [
-                'sanitizers/sanitizers.gyp:llvm-symbolizer',
-              ],
-            }],
-            ['OS=="win" and fastbuild==0 and target_arch=="ia32" and syzyasan==1', {
-              'dependencies': [
-                '../chrome/chrome_syzygy.gyp:chrome_dll_syzygy',
-                '../content/content_shell_and_tests.gyp:content_shell_syzyasan',
-              ],
-              'conditions': [
-                ['chrome_multiple_dll==1', {
-                  'dependencies': [
-                    '../chrome/chrome_syzygy.gyp:chrome_child_dll_syzygy',
-                  ],
-                }],
-              ],
-            }],
-          ],
-        },
-        {
-          'target_name': 'chromium_builder_nacl_sdk',
-          'type': 'none',
-          'dependencies': [
-            '../chrome/chrome.gyp:chrome',
-          ],
-          'conditions': [
-            ['OS=="win"', {
-              'dependencies': [
-                '../chrome/chrome.gyp:chrome_nacl_win64',
-              ]
-            }],
-          ],
-        },  #target_name: chromium_builder_nacl_sdk
-      ],  # targets
-    }], #OS!=ios and OS!=android
-    ['OS=="android"', {
-      'targets': [
-        {
-          # The current list of tests for android.  This is temporary
-          # until the full set supported.  If adding a new test here,
-          # please also add it to build/android/pylib/gtest/gtest_config.py,
-          # else the test is not run.
-          #
-          # WARNING:
-          # Do not add targets here without communicating the implications
-          # on tryserver triggers and load.  Discuss with
-          # chrome-infrastructure-team please.
-          'target_name': 'android_builder_tests',
-          'type': 'none',
-          'dependencies': [
-            '../base/android/jni_generator/jni_generator.gyp:jni_generator_tests',
-            '../base/base.gyp:base_unittests',
-            '../breakpad/breakpad.gyp:breakpad_unittests_deps',
-            # Also compile the tools needed to deal with minidumps, they are
-            # needed to run minidump tests upstream.
-            '../breakpad/breakpad.gyp:dump_syms#host',
-            '../breakpad/breakpad.gyp:symupload#host',
-            '../breakpad/breakpad.gyp:minidump_dump#host',
-            '../breakpad/breakpad.gyp:minidump_stackwalk#host',
-            '../build/android/tests/multiple_proguards/multiple_proguards.gyp:multiple_proguards_test_apk',
-            '../build/android/pylib/device/commands/commands.gyp:chromium_commands',
-            '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests',
-            '../cc/cc_tests.gyp:cc_perftests_apk',
-            '../cc/cc_tests.gyp:cc_unittests',
-            '../components/components_tests.gyp:components_unittests',
-            '../content/content_shell_and_tests.gyp:content_browsertests',
-            '../content/content_shell_and_tests.gyp:content_gl_tests',
-            '../content/content_shell_and_tests.gyp:content_junit_tests',
-            '../content/content_shell_and_tests.gyp:chromium_linker_test_apk',
-            '../content/content_shell_and_tests.gyp:content_shell_test_apk',
-            '../content/content_shell_and_tests.gyp:content_unittests',
-            '../gpu/gpu.gyp:gl_tests',
-            '../gpu/gpu.gyp:gpu_perftests_apk',
-            '../gpu/gpu.gyp:gpu_unittests',
-            '../ipc/ipc.gyp:ipc_tests',
-            '../media/media.gyp:media_perftests_apk',
-            '../media/media.gyp:media_unittests',
-            '../media/midi/midi.gyp:midi_unittests_apk',
-            '../media/midi/midi.gyp:midi_unittests',
-            '../net/net.gyp:net_unittests',
-            '../sandbox/sandbox.gyp:sandbox_linux_unittests_deps',
-            '../skia/skia_tests.gyp:skia_unittests',
-            '../sql/sql.gyp:sql_unittests',
-            '../sync/sync.gyp:sync_unit_tests',
-            '../testing/android/junit/junit_test.gyp:junit_unit_tests',
-            '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
-            '../third_party/WebKit/public/all.gyp:*',
-            '../tools/android/android_tools.gyp:android_tools',
-            '../tools/android/android_tools.gyp:memconsumer',
-            '../tools/android/findbugs_plugin/findbugs_plugin.gyp:findbugs_plugin_test',
-            '../ui/android/ui_android.gyp:ui_android_unittests',
-            '../ui/base/ui_base_tests.gyp:ui_base_unittests',
-            '../ui/events/events.gyp:events_unittests',
-            '../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection_unittests',
-            # Unit test bundles packaged as an apk.
-            '../base/base.gyp:base_unittests_apk',
-            '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests_apk',
-            '../cc/cc_tests.gyp:cc_unittests_apk',
-            '../components/components_tests.gyp:components_browsertests_apk',
-            '../components/components_tests.gyp:components_unittests_apk',
-            '../content/content_shell_and_tests.gyp:content_browsertests_apk',
-            '../content/content_shell_and_tests.gyp:content_gl_tests_apk',
-            '../content/content_shell_and_tests.gyp:content_unittests_apk',
-            '../content/content_shell_and_tests.gyp:video_decode_accelerator_unittest_apk',
-            '../gpu/gpu.gyp:gl_tests_apk',
-            '../gpu/gpu.gyp:gpu_unittests_apk',
-            '../ipc/ipc.gyp:ipc_tests_apk',
-            '../media/media.gyp:media_unittests_apk',
-            '../media/midi/midi.gyp:midi_unittests_apk',
-            '../net/net.gyp:net_unittests_apk',
-            '../sandbox/sandbox.gyp:sandbox_linux_jni_unittests_apk',
-            '../skia/skia_tests.gyp:skia_unittests_apk',
-            '../sql/sql.gyp:sql_unittests_apk',
-            '../sync/sync.gyp:sync_unit_tests_apk',
-            '../tools/android/heap_profiler/heap_profiler.gyp:heap_profiler_unittests_apk',
-            '../ui/android/ui_android.gyp:ui_android_unittests_apk',
-            '../ui/base/ui_base_tests.gyp:ui_base_unittests_apk',
-            '../ui/events/events.gyp:events_unittests_apk',
-            '../ui/gfx/gfx_tests.gyp:gfx_unittests_apk',
-            '../ui/gl/gl_tests.gyp:gl_unittests_apk',
-            '../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection_unittests_apk',
-          ],
-          'conditions': [
-            ['chromecast==0', {
-              'dependencies': [
-                '../android_webview/android_webview.gyp:android_webview_unittests',
-                '../chrome/chrome.gyp:unit_tests',
-                # Unit test bundles packaged as an apk.
-                '../android_webview/android_webview.gyp:android_webview_test_apk',
-                '../android_webview/android_webview.gyp:android_webview_unittests_apk',
-                '../chrome/android/chrome_apk.gyp:chrome_public_test_apk',
-                '../chrome/chrome.gyp:chrome_junit_tests',
-                '../chrome/chrome.gyp:chrome_shell_test_apk',
-                '../chrome/chrome.gyp:chrome_sync_shell_test_apk',
-                '../chrome/chrome.gyp:chrome_shell_uiautomator_tests',
-                '../chrome/chrome.gyp:chromedriver_webview_shell_apk',
-                '../chrome/chrome.gyp:unit_tests_apk',
-              ],
-            }],
-          ],
-        },
-        {
-          # WebRTC Chromium tests to run on Android.
-          'target_name': 'android_builder_chromium_webrtc',
-          'type': 'none',
-          'dependencies': [
-            '../build/android/pylib/device/commands/commands.gyp:chromium_commands',
-            '../content/content_shell_and_tests.gyp:content_browsertests',
-            '../tools/android/android_tools.gyp:android_tools',
-            '../tools/android/android_tools.gyp:memconsumer',
-            '../content/content_shell_and_tests.gyp:content_browsertests_apk',
-          ],
-        },  # target_name: android_builder_chromium_webrtc
-      ], # targets
-    }], # OS="android"
-    ['OS=="mac"', {
-      'targets': [
-        {
-          # Target to build everything plus the dmg.  We don't put the dmg
-          # in the All target because developers really don't need it.
-          'target_name': 'all_and_dmg',
-          'type': 'none',
-          'dependencies': [
-            'All',
-            '../chrome/chrome.gyp:build_app_dmg',
-          ],
-        },
-        # These targets are here so the build bots can use them to build
-        # subsets of a full tree for faster cycle times.
-        {
-          'target_name': 'chromium_builder_dbg',
-          'type': 'none',
-          'dependencies': [
-            '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests',
-            '../cc/cc_tests.gyp:cc_unittests',
-            '../chrome/chrome.gyp:browser_tests',
-            '../chrome/chrome.gyp:interactive_ui_tests',
-            '../chrome/chrome.gyp:sync_integration_tests',
-            '../chrome/chrome.gyp:unit_tests',
-            '../cloud_print/cloud_print.gyp:cloud_print_unittests',
-            '../components/components_tests.gyp:components_unittests',
-            '../content/content_shell_and_tests.gyp:content_browsertests',
-            '../content/content_shell_and_tests.gyp:content_unittests',
-            '../device/device_tests.gyp:device_unittests',
-            '../google_apis/gcm/gcm.gyp:gcm_unit_tests',
-            '../gpu/gpu.gyp:gpu_unittests',
-            '../ipc/ipc.gyp:ipc_tests',
-            '../ipc/mojo/ipc_mojo.gyp:ipc_mojo_unittests',
-            '../jingle/jingle.gyp:jingle_unittests',
-            '../media/media.gyp:media_unittests',
-            '../media/midi/midi.gyp:midi_unittests',
-            '../ppapi/ppapi_internal.gyp:ppapi_unittests',
-            '../printing/printing.gyp:printing_unittests',
-            '../remoting/remoting.gyp:remoting_unittests',
-            '../rlz/rlz.gyp:*',
-            '../skia/skia_tests.gyp:skia_unittests',
-            '../sql/sql.gyp:sql_unittests',
-            '../sync/sync.gyp:sync_unit_tests',
-            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
-            '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
-            '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
-            '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
-            '../tools/perf/clear_system_cache/clear_system_cache.gyp:*',
-            '../tools/telemetry/telemetry.gyp:*',
-            '../ui/base/ui_base_tests.gyp:ui_base_unittests',
-            '../ui/gfx/gfx_tests.gyp:gfx_unittests',
-            '../ui/gl/gl_tests.gyp:gl_unittests',
-            '../url/url.gyp:url_unittests',
-          ],
-        },
-        {
-          'target_name': 'chromium_builder_rel',
-          'type': 'none',
-          'dependencies': [
-            '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests',
-            '../cc/cc_tests.gyp:cc_unittests',
-            '../chrome/chrome.gyp:browser_tests',
-            '../chrome/chrome.gyp:performance_browser_tests',
-            '../chrome/chrome.gyp:sync_integration_tests',
-            '../chrome/chrome.gyp:unit_tests',
-            '../cloud_print/cloud_print.gyp:cloud_print_unittests',
-            '../components/components_tests.gyp:components_unittests',
-            '../content/content_shell_and_tests.gyp:content_browsertests',
-            '../content/content_shell_and_tests.gyp:content_unittests',
-            '../device/device_tests.gyp:device_unittests',
-            '../google_apis/gcm/gcm.gyp:gcm_unit_tests',
-            '../gpu/gpu.gyp:gpu_unittests',
-            '../ipc/ipc.gyp:ipc_tests',
-            '../ipc/mojo/ipc_mojo.gyp:ipc_mojo_unittests',
-            '../jingle/jingle.gyp:jingle_unittests',
-            '../media/media.gyp:media_unittests',
-            '../media/midi/midi.gyp:midi_unittests',
-            '../ppapi/ppapi_internal.gyp:ppapi_unittests',
-            '../printing/printing.gyp:printing_unittests',
-            '../remoting/remoting.gyp:remoting_unittests',
-            '../skia/skia_tests.gyp:skia_unittests',
-            '../sql/sql.gyp:sql_unittests',
-            '../sync/sync.gyp:sync_unit_tests',
-            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
-            '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
-            '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
-            '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
-            '../tools/perf/clear_system_cache/clear_system_cache.gyp:*',
-            '../tools/telemetry/telemetry.gyp:*',
-            '../ui/base/ui_base_tests.gyp:ui_base_unittests',
-            '../ui/gfx/gfx_tests.gyp:gfx_unittests',
-            '../ui/gl/gl_tests.gyp:gl_unittests',
-            '../url/url.gyp:url_unittests',
-          ],
-        },
-        {
-          'target_name': 'chromium_builder_dbg_tsan_mac',
-          'type': 'none',
-          'dependencies': [
-            '../base/base.gyp:base_unittests',
-            '../cloud_print/cloud_print.gyp:cloud_print_unittests',
-            '../crypto/crypto.gyp:crypto_unittests',
-            '../ipc/ipc.gyp:ipc_tests',
-            '../jingle/jingle.gyp:jingle_unittests',
-            '../media/media.gyp:media_unittests',
-            '../media/midi/midi.gyp:midi_unittests',
-            '../net/net.gyp:net_unittests',
-            '../printing/printing.gyp:printing_unittests',
-            '../remoting/remoting.gyp:remoting_unittests',
-            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
-            '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
-            '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
-            '../url/url.gyp:url_unittests',
-          ],
-        },
-        {
-          'target_name': 'chromium_builder_dbg_valgrind_mac',
-          'type': 'none',
-          'dependencies': [
-            '../base/base.gyp:base_unittests',
-            '../chrome/chrome.gyp:unit_tests',
-            '../cloud_print/cloud_print.gyp:cloud_print_unittests',
-            '../components/components_tests.gyp:components_unittests',
-            '../content/content_shell_and_tests.gyp:content_unittests',
-            '../crypto/crypto.gyp:crypto_unittests',
-            '../device/device_tests.gyp:device_unittests',
-            '../ipc/ipc.gyp:ipc_tests',
-            '../jingle/jingle.gyp:jingle_unittests',
-            '../media/media.gyp:media_unittests',
-            '../media/midi/midi.gyp:midi_unittests',
-            '../net/net.gyp:net_unittests',
-            '../google_apis/gcm/gcm.gyp:gcm_unit_tests',
-            '../printing/printing.gyp:printing_unittests',
-            '../remoting/remoting.gyp:remoting_unittests',
-            '../skia/skia_tests.gyp:skia_unittests',
-            '../sql/sql.gyp:sql_unittests',
-            '../sync/sync.gyp:sync_unit_tests',
-            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
-            '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
-            '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
-            '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
-            '../ui/base/ui_base_tests.gyp:ui_base_unittests',
-            '../ui/gfx/gfx_tests.gyp:gfx_unittests',
-            '../ui/gl/gl_tests.gyp:gl_unittests',
-            '../url/url.gyp:url_unittests',
-          ],
-        },
-      ],  # targets
-    }], # OS="mac"
-    ['OS=="win"', {
-      'targets': [
-        # These targets are here so the build bots can use them to build
-        # subsets of a full tree for faster cycle times.
-        {
-          'target_name': 'chromium_builder',
-          'type': 'none',
-          'dependencies': [
-            '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests',
-            '../cc/cc_tests.gyp:cc_unittests',
-            '../chrome/chrome.gyp:browser_tests',
-            '../chrome/chrome.gyp:crash_service',
-            '../chrome/chrome.gyp:gcapi_test',
-            '../chrome/chrome.gyp:installer_util_unittests',
-            '../chrome/chrome.gyp:interactive_ui_tests',
-            '../chrome/chrome.gyp:performance_browser_tests',
-            '../chrome/chrome.gyp:sync_integration_tests',
-            '../chrome/chrome.gyp:unit_tests',
-            '../cloud_print/cloud_print.gyp:cloud_print_unittests',
-            '../components/components_tests.gyp:components_unittests',
-            '../content/content_shell_and_tests.gyp:content_browsertests',
-            '../content/content_shell_and_tests.gyp:content_unittests',
-            '../content/content_shell_and_tests.gyp:copy_test_netscape_plugin',
-            # ../chrome/test/mini_installer requires mini_installer.
-            '../chrome/installer/mini_installer.gyp:mini_installer',
-            '../courgette/courgette.gyp:courgette_unittests',
-            '../device/device_tests.gyp:device_unittests',
-            '../google_apis/gcm/gcm.gyp:gcm_unit_tests',
-            '../gpu/gpu.gyp:gpu_unittests',
-            '../ipc/ipc.gyp:ipc_tests',
-            '../ipc/mojo/ipc_mojo.gyp:ipc_mojo_unittests',
-            '../jingle/jingle.gyp:jingle_unittests',
-            '../media/media.gyp:media_unittests',
-            '../media/midi/midi.gyp:midi_unittests',
-            '../ppapi/ppapi_internal.gyp:ppapi_unittests',
-            '../printing/printing.gyp:printing_unittests',
-            '../remoting/remoting.gyp:remoting_unittests',
-            '../skia/skia_tests.gyp:skia_unittests',
-            '../sql/sql.gyp:sql_unittests',
-            '../sync/sync.gyp:sync_unit_tests',
-            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
-            '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
-            '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
-            '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
-            '../tools/perf/clear_system_cache/clear_system_cache.gyp:*',
-            '../tools/telemetry/telemetry.gyp:*',
-            '../ui/base/ui_base_tests.gyp:ui_base_unittests',
-            '../ui/events/events.gyp:events_unittests',
-            '../ui/gfx/gfx_tests.gyp:gfx_unittests',
-            '../ui/gl/gl_tests.gyp:gl_unittests',
-            '../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection_unittests',
-            '../ui/views/views.gyp:views_unittests',
-            '../url/url.gyp:url_unittests',
-          ],
-          'conditions': [
-            ['target_arch=="ia32"', {
-              'dependencies': [
-                '../chrome/chrome.gyp:crash_service_win64',
-              ],
-            }],
-          ],
-        },
-        {
-          'target_name': 'chromium_builder_dbg_tsan_win',
-          'type': 'none',
-          'dependencies': [
-            '../base/base.gyp:base_unittests',
-            '../cloud_print/cloud_print.gyp:cloud_print_unittests',
-            '../components/components_tests.gyp:components_unittests',
-            '../content/content_shell_and_tests.gyp:content_unittests',
-            '../crypto/crypto.gyp:crypto_unittests',
-            '../ipc/ipc.gyp:ipc_tests',
-            '../jingle/jingle.gyp:jingle_unittests',
-            '../media/media.gyp:media_unittests',
-            '../media/midi/midi.gyp:midi_unittests',
-            '../net/net.gyp:net_unittests',
-            '../printing/printing.gyp:printing_unittests',
-            '../remoting/remoting.gyp:remoting_unittests',
-            '../sql/sql.gyp:sql_unittests',
-            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
-            '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
-            '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
-            '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
-            '../url/url.gyp:url_unittests',
-          ],
-        },
-        {
-          'target_name': 'chromium_builder_lkgr_drmemory_win',
-          'type': 'none',
-          'dependencies': [
-            '../components/test_runner/test_runner.gyp:layout_test_helper',
-            '../content/content_shell_and_tests.gyp:content_shell',
-            '../content/content_shell_and_tests.gyp:content_shell_crash_service',
-          ],
-        },
-        {
-          'target_name': 'chromium_builder_dbg_drmemory_win',
-          'type': 'none',
-          'dependencies': [
-            '../ash/ash.gyp:ash_shell_unittests',
-            '../ash/ash.gyp:ash_unittests',
-            '../base/base.gyp:base_unittests',
-            '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests',
-            '../cc/cc_tests.gyp:cc_unittests',
-            '../chrome/chrome.gyp:browser_tests',
-            '../chrome/chrome.gyp:chrome_app_unittests',
-            '../chrome/chrome.gyp:chromedriver_unittests',
-            '../chrome/chrome.gyp:installer_util_unittests',
-            '../chrome/chrome.gyp:unit_tests',
-            '../chrome_elf/chrome_elf.gyp:chrome_elf_unittests',
-            '../cloud_print/cloud_print.gyp:cloud_print_unittests',
-            '../components/components_tests.gyp:components_unittests',
-            '../components/test_runner/test_runner.gyp:layout_test_helper',
-            '../content/content_shell_and_tests.gyp:content_browsertests',
-            '../content/content_shell_and_tests.gyp:content_shell',
-            '../content/content_shell_and_tests.gyp:content_shell_crash_service',
-            '../content/content_shell_and_tests.gyp:content_unittests',
-            '../courgette/courgette.gyp:courgette_unittests',
-            '../crypto/crypto.gyp:crypto_unittests',
-            '../device/device_tests.gyp:device_unittests',
-            '../extensions/extensions_tests.gyp:extensions_browsertests',
-            '../extensions/extensions_tests.gyp:extensions_unittests',
-            '../gin/gin.gyp:gin_shell',
-            '../gin/gin.gyp:gin_unittests',
-            '../google_apis/gcm/gcm.gyp:gcm_unit_tests',
-            '../google_apis/google_apis.gyp:google_apis_unittests',
-            '../gpu/gpu.gyp:angle_unittests',
-            '../gpu/gpu.gyp:gpu_unittests',
-            '../ipc/ipc.gyp:ipc_tests',
-            '../ipc/mojo/ipc_mojo.gyp:ipc_mojo_unittests',
-            '../jingle/jingle.gyp:jingle_unittests',
-            '../media/cast/cast.gyp:cast_unittests',
-            '../media/media.gyp:media_unittests',
-            '../media/midi/midi.gyp:midi_unittests',
-            '../mojo/mojo.gyp:mojo',
-            '../net/net.gyp:net_unittests',
-            '../printing/printing.gyp:printing_unittests',
-            '../remoting/remoting.gyp:remoting_unittests',
-            '../skia/skia_tests.gyp:skia_unittests',
-            '../sql/sql.gyp:sql_unittests',
-            '../sync/sync.gyp:sync_unit_tests',
-            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
-            '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
-            '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
-            '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
-            '../third_party/WebKit/Source/platform/blink_platform_tests.gyp:blink_heap_unittests',
-            '../third_party/WebKit/Source/platform/blink_platform_tests.gyp:blink_platform_unittests',
-            '../ui/accessibility/accessibility.gyp:accessibility_unittests',
-            '../ui/app_list/app_list.gyp:app_list_unittests',
-            '../ui/aura/aura.gyp:aura_unittests',
-            '../ui/compositor/compositor.gyp:compositor_unittests',
-            '../ui/display/display.gyp:display_unittests',
-            '../ui/events/events.gyp:events_unittests',
-            '../ui/gfx/gfx_tests.gyp:gfx_unittests',
-            '../ui/gl/gl_tests.gyp:gl_unittests',
-            '../ui/keyboard/keyboard.gyp:keyboard_unittests',
-            '../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection_unittests',
-            '../url/url.gyp:url_unittests',
-          ],
-        },
-      ],  # targets
-      'conditions': [
-        ['branding=="Chrome"', {
-          'targets': [
-            {
-              'target_name': 'chrome_official_builder_no_unittests',
-              'type': 'none',
-              'dependencies': [
-                '../chrome/chrome.gyp:crash_service',
-                '../chrome/chrome.gyp:gcapi_dll',
-                '../chrome/chrome.gyp:pack_policy_templates',
-                '../chrome/installer/mini_installer.gyp:mini_installer',
-                '../cloud_print/cloud_print.gyp:cloud_print',
-                '../courgette/courgette.gyp:courgette',
-                '../courgette/courgette.gyp:courgette64',
-                '../remoting/remoting.gyp:remoting_webapp',
-                '../third_party/widevine/cdm/widevine_cdm.gyp:widevinecdmadapter',
-              ],
-              'conditions': [
-                ['target_arch=="ia32"', {
-                  'dependencies': [
-                    '../chrome/chrome.gyp:crash_service_win64',
-                  ],
-                }],
-                ['component != "shared_library" and wix_exists == "True" and \
-                    sas_dll_exists == "True"', {
-                  'dependencies': [
-                    '../remoting/remoting.gyp:remoting_host_installation',
-                  ],
-                }], # component != "shared_library"
-              ]
-            }, {
-              'target_name': 'chrome_official_builder',
-              'type': 'none',
-              'dependencies': [
-                'chrome_official_builder_no_unittests',
-                '../base/base.gyp:base_unittests',
-                '../chrome/chrome.gyp:browser_tests',
-                '../chrome/chrome.gyp:sync_integration_tests',
-                '../ipc/ipc.gyp:ipc_tests',
-                '../media/media.gyp:media_unittests',
-                '../media/midi/midi.gyp:midi_unittests',
-                '../net/net.gyp:net_unittests',
-                '../printing/printing.gyp:printing_unittests',
-                '../sql/sql.gyp:sql_unittests',
-                '../sync/sync.gyp:sync_unit_tests',
-                '../ui/base/ui_base_tests.gyp:ui_base_unittests',
-                '../ui/gfx/gfx_tests.gyp:gfx_unittests',
-                '../ui/gl/gl_tests.gyp:gl_unittests',
-                '../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection_unittests',
-                '../ui/views/views.gyp:views_unittests',
-                '../url/url.gyp:url_unittests',
-              ],
-            },
-          ], # targets
-        }], # branding=="Chrome"
-       ], # conditions
-    }], # OS="win"
-    ['use_aura==1', {
-      'targets': [
-        {
-          'target_name': 'aura_builder',
-          'type': 'none',
-          'dependencies': [
-            '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests',
-            '../cc/cc_tests.gyp:cc_unittests',
-            '../components/components_tests.gyp:components_unittests',
-            '../content/content_shell_and_tests.gyp:content_browsertests',
-            '../content/content_shell_and_tests.gyp:content_unittests',
-            '../device/device_tests.gyp:device_unittests',
-            '../google_apis/gcm/gcm.gyp:gcm_unit_tests',
-            '../ppapi/ppapi_internal.gyp:ppapi_unittests',
-            '../remoting/remoting.gyp:remoting_unittests',
-            '../skia/skia_tests.gyp:skia_unittests',
-            '../ui/app_list/app_list.gyp:*',
-            '../ui/aura/aura.gyp:*',
-            '../ui/aura_extra/aura_extra.gyp:*',
-            '../ui/base/ui_base_tests.gyp:ui_base_unittests',
-            '../ui/compositor/compositor.gyp:*',
-            '../ui/display/display.gyp:display_unittests',
-            '../ui/events/events.gyp:*',
-            '../ui/gfx/gfx_tests.gyp:gfx_unittests',
-            '../ui/gl/gl_tests.gyp:gl_unittests',
-            '../ui/keyboard/keyboard.gyp:*',
-            '../ui/snapshot/snapshot.gyp:snapshot_unittests',
-            '../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection_unittests',
-            '../ui/wm/wm.gyp:*',
-            'blink_tests',
-          ],
-          'conditions': [
-            ['OS=="win"', {
-              'dependencies': [
-                '../chrome/chrome.gyp:crash_service',
-              ],
-            }],
-            ['OS=="win" and target_arch=="ia32"', {
-              'dependencies': [
-                '../chrome/chrome.gyp:crash_service_win64',
-              ],
-            }],
-            ['use_ash==1', {
-              'dependencies': [
-                '../ash/ash.gyp:ash_shell',
-                '../ash/ash.gyp:ash_unittests',
-              ],
-            }],
-            ['OS=="linux"', {
-              # Tests that currently only work on Linux.
-              'dependencies': [
-                '../base/base.gyp:base_unittests',
-                '../ipc/ipc.gyp:ipc_tests',
-                '../sql/sql.gyp:sql_unittests',
-                '../sync/sync.gyp:sync_unit_tests',
-              ],
-            }],
-            ['chromeos==1', {
-              'dependencies': [
-                '../chromeos/chromeos.gyp:chromeos_unittests',
-                '../ui/chromeos/ui_chromeos.gyp:ui_chromeos_unittests',
-              ],
-            }],
-            ['use_ozone==1', {
-              'dependencies': [
-                '../ui/ozone/ozone.gyp:*',
-                '../ui/ozone/demo/ozone_demos.gyp:*',
-              ],
-            }],
-            ['chromecast==0', {
-              'dependencies': [
-                '../chrome/chrome.gyp:browser_tests',
-                '../chrome/chrome.gyp:chrome',
-                '../chrome/chrome.gyp:interactive_ui_tests',
-                '../chrome/chrome.gyp:unit_tests',
-                '../ui/message_center/message_center.gyp:*',
-                '../ui/views/examples/examples.gyp:views_examples_with_content_exe',
-                '../ui/views/views.gyp:views',
-                '../ui/views/views.gyp:views_unittests',
-              ],
-            }],
-          ],
-        },
-      ],  # targets
-    }], # "use_aura==1"
-    ['test_isolation_mode != "noop"', {
-      'targets': [
-        {
-          'target_name': 'chromium_swarm_tests',
-          'type': 'none',
-          'dependencies': [
-            '../base/base.gyp:base_unittests_run',
-            '../content/content_shell_and_tests.gyp:content_browsertests_run',
-            '../content/content_shell_and_tests.gyp:content_unittests_run',
-            '../net/net.gyp:net_unittests_run',
-          ],
-          'conditions': [
-            ['chromecast==0', {
-              'dependencies': [
-                '../chrome/chrome.gyp:browser_tests_run',
-                '../chrome/chrome.gyp:interactive_ui_tests_run',
-                '../chrome/chrome.gyp:sync_integration_tests_run',
-                '../chrome/chrome.gyp:unit_tests_run',
-              ],
-            }],
-          ],
-        }, # target_name: chromium_swarm_tests
-      ],
-    }],
-    ['archive_chromoting_tests==1', {
-      'targets': [
-        {
-          'target_name': 'chromoting_swarm_tests',
-          'type': 'none',
-          'dependencies': [
-            '../testing/chromoting/integration_tests.gyp:chromoting_integration_tests_run',
-          ],
-        }, # target_name: chromoting_swarm_tests
-      ]
-    }],
-    ['OS=="mac" and toolkit_views==1', {
-      'targets': [
-        {
-          'target_name': 'macviews_builder',
-          'type': 'none',
-          'dependencies': [
-            '../ui/views/examples/examples.gyp:views_examples_with_content_exe',
-            '../ui/views/views.gyp:views',
-            '../ui/views/views.gyp:views_unittests',
-          ],
-        },  # target_name: macviews_builder
-      ],  # targets
-    }],  # os=='mac' and toolkit_views==1
-  ],  # conditions
-}
diff --git a/build/android/apkbuilder_action.gypi b/build/android/apkbuilder_action.gypi
deleted file mode 100644
index 27807d8..0000000
--- a/build/android/apkbuilder_action.gypi
+++ /dev/null
@@ -1,79 +0,0 @@
-# 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.
-
-# This file is a helper to java_apk.gypi. It should be used to create an
-# action that runs ApkBuilder via ANT.
-#
-# Required variables:
-#  apk_name - File name (minus path & extension) of the output apk.
-#  apk_path - Path to output apk.
-#  package_input_paths - Late-evaluated list of resource zips.
-#  native_libs_dir - Path to lib/ directory to use. Set to an empty directory
-#    if no native libs are needed.
-# Optional variables:
-#  has_code - Whether to include classes.dex in the apk.
-#  dex_path - Path to classes.dex. Used only when has_code=1.
-#  extra_inputs - List of extra action inputs.
-{
-  'variables': {
-    'variables': {
-      'has_code%': 1,
-    },
-    'conditions': [
-      ['has_code == 0', {
-        'has_code_str': 'false',
-      }, {
-        'has_code_str': 'true',
-      }],
-    ],
-    'has_code%': '<(has_code)',
-    'extra_inputs%': [],
-    # Write the inputs list to a file, so that its mtime is updated when
-    # the list of inputs changes.
-    'inputs_list_file': '>|(apk_package.<(_target_name).<(apk_name).gypcmd >@(package_input_paths))',
-    'resource_packaged_apk_name': '<(apk_name)-resources.ap_',
-    'resource_packaged_apk_path': '<(intermediate_dir)/<(resource_packaged_apk_name)',
-  },
-  'action_name': 'apkbuilder_<(apk_name)',
-  'message': 'Packaging <(apk_name)',
-  'inputs': [
-    '<(DEPTH)/build/android/ant/apk-package.xml',
-    '<(DEPTH)/build/android/gyp/util/build_utils.py',
-    '<(DEPTH)/build/android/gyp/ant.py',
-    '<(resource_packaged_apk_path)',
-    '<@(extra_inputs)',
-    '>@(package_input_paths)',
-    '>(inputs_list_file)',
-  ],
-  'outputs': [
-    '<(apk_path)',
-  ],
-  'conditions': [
-    ['has_code == 1', {
-      'inputs': ['<(dex_path)'],
-      'action': [
-        '-DDEX_FILE_PATH=<(dex_path)',
-      ]
-    }],
-  ],
-  'action': [
-    'python', '<(DEPTH)/build/android/gyp/ant.py',
-    '--',
-    '-quiet',
-    '-DHAS_CODE=<(has_code_str)',
-    '-DANDROID_SDK_ROOT=<(android_sdk_root)',
-    '-DANDROID_SDK_TOOLS=<(android_sdk_tools)',
-    '-DRESOURCE_PACKAGED_APK_NAME=<(resource_packaged_apk_name)',
-    '-DNATIVE_LIBS_DIR=<(native_libs_dir)',
-    '-DAPK_NAME=<(apk_name)',
-    '-DCONFIGURATION_NAME=<(CONFIGURATION_NAME)',
-    '-DOUT_DIR=<(intermediate_dir)',
-    '-DUNSIGNED_APK_PATH=<(apk_path)',
-    '-DEMMA_INSTRUMENT=<(emma_instrument)',
-    '-DEMMA_DEVICE_JAR=<(emma_device_jar)',
-    '-Dbasedir=.',
-    '-buildfile',
-    '<(DEPTH)/build/android/ant/apk-package.xml',
-  ]
-}
diff --git a/build/android/chrome_with_libs.gyp b/build/android/chrome_with_libs.gyp
deleted file mode 100644
index 690be88..0000000
--- a/build/android/chrome_with_libs.gyp
+++ /dev/null
@@ -1,82 +0,0 @@
-# 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 file is meant to add more loadable libs into Chrome_apk.
-#
-# This is useful when building Chrome_apk with some loadable modules which are
-# not included in Chrome_apk.
-# As an example, when building Chrome_apk with
-# libpeer_target_type=loadable_module,
-# the libpeerconnection.so is not included in Chrome_apk. To add the missing
-# lib, follow the steps below:
-# - Run gyp:
-#     GYP_DEFINES="$GYP_DEFINES libpeer_target_type=loadable_module" CHROMIUM_GYP_FILE="build/android/chrome_with_libs.gyp" build/gyp_chromium
-# - Build chrome_with_libs:
-#     ninja (or make) chrome_with_libs
-#
-# This tool also allows replacing the loadable module with a new one via the
-# following steps:
-# - Build Chrome_apk with the gyp define:
-#     GYP_DEFINES="$GYP_DEFINES libpeer_target_type=loadable_module" build/gyp_chromium
-#     ninja (or make) Chrome_apk
-# - Replace libpeerconnection.so with a new one:
-#     cp the_new_one path/to/libpeerconnection.so
-# - Run gyp:
-#     GYP_DEFINES="$GYP_DEFINES libpeer_target_type=loadable_module" CHROMIUM_GYP_FILE="build/android/chrome_with_libs.gyp" build/gyp_chromium
-# - Build chrome_with_libs:
-#     ninja (or make) chrome_with_libs
-{
-  'targets': [
-    {
-      # An "All" target is required for a top-level gyp-file.
-      'target_name': 'All',
-      'type': 'none',
-      'dependencies': [
-        'chrome_with_libs',
-      ],
-    },
-    {
-      'target_name': 'chrome_with_libs',
-      'type': 'none',
-      'variables': {
-        'intermediate_dir': '<(PRODUCT_DIR)/prebuilt_libs/',
-        'chrome_unsigned_path': '<(PRODUCT_DIR)/chrome_apk/Chrome-unsigned.apk',
-        'chrome_with_libs_unsigned': '<(intermediate_dir)/Chrome-with-libs-unsigned.apk',
-        'chrome_with_libs_final': '<(PRODUCT_DIR)/apks/Chrome-with-libs.apk',
-      },
-      'dependencies': [
-        '<(DEPTH)/clank/native/framework/clank.gyp:chrome_apk'
-      ],
-      'copies': [
-        {
-          'destination': '<(intermediate_dir)/lib/<(android_app_abi)',
-          'files': [
-            '<(PRODUCT_DIR)/libpeerconnection.so',
-          ],
-        },
-      ],
-      'actions': [
-        {
-          'action_name': 'put_libs_in_chrome',
-          'variables': {
-            'inputs': [
-              '<(intermediate_dir)/lib/<(android_app_abi)/libpeerconnection.so',
-            ],
-            'input_apk_path': '<(chrome_unsigned_path)',
-            'output_apk_path': '<(chrome_with_libs_unsigned)',
-            'libraries_top_dir%': '<(intermediate_dir)',
-          },
-          'includes': [ 'create_standalone_apk_action.gypi' ],
-        },
-        {
-          'action_name': 'finalize_chrome_with_libs',
-          'variables': {
-            'input_apk_path': '<(chrome_with_libs_unsigned)',
-            'output_apk_path': '<(chrome_with_libs_final)',
-          },
-          'includes': [ 'finalize_apk_action.gypi'],
-        },
-      ],
-    }],
-}
diff --git a/build/android/create_standalone_apk_action.gypi b/build/android/create_standalone_apk_action.gypi
deleted file mode 100644
index d17af7c..0000000
--- a/build/android/create_standalone_apk_action.gypi
+++ /dev/null
@@ -1,41 +0,0 @@
-# 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 file is meant to be included into an action to provide an action that
-# combines a directory of shared libraries and an incomplete APK into a
-# standalone APK.
-#
-# To use this, create a gyp action with the following form:
-#  {
-#    'action_name': 'some descriptive action name',
-#    'variables': {
-#      'inputs': [ 'input_path1', 'input_path2' ],
-#      'input_apk_path': '<(unsigned_apk_path)',
-#      'output_apk_path': '<(unsigned_standalone_apk_path)',
-#      'libraries_top_dir': '<(libraries_top_dir)',
-#    },
-#    'includes': [ 'relative/path/to/create_standalone_apk_action.gypi' ],
-#  },
-
-{
-  'message': 'Creating standalone APK: <(output_apk_path)',
-  'variables': {
-    'inputs': [],
-  },
-  'inputs': [
-    '<(DEPTH)/build/android/gyp/util/build_utils.py',
-    '<(DEPTH)/build/android/gyp/create_standalone_apk.py',
-    '<(input_apk_path)',
-    '>@(inputs)',
-  ],
-  'outputs': [
-    '<(output_apk_path)',
-  ],
-  'action': [
-    'python', '<(DEPTH)/build/android/gyp/create_standalone_apk.py',
-    '--libraries-top-dir=<(libraries_top_dir)',
-    '--input-apk-path=<(input_apk_path)',
-    '--output-apk-path=<(output_apk_path)',
-  ],
-}
diff --git a/build/android/developer_recommended_flags.gypi b/build/android/developer_recommended_flags.gypi
deleted file mode 100644
index 79c201d..0000000
--- a/build/android/developer_recommended_flags.gypi
+++ /dev/null
@@ -1,61 +0,0 @@
-# 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 is the set of recommended gyp variable settings for Chrome for Android development.
-#
-# These can be used by copying this file to $CHROME_SRC/chrome/supplement.gypi.
-#
-# Even better, create chrome/supplement.gypi containing the following:
-#   {
-#     'includes': [ '../build/android/developer_recommended_flags.gypi' ]
-#   }
-# and you'll get new settings automatically.
-# When using this method, you can override individual settings by setting them unconditionally (with
-# no %) in chrome/supplement.gypi.
-# I.e. to disable gyp_managed_install but use everything else:
-#   {
-#     'variables': {
-#       'gyp_managed_install': 0,
-#     },
-#     'includes': [ '../build/android/developer_recommended_flags.gypi' ]
-#   }
-
-{
-  'variables': {
-    'variables': {
-      # Set component to 'shared_library' to enable the component build. This builds native code as
-      # many small shared libraries instead of one monolithic library. This slightly reduces the time
-      # required for incremental builds.
-      'component%': 'shared_library',
-    },
-    'component%': '<(component)',
-
-    # When gyp_managed_install is set to 1, building an APK will install that APK on the connected
-    # device(/emulator). To install on multiple devices (or onto a new device), build the APK once
-    # with each device attached. This greatly reduces the time required for incremental builds.
-    #
-    # This comes with some caveats:
-    #   Only works with a single device connected (it will print a warning if
-    #     zero or multiple devices are attached).
-    #   Device must be flashed with a user-debug unsigned Android build.
-    #   Some actions are always run (i.e. ninja will never say "no work to do").
-    'gyp_managed_install%': 1,
-
-    # With gyp_managed_install, we do not necessarily need a standalone APK.
-    # When create_standalone_apk is set to 1, we will build a standalone APK
-    # anyway. For even faster builds, you can set create_standalone_apk to 0.
-    'create_standalone_apk%': 1,
-
-    # Set clang to 1 to use the clang compiler. Clang has much (much, much) better warning/error
-    # messages than gcc.
-    # TODO(cjhopman): Enable this when http://crbug.com/156420 is addressed. Until then, users can
-    # set clang to 1, but Android stack traces will sometimes be incomplete.
-    #'clang%': 1,
-
-    # Set fastbuild to 1 to build with less debugging information. This can greatly decrease linking
-    # time. The downside is that stack traces will be missing useful information (like line
-    # numbers).
-    #'fastbuild%': 1,
-  },
-}
diff --git a/build/android/dex_action.gypi b/build/android/dex_action.gypi
deleted file mode 100644
index 9ea3e71..0000000
--- a/build/android/dex_action.gypi
+++ /dev/null
@@ -1,59 +0,0 @@
-# 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 file is meant to be included into an action to provide a rule that dexes
-# compiled java files. If proguard_enabled == "true" and CONFIGURATION_NAME ==
-# "Release", then it will dex the proguard_enabled_input_path instead of the
-# normal dex_input_paths/dex_generated_input_paths.
-#
-# To use this, create a gyp target with the following form:
-#  {
-#    'action_name': 'some name for the action'
-#    'actions': [
-#      'variables': {
-#        'dex_input_paths': [ 'files to dex (when proguard is not used) and add to input paths' ],
-#        'dex_generated_input_dirs': [ 'dirs that contain generated files to dex' ],
-#
-#        # For targets that use proguard:
-#        'proguard_enabled': 'true',
-#        'proguard_enabled_input_path': 'path to dex when using proguard',
-#      },
-#      'includes': [ 'relative/path/to/dex_action.gypi' ],
-#    ],
-#  },
-#
-
-{
-  'message': 'Creating dex file: <(output_path)',
-  'variables': {
-    'dex_input_paths': [],
-    'dex_generated_input_dirs': [],
-    'proguard_enabled%': 'false',
-    'proguard_enabled_input_path%': '',
-    'dex_no_locals%': 0,
-    'dex_additional_options': [],
-  },
-  'inputs': [
-    '<(DEPTH)/build/android/gyp/util/build_utils.py',
-    '<(DEPTH)/build/android/gyp/util/md5_check.py',
-    '<(DEPTH)/build/android/gyp/dex.py',
-    '>@(dex_input_paths)',
-  ],
-  'outputs': [
-    '<(output_path)',
-    '<(output_path).inputs',
-  ],
-  'action': [
-    'python', '<(DEPTH)/build/android/gyp/dex.py',
-    '--dex-path=<(output_path)',
-    '--android-sdk-tools=<(android_sdk_tools)',
-    '--configuration-name=<(CONFIGURATION_NAME)',
-    '--proguard-enabled=>(proguard_enabled)',
-    '--proguard-enabled-input-path=<(proguard_enabled_input_path)',
-    '--no-locals=>(dex_no_locals)',
-    '>@(dex_additional_options)',
-    '>@(dex_input_paths)',
-    '>@(dex_generated_input_dirs)',
-  ]
-}
diff --git a/build/android/disable_lto.gypi b/build/android/disable_lto.gypi
deleted file mode 100644
index e379cfd..0000000
--- a/build/android/disable_lto.gypi
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (c) 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 file is meant to be included to disable LTO on a target.
-
-{
-  'target_conditions': [
-    ['_toolset=="target"', {
-      'conditions': [
-        ['OS=="android" and (use_lto==1 or use_lto_o2==1)', {
-          'cflags!': [
-            '-flto',
-            '-ffat-lto-objects',
-          ],
-        }],
-      ],
-    }],
-  ],
-}
diff --git a/build/android/finalize_apk_action.gypi b/build/android/finalize_apk_action.gypi
deleted file mode 100644
index 644f9e8..0000000
--- a/build/android/finalize_apk_action.gypi
+++ /dev/null
@@ -1,49 +0,0 @@
-# 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 file is meant to be included into an action to provide an action that
-# signs and zipaligns an APK.
-#
-# To use this, create a gyp action with the following form:
-#  {
-#    'action_name': 'some descriptive action name',
-#    'variables': {
-#      'input_apk_path': 'relative/path/to/input.apk',
-#      'output_apk_path': 'relative/path/to/output.apk',
-#    },
-#    'includes': [ '../../build/android/finalize_apk_action.gypi' ],
-#  },
-#
-
-{
-  'message': 'Signing/aligning <(_target_name) APK: <(input_apk_path)',
-  'variables': {
-    'keystore_path%': '<(DEPTH)/build/android/ant/chromium-debug.keystore',
-    'keystore_name%': 'chromiumdebugkey',
-    'keystore_password%': 'chromium',
-    'zipalign_path%': '<(android_sdk_tools)/zipalign',
-    'rezip_apk_jar_path%': '<(PRODUCT_DIR)/lib.java/rezip_apk.jar',
-    'load_library_from_zip%': 0,
-  },
-  'inputs': [
-    '<(DEPTH)/build/android/gyp/finalize_apk.py',
-    '<(DEPTH)/build/android/gyp/util/build_utils.py',
-    '<(keystore_path)',
-    '<(input_apk_path)',
-  ],
-  'outputs': [
-    '<(output_apk_path)',
-  ],
-  'action': [
-    'python', '<(DEPTH)/build/android/gyp/finalize_apk.py',
-    '--zipalign-path=<(zipalign_path)',
-    '--unsigned-apk-path=<(input_apk_path)',
-    '--final-apk-path=<(output_apk_path)',
-    '--key-path=<(keystore_path)',
-    '--key-name=<(keystore_name)',
-    '--key-passwd=<(keystore_password)',
-    '--load-library-from-zip=<(load_library_from_zip)',
-    '--rezip-apk-jar-path=<(rezip_apk_jar_path)',
-  ],
-}
diff --git a/build/android/finalize_splits_action.gypi b/build/android/finalize_splits_action.gypi
deleted file mode 100644
index 0d0fe88..0000000
--- a/build/android/finalize_splits_action.gypi
+++ /dev/null
@@ -1,70 +0,0 @@
-# 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.
-
-# This file is meant to be included into an action to provide an action that
-# signs and zipaligns split APKs.
-#
-# Required variables:
-#  apk_name - Base name of the apk.
-# Optional variables:
-#  density_splits - Whether to process density splits
-#  language_splits - Whether to language splits
-
-{
-  'variables': {
-    'keystore_path%': '<(DEPTH)/build/android/ant/chromium-debug.keystore',
-    'keystore_name%': 'chromiumdebugkey',
-    'keystore_password%': 'chromium',
-    'zipalign_path%': '<(android_sdk_tools)/zipalign',
-    'density_splits%': 0,
-    'language_splits%': 0,
-    'resource_packaged_apk_name': '<(apk_name)-resources.ap_',
-    'resource_packaged_apk_path': '<(intermediate_dir)/<(resource_packaged_apk_name)',
-    'base_output_path': '<(PRODUCT_DIR)/apks/<(apk_name)',
-  },
-  'inputs': [
-    '<(DEPTH)/build/android/gyp/finalize_splits.py',
-    '<(DEPTH)/build/android/gyp/finalize_apk.py',
-    '<(DEPTH)/build/android/gyp/util/build_utils.py',
-    '<(keystore_path)',
-  ],
-  'action': [
-    'python', '<(DEPTH)/build/android/gyp/finalize_splits.py',
-    '--resource-packaged-apk-path=<(resource_packaged_apk_path)',
-    '--base-output-path=<(base_output_path)',
-    '--zipalign-path=<(zipalign_path)',
-    '--key-path=<(keystore_path)',
-    '--key-name=<(keystore_name)',
-    '--key-passwd=<(keystore_password)',
-  ],
-  'conditions': [
-    ['density_splits == 1', {
-      'message': 'Signing/aligning <(_target_name) density splits',
-      'inputs': [
-        '<(resource_packaged_apk_path)-hdpi',
-        '<(resource_packaged_apk_path)-xhdpi',
-        '<(resource_packaged_apk_path)-xxhdpi',
-        '<(resource_packaged_apk_path)-tvdpi',
-      ],
-      'outputs': [
-        '<(base_output_path)-density-hdpi.apk',
-        '<(base_output_path)-density-xhdpi.apk',
-        '<(base_output_path)-density-xxhdpi.apk',
-        '<(base_output_path)-density-tvdpi.apk',
-      ],
-      'action': [
-        '--densities=hdpi,xhdpi,xxhdpi,tvdpi',
-      ],
-    }],
-    # TODO(agrieve): Implement language splits
-    ['language_splits == 1', {
-      'message': 'Signing/aligning <(_target_name) language splits',
-      'inputs': [
-      ],
-      'outputs': [
-      ],
-    }],
-  ],
-}
-
diff --git a/build/android/findbugs_action.gypi b/build/android/findbugs_action.gypi
deleted file mode 100644
index e3b3d36..0000000
--- a/build/android/findbugs_action.gypi
+++ /dev/null
@@ -1,22 +0,0 @@
-
-{
-  'action_name': 'findbugs_<(_target_name)',
-  'message': 'Running findbugs on <(_target_name)',
-  'variables': {
-  },
-  'inputs': [
-    '<(DEPTH)/build/android/findbugs_diff.py',
-    '<(DEPTH)/build/android/findbugs_filter/findbugs_exclude.xml',
-    '<(DEPTH)/build/android/pylib/utils/findbugs.py',
-    '<(findbugs_target_jar_path)',
-  ],
-  'outputs': [
-    '<(stamp_path)',
-  ],
-  'action': [
-    'python', '<(DEPTH)/build/android/findbugs_diff.py',
-    '--auxclasspath-gyp', '>(auxclasspath)',
-    '--stamp', '<(stamp_path)',
-    '<(findbugs_target_jar_path)',
-  ],
-}
diff --git a/build/android/increase_size_for_speed.gypi b/build/android/increase_size_for_speed.gypi
deleted file mode 100644
index 48d17f5..0000000
--- a/build/android/increase_size_for_speed.gypi
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (c) 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 file is meant to be included to optimize a target for speed
-# rather than for size on Android.
-# This is used in some carefully tailored targets and is not meant
-# to be included everywhere. Before adding the template to another target,
-# please ask in chromium-dev@. See crbug.com/411909
-
-{
-  'configurations': {
-    'Release': {
-      'target_conditions': [
-        ['_toolset=="target"', {
-          'conditions': [
-            ['OS=="android"', {
-              'cflags!': ['-Os'],
-              'cflags': ['-O2'],
-            }],
-            # Do not merge -Os and -O2 in LTO.
-            # LTO merges all optimization options at link-time. -O2 takes
-            # precedence over -Os. Avoid using LTO simultaneously
-            # on -Os and -O2 parts for that reason.
-            ['OS=="android" and use_lto==1', {
-              'cflags!': [
-                '-flto',
-                '-ffat-lto-objects',
-              ],
-            }],
-            ['OS=="android" and use_lto_o2==1', {
-              'cflags': [
-                '-flto',
-                '-ffat-lto-objects',
-              ],
-            }],
-          ],
-        }],
-      ],
-    },
-  },
-}
diff --git a/build/android/insert_chromium_version.gypi b/build/android/insert_chromium_version.gypi
deleted file mode 100644
index a6ff908..0000000
--- a/build/android/insert_chromium_version.gypi
+++ /dev/null
@@ -1,53 +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.
-
-# This file is meant to be included into an action to provide a rule that
-# inserts a chromium version string into native libraries.
-#
-# To use this, create a gyp target with the following form:
-#  {
-#    'action_name': 'insert_chromium_version',
-#    'actions': [
-#      'variables': {
-#        'ordered_libraries_file': 'file generated by write_ordered_libraries'
-#        'stripped_libraries_dir': 'the directory contains native libraries'
-#        'input_paths': 'files to be added to the list of inputs'
-#        'stamp': 'file to touch when the action is complete'
-#        'version_string': 'chromium version string to be inserted'
-#      'includes': [ '../../build/android/insert_chromium_version.gypi' ],
-#    ],
-#  },
-#
-
-{
-  'message': 'Inserting chromium version string into native libraries',
-  'variables': {
-    'input_paths': [],
-  },
-  'inputs': [
-    '<(DEPTH)/build/android/gyp/util/build_utils.py',
-    '<(DEPTH)/build/android/gyp/insert_chromium_version.py',
-    '<(ordered_libraries_file)',
-    '>@(input_paths)',
-  ],
-  'outputs': [
-    '<(stamp)',
-  ],
-  'action': [
-    'python', '<(DEPTH)/build/android/gyp/insert_chromium_version.py',
-    '--android-objcopy=<(android_objcopy)',
-    '--stripped-libraries-dir=<(stripped_libraries_dir)',
-    '--libraries=@FileArg(<(ordered_libraries_file):libraries)',
-    '--version-string=<(version_string)',
-    '--stamp=<(stamp)',
-  ],
-  'conditions': [
-    ['component == "shared_library"', {
-      # Add a fake output to force the build to always re-run this step. This
-      # is required because the real inputs are not known at gyp-time and
-      # changing base.so may not trigger changes to dependent libraries.
-      'outputs': [ '<(stamp).fake' ]
-    }],
-  ],
-}
diff --git a/build/android/instr_action.gypi b/build/android/instr_action.gypi
deleted file mode 100644
index fa6d062..0000000
--- a/build/android/instr_action.gypi
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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 file is meant to be included into an action to provide a rule that
-# instruments either java class files, or jars.
-
-{
-  'variables': {
-    'instr_type%': 'jar',
-    'input_path%': '',
-    'output_path%': '',
-    'stamp_path%': '',
-    'extra_instr_args': [
-      '--coverage-file=<(_target_name).em',
-      '--sources-file=<(_target_name)_sources.txt',
-    ],
-    'emma_jar': '<(android_sdk_root)/tools/lib/emma.jar',
-    'conditions': [
-      ['emma_instrument != 0', {
-        'extra_instr_args': [
-          '--sources=<(java_in_dir)/src >(additional_src_dirs) >(generated_src_dirs)',
-          '--src-root=<(DEPTH)',
-          '--emma-jar=<(emma_jar)',
-          '--filter-string=<(emma_filter)',
-        ],
-        'conditions': [
-          ['instr_type == "jar"', {
-            'instr_action': 'instrument_jar',
-          }, {
-            'instr_action': 'instrument_classes',
-          }]
-        ],
-      }, {
-        'instr_action': 'copy',
-        'extra_instr_args': [],
-      }]
-    ]
-  },
-  'inputs': [
-    '<(DEPTH)/build/android/gyp/emma_instr.py',
-    '<(DEPTH)/build/android/gyp/util/build_utils.py',
-    '<(DEPTH)/build/android/pylib/utils/command_option_parser.py',
-  ],
-  'action': [
-    'python', '<(DEPTH)/build/android/gyp/emma_instr.py',
-    '<(instr_action)',
-    '--input-path=<(input_path)',
-    '--output-path=<(output_path)',
-    '--stamp=<(stamp_path)',
-    '<@(extra_instr_args)',
-  ]
-}
diff --git a/build/android/java_cpp_enum.gypi b/build/android/java_cpp_enum.gypi
deleted file mode 100644
index d4abafa..0000000
--- a/build/android/java_cpp_enum.gypi
+++ /dev/null
@@ -1,64 +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.
-
-# This file is meant to be included into a target to provide an action
-# to generate Java source files from a C++ header file containing annotated
-# enum definitions using a Python script.
-#
-# To use this, create a gyp target with the following form:
-#  {
-#    'target_name': 'bitmap_format_java',
-#    'type': 'none',
-#    'variables': {
-#      'source_file': 'ui/android/bitmap_format.h',
-#    },
-#    'includes': [ '../build/android/java_cpp_enum.gypi' ],
-#  },
-#
-# Then have the gyp target which compiles the java code depend on the newly
-# created target.
-
-{
-  'variables': {
-    # Location where all generated Java sources will be placed.
-    'output_dir': '<(SHARED_INTERMEDIATE_DIR)/enums/<(_target_name)',
-    'generator_path': '<(DEPTH)/build/android/gyp/java_cpp_enum.py',
-    'generator_args': '<(output_dir) <(source_file)',
-  },
-  'direct_dependent_settings': {
-    'variables': {
-      # Ensure that the output directory is used in the class path
-      # when building targets that depend on this one.
-      'generated_src_dirs': [
-        '<(output_dir)/',
-      ],
-      # Ensure that the targets depending on this one are rebuilt if the sources
-      # of this one are modified.
-      'additional_input_paths': [
-        '<(source_file)',
-      ],
-    },
-  },
-  'actions': [
-    {
-      'action_name': 'generate_java_constants',
-      'inputs': [
-        '<(DEPTH)/build/android/gyp/util/build_utils.py',
-        '<(generator_path)',
-        '<(source_file)',
-      ],
-      'outputs': [
-        # This is the main reason this is an action and not a rule. Gyp doesn't
-        # properly expand RULE_INPUT_PATH here and so it's impossible to
-        # calculate the list of outputs.
-        '<!@pymod_do_main(java_cpp_enum --print_output_only '
-            '<@(generator_args))',
-      ],
-      'action': [
-        'python', '<(generator_path)', '<@(generator_args)'
-      ],
-      'message': 'Generating Java from cpp header <(source_file)',
-    },
-  ],
-}
diff --git a/build/android/java_cpp_template.gypi b/build/android/java_cpp_template.gypi
deleted file mode 100644
index 3296659..0000000
--- a/build/android/java_cpp_template.gypi
+++ /dev/null
@@ -1,81 +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 meant to be included into a target to provide a rule
-# to generate Java source files from templates that are processed
-# through the host C pre-processor.
-#
-# NOTE: For generating Java conterparts to enums prefer using the java_cpp_enum
-#       rule instead.
-#
-# To use this, create a gyp target with the following form:
-#  {
-#    'target_name': 'android_net_java_constants',
-#    'type': 'none',
-#    'sources': [
-#      'net/android/NetError.template',
-#    ],
-#    'variables': {
-#      'package_name': 'org/chromium/net',
-#      'template_deps': ['base/net_error_list.h'],
-#    },
-#    'includes': [ '../build/android/java_cpp_template.gypi' ],
-#  },
-#
-# The 'sources' entry should only list template file. The template file
-# itself should use the 'ClassName.template' format, and will generate
-# 'gen/templates/<target-name>/<package-name>/ClassName.java. The files which
-# template dependents on and typically included by the template should be listed
-# in template_deps variables. Any change to them will force a rebuild of
-# the template, and hence of any source that depends on it.
-#
-
-{
-  # Location where all generated Java sources will be placed.
-  'variables': {
-    'include_path%': '<(DEPTH)',
-    'output_dir': '<(SHARED_INTERMEDIATE_DIR)/templates/<(_target_name)/<(package_name)',
-  },
-  'direct_dependent_settings': {
-    'variables': {
-      # Ensure that the output directory is used in the class path
-      # when building targets that depend on this one.
-      'generated_src_dirs': [
-        '<(output_dir)/',
-      ],
-      # Ensure dependents are rebuilt when sources for this rule change.
-      'additional_input_paths': [
-        '<@(_sources)',
-        '<@(template_deps)',
-      ],
-    },
-  },
-  # Define a single rule that will be apply to each .template file
-  # listed in 'sources'.
-  'rules': [
-    {
-      'rule_name': 'generate_java_constants',
-      'extension': 'template',
-      # Set template_deps as additional dependencies.
-      'variables': {
-        'output_path': '<(output_dir)/<(RULE_INPUT_ROOT).java',
-      },
-      'inputs': [
-        '<(DEPTH)/build/android/gyp/util/build_utils.py',
-        '<(DEPTH)/build/android/gyp/gcc_preprocess.py',
-        '<@(template_deps)'
-      ],
-      'outputs': [
-        '<(output_path)',
-      ],
-      'action': [
-        'python', '<(DEPTH)/build/android/gyp/gcc_preprocess.py',
-        '--include-path=<(include_path)',
-        '--output=<(output_path)',
-        '--template=<(RULE_INPUT_PATH)',
-      ],
-      'message': 'Generating Java from cpp template <(RULE_INPUT_PATH)',
-    }
-  ],
-}
diff --git a/build/android/jinja_template.gypi b/build/android/jinja_template.gypi
deleted file mode 100644
index 9c49360..0000000
--- a/build/android/jinja_template.gypi
+++ /dev/null
@@ -1,85 +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.
-
-# This file is meant to be included into a target to process one or more
-# Jinja templates.
-#
-# To process a single template file, create a gyp target with the following
-# form:
-#  {
-#    'target_name': 'chrome_shell_manifest',
-#    'type': 'none',
-#    'variables': {
-#      'jinja_inputs': ['android/shell/java/AndroidManifest.xml'],
-#      'jinja_output': '<(SHARED_INTERMEDIATE_DIR)/chrome_shell_manifest/AndroidManifest.xml',
-#      'jinja_variables': ['app_name=ChromeShell'],
-#    },
-#    'includes': [ '../build/android/jinja_template.gypi' ],
-#  },
-#
-# To process multiple template files and package the results into a zip file,
-# create a gyp target with the following form:
-#  {
-#    'target_name': 'chrome_template_resources',
-#    'type': 'none',
-#    'variables': {
-#       'jinja_inputs_base_dir': 'android/shell/java/res_template',
-#       'jinja_inputs': [
-#         '<(jinja_inputs_base_dir)/xml/searchable.xml',
-#         '<(jinja_inputs_base_dir)/xml/syncadapter.xml',
-#       ],
-#       'jinja_outputs_zip': '<(PRODUCT_DIR)/res.java/<(_target_name).zip',
-#       'jinja_variables': ['app_name=ChromeShell'],
-#     },
-#     'includes': [ '../build/android/jinja_template.gypi' ],
-#   },
-#
-
-{
-  'actions': [
-    {
-      'action_name': '<(_target_name)_jinja_template',
-      'message': 'processing jinja template',
-      'variables': {
-        'jinja_output%': '',
-        'jinja_outputs_zip%': '',
-        'jinja_inputs_base_dir%': '',
-        'jinja_includes%': [],
-        'jinja_variables%': [],
-        'jinja_args': [],
-      },
-      'inputs': [
-        '<(DEPTH)/build/android/gyp/util/build_utils.py',
-        '<(DEPTH)/build/android/gyp/jinja_template.py',
-        '<@(jinja_inputs)',
-        '<@(jinja_includes)',
-      ],
-      'conditions': [
-        ['jinja_output != ""', {
-          'outputs': [ '<(jinja_output)' ],
-          'variables': {
-            'jinja_args': ['--output', '<(jinja_output)'],
-          },
-        }],
-        ['jinja_outputs_zip != ""', {
-          'outputs': [ '<(jinja_outputs_zip)' ],
-          'variables': {
-            'jinja_args': ['--outputs-zip', '<(jinja_outputs_zip)'],
-          },
-        }],
-        ['jinja_inputs_base_dir != ""', {
-          'variables': {
-            'jinja_args': ['--inputs-base-dir', '<(jinja_inputs_base_dir)'],
-          },
-        }],
-      ],
-      'action': [
-        'python', '<(DEPTH)/build/android/gyp/jinja_template.py',
-        '--inputs', '<(jinja_inputs)',
-        '--variables', '<(jinja_variables)',
-        '<@(jinja_args)',
-      ],
-    },
-  ],
-}
diff --git a/build/android/lint_action.gypi b/build/android/lint_action.gypi
deleted file mode 100644
index e042130..0000000
--- a/build/android/lint_action.gypi
+++ /dev/null
@@ -1,42 +0,0 @@
-# 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 file is meant to be included into an action to provide a rule to
-# run lint on java/class files.
-
-{
-  'action_name': 'lint_<(_target_name)',
-  'message': 'Linting <(_target_name)',
-  'variables': {
-    'conditions': [
-      ['chromium_code != 0 and android_lint != 0 and never_lint == 0', {
-        'is_enabled': '--enable',
-      }, {
-        'is_enabled': '',
-      }]
-    ],
-    'android_manifest_path%': '<(DEPTH)/build/android/AndroidManifest.xml',
-    'resource_dir%': '<(DEPTH)/build/android/ant/empty/res',
-  },
-  'inputs': [
-    '<(DEPTH)/build/android/gyp/util/build_utils.py',
-    '<(DEPTH)/build/android/gyp/lint.py',
-    '<(DEPTH)/build/android/lint/suppressions.xml',
-    '<(lint_jar_path)',
-  ],
-  'action': [
-    'python', '<(DEPTH)/build/android/gyp/lint.py',
-    '--lint-path=<(android_sdk_root)/tools/lint',
-    '--config-path=<(DEPTH)/build/android/lint/suppressions.xml',
-    '--processed-config-path=<(config_path)',
-    '--manifest-path=<(android_manifest_path)',
-    '--result-path=<(result_path)',
-    '--resource-dir=<(resource_dir)',
-    '--product-dir=<(PRODUCT_DIR)',
-    '--src-dirs=>(src_dirs)',
-    '--jar-path=<(lint_jar_path)',
-    '--stamp=<(stamp_path)',
-    '<(is_enabled)',
-  ],
-}
diff --git a/build/android/native_app_dependencies.gypi b/build/android/native_app_dependencies.gypi
deleted file mode 100644
index 6032274..0000000
--- a/build/android/native_app_dependencies.gypi
+++ /dev/null
@@ -1,67 +0,0 @@
-# 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 file is meant to be included into a target to provide a rule
-# to strip and place dependent shared libraries required by a native binary in a
-# single folder that can later be pushed to the device.
-#
-# NOTE: consider packaging your binary as an apk instead of running a native
-# library.
-#
-# To use this, create a gyp target with the following form:
-#  {
-#    'target_name': 'target_that_depends_on_my_binary',
-#    'type': 'none',
-#    'dependencies': [
-#      'my_binary',
-#    ],
-#    'variables': {
-#      'native_binary': '<(PRODUCT_DIR)/my_binary',
-#      'output_dir': 'location to place binary and dependent libraries'
-#    },
-#    'includes': [ '../../build/android/native_app_dependencies.gypi' ],
-#  },
-#
-
-{
-  'variables': {
-    'include_main_binary%': 1,
-  },
-  'conditions': [
-      ['component == "shared_library"', {
-        'dependencies': [
-          '<(DEPTH)/build/android/setup.gyp:copy_system_libraries',
-        ],
-        'variables': {
-          'intermediate_dir': '<(PRODUCT_DIR)/<(_target_name)',
-          'ordered_libraries_file': '<(intermediate_dir)/native_libraries.json',
-        },
-        'actions': [
-          {
-            'variables': {
-              'input_libraries': ['<(native_binary)'],
-            },
-            'includes': ['../../build/android/write_ordered_libraries.gypi'],
-          },
-          {
-            'action_name': 'stripping native libraries',
-            'variables': {
-              'stripped_libraries_dir%': '<(output_dir)',
-              'input_paths': ['<(native_binary)'],
-              'stamp': '<(intermediate_dir)/strip.stamp',
-            },
-            'includes': ['../../build/android/strip_native_libraries.gypi'],
-          },
-        ],
-      }],
-      ['include_main_binary==1', {
-        'copies': [
-          {
-            'destination': '<(output_dir)',
-            'files': [ '<(native_binary)' ],
-          }
-        ],
-      }],
-  ],
-}
diff --git a/build/android/ndk.gyp b/build/android/ndk.gyp
deleted file mode 100644
index 2838a98..0000000
--- a/build/android/ndk.gyp
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (c) 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'cpu_features',
-      'type': 'static_library',
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '<(android_ndk_root)/sources/android/cpufeatures',
-        ],
-      },
-      'sources': [
-        '<(android_ndk_root)/sources/android/cpufeatures/cpu-features.c',
-      ],
-    },
-  ],
-}
diff --git a/build/android/pack_arm_relocations.gypi b/build/android/pack_arm_relocations.gypi
deleted file mode 100644
index 2c80157..0000000
--- a/build/android/pack_arm_relocations.gypi
+++ /dev/null
@@ -1,77 +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.
-
-# This file is meant to be included into an action to provide a rule that
-# packs relocations in Release builds of native libraries.
-#
-# To use this, create a gyp target with the following form:
-#  {
-#    'action_name': 'pack_arm_relocations',
-#    'actions': [
-#      'variables': {
-#        'enable_packing': 'pack relocations if 1, plain file copy if 0'
-#        'exclude_packing_list': 'names of libraries explicitly not packed',
-#        'ordered_libraries_file': 'file generated by write_ordered_libraries'
-#        'input_paths': 'files to be added to the list of inputs'
-#        'stamp': 'file to touch when the action is complete'
-#        'stripped_libraries_dir': 'directory holding stripped libraries',
-#        'packed_libraries_dir': 'directory holding packed libraries',
-#      'includes': [ '../../build/android/pack_arm_relocations.gypi' ],
-#    ],
-#  },
-#
-
-{
-  'variables': {
-    'input_paths': [],
-  },
-  'inputs': [
-    '<(DEPTH)/build/android/gyp/util/build_utils.py',
-    '<(DEPTH)/build/android/gyp/pack_arm_relocations.py',
-    '<(ordered_libraries_file)',
-    '>@(input_paths)',
-  ],
-  'outputs': [
-    '<(stamp)',
-  ],
-  'conditions': [
-    ['enable_packing == 1', {
-      'message': 'Packing relocations for <(_target_name)',
-      'dependencies': [
-        '<(DEPTH)/third_party/android_platform/relocation_packer.gyp:android_relocation_packer#host',
-      ],
-      'inputs': [
-        '<(PRODUCT_DIR)/android_relocation_packer',
-      ],
-      'action': [
-        'python', '<(DEPTH)/build/android/gyp/pack_arm_relocations.py',
-        '--configuration-name=<(CONFIGURATION_NAME)',
-        '--enable-packing=1',
-        '--exclude-packing-list=<@(exclude_packing_list)',
-        '--android-pack-relocations=<(PRODUCT_DIR)/android_relocation_packer',
-        '--stripped-libraries-dir=<(stripped_libraries_dir)',
-        '--packed-libraries-dir=<(packed_libraries_dir)',
-        '--libraries=@FileArg(<(ordered_libraries_file):libraries)',
-        '--stamp=<(stamp)',
-      ],
-    }, {
-      'message': 'Copying libraries (no relocation packing) for <(_target_name)',
-      'action': [
-        'python', '<(DEPTH)/build/android/gyp/pack_arm_relocations.py',
-        '--configuration-name=<(CONFIGURATION_NAME)',
-        '--enable-packing=0',
-        '--stripped-libraries-dir=<(stripped_libraries_dir)',
-        '--packed-libraries-dir=<(packed_libraries_dir)',
-        '--libraries=@FileArg(<(ordered_libraries_file):libraries)',
-        '--stamp=<(stamp)',
-      ],
-    }],
-    ['component == "shared_library"', {
-      # Add a fake output to force the build to always re-run this step. This
-      # is required because the real inputs are not known at gyp-time and
-      # changing base.so may not trigger changes to dependent libraries.
-      'outputs': [ '<(stamp).fake' ]
-    }],
-  ],
-}
diff --git a/build/android/package_resources_action.gypi b/build/android/package_resources_action.gypi
deleted file mode 100644
index 82615ca..0000000
--- a/build/android/package_resources_action.gypi
+++ /dev/null
@@ -1,87 +0,0 @@
-# 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.
-
-# This file is a helper to java_apk.gypi. It should be used to create an
-# action that runs ApkBuilder via ANT.
-#
-# Required variables:
-#  apk_name - File name (minus path & extension) of the output apk.
-#  android_manifest_path - Path to AndroidManifest.xml.
-#  app_manifest_version_name - set the apps 'human readable' version number.
-#  app_manifest_version_code - set the apps version number.
-# Optional variables:
-#  asset_location - The directory where assets are located (if any).
-#  create_density_splits - Whether to create density-based apk splits. Splits
-#    are supported only for minSdkVersion >= 21.
-#  resource_zips - List of paths to resource zip files.
-#  shared_resources - Make a resource package that can be loaded by a different
-#    application at runtime to access the package's resources.
-#  extensions_to_not_compress - E.g.: 'pak,dat,bin'
-#  extra_inputs - List of extra action inputs.
-{
-  'variables': {
-    'asset_location%': '',
-    'create_density_splits%': 0,
-    'resource_zips%': [],
-    'shared_resources%': 0,
-    'extensions_to_not_compress%': '',
-    'extra_inputs%': [],
-    'resource_packaged_apk_name': '<(apk_name)-resources.ap_',
-    'resource_packaged_apk_path': '<(intermediate_dir)/<(resource_packaged_apk_name)',
-  },
-  'action_name': 'package_resources_<(apk_name)',
-  'message': 'packaging resources for <(apk_name)',
-  'inputs': [
-    # TODO: This isn't always rerun correctly, http://crbug.com/351928
-    '<(DEPTH)/build/android/gyp/util/build_utils.py',
-    '<(DEPTH)/build/android/gyp/package_resources.py',
-    '<(android_manifest_path)',
-    '<@(extra_inputs)',
-  ],
-  'outputs': [
-    '<(resource_packaged_apk_path)',
-  ],
-  'action': [
-    'python', '<(DEPTH)/build/android/gyp/package_resources.py',
-    '--android-sdk', '<(android_sdk)',
-    '--aapt-path', '<(android_aapt_path)',
-    '--configuration-name', '<(CONFIGURATION_NAME)',
-    '--android-manifest', '<(android_manifest_path)',
-    '--version-code', '<(app_manifest_version_code)',
-    '--version-name', '<(app_manifest_version_name)',
-    '--no-compress', '<(extensions_to_not_compress)',
-    '--apk-path', '<(resource_packaged_apk_path)',
-  ],
-  'conditions': [
-    ['shared_resources == 1', {
-      'action': [
-        '--shared-resources',
-      ],
-    }],
-    ['asset_location != ""', {
-      'action': [
-        '--asset-dir', '<(asset_location)',
-      ],
-    }],
-    ['create_density_splits == 1', {
-      'action': [
-        '--create-density-splits',
-      ],
-      'outputs': [
-        '<(resource_packaged_apk_path)-hdpi',
-        '<(resource_packaged_apk_path)-xhdpi',
-        '<(resource_packaged_apk_path)-xxhdpi',
-        '<(resource_packaged_apk_path)-tvdpi',
-      ],
-    }],
-    ['resource_zips != []', {
-      'action': [
-        '--resource-zips', '>(resource_zips)',
-      ],
-      'inputs': [
-        '>@(resource_zips)',
-      ],
-    }],
-  ],
-}
diff --git a/build/android/push_libraries.gypi b/build/android/push_libraries.gypi
deleted file mode 100644
index c96e5a5..0000000
--- a/build/android/push_libraries.gypi
+++ /dev/null
@@ -1,49 +0,0 @@
-# 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 file is meant to be included into an action to provide a rule that
-# pushes stripped shared libraries to the attached Android device. This should
-# only be used with the gyp_managed_install flag set.
-#
-# To use this, create a gyp target with the following form:
-#  {
-#    'actions': [
-#      'variables': {
-#        'ordered_libraries_file': 'file generated by write_ordered_libraries'
-#        'strip_stamp': 'stamp from strip action to block on'
-#        'libraries_source_dir': 'location where stripped libraries are stored'
-#        'device_library_dir': 'location on the device where to put pushed libraries',
-#        'push_stamp': 'file to touch when the action is complete'
-#        'configuration_name': 'The build CONFIGURATION_NAME'
-#      },
-#      'includes': [ '../../build/android/push_libraries.gypi' ],
-#    ],
-#  },
-#
-
-{
-  'action_name': 'push_libraries_<(_target_name)',
-  'message': 'Pushing libraries to device for <(_target_name)',
-  'inputs': [
-    '<(DEPTH)/build/android/gyp/util/build_utils.py',
-    '<(DEPTH)/build/android/gyp/util/md5_check.py',
-    '<(DEPTH)/build/android/gyp/push_libraries.py',
-    '<(strip_stamp)',
-    '<(strip_additional_stamp)',
-    '<(build_device_config_path)',
-    '<(pack_arm_relocations_stamp)',
-  ],
-  'outputs': [
-    '<(push_stamp)',
-  ],
-  'action': [
-    'python', '<(DEPTH)/build/android/gyp/push_libraries.py',
-    '--build-device-configuration=<(build_device_config_path)',
-    '--libraries-dir=<(libraries_source_dir)',
-    '--device-dir=<(device_library_dir)',
-    '--libraries=@FileArg(<(ordered_libraries_file):libraries)',
-    '--stamp=<(push_stamp)',
-    '--configuration-name=<(configuration_name)',
-  ],
-}
diff --git a/build/android/pylib/device/commands/commands.gyp b/build/android/pylib/device/commands/commands.gyp
deleted file mode 100644
index b5b5bc8..0000000
--- a/build/android/pylib/device/commands/commands.gyp
+++ /dev/null
@@ -1,20 +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.
-
-{
-  'targets': [
-    {
-      # GN version: //build/android/pylib/devices/commands:chromium_commands
-      'target_name': 'chromium_commands',
-      'type': 'none',
-      'variables': {
-        'add_to_dependents_classpaths': 0,
-        'java_in_dir': ['java'],
-      },
-      'includes': [
-        '../../../../../build/java.gypi',
-      ],
-    }
-  ],
-}
diff --git a/build/android/pylib/remote/device/dummy/dummy.gyp b/build/android/pylib/remote/device/dummy/dummy.gyp
deleted file mode 100644
index b003edc..0000000
--- a/build/android/pylib/remote/device/dummy/dummy.gyp
+++ /dev/null
@@ -1,25 +0,0 @@
-# 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.
-
-# Running gtests on a remote device via am instrument requires both an "app"
-# APK and a "test" APK with different package names. Our gtests only use one
-# APK, so we build a dummy APK to upload as the app.
-
-{
-  'targets': [
-    {
-      # GN: //build/android/pylib/remote/device/dummy:remote_device_dummy_apk
-      'target_name': 'remote_device_dummy_apk',
-      'type': 'none',
-      'variables': {
-        'apk_name': 'remote_device_dummy',
-        'java_in_dir': '.',
-        'android_manifest_path': '../../../../../../build/android/AndroidManifest.xml',
-      },
-      'includes': [
-        '../../../../../../build/java_apk.gypi',
-      ]
-    },
-  ]
-}
diff --git a/build/android/rezip.gyp b/build/android/rezip.gyp
deleted file mode 100644
index 1115177..0000000
--- a/build/android/rezip.gyp
+++ /dev/null
@@ -1,45 +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.
-
-# Build the rezip build tool.
-{
-  'targets': [
-    {
-      # GN: //build/android/rezip:rezip
-      'target_name': 'rezip_apk_jar',
-      'type': 'none',
-      'variables': {
-        'java_in_dir': 'rezip',
-        'compile_stamp': '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/compile.stamp',
-        'javac_jar_path': '<(PRODUCT_DIR)/lib.java/rezip_apk.jar',
-      },
-      'actions': [
-        {
-          'action_name': 'javac_<(_target_name)',
-          'message': 'Compiling <(_target_name) java sources',
-          'variables': {
-            'java_sources': ['>!@(find >(java_in_dir) -name "*.java")'],
-          },
-          'inputs': [
-            '<(DEPTH)/build/android/gyp/util/build_utils.py',
-            '<(DEPTH)/build/android/gyp/javac.py',
-            '>@(java_sources)',
-          ],
-          'outputs': [
-            '<(compile_stamp)',
-            '<(javac_jar_path)',
-          ],
-          'action': [
-            'python', '<(DEPTH)/build/android/gyp/javac.py',
-            '--classpath=',
-            '--classes-dir=<(SHARED_INTERMEDIATE_DIR)/<(_target_name)',
-            '--jar-path=<(javac_jar_path)',
-            '--stamp=<(compile_stamp)',
-            '>@(java_sources)',
-          ]
-        },
-      ],
-    }
-  ],
-}
diff --git a/build/android/setup.gyp b/build/android/setup.gyp
deleted file mode 100644
index b3c3422..0000000
--- a/build/android/setup.gyp
+++ /dev/null
@@ -1,82 +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.
-{
-  'conditions': [
-    ['component == "shared_library"', {
-      'targets': [
-        {
-          # These libraries from the Android ndk are required to be packaged with
-          # any APK that is built with them. build/java_apk.gypi expects any
-          # libraries that should be packaged with the apk to be in
-          # <(SHARED_LIB_DIR)
-          'target_name': 'copy_system_libraries',
-          'type': 'none',
-          'copies': [
-            {
-              'destination': '<(SHARED_LIB_DIR)/',
-              'files': [
-                '<(android_libcpp_libs_dir)/libc++_shared.so',
-              ],
-            },
-          ],
-        },
-      ],
-    }],
-  ],
-  'targets': [
-    {
-      'target_name': 'get_build_device_configurations',
-      'type': 'none',
-      'actions': [
-        {
-          'action_name': 'get configurations',
-          'inputs': [
-            'gyp/util/build_device.py',
-            'gyp/get_device_configuration.py',
-          ],
-          'outputs': [
-            '<(build_device_config_path)',
-            '<(build_device_config_path).fake',
-          ],
-          'action': [
-            'python', 'gyp/get_device_configuration.py',
-            '--output=<(build_device_config_path)',
-          ],
-        }
-      ],
-    },
-    {
-      # Target for creating common output build directories. Creating output
-      # dirs beforehand ensures that build scripts can assume these folders to
-      # exist and there are no race conditions resulting from build scripts
-      # trying to create these directories.
-      # The build/java.gypi target depends on this target.
-      'target_name': 'build_output_dirs',
-      'type': 'none',
-      'actions': [
-        {
-          'action_name': 'create_java_output_dirs',
-          'variables' : {
-            'output_dirs' : [
-              '<(PRODUCT_DIR)/apks',
-              '<(PRODUCT_DIR)/lib.java',
-              '<(PRODUCT_DIR)/test.lib.java',
-            ]
-          },
-          'inputs' : [],
-          # By not specifying any outputs, we ensure that this command isn't
-          # re-run when the output directories are touched (i.e. apks are
-          # written to them).
-          'outputs': [''],
-          'action': [
-            'mkdir',
-            '-p',
-            '<@(output_dirs)',
-          ],
-        },
-      ],
-    }, # build_output_dirs
-  ]
-}
-
diff --git a/build/android/strip_native_libraries.gypi b/build/android/strip_native_libraries.gypi
deleted file mode 100644
index bdffcfd..0000000
--- a/build/android/strip_native_libraries.gypi
+++ /dev/null
@@ -1,54 +0,0 @@
-# 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 file is meant to be included into an action to provide a rule that strips
-# native libraries.
-#
-# To use this, create a gyp target with the following form:
-#  {
-#    'action_name': 'strip_native_libraries',
-#    'actions': [
-#      'variables': {
-#        'ordered_libraries_file': 'file generated by write_ordered_libraries'
-#        'input_paths': 'files to be added to the list of inputs'
-#        'stamp': 'file to touch when the action is complete'
-#        'stripped_libraries_dir': 'directory to store stripped libraries',
-#      },
-#      'includes': [ '../../build/android/strip_native_libraries.gypi' ],
-#    ],
-#  },
-#
-
-{
-  'message': 'Stripping libraries for <(_target_name)',
-  'variables': {
-    'input_paths': [],
-  },
-  'inputs': [
-    '<(DEPTH)/build/android/gyp/util/build_utils.py',
-    '<(DEPTH)/build/android/gyp/strip_library_for_device.py',
-    '<(ordered_libraries_file)',
-    '>@(input_paths)',
-  ],
-  'outputs': [
-    '<(stamp)',
-  ],
-  'conditions': [
-    ['component == "shared_library"', {
-      # Add a fake output to force the build to always re-run this step. This
-      # is required because the real inputs are not known at gyp-time and
-      # changing base.so may not trigger changes to dependent libraries.
-      'outputs': [ '<(stamp).fake' ]
-    }],
-  ],
-  'action': [
-    'python', '<(DEPTH)/build/android/gyp/strip_library_for_device.py',
-    '--android-strip=<(android_strip)',
-    '--android-strip-arg=--strip-unneeded',
-    '--stripped-libraries-dir=<(stripped_libraries_dir)',
-    '--libraries-dir=<(SHARED_LIB_DIR),<(PRODUCT_DIR)',
-    '--libraries=@FileArg(<(ordered_libraries_file):libraries)',
-    '--stamp=<(stamp)',
-  ],
-}
diff --git a/build/android/test_runner.gypi b/build/android/test_runner.gypi
deleted file mode 100644
index 92f355b..0000000
--- a/build/android/test_runner.gypi
+++ /dev/null
@@ -1,72 +0,0 @@
-# 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.
-
-# Generates a script in the output bin directory which runs the test
-# target using the test runner script in build/android/pylib/test_runner.py.
-#
-# To use this, include this file in a gtest or instrumentation test target.
-# {
-#   'target_name': 'gtest',
-#   'type': 'none',
-#   'variables': {
-#     'test_type': 'gtest',  # string
-#     'test_suite_name': 'gtest_suite'  # string
-#     'isolate_file': 'path/to/gtest.isolate'  # string
-#   },
-#   'includes': ['path/to/this/gypi/file'],
-# }
-#
-# {
-#   'target_name': 'instrumentation_apk',
-#   'type': 'none',
-#   'variables': {
-#     'test_type': 'instrumentation',  # string
-#     'apk_name': 'TestApk'  # string
-#     'isolate_file': 'path/to/instrumentation_test.isolate'  # string
-#   },
-#   'includes': ['path/to/this/gypi/file'],
-# }
-#
-
-{
-  'variables': {
-    'variables': {
-      'isolate_file%': '',
-    },
-    'test_runner_args': ['--output-directory', '<(PRODUCT_DIR)'],
-    'conditions': [
-      ['test_type == "gtest"', {
-        'test_runner_args': ['--suite', '<(test_suite_name)'],
-        'script_name': 'run_<(test_suite_name)',
-      }],
-      ['test_type == "instrumentation"', {
-        'test_runner_args': ['--test-apk', '<(apk_name)'],
-        'script_name': 'run_<(_target_name)',
-      }],
-      ['isolate_file != ""', {
-        'test_runner_args': ['--isolate-file-path', '<(isolate_file)']
-      }],
-    ],
-  },
-  'actions': [
-    {
-      'action_name': 'create_test_runner_script_<(script_name)',
-      'message': 'Creating test runner script <(script_name)',
-      'variables': {
-        'script_output_path': '<(PRODUCT_DIR)/bin/<(script_name)',
-      },
-      'inputs': [
-        '<(DEPTH)/build/android/gyp/create_test_runner_script.py',
-      ],
-      'outputs': [
-        '<(script_output_path)'
-      ],
-      'action': [
-        'python', '<(DEPTH)/build/android/gyp/create_test_runner_script.py',
-        '--script-output-path=<(script_output_path)',
-        '<(test_type)', '<@(test_runner_args)',
-      ],
-    },
-  ],
-}
\ No newline at end of file
diff --git a/build/android/tests/multiple_proguards/multiple_proguards.gyp b/build/android/tests/multiple_proguards/multiple_proguards.gyp
deleted file mode 100644
index 48a5d7b..0000000
--- a/build/android/tests/multiple_proguards/multiple_proguards.gyp
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (c) 2013 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-{
-  'variables': {
-    'chromium_code': 1,
-  },
-  'targets': [
-    {
-      'target_name': 'multiple_proguards_test_apk',
-      'type': 'none',
-      'variables': {
-        'app_manifest_version_name%': '<(android_app_version_name)',
-        'java_in_dir': '.',
-        'proguard_enabled': 'true',
-        'proguard_flags_paths': [
-          # Both these proguard?.flags files need to be part of the build to
-          # remove both warnings from the src/dummy/DummyActivity.java file, else the
-          # build will fail.
-          'proguard1.flags',
-          'proguard2.flags',
-        ],
-        'R_package': 'dummy',
-        'R_package_relpath': 'dummy',
-        'apk_name': 'MultipleProguards',
-        # This is a build-only test. There's nothing to install.
-        'gyp_managed_install': 0,
-        # The Java code produces warnings, so force the build to not show them.
-        'chromium_code': 0,
-      },
-      'includes': [ '../../../../build/java_apk.gypi' ],
-    },
-  ],
-}
diff --git a/build/android/write_ordered_libraries.gypi b/build/android/write_ordered_libraries.gypi
deleted file mode 100644
index 1b52e71..0000000
--- a/build/android/write_ordered_libraries.gypi
+++ /dev/null
@@ -1,43 +0,0 @@
-# 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 file is meant to be included into an action to provide a rule that
-# generates a json file with the list of dependent libraries needed for a given
-# shared library or executable.
-#
-# To use this, create a gyp target with the following form:
-#  {
-#    'actions': [
-#      'variables': {
-#        'input_libraries': 'shared library or executable to process',
-#        'ordered_libraries_file': 'file to generate'
-#      },
-#      'includes': [ '../../build/android/write_ordered_libraries.gypi' ],
-#    ],
-#  },
-#
-
-{
-  'action_name': 'ordered_libraries_<(_target_name)<(subtarget)',
-  'message': 'Writing dependency ordered libraries for <(_target_name)',
-  'variables': {
-    'input_libraries%': [],
-    'subtarget%': '',
-  },
-  'inputs': [
-    '<(DEPTH)/build/android/gyp/util/build_utils.py',
-    '<(DEPTH)/build/android/gyp/write_ordered_libraries.py',
-    '<@(input_libraries)',
-  ],
-  'outputs': [
-    '<(ordered_libraries_file)',
-  ],
-  'action': [
-    'python', '<(DEPTH)/build/android/gyp/write_ordered_libraries.py',
-    '--input-libraries=<(input_libraries)',
-    '--libraries-dir=<(SHARED_LIB_DIR),<(PRODUCT_DIR)',
-    '--readelf=<(android_readelf)',
-    '--output=<(ordered_libraries_file)',
-  ],
-}
diff --git a/build/apk_browsertest.gypi b/build/apk_browsertest.gypi
deleted file mode 100644
index 316f52f..0000000
--- a/build/apk_browsertest.gypi
+++ /dev/null
@@ -1,43 +0,0 @@
-# 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.
-
-# This file is meant to be included into a target to provide a rule
-# to build APK-based browser test suites.
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'test_suite_name_apk',
-#   'type': 'none',
-#   'variables': {
-#     'test_suite_name': 'test_suite_name',  # string
-#     'java_in_dir': 'path/to/java/dir',
-#   },
-#   'includes': ['path/to/this/gypi/file'],
-# }
-#
-
-{
-  'dependencies': [
-    '<(DEPTH)/base/base.gyp:base_java',
-    '<(DEPTH)/build/android/pylib/device/commands/commands.gyp:chromium_commands',
-    '<(DEPTH)/build/android/pylib/remote/device/dummy/dummy.gyp:remote_device_dummy_apk',
-    '<(DEPTH)/testing/android/appurify_support.gyp:appurify_support_java',
-    '<(DEPTH)/testing/android/native_test.gyp:native_test_java',
-    '<(DEPTH)/tools/android/android_tools.gyp:android_tools',
-  ],
-  'conditions': [
-     ['OS == "android"', {
-       'variables': {
-         # These are used to configure java_apk.gypi included below.
-         'apk_name': '<(test_suite_name)',
-         'intermediate_dir': '<(PRODUCT_DIR)/<(test_suite_name)_apk',
-         'final_apk_path': '<(intermediate_dir)/<(test_suite_name)-debug.apk',
-         'native_lib_target': 'lib<(test_suite_name)',
-         # TODO(yfriedman, cjhopman): Support managed installs for gtests.
-         'gyp_managed_install': 0,
-       },
-       'includes': [ 'java_apk.gypi' ],
-     }],  # 'OS == "android"
-  ],  # conditions
-}
diff --git a/build/apk_fake_jar.gypi b/build/apk_fake_jar.gypi
deleted file mode 100644
index 128b84c..0000000
--- a/build/apk_fake_jar.gypi
+++ /dev/null
@@ -1,15 +0,0 @@
-# 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 file is meant to be included into a target to provide a rule
-# to build Java in a consistent manner.
-
-{
-  'all_dependent_settings': {
-    'variables': {
-      'input_jars_paths': ['>(apk_output_jar_path)'],
-      'library_dexed_jars_paths': ['>(apk_output_jar_path)'],
-    },
-  },
-}
diff --git a/build/apk_test.gypi b/build/apk_test.gypi
deleted file mode 100644
index 2a6d312..0000000
--- a/build/apk_test.gypi
+++ /dev/null
@@ -1,44 +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 meant to be included into a target to provide a rule
-# to build APK based test suites.
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'test_suite_name_apk',
-#   'type': 'none',
-#   'variables': {
-#     'test_suite_name': 'test_suite_name',  # string
-#     'input_jars_paths': ['/path/to/test_suite.jar', ... ],  # list
-#   },
-#   'includes': ['path/to/this/gypi/file'],
-# }
-#
-
-{
-  'dependencies': [
-    '<(DEPTH)/base/base.gyp:base_java',
-    '<(DEPTH)/build/android/pylib/device/commands/commands.gyp:chromium_commands',
-    '<(DEPTH)/build/android/pylib/remote/device/dummy/dummy.gyp:remote_device_dummy_apk',
-    '<(DEPTH)/testing/android/appurify_support.gyp:appurify_support_java',
-    '<(DEPTH)/tools/android/android_tools.gyp:android_tools',
-  ],
-  'conditions': [
-     ['OS == "android"', {
-       'variables': {
-         # These are used to configure java_apk.gypi included below.
-         'test_type': 'gtest',
-         'apk_name': '<(test_suite_name)',
-         'intermediate_dir': '<(PRODUCT_DIR)/<(test_suite_name)_apk',
-         'final_apk_path': '<(intermediate_dir)/<(test_suite_name)-debug.apk',
-         'java_in_dir': '<(DEPTH)/testing/android/native_test/java',
-         'native_lib_target': 'lib<(test_suite_name)',
-         # TODO(yfriedman, cjhopman): Support managed installs for gtests.
-         'gyp_managed_install': 0,
-       },
-       'includes': [ 'java_apk.gypi', 'android/test_runner.gypi' ],
-     }],  # 'OS == "android"
-  ],  # conditions
-}
diff --git a/build/chrome_settings.gypi b/build/chrome_settings.gypi
deleted file mode 100644
index e9c7535..0000000
--- a/build/chrome_settings.gypi
+++ /dev/null
@@ -1,30 +0,0 @@
-# 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 file contains settings for ../chrome/chrome.gyp that other gyp files
-# also use.
-{
-  'variables': {
-    # TODO: remove this helper when we have loops in GYP
-    'apply_locales_cmd': ['python', '<(DEPTH)/build/apply_locales.py'],
-
-    'conditions': [
-      ['OS=="mac"', {
-        'conditions': [
-          ['branding=="Chrome"', {
-            'mac_bundle_id': 'com.google.Chrome',
-            'mac_creator': 'rimZ',
-            # The policy .grd file also needs the bundle id.
-            'grit_defines': ['-D', 'mac_bundle_id=com.google.Chrome'],
-          }, {  # else: branding!="Chrome"
-            'mac_bundle_id': 'org.chromium.Chromium',
-            'mac_creator': 'Cr24',
-            # The policy .grd file also needs the bundle id.
-            'grit_defines': ['-D', 'mac_bundle_id=org.chromium.Chromium'],
-          }],  # branding
-        ],  # conditions
-      }],  # OS=="mac"
-    ],  # conditions
-  },  # variables
-}
diff --git a/build/common.gypi b/build/common.gypi
deleted file mode 100644
index 08e8d68..0000000
--- a/build/common.gypi
+++ /dev/null
@@ -1,6201 +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.
-
-# IMPORTANT:
-# Please don't directly include this file if you are building via gyp_chromium,
-# since gyp_chromium is automatically forcing its inclusion.
-{
-  # Variables expected to be overriden on the GYP command line (-D) or by
-  # ~/.gyp/include.gypi.
-  'variables': {
-    # Putting a variables dict inside another variables dict looks kind of
-    # weird.  This is done so that 'host_arch', 'chromeos', etc are defined as
-    # variables within the outer variables dict here.  This is necessary
-    # to get these variables defined for the conditions within this variables
-    # dict that operate on these variables.
-    'variables': {
-      'variables': {
-        'variables': {
-          'variables': {
-            # Whether we're building a ChromeOS build.
-            'chromeos%': 0,
-
-            # Whether we're building the cast (chromecast) shell
-            'chromecast%': 0,
-
-            # Whether or not we are using the Aura windowing framework.
-            'use_aura%': 0,
-
-            # Whether or not we are building the Ash shell.
-            'use_ash%': 0,
-
-            # Whether or not we are using CRAS, the ChromeOS Audio Server.
-            'use_cras%': 0,
-
-            # Use a raw surface abstraction.
-            'use_ozone%': 0,
-
-            # Configure the build for small devices. See crbug.com/318413
-            'embedded%': 0,
-
-            'conditions': [
-              # Compute the architecture that we're building on.
-              ['OS=="win" or OS=="ios"', {
-                'host_arch%': 'ia32',
-              }, {
-                'host_arch%': '<!pymod_do_main(detect_host_arch)',
-              }],
-            ],
-          },
-          # Copy conditionally-set variables out one scope.
-          'chromeos%': '<(chromeos)',
-          'chromecast%': '<(chromecast)',
-          'use_aura%': '<(use_aura)',
-          'use_ash%': '<(use_ash)',
-          'use_cras%': '<(use_cras)',
-          'use_ozone%': '<(use_ozone)',
-          'embedded%': '<(embedded)',
-          'host_arch%': '<(host_arch)',
-
-          # Whether we are using Views Toolkit
-          'toolkit_views%': 0,
-
-          # Use the PCI lib to collect GPU information.
-          'use_libpci%': 1,
-
-          # Use OpenSSL instead of NSS as the underlying SSL and crypto
-          # implementation. Certificate verification will in most cases be
-          # handled by the OS. If OpenSSL's struct X509 is used to represent
-          # certificates, use_openssl_certs must be set.
-          'use_openssl%': 0,
-
-          # Use OpenSSL for representing certificates. When targeting Android,
-          # the platform certificate library is used for certificate
-          # verification. On other targets, this flag also enables OpenSSL for
-          # certificate verification, but this configuration is unsupported.
-          'use_openssl_certs%': 0,
-
-          # Disable viewport meta tag by default.
-          'enable_viewport%': 0,
-
-          # Enable HiDPI support.
-          'enable_hidpi%': 0,
-
-          # Enable top chrome material design.
-          'enable_topchrome_md%' : 0,
-
-          # Force building against pre-built sysroot image on linux.  By default
-          # the sysroot image is only used for Official builds  or when cross
-          # compiling to arm or mips.
-          'use_sysroot%': 0,
-
-          # Override buildtype to select the desired build flavor.
-          # Dev - everyday build for development/testing
-          # Official - release build (generally implies additional processing)
-          # TODO(mmoss) Once 'buildtype' is fully supported (e.g. Windows gyp
-          # conversion is done), some of the things which are now controlled by
-          # 'branding', such as symbol generation, will need to be refactored
-          # based on 'buildtype' (i.e. we don't care about saving symbols for
-          # non-Official # builds).
-          'buildtype%': 'Dev',
-
-          # Override branding to select the desired branding flavor.
-          'branding%': 'Chromium',
-
-          'conditions': [
-            # ChromeOS and Windows use Aura and Ash.
-            ['chromeos==1 or OS=="win" or OS=="linux"', {
-              'use_ash%': 1,
-              'use_aura%': 1,
-            }],
-
-            ['chromecast==1 and OS!="android"', {
-              'embedded%': 1,
-              'use_ozone%': 1,
-            }],
-
-            # Ozone uses Aura.
-            ['use_ozone==1', {
-              'use_aura%': 1,
-            }],
-
-            # Whether we're a traditional desktop unix.
-            ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris") and chromeos==0', {
-              'desktop_linux%': 1,
-            }, {
-              'desktop_linux%': 0,
-            }],
-
-            # Embedded implies ozone.
-            ['embedded==1', {
-              'use_ozone%': 1,
-            }],
-
-            ['OS=="android"', {
-              'target_arch%': 'arm',
-            }, {
-              # Default architecture we're building for is the architecture we're
-              # building on, and possibly sub-architecture (for iOS builds).
-              'target_arch%': '<(host_arch)',
-            }],
-          ],
-        },
-        # Copy conditionally-set variables out one scope.
-        'chromeos%': '<(chromeos)',
-        'chromecast%': '<(chromecast)',
-        'desktop_linux%': '<(desktop_linux)',
-        'use_aura%': '<(use_aura)',
-        'use_ash%': '<(use_ash)',
-        'use_cras%': '<(use_cras)',
-        'use_ozone%': '<(use_ozone)',
-        'embedded%': '<(embedded)',
-        'use_libpci%': '<(use_libpci)',
-        'use_openssl%': '<(use_openssl)',
-        'use_openssl_certs%': '<(use_openssl_certs)',
-        'enable_viewport%': '<(enable_viewport)',
-        'enable_hidpi%': '<(enable_hidpi)',
-        'enable_topchrome_md%': '<(enable_topchrome_md)',
-        'buildtype%': '<(buildtype)',
-        'branding%': '<(branding)',
-        'branding_path_component%': '<(branding)',
-        'host_arch%': '<(host_arch)',
-        'target_arch%': '<(target_arch)',
-
-        'target_subarch%': '',
-
-        # The channel to build on Android: stable, beta, dev, canary, or
-        # default. "default" should be used on non-official builds.
-        'android_channel%': 'default',
-
-        # Set ARM architecture version.
-        'arm_version%': 7,
-
-        # Use aurax11 for clipboard implementation. This is true on linux_aura.
-        'use_clipboard_aurax11%': 0,
-
-        # goma settings.
-        # 1 to use goma.
-        # If no gomadir is set, it uses the default gomadir.
-        'use_goma%': 0,
-        'gomadir%': '',
-
-        # The system root for cross-compiles. Default: none.
-        'sysroot%': '',
-        'chroot_cmd%': '',
-
-        # The system libdir used for this ABI.
-        'system_libdir%': 'lib',
-
-        # Default MIPS arch variant. This is set in the conditions block
-        # below for MIPS targets.
-        'mips_arch_variant%': '',
-
-        # MIPS DSP ASE revision. Possible values are:
-        #   0: unavailable
-        #   1: revision 1
-        #   2: revision 2
-        'mips_dsp_rev%': 0,
-
-        'conditions': [
-          ['branding == "Chrome"', {
-            'branding_path_component%': 'google_chrome',
-          }],
-
-          ['branding == "Chromium"', {
-            'branding_path_component%': 'chromium',
-          }],
-
-          # Ash needs Aura.
-          ['use_aura==0', {
-            'use_ash%': 0,
-          }],
-
-          # Set default value of toolkit_views based on OS.
-          ['OS=="mac" or OS=="win" or chromeos==1 or use_aura==1', {
-            'toolkit_views%': 1,
-          }, {
-            'toolkit_views%': 0,
-          }],
-
-          # Embedded builds use aura without ash or views.
-          ['embedded==1', {
-            'use_aura%': 1,
-            'use_ash%': 0,
-            'toolkit_views%': 0,
-          }],
-
-          # Enable HiDPI on Mac OS, Chrome OS, Windows and Linux.
-          ['OS=="mac" or chromeos==1 or OS=="win" or OS=="linux"', {
-            'enable_hidpi%': 1,
-          }],
-
-          # Enable Top Chrome Material Design on Chrome OS, and Windows.
-          ['chromeos==1 or OS=="win"', {
-            'enable_topchrome_md%': 1,
-          }],
-
-          # Enable the OpenSSL backend on Mac OS and Windows.
-          ['OS=="mac" or OS=="win"', {
-            'use_openssl%': 1,
-          }],
-
-          # Enable App Launcher everywhere but mobile.
-          ['OS!="ios" and OS!="android"', {
-            'enable_app_list%': 1,
-          }, {
-            'enable_app_list%': 0,
-          }],
-
-          ['use_aura==1 and OS!="android"', {
-            'use_default_render_theme%': 1,
-          }, {
-            'use_default_render_theme%': 0,
-          }],
-
-          ['use_ozone==1', {
-            'use_ozone_evdev%': 1,
-          }, {
-            'use_ozone_evdev%': 0,
-          }],
-
-          # Set default gomadir.
-          ['OS=="win"', {
-            'gomadir': 'c:\\goma\\goma-win',
-          }, {
-            'gomadir': '<!(/bin/echo -n ${HOME}/goma)',
-          }],
-
-          # Set the default "target_subarch" on iOS. Valid values are "arm32",
-          # "arm64" and "both" (meaning a fat binary).
-          ['OS=="ios"', {
-            'target_subarch%': 'arm64',
-          }],
-
-          # Set arch variants for MIPS platforms.
-          ['target_arch=="mips64el"', {
-            'conditions': [
-              ['OS=="android"', {
-                'mips_arch_variant%': 'r6',
-              }, {
-                'mips_arch_variant%': 'r2',
-              }],
-            ],
-          }],
-
-          ['target_arch=="mipsel"', {
-            'mips_arch_variant%': 'r1',
-          }],
-
-          ['OS=="linux" and target_arch=="arm" and chromeos==0', {
-            # sysroot needs to be an absolute path otherwise it generates
-            # incorrect results when passed to pkg-config
-            'sysroot%': '<!(cd <(DEPTH) && pwd -P)/chrome/installer/linux/debian_wheezy_arm-sysroot',
-          }], # OS=="linux" and target_arch=="arm" and chromeos==0
-
-          ['OS=="linux" and ((branding=="Chrome" and buildtype=="Official" and chromeos==0) or use_sysroot==1)' , {
-            'conditions': [
-              ['target_arch=="x64"', {
-                'sysroot%': '<!(cd <(DEPTH) && pwd -P)/chrome/installer/linux/debian_wheezy_amd64-sysroot',
-              }],
-              ['target_arch=="ia32"', {
-                'sysroot%': '<!(cd <(DEPTH) && pwd -P)/chrome/installer/linux/debian_wheezy_i386-sysroot',
-              }],
-          ],
-          }], # OS=="linux" and branding=="Chrome" and buildtype=="Official" and chromeos==0
-
-          ['OS=="linux" and target_arch=="mipsel"', {
-            'sysroot%': '<!(cd <(DEPTH) && pwd -P)/mipsel-sysroot/sysroot',
-          }],
-        ],
-      },
-
-      # Copy conditionally-set variables out one scope.
-      'chromeos%': '<(chromeos)',
-      'chromecast%': '<(chromecast)',
-      'host_arch%': '<(host_arch)',
-      'target_arch%': '<(target_arch)',
-      'target_subarch%': '<(target_subarch)',
-      'mips_arch_variant%': '<(mips_arch_variant)',
-      'mips_dsp_rev%': '<(mips_dsp_rev)',
-      'toolkit_views%': '<(toolkit_views)',
-      'desktop_linux%': '<(desktop_linux)',
-      'use_aura%': '<(use_aura)',
-      'use_ash%': '<(use_ash)',
-      'use_cras%': '<(use_cras)',
-      'use_libpci%': '<(use_libpci)',
-      'use_ozone%': '<(use_ozone)',
-      'use_ozone_evdev%': '<(use_ozone_evdev)',
-      'use_clipboard_aurax11%': '<(use_clipboard_aurax11)',
-      'embedded%': '<(embedded)',
-      'use_openssl%': '<(use_openssl)',
-      'use_openssl_certs%': '<(use_openssl_certs)',
-      'enable_viewport%': '<(enable_viewport)',
-      'enable_hidpi%': '<(enable_hidpi)',
-      'enable_topchrome_md%': '<(enable_topchrome_md)',
-      'android_channel%': '<(android_channel)',
-      'use_goma%': '<(use_goma)',
-      'gomadir%': '<(gomadir)',
-      'enable_app_list%': '<(enable_app_list)',
-      'use_default_render_theme%': '<(use_default_render_theme)',
-      'buildtype%': '<(buildtype)',
-      'branding%': '<(branding)',
-      'branding_path_component%': '<(branding_path_component)',
-      'arm_version%': '<(arm_version)',
-      'sysroot%': '<(sysroot)',
-      'chroot_cmd%': '<(chroot_cmd)',
-      'system_libdir%': '<(system_libdir)',
-
-      # Set to 1 to enable fast builds. Set to 2 for even faster builds
-      # (it disables debug info for fastest compilation - only for use
-      # on compile-only bots).
-      'fastbuild%': 0,
-
-      # Set to 1 to not store any build metadata, e.g. ifdef out all __DATE__
-      # and __TIME__. Set to 0 to reenable the use of these macros in the code
-      # base. See http://crbug.com/314403.
-      'dont_embed_build_metadata%': 1,
-
-      # Set to 1 to force Visual C++ to use legacy debug information format /Z7.
-      # This is useful for parallel compilation tools which can't support /Zi.
-      # Only used on Windows.
-      'win_z7%' : 0,
-
-      # Set to 1 to enable dcheck in Release build.
-      'dcheck_always_on%': 0,
-
-      # Set to 1 to make a build that disables unshipped tracing events.
-      # Note: this setting is ignored if buildtype=="Official".
-      'tracing_like_official_build%': 0,
-
-      # Disable image loader component extension by default.
-      'image_loader_extension%': 0,
-
-      # Set NEON compilation flags.
-      'arm_neon%': 1,
-
-      # Detect NEON support at run-time.
-      'arm_neon_optional%': 0,
-
-      # Use libjpeg-turbo as the JPEG codec used by Chromium.
-      'use_libjpeg_turbo%': 1,
-
-      # Use system libjpeg. Note that the system's libjepg will be used even if
-      # use_libjpeg_turbo is set.
-      'use_system_libjpeg%': 0,
-
-      # By default, component is set to static_library and it can be overriden
-      # by the GYP command line or by ~/.gyp/include.gypi.
-      'component%': 'static_library',
-
-      # /analyze is off by default on Windows because it is very slow and noisy.
-      # Enable with GYP_DEFINES=win_analyze=1
-      'win_analyze%': 0,
-
-      # Set to select the Title Case versions of strings in GRD files.
-      'use_titlecase_in_grd%': 0,
-
-      # Use translations provided by volunteers at launchpad.net.  This
-      # currently only works on Linux.
-      'use_third_party_translations%': 0,
-
-      # Remoting compilation is enabled by default. Set to 0 to disable.
-      'remoting%': 1,
-
-      # Configuration policy is enabled by default. Set to 0 to disable.
-      'configuration_policy%': 1,
-
-      # Variable safe_browsing is used to control the build time configuration
-      # for safe browsing feature. Safe browsing can be compiled in 4 different
-      # levels: 0 disables it, 1 enables it fully, and 2 enables only UI and
-      # reporting features for use with Data Saver on Mobile, and 3 enables
-      # extended mobile protection via an external API.  When 3 is fully
-      # deployed, it will replace 2.
-      'safe_browsing%': 1,
-
-      # Web speech is enabled by default. Set to 0 to disable.
-      'enable_web_speech%': 1,
-
-      # 'Ok Google' hotwording is enabled by default. Set to 0 to disable.
-      'enable_hotwording%': 1,
-
-      # Notifications are compiled in by default. Set to 0 to disable.
-      'notifications%' : 1,
-
-      # Use dsymutil to generate real .dSYM files on Mac. The default is 0 for
-      # regular builds and 1 for ASan builds.
-      'mac_want_real_dsym%': 'default',
-
-      # If this is set, the clang plugins used on the buildbot will be used.
-      # Run tools/clang/scripts/update.sh to make sure they are compiled.
-      # This causes 'clang_chrome_plugins_flags' to be set.
-      # Has no effect if 'clang' is not set as well.
-      'clang_use_chrome_plugins%': 1,
-
-      # Enable building with ASAN (Clang's -fsanitize=address option).
-      # -fsanitize=address only works with clang, but asan=1 implies clang=1
-      # See https://sites.google.com/a/chromium.org/dev/developers/testing/addresssanitizer
-      'asan%': 0,
-      'asan_blacklist%': '<(PRODUCT_DIR)/../../tools/memory/asan/blacklist.txt',
-      # Enable coverage gathering instrumentation in sanitizer tools. This flag
-      # also controls coverage granularity (1 for function-level coverage, 2
-      # for block-level coverage).
-      'sanitizer_coverage%': 0,
-      # Deprecated, only works if |sanitizer_coverage| isn't set.
-      # TODO(glider): remove this flag.
-      'asan_coverage%': 0,
-      # Enable intra-object-overflow detection in ASan (experimental).
-      'asan_field_padding%': 0,
-
-      # Enable Chromium overrides of the default configurations for various
-      # dynamic tools (like ASan).
-      'use_sanitizer_options%': 0,
-
-      # Enable building with SyzyAsan.
-      # See https://code.google.com/p/sawbuck/wiki/SyzyASanHowTo
-      'syzyasan%': 0,
-
-      # Enable crash reporting via Kasko.
-      'kasko%': 0,
-
-      # Enable building with LSan (Clang's -fsanitize=leak option).
-      # -fsanitize=leak only works with clang, but lsan=1 implies clang=1
-      # See https://sites.google.com/a/chromium.org/dev/developers/testing/leaksanitizer
-      'lsan%': 0,
-
-      # Enable building with TSan (Clang's -fsanitize=thread option).
-      # -fsanitize=thread only works with clang, but tsan=1 implies clang=1
-      # See http://clang.llvm.org/docs/ThreadSanitizer.html
-      'tsan%': 0,
-      'tsan_blacklist%': '<(PRODUCT_DIR)/../../tools/memory/tsan_v2/ignores.txt',
-
-      # Enable building with MSan (Clang's -fsanitize=memory option).
-      # MemorySanitizer only works with clang, but msan=1 implies clang=1
-      # See http://clang.llvm.org/docs/MemorySanitizer.html
-      'msan%': 0,
-      'msan_blacklist%': '<(PRODUCT_DIR)/../../tools/msan/blacklist.txt',
-      # Track where uninitialized memory originates from. From fastest to
-      # slowest: 0 - no tracking, 1 - track only the initial allocation site, 2
-      # - track the chain of stores leading from allocation site to use site.
-      'msan_track_origins%': 2,
-
-      # Enable building with UBSan (Clang's -fsanitize=undefined option).
-      # -fsanitize=undefined only works with clang, but ubsan=1 implies clang=1
-      # See http://clang.llvm.org/docs/UsersManual.html
-      'ubsan%': 0,
-      'ubsan_blacklist%': '<(PRODUCT_DIR)/../../tools/ubsan/blacklist.txt',
-      'ubsan_vptr_blacklist%': '<(PRODUCT_DIR)/../../tools/ubsan/vptr_blacklist.txt',
-
-      # Enable building with UBsan's vptr (Clang's -fsanitize=vptr option).
-      # -fsanitize=vptr only works with clang, but ubsan_vptr=1 implies clang=1
-      'ubsan_vptr%': 0,
-
-      # Use dynamic libraries instrumented by one of the sanitizers
-      # instead of the standard system libraries. Set this flag to build the
-      # libraries from source.
-      'use_instrumented_libraries%': 0,
-
-      # Use dynamic libraries instrumented by one of the sanitizers
-      # instead of the standard system libraries. Set this flag to download
-      # prebuilt binaries from GCS.
-      'use_prebuilt_instrumented_libraries%': 0,
-
-      # Use libc++ (third_party/libc++ and third_party/libc++abi) instead of
-      # stdlibc++ as standard library. This is intended to use for instrumented
-      # builds.
-      'use_custom_libcxx%': 0,
-
-      # Use system libc++ instead of the default C++ library, usually libstdc++.
-      # This is intended for iOS builds only.
-      'use_system_libcxx%': 0,
-
-      # Use a modified version of Clang to intercept allocated types and sizes
-      # for allocated objects. clang_type_profiler=1 implies clang=1.
-      # See http://dev.chromium.org/developers/deep-memory-profiler/cpp-object-type-identifier
-      # TODO(dmikurube): Support mac.  See http://crbug.com/123758#c11
-      'clang_type_profiler%': 0,
-
-      # Set to true to instrument the code with function call logger.
-      # See src/third_party/cygprofile/cyg-profile.cc for details.
-      'order_profiling%': 0,
-
-      # Use the provided profiled order file to link Chrome image with it.
-      # This makes Chrome faster by better using CPU cache when executing code.
-      # This is known as PGO (profile guided optimization).
-      # See https://sites.google.com/a/google.com/chrome-msk/dev/boot-speed-up-effort
-      'order_text_section%' : "",
-
-      # Set to 1 compile with -fPIC cflag on linux. This is a must for shared
-      # libraries on linux x86-64 and arm, plus ASLR.
-      'linux_fpic%': 1,
-
-      # Whether one-click signin is enabled or not.
-      'enable_one_click_signin%': 0,
-
-      # Whether to back up data before sync.
-      'enable_pre_sync_backup%': 0,
-
-      # Enable Chrome browser extensions
-      'enable_extensions%': 1,
-
-      # Enable Google Now.
-      'enable_google_now%': 1,
-
-      # Enable basic printing support and UI.
-      'enable_basic_printing%': 1,
-
-      # Enable printing with print preview. It does not imply
-      # enable_basic_printing. It's possible to build Chrome with preview only.
-      'enable_print_preview%': 1,
-
-      # Set the version of CLD.
-      #   0: Don't specify the version. This option is for the Finch testing.
-      #   1: Use only CLD1.
-      #   2: Use only CLD2.
-      'cld_version%': 2,
-
-      # For CLD2, the size of the tables that should be included in the build
-      # Only evaluated if cld_version == 2 or if building the CLD2 dynamic data
-      # tool explicitly.
-      # See third_party/cld_2/cld_2.gyp for more information.
-      #   0: Small tables, lower accuracy
-      #   2: Large tables, high accuracy
-      'cld2_table_size%': 2,
-
-      # Enable spell checker.
-      'enable_spellcheck%': 1,
-
-      # Webrtc compilation is enabled by default. Set to 0 to disable.
-      'enable_webrtc%': 1,
-
-      # Media router support is enabled by default. Set to 0 to disable.
-      'enable_media_router%': 1,
-
-      # Enables use of the session service, which is enabled by default.
-      # Support for disabling depends on the platform.
-      'enable_session_service%': 1,
-
-      # Enables theme support, which is enabled by default.  Support for
-      # disabling depends on the platform.
-      'enable_themes%': 1,
-
-      # Enables autofill dialog and associated features; disabled by default.
-      'enable_autofill_dialog%' : 0,
-
-      # Defaults Wallet integration in Autofill dialog to use production
-      # servers. Unofficial builds won't have the proper API keys.
-      'enable_prod_wallet_service%': 0,
-
-      # Enables support for background apps.
-      'enable_background%': 1,
-
-      # Enable the task manager by default.
-      'enable_task_manager%': 1,
-
-      # Enables used resource whitelist generation; disabled by default.
-      'enable_resource_whitelist_generation%': 0,
-
-      # Enable FILE support by default.
-      'disable_file_support%': 0,
-
-      # Enable FTP support by default.
-      'disable_ftp_support%': 0,
-
-      # Use native android functions in place of ICU.  Not supported by most
-      # components.
-      'use_icu_alternatives_on_android%': 0,
-
-      # Use of precompiled headers on Windows.
-      #
-      # This variable may be explicitly set to 1 (enabled) or 0
-      # (disabled) in ~/.gyp/include.gypi or via the GYP command line.
-      # This setting will override the default.
-      #
-      # See
-      # http://code.google.com/p/chromium/wiki/WindowsPrecompiledHeaders
-      # for details.
-      'chromium_win_pch%': 0,
-
-      # Clang stuff.
-      'make_clang_dir%': 'third_party/llvm-build/Release+Asserts',
-      # Set this to true when building with Clang.
-      # See http://code.google.com/p/chromium/wiki/Clang for details.
-      # If this is set, clang is used as both host and target compiler in
-      # cross-compile builds.
-      'clang%': 0,
-
-      # Use experimental lld linker instead of the platform's default linker.
-      'use_lld%': 0,
-
-      # Enable plugin installation by default.
-      'enable_plugin_installation%': 1,
-
-      # Specifies whether to use canvas_skia.cc in place of platform
-      # specific implementations of gfx::Canvas. Affects text drawing in the
-      # Chrome UI.
-      # TODO(asvitkine): Enable this on all platforms and delete this flag.
-      #                  http://crbug.com/105550
-      'use_canvas_skia%': 0,
-
-      # Set to "tsan", "memcheck", or "drmemory" to configure the build to work
-      # with one of those tools.
-      'build_for_tool%': '',
-
-      'wix_path%': '<(DEPTH)/third_party/wix',
-
-      # Supervised users are enabled by default.
-      'enable_supervised_users%': 1,
-
-      # Platform sends memory pressure signals natively.
-      'native_memory_pressure_signals%': 0,
-
-      'enable_mdns%' : 0,
-      'enable_service_discovery%': 0,
-      'enable_wifi_bootstrapping%': 0,
-      'enable_hangout_services_extension%': 0,
-
-       # Enable the Syzygy optimization step.
-      'syzygy_optimize%': 0,
-
-      # Enable hole punching for the protected video.
-      'video_hole%': 0,
-
-      # Automatically select platforms under ozone. Turn this off to
-      # build only explicitly selected platforms.
-      'ozone_auto_platforms%': 1,
-
-      # If this is set clang is used as host compiler, but not as target
-      # compiler. Always do this by default.
-      'host_clang%': 1,
-
-      # Variables to control Link-Time Optimization (LTO).
-      # On Android, the variable use_lto enables LTO on code compiled with -Os,
-      # and use_lto_o2 enables LTO on code compiled with -O2. On other
-      # platforms, use_lto enables LTO in all translation units, and use_lto_o2
-      # has no effect.
-      #
-      # On Linux and Android, when using LLVM LTO, the script
-      # build/download_gold_plugin.py must be run to download a linker plugin.
-      # On Mac, LLVM needs to be built from scratch using
-      # tools/clang/scripts/update.py and the absolute path to
-      # third_party/llvm-build/Release+Asserts/lib must be added to
-      # $DYLD_LIBRARY_PATH to pick up the right version of the linker plugin.
-      #
-      # On Android, the variables must *not* be enabled at the same time.
-      # In this case LTO would 'merge' the optimization flags at link-time
-      # which would lead to all code be optimized with -O2. See crbug.com/407544
-      'use_lto%': 0,
-      'use_lto_o2%': 0,
-
-      # Libxkbcommon usage.
-      'use_xkbcommon%': 0,
-
-      # Control Flow Integrity for virtual calls and casts.
-      # See http://clang.llvm.org/docs/ControlFlowIntegrity.html
-      'cfi_vptr%': 0,
-
-      'cfi_blacklist%': '<(PRODUCT_DIR)/../../tools/cfi/blacklist.txt',
-
-      # Whether the entire browser uses toolkit-views on Mac instead of Cocoa.
-      'mac_views_browser%': 0,
-
-      # By default, use ICU data file (icudtl.dat).
-      'icu_use_data_file_flag%': 1,
-
-      # Turn on JNI generation optimizations by default.
-      'optimize_jni_generation%': 1,
-
-      'conditions': [
-        # A flag for POSIX platforms
-        ['OS=="win"', {
-          'os_posix%': 0,
-        }, {
-          'os_posix%': 1,
-        }],
-
-        # A flag for BSD platforms
-        ['OS=="freebsd" or OS=="openbsd"', {
-          'os_bsd%': 1,
-        }, {
-          'os_bsd%': 0,
-        }],
-
-        # NSS usage.
-        ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris")', {
-          'use_nss_certs%': 1,
-        }, {
-          'use_nss_certs%': 0,
-        }],
-
-        # libudev usage.  This currently only affects the content layer.
-        ['OS=="linux" and embedded==0', {
-          'use_udev%': 1,
-        }, {
-          'use_udev%': 0,
-        }],
-
-        # Flags to use X11 on non-Mac POSIX platforms.
-        ['OS=="win" or OS=="mac" or OS=="ios" or OS=="android" or use_ozone==1', {
-          'use_x11%': 0,
-        }, {
-          'use_x11%': 1,
-        }],
-
-        # Flags to use glib.
-        ['OS=="win" or OS=="mac" or OS=="ios" or OS=="android" or use_ozone==1', {
-          'use_glib%': 0,
-        }, {
-          'use_glib%': 1,
-        }],
-
-        # Flags to use pango and cairo.
-        ['OS=="win" or OS=="mac" or OS=="ios" or OS=="android" or embedded==1', {
-          'use_pango%': 0,
-          'use_cairo%': 0,
-        }, {
-          'use_pango%': 1,
-          'use_cairo%': 1,
-        }],
-
-        # DBus usage.
-        ['OS=="linux" and embedded==0', {
-          'use_dbus%': 1,
-        }, {
-          'use_dbus%': 0,
-        }],
-
-        # We always use skia text rendering in Aura on Windows, since GDI
-        # doesn't agree with our BackingStore.
-        # TODO(beng): remove once skia text rendering is on by default.
-        ['use_aura==1 and OS=="win"', {
-          'enable_skia_text%': 1,
-        }],
-
-        # A flag to enable or disable our compile-time dependency
-        # on gnome-keyring. If that dependency is disabled, no gnome-keyring
-        # support will be available. This option is useful
-        # for Linux distributions and for Aura.
-        ['OS!="linux" or chromeos==1', {
-          'use_gnome_keyring%': 0,
-        }, {
-          'use_gnome_keyring%': 1,
-        }],
-
-        ['OS=="mac" or OS=="ios"', {
-          # Mac and iOS want Title Case strings
-          'use_titlecase_in_grd%': 1,
-        }],
-
-        # Enable loader extensions on Chrome OS.
-        ['chromeos==1', {
-          'image_loader_extension%': 1,
-        }, {
-          'image_loader_extension%': 0,
-        }],
-
-        ['OS=="win" or OS=="mac" or (OS=="linux" and chromeos==0)', {
-          'enable_one_click_signin%': 1,
-          'enable_pre_sync_backup%': 1,
-        }],
-
-        ['OS=="android"', {
-          'enable_extensions%': 0,
-          'enable_google_now%': 0,
-          'cld_version%': 1,
-          'enable_spellcheck%': 0,
-          'enable_themes%': 0,
-          'remoting%': 0,
-          'arm_neon%': 0,
-          'arm_neon_optional%': 1,
-          'native_memory_pressure_signals%': 1,
-          'enable_basic_printing%': 1,
-          'enable_print_preview%': 0,
-          'enable_task_manager%':0,
-          'video_hole%': 1,
-        }],
-
-        # Android OS includes support for proprietary codecs regardless of
-        # building Chromium or Google Chrome. We also ship Google Chrome and
-        # Chromecast with proprietary codecs.
-        ['OS=="android" or branding=="Chrome" or chromecast==1', {
-          'proprietary_codecs%': 1,
-        }, {
-          'proprietary_codecs%': 0,
-        }],
-
-        ['OS=="mac" or OS=="ios"', {
-          'native_memory_pressure_signals%': 1,
-        }],
-
-        # Enable autofill dialog when not on iOS.
-        ['OS!="ios"', {
-          'enable_autofill_dialog%': 1,
-        }],
-
-        ['buildtype=="Official"', {
-          'enable_prod_wallet_service%': 1,
-        }],
-
-        ['OS=="android"', {
-          'enable_webrtc%': 1,
-        }],
-
-        ['OS=="ios"', {
-          'disable_ftp_support%': 1,
-          'enable_extensions%': 0,
-          'enable_google_now%': 0,
-          'cld_version%': 2,
-          'cld2_table_size%': 0,
-          'enable_basic_printing%': 0,
-          'enable_print_preview%': 0,
-          'enable_session_service%': 0,
-          'enable_spellcheck%': 0,
-          'enable_themes%': 0,
-          'enable_webrtc%': 0,
-          'notifications%': 0,
-          'remoting%': 0,
-          'safe_browsing%': 0,
-          'enable_supervised_users%': 0,
-          'enable_task_manager%': 0,
-          'use_system_libcxx%': 1,
-        }],
-
-        # Use GPU accelerated cross process image transport by default
-        # on linux builds with the Aura window manager
-        ['use_aura==1 and OS=="linux"', {
-          'ui_compositor_image_transport%': 1,
-        }, {
-          'ui_compositor_image_transport%': 0,
-        }],
-
-        # Turn precompiled headers on by default.
-        ['OS=="win" and buildtype!="Official"', {
-          'chromium_win_pch%': 1
-        }],
-
-        ['chromeos==1 or OS=="android" or OS=="ios" or desktop_linux==1', {
-          'enable_plugin_installation%': 0,
-        }, {
-          'enable_plugin_installation%': 1,
-        }],
-
-        # Whether PPAPI is enabled.
-        ['OS=="android" or OS=="ios" or embedded==1', {
-          'enable_plugins%': 0,
-        }, {
-          'enable_plugins%': 1,
-        }],
-
-        # linux_use_bundled_gold: whether to use the gold linker binary checked
-        # into third_party/binutils.  Force this off via GYP_DEFINES when you
-        # are using a custom toolchain and need to control -B in ldflags.
-        # Do not use 32-bit gold on 32-bit hosts as it runs out address space
-        # for component=static_library builds.
-        ['(OS=="linux" or OS=="android") and (target_arch=="x64" or target_arch=="arm")', {
-          'linux_use_bundled_gold%': 1,
-        }, {
-          'linux_use_bundled_gold%': 0,
-        }],
-
-        # linux_use_bundled_binutils: whether to use the binary binutils
-        # checked into third_party/binutils.  These are not multi-arch so cannot
-        # be used except on x86 and x86-64 (the only two architectures which
-        # are currently checke in).  Force this off via GYP_DEFINES when you
-        # are using a custom toolchain and need to control -B in cflags.
-        ['OS=="linux" and (target_arch=="x64")', {
-          'linux_use_bundled_binutils%': 1,
-        }, {
-          'linux_use_bundled_binutils%': 0,
-        }],
-
-        # linux_use_gold_flags: whether to use build flags that rely on gold.
-        # On by default for x64 Linux.
-        ['OS=="linux" and target_arch=="x64"', {
-          'linux_use_gold_flags%': 1,
-        }, {
-          'linux_use_gold_flags%': 0,
-        }],
-
-        # linux_use_debug_fission: whether to use split DWARF debug info
-        # files. This can reduce link time significantly, but is incompatible
-        # with some utilities such as icecc and ccache. Requires gold and
-        # gcc >= 4.8 or clang.
-        # http://gcc.gnu.org/wiki/DebugFission
-        ['OS=="linux" and target_arch=="x64"', {
-          'linux_use_debug_fission%': 1,
-        }, {
-          'linux_use_debug_fission%': 0,
-        }],
-
-        ['OS=="android" or OS=="ios"', {
-          'enable_captive_portal_detection%': 0,
-          'enable_media_router%': 0,
-        }, {
-          'enable_captive_portal_detection%': 1,
-          'enable_media_router%': 1,
-        }],
-
-        # Enable Skia UI text drawing incrementally on different platforms.
-        # http://crbug.com/105550
-        #
-        # On Aura, this allows per-tile painting to be used in the browser
-        # compositor.
-        ['OS!="android" and OS!="ios"', {
-          'use_canvas_skia%': 1,
-        }],
-
-        ['chromeos==1', {
-          'enable_basic_printing%': 0,
-          'enable_print_preview%': 1,
-        }],
-
-        # Do not enable the Settings App on ChromeOS.
-        ['enable_app_list==1 and chromeos==0', {
-          'enable_settings_app%': 1,
-        }, {
-          'enable_settings_app%': 0,
-        }],
-
-        # Whether tests targets should be run, archived or just have the
-        # dependencies verified. All the tests targets have the '_run' suffix,
-        # e.g. base_unittests_run runs the target base_unittests. The test
-        # target always calls tools/swarming_client/isolate.py. See the script's
-        # --help for more information. Meant to be overriden with GYP_DEFINES.
-        # TODO(maruel): Remove the conditions as more configurations are
-        # supported.
-        ['OS!="ios" and OS!="android" and chromeos==0', {
-          'test_isolation_mode%': 'check',
-        }, {
-          'test_isolation_mode%': 'noop',
-        }],
-        # Whether Android build uses OpenMAX DL FFT.
-        ['OS=="android" and ((target_arch=="arm" and arm_version >= 7) or target_arch=="ia32" or target_arch=="x64" or target_arch=="arm64" or target_arch=="mipsel")', {
-          # Currently only supported on Android ARMv7+, ARM64, ia32, x64 and mipsel.
-          # When enabled, this will also enable WebAudio support on
-          # Android for these architectures.  Default is enabled.  Whether
-          # WebAudio is actually available depends on runtime settings
-          # and flags.
-          'use_openmax_dl_fft%': 1,
-        }, {
-          'use_openmax_dl_fft%': 0,
-        }],
-        ['OS=="win" or OS=="linux"', {
-            'enable_mdns%' : 1,
-        }],
-
-        # Turns on compiler optimizations in V8 in Debug build, except
-        # on android_clang, where we're hitting a weird linker error.
-        # TODO(dpranke): http://crbug.com/266155 .
-        ['OS=="android"', {
-          'v8_optimized_debug%': 1,
-        }, {
-          'v8_optimized_debug%': 2,
-        }],
-
-        # Disable various features by default on embedded.
-        ['embedded==1', {
-          'remoting%': 0,
-          'enable_basic_printing%': 0,
-          'enable_print_preview%': 0,
-        }],
-
-        ['OS=="win" or OS=="mac"', {
-          'enable_wifi_bootstrapping%' : 1,
-        }],
-
-        # Path to sas.dll, which provides the SendSAS function.
-        # http://msdn.microsoft.com/en-us/library/windows/desktop/dd979761(v=vs.85).aspx
-        ['target_arch=="x64"', {
-          'sas_dll_path%': '<(DEPTH)/third_party/platformsdk_win7/files/redist/amd64',
-        }, {
-          'sas_dll_path%': '<(DEPTH)/third_party/platformsdk_win7/files/redist/x86',
-        }],
-
-        ['sysroot!=""', {
-          'pkg-config': '<(DEPTH)/build/linux/pkg-config-wrapper "<(sysroot)" "<(target_arch)" "<(system_libdir)"',
-        }, {
-          'pkg-config': 'pkg-config'
-        }],
-      ],
-
-      # Setting this to '0' will cause V8's startup snapshot to be
-      # embedded in the binary instead of being a external files.
-      'v8_use_external_startup_data%': 1,
-
-      # Set this to 1 to enable use of concatenated impulse responses
-      # for the HRTF panner in WebAudio.
-      'use_concatenated_impulse_responses': 1,
-
-      # You can set the variable 'use_official_google_api_keys' to 1
-      # to use the Google-internal file containing official API keys
-      # for Google Chrome even in a developer build.  Setting this
-      # variable explicitly to 1 will cause your build to fail if the
-      # internal file is missing.
-      #
-      # The variable is documented here, but not handled in this file;
-      # see //google_apis/determine_use_official_keys.gypi for the
-      # implementation.
-      #
-      # Set the variable to 0 to not use the internal file, even when
-      # it exists in your checkout.
-      #
-      # Leave it unset in your include.gypi to have the variable
-      # implicitly set to 1 if you have
-      # src/google_apis/internal/google_chrome_api_keys.h in your
-      # checkout, and implicitly set to 0 if not.
-      #
-      # Note that official builds always behave as if the variable
-      # was explicitly set to 1, i.e. they always use official keys,
-      # and will fail to build if the internal file is missing.
-      #
-      # NOTE: You MUST NOT explicitly set the variable to 2 in your
-      # include.gypi or by other means. Due to subtleties of GYP, this
-      # is not the same as leaving the variable unset, even though its
-      # default value in
-      # //google_apis/determine_use_official_keys.gypi is 2.
-
-      # Set these to bake the specified API keys and OAuth client
-      # IDs/secrets into your build.
-      #
-      # If you create a build without values baked in, you can instead
-      # set environment variables to provide the keys at runtime (see
-      # src/google_apis/google_api_keys.h for details).  Features that
-      # require server-side APIs may fail to work if no keys are
-      # provided.
-      #
-      # Note that if you are building an official build or if
-      # use_official_google_api_keys has been set to 1 (explicitly or
-      # implicitly), these values will be ignored and the official
-      # keys will be used instead.
-      'google_api_key%': '',
-      'google_default_client_id%': '',
-      'google_default_client_secret%': '',
-      # Native Client is enabled by default.
-      'disable_nacl%': '0',
-
-      # Sets the default version name and code for Android app, by default we
-      # do a developer build.
-      'android_app_version_name%': 'Developer Build',
-      'android_app_version_code%': 1,
-    },
-
-    # Copy conditionally-set variables out one scope.
-    'branding%': '<(branding)',
-    'branding_path_component%': '<(branding_path_component)',
-    'buildtype%': '<(buildtype)',
-    'target_arch%': '<(target_arch)',
-    'target_subarch%': '<(target_subarch)',
-    'mips_arch_variant%': '<(mips_arch_variant)',
-    'mips_dsp_rev%': '<(mips_dsp_rev)',
-    'host_arch%': '<(host_arch)',
-    'toolkit_views%': '<(toolkit_views)',
-    'ui_compositor_image_transport%': '<(ui_compositor_image_transport)',
-    'use_aura%': '<(use_aura)',
-    'use_ash%': '<(use_ash)',
-    'use_cras%': '<(use_cras)',
-    'use_libpci%': '<(use_libpci)',
-    'use_openssl%': '<(use_openssl)',
-    'use_openssl_certs%': '<(use_openssl_certs)',
-    'use_nss_certs%': '<(use_nss_certs)',
-    'use_udev%': '<(use_udev)',
-    'os_bsd%': '<(os_bsd)',
-    'os_posix%': '<(os_posix)',
-    'use_dbus%': '<(use_dbus)',
-    'use_glib%': '<(use_glib)',
-    'use_pango%': '<(use_pango)',
-    'use_cairo%': '<(use_cairo)',
-    'use_ozone%': '<(use_ozone)',
-    'use_ozone_evdev%': '<(use_ozone_evdev)',
-    'use_xkbcommon%': '<(use_xkbcommon)',
-    'use_clipboard_aurax11%': '<(use_clipboard_aurax11)',
-    'desktop_linux%': '<(desktop_linux)',
-    'use_x11%': '<(use_x11)',
-    'use_gnome_keyring%': '<(use_gnome_keyring)',
-    'linux_fpic%': '<(linux_fpic)',
-    'chromeos%': '<(chromeos)',
-    'chromecast%': '<(chromecast)',
-    'enable_viewport%': '<(enable_viewport)',
-    'enable_hidpi%': '<(enable_hidpi)',
-    'enable_topchrome_md%': '<(enable_topchrome_md)',
-    'image_loader_extension%': '<(image_loader_extension)',
-    'fastbuild%': '<(fastbuild)',
-    'dont_embed_build_metadata%': '<(dont_embed_build_metadata)',
-    'win_z7%': '<(win_z7)',
-    'dcheck_always_on%': '<(dcheck_always_on)',
-    'tracing_like_official_build%': '<(tracing_like_official_build)',
-    'arm_version%': '<(arm_version)',
-    'arm_neon%': '<(arm_neon)',
-    'arm_neon_optional%': '<(arm_neon_optional)',
-    'sysroot%': '<(sysroot)',
-    'pkg-config%': '<(pkg-config)',
-    'chroot_cmd%': '<(chroot_cmd)',
-    'system_libdir%': '<(system_libdir)',
-    'component%': '<(component)',
-    'win_analyze%': '<(win_analyze)',
-    'enable_resource_whitelist_generation%': '<(enable_resource_whitelist_generation)',
-    'use_titlecase_in_grd%': '<(use_titlecase_in_grd)',
-    'use_third_party_translations%': '<(use_third_party_translations)',
-    'remoting%': '<(remoting)',
-    'enable_one_click_signin%': '<(enable_one_click_signin)',
-    'enable_pre_sync_backup%': '<(enable_pre_sync_backup)',
-    'enable_media_router%': '<(enable_media_router)',
-    'enable_webrtc%': '<(enable_webrtc)',
-    'chromium_win_pch%': '<(chromium_win_pch)',
-    'configuration_policy%': '<(configuration_policy)',
-    'safe_browsing%': '<(safe_browsing)',
-    'enable_web_speech%': '<(enable_web_speech)',
-    'enable_hotwording%': '<(enable_hotwording)',
-    'notifications%': '<(notifications)',
-    'clang_use_chrome_plugins%': '<(clang_use_chrome_plugins)',
-    'mac_want_real_dsym%': '<(mac_want_real_dsym)',
-    'asan%': '<(asan)',
-    'asan_blacklist%': '<(asan_blacklist)',
-    'asan_coverage%': '<(asan_coverage)',
-    'sanitizer_coverage%': '<(sanitizer_coverage)',
-    'asan_field_padding%': '<(asan_field_padding)',
-    'use_sanitizer_options%': '<(use_sanitizer_options)',
-    'syzyasan%': '<(syzyasan)',
-    'kasko%': '<(kasko)',
-    'syzygy_optimize%': '<(syzygy_optimize)',
-    'lsan%': '<(lsan)',
-    'msan%': '<(msan)',
-    'msan_blacklist%': '<(msan_blacklist)',
-    'msan_track_origins%': '<(msan_track_origins)',
-    'tsan%': '<(tsan)',
-    'tsan_blacklist%': '<(tsan_blacklist)',
-    'ubsan%': '<(ubsan)',
-    'ubsan_blacklist%': '<(ubsan_blacklist)',
-    'ubsan_vptr_blacklist%': '<(ubsan_vptr_blacklist)',
-    'ubsan_vptr%': '<(ubsan_vptr)',
-    'use_instrumented_libraries%': '<(use_instrumented_libraries)',
-    'use_prebuilt_instrumented_libraries%': '<(use_prebuilt_instrumented_libraries)',
-    'use_custom_libcxx%': '<(use_custom_libcxx)',
-    'use_system_libcxx%': '<(use_system_libcxx)',
-    'clang_type_profiler%': '<(clang_type_profiler)',
-    'order_profiling%': '<(order_profiling)',
-    'order_text_section%': '<(order_text_section)',
-    'enable_extensions%': '<(enable_extensions)',
-    'enable_plugin_installation%': '<(enable_plugin_installation)',
-    'enable_plugins%': '<(enable_plugins)',
-    'enable_session_service%': '<(enable_session_service)',
-    'enable_themes%': '<(enable_themes)',
-    'enable_autofill_dialog%': '<(enable_autofill_dialog)',
-    'enable_prod_wallet_service%': '<(enable_prod_wallet_service)',
-    'enable_background%': '<(enable_background)',
-    'linux_use_bundled_gold%': '<(linux_use_bundled_gold)',
-    'linux_use_bundled_binutils%': '<(linux_use_bundled_binutils)',
-    'linux_use_gold_flags%': '<(linux_use_gold_flags)',
-    'linux_use_debug_fission%': '<(linux_use_debug_fission)',
-    'use_canvas_skia%': '<(use_canvas_skia)',
-    'test_isolation_mode%': '<(test_isolation_mode)',
-    'enable_basic_printing%': '<(enable_basic_printing)',
-    'enable_print_preview%': '<(enable_print_preview)',
-    'enable_spellcheck%': '<(enable_spellcheck)',
-    'enable_google_now%': '<(enable_google_now)',
-    'cld_version%': '<(cld_version)',
-    'cld2_table_size%': '<(cld2_table_size)',
-    'enable_captive_portal_detection%': '<(enable_captive_portal_detection)',
-    'disable_file_support%': '<(disable_file_support)',
-    'disable_ftp_support%': '<(disable_ftp_support)',
-    'use_icu_alternatives_on_android%': '<(use_icu_alternatives_on_android)',
-    'enable_task_manager%': '<(enable_task_manager)',
-    'sas_dll_path%': '<(sas_dll_path)',
-    'wix_path%': '<(wix_path)',
-    'use_libjpeg_turbo%': '<(use_libjpeg_turbo)',
-    'use_system_libjpeg%': '<(use_system_libjpeg)',
-    'android_channel%': '<(android_channel)',
-    'icu_use_data_file_flag%': '<(icu_use_data_file_flag)',
-    'gyp_managed_install%': 0,
-    'create_standalone_apk%': 1,
-    'enable_app_list%': '<(enable_app_list)',
-    'use_default_render_theme%': '<(use_default_render_theme)',
-    'enable_settings_app%': '<(enable_settings_app)',
-    'google_api_key%': '<(google_api_key)',
-    'google_default_client_id%': '<(google_default_client_id)',
-    'google_default_client_secret%': '<(google_default_client_secret)',
-    'enable_supervised_users%': '<(enable_supervised_users)',
-    'native_memory_pressure_signals%': '<(native_memory_pressure_signals)',
-    'enable_mdns%' : '<(enable_mdns)',
-    'enable_service_discovery%' : '<(enable_service_discovery)',
-    'enable_wifi_bootstrapping%': '<(enable_wifi_bootstrapping)',
-    'enable_hangout_services_extension%' : '<(enable_hangout_services_extension)',
-    'v8_optimized_debug%': '<(v8_optimized_debug)',
-    'proprietary_codecs%': '<(proprietary_codecs)',
-    'use_goma%': '<(use_goma)',
-    'gomadir%': '<(gomadir)',
-    'use_lto%': '<(use_lto)',
-    'use_lto_o2%': '<(use_lto_o2)',
-    'video_hole%': '<(video_hole)',
-    'v8_use_external_startup_data%': '<(v8_use_external_startup_data)',
-    'cfi_vptr%': '<(cfi_vptr)',
-    'cfi_blacklist%': '<(cfi_blacklist)',
-    'mac_views_browser%': '<(mac_views_browser)',
-    'android_app_version_name%': '<(android_app_version_name)',
-    'android_app_version_code%': '<(android_app_version_code)',
-
-    # Use system protobuf instead of bundled one.
-    'use_system_protobuf%': 0,
-
-    # Use system yasm instead of bundled one.
-    'use_system_yasm%': 0,
-
-    # Use system ICU instead of bundled one.
-    'use_system_icu%' : 0,
-
-    # Default to enabled PIE; this is important for ASLR but we may need to be
-    # able to turn it off for various reasons.
-    'linux_disable_pie%': 0,
-
-    # The release channel that this build targets. This is used to restrict
-    # channel-specific build options, like which installer packages to create.
-    # The default is 'all', which does no channel-specific filtering.
-    'channel%': 'all',
-
-    # Override chromium_mac_pch and set it to 0 to suppress the use of
-    # precompiled headers on the Mac.  Prefix header injection may still be
-    # used, but prefix headers will not be precompiled.  This is useful when
-    # using distcc to distribute a build to compile slaves that don't
-    # share the same compiler executable as the system driving the compilation,
-    # because precompiled headers rely on pointers into a specific compiler
-    # executable's image.  Setting this to 0 is needed to use an experimental
-    # Linux-Mac cross compiler distcc farm.
-    'chromium_mac_pch%': 1,
-
-    # The default value for mac_strip in target_defaults. This cannot be
-    # set there, per the comment about variable% in a target_defaults.
-    'mac_strip_release%': 0,
-
-    # Set to 1 to enable java code coverage. Instruments classes during build
-    # to produce .ec files during runtime.
-    'emma_coverage%': 0,
-
-    # EMMA filter string consisting of a list of inclusion/exclusion patterns
-    # separated with whitespace and/or comma. Only has effect if
-    # 'emma_coverage=1'.
-    'emma_filter%': '',
-
-    # Set to 1 to enable running Android lint on java/class files.
-    'android_lint%': 1,
-
-    # Although base/allocator lets you select a heap library via an
-    # environment variable, the libcmt shim it uses sometimes gets in
-    # the way.  To disable it entirely, and switch to normal msvcrt, do e.g.
-    #  'win_use_allocator_shim': 0,
-    #  'win_release_RuntimeLibrary': 2
-    # to ~/.gyp/include.gypi, gclient runhooks --force, and do a release build.
-    'win_use_allocator_shim%': 1, # 1 = shim allocator via libcmt; 0 = msvcrt
-
-    # TODO(bradnelson): eliminate this when possible.
-    # To allow local gyp files to prevent release.vsprops from being included.
-    # Yes(1) means include release.vsprops.
-    # Once all vsprops settings are migrated into gyp, this can go away.
-    'msvs_use_common_release%': 1,
-
-    # TODO(bradnelson): eliminate this when possible.
-    # To allow local gyp files to override additional linker options for msvs.
-    # Yes(1) means set use the common linker options.
-    'msvs_use_common_linker_extras%': 1,
-
-    # TODO(sgk): eliminate this if possible.
-    # It would be nicer to support this via a setting in 'target_defaults'
-    # in chrome/app/locales/locales.gypi overriding the setting in the
-    # 'Debug' configuration in the 'target_defaults' dict below,
-    # but that doesn't work as we'd like.
-    'msvs_debug_link_incremental%': '2',
-
-    # Needed for some of the largest modules.
-    'msvs_debug_link_nonincremental%': '1',
-
-    # Turns on Use Library Dependency Inputs for linking chrome.dll on Windows
-    # to get incremental linking to be faster in debug builds.
-    'incremental_chrome_dll%': '0',
-
-    # Experimental setting to break chrome.dll into multiple pieces based on
-    # process type.
-    'chrome_multiple_dll%': '0',
-
-    # Experimental setting to optimize Chrome's DLLs with PGO.
-    'chrome_pgo_phase%': '0',
-
-    # Whether the VS xtree header has been patched to disable warning 4702. If
-    # it has, then we don't need to disable 4702 (unreachable code warning).
-    # The patch is preapplied to the internal toolchain and hence all bots.
-    'msvs_xtree_patched%': '<!pymod_do_main(win_is_xtree_patched)',
-
-    # Clang stuff.
-    'clang%': '<(clang)',
-    'host_clang%': '<(host_clang)',
-    'make_clang_dir%': '<(make_clang_dir)',
-    'use_lld%': '<(use_lld)',
-
-    # Control which version of clang to use when building for iOS.  If set to
-    # '1', uses the version of clang that ships with Xcode.  If set to '0', uses
-    # the version of clang that ships with the Chromium source.  This variable
-    # is automatically set to '1' when using the Xcode generator.
-    'clang_xcode%': 0,
-
-    # These two variables can be set in GYP_DEFINES while running
-    # |gclient runhooks| to let clang run a plugin in every compilation.
-    # Only has an effect if 'clang=1' is in GYP_DEFINES as well.
-    # Example:
-    #     GYP_DEFINES='clang=1 clang_load=/abs/path/to/libPrintFunctionNames.dylib clang_add_plugin=print-fns' gclient runhooks
-
-    'clang_load%': '',
-    'clang_add_plugin%': '',
-
-    # Tell ld64 to write map files describing binary layout. Useful
-    # for looking at what contributes to binary size, e.g. with
-    # https://github.com/nico/bloat
-    'mac_write_linker_maps%': 0,
-
-    # The default type of gtest.
-    'gtest_target_type%': 'executable',
-
-    # Enable sampling based profiler.
-    # See http://google-perftools.googlecode.com/svn/trunk/doc/cpuprofile.html
-    'profiling%': '0',
-    # Profile without optimizing out stack frames when profiling==1.
-    'profiling_full_stack_frames%': '0',
-
-    # And if we want to dump symbols for Breakpad-enabled builds.
-    'linux_dump_symbols%': 0,
-    # And if we want to strip the binary after dumping symbols.
-    'linux_strip_binary%': 0,
-    # If we want stack unwind support for backtrace().
-    'debug_unwind_tables%': 1,
-    'release_unwind_tables%': 1,
-
-    # Override where to find binutils
-    'binutils_version%': 0,
-    'binutils_dir%': '',
-
-    # Enable TCMalloc.
-    # Default of 'use_allocator' is set to 'none' if OS=='android' later.
-    'use_allocator%': 'tcmalloc',
-
-    # Set to 1 to link against libgnome-keyring instead of using dlopen().
-    'linux_link_gnome_keyring%': 0,
-    # Set to 1 to link against gsettings APIs instead of using dlopen().
-    'linux_link_gsettings%': 0,
-
-    # Enable use of OpenMAX DL FFT routines.
-    'use_openmax_dl_fft%': '<(use_openmax_dl_fft)',
-
-    # Enable new NPDevice API.
-    'enable_new_npdevice_api%': 0,
-
-    # .gyp files or targets should set chromium_code to 1 if they build
-    # Chromium-specific code, as opposed to external code.  This variable is
-    # used to control such things as the set of warnings to enable, and
-    # whether warnings are treated as errors.
-    'chromium_code%': 0,
-
-    # Disable fatal linker warnings, similarly to how we make it possible
-    # to disable -Werror (e.g. for different toolchain versions).
-    'disable_fatal_linker_warnings%': 0,
-
-    'release_valgrind_build%': 0,
-
-    # TODO(thakis): Make this a blacklist instead, http://crbug.com/101600
-    'enable_wexit_time_destructors%': 0,
-
-    # Build libpeerconnection as a static library by default.
-    'libpeer_target_type%': 'static_library',
-
-    # Set to 1 to compile with the OpenGL ES 2.0 conformance tests.
-    'internal_gles2_conform_tests%': 0,
-
-    # Set to 1 to compile with the Khronos GL-CTS conformance tests.
-    'internal_khronos_glcts_tests%': 0,
-
-    # Set to 1 to compile the filter fuzzer.
-    'internal_filter_fuzzer%': 0,
-
-    # NOTE: When these end up in the Mac bundle, we need to replace '-' for '_'
-    # so Cocoa is happy (http://crbug.com/20441).
-    'locales': [
-      'am', 'ar', 'bg', 'bn', 'ca', 'cs', 'da', 'de', 'el', 'en-GB',
-      'en-US', 'es-419', 'es', 'et', 'fa', 'fi', 'fil', 'fr', 'gu', 'he',
-      'hi', 'hr', 'hu', 'id', 'it', 'ja', 'kn', 'ko', 'lt', 'lv',
-      'ml', 'mr', 'ms', 'nb', 'nl', 'pl', 'pt-BR', 'pt-PT', 'ro', 'ru',
-      'sk', 'sl', 'sr', 'sv', 'sw', 'ta', 'te', 'th', 'tr', 'uk',
-      'vi', 'zh-CN', 'zh-TW',
-    ],
-
-    # Pseudo locales are special locales which are used for testing and
-    # debugging. They don't get copied to the final app. For more info,
-    # check out https://www.chromium.org/developers/testing/fake-bidi
-    'pseudo_locales': [
-      'fake-bidi',
-    ],
-
-    'grit_defines': [],
-
-    # If debug_devtools is set to 1, JavaScript files for DevTools are
-    # stored as is and loaded from disk. Otherwise, a concatenated file
-    # is stored in resources.pak. It is still possible to load JS files
-    # from disk by passing --debug-devtools cmdline switch.
-    'debug_devtools%': 0,
-
-    # The Java Bridge is not compiled in by default.
-    'java_bridge%': 0,
-
-    # Code signing for iOS binaries.  The bots need to be able to disable this.
-    'chromium_ios_signing%': 1,
-
-    # This flag is only used when disable_nacl==0 and disables all those
-    # subcomponents which would require the installation of a native_client
-    # untrusted toolchain.
-    'disable_nacl_untrusted%': 0,
-
-    # PNaCl toolchain does not support sanitizers. Disable by default.
-    'enable_nacl_nonsfi_test%': 0,
-
-    # Disable Dart by default.
-    'enable_dart%': 0,
-
-    # Copy out the setting of disable_nacl.
-    'disable_nacl%': '<(disable_nacl)',
-
-    # Portable Native Client is enabled by default.
-    'disable_pnacl%': 0,
-
-    # Whether to build full debug version for Debug configuration on Android.
-    # Compared to full debug version, the default Debug configuration on Android
-    # has no full v8 debug, has size optimization and linker gc section, so that
-    # we can build a debug version with acceptable size and performance.
-    'android_full_debug%': 0,
-
-    # Contains data about the attached devices for gyp_managed_install.
-    'build_device_config_path': '<(PRODUCT_DIR)/build_devices.cfg',
-
-    'sas_dll_exists': '<!pymod_do_main(dir_exists "<(sas_dll_path)")',
-    'wix_exists': '<!pymod_do_main(dir_exists "<(wix_path)")',
-
-    'windows_sdk_path%': 'C:/Program Files (x86)/Windows Kits/8.1',
-    'directx_sdk_default_path': '<(DEPTH)/third_party/directxsdk/files',
-
-    # Whether we are using the rlz library or not.  Platforms like Android send
-    # rlz codes for searches but do not use the library.
-    'enable_rlz%': 0,
-
-    # Turns on the i18n support in V8.
-    'v8_enable_i18n_support': 1,
-
-    # Compile d8 for the host toolset.
-    'v8_toolset_for_d8': 'host',
-
-    # Use brlapi from brltty for braille display support.
-    'use_brlapi%': 0,
-
-    # Relative path to icu.gyp from this file.
-    'icu_gyp_path': '../third_party/icu/icu.gyp',
-
-    # IPC fuzzer is disabled by default.
-    'enable_ipc_fuzzer%': 0,
-
-    # Force disable libstdc++ debug mode.
-    'disable_glibcxx_debug%': 0,
-
-    # Set to 1 to compile with MSE support for MPEG2 TS
-    'enable_mpeg2ts_stream_parser%': 0,
-
-    # Support ChromeOS touchpad gestures with ozone.
-    'use_evdev_gestures%': 0,
-
-    # Default ozone platform (if no --ozone-platform flag).
-    'ozone_platform%': "",
-
-    # Ozone platforms to include in the build.
-    'ozone_platform_caca%': 0,
-    'ozone_platform_cast%': 0,
-    'ozone_platform_dri%': 0,
-    'ozone_platform_drm%': 0,
-    'ozone_platform_egltest%': 0,
-    'ozone_platform_gbm%': 0,
-    'ozone_platform_ozonex%': 0,
-    'ozone_platform_test%': 0,
-
-    # Experiment: http://crbug.com/426914
-    'envoy%': 0,
-
-    # Used to set libjpeg_gyp_path. Chrome OS ui/gfx/gfx.gyp uses the IJG path
-    # for robust login screen decoding.
-    'libjpeg_ijg_gyp_path': '<(DEPTH)/third_party/libjpeg/libjpeg.gyp',
-    'libjpeg_turbo_gyp_path': '<(DEPTH)/third_party/libjpeg_turbo/libjpeg.gyp',
-
-    'conditions': [
-      ['buildtype=="Official"', {
-        # Continue to embed build meta data in Official builds, basically the
-        # time it was built.
-        # TODO(maruel): This decision should be revisited because having an
-        # official deterministic build has high value too but MSVC toolset can't
-        # generate anything deterministic with WPO enabled AFAIK.
-        'dont_embed_build_metadata%': 0,
-      }],
-      # Enable the Syzygy optimization step for the official builds.
-      ['OS=="win" and buildtype=="Official" and syzyasan!=1 and clang!=1', {
-        'syzygy_optimize%': 1,
-      }, {
-        'syzygy_optimize%': 0,
-      }],
-      # Get binutils version so we can enable debug fission if we can.
-      ['os_posix==1 and OS!="mac" and OS!="ios"', {
-        'conditions': [
-          # compiler_version doesn't work with clang
-          # TODO(mithro): Land https://codereview.chromium.org/199793014/ so
-          # compiler_version works with clang.
-          # TODO(glider): set clang to 1 earlier for ASan and TSan builds so
-          # that it takes effect here.
-          ['clang==0 and asan==0 and lsan==0 and tsan==0 and msan==0 and ubsan==0 and ubsan_vptr==0', {
-            'binutils_version%': '<!pymod_do_main(compiler_version target assembler)',
-          }],
-          # On Android we know the binutils version in the toolchain.
-          ['OS=="android"', {
-            'binutils_version%': 222,
-          }],
-          ['host_arch=="x64"', {
-            'binutils_dir%': 'third_party/binutils/Linux_x64/Release/bin',
-          }],
-          ['host_arch=="ia32"', {
-            'binutils_dir%': 'third_party/binutils/Linux_ia32/Release/bin',
-          }],
-          # Our version of binutils in third_party/binutils
-          ['linux_use_bundled_binutils==1', {
-            'binutils_version%': 224,
-          }],
-        ],
-      }, {
-        'binutils_version%': 0,
-      }],
-      # The version of GCC in use, set later in platforms that use GCC and have
-      # not explicitly chosen to build with clang. Currently, this means all
-      # platforms except Windows, Mac and iOS.
-      # TODO(glider): set clang to 1 earlier for ASan and TSan builds so that
-      # it takes effect here.
-      ['os_posix==1 and OS!="mac" and OS!="ios" and clang==0 and asan==0 and lsan==0 and tsan==0 and msan==0 and ubsan_vptr==0', {
-        'conditions': [
-          ['OS=="android"', {
-            'host_gcc_version%': '<!pymod_do_main(compiler_version host compiler)',
-            # We directly set the gcc version since we know what we use.
-            'gcc_version%': 49,
-          }, {
-            'host_gcc_version%': '<!pymod_do_main(compiler_version host compiler)',
-            'gcc_version%': '<!pymod_do_main(compiler_version target compiler)',
-          }],
-        ],
-      }, {
-        'host_gcc_version%': 0,
-        'gcc_version%': 0,
-      }],
-      ['OS=="win" and "<!pymod_do_main(dir_exists <(directx_sdk_default_path))"=="True"', {
-        'directx_sdk_path%': '<(directx_sdk_default_path)',
-      }, {
-        'directx_sdk_path%': '$(DXSDK_DIR)',
-      }],
-      ['OS=="win"', {
-        'windows_driver_kit_path%': '$(WDK_DIR)',
-      }],
-      ['os_posix==1 and OS!="mac" and OS!="ios"', {
-        'conditions': [
-          ['target_arch=="mipsel" or target_arch=="mips64el"', {
-            'werror%': '',
-            'disable_nacl%': 1,
-            'nacl_untrusted_build%': 0,
-            'use_allocator%': 'none',
-          }],
-          # Use a 64-bit linker to avoid running out of address space. The
-          # buildbots should have a 64-bit kernel and a 64-bit libc installed.
-          ['host_arch=="ia32" and target_arch=="ia32"', {
-            # TODO(thestig) This is a horrible way to force the desired
-            # configuration. Our gyp variable scoping is likely wrong and
-            # needs to be cleaned up. The GN configuration should be changed
-            # to match.
-            'binutils_version%': 224,
-            'linux_use_bundled_binutils%': '1',
-            'linux_use_bundled_gold%': '1',
-            'binutils_dir%': 'third_party/binutils/Linux_x64/Release/bin',
-          }],
-          # All Chrome builds have breakpad symbols, but only process the
-          # symbols from official builds.
-          ['(branding=="Chrome" and buildtype=="Official")', {
-            'linux_dump_symbols%': 1,
-
-            # Omit unwind support in official release builds to save space. We
-            # can use breakpad for these builds.
-            'release_unwind_tables%': 0,
-          }],
-        ],
-      }],  # os_posix==1 and OS!="mac" and OS!="ios"
-      ['OS=="ios"', {
-        'disable_nacl%': 1,
-        'enable_background%': 0,
-        'icu_use_data_file_flag%': 1,
-        'enable_web_speech%': 0,
-        'use_system_libxml%': 1,
-        'use_system_sqlite%': 1,
-        'locales==': [
-          'ar', 'ca', 'cs', 'da', 'de', 'el', 'en-GB', 'en-US', 'es', 'es-MX',
-          'fi', 'fr', 'he', 'hi', 'hr', 'hu', 'id', 'it', 'ja', 'ko', 'ms',
-          'nb', 'nl', 'pl', 'pt', 'pt-PT', 'ro', 'ru', 'sk', 'sv', 'th', 'tr',
-          'uk', 'vi', 'zh-CN', 'zh-TW',
-        ],
-
-        # iOS SDK and deployment target support.  The |ios_sdk| value is left
-        # blank so that when it is set in the project files it will be the
-        # "current" iOS SDK.  Forcing a specific SDK even if it is "current"
-        # causes Xcode to spit out a warning for every single project file for
-        # not using the "current" SDK.
-        'ios_sdk%': '',
-        'ios_sdk_path%': '',
-        'ios_deployment_target%': '7.0',
-
-        'conditions': [
-          # ios_product_name is set to the name of the .app bundle as it should
-          # appear on disk.
-          ['branding=="Chrome"', {
-            'ios_product_name%': 'Chrome',
-          }, { # else: branding!="Chrome"
-            'ios_product_name%': 'Chromium',
-          }],
-          ['branding=="Chrome" and buildtype=="Official"', {
-            'ios_breakpad%': 1,
-          }, { # else: branding!="Chrome" or buildtype!="Official"
-            'ios_breakpad%': 0,
-          }],
-        ],
-      }],  # OS=="ios"
-      ['OS=="android"', {
-        # Location of Android NDK.
-        'variables': {
-          'variables': {
-            # Standard libraries can use the relative path to the NDK.
-            'android_ndk_root%': '../../third_party/android_tools/ndk/',
-            # Unfortunately, it is required to use the absolute path to the SDK
-            # because it us passed to ant which uses a different relative path
-            # from GYP.
-            'android_sdk_root%': '<!(cd <(DEPTH) && pwd -P)/third_party/android_tools/sdk/',
-            # Similarly, gdbserver and the Android toolchain need to use the
-            # absolute path to the NDK because they are used at different levels
-            # in the GYP files.
-            'android_ndk_absolute_root%': '<!(cd <(DEPTH) && pwd -P)/third_party/android_tools/ndk/',
-            'android_host_arch%': '<!(uname -m)',
-            # Android API-level of the SDK used for compilation.
-            'android_sdk_version%': '22',
-            'android_sdk_build_tools_version%': '23.0.1',
-            'host_os%': "<!(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/')",
-          },
-          # Copy conditionally-set variables out one scope.
-          'android_ndk_root%': '<(android_ndk_root)',
-          'android_ndk_absolute_root%': '<(android_ndk_absolute_root)',
-          'android_sdk_root%': '<(android_sdk_root)',
-          'android_sdk_version%': '<(android_sdk_version)',
-          'android_libcpp_root': '<(android_ndk_root)/sources/cxx-stl/llvm-libc++',
-          'host_os%': '<(host_os)',
-
-          'android_sdk%': '<(android_sdk_root)/platforms/android-<(android_sdk_version)',
-          # Android SDK build tools (e.g. dx, aidl)
-          'android_sdk_tools%': '<(android_sdk_root)/build-tools/<(android_sdk_build_tools_version)',
-
-          # Android API level 16 is JB (Android 4.1) which is the minimum
-          # platform requirement for Chrome on Android, we use it for native
-          # code compilation.
-          'conditions': [
-            ['target_arch == "ia32"', {
-              'android_app_abi%': 'x86',
-              'android_gdbserver%': '<(android_ndk_absolute_root)/prebuilt/android-x86/gdbserver/gdbserver',
-              'android_ndk_sysroot%': '<(android_ndk_root)/platforms/android-16/arch-x86',
-              'android_ndk_lib_dir%': 'usr/lib',
-              'android_toolchain%': '<(android_ndk_absolute_root)/toolchains/x86-4.9/prebuilt/<(host_os)-<(android_host_arch)/bin',
-            }],
-            ['target_arch == "x64"', {
-              'android_app_abi%': 'x86_64',
-              'android_gdbserver%': '<(android_ndk_absolute_root)/prebuilt/android-x86_64/gdbserver/gdbserver',
-              'android_ndk_sysroot%': '<(android_ndk_root)/platforms/android-21/arch-x86_64',
-              'android_ndk_lib_dir%': 'usr/lib64',
-              'android_toolchain%': '<(android_ndk_absolute_root)/toolchains/x86_64-4.9/prebuilt/<(host_os)-<(android_host_arch)/bin',
-            }],
-            ['target_arch=="arm"', {
-              'conditions': [
-                ['arm_version<7', {
-                  'android_app_abi%': 'armeabi',
-                }, {
-                  'android_app_abi%': 'armeabi-v7a',
-                }],
-              ],
-              'android_gdbserver%': '<(android_ndk_absolute_root)/prebuilt/android-arm/gdbserver/gdbserver',
-              'android_ndk_sysroot%': '<(android_ndk_root)/platforms/android-16/arch-arm',
-              'android_ndk_lib_dir%': 'usr/lib',
-              'android_toolchain%': '<(android_ndk_absolute_root)/toolchains/arm-linux-androideabi-4.9/prebuilt/<(host_os)-<(android_host_arch)/bin',
-            }],
-            ['target_arch == "arm64"', {
-              'android_app_abi%': 'arm64-v8a',
-              'android_gdbserver%': '<(android_ndk_absolute_root)/prebuilt/android-arm64/gdbserver/gdbserver',
-              'android_ndk_sysroot%': '<(android_ndk_root)/platforms/android-21/arch-arm64',
-              'android_ndk_lib_dir%': 'usr/lib',
-              'android_toolchain%': '<(android_ndk_absolute_root)/toolchains/aarch64-linux-android-4.9/prebuilt/<(host_os)-<(android_host_arch)/bin',
-            }],
-            ['target_arch == "mipsel"', {
-              'android_app_abi%': 'mips',
-              'android_gdbserver%': '<(android_ndk_absolute_root)/prebuilt/android-mips/gdbserver/gdbserver',
-              'android_ndk_sysroot%': '<(android_ndk_root)/platforms/android-16/arch-mips',
-              'android_ndk_lib_dir%': 'usr/lib',
-              'android_toolchain%': '<(android_ndk_absolute_root)/toolchains/mipsel-linux-android-4.9/prebuilt/<(host_os)-<(android_host_arch)/bin',
-            }],
-            ['target_arch == "mips64el"', {
-              'android_app_abi%': 'mips64',
-              'android_gdbserver%': '<(android_ndk_absolute_root)/prebuilt/android-mips64/gdbserver/gdbserver',
-              'android_ndk_sysroot%': '<(android_ndk_root)/platforms/android-21/arch-mips64',
-              'android_ndk_lib_dir%': 'usr/lib64',
-              'android_toolchain%': '<(android_ndk_absolute_root)/toolchains/mips64el-linux-android-4.9/prebuilt/<(host_os)-<(android_host_arch)/bin',
-            }],
-          ],
-        },
-        # Copy conditionally-set variables out one scope.
-        'android_app_abi%': '<(android_app_abi)',
-        'android_gdbserver%': '<(android_gdbserver)',
-        'android_ndk_root%': '<(android_ndk_root)',
-        'android_ndk_sysroot%': '<(android_ndk_sysroot)',
-        'android_sdk_root%': '<(android_sdk_root)',
-        'android_sdk_version%': '<(android_sdk_version)',
-        'android_toolchain%': '<(android_toolchain)',
-
-        'android_ndk_include': '<(android_ndk_sysroot)/usr/include',
-        'android_ndk_lib': '<(android_ndk_sysroot)/<(android_ndk_lib_dir)',
-        'android_sdk_tools%': '<(android_sdk_tools)',
-        'android_aapt_path%': '<(android_sdk_tools)/aapt',
-        'android_sdk%': '<(android_sdk)',
-        'android_sdk_jar%': '<(android_sdk)/android.jar',
-
-        'android_libcpp_root': '<(android_libcpp_root)',
-        'android_libcpp_include': '<(android_libcpp_root)/libcxx/include',
-        'android_libcpp_libs_dir': '<(android_libcpp_root)/libs/<(android_app_abi)',
-        'host_os%': '<(host_os)',
-
-        # Location of the "objcopy" binary, used by both gyp and scripts.
-        'android_objcopy%' : '<!(/bin/echo -n <(android_toolchain)/*-objcopy)',
-
-        # Location of the "strip" binary, used by both gyp and scripts.
-        'android_strip%' : '<!(/bin/echo -n <(android_toolchain)/*-strip)',
-
-        # Location of the "readelf" binary.
-        'android_readelf%' : '<!(/bin/echo -n <(android_toolchain)/*-readelf)',
-
-        # Determines whether we should optimize JNI generation at the cost of
-        # breaking assumptions in the build system that when inputs have changed
-        # the outputs should always change as well.  This is meant purely for
-        # developer builds, to avoid spurious re-linking of native files.
-        'optimize_jni_generation%': '<(optimize_jni_generation)',
-
-        # Always uses openssl.
-        'use_openssl%': 1,
-        'use_openssl_certs%': 1,
-
-        'proprietary_codecs%': '<(proprietary_codecs)',
-        'safe_browsing%': 2,
-        'enable_web_speech%': 0,
-        'java_bridge%': 1,
-        'build_ffmpegsumo%': 0,
-        'use_allocator%': 'none',
-
-        # Disable Native Client.
-        'disable_nacl%': 1,
-
-        # Android does not support background apps.
-        'enable_background%': 0,
-
-        # Sessions are store separately in the Java side.
-        'enable_session_service%': 0,
-
-        'p2p_apis%' : 0,
-
-        'gtest_target_type%': 'shared_library',
-      }],  # OS=="android"
-      ['embedded==1', {
-        'use_system_fontconfig%': 0,
-      }, {
-        'use_system_fontconfig%': 1,
-      }],
-      ['chromecast==1', {
-        'enable_mpeg2ts_stream_parser%': 1,
-        'ffmpeg_branding%': 'ChromeOS',
-        'ozone_platform_ozonex%': 1,
-        'use_playready%': 0,
-        'conditions': [
-          ['target_arch=="arm"', {
-            'arm_arch%': '',
-            'arm_tune%': 'cortex-a9',
-            'arm_thumb%': 1,
-            'video_hole%': 1,
-          }],
-        ],
-      }],
-      ['chromecast==1 and OS!="android"', {
-        'ozone_platform_cast%': 1
-      }],
-      ['OS=="linux" and target_arch!="mipsel"', {
-        'clang%': 1,
-      }],  # OS=="mac"
-      ['OS=="mac"', {
-        'conditions': [
-          # All Chrome builds have breakpad symbols, but only process the
-          # symbols from official builds.
-          ['(branding=="Chrome" and buildtype=="Official")', {
-            'mac_strip_release%': 1,
-          }],
-        ],
-      }],  # OS=="mac"
-      ['OS=="mac" or OS=="ios"', {
-        'clang%': 1,
-
-        'variables': {
-          # Mac OS X SDK and deployment target support.  The SDK identifies
-          # the version of the system headers that will be used, and
-          # corresponds to the MAC_OS_X_VERSION_MAX_ALLOWED compile-time
-          # macro.  "Maximum allowed" refers to the operating system version
-          # whose APIs are available in the headers.  The deployment target
-          # identifies the minimum system version that the built products are
-          # expected to function on.  It corresponds to the
-          # MAC_OS_X_VERSION_MIN_REQUIRED compile-time macro.  To ensure these
-          # macros are available, #include <AvailabilityMacros.h>.  Additional
-          # documentation on these macros is available at
-          # http://developer.apple.com/mac/library/technotes/tn2002/tn2064.html#SECTION3
-          # Chrome normally builds with the Mac OS X 10.6 SDK and sets the
-          # deployment target to 10.6.  Other projects, such as O3D, may
-          # override these defaults.
-
-          # Normally, mac_sdk_min is used to find an SDK that Xcode knows
-          # about that is at least the specified version. In official builds,
-          # the SDK must match mac_sdk_min exactly. If the SDK is installed
-          # someplace that Xcode doesn't know about, set mac_sdk_path to the
-          # path to the SDK; when set to a non-empty string, SDK detection
-          # based on mac_sdk_min will be bypassed entirely.
-          'conditions': [
-            ['OS=="ios"', {
-              'mac_sdk_min%': '10.8',
-            }, {  # else OS!="ios"
-              'mac_sdk_min%': '10.6',
-            }],
-          ],
-          'mac_sdk_path%': '',
-
-          'mac_deployment_target%': '10.6',
-        },
-
-        'mac_sdk_min': '<(mac_sdk_min)',
-        'mac_sdk_path': '<(mac_sdk_path)',
-        'mac_deployment_target': '<(mac_deployment_target)',
-
-        # Compile in Breakpad support by default so that it can be
-        # tested, even if it is not enabled by default at runtime.
-        'mac_breakpad_compiled_in%': 1,
-        'conditions': [
-          # mac_product_name is set to the name of the .app bundle as it should
-          # appear on disk.  This duplicates data from
-          # chrome/app/theme/chromium/BRANDING and
-          # chrome/app/theme/google_chrome/BRANDING, but is necessary to get
-          # these names into the build system.
-          ['branding=="Chrome"', {
-            'mac_product_name%': 'Google Chrome',
-          }, { # else: branding!="Chrome"
-            'mac_product_name%': 'Chromium',
-          }],
-          # Official mac builds require a specific OS X SDK, but iOS and
-          # non-official mac builds do not.
-          ['branding=="Chrome" and buildtype=="Official" and OS=="mac"', {
-            'mac_sdk%': '<!(python <(DEPTH)/build/mac/find_sdk.py --verify <(mac_sdk_min) --sdk_path=<(mac_sdk_path))',
-          }, {
-            'mac_sdk%': '<!(python <(DEPTH)/build/mac/find_sdk.py <(mac_sdk_min))',
-          }],
-          ['branding=="Chrome" and buildtype=="Official"', {
-            # Enable uploading crash dumps.
-            'mac_breakpad_uploads%': 1,
-            # Enable dumping symbols at build time for use by Mac Breakpad.
-            'mac_breakpad%': 1,
-            # Enable Keystone auto-update support.
-            'mac_keystone%': 1,
-          }, { # else: branding!="Chrome" or buildtype!="Official"
-            'mac_breakpad_uploads%': 0,
-            'mac_breakpad%': 0,
-            'mac_keystone%': 0,
-          }],
-        ],
-      }],  # OS=="mac" or OS=="ios"
-      ['OS=="win"', {
-        'conditions': [
-          # This is the architecture convention used in WinSDK paths.
-          ['target_arch=="ia32"', {
-            'winsdk_arch%': 'x86',
-          },{
-            'winsdk_arch%': '<(target_arch)',
-          }],
-          ['component=="shared_library" or MSVS_VERSION == "2015"', {
-            # TODO(scottmg): The allocator shimming doesn't work on the 2015 CRT
-            # and we are hoping to be able to remove it if an additional feature
-            # lands in the 2015 CRT API. For now, don't shim and revisit once
-            # VS2015 is RTM: http://crbug.com/481611.
-            'win_use_allocator_shim%': 0,
-          }],
-          ['component=="static_library"', {
-            # Turn on multiple dll by default on Windows when in static_library.
-            'chrome_multiple_dll%': 1,
-          }],
-          ['asan==1 or syzyasan==1', {
-            'win_use_allocator_shim%': 0,
-          }],
-          ['syzyasan==1', {
-            'kasko%': 1,
-          }],
-          ['component=="shared_library" and "<(GENERATOR)"=="ninja"', {
-            # Only enabled by default for ninja because it's buggy in VS.
-            # Not enabled for component=static_library because some targets
-            # are too large and the toolchain fails due to the size of the
-            # .obj files.
-            'incremental_chrome_dll%': 1,
-          }],
-          # Don't do incremental linking for large modules on 32-bit or when
-          # component=static_library as the toolchain fails due to the size of
-          # the .ilk files.
-          ['MSVS_OS_BITS==32 or component=="static_library"', {
-            'msvs_large_module_debug_link_mode%': '1',  # No
-          },{
-            'msvs_large_module_debug_link_mode%': '2',  # Yes
-          }],
-        ],
-        'nacl_win64_defines': [
-          # This flag is used to minimize dependencies when building
-          # Native Client loader for 64-bit Windows.
-          'NACL_WIN64',
-        ],
-        # Need to include allocator target, but exclude tcmalloc files.
-        'use_allocator%': 'winheap',
-      }],
-
-      ['os_posix==1 and chromeos==0 and OS!="android" and OS!="ios" and embedded==0', {
-        'use_cups%': 1,
-      }, {
-        'use_cups%': 0,
-      }],
-
-      ['enable_plugins==1 and (OS=="linux" or OS=="mac" or OS=="win") and chromecast==0', {
-        'enable_pepper_cdms%': 1,
-      }, {
-        'enable_pepper_cdms%': 0,
-      }],
-
-      ['OS=="android" or chromecast==1', {
-        'enable_browser_cdms%': 1,
-      }, {
-        'enable_browser_cdms%': 0,
-      }],
-
-      # Native Client glibc toolchain is enabled
-      # by default except on arm, mips and mips64.
-      ['target_arch=="arm" or target_arch=="mipsel" or target_arch=="mips64el"', {
-        'disable_glibc%': 1,
-      }, {
-        'disable_glibc%': 0,
-      }],
-
-      # Set the relative path from this file to the GYP file of the JPEG
-      # library used by Chromium.
-      ['use_system_libjpeg==1 or use_libjpeg_turbo==0', {
-        # Configuration for using the system libjeg is here.
-        'libjpeg_gyp_path': '<(libjpeg_ijg_gyp_path)',
-      }, {
-        'libjpeg_gyp_path': '<(libjpeg_turbo_gyp_path)',
-      }],
-
-      # Options controlling the use of GConf (the classic GNOME configuration
-      # system) and GIO, which contains GSettings (the new GNOME config system).
-      ['chromeos==1 or embedded==1', {
-        'use_gconf%': 0,
-        'use_gio%': 0,
-      }, {
-        'use_gconf%': 1,
-        'use_gio%': 1,
-      }],
-
-      # Set up -D and -E flags passed into grit.
-      ['branding=="Chrome"', {
-        # TODO(mmoss) The .grd files look for _google_chrome, but for
-        # consistency they should look for google_chrome_build like C++.
-        'grit_defines': ['-D', '_google_chrome',
-                         '-E', 'CHROMIUM_BUILD=google_chrome'],
-      }, {
-        'grit_defines': ['-D', '_chromium',
-                         '-E', 'CHROMIUM_BUILD=chromium'],
-      }],
-      ['chromeos==1', {
-        'grit_defines': ['-D', 'chromeos', '-D', 'scale_factors=2x'],
-      }],
-      ['desktop_linux==1', {
-        'grit_defines': ['-D', 'desktop_linux'],
-      }],
-      ['toolkit_views==1', {
-        'grit_defines': ['-D', 'toolkit_views'],
-      }],
-      ['use_aura==1', {
-        'grit_defines': ['-D', 'use_aura'],
-      }],
-      ['use_ash==1', {
-        'grit_defines': ['-D', 'use_ash'],
-      }],
-      ['use_nss_certs==1', {
-        'grit_defines': ['-D', 'use_nss_certs'],
-      }],
-      ['use_ozone==1', {
-        'grit_defines': ['-D', 'use_ozone'],
-      }],
-      ['image_loader_extension==1', {
-        'grit_defines': ['-D', 'image_loader_extension'],
-      }],
-      ['remoting==1', {
-        'grit_defines': ['-D', 'remoting'],
-      }],
-      ['use_titlecase_in_grd==1', {
-        'grit_defines': ['-D', 'use_titlecase'],
-      }],
-      ['use_third_party_translations==1', {
-        'grit_defines': ['-D', 'use_third_party_translations'],
-        'locales': [
-          'ast', 'bs', 'ca@valencia', 'en-AU', 'eo', 'eu', 'gl', 'hy', 'ia',
-          'ka', 'ku', 'kw', 'ms', 'ug'
-        ],
-      }],
-      ['OS=="android"', {
-        'grit_defines': [
-          '-t', 'android',
-          '-E', 'ANDROID_JAVA_TAGGED_ONLY=true',
-          '--no-output-all-resource-defines',
-        ],
-      }],
-      ['OS=="mac" or OS=="ios"', {
-        'grit_defines': ['-D', 'scale_factors=2x'],
-      }],
-      ['OS == "ios"', {
-        'variables': {
-          'enable_coverage%': 0,
-        },
-        'grit_defines': [
-          '-t', 'ios',
-          '--no-output-all-resource-defines',
-        ],
-        # iOS uses a whitelist to filter resources.
-        'grit_whitelist%': '<(DEPTH)/build/ios/grit_whitelist.txt',
-
-        # Enable host builds when generating with ninja-ios.
-        'conditions': [
-          ['"<(GENERATOR)"=="ninja"', {
-            'host_os%': "mac",
-          }],
-
-          # Use the version of clang shipped with Xcode when building official
-          # version of Chrome for iOS.
-          #
-          # TODO(eugenebut): Remove enable_coverage check once
-          # libclang_rt.profile_ios.a is bundled with Chromium's clang.
-          # http://crbug.com/450379
-          ['buildtype=="Official" or enable_coverage', {
-            'clang_xcode%': 1,
-          }],
-        ],
-      }],
-      ['enable_extensions==1', {
-        'grit_defines': ['-D', 'enable_extensions'],
-      }],
-      ['enable_plugins!=0', {
-        'grit_defines': ['-D', 'enable_plugins'],
-      }],
-      ['enable_basic_printing==1 or enable_print_preview==1', {
-        'grit_defines': ['-D', 'enable_printing'],
-      }],
-      ['enable_print_preview==1', {
-        'grit_defines': ['-D', 'enable_print_preview'],
-      }],
-      ['enable_themes==1', {
-        'grit_defines': ['-D', 'enable_themes'],
-      }],
-      ['enable_app_list==1', {
-        'grit_defines': ['-D', 'enable_app_list'],
-      }],
-      ['enable_settings_app==1', {
-        'grit_defines': ['-D', 'enable_settings_app'],
-      }],
-      ['enable_google_now==1', {
-        'grit_defines': ['-D', 'enable_google_now'],
-      }],
-      ['use_concatenated_impulse_responses==1', {
-        'grit_defines': ['-D', 'use_concatenated_impulse_responses'],
-      }],
-      ['enable_media_router==1', {
-        'grit_defines': ['-D', 'enable_media_router'],
-      }],
-      ['enable_webrtc==1', {
-        'grit_defines': ['-D', 'enable_webrtc'],
-      }],
-      ['enable_hangout_services_extension==1', {
-        'grit_defines': ['-D', 'enable_hangout_services_extension'],
-      }],
-      ['enable_task_manager==1', {
-        'grit_defines': ['-D', 'enable_task_manager'],
-      }],
-      ['notifications==1', {
-        'grit_defines': ['-D', 'enable_notifications'],
-      }],
-      ['enable_wifi_bootstrapping==1', {
-        'grit_defines': ['-D', 'enable_wifi_bootstrapping'],
-      }],
-      ['mac_views_browser==1', {
-        'grit_defines': ['-D', 'mac_views_browser'],
-      }],
-      ['enable_resource_whitelist_generation==1 and OS!="win"', {
-        'grit_rc_header_format': ['-h', '#define {textual_id} _Pragma("whitelisted_resource_{numeric_id}") {numeric_id}'],
-      }],
-      ['enable_resource_whitelist_generation==1 and OS=="win"', {
-        'grit_rc_header_format': ['-h', '#define {textual_id} __pragma(message("whitelisted_resource_{numeric_id}")) {numeric_id}'],
-      }],
-      ['enable_mdns==1 or OS=="mac"', {
-        'grit_defines': ['-D', 'enable_service_discovery'],
-        'enable_service_discovery%': 1
-      }],
-      ['clang_use_chrome_plugins==1', {
-        'variables': {
-          'conditions': [
-            ['OS!="win"', {
-              'variables': {
-                'conditions': [
-                  ['OS=="mac" or OS=="ios"', {
-                    'clang_lib_path%': '<!(cd <(DEPTH) && pwd -P)/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib',
-                  }, { # OS != "mac" or OS != "ios"
-                    'clang_lib_path%': '<!(cd <(DEPTH) && pwd -P)/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so',
-                  }],
-                ],
-              },
-              'clang_dynlib_flags%': '-Xclang -load -Xclang <(clang_lib_path) ',
-            }, { # OS == "win"
-              # On Windows, the plugin is built directly into clang, so there's
-              # no need to load it dynamically.
-              'clang_dynlib_flags%': '',
-            }],
-            # https://crbug.com/441916
-            ['OS=="android" or OS=="linux" or OS=="mac"', {
-              'clang_plugin_args%': '-Xclang -plugin-arg-find-bad-constructs -Xclang check-templates ',
-            }, { # OS != "linux"
-              'clang_plugin_args%': ''
-            }],
-          ],
-        },
-        # If you change these, also change build/config/clang/BUILD.gn.
-        'clang_chrome_plugins_flags%':
-          '<(clang_dynlib_flags)'
-          '-Xclang -add-plugin -Xclang find-bad-constructs <(clang_plugin_args)',
-      }],
-      ['asan==1 or msan==1 or lsan==1 or tsan==1', {
-        'clang%': 1,
-        'use_allocator%': 'none',
-        'use_sanitizer_options%': 1,
-      }],
-
-      # Allowed level of identical code folding in the gold linker.
-      ['OS=="linux" and target_arch=="x64"', {
-        # --icf=safe disables much more folding on x86_64 than elsewhere, see
-        # http://crbug.com/492177.  Turning it on saves over 12 MB of binary
-        # size, but it seems to regress cold startup time by over a second
-        # (see http://crbug.com/492809).
-        # TODO(thakis): Check if disabling ICF would inmprove android cold start
-        # times by several seconds too.
-        'gold_icf_level%': 'safe',
-      }, {
-        'gold_icf_level%': 'all',
-      }],
-
-      ['OS=="linux" and asan==0 and msan==0 and lsan==0 and tsan==0', {
-        # PNaCl toolchain Non-SFI build only supports linux OS build.
-        # Also, it does not support sanitizers.
-        'enable_nacl_nonsfi_test%': 1,
-      }],
-      ['asan==1 and OS=="linux" and chromeos==0', {
-        'use_custom_libcxx%': 1,
-      }],
-      ['ubsan==1', {
-        'clang%': 1,
-      }],
-      ['ubsan_vptr==1', {
-        'clang%': 1,
-      }],
-      ['asan==1 and OS=="mac"', {
-        'mac_strip_release': 1,
-      }],
-      ['tsan==1', {
-        'use_custom_libcxx%': 1,
-      }],
-      ['msan==1', {
-        # Use a just-built, MSan-instrumented libc++ instead of the system-wide
-        # libstdc++. This is required to avoid false positive reports whenever
-        # the C++ standard library is used.
-        'use_custom_libcxx%': 1,
-        # Running the V8-generated code on an ARM simulator is a powerful hack
-        # that allows the tool to see the memory accesses from JITted code.
-        # Without this flag, JS code causes false positive reports from MSan.
-        'v8_target_arch': 'arm64',
-      }],
-
-      ['OS=="linux" and clang_type_profiler==1', {
-        'clang%': 1,
-        'clang_use_chrome_plugins%': 0,
-        'conditions': [
-          ['host_arch=="x64"', {
-            'make_clang_dir%': 'third_party/llvm-allocated-type/Linux_x64',
-          }],
-          ['host_arch=="ia32"', {
-            # 32-bit Clang is unsupported.  It may not build.  Put your 32-bit
-            # Clang in this directory at your own risk if needed for some
-            # purpose (e.g. to compare 32-bit and 64-bit behavior like memory
-            # usage).  Any failure by this compiler should not close the tree.
-            'make_clang_dir%': 'third_party/llvm-allocated-type/Linux_ia32',
-          }],
-        ],
-      }],
-
-      # On valgrind bots, override the optimizer settings so we don't inline too
-      # much and make the stacks harder to figure out.
-      #
-      # TODO(rnk): Kill off variables that no one else uses and just implement
-      # them under a build_for_tool== condition.
-      ['build_for_tool=="memcheck" or build_for_tool=="tsan"', {
-        # gcc flags
-        'mac_debug_optimization': '1',
-        'mac_release_optimization': '1',
-        'release_optimize': '1',
-        'no_gc_sections': 1,
-        'debug_extra_cflags': '-g -fno-inline -fno-omit-frame-pointer '
-                              '-fno-builtin -fno-optimize-sibling-calls',
-        'release_extra_cflags': '-g -fno-inline -fno-omit-frame-pointer '
-                                '-fno-builtin -fno-optimize-sibling-calls',
-
-        # MSVS flags for TSan on Pin and Windows.
-        'win_debug_RuntimeChecks': '0',
-        'win_debug_disable_iterator_debugging': '1',
-        'win_debug_Optimization': '1',
-        'win_debug_InlineFunctionExpansion': '0',
-        'win_release_InlineFunctionExpansion': '0',
-        'win_release_OmitFramePointers': '0',
-
-        'use_allocator': 'tcmalloc',
-        'release_valgrind_build': 1,
-        'werror': '',
-        'component': 'static_library',
-        'use_system_zlib': 0,
-      }],
-
-      # Build tweaks for DrMemory.
-      # TODO(rnk): Combine with tsan config to share the builder.
-      # http://crbug.com/108155
-      ['build_for_tool=="drmemory"', {
-        # These runtime checks force initialization of stack vars which blocks
-        # DrMemory's uninit detection.
-        'win_debug_RuntimeChecks': '0',
-        # Iterator debugging is slow.
-        'win_debug_disable_iterator_debugging': '1',
-        # Try to disable optimizations that mess up stacks in a release build.
-        # DrM-i#1054 (https://github.com/DynamoRIO/drmemory/issues/1054)
-        # /O2 and /Ob0 (disable inline) cannot be used together because of a
-        # compiler bug, so we use /Ob1 instead.
-        'win_release_InlineFunctionExpansion': '1',
-        'win_release_OmitFramePointers': '0',
-        # Ditto for debug, to support bumping win_debug_Optimization.
-        'win_debug_InlineFunctionExpansion': 0,
-        'win_debug_OmitFramePointers': 0,
-        # Keep the code under #ifndef NVALGRIND.
-        'release_valgrind_build': 1,
-      }],
-
-      # Enable RLZ on Win, Mac, iOS and ChromeOS.
-      ['branding=="Chrome" and (OS=="win" or OS=="mac" or OS=="ios" or chromeos==1)', {
-        'enable_rlz%': 1,
-      }],
-
-      # Set default compiler flags depending on ARM version.
-      ['arm_version==6', {
-        'arm_arch%': 'armv6',
-        'arm_tune%': '',
-        'arm_fpu%': 'vfp',
-        'arm_float_abi%': 'softfp',
-        'arm_thumb%': 0,
-      }],
-      ['arm_version==7', {
-        'arm_arch%': 'armv7-a',
-        'arm_tune%': 'generic-armv7-a',
-        'conditions': [
-          ['arm_neon==1', {
-            'arm_fpu%': 'neon',
-          }, {
-            'arm_fpu%': 'vfpv3-d16',
-          }],
-          ['OS=="android"', {
-            'arm_float_abi%': 'softfp',
-          }, {
-            'arm_float_abi%': 'hard',
-          }],
-        ],
-        'arm_thumb%': 1,
-      }],
-
-      # Set default compiler flags for MIPS floating-point support.
-      ['target_arch=="mipsel"', {
-        'mips_float_abi%': 'hard',
-      }],
-      ['target_arch=="mipsel" and mips_arch_variant=="r2"', {
-        'mips_fpu_mode%': 'fp32',
-      }],
-
-      # Enable brlapi by default for chromeos.
-      [ 'chromeos==1', {
-        'use_brlapi%': 1,
-      }],
-
-      ['use_ozone==1 and ozone_auto_platforms==1', {
-        # Use test as the default platform.
-        'ozone_platform%': 'test',
-
-        # Build all platforms whose deps are in install-build-deps.sh.
-        # Only these platforms will be compile tested by buildbots.
-        'ozone_platform_dri%': 1,
-        'ozone_platform_drm%': 1,
-        'ozone_platform_test%': 1,
-        'ozone_platform_egltest%': 1,
-      }],
-
-      ['desktop_linux==1 and use_aura==1 and use_x11==1', {
-        'use_clipboard_aurax11%': 1,
-      }],
-
-      ['OS=="win" and use_goma==1', {
-        # goma doesn't support pch yet.
-        'chromium_win_pch': 0,
-        # goma doesn't support PDB yet, so win_z7=1 or fastbuild=1.
-        'conditions': [
-          ['win_z7==0 and fastbuild==0', {
-            'fastbuild': 1,
-          }],
-        ],
-      }],
-
-      ['OS=="win" and (clang==1 or asan==1)', {
-        'chromium_win_pch': 0,
-      }],
-
-      ['host_clang==1', {
-        'host_cc': '<(make_clang_dir)/bin/clang',
-        'host_cxx': '<(make_clang_dir)/bin/clang++',
-      }, {
-        'host_cc': '<!(which gcc)',
-        'host_cxx': '<!(which g++)',
-      }],
-
-      # The seccomp-bpf sandbox is only supported on five architectures
-      # currently.
-      # Do not disable seccomp_bpf anywhere without talking to
-      # security@chromium.org!
-      ['((OS=="linux" or OS=="android") and '
-           '(target_arch=="ia32" or target_arch=="x64" or '
-             'target_arch=="arm" or target_arch=="mipsel" or '
-             'target_arch=="arm64"))', {
-         'use_seccomp_bpf%': 1,
-      }, {
-         'use_seccomp_bpf%': 0,
-      }],
-
-      ['cfi_vptr==1', {
-        'use_lto%': 1,
-      }],
-
-      ['branding=="Chrome" and buildtype=="Official"', {
-        'enable_hangout_services_extension%': 1,
-      }, {
-        'enable_hangout_services_extension%': 0,
-      }],
-    ],
-
-    # The path to the ANGLE library.
-    'angle_path': '<(DEPTH)/third_party/angle',
-
-    # List of default apps to install in new profiles.  The first list contains
-    # the source files as found in svn.  The second list, used only for linux,
-    # contains the destination location for each of the files.  When a crx
-    # is added or removed from the list, the chrome/browser/resources/
-    # default_apps/external_extensions.json file must also be updated.
-    #
-    # README: GN version of these is in the target //chrome:default_apps
-    # (there's no global variable like in GYP). Be sure to update that target
-    # if you change these lists!
-    'default_apps_list': [
-      'browser/resources/default_apps/external_extensions.json',
-      'browser/resources/default_apps/gmail.crx',
-      'browser/resources/default_apps/search.crx',
-      'browser/resources/default_apps/youtube.crx',
-      'browser/resources/default_apps/drive.crx',
-      'browser/resources/default_apps/docs.crx',
-    ],
-    'default_apps_list_linux_dest': [
-      '<(PRODUCT_DIR)/default_apps/external_extensions.json',
-      '<(PRODUCT_DIR)/default_apps/gmail.crx',
-      '<(PRODUCT_DIR)/default_apps/search.crx',
-      '<(PRODUCT_DIR)/default_apps/youtube.crx',
-      '<(PRODUCT_DIR)/default_apps/drive.crx',
-      '<(PRODUCT_DIR)/default_apps/docs.crx',
-    ],
-
-    # Whether to allow building of the GPU-related isolates.
-    'archive_gpu_tests%': 0,
-
-     # Whether to allow building of chromoting related isolates.
-    'archive_chromoting_tests%': 0,
-  },
-  'target_defaults': {
-    'variables': {
-      # The condition that operates on chromium_code is in a target_conditions
-      # section, and will not have access to the default fallback value of
-      # chromium_code at the top of this file, or to the chromium_code
-      # variable placed at the root variables scope of .gyp files, because
-      # those variables are not set at target scope.  As a workaround,
-      # if chromium_code is not set at target scope, define it in target scope
-      # to contain whatever value it has during early variable expansion.
-      # That's enough to make it available during target conditional
-      # processing.
-      'chromium_code%': '<(chromium_code)',
-
-      'component%': '<(component)',
-
-      'chromecast%': '<(chromecast)',
-
-      # See http://msdn.microsoft.com/en-us/library/aa652360(VS.71).aspx
-      'win_release_Optimization%': '2', # 2 = /O2
-      'win_debug_Optimization%': '0',   # 0 = /Od
-
-      # See http://msdn.microsoft.com/en-us/library/2kxx5t2c(v=vs.80).aspx
-      # Tri-state: blank is default, 1 on, 0 off
-      'win_release_OmitFramePointers%': '0',
-      # Tri-state: blank is default, 1 on, 0 off
-      'win_debug_OmitFramePointers%': '',
-
-      # See http://msdn.microsoft.com/en-us/library/8wtf2dfz(VS.71).aspx
-      'win_debug_RuntimeChecks%': '3',    # 3 = all checks enabled, 0 = off
-
-      # See http://msdn.microsoft.com/en-us/library/47238hez(VS.71).aspx
-      'win_debug_InlineFunctionExpansion%': '',    # empty = default, 0 = off,
-      'win_release_InlineFunctionExpansion%': '2', # 1 = only __inline, 2 = max
-
-      # VS inserts quite a lot of extra checks to algorithms like
-      # std::partial_sort in Debug build which make them O(N^2)
-      # instead of O(N*logN). This is particularly slow under memory
-      # tools like ThreadSanitizer so we want it to be disablable.
-      # See http://msdn.microsoft.com/en-us/library/aa985982(v=VS.80).aspx
-      'win_debug_disable_iterator_debugging%': '0',
-
-      # An application manifest fragment to declare compatibility settings for
-      # 'executable' targets. Ignored in other target type.
-      'win_exe_compatibility_manifest%':
-          '<(DEPTH)\\build\\win\\compatibility.manifest',
-
-      'release_extra_cflags%': '',
-      'debug_extra_cflags%': '',
-
-      'release_valgrind_build%': '<(release_valgrind_build)',
-
-      # the non-qualified versions are widely assumed to be *nix-only
-      'win_release_extra_cflags%': '',
-      'win_debug_extra_cflags%': '',
-
-      # TODO(thakis): Make this a blacklist instead, http://crbug.com/101600
-      'enable_wexit_time_destructors%': '<(enable_wexit_time_destructors)',
-
-      # Only used by Windows build for now.  Can be used to build into a
-      # differet output directory, e.g., a build_dir_prefix of VS2010_ would
-      # output files in src/build/VS2010_{Debug,Release}.
-      'build_dir_prefix%': '',
-
-      # Targets are by default not nacl untrusted code.
-      'nacl_untrusted_build%': 0,
-
-      'pnacl_compile_flags': [
-        # pnacl uses the clang compiler so we need to suppress all the
-        # same warnings as we do for clang.
-        # TODO(sbc): Remove these if/when they are removed from the clang
-        # build.
-        '-Wno-unused-function',
-        '-Wno-char-subscripts',
-        '-Wno-c++11-extensions',
-        '-Wno-unnamed-type-template-args',
-      ],
-
-      # By default, Android targets have their exported JNI symbols stripped,
-      # so we test the manual JNI registration code paths that are required
-      # when using the crazy linker. To allow use of native JNI exports (lazily
-      # resolved by the JVM), targets can enable this variable, which will stop
-      # the stripping from happening. Only targets which do not need to be
-      # compatible with the crazy linker are permitted to set this.
-      'use_native_jni_exports%': 0,
-
-      'conditions': [
-        ['OS=="win" and component=="shared_library"', {
-          # See http://msdn.microsoft.com/en-us/library/aa652367.aspx
-          'win_release_RuntimeLibrary%': '2', # 2 = /MD (nondebug DLL)
-          'win_debug_RuntimeLibrary%': '3',   # 3 = /MDd (debug DLL)
-        }, {
-          # See http://msdn.microsoft.com/en-us/library/aa652367.aspx
-          'win_release_RuntimeLibrary%': '0', # 0 = /MT (nondebug static)
-          'win_debug_RuntimeLibrary%': '1',   # 1 = /MTd (debug static)
-        }],
-        ['OS=="ios"', {
-          # See http://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Optimize-Options.html
-          'mac_release_optimization%': 's', # Use -Os unless overridden
-          'mac_debug_optimization%': '0',   # Use -O0 unless overridden
-        }, {
-          # See http://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Optimize-Options.html
-          'mac_release_optimization%': '2', # Use -O2 unless overridden
-          'mac_debug_optimization%': '0',   # Use -O0 unless overridden
-        }],
-        ['OS=="android"', {
-          'host_os%': '<(host_os)',  # See comment above chromium_code.
-        }],
-      ],
-      'clang_warning_flags': [
-        '-Wheader-hygiene',
-
-        # Don't die on dtoa code that uses a char as an array index.
-        # This is required solely for base/third_party/dmg_fp/dtoa.cc.
-        '-Wno-char-subscripts',
-
-        # TODO(thakis): This used to be implied by -Wno-unused-function,
-        # which we no longer use. Check if it makes sense to remove
-        # this as well. http://crbug.com/316352
-        '-Wno-unneeded-internal-declaration',
-
-        # Warns on switches on enums that cover all enum values but
-        # also contain a default: branch. Chrome is full of that.
-        '-Wno-covered-switch-default',
-
-        # Warns when a const char[] is converted to bool.
-        '-Wstring-conversion',
-
-        # C++11-related flags:
-
-        # This warns on using ints as initializers for floats in
-        # initializer lists (e.g. |int a = f(); CGSize s = { a, a };|),
-        # which happens in several places in chrome code. Not sure if
-        # this is worth fixing.
-        '-Wno-c++11-narrowing',
-
-        # Clang considers the `register` keyword as deprecated, but e.g.
-        # code generated by flex (used in angle) contains that keyword.
-        # http://crbug.com/255186
-        '-Wno-deprecated-register',
-
-        # TODO(hans): Get this cleaned up.
-        '-Wno-inconsistent-missing-override',
-      ],
-    },
-    'includes': [ 'set_clang_warning_flags.gypi', ],
-    'defines': [
-      # Don't use deprecated V8 APIs anywhere.
-      'V8_DEPRECATION_WARNINGS',
-    ],
-    'include_dirs': [
-      '<(SHARED_INTERMEDIATE_DIR)',
-    ],
-    'conditions': [
-      ['OS=="mac"', {
-        # When compiling Objective C, warns if a method is used whose
-        # availability is newer than the deployment target.
-        'xcode_settings': { 'WARNING_CFLAGS': ['-Wpartial-availability']},
-      }],
-      ['(OS=="mac" or OS=="ios") and asan==1', {
-        'dependencies': [
-          '<(DEPTH)/build/mac/asan.gyp:asan_dynamic_runtime',
-        ],
-      }],
-      ['OS=="win" and asan==1 and component=="shared_library"', {
-        'dependencies': [
-          '<(DEPTH)/build/win/asan.gyp:asan_dynamic_runtime',
-        ],
-      }],
-      ['OS=="linux" and use_allocator!="none" and clang_type_profiler==1', {
-        'cflags_cc!': ['-fno-rtti'],
-        'cflags_cc+': [
-          '-frtti',
-          '-gline-tables-only',
-          '-fintercept-allocation-functions',
-        ],
-        'defines': ['TYPE_PROFILING'],
-        'dependencies': [
-          '<(DEPTH)/base/allocator/allocator.gyp:type_profiler',
-        ],
-      }],
-      ['branding=="Chrome"', {
-        'defines': ['GOOGLE_CHROME_BUILD'],
-      }, {  # else: branding!="Chrome"
-        'defines': ['CHROMIUM_BUILD'],
-      }],
-      ['OS=="mac" and component=="shared_library"', {
-        'xcode_settings': {
-          'DYLIB_INSTALL_NAME_BASE': '@rpath',
-          'LD_RUNPATH_SEARCH_PATHS': [
-            # For unbundled binaries.
-            '@loader_path/.',
-            # For bundled binaries, to get back from Binary.app/Contents/MacOS.
-            '@loader_path/../../..',
-          ],
-        },
-      }],
-      ['clang==1 or host_clang==1', {
-        # This is here so that all files get recompiled after a clang roll and
-        # when turning clang on or off.
-        # (defines are passed via the command line, and build systems rebuild
-        # things when their commandline changes). Nothing should ever read this
-        # define.
-        'defines': ['CR_CLANG_REVISION=<!(python <(DEPTH)/tools/clang/scripts/update.py --print-revision)'],
-      }],
-      ['enable_rlz==1', {
-        'defines': ['ENABLE_RLZ'],
-      }],
-      ['component=="shared_library"', {
-        'defines': ['COMPONENT_BUILD'],
-      }],
-      ['toolkit_views==1', {
-        'defines': ['TOOLKIT_VIEWS=1'],
-      }],
-      ['ui_compositor_image_transport==1', {
-        'defines': ['UI_COMPOSITOR_IMAGE_TRANSPORT'],
-      }],
-      ['use_aura==1', {
-        'defines': ['USE_AURA=1'],
-      }],
-      ['use_ash==1', {
-        'defines': ['USE_ASH=1'],
-      }],
-      ['use_pango==1', {
-        'defines': ['USE_PANGO=1'],
-      }],
-      ['use_cairo==1', {
-        'defines': ['USE_CAIRO=1'],
-      }],
-      ['use_cras==1', {
-        'defines': ['USE_CRAS=1'],
-      }],
-      ['use_ozone==1', {
-        'defines': ['USE_OZONE=1'],
-      }],
-      ['use_default_render_theme==1', {
-        'defines': ['USE_DEFAULT_RENDER_THEME=1'],
-      }],
-      ['use_libjpeg_turbo==1', {
-        'defines': ['USE_LIBJPEG_TURBO=1'],
-      }],
-      ['use_x11==1', {
-        'defines': ['USE_X11=1'],
-      }],
-      ['use_clipboard_aurax11==1', {
-        'defines': ['USE_CLIPBOARD_AURAX11=1'],
-      }],
-      ['enable_one_click_signin==1', {
-        'defines': ['ENABLE_ONE_CLICK_SIGNIN'],
-      }],
-      ['enable_pre_sync_backup==1', {
-        'defines': ['ENABLE_PRE_SYNC_BACKUP'],
-      }],
-      ['image_loader_extension==1', {
-        'defines': ['IMAGE_LOADER_EXTENSION=1'],
-      }],
-      ['profiling==1', {
-        'defines': ['ENABLE_PROFILING=1'],
-      }],
-      ['remoting==1', {
-        'defines': ['ENABLE_REMOTING=1'],
-      }],
-      ['enable_webrtc==1', {
-        'defines': ['ENABLE_WEBRTC=1'],
-      }],
-      ['enable_media_router==1', {
-        'defines': ['ENABLE_MEDIA_ROUTER=1'],
-      }],
-      ['proprietary_codecs==1', {
-        'defines': ['USE_PROPRIETARY_CODECS'],
-        'conditions': [
-          ['enable_mpeg2ts_stream_parser==1', {
-            'defines': ['ENABLE_MPEG2TS_STREAM_PARSER'],
-          }],
-        ],
-      }],
-      ['enable_viewport==1', {
-        'defines': ['ENABLE_VIEWPORT'],
-      }],
-      ['enable_pepper_cdms==1', {
-        'defines': ['ENABLE_PEPPER_CDMS'],
-      }],
-      ['enable_browser_cdms==1', {
-        'defines': ['ENABLE_BROWSER_CDMS'],
-      }],
-      ['configuration_policy==1', {
-        'defines': ['ENABLE_CONFIGURATION_POLICY'],
-      }],
-      ['notifications==1', {
-        'defines': ['ENABLE_NOTIFICATIONS'],
-      }],
-      ['enable_hidpi==1', {
-        'defines': ['ENABLE_HIDPI=1'],
-      }],
-      ['enable_topchrome_md==1', {
-        'defines': ['ENABLE_TOPCHROME_MD=1'],
-      }],
-      ['native_memory_pressure_signals==1', {
-        'defines': ['SYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE'],
-      }],
-      ['use_udev==1', {
-        'defines': ['USE_UDEV'],
-      }],
-      ['fastbuild!=0', {
-        'xcode_settings': {
-          'GCC_GENERATE_DEBUGGING_SYMBOLS': 'NO',
-        },
-        'conditions': [
-          ['OS=="win" and fastbuild==2', {
-            # Completely disable debug information.
-            'msvs_settings': {
-              'VCLinkerTool': {
-                'GenerateDebugInformation': 'false',
-              },
-              'VCCLCompilerTool': {
-                'DebugInformationFormat': '0',
-              },
-            },
-          }],
-          ['OS=="win" and fastbuild==1', {
-            'msvs_settings': {
-              'VCLinkerTool': {
-                # This tells the linker to generate .pdbs, so that
-                # we can get meaningful stack traces.
-                'GenerateDebugInformation': 'true',
-              },
-              'VCCLCompilerTool': {
-                # No debug info to be generated by compiler.
-                'DebugInformationFormat': '0',
-              },
-            },
-          }],
-          ['(OS=="android" or OS=="linux") and fastbuild==2', {
-            'variables': { 'debug_extra_cflags': '-g0', },
-          }],
-          ['(OS=="android" or OS=="linux") and fastbuild==1', {
-            # TODO(thakis): Change this to -g1 once http://crbug.com/456947 is
-            # fixed.
-            'variables': { 'debug_extra_cflags': '-g0', },
-          }],
-          # Android builds symbols on release by default, disable them.
-          ['OS=="android" and fastbuild==2', {
-            'variables': { 'release_extra_cflags': '-g0', },
-          }],
-          ['OS=="android" and fastbuild==1', {
-            # TODO(thakis): Change this to -g1 once http://crbug.com/456947 is
-            # fixed.
-            'variables': { 'release_extra_cflags': '-g0', },
-          }],
-        ],
-      }],  # fastbuild!=0
-      ['dont_embed_build_metadata==1', {
-        'defines': [
-          'DONT_EMBED_BUILD_METADATA',
-        ],
-      }],  # dont_embed_build_metadata==1
-      ['dcheck_always_on!=0', {
-        'defines': ['DCHECK_ALWAYS_ON=1'],
-      }],  # dcheck_always_on!=0
-      ['tracing_like_official_build!=0', {
-        'defines': ['TRACING_IS_OFFICIAL_BUILD=1'],
-      }],  # tracing_like_official_build!=0
-      ['OS=="win"', {
-        'defines': ['NO_TCMALLOC'],
-        'conditions': [
-          ['win_use_allocator_shim==1', {
-            'defines': ['ALLOCATOR_SHIM'],
-          }],
-        ],
-      }],
-      ['asan==1', {
-        'defines': [
-          'ADDRESS_SANITIZER',
-          'MEMORY_TOOL_REPLACES_ALLOCATOR',
-          'MEMORY_SANITIZER_INITIAL_SIZE',
-        ],
-      }],
-      ['syzyasan==1', {
-        # SyzyAsan needs /PROFILE turned on to produce appropriate pdbs.
-        'msvs_settings': {
-          'VCLinkerTool': {
-            'Profile': 'true',
-          },
-        },
-        'defines': [
-            'SYZYASAN',
-            'MEMORY_TOOL_REPLACES_ALLOCATOR',
-            'MEMORY_SANITIZER_INITIAL_SIZE',
-        ],
-      }],
-      ['kasko==1', {
-        'defines': [
-            'KASKO',
-        ],
-        'include_dirs': [
-          '<(DEPTH)/third_party/kasko/include',
-        ],
-      }],
-      ['OS=="win"', {
-        'defines': [
-          '__STD_C',
-          '_CRT_SECURE_NO_DEPRECATE',
-          '_SCL_SECURE_NO_DEPRECATE',
-          # This define is required to pull in the new Win8 interfaces from
-          # system headers like ShObjIdl.h.
-          'NTDDI_VERSION=0x06030000',
-          # This is required for ATL to use XP-safe versions of its functions.
-          '_USING_V110_SDK71_',
-        ],
-        'include_dirs': [
-          '<(DEPTH)/third_party/wtl/include',
-        ],
-        'conditions': [
-          ['win_z7!=0', {
-            'msvs_settings': {
-              # Generates debug info when win_z7=1
-              # even if fastbuild=1 (that makes GenerateDebugInformation false).
-              'VCLinkerTool': {
-                'GenerateDebugInformation': 'true',
-              },
-              'VCCLCompilerTool': {
-                'DebugInformationFormat': '1',
-              }
-            }
-          }],  # win_z7!=0
-          ['win_analyze', {
-            'defines!': [
-              # This is prohibited when running /analyze.
-              '_USING_V110_SDK71_',
-            ],
-            'msvs_settings': {
-              'VCCLCompilerTool': {
-                # Set WarnAsError to false to disable this setting for most
-                # projects so that compilation continues.
-                'WarnAsError': 'false',
-                # When win_analyze is specified add the /analyze switch.
-                # Also add /WX- to force-disable WarnAsError for projects that
-                # override WarnAsError.
-                # Also, disable various noisy warnings that have low value.
-                'AdditionalOptions': [
-                  '/analyze',
-                  '/WX-',
-                  '/wd6011',  # Dereferencing NULL pointer
-                  '/wd6312',  # Possible infinite loop: use of the constant
-                    # EXCEPTION_CONTINUE_EXECUTION in the exception-filter
-                  '/wd6326',  # Potential comparison of constant with constant
-                  '/wd28159', # Consider using 'GetTickCount64'
-                  '/wd28204', # Inconsistent SAL annotations
-                  '/wd28251', # Inconsistent SAL annotations
-                  '/wd28252', # Inconsistent SAL annotations
-                  '/wd28253', # Inconsistent SAL annotations
-                  '/wd28196', # The precondition is not satisfied
-                  '/wd28301', # Inconsistent SAL annotations
-                  '/wd6340',  # Sign mismatch in function parameter
-                  '/wd28182', # Dereferencing NULL pointer
-                  # C6285 is ~16% of raw warnings and has low value
-                  '/wd6285',  # non-zero constant || non-zero constant
-                  # C6334 is ~80% of raw warnings and has low value
-                  '/wd6334',  # sizeof applied to an expression with an operator
-                ],
-              },
-            },
-          }],  # win_analyze
-        ],
-      }],  # OS==win
-      ['chromecast==1', {
-        'defines': [
-          'LOG_DISABLED=0',
-        ],
-        'conditions': [
-          ['use_playready==1', {
-            'defines': [
-              'PLAYREADY_CDM_AVAILABLE',
-            ],
-          }],
-        ],
-      }],
-      ['enable_task_manager==1', {
-        'defines': [
-          'ENABLE_TASK_MANAGER=1',
-        ],
-      }],
-      ['enable_extensions==1', {
-        'defines': [
-          'ENABLE_EXTENSIONS=1',
-        ],
-      }],
-      ['OS=="win" and branding=="Chrome"', {
-        'defines': ['ENABLE_SWIFTSHADER'],
-      }],
-      ['enable_dart==1', {
-        'defines': ['WEBKIT_USING_DART=1'],
-      }],
-      ['enable_plugin_installation==1', {
-        'defines': ['ENABLE_PLUGIN_INSTALLATION=1'],
-      }],
-      ['enable_plugins==1', {
-        'defines': ['ENABLE_PLUGINS=1'],
-      }],
-      ['enable_session_service==1', {
-        'defines': ['ENABLE_SESSION_SERVICE=1'],
-      }],
-      ['enable_themes==1', {
-        'defines': ['ENABLE_THEMES=1'],
-      }],
-      ['enable_autofill_dialog==1', {
-        'defines': ['ENABLE_AUTOFILL_DIALOG=1'],
-      }],
-      ['enable_prod_wallet_service==1', {
-        # In GN, this is set on the autofill tagets only. See
-        # //components/autofill/core/browser:wallet_service
-        'defines': ['ENABLE_PROD_WALLET_SERVICE=1'],
-      }],
-      ['enable_background==1', {
-        'defines': ['ENABLE_BACKGROUND=1'],
-      }],
-      ['enable_google_now==1', {
-        'defines': ['ENABLE_GOOGLE_NOW=1'],
-      }],
-      ['cld_version!=0', {
-        'defines': ['CLD_VERSION=<(cld_version)'],
-      }],
-      ['enable_basic_printing==1 or enable_print_preview==1', {
-        # Convenience define for ENABLE_BASIC_PRINTING || ENABLE_PRINT_PREVIEW.
-        'defines': ['ENABLE_PRINTING=1'],
-      }],
-      ['enable_basic_printing==1', {
-        # Enable basic printing support and UI.
-        'defines': ['ENABLE_BASIC_PRINTING=1'],
-      }],
-      ['enable_print_preview==1', {
-        # Enable printing with print preview.
-        # Can be defined without ENABLE_BASIC_PRINTING.
-        'defines': ['ENABLE_PRINT_PREVIEW=1'],
-      }],
-      ['enable_spellcheck==1', {
-        'defines': ['ENABLE_SPELLCHECK=1'],
-      }],
-      ['enable_captive_portal_detection==1', {
-        'defines': ['ENABLE_CAPTIVE_PORTAL_DETECTION=1'],
-      }],
-      ['enable_app_list==1', {
-        'defines': ['ENABLE_APP_LIST=1'],
-      }],
-      ['enable_settings_app==1', {
-        'defines': ['ENABLE_SETTINGS_APP=1'],
-      }],
-      ['disable_file_support==1', {
-        'defines': ['DISABLE_FILE_SUPPORT=1'],
-      }],
-      ['disable_ftp_support==1', {
-        'defines': ['DISABLE_FTP_SUPPORT=1'],
-      }],
-      ['enable_supervised_users==1', {
-        'defines': ['ENABLE_SUPERVISED_USERS=1'],
-      }],
-      ['enable_mdns==1', {
-        'defines': ['ENABLE_MDNS=1'],
-      }],
-      ['enable_service_discovery==1', {
-        'defines' : [ 'ENABLE_SERVICE_DISCOVERY=1' ],
-      }],
-      ['enable_wifi_bootstrapping==1', {
-        'defines' : [ 'ENABLE_WIFI_BOOTSTRAPPING=1' ],
-      }],
-      ['enable_hangout_services_extension==1', {
-        'defines': ['ENABLE_HANGOUT_SERVICES_EXTENSION=1'],
-      }],
-      ['enable_ipc_fuzzer==1', {
-        'defines': ['ENABLE_IPC_FUZZER=1'],
-      }],
-      ['video_hole==1', {
-        'defines': ['VIDEO_HOLE=1'],
-      }],
-      ['v8_use_external_startup_data==1', {
-       'defines': ['V8_USE_EXTERNAL_STARTUP_DATA'],
-      }],
-
-      # SAFE_BROWSING_SERVICE - browser manages a safe-browsing service.
-      # SAFE_BROWSING_DB_LOCAL - service manages a local database.
-      # SAFE_BROWSING_DB_REMOTE - service talks via API to a database
-      # SAFE_BROWSING_CSD - enable client-side phishing detection.
-      ['safe_browsing==1', {
-        'defines': [
-          # TODO(nparker): Remove existing uses of FULL_SAFE_BROWSING
-          'FULL_SAFE_BROWSING',
-          'SAFE_BROWSING_CSD',
-          'SAFE_BROWSING_DB_LOCAL',
-          'SAFE_BROWSING_SERVICE',
-        ],
-      }],
-      ['safe_browsing==2', {
-        'defines': [
-          # TODO(nparker): Remove existing uses of MOBILE_SAFE_BROWSING
-          'MOBILE_SAFE_BROWSING',
-          'SAFE_BROWSING_SERVICE',
-        ],
-      }],
-      ['safe_browsing==3', {
-        'defines': [
-          # TODO(nparker): Remove existing uses of MOBILE_SAFE_BROWSING
-          'MOBILE_SAFE_BROWSING',
-          'SAFE_BROWSING_DB_REMOTE',
-          'SAFE_BROWSING_SERVICE',
-        ],
-      }],
-    ],  # conditions for 'target_defaults'
-    'target_conditions': [
-      ['<(use_libpci)==1', {
-        'defines': ['USE_LIBPCI=1'],
-      }],
-      ['<(use_openssl)==1', {
-        'defines': ['USE_OPENSSL=1'],
-      }],
-      ['<(use_openssl_certs)==1', {
-        'defines': ['USE_OPENSSL_CERTS=1'],
-      }],
-      ['>(nacl_untrusted_build)==1', {
-        'defines': [
-          'USE_OPENSSL=1',
-          'USE_OPENSSL_CERTS=1',
-        ],
-      }],
-      ['<(use_glib)==1 and >(nacl_untrusted_build)==0', {
-        'defines': ['USE_GLIB=1'],
-      }],
-      ['<(use_nss_certs)==1 and >(nacl_untrusted_build)==0', {
-        'defines': ['USE_NSS_CERTS=1'],
-      }],
-      ['<(chromeos)==1 and >(nacl_untrusted_build)==0', {
-        'defines': ['OS_CHROMEOS=1'],
-      }],
-      ['enable_wexit_time_destructors==1 and OS!="win"', {
-        # TODO: Enable on Windows too, http://crbug.com/404525
-        'variables': { 'clang_warning_flags': ['-Wexit-time-destructors']},
-      }],
-      ['chromium_code==0', {
-        'conditions': [
-          [ 'os_posix==1 and OS!="mac" and OS!="ios"', {
-            # We don't want to get warnings from third-party code,
-            # so remove any existing warning-enabling flags like -Wall.
-            'cflags!': [
-              '-Wall',
-              '-Wextra',
-            ],
-            'cflags_cc': [
-              # Don't warn about hash_map in third-party code.
-              '-Wno-deprecated',
-            ],
-            'cflags': [
-              # Don't warn about printf format problems.
-              # This is off by default in gcc but on in Ubuntu's gcc(!).
-              '-Wno-format',
-            ],
-            'cflags_cc!': [
-              # Necessary because llvm.org/PR10448 is WONTFIX (crbug.com/90453).
-              '-Wsign-compare',
-            ]
-          }],
-          # TODO: Fix all warnings on chromeos too.
-          [ 'os_posix==1 and OS!="mac" and OS!="ios" and (clang!=1 or chromeos==1)', {
-            'cflags!': [
-              '-Werror',
-            ],
-          }],
-          [ 'os_posix==1 and os_bsd!=1 and OS!="mac" and OS!="android"', {
-            'cflags': [
-              # Don't warn about ignoring the return value from e.g. close().
-              # This is off by default in some gccs but on by default in others.
-              # BSD systems do not support this option, since they are usually
-              # using gcc 4.2.1, which does not have this flag yet.
-              '-Wno-unused-result',
-            ],
-          }],
-          [ 'OS=="win"', {
-            'defines': [
-              '_CRT_SECURE_NO_DEPRECATE',
-              '_CRT_NONSTDC_NO_WARNINGS',
-              '_CRT_NONSTDC_NO_DEPRECATE',
-              '_SCL_SECURE_NO_DEPRECATE',
-            ],
-            'msvs_disabled_warnings': [
-              4800,
-            ],
-            'msvs_settings': {
-              'VCCLCompilerTool': {
-                'WarningLevel': '3',
-                'WarnAsError': 'true',
-                'Detect64BitPortabilityProblems': 'false',
-              },
-            },
-            'conditions': [
-              ['buildtype=="Official"', {
-                'msvs_settings': {
-                  'VCCLCompilerTool': { 'WarnAsError': 'false' },
-                }
-              }],
-              [ 'component=="shared_library"', {
-              # TODO(darin): Unfortunately, some third_party code depends on base.
-                'msvs_disabled_warnings': [
-                  4251,  # class 'std::xx' needs to have dll-interface.
-                 ],
-              }],
-            ],
-          }],
-
-          [ 'OS=="mac" or OS=="ios"', {
-            'xcode_settings': {
-              'WARNING_CFLAGS!': ['-Wall', '-Wextra'],
-            },
-            'conditions': [
-              ['buildtype=="Official"', {
-                'xcode_settings': {
-                  'GCC_TREAT_WARNINGS_AS_ERRORS': 'NO',    # -Werror
-                },
-              }],
-            ],
-          }],
-          [ 'OS=="ios"', {
-            'xcode_settings': {
-              # TODO(ios): Fix remaining warnings in third-party code, then
-              # remove this; the Mac cleanup didn't get everything that's
-              # flagged in an iOS build.
-              'GCC_TREAT_WARNINGS_AS_ERRORS': 'NO',
-              'RUN_CLANG_STATIC_ANALYZER': 'NO',
-              # Several internal ios directories generate numerous warnings for
-              # -Wobjc-missing-property-synthesis.
-              'CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS': 'NO',
-            },
-          }],
-        ],
-      }, {
-        'includes': [
-           # Rules for excluding e.g. foo_win.cc from the build on non-Windows.
-          'filename_rules.gypi',
-        ],
-        # In Chromium code, we define __STDC_foo_MACROS in order to get the
-        # C99 macros on Mac and Linux.
-        'defines': [
-          '__STDC_CONSTANT_MACROS',
-          '__STDC_FORMAT_MACROS',
-        ],
-        'conditions': [
-          ['OS=="win"', {
-            # turn on warnings for signed/unsigned mismatch on chromium code.
-            'msvs_settings': {
-              'VCCLCompilerTool': {
-                'AdditionalOptions': ['/we4389'],
-              },
-            },
-          }],
-          ['OS=="win" and component=="shared_library"', {
-            'msvs_disabled_warnings': [
-              4251,  # class 'std::xx' needs to have dll-interface.
-            ],
-          }],
-        ],
-      }],
-    ],  # target_conditions for 'target_defaults'
-    'default_configuration': 'Debug',
-    'configurations': {
-      # VCLinkerTool LinkIncremental values below:
-      #   0 == default
-      #   1 == /INCREMENTAL:NO
-      #   2 == /INCREMENTAL
-      # Debug links incremental, Release does not.
-      #
-      # Abstract base configurations to cover common attributes.
-      #
-      'Common_Base': {
-        'abstract': 1,
-        'msvs_configuration_attributes': {
-          'OutputDirectory': '<(DEPTH)\\build\\<(build_dir_prefix)$(ConfigurationName)',
-          'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
-          'CharacterSet': '1',
-        },
-        # Add the default import libs.
-        'msvs_settings':{
-          'VCLinkerTool': {
-            'AdditionalDependencies': [
-              'kernel32.lib',
-              'gdi32.lib',
-              'winspool.lib',
-              'comdlg32.lib',
-              'advapi32.lib',
-              'shell32.lib',
-              'ole32.lib',
-              'oleaut32.lib',
-              'user32.lib',
-              'uuid.lib',
-              'odbc32.lib',
-              'odbccp32.lib',
-              'delayimp.lib',
-              'credui.lib',
-              'netapi32.lib',
-            ],
-            'AdditionalOptions': [
-              # Suggested by Microsoft Devrel to avoid
-              #   LINK : fatal error LNK1248: image size (80000000) exceeds maximum allowable size (80000000)
-              # which started happening more regularly after VS2013 Update 4.
-              # Needs to be a bit lower for VS2015, or else errors out.
-              '/maxilksize:0x7ff00000',
-            ],
-          },
-        },
-      },
-      'x86_Base': {
-        'abstract': 1,
-        'msvs_settings': {
-          'VCLinkerTool': {
-            'MinimumRequiredVersion': '5.01',  # XP.
-            'TargetMachine': '1',
-          },
-          'VCLibrarianTool': {
-            'TargetMachine': '1',
-          },
-        },
-        'msvs_configuration_platform': 'Win32',
-      },
-      'x64_Base': {
-        'abstract': 1,
-        'msvs_configuration_platform': 'x64',
-        'msvs_settings': {
-          'VCLinkerTool': {
-            # Make sure to understand http://crbug.com/361720 if you want to
-            # increase this.
-            'MinimumRequiredVersion': '5.02',  # Server 2003.
-            'TargetMachine': '17', # x86 - 64
-            'AdditionalLibraryDirectories!':
-              ['<(windows_sdk_path)/Lib/win8/um/x86'],
-            'AdditionalLibraryDirectories':
-              ['<(windows_sdk_path)/Lib/win8/um/x64'],
-            # Doesn't exist x64 SDK. Should use oleaut32 in any case.
-            'IgnoreDefaultLibraryNames': [ 'olepro32.lib' ],
-          },
-          'VCLibrarianTool': {
-            'AdditionalLibraryDirectories!':
-              ['<(windows_sdk_path)/Lib/win8/um/x86'],
-            'AdditionalLibraryDirectories':
-              ['<(windows_sdk_path)/Lib/win8/um/x64'],
-            'TargetMachine': '17', # x64
-          },
-        },
-      },
-      'Debug_Base': {
-        'abstract': 1,
-        'defines': [
-          'DYNAMIC_ANNOTATIONS_ENABLED=1',
-          'WTF_USE_DYNAMIC_ANNOTATIONS=1',
-        ],
-        'xcode_settings': {
-          'GCC_OPTIMIZATION_LEVEL': '<(mac_debug_optimization)',
-          'OTHER_CFLAGS': [
-            '<@(debug_extra_cflags)',
-          ],
-        },
-        'msvs_settings': {
-          'VCCLCompilerTool': {
-            'Optimization': '<(win_debug_Optimization)',
-            'PreprocessorDefinitions': ['_DEBUG'],
-            'BasicRuntimeChecks': '<(win_debug_RuntimeChecks)',
-            'RuntimeLibrary': '<(win_debug_RuntimeLibrary)',
-            'conditions': [
-              # According to MSVS, InlineFunctionExpansion=0 means
-              # "default inlining", not "/Ob0".
-              # Thus, we have to handle InlineFunctionExpansion==0 separately.
-              ['win_debug_InlineFunctionExpansion==0', {
-                'AdditionalOptions': ['/Ob0'],
-              }],
-              ['win_debug_InlineFunctionExpansion!=""', {
-                'InlineFunctionExpansion':
-                  '<(win_debug_InlineFunctionExpansion)',
-              }],
-              ['win_debug_disable_iterator_debugging==1', {
-                'PreprocessorDefinitions': ['_HAS_ITERATOR_DEBUGGING=0'],
-              }],
-
-              # if win_debug_OmitFramePointers is blank, leave as default
-              ['win_debug_OmitFramePointers==1', {
-                'OmitFramePointers': 'true',
-              }],
-              ['win_debug_OmitFramePointers==0', {
-                'OmitFramePointers': 'false',
-                # The above is not sufficient (http://crbug.com/106711): it
-                # simply eliminates an explicit "/Oy", but both /O2 and /Ox
-                # perform FPO regardless, so we must explicitly disable.
-                # We still want the false setting above to avoid having
-                # "/Oy /Oy-" and warnings about overriding.
-                'AdditionalOptions': ['/Oy-'],
-              }],
-            ],
-            'AdditionalOptions': [ '<@(win_debug_extra_cflags)', ],
-          },
-          'VCLinkerTool': {
-            'LinkIncremental': '<(msvs_debug_link_incremental)',
-            # ASLR makes debugging with windbg difficult because Chrome.exe and
-            # Chrome.dll share the same base name. As result, windbg will
-            # name the Chrome.dll module like chrome_<base address>, where
-            # <base address> typically changes with each launch. This in turn
-            # means that breakpoints in Chrome.dll don't stick from one launch
-            # to the next. For this reason, we turn ASLR off in debug builds.
-            # Note that this is a three-way bool, where 0 means to pick up
-            # the default setting, 1 is off and 2 is on.
-            'RandomizedBaseAddress': 1,
-          },
-          'VCResourceCompilerTool': {
-            'PreprocessorDefinitions': ['_DEBUG'],
-          },
-        },
-        'conditions': [
-          ['OS=="linux" or OS=="android"', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags': [
-                  '<@(debug_extra_cflags)',
-                ],
-              }],
-            ],
-          }],
-          ['OS=="linux" and target_arch!="ia32" and disable_glibcxx_debug==0', {
-            # Enable libstdc++ debugging facilities to help catch problems
-            # early, see http://crbug.com/65151 .
-            # TODO(phajdan.jr): Should we enable this for all of POSIX?
-            'defines': ['_GLIBCXX_DEBUG=1',],
-          }],
-          ['release_valgrind_build==0', {
-            'xcode_settings': {
-              'OTHER_CFLAGS': [
-                '-fstack-protector-all',  # Implies -fstack-protector
-              ],
-            },
-          }],
-          ['clang==1', {
-            'cflags': [
-              # Allow comparing the address of references and 'this' against 0
-              # in debug builds. Technically, these can never be null in
-              # well-defined C/C++ and Clang can optimize such checks away in
-              # release builds, but they may be used in asserts in debug builds.
-              '-Wno-undefined-bool-conversion',
-              '-Wno-tautological-undefined-compare',
-            ],
-            'xcode_settings': {
-              'OTHER_CFLAGS': [
-                '-Wno-undefined-bool-conversion',
-                '-Wno-tautological-undefined-compare',
-              ],
-            },
-            'msvs_settings': {
-              'VCCLCompilerTool': {
-                'AdditionalOptions': [
-                  '-Wno-undefined-bool-conversion',
-                  '-Wno-tautological-undefined-compare',
-                ],
-              },
-            },
-          }],
-        ],
-      },
-      'Release_Base': {
-        'abstract': 1,
-        'defines': [
-          'NDEBUG',
-        ],
-        'xcode_settings': {
-          'DEAD_CODE_STRIPPING': 'YES',  # -Wl,-dead_strip
-          'GCC_OPTIMIZATION_LEVEL': '<(mac_release_optimization)',
-          'OTHER_CFLAGS': [ '<@(release_extra_cflags)', ],
-        },
-        'msvs_settings': {
-          'VCCLCompilerTool': {
-            'RuntimeLibrary': '<(win_release_RuntimeLibrary)',
-            'conditions': [
-              # In official builds, each target will self-select
-              # an optimization level.
-              ['buildtype!="Official"', {
-                  'Optimization': '<(win_release_Optimization)',
-                },
-              ],
-              # According to MSVS, InlineFunctionExpansion=0 means
-              # "default inlining", not "/Ob0".
-              # Thus, we have to handle InlineFunctionExpansion==0 separately.
-              ['win_release_InlineFunctionExpansion==0', {
-                'AdditionalOptions': ['/Ob0'],
-              }],
-              ['win_release_InlineFunctionExpansion!=""', {
-                'InlineFunctionExpansion':
-                  '<(win_release_InlineFunctionExpansion)',
-              }],
-
-              # if win_release_OmitFramePointers is blank, leave as default
-              ['win_release_OmitFramePointers==1', {
-                'OmitFramePointers': 'true',
-              }],
-              ['win_release_OmitFramePointers==0', {
-                'OmitFramePointers': 'false',
-                # The above is not sufficient (http://crbug.com/106711): it
-                # simply eliminates an explicit "/Oy", but both /O2 and /Ox
-                # perform FPO regardless, so we must explicitly disable.
-                # We still want the false setting above to avoid having
-                # "/Oy /Oy-" and warnings about overriding.
-                'AdditionalOptions': ['/Oy-'],
-              }],
-              ['asan==0', {
-                # Put data in separate COMDATs. This allows the linker
-                # to put bit-identical constants at the same address even if
-                # they're unrelated constants, which saves binary size.
-                # This optimization can't be used when ASan is enabled because
-                # it is not compatible with the ASan ODR checker.
-                'AdditionalOptions': ['/Gw'],
-              }],
-            ],
-            'AdditionalOptions': [
-                '/d2Zi+',  # Improve debugging of Release builds.
-                '/Zc:inline',  # Remove unreferenced COMDAT (faster links).
-                '<@(win_release_extra_cflags)',
-            ],
-          },
-          'VCLinkerTool': {
-            # LinkIncremental is a tri-state boolean, where 0 means default
-            # (i.e., inherit from parent solution), 1 means false, and
-            # 2 means true.
-            'LinkIncremental': '1',
-            # This corresponds to the /PROFILE flag which ensures the PDB
-            # file contains FIXUP information (growing the PDB file by about
-            # 5%) but does not otherwise alter the output binary. This
-            # information is used by the Syzygy optimization tool when
-            # decomposing the release image.
-            'Profile': 'true',
-          },
-        },
-        'conditions': [
-          ['msvs_use_common_release', {
-            'includes': ['release.gypi'],
-          }],
-          ['release_valgrind_build==0 and tsan==0', {
-            'defines': [
-              'NVALGRIND',
-              'DYNAMIC_ANNOTATIONS_ENABLED=0',
-            ],
-          }, {
-            'defines': [
-              'MEMORY_TOOL_REPLACES_ALLOCATOR',
-              'MEMORY_SANITIZER_INITIAL_SIZE',
-              'DYNAMIC_ANNOTATIONS_ENABLED=1',
-              'WTF_USE_DYNAMIC_ANNOTATIONS=1',
-            ],
-          }],
-          ['OS=="win"', {
-            'defines': ['NO_TCMALLOC'],
-          }],
-          # _FORTIFY_SOURCE isn't really supported by Clang now, see
-          # http://llvm.org/bugs/show_bug.cgi?id=16821.
-          # It seems to work fine with Ubuntu 12 headers though, so use it
-          # in official builds.
-          ['os_posix==1 and (asan!=1 and msan!=1 and tsan!=1 and lsan!=1 and ubsan!=1) and (OS!="linux" or clang!=1 or buildtype=="Official")', {
-            'target_conditions': [
-              ['chromium_code==1', {
-                # Non-chromium code is not guaranteed to compile cleanly
-                # with _FORTIFY_SOURCE. Also, fortified build may fail
-                # when optimizations are disabled, so only do that for Release
-                # build.
-                'defines': [
-                  '_FORTIFY_SOURCE=2',
-                ],
-              }],
-            ],
-          }],
-          ['OS=="linux" or OS=="android"', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags': [
-                  '<@(release_extra_cflags)',
-                ],
-                'conditions': [
-                  ['enable_resource_whitelist_generation==1', {
-                    'cflags': [
-                      '-Wunknown-pragmas -Wno-error=unknown-pragmas',
-                    ],
-                  }],
-                ],
-              }],
-            ],
-          }],
-          ['OS=="ios"', {
-            'defines': [
-              'NS_BLOCK_ASSERTIONS=1',
-            ],
-          }],
-        ],
-      },
-      #
-      # Concrete configurations
-      #
-      'Debug': {
-        'inherit_from': ['Common_Base', 'x86_Base', 'Debug_Base'],
-      },
-      'Release': {
-        'inherit_from': ['Common_Base', 'x86_Base', 'Release_Base'],
-      },
-      'conditions': [
-        [ 'OS=="ios"', {
-          'Profile': {
-            'inherit_from': ['Common_Base', 'x86_Base', 'Release_Base'],
-            'target_conditions': [
-              [ '_type=="executable"', {
-                # To get a real .dSYM bundle produced by dsymutil, set the
-                # debug information format to dwarf-with-dsym.  Since
-                # strip_from_xcode will not be used, set Xcode to do the
-                # stripping as well.
-                'xcode_settings': {
-                  'DEBUG_INFORMATION_FORMAT': 'dwarf-with-dsym',
-                  'DEPLOYMENT_POSTPROCESSING': 'YES',
-                  'STRIP_INSTALLED_PRODUCT': 'YES',
-                },
-              }],
-            ],
-          },
-        }],
-        [ 'OS=="win"', {
-          # TODO(bradnelson): add a gyp mechanism to make this more graceful.
-          'Debug_x64': {
-            'inherit_from': ['Common_Base', 'x64_Base', 'Debug_Base'],
-          },
-          'Release_x64': {
-            'inherit_from': ['Common_Base', 'x64_Base', 'Release_Base'],
-          },
-        }],
-      ],
-    },
-  },
-  'conditions': [
-    ['os_posix==1', {
-      'target_defaults': {
-        'ldflags': [
-          '-Wl,-z,now',
-          '-Wl,-z,relro',
-        ],
-        # TODO(glider): enable the default options on other systems.
-        'conditions': [
-          ['use_sanitizer_options==1 and ((OS=="linux" and (chromeos==0 or target_arch!="ia32")) or OS=="mac")', {
-            'dependencies': [
-              '<(DEPTH)/build/sanitizers/sanitizers.gyp:sanitizer_options',
-            ],
-          }],
-        ],
-      },
-    }],
-    # TODO(jochen): Enable this on chromeos on arm. http://crbug.com/356580
-    ['os_posix==1 and disable_fatal_linker_warnings==0 and use_evdev_gestures==0 and (chromeos==0 or target_arch!="arm")', {
-      'target_defaults': {
-        'ldflags': [
-          '-Wl,--fatal-warnings',
-        ],
-      },
-    }],
-    # -Wl,-z,-defs doesn't work with the sanitiziers, http://crbug.com/452065
-    ['(OS=="linux" or OS=="android") and asan==0 and msan==0 and tsan==0 and ubsan==0 and ubsan_vptr==0', {
-      'target_defaults': {
-        'ldflags': [
-          '-Wl,-z,defs',
-        ],
-      },
-    }],
-    ['os_posix==1 and chromeos==0', {
-      # Chrome OS enables -fstack-protector-strong via its build wrapper,
-      # and we want to avoid overriding this, so stack-protector is only
-      # enabled when not building on Chrome OS.
-      # TODO(phajdan.jr): Use -fstack-protector-strong when our gcc
-      # supports it.
-      'target_defaults': {
-        'cflags': [
-          '-fstack-protector',
-          '--param=ssp-buffer-size=4',
-        ],
-      },
-    }],
-    ['os_posix==1 and OS=="linux"', {
-      'defines': [
-        '_LARGEFILE_SOURCE',
-        '_LARGEFILE64_SOURCE',
-        '_FILE_OFFSET_BITS=64',
-      ],
-    }],
-    ['os_posix==1 and OS!="mac" and OS!="ios"', {
-      'target_defaults': {
-        # Enable -Werror by default, but put it in a variable so it can
-        # be disabled in ~/.gyp/include.gypi on the valgrind builders.
-        'variables': {
-          'werror%': '-Werror',
-          'libraries_for_target%': '',
-        },
-        'defines': [
-          '_FILE_OFFSET_BITS=64',
-        ],
-        'cflags': [
-          '<(werror)',  # See note above about the werror variable.
-          '-pthread',
-          '-fno-strict-aliasing',  # See http://crbug.com/32204
-          '-Wall',
-          # Don't warn about unused function params.  We use those everywhere.
-          '-Wno-unused-parameter',
-          # Don't warn about the "struct foo f = {0};" initialization pattern.
-          '-Wno-missing-field-initializers',
-          # Don't export any symbols (for example, to plugins we dlopen()).
-          # Note: this is *required* to make some plugins work.
-          '-fvisibility=hidden',
-          '-pipe',
-        ],
-        'cflags_cc': [
-          '-fno-exceptions',
-          '-fno-rtti',
-          '-fno-threadsafe-statics',
-          # Make inline functions have hidden visiblity by default.
-          # Surprisingly, not covered by -fvisibility=hidden.
-          '-fvisibility-inlines-hidden',
-          # GCC turns on -Wsign-compare for C++ under -Wall, but clang doesn't,
-          # so we specify it explicitly.  (llvm.org/PR10448, crbug.com/90453)
-          '-Wsign-compare',
-        ],
-        'ldflags': [
-          '-pthread', '-Wl,-z,noexecstack',
-        ],
-        'libraries' : [
-          '<(libraries_for_target)',
-        ],
-        'configurations': {
-          'Debug_Base': {
-            'variables': {
-              'debug_optimize%': '0',
-            },
-            'defines': [
-              '_DEBUG',
-            ],
-            'cflags': [
-              '-O>(debug_optimize)',
-              '-g',
-              '-gdwarf-4',
-            ],
-            'conditions' : [
-              ['OS=="android" and target_arch!="mipsel" and target_arch!="mips64el"', {
-                # TODO(jdduke) Re-enable on mips after resolving linking
-                # issues with libc++ (crbug.com/456380).
-                'ldflags': [
-                  # Warn in case of text relocations.
-                  '-Wl,--warn-shared-textrel',
-                ],
-              }],
-              ['OS=="android" and android_full_debug==0', {
-                # Some configurations are copied from Release_Base to reduce
-                # the binary size.
-                'variables': {
-                  'debug_optimize%': 's',
-                },
-                'cflags': [
-                  '-fdata-sections',
-                  '-ffunction-sections',
-                ],
-                'ldflags': [
-                  '-Wl,-O1',
-                  '-Wl,--as-needed',
-                ],
-              }],
-              ['OS=="android" and android_full_debug==0 and target_arch!="arm64"', {
-                # We don't omit frame pointers on arm64 since they are required
-                # to correctly unwind stackframes which contain system library
-                # function frames (crbug.com/391706).
-                'cflags': [
-                  '-fomit-frame-pointer',
-                ],
-              }],
-              ['OS=="linux" and target_arch=="ia32"', {
-                'ldflags': [
-                  '-Wl,--no-as-needed',
-                ],
-              }],
-              ['debug_unwind_tables==1', {
-                'cflags': ['-funwind-tables'],
-              }, {
-                'cflags': ['-fno-unwind-tables', '-fno-asynchronous-unwind-tables'],
-                'defines': ['NO_UNWIND_TABLES'],
-              }],
-              # TODO(mostynb): shuffle clang/gcc_version/binutils_version
-              # definitions in to the right scope to use them when setting
-              # linux_use_debug_fission, so it can be used here alone.
-              ['linux_use_debug_fission==1 and linux_use_gold_flags==1 and (clang==1 or gcc_version>=48) and binutils_version>=223', {
-                'cflags': ['-gsplit-dwarf'],
-              }],
-            ],
-          },
-          'Release_Base': {
-            'variables': {
-              'release_optimize%': '2',
-              # Binaries become big and gold is unable to perform GC
-              # and remove unused sections for some of test targets
-              # on 32 bit platform.
-              # (This is currently observed only in chromeos valgrind bots)
-              # The following flag is to disable --gc-sections linker
-              # option for these bots.
-              'no_gc_sections%': 0,
-
-              # TODO(bradnelson): reexamine how this is done if we change the
-              # expansion of configurations
-              'release_valgrind_build%': 0,
-            },
-            'cflags': [
-              '-O<(release_optimize)',
-              # Don't emit the GCC version ident directives, they just end up
-              # in the .comment section taking up binary size.
-              '-fno-ident',
-              # Put data and code in their own sections, so that unused symbols
-              # can be removed at link time with --gc-sections.
-              '-fdata-sections',
-              '-ffunction-sections',
-            ],
-            'ldflags': [
-              # Specifically tell the linker to perform optimizations.
-              # See http://lwn.net/Articles/192624/ .
-              '-Wl,-O1',
-              '-Wl,--as-needed',
-            ],
-            'conditions' : [
-              ['no_gc_sections==0', {
-                'ldflags': [
-                  '-Wl,--gc-sections',
-                ],
-              }],
-              ['OS=="android" and target_arch!="arm64"', {
-                # We don't omit frame pointers on arm64 since they are required
-                # to correctly unwind stackframes which contain system library
-                # function frames (crbug.com/391706).
-                'cflags': [
-                  '-fomit-frame-pointer',
-                ]
-              }],
-              ['OS=="android" and target_arch!="mipsel" and target_arch!="mips64el"', {
-                # TODO(jdduke) Re-enable on mips after resolving linking
-                # issues with libc++ (crbug.com/456380).
-                'ldflags': [
-                  # Warn in case of text relocations.
-                  '-Wl,--warn-shared-textrel',
-                ],
-              }],
-              ['OS=="android"', {
-                'variables': {
-                  'release_optimize%': 's',
-                },
-              }],
-              ['profiling==1', {
-                'cflags': [
-                  '-fno-omit-frame-pointer',
-                  '-g',
-                ],
-                'conditions' : [
-                  ['profiling_full_stack_frames==1', {
-                    'cflags': [
-                      '-fno-inline',
-                      '-fno-optimize-sibling-calls',
-                    ],
-                  }],
-                ],
-              }],
-              ['release_unwind_tables==1', {
-                'cflags': ['-funwind-tables'],
-              }, {
-                'cflags': ['-fno-unwind-tables', '-fno-asynchronous-unwind-tables'],
-                'defines': ['NO_UNWIND_TABLES'],
-              }],
-              ['clang==1', {
-                # Non-unique section names appears to make linker dead stripping
-                # less effective. See http://crbug.com/483026#c20
-                # TODO(hans): Remove this if resolved upstream.
-                'cflags': [
-                  '-funique-section-names',
-                ],
-              }],
-            ],
-          },
-        },
-        'conditions': [
-          ['target_arch=="ia32"', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'asflags': [
-                  # Needed so that libs with .s files (e.g. libicudata.a)
-                  # are compatible with the general 32-bit-ness.
-                  '-32',
-                ],
-                # All floating-point computations on x87 happens in 80-bit
-                # precision.  Because the C and C++ language standards allow
-                # the compiler to keep the floating-point values in higher
-                # precision than what's specified in the source and doing so
-                # is more efficient than constantly rounding up to 64-bit or
-                # 32-bit precision as specified in the source, the compiler,
-                # especially in the optimized mode, tries very hard to keep
-                # values in x87 floating-point stack (in 80-bit precision)
-                # as long as possible. This has important side effects, that
-                # the real value used in computation may change depending on
-                # how the compiler did the optimization - that is, the value
-                # kept in 80-bit is different than the value rounded down to
-                # 64-bit or 32-bit. There are possible compiler options to
-                # make this behavior consistent (e.g. -ffloat-store would keep
-                # all floating-values in the memory, thus force them to be
-                # rounded to its original precision) but they have significant
-                # runtime performance penalty.
-                #
-                # -mfpmath=sse -msse2 makes the compiler use SSE instructions
-                # which keep floating-point values in SSE registers in its
-                # native precision (32-bit for single precision, and 64-bit
-                # for double precision values). This means the floating-point
-                # value used during computation does not change depending on
-                # how the compiler optimized the code, since the value is
-                # always kept in its specified precision.
-                #
-                # Refer to http://crbug.com/348761 for rationale behind SSE2
-                # being a minimum requirement for 32-bit Linux builds and
-                # http://crbug.com/313032 for an example where this has "bit"
-                # us in the past.
-                'cflags': [
-                  '-msse2',
-                  '-mfpmath=sse',
-                  '-mmmx',  # Allows mmintrin.h for MMX intrinsics.
-                  '-m32',
-                ],
-                'ldflags': [
-                  '-m32',
-                ],
-                'conditions': [
-                  # Use gold linker for Android ia32 target.
-                  ['OS=="android"', {
-                    'ldflags': [
-                      '-fuse-ld=gold',
-                    ],
-                  }],
-                ],
-              }],
-            ],
-          }],
-          ['target_arch=="x64"', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'conditions': [
-                  # Use gold linker for Android x64 target.
-                  ['OS=="android"', {
-                    'ldflags': [
-                      '-fuse-ld=gold',
-                    ],
-                  }],
-                ],
-                'cflags': [
-                  '-m64',
-                  '-march=x86-64',
-                ],
-                'ldflags': [
-                  '-m64',
-                ],
-              }],
-            ],
-          }],
-          ['target_arch=="arm"', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'conditions': [
-                  ['clang==0', {
-                    'cflags_cc': [
-                      # The codesourcery arm-2009q3 toolchain warns at that the ABI
-                      # has changed whenever it encounters a varargs function. This
-                      # silences those warnings, as they are not helpful and
-                      # clutter legitimate warnings.
-                      '-Wno-abi',
-                    ],
-                  }],
-                  ['clang==1 and arm_arch!="" and OS!="android"', {
-                    'cflags': [
-                      '-target arm-linux-gnueabihf',
-                    ],
-                    'ldflags': [
-                      '-target arm-linux-gnueabihf',
-                    ],
-                  }],
-                  ['arm_arch!=""', {
-                    'cflags': [
-                      '-march=<(arm_arch)',
-                    ],
-                    'conditions': [
-                      ['use_lto==1 or use_lto_o2==1', {
-                        'ldflags': [
-                          '-march=<(arm_arch)',
-                        ],
-                      }],
-                    ],
-                  }],
-                  ['clang==1 and OS!="android"', {
-                    'cflags': [
-                      # We need to disable clang's builtin assembler as it can't
-                      # handle several asm files, crbug.com/124610
-                      '-no-integrated-as',
-                    ],
-                  }],
-                  ['arm_tune!=""', {
-                    'cflags': [
-                      '-mtune=<(arm_tune)',
-                    ],
-                    'conditions': [
-                      ['use_lto==1 or use_lto_o2==1', {
-                        'ldflags': [
-                          '-mtune=<(arm_tune)',
-                        ],
-                      }],
-                    ],
-                  }],
-                  ['arm_fpu!=""', {
-                    'cflags': [
-                      '-mfpu=<(arm_fpu)',
-                    ],
-                    'conditions': [
-                      ['use_lto==1 or use_lto_o2==1', {
-                        'ldflags': [
-                          '-mfpu=<(arm_fpu)',
-                        ],
-                      }],
-                    ],
-                  }],
-                  ['arm_float_abi!=""', {
-                    'cflags': [
-                      '-mfloat-abi=<(arm_float_abi)',
-                    ],
-                    'conditions': [
-                      ['use_lto==1 or use_lto_o2==1', {
-                        'ldflags': [
-                          '-mfloat-abi=<(arm_float_abi)',
-                        ],
-                      }],
-                    ],
-                  }],
-                  ['arm_thumb==1', {
-                    'cflags': [
-                      '-mthumb',
-                    ],
-                    'conditions': [
-                      ['use_lto==1 or use_lto_o2==1', {
-                        'ldflags': [
-                          '-mthumb',
-                        ],
-                      }],
-                    ],
-                  }],
-                  ['OS=="android"', {
-                    # Most of the following flags are derived from what Android
-                    # uses by default when building for arm, reference for which
-                    # can be found in the following file in the Android NDK:
-                    # toolchains/arm-linux-androideabi-4.9/setup.mk
-                    'cflags': [
-                      # The tree-sra optimization (scalar replacement for
-                      # aggregates enabling subsequent optimizations) leads to
-                      # invalid code generation when using the Android NDK's
-                      # compiler (r5-r7). This can be verified using
-                      # webkit_unit_tests' WTF.Checked_int8_t test.
-                      '-fno-tree-sra',
-                      # The following option is disabled to improve binary
-                      # size and performance in gcc 4.9.
-                      '-fno-caller-saves',
-                      '-Wno-psabi',
-                    ],
-                    # Android now supports .relro sections properly.
-                    # NOTE: While these flags enable the generation of .relro
-                    # sections, the generated libraries can still be loaded on
-                    # older Android platform versions.
-                    'ldflags': [
-                        '-Wl,-z,relro',
-                        '-Wl,-z,now',
-                        '-fuse-ld=gold',
-                    ],
-                    'conditions': [
-                      ['gcc_version==48 and clang==0', {
-                        'cflags': [
-                          # The following 5 options are disabled to save on
-                          # binary size in GCC 4.8.
-                          '-fno-partial-inlining',
-                          '-fno-early-inlining',
-                          '-fno-tree-copy-prop',
-                          '-fno-tree-loop-optimize',
-                          '-fno-move-loop-invariants',
-                        ],
-                      }],
-                      ['arm_thumb==1', {
-                        'cflags': [ '-mthumb-interwork' ],
-                      }],
-                      ['profiling==1', {
-                        'cflags': [
-                          # Thumb code with frame pointer makes chrome crash
-                          # early.
-                          '-marm',
-                          '-mapcs-frame', # Required by -fno-omit-frame-pointer.
-                          # The perf report sometimes incorrectly attributes
-                          # code from tail calls.
-                          '-fno-optimize-sibling-calls',
-                        ],
-                        'cflags!': [
-                          '-fomit-frame-pointer',
-                        ],
-                      }],
-                      ['clang==1', {
-                        'cflags!': [
-                          # Clang does not support the following options.
-                          '-mapcs-frame',
-                          '-mthumb-interwork',
-                          '-finline-limit=64',
-                          '-fno-tree-sra',
-                          '-fno-caller-saves',
-                          '-Wno-psabi',
-                        ],
-                        'cflags': [
-                          # TODO(hans) Enable integrated-as (crbug.com/124610).
-                          '-no-integrated-as',
-                          '-B<(android_toolchain)',  # Else /usr/bin/as gets picked up.
-                        ],
-                      }],
-                      ['clang==1 and linux_use_bundled_gold==0', {
-                        'ldflags': [
-                          # Let clang find the ld.gold in the NDK.
-                          '--gcc-toolchain=<(android_toolchain)/..',
-                        ],
-                      }],
-                      ['asan==1', {
-                        'cflags': [
-                          '-marm', # Required for frame pointer based stack traces.
-                        ],
-                      }],
-                    ],
-                  }],
-                  ['chromecast==1', {
-                    'cflags': [
-                      # We set arm_arch to "" so that -march compiler option
-                      # is not set.  Otherwise a gcc bug that would complain
-                      # about it conflicting with '-mcpu=cortex-a9'. The flag
-                      # '-march=armv7-a' is actually redundant anyway because
-                      # it is enabled by default when we built the toolchain.
-                      # And using '-mcpu=cortex-a9' should be sufficient.
-                      '-mcpu=cortex-a9',
-                      '-funwind-tables',
-                      # Breakpad requires symbols with debugging information
-                      '-g',
-                    ],
-                    'ldflags': [
-                      # We want to statically link libstdc++/libgcc_s.
-                      '-static-libstdc++',
-                      '-static-libgcc',
-                    ],
-                    'cflags!': [
-                      # Some components in Chromium (e.g. v8, skia, ffmpeg)
-                      # define their own cflags for arm builds that could
-                      # conflict with the flags we set here (e.g.
-                      # '-mcpu=cortex-a9'). Remove these flags explicitly.
-                      '-march=armv7-a',
-                      '-mtune=cortex-a8',
-                    ],
-                  }],
-                ],
-              }],
-            ],
-          }],
-          ['target_arch=="arm64"', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'conditions': [
-                  ['OS=="android"', {
-                    'cflags!': [
-                       '-fstack-protector',  # stack protector is always enabled on arm64.
-                    ],
-                  }],
-                ],
-              }],
-            ],
-          }],
-          ['target_arch=="mipsel"', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'conditions': [
-                  ['mips_arch_variant=="r6"', {
-                    'conditions': [
-                      ['clang==1', {
-                        'cflags': [ '-target mipsel-linux-gnu', '-march=mips32r6', ],
-                        'ldflags': [ '-target mipsel-linux-gnu', ],
-                      }, { # clang==0
-                        'cflags': ['-mips32r6', '-Wa,-mips32r6', ],
-                      }],
-                      ['clang==0 and OS=="android"', {
-                        'ldflags': ['-mips32r6', '-Wl,-melf32ltsmip',],
-                      }],
-                    ],
-                  }],
-                  ['mips_arch_variant=="r2"', {
-                    'conditions': [
-                      ['mips_float_abi=="hard" and mips_fpu_mode!=""', {
-                        'cflags': ['-m<(mips_fpu_mode)'],
-                      }],
-                      ['clang==1', {
-                         'conditions': [
-                          ['OS=="android"', {
-                            'cflags': [ '-target mipsel-linux-android', '-march=mipsel', '-mcpu=mips32r2'],
-                            'ldflags': [ '-target mipsel-linux-android', ],
-                          }, {
-                            'cflags': [ '-target mipsel-linux-gnu', '-march=mipsel', '-mcpu=mips32r2'],
-                            'ldflags': [ '-target mipsel-linux-gnu', ],
-                          }],
-                         ],
-                      }, { # clang==0
-                        'cflags': ['-mips32r2', '-Wa,-mips32r2', ],
-                      }],
-                    ],
-                  }],
-                  ['mips_arch_variant=="r1"', {
-                    'conditions': [
-                      ['clang==1', {
-                        'conditions': [
-                          ['OS=="android"', {
-                            'cflags': [ '-target mipsel-linux-android', '-march=mipsel', '-mcpu=mips32'],
-                            'ldflags': [ '-target mipsel-linux-android', ],
-                          }, {
-                            'cflags': [ '-target mipsel-linux-gnu', '-march=mipsel', '-mcpu=mips32'],
-                            'ldflags': [ '-target mipsel-linux-gnu', ],
-                          }],
-                        ],
-                      }, { # clang==0
-                        'cflags': ['-mips32', '-Wa,-mips32', ],
-                      }],
-                    ],
-                  }],
-                  ['clang==1', {
-                    'cflags!': [
-                      # Clang does not support the following options.
-                      '-finline-limit=64',
-                    ],
-                    'cflags': [
-                      # TODO(gordanac) Enable integrated-as.
-                      '-no-integrated-as',
-                    ],
-                  }],
-                  ['clang==1 and OS=="android"', {
-                    'cflags': [
-                      '-B<(android_toolchain)',  # Else /usr/bin/as gets picked up.
-                    ],
-                    'ldflags': [
-                      # Let clang find the ld in the NDK.
-                      '--gcc-toolchain=<(android_toolchain)/..',
-                    ],
-                  }],
-                  ['mips_dsp_rev==1', {
-                    'cflags': ['-mdsp'],
-                  }],
-                  ['mips_dsp_rev==2', {
-                    'cflags': ['-mdspr2'],
-                  }],
-                ],
-                'cflags': [
-                  '-m<(mips_float_abi)-float'
-                ],
-                'ldflags': [
-                  '-Wl,--no-keep-memory'
-                ],
-                'cflags_cc': [
-                  '-Wno-uninitialized',
-                ],
-              }],
-            ],
-          }],
-          ['target_arch=="mips64el"', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'conditions': [
-                  ['mips_arch_variant=="r6"', {
-                    'cflags': ['-mips64r6', '-Wa,-mips64r6'],
-                    'ldflags': ['-mips64r6'],
-                  }],
-                  ['mips_arch_variant=="r2"', {
-                    'cflags': ['-mips64r2', '-Wa,-mips64r2'],
-                    'ldflags': ['-mips64r2'],
-                  }],
-                ],
-                'cflags_cc': [
-                  '-Wno-uninitialized',
-                ],
-              }],
-            ],
-          }],
-          ['linux_fpic==1', {
-            'cflags': [
-              '-fPIC',
-            ],
-            'ldflags': [
-              '-fPIC',
-            ],
-          }],
-          ['sysroot!=""', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags': [
-                  '--sysroot=<(sysroot)',
-                ],
-                'ldflags': [
-                  '--sysroot=<(sysroot)',
-                  '<!(<(DEPTH)/build/linux/sysroot_ld_path.sh <(sysroot))',
-                ],
-              }]]
-          }],
-          ['clang==1', {
-            'cflags': [
-              # TODO(thakis): Remove, http://crbug.com/263960
-              '-Wno-reserved-user-defined-literal',
-            ],
-            'cflags_cc': [
-              # gnu++11 instead of c++11 is needed because some code uses
-              # typeof() (a GNU extension).
-              # TODO(thakis): Eventually switch this to c++11 instead,
-              # http://crbug.com/427584
-              '-std=gnu++11',
-            ],
-          }],
-          ['clang==0 and host_clang==1', {
-            'target_conditions': [
-              ['_toolset=="host"', {
-                'cflags_cc': [ '-std=gnu++11', ],
-              }],
-            ],
-          }],
-          ['clang==1 and clang_use_chrome_plugins==1', {
-            'cflags': [
-              '<@(clang_chrome_plugins_flags)',
-            ],
-          }],
-          ['clang==1 and clang_load!=""', {
-            'cflags': [
-              '-Xclang', '-load', '-Xclang', '<(clang_load)',
-            ],
-          }],
-          ['clang==1 and clang_add_plugin!=""', {
-            'cflags': [
-              '-Xclang', '-add-plugin', '-Xclang', '<(clang_add_plugin)',
-            ],
-          }],
-          ['clang==1 and target_arch=="ia32"', {
-            'cflags': [
-              # Else building libyuv gives clang's register allocator issues,
-              # see llvm.org/PR15798 / crbug.com/233709
-              '-momit-leaf-frame-pointer',
-              # Align the stack on 16-byte boundaries, http://crbug.com/418554.
-              '-mstack-alignment=16',
-              '-mstackrealign',
-            ],
-          }],
-          ['clang==1 and "<(GENERATOR)"=="ninja"', {
-            'cflags': [
-              # See http://crbug.com/110262
-              '-fcolor-diagnostics',
-            ],
-          }],
-          # Common options for AddressSanitizer, LeakSanitizer,
-          # ThreadSanitizer and MemorySanitizer.
-          ['asan==1 or lsan==1 or tsan==1 or msan==1 or ubsan==1 or ubsan_vptr==1', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags': [
-                  '-fno-omit-frame-pointer',
-                  '-gline-tables-only',
-                ],
-                'cflags!': [
-                  '-fomit-frame-pointer',
-                ],
-              }],
-            ],
-          }],
-          ['asan==1 or lsan==1 or tsan==1 or msan==1', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'ldflags!': [
-                  # Functions interposed by the sanitizers can make ld think
-                  # that some libraries aren't needed when they actually are,
-                  # http://crbug.com/234010. As workaround, disable --as-needed.
-                  '-Wl,--as-needed',
-                ],
-                'defines': [
-                  'MEMORY_TOOL_REPLACES_ALLOCATOR',
-                  'MEMORY_SANITIZER_INITIAL_SIZE',
-                ],
-              }],
-            ],
-          }],
-          ['asan==1', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags': [
-                  '-fsanitize=address',
-                  # TODO(earthdok): Re-enable. http://crbug.com/427202
-                  #'-fsanitize-blacklist=<(asan_blacklist)',
-                ],
-                'ldflags': [
-                  '-fsanitize=address',
-                ],
-              }],
-            ],
-            'conditions': [
-              ['OS=="mac"', {
-                'cflags': [
-                  '-mllvm -asan-globals=0',  # http://crbug.com/352073
-                ],
-              }],
-            ],
-          }],
-          ['ubsan==1', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags': [
-                  # FIXME: work on enabling more flags and getting rid of false
-                  # positives. http://crbug.com/174801.
-                  '-fsanitize=bounds',
-                  '-fsanitize=float-divide-by-zero',
-                  '-fsanitize=integer-divide-by-zero',
-                  '-fsanitize=null',
-                  '-fsanitize=object-size',
-                  '-fsanitize=return',
-                  '-fsanitize=returns-nonnull-attribute',
-                  '-fsanitize=shift-exponent',
-                  '-fsanitize=signed-integer-overflow',
-                  '-fsanitize=unreachable',
-                  '-fsanitize=vla-bound',
-                  '-fsanitize-blacklist=<(ubsan_blacklist)',
-                  # Employ the experimental PBQP register allocator to avoid
-                  # slow compilation on files with too many basic blocks.
-                  # See http://crbug.com/426271.
-                  '-mllvm -regalloc=pbqp',
-                  # Speculatively use coalescing to slightly improve the code
-                  # generated by PBQP regallocator. May increase compile time.
-                  '-mllvm -pbqp-coalescing',
-                ],
-                'cflags_cc!': [
-                  '-fno-rtti',
-                ],
-                'cflags!': [
-                  '-fno-rtti',
-                ],
-                'ldflags': [
-                  '-fsanitize=undefined',
-                ],
-                'defines': [
-                  'UNDEFINED_SANITIZER',
-                ],
-              }],
-            ],
-          }],
-          ['ubsan_vptr==1', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags': [
-                  '-fsanitize=vptr',
-                  '-fsanitize-blacklist=<(ubsan_vptr_blacklist)',
-                ],
-                'cflags_cc!': [
-                  '-fno-rtti',
-                ],
-                'cflags!': [
-                  '-fno-rtti',
-                ],
-                'ldflags': [
-                  '-fsanitize=vptr',
-                ],
-                'defines': [
-                  'UNDEFINED_SANITIZER',
-                ],
-              }],
-            ],
-          }],
-          ['asan_coverage!=0 and sanitizer_coverage==0', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags': [
-                  '-fsanitize-coverage=<(asan_coverage)',
-                ],
-                'defines': [
-                  'SANITIZER_COVERAGE',
-                ],
-              }],
-            ],
-          }],
-          ['sanitizer_coverage!=0', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags': [
-                  '-fsanitize-coverage=<(sanitizer_coverage)',
-                ],
-                'defines': [
-                  'SANITIZER_COVERAGE',
-                ],
-              }],
-            ],
-          }],
-          ['asan_field_padding!=0', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags': [
-                  '-fsanitize-address-field-padding=<(asan_field_padding)',
-                ],
-              }],
-            ],
-          }],
-          ['lsan==1', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags': [
-                  '-fsanitize=leak',
-                ],
-                'ldflags': [
-                  '-fsanitize=leak',
-                ],
-                'defines': [
-                  'LEAK_SANITIZER',
-                  'WTF_USE_LEAK_SANITIZER=1',
-                ],
-              }],
-            ],
-          }],
-          ['tsan==1', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags': [
-                  '-fsanitize=thread',
-                  '-fsanitize-blacklist=<(tsan_blacklist)',
-                ],
-                'ldflags': [
-                  '-fsanitize=thread',
-                ],
-                'defines': [
-                  'THREAD_SANITIZER',
-                  'DYNAMIC_ANNOTATIONS_EXTERNAL_IMPL=1',
-                  'WTF_USE_DYNAMIC_ANNOTATIONS_NOIMPL=1',
-                ],
-              }],
-            ],
-          }],
-          ['msan==1', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags': [
-                  '-fsanitize=memory',
-                  '-fsanitize-memory-track-origins=<(msan_track_origins)',
-                  '-fsanitize-blacklist=<(msan_blacklist)',
-                ],
-                'ldflags': [
-                  '-fsanitize=memory',
-                ],
-                'defines': [
-                  'MEMORY_SANITIZER',
-                ],
-              }],
-            ],
-          }],
-          ['use_instrumented_libraries==1', {
-            'dependencies': [
-              '<(DEPTH)/third_party/instrumented_libraries/instrumented_libraries.gyp:instrumented_libraries',
-            ],
-          }],
-          ['use_prebuilt_instrumented_libraries==1', {
-            'dependencies': [
-              '<(DEPTH)/third_party/instrumented_libraries/instrumented_libraries.gyp:prebuilt_instrumented_libraries',
-            ],
-          }],
-          ['use_custom_libcxx==1', {
-            'dependencies': [
-              '<(DEPTH)/buildtools/third_party/libc++/libc++.gyp:libcxx_proxy',
-            ],
-          }],
-          ['order_profiling!=0 and (chromeos==1 or OS=="linux" or OS=="android")', {
-            'target_conditions' : [
-              # crazy_linker has an upstream gyp file we can't edit, and we
-              # don't want to instrument it.
-              ['_toolset=="target" and _target_name!="crazy_linker"', {
-                'cflags': [
-                  '-finstrument-functions',
-                  # Allow mmx intrinsics to inline, so that the
-                  #0 compiler can expand the intrinsics.
-                  '-finstrument-functions-exclude-file-list=mmintrin.h',
-                ],
-              }],
-              ['_toolset=="target" and OS=="android"', {
-                'cflags': [
-                  # Avoids errors with current NDK:
-                  # "third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/include/arm_neon.h:3426:3: error: argument must be a constant"
-                  '-finstrument-functions-exclude-file-list=arm_neon.h,SaturatedArithmeticARM.h',
-                ],
-              }],
-            ],
-          }],
-          ['linux_dump_symbols==1', {
-            'cflags': [ '-g' ],
-            'conditions': [
-              ['OS=="linux" and host_arch=="ia32" and linux_use_bundled_gold==0', {
-                'target_conditions': [
-                  ['_toolset=="target"', {
-                    'ldflags': [
-                      # Attempt to use less memory to prevent the linker from
-                      # running out of address space. Considering installing a
-                      # 64-bit kernel and switching to a 64-bit linker.
-                      '-Wl,--no-keep-memory',
-                    ],
-                  }],
-                ],
-              }],
-            ],
-          }],
-          ['use_allocator!="tcmalloc"', {
-            'defines': ['NO_TCMALLOC'],
-          }],
-          ['linux_use_gold_flags==1', {
-            # Newer gccs and clangs support -fuse-ld, use the flag to force gold
-            # selection.
-            # gcc -- http://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Optimize-Options.html
-            'ldflags': [ '-fuse-ld=gold', ],
-
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'ldflags': [
-                  # Experimentation found that using four linking threads
-                  # saved ~20% of link time.
-                  # https://groups.google.com/a/chromium.org/group/chromium-dev/browse_thread/thread/281527606915bb36
-                  # Only apply this to the target linker, since the host
-                  # linker might not be gold, but isn't used much anyway.
-                  # TODO(raymes): Disable threading because gold is frequently
-                  # crashing on the bots: crbug.com/161942.
-                  # '-Wl,--threads',
-                  # '-Wl,--thread-count=4',
-                ],
-                'conditions': [
-                  # TODO(thestig): Enable this for disabled cases.
-                  [ 'buildtype!="Official" and chromeos==0 and release_valgrind_build==0 and asan==0 and lsan==0 and tsan==0 and msan==0 and ubsan==0 and ubsan_vptr==0', {
-                    'ldflags': [
-                      '-Wl,--detect-odr-violations',
-                    ],
-                  }],
-                ],
-              }],
-            ],
-            'conditions': [
-              ['release_valgrind_build==0 and order_profiling==0 and asan==0 and msan==0 and lsan==0 and tsan==0', {
-                'target_conditions': [
-                  ['_toolset=="target"', {
-                    'ldflags': [
-                      '-Wl,--icf=<(gold_icf_level)',
-                    ],
-                  }],
-                ],
-              }],
-            ],
-          }],
-          ['linux_use_bundled_binutils==1', {
-            'cflags': [
-              '-B<!(cd <(DEPTH) && pwd -P)/<(binutils_dir)',
-            ],
-          }],
-          ['linux_use_bundled_gold==1 and '
-           'not (clang==0 and (use_lto==1 or use_lto_o2==1))', {
-            # Put our binutils, which contains gold in the search path. We pass
-            # the path to gold to the compiler. gyp leaves unspecified what the
-            # cwd is when running the compiler, so the normal gyp path-munging
-            # fails us. This hack gets the right path.
-            #
-            # Disabled when using GCC LTO because GCC also uses the -B search
-            # path at link time to find "as", and our bundled "as" can only
-            # target x86.
-            'ldflags': [
-              '-B<!(cd <(DEPTH) && pwd -P)/<(binutils_dir)',
-            ],
-          }],
-          # Some binutils 2.23 releases may or may not have new dtags enabled,
-          # but they are all compatible with --disable-new-dtags,
-          # because the new dynamic tags are not created by default.
-          ['binutils_version>=223', {
-            # Newer binutils don't set DT_RPATH unless you disable "new" dtags
-            # and the new DT_RUNPATH doesn't work without --no-as-needed flag.
-            # FIXME(mithro): Figure out the --as-needed/--no-as-needed flags
-            # inside this file to allow usage of --no-as-needed and removal of
-            # this flag.
-            'ldflags': [
-              '-Wl,--disable-new-dtags',
-            ],
-          }],
-          ['gcc_version>=47 and clang==0', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags_cc': [
-                  '-std=gnu++11',
-                  # See comment for -Wno-c++11-narrowing.
-                  '-Wno-narrowing',
-                  # TODO(thakis): Remove, http://crbug.com/263960
-                  '-Wno-literal-suffix',
-                ],
-              }],
-            ],
-          }],
-          ['host_gcc_version>=47 and clang==0 and host_clang==0', {
-            'target_conditions': [
-              ['_toolset=="host"', {
-                'cflags_cc': [
-                  '-std=gnu++11',
-                  # See comment for -Wno-c++11-narrowing.
-                  '-Wno-narrowing',
-                  # TODO(thakis): Remove, http://crbug.com/263960
-                  '-Wno-literal-suffix',
-                ],
-              }],
-            ],
-          }],
-        ],
-      },
-    }],
-    # FreeBSD-specific options; note that most FreeBSD options are set above,
-    # with Linux.
-    ['OS=="freebsd"', {
-      'target_defaults': {
-        'ldflags': [
-          '-Wl,--no-keep-memory',
-        ],
-      },
-    }],
-    # Android-specific options; note that most are set above with Linux.
-    ['OS=="android"', {
-      'variables': {
-        # This is a unique identifier for a given build. It's used for
-        # identifying various build artifacts corresponding to a particular
-        # build of chrome (e.g. where to find archived symbols).
-        'chrome_build_id%': '',
-        'conditions': [
-          # Figure this out early since it needs symbols from libgcc.a, so it
-          # has to be before that in the set of libraries.
-          ['component=="shared_library"', {
-              'android_libcpp_library': 'c++_shared',
-          }, {
-              'android_libcpp_library': 'c++_static',
-          }],
-        ],
-
-        # Placing this variable here prevents from forking libvpx, used
-        # by remoting.  Remoting is off, so it needn't built,
-        # so forking it's deps seems like overkill.
-        # But this variable need defined to properly run gyp.
-        # A proper solution is to have an OS==android conditional
-        # in third_party/libvpx/libvpx.gyp to define it.
-        'libvpx_path': 'lib/linux/arm',
-      },
-      'target_defaults': {
-        'variables': {
-          'release_extra_cflags%': '',
-          'conditions': [
-            # If we're using the components build, append "cr" to all shared
-            # libraries to avoid naming collisions with android system library
-            # versions with the same name (e.g. skia, icu).
-            ['component=="shared_library"', {
-              'android_product_extension': 'cr.so',
-            }, {
-              'android_product_extension': 'so',
-            } ],
-          ],
-        },
-        'target_conditions': [
-          ['_type=="shared_library"', {
-            'product_extension': '<(android_product_extension)',
-          }],
-
-          # Settings for building device targets using Android's toolchain.
-          # These are based on the setup.mk file from the Android NDK.
-          #
-          # The NDK Android executable link step looks as follows:
-          #  $LDFLAGS
-          #  $(TARGET_CRTBEGIN_DYNAMIC_O)  <-- crtbegin.o
-          #  $(PRIVATE_OBJECTS)            <-- The .o that we built
-          #  $(PRIVATE_STATIC_LIBRARIES)   <-- The .a that we built
-          #  $(TARGET_LIBGCC)              <-- libgcc.a
-          #  $(PRIVATE_SHARED_LIBRARIES)   <-- The .so that we built
-          #  $(PRIVATE_LDLIBS)             <-- System .so
-          #  $(TARGET_CRTEND_O)            <-- crtend.o
-          #
-          # For now the above are approximated for executables by adding
-          # crtbegin.o to the end of the ldflags and 'crtend.o' to the end
-          # of 'libraries'.
-          #
-          # The NDK Android shared library link step looks as follows:
-          #  $LDFLAGS
-          #  $(PRIVATE_OBJECTS)            <-- The .o that we built
-          #  -l,--whole-archive
-          #  $(PRIVATE_WHOLE_STATIC_LIBRARIES)
-          #  -l,--no-whole-archive
-          #  $(PRIVATE_STATIC_LIBRARIES)   <-- The .a that we built
-          #  $(TARGET_LIBGCC)              <-- libgcc.a
-          #  $(PRIVATE_SHARED_LIBRARIES)   <-- The .so that we built
-          #  $(PRIVATE_LDLIBS)             <-- System .so
-          #
-          # For now, assume that whole static libraries are not needed.
-          #
-          # For both executables and shared libraries, add the proper
-          # libgcc.a to the start of libraries which puts it in the
-          # proper spot after .o and .a files get linked in.
-          #
-          # TODO: The proper thing to do longer-tem would be proper gyp
-          # support for a custom link command line.
-          ['_toolset=="target"', {
-            'cflags!': [
-              '-pthread',  # Not supported by Android toolchain.
-            ],
-            'cflags': [
-              '-ffunction-sections',
-              '-funwind-tables',
-              '-g',
-              '-fstack-protector',
-              '-fno-short-enums',
-              '-finline-limit=64',
-              '<@(release_extra_cflags)',
-              '--sysroot=<(android_ndk_sysroot)',
-              # NOTE: The libc++ header include paths below are specified in
-              # cflags rather than include_dirs because they need to come
-              # after include_dirs.
-              # The include ordering here is important; change with caution.
-              '-isystem<(android_libcpp_include)',
-              '-isystem<(android_ndk_root)/sources/cxx-stl/llvm-libc++abi/libcxxabi/include',
-              '-isystem<(android_ndk_root)/sources/android/support/include',
-            ],
-            'defines': [
-              'ANDROID',
-              '__GNU_SOURCE=1',  # Necessary for clone()
-              'CHROME_BUILD_ID="<(chrome_build_id)"',
-              # The NDK has these things, but doesn't define the constants
-              # to say that it does. Define them here instead.
-              'HAVE_SYS_UIO_H',
-            ],
-            'ldflags!': [
-              '-pthread',  # Not supported by Android toolchain.
-            ],
-            'ldflags': [
-              '-Wl,--no-undefined',
-              '--sysroot=<(android_ndk_sysroot)',
-              '-nostdlib',
-              '-L<(android_libcpp_libs_dir)',
-              # Don't allow visible symbols from libgcc or libc++ to be
-              # re-exported.
-              '-Wl,--exclude-libs=libgcc.a',
-              '-Wl,--exclude-libs=libc++_static.a',
-              # Don't allow visible symbols from libraries that contain
-              # assembly code with symbols that aren't hidden properly.
-              # http://crbug.com/448386
-              '-Wl,--exclude-libs=libcommon_audio.a',
-              '-Wl,--exclude-libs=libcommon_audio_neon.a',
-              '-Wl,--exclude-libs=libcommon_audio_sse2.a',
-              '-Wl,--exclude-libs=libiSACFix.a',
-              '-Wl,--exclude-libs=libisac_neon.a',
-              '-Wl,--exclude-libs=libopus.a',
-              '-Wl,--exclude-libs=libvpx.a',
-            ],
-            'libraries': [
-              '-l<(android_libcpp_library)',
-              '-latomic',
-              # Manually link the libgcc.a that the cross compiler uses.
-              '<!(<(android_toolchain)/*-gcc -print-libgcc-file-name)',
-              '-lc',
-              '-ldl',
-              '-lm',
-            ],
-            'conditions': [
-              ['component=="static_library"', {
-                'target_conditions': [
-                  ['use_native_jni_exports==0', {
-                    # Use a linker version script to strip JNI exports from
-                    # binaries which have not specifically asked to use them.
-                    'ldflags': [
-                      '-Wl,--version-script=<!(cd <(DEPTH) && pwd -P)/build/android/android_no_jni_exports.lst',
-                    ],
-                  }],
-                ],
-              }],
-              ['clang==1', {
-                'libraries!': [
-                  # Clang with libc++ does not require an explicit atomic
-                  # library reference.
-                  '-latomic',
-                ],
-                'cflags': [
-                  # Work around incompatibilities between bionic and clang
-                  # headers.
-                  '-D__compiler_offsetof=__builtin_offsetof',
-                  '-Dnan=__builtin_nan',
-                ],
-                'conditions': [
-                  ['target_arch=="arm"', {
-                    'cflags': [
-                      '-target arm-linux-androideabi',
-                    ],
-                    'ldflags': [
-                      '-target arm-linux-androideabi',
-                    ],
-                  }],
-                  ['target_arch=="ia32"', {
-                    'cflags': [
-                      '-target x86-linux-androideabi',
-                    ],
-                    'ldflags': [
-                      '-target x86-linux-androideabi',
-                    ],
-                  }],
-                  # Place holder for x64 support, not tested.
-                  # TODO: Enable clang support for Android x64. http://crbug.com/346626
-                  ['target_arch=="x64"', {
-                    'cflags': [
-                      '-target x86_64-linux-androideabi',
-                    ],
-                    'ldflags': [
-                      '-target x86_64-linux-androideabi',
-                    ],
-                  }],
-                ],
-              }],
-              ['asan==1', {
-                'cflags': [
-                  # Android build relies on -Wl,--gc-sections removing
-                  # unreachable code. ASan instrumentation for globals inhibits
-                  # this and results in a library with unresolvable relocations.
-                  # TODO(eugenis): find a way to reenable this.
-                  '-mllvm -asan-globals=0',
-                ],
-              }],
-              ['target_arch == "arm" and order_profiling==0', {
-                'ldflags': [
-                  # Enable identical code folding to reduce size.
-                  '-Wl,--icf=<(gold_icf_level)',
-                ],
-              }],
-              ['target_arch=="ia32"', {
-                # The x86 toolchain currently has problems with stack-protector.
-                'cflags!': [
-                  '-fstack-protector',
-                ],
-                'cflags': [
-                  '-fno-stack-protector',
-                ],
-              }],
-            ],
-            'target_conditions': [
-              ['_type=="executable"', {
-                # Force android tools to export the "main" symbol so they can be
-                # loaded on ICS using the run_pie wrapper. See crbug.com/373219.
-                # TODO(primiano): remove -fvisibility and -rdynamic flags below
-                # when ICS support will be dropped.
-                'cflags': [
-                  '-fPIE',
-                  '-fvisibility=default',
-                ],
-                'ldflags': [
-                  '-Bdynamic',
-                  '-Wl,--gc-sections',
-                  '-Wl,-z,nocopyreloc',
-                  '-pie',
-                  '-rdynamic',
-                  # crtbegin_dynamic.o should be the last item in ldflags.
-                  '<(android_ndk_lib)/crtbegin_dynamic.o',
-                ],
-                'libraries': [
-                  # crtend_android.o needs to be the last item in libraries.
-                  # Do not add any libraries after this!
-                  '<(android_ndk_lib)/crtend_android.o',
-                ],
-              }],
-              ['_type=="shared_library" or _type=="loadable_module"', {
-                'ldflags': [
-                  '-Wl,-shared,-Bsymbolic',
-                  # crtbegin_so.o should be the last item in ldflags.
-                  '<(android_ndk_lib)/crtbegin_so.o',
-                ],
-                'libraries': [
-                  # crtend_so.o needs to be the last item in libraries.
-                  # Do not add any libraries after this!
-                  '<(android_ndk_lib)/crtend_so.o',
-                ],
-              }],
-            ],
-          }],
-          # Settings for building host targets using the system toolchain.
-          ['_toolset=="host"', {
-            'cflags!': [
-              # Due to issues in Clang build system, using ASan on 32-bit
-              # binaries on x86_64 host is problematic.
-              # TODO(eugenis): re-enable.
-              '-fsanitize=address',
-            ],
-            'ldflags!': [
-              '-fsanitize=address',
-              '-Wl,-z,noexecstack',
-              '-Wl,--gc-sections',
-              '-Wl,-O1',
-              '-Wl,--as-needed',
-              '-Wl,--warn-shared-textrel',
-              '-Wl,--fatal-warnings',
-            ],
-          }],
-          # Settings for building host targets on mac.
-          ['_toolset=="host" and host_os=="mac"', {
-            'ldflags!': [
-              '-Wl,-z,now',
-              '-Wl,-z,relro',
-            ],
-          }],
-        ],
-      },
-    }],
-    ['OS=="solaris"', {
-      'cflags!': ['-fvisibility=hidden'],
-      'cflags_cc!': ['-fvisibility-inlines-hidden'],
-    }],
-    ['OS=="mac" or OS=="ios"', {
-      'target_defaults': {
-        'mac_bundle': 0,
-        'xcode_settings': {
-          'ALWAYS_SEARCH_USER_PATHS': 'NO',
-          # Don't link in libarclite_macosx.a, see http://crbug.com/156530.
-          'CLANG_LINK_OBJC_RUNTIME': 'NO',          # -fno-objc-link-runtime
-          'COPY_PHASE_STRIP': 'NO',
-          'GCC_C_LANGUAGE_STANDARD': 'c99',         # -std=c99
-          'GCC_CW_ASM_SYNTAX': 'NO',                # No -fasm-blocks
-          'GCC_ENABLE_CPP_EXCEPTIONS': 'NO',        # -fno-exceptions
-          'GCC_ENABLE_CPP_RTTI': 'NO',              # -fno-rtti
-          'GCC_ENABLE_PASCAL_STRINGS': 'NO',        # No -mpascal-strings
-          # GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden
-          'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES',
-          'GCC_OBJC_CALL_CXX_CDTORS': 'YES',        # -fobjc-call-cxx-cdtors
-          'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES',      # -fvisibility=hidden
-          'GCC_THREADSAFE_STATICS': 'NO',           # -fno-threadsafe-statics
-          'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES',    # -Werror
-          'GCC_VERSION': '4.2',
-          'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES',  # -Wnewline-eof
-          'USE_HEADERMAP': 'NO',
-          'WARNING_CFLAGS': [
-            '-Wall',
-            '-Wendif-labels',
-            '-Wextra',
-            # Don't warn about unused function parameters.
-            '-Wno-unused-parameter',
-            # Don't warn about the "struct foo f = {0};" initialization
-            # pattern.
-            '-Wno-missing-field-initializers',
-          ],
-          'conditions': [
-            ['chromium_mac_pch', {'GCC_PRECOMPILE_PREFIX_HEADER': 'YES'},
-                                 {'GCC_PRECOMPILE_PREFIX_HEADER': 'NO'}
-            ],
-            # Note that the prebuilt Clang binaries should not be used for iOS
-            # development except for ASan builds.
-            ['clang==1', {
-              'CLANG_CXX_LANGUAGE_STANDARD': 'c++11',  # -std=c++11
-              # Warn if automatic synthesis is triggered with
-              # the -Wobjc-missing-property-synthesis flag.
-              'CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS': 'YES',
-              'GCC_VERSION': 'com.apple.compilers.llvm.clang.1_0',
-              'WARNING_CFLAGS': [
-                # This warns on selectors from Cocoa headers (-length, -set).
-                # cfe-dev is currently discussing the merits of this warning.
-                # TODO(thakis): Reevaluate what to do with this, based one
-                # cfe-dev discussion.
-                '-Wno-selector-type-mismatch',
-              ],
-              'conditions': [
-                ['clang_xcode==0', {
-                  'CC': '$(SOURCE_ROOT)/<(clang_dir)/clang',
-                  'LDPLUSPLUS': '$(SOURCE_ROOT)/<(clang_dir)/clang++',
-                }],
-              ],
-            }],
-            ['clang==1 and clang_xcode==0 and clang_use_chrome_plugins==1', {
-              'OTHER_CFLAGS': [
-                '<@(clang_chrome_plugins_flags)',
-              ],
-            }],
-            ['clang==1 and clang_xcode==0 and clang_load!=""', {
-              'OTHER_CFLAGS': [
-                '-Xclang', '-load', '-Xclang', '<(clang_load)',
-              ],
-            }],
-            ['clang==1 and clang_xcode==0 and clang_add_plugin!=""', {
-              'OTHER_CFLAGS': [
-                '-Xclang', '-add-plugin', '-Xclang', '<(clang_add_plugin)',
-              ],
-            }],
-            ['clang==1 and "<(GENERATOR)"=="ninja"', {
-              'OTHER_CFLAGS': [
-                # See http://crbug.com/110262
-                '-fcolor-diagnostics',
-              ],
-            }],
-            ['OS=="ios" and target_subarch!="arm32" and \
-              "<(GENERATOR)"=="xcode"', {
-              'OTHER_CFLAGS': [
-                # TODO(ios): when building Chrome for iOS on 64-bit platform
-                # with Xcode, the -Wshorted-64-to-32 warning is automatically
-                # enabled. This cause failures when compiling protobuf code,
-                # so disable the warning. http://crbug.com/359107
-                '-Wno-shorten-64-to-32',
-              ],
-            }],
-          ],
-        },
-        'conditions': [
-          ['clang==1', {
-            'variables': {
-              'clang_dir': '../third_party/llvm-build/Release+Asserts/bin',
-            },
-          }],
-          ['asan==1', {
-            'xcode_settings': {
-              'OTHER_CFLAGS': [
-                '-fsanitize=address',
-                '-mllvm -asan-globals=0',  # http://crbug.com/352073
-                '-gline-tables-only',
-              ],
-            },
-          }],
-          ['asan_coverage!=0 and sanitizer_coverage==0', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags': [
-                  '-fsanitize-coverage=<(asan_coverage)',
-                ],
-                'defines': [
-                  'SANITIZER_COVERAGE',
-                ],
-              }],
-            ],
-          }],
-          ['sanitizer_coverage!=0', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags': [
-                  '-fsanitize-coverage=<(sanitizer_coverage)',
-                ],
-                'defines': [
-                  'SANITIZER_COVERAGE',
-                ],
-              }],
-            ],
-          }],
-        ],
-        'target_conditions': [
-          ['_type!="static_library"', {
-            'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']},
-            'conditions': [
-              ['asan==1', {
-                'xcode_settings': {
-                  'OTHER_LDFLAGS': [
-                    '-fsanitize=address',
-                  ],
-                },
-              }],
-              ['mac_write_linker_maps==1', {
-                'xcode_settings': {
-                  'OTHER_LDFLAGS': [
-                    '-Wl,-map,>(_target_name).map',
-                  ],
-                },
-              }],
-            ],
-          }],
-          ['_mac_bundle', {
-            'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-ObjC']},
-            'target_conditions': [
-              ['_type=="executable"', {
-                'conditions': [
-                  ['asan==1', {
-                    'postbuilds': [
-                      {
-                        'variables': {
-                          # Define copy_asan_dylib_path in a variable ending in
-                          # _path so that gyp understands it's a path and
-                          # performs proper relativization during dict merging.
-                          'copy_asan_dylib_path':
-                            'mac/copy_asan_runtime_dylib.sh',
-                        },
-                        'postbuild_name': 'Copy ASan runtime dylib',
-                        'action': [
-                          '<(copy_asan_dylib_path)',
-                        ],
-                      },
-                    ],
-                  }],
-                ],
-              }],
-            ],
-          }],
-        ],  # target_conditions
-      },  # target_defaults
-    }],  # OS=="mac" or OS=="ios"
-    ['OS=="mac"', {
-      'target_defaults': {
-        'defines': [
-          # Prevent Mac OS X AssertMacros.h from defining macros that collide
-          # with common names, like 'check', 'require', and 'verify'.
-          # (Included by system header. Also exists on iOS but not included.)
-          # http://opensource.apple.com/source/CarbonHeaders/CarbonHeaders-18.1/AssertMacros.h
-          '__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORE=0',
-        ],
-        'variables': {
-          # These should end with %, but there seems to be a bug with % in
-          # variables that are intended to be set to different values in
-          # different targets, like these.
-          'mac_pie': 1,        # Most executables can be position-independent.
-          # Strip debugging symbols from the target.
-          'mac_strip': '<(mac_strip_release)',
-          'conditions': [
-            ['asan==1', {
-              'conditions': [
-                ['mac_want_real_dsym=="default"', {
-                  'mac_real_dsym': 1,
-                }, {
-                  'mac_real_dsym': '<(mac_want_real_dsym)'
-                }],
-              ],
-            }, {
-              'conditions': [
-                ['mac_want_real_dsym=="default"', {
-                  'mac_real_dsym': 0, # Fake .dSYMs are fine in most cases.
-                }, {
-                  'mac_real_dsym': '<(mac_want_real_dsym)'
-                }],
-              ],
-            }],
-          ],
-        },
-        'configurations': {
-          'Release_Base': {
-            'conditions': [
-              ['branding=="Chrome" and buildtype=="Official"', {
-                'xcode_settings': {
-                  'OTHER_CFLAGS': [
-                    # The Google Chrome Framework dSYM generated by dsymutil has
-                    # grown larger than 4GB, which dsymutil can't handle. Reduce
-                    # the amount of debug symbols.
-                    '-fno-standalone-debug',  # See http://crbug.com/479841
-                  ]
-                },
-              }],
-            ],
-          },  # configuration "Release"
-        },  # configurations
-        'xcode_settings': {
-          'GCC_DYNAMIC_NO_PIC': 'NO',               # No -mdynamic-no-pic
-                                                    # (Equivalent to -fPIC)
-          # MACOSX_DEPLOYMENT_TARGET maps to -mmacosx-version-min
-          'MACOSX_DEPLOYMENT_TARGET': '<(mac_deployment_target)',
-          # Keep pch files below xcodebuild/.
-          'SHARED_PRECOMPS_DIR': '$(CONFIGURATION_BUILD_DIR)/SharedPrecompiledHeaders',
-          'OTHER_CFLAGS': [
-            # Someday this can be replaced by an 'GCC_STRICT_ALIASING': 'NO'
-            # xcode_setting, but not until all downstream projects' mac bots are
-            # using xcode >= 4.6, because that's when the default value of the
-            # flag in the compiler switched.  Pre-4.6, the value 'NO' for that
-            # setting is a no-op as far as xcode is concerned, but the compiler
-            # behaves differently based on whether -fno-strict-aliasing is
-            # specified or not.
-            '-fno-strict-aliasing',  # See http://crbug.com/32204.
-          ],
-        },
-        'target_conditions': [
-          ['_type=="executable"', {
-            'postbuilds': [
-              {
-                # Arranges for data (heap) pages to be protected against
-                # code execution when running on Mac OS X 10.7 ("Lion"), and
-                # ensures that the position-independent executable (PIE) bit
-                # is set for ASLR when running on Mac OS X 10.5 ("Leopard").
-                'variables': {
-                  # Define change_mach_o_flags in a variable ending in _path
-                  # so that GYP understands it's a path and performs proper
-                  # relativization during dict merging.
-                  'change_mach_o_flags_path':
-                      'mac/change_mach_o_flags_from_xcode.sh',
-                  'change_mach_o_flags_options%': [
-                  ],
-                  'target_conditions': [
-                    ['mac_pie==0 or release_valgrind_build==1', {
-                      # Don't enable PIE if it's unwanted. It's unwanted if
-                      # the target specifies mac_pie=0 or if building for
-                      # Valgrind, because Valgrind doesn't understand slide.
-                      # See the similar mac_pie/release_valgrind_build check
-                      # below.
-                      'change_mach_o_flags_options': [
-                        '--no-pie',
-                      ],
-                    }],
-                  ],
-                },
-                'postbuild_name': 'Change Mach-O Flags',
-                'action': [
-                  '<(change_mach_o_flags_path)',
-                  '>@(change_mach_o_flags_options)',
-                ],
-              },
-            ],
-            'target_conditions': [
-              ['mac_pie==1 and release_valgrind_build==0', {
-                # Turn on position-independence (ASLR) for executables. When
-                # PIE is on for the Chrome executables, the framework will
-                # also be subject to ASLR.
-                # Don't do this when building for Valgrind, because Valgrind
-                # doesn't understand slide. TODO: Make Valgrind on Mac OS X
-                # understand slide, and get rid of the Valgrind check.
-                'xcode_settings': {
-                  'OTHER_LDFLAGS': [
-                    '-Wl,-pie',  # Position-independent executable (MH_PIE)
-                  ],
-                },
-              }],
-            ],
-          }],
-          ['(_type=="executable" or _type=="shared_library" or \
-             _type=="loadable_module") and mac_strip!=0', {
-            'target_conditions': [
-              ['mac_real_dsym == 1', {
-                # To get a real .dSYM bundle produced by dsymutil, set the
-                # debug information format to dwarf-with-dsym.  Since
-                # strip_from_xcode will not be used, set Xcode to do the
-                # stripping as well.
-                'configurations': {
-                  'Release_Base': {
-                    'xcode_settings': {
-                      'DEBUG_INFORMATION_FORMAT': 'dwarf-with-dsym',
-                      'DEPLOYMENT_POSTPROCESSING': 'YES',
-                      'STRIP_INSTALLED_PRODUCT': 'YES',
-                      'conditions': [
-                        # Only strip non-ASan builds.
-                        ['asan==0', {
-                          'target_conditions': [
-                            ['_type=="shared_library" or _type=="loadable_module"', {
-                              # The Xcode default is to strip debugging symbols
-                              # only (-S).  Local symbols should be stripped as
-                              # well, which will be handled by -x.  Xcode will
-                              # continue to insert -S when stripping even when
-                              # additional flags are added with STRIPFLAGS.
-                              'STRIPFLAGS': '-x',
-                            }],  # _type=="shared_library" or _type=="loadable_module"
-                          ],  # target_conditions
-                        }, {  # asan != 0
-                          'STRIPFLAGS': '-S',
-                        }],
-                      ],
-                    },  # xcode_settings
-                  },  # configuration "Release"
-                },  # configurations
-              }, {  # mac_real_dsym != 1
-                # To get a fast fake .dSYM bundle, use a post-build step to
-                # produce the .dSYM and strip the executable.  strip_from_xcode
-                # only operates in the Release configuration.
-                'postbuilds': [
-                  {
-                    'variables': {
-                      # Define strip_from_xcode in a variable ending in _path
-                      # so that gyp understands it's a path and performs proper
-                      # relativization during dict merging.
-                      'strip_from_xcode_path': 'mac/strip_from_xcode',
-                    },
-                    'postbuild_name': 'Strip If Needed',
-                    'action': ['<(strip_from_xcode_path)'],
-                  },
-                ],  # postbuilds
-              }],  # mac_real_dsym
-            ],  # target_conditions
-          }],  # (_type=="executable" or _type=="shared_library" or
-               #  _type=="loadable_module") and mac_strip!=0
-        ],  # target_conditions
-      },  # target_defaults
-    }],  # OS=="mac"
-    ['OS=="ios"', {
-      'includes': [
-        'ios/coverage.gypi',
-      ],
-      'target_defaults': {
-        'xcode_settings' : {
-          'CLANG_CXX_LANGUAGE_STANDARD': 'c++11',
-
-          'conditions': [
-            # Older Xcodes do not support -Wno-deprecated-register, so pass an
-            # additional flag to suppress the "unknown compiler option" error.
-            # Restrict this flag to builds that are either compiling with Xcode
-            # or compiling with Xcode's Clang.  This will allow Ninja builds to
-            # continue failing on unknown compiler options.
-            # TODO(rohitrao): This flag is temporary and should be removed as
-            # soon as the iOS bots are updated to use Xcode 5.1.
-            ['clang_xcode==1', {
-              'WARNING_CFLAGS': [
-                '-Wno-unknown-warning-option',
-              ],
-            }],
-
-            # Limit the valid architectures depending on "target_subarch".
-            # This need to include the "arm" architectures but also the "x86"
-            # ones (they are used when building for the simulator).
-            ['target_subarch=="arm32"', {
-              'VALID_ARCHS': ['armv7', 'i386'],
-            }],
-            ['target_subarch=="arm64"', {
-              'VALID_ARCHS': ['arm64', 'x86_64'],
-            }],
-            ['target_subarch=="both"', {
-              'VALID_ARCHS': ['arm64', 'armv7', 'x86_64', 'i386'],
-            }],
-            ['use_system_libcxx==1', {
-              'target_conditions': [
-                # Only use libc++ when building target for iOS not when building
-                # tools for the host (OS X) as Mac targets OS X SDK 10.6 which
-                # does not support libc++.
-                ['_toolset=="target"', {
-                  'CLANG_CXX_LIBRARY': 'libc++',  # -stdlib=libc++
-                }]
-              ],
-            }, {
-              # The default for deployment target of 7.0+ is libc++, so force
-              # the old behavior unless libc++ is enabled.
-              'CLANG_CXX_LIBRARY': 'libstdc++',  # -stdlib=libstdc++
-            }],
-          ],
-        },
-        'target_conditions': [
-          ['_toolset=="host"', {
-            'xcode_settings': {
-              'SDKROOT': 'macosx<(mac_sdk)',  # -isysroot
-              'MACOSX_DEPLOYMENT_TARGET': '<(mac_deployment_target)',
-              'VALID_ARCHS': [
-                'x86_64',
-              ],
-              'ARCHS': [
-                'x86_64',
-              ],
-            },
-          }],
-          ['_toolset=="target"', {
-            'xcode_settings': {
-              # This section should be for overriding host settings. But,
-              # since we can't negate the iphone deployment target above, we
-              # instead set it here for target only.
-              'IPHONEOS_DEPLOYMENT_TARGET': '<(ios_deployment_target)',
-              'ARCHS': ['$(ARCHS_STANDARD_INCLUDING_64_BIT)'],
-            },
-          }],
-          ['_type=="executable"', {
-            'configurations': {
-              'Release_Base': {
-                'xcode_settings': {
-                  'DEPLOYMENT_POSTPROCESSING': 'YES',
-                  'STRIP_INSTALLED_PRODUCT': 'YES',
-                },
-              },
-              'Debug_Base': {
-                'xcode_settings': {
-                  # Remove dSYM to reduce build time.
-                  'DEBUG_INFORMATION_FORMAT': 'dwarf',
-                },
-              },
-            },
-            'xcode_settings': {
-              'conditions': [
-                ['chromium_ios_signing', {
-                  # iOS SDK wants everything for device signed.
-                  'CODE_SIGN_IDENTITY[sdk=iphoneos*]': 'iPhone Developer',
-                }, {
-                  'CODE_SIGNING_REQUIRED': 'NO',
-                  'CODE_SIGN_IDENTITY[sdk=iphoneos*]': '',
-                }],
-              ],
-            },
-          }],
-        ],  # target_conditions
-      },  # target_defaults
-    }],  # OS=="ios"
-    ['OS=="win"', {
-      'target_defaults': {
-        'defines': [
-          '_WIN32_WINNT=0x0603',
-          'WINVER=0x0603',
-          'WIN32',
-          '_WINDOWS',
-          'NOMINMAX',
-          'PSAPI_VERSION=1',
-          '_CRT_RAND_S',
-          'CERT_CHAIN_PARA_HAS_EXTRA_FIELDS',
-          'WIN32_LEAN_AND_MEAN',
-          '_ATL_NO_OPENGL',
-          '_SECURE_ATL',
-          # _HAS_EXCEPTIONS must match ExceptionHandling in msvs_settings.
-          '_HAS_EXCEPTIONS=0',
-          # Silence some warnings; we can't switch the the 'recommended'
-          # versions as they're not available on old OSs.
-          '_WINSOCK_DEPRECATED_NO_WARNINGS',
-        ],
-        'conditions': [
-          ['buildtype=="Official"', {
-              # In official builds, targets can self-select an optimization
-              # level by defining a variable named 'optimize', and setting it
-              # to one of
-              # - "size", optimizes for minimal code size - the default.
-              # - "speed", optimizes for speed over code size.
-              # - "max", whole program optimization and link-time code
-              #   generation. This is very expensive and should be used
-              #   sparingly.
-              'variables': {
-                'optimize%': 'size',
-              },
-              'msvs_settings': {
-                'VCLinkerTool': {
-                  # Set /LTCG for the official builds.
-                  'LinkTimeCodeGeneration': '1',
-                  'AdditionalOptions': [
-                    # Set the number of LTCG code-gen threads to eight.
-                    # The default is four. This gives a 5-10% link speedup.
-                    '/cgthreads:8',
-                  ],
-                },
-              },
-              'target_conditions': [
-                ['optimize=="size"', {
-                    'msvs_settings': {
-                      'VCCLCompilerTool': {
-                        # 1, optimizeMinSpace, Minimize Size (/O1)
-                        'Optimization': '1',
-                        # 2, favorSize - Favor small code (/Os)
-                        'FavorSizeOrSpeed': '2',
-                      },
-                    },
-                  },
-                ],
-                # This config is used to avoid a problem in ffmpeg, see
-                # http://crbug.com/264459.
-                ['optimize=="size_no_ltcg"', {
-                    'msvs_settings': {
-                      'VCCLCompilerTool': {
-                        # 1, optimizeMinSpace, Minimize Size (/O1)
-                        'Optimization': '1',
-                        # 2, favorSize - Favor small code (/Os)
-                        'FavorSizeOrSpeed': '2',
-                      },
-                    },
-                  },
-                ],
-                ['optimize=="speed"', {
-                    'msvs_settings': {
-                      'VCCLCompilerTool': {
-                        # 2, optimizeMaxSpeed, Maximize Speed (/O2)
-                        'Optimization': '2',
-                        # 1, favorSpeed - Favor fast code (/Ot)
-                        'FavorSizeOrSpeed': '1',
-                      },
-                    },
-                  },
-                ],
-                ['optimize=="max"', {
-                    # Disable Warning 4702 ("Unreachable code") for the WPO/PGO
-                    # builds. Probably anything that this would catch that
-                    # wouldn't be caught in a normal build isn't going to
-                    # actually be a bug, so the incremental value of C4702 for
-                    # PGO builds is likely very small.
-                    'msvs_disabled_warnings': [
-                      4702
-                    ],
-                    'msvs_settings': {
-                      'VCCLCompilerTool': {
-                        # 2, optimizeMaxSpeed, Maximize Speed (/O2)
-                        'Optimization': '2',
-                        # 1, favorSpeed - Favor fast code (/Ot)
-                        'FavorSizeOrSpeed': '1',
-                        # This implies link time code generation.
-                        'WholeProgramOptimization': 'true',
-                      },
-                    },
-                  },
-                ],
-              ],
-            },
-          ],
-          ['msvs_xtree_patched!=1', {
-            # If xtree hasn't been patched, then we disable C4702. Otherwise,
-            # it's enabled. This will generally only be true for system-level
-            # installed Express users.
-            'msvs_disabled_warnings': [
-              4702,
-            ],
-          }],
-        ],
-        'msvs_system_include_dirs': [
-          '<(windows_sdk_path)/Include/shared',
-          '<(windows_sdk_path)/Include/um',
-          '<(windows_sdk_path)/Include/winrt',
-          '$(VSInstallDir)/VC/atlmfc/include',
-        ],
-        'msvs_cygwin_shell': 0,
-        'msvs_disabled_warnings': [
-          # C4091: 'typedef ': ignored on left of 'X' when no variable is
-          #                    declared.
-          # This happens in a number of Windows headers. Dumb.
-          4091,
-
-          # C4127: conditional expression is constant
-          # This warning can in theory catch dead code and other problems, but
-          # triggers in far too many desirable cases where the conditional
-          # expression is either set by macros or corresponds some legitimate
-          # compile-time constant expression (due to constant template args,
-          # conditionals comparing the sizes of different types, etc.).  Some of
-          # these can be worked around, but it's not worth it.
-          4127,
-
-          # C4351: new behavior: elements of array 'array' will be default
-          #        initialized
-          # This is a silly "warning" that basically just alerts you that the
-          # compiler is going to actually follow the language spec like it's
-          # supposed to, instead of not following it like old buggy versions
-          # did.  There's absolutely no reason to turn this on.
-          4351,
-
-          # C4355: 'this': used in base member initializer list
-          # It's commonly useful to pass |this| to objects in a class'
-          # initializer list.  While this warning can catch real bugs, most of
-          # the time the constructors in question don't attempt to call methods
-          # on the passed-in pointer (until later), and annotating every legit
-          # usage of this is simply more hassle than the warning is worth.
-          4355,
-
-          # C4503: 'identifier': decorated name length exceeded, name was
-          #        truncated
-          # This only means that some long error messages might have truncated
-          # identifiers in the presence of lots of templates.  It has no effect
-          # on program correctness and there's no real reason to waste time
-          # trying to prevent it.
-          4503,
-
-          # C4611: interaction between 'function' and C++ object destruction is
-          #        non-portable
-          # This warning is unavoidable when using e.g. setjmp/longjmp.  MSDN
-          # suggests using exceptions instead of setjmp/longjmp for C++, but
-          # Chromium code compiles without exception support.  We therefore have
-          # to use setjmp/longjmp for e.g. JPEG decode error handling, which
-          # means we have to turn off this warning (and be careful about how
-          # object destruction happens in such cases).
-          4611,
-
-          # TODO(maruel): These warnings are level 4. They will be slowly
-          # removed as code is fixed.
-          4100, # Unreferenced formal parameter
-          4121, # Alignment of a member was sensitive to packing
-          4244, # Conversion from 'type1' to 'type2', possible loss of data
-          4481, # Nonstandard extension used: override specifier 'keyword'
-          4505, # Unreferenced local function has been removed
-          4510, # Default constructor could not be generated
-          4512, # Assignment operator could not be generated
-          4610, # Object can never be instantiated
-          4838, # Narrowing conversion. Doesn't seem to be very useful.
-          4996, # 'X': was declared deprecated (for GetVersionEx).
-
-          # These are variable shadowing warnings that are new in VS2015. We
-          # should work through these at some point -- they may be removed from
-          # the RTM release in the /W4 set.
-          4456, 4457, 4458, 4459,
-        ],
-        'msvs_settings': {
-          'VCCLCompilerTool': {
-            'AdditionalOptions': ['/MP'],
-            'MinimalRebuild': 'false',
-            'BufferSecurityCheck': 'true',
-            'EnableFunctionLevelLinking': 'true',
-            'RuntimeTypeInfo': 'false',
-            'WarningLevel': '4',
-            'WarnAsError': 'true',
-            'DebugInformationFormat': '3',
-            # ExceptionHandling must match _HAS_EXCEPTIONS above.
-            'ExceptionHandling': '0',
-          },
-          'VCLibrarianTool': {
-            'AdditionalOptions': ['/ignore:4221'],
-            'AdditionalLibraryDirectories': [
-              '<(windows_sdk_path)/Lib/win8/um/x86',
-            ],
-          },
-          'VCLinkerTool': {
-            'AdditionalDependencies': [
-              'wininet.lib',
-              'dnsapi.lib',
-              'version.lib',
-              'msimg32.lib',
-              'ws2_32.lib',
-              'usp10.lib',
-              'psapi.lib',
-              'dbghelp.lib',
-              'winmm.lib',
-              'shlwapi.lib',
-            ],
-            'AdditionalLibraryDirectories': [
-              '<(windows_sdk_path)/Lib/win8/um/x86',
-            ],
-            'GenerateDebugInformation': 'true',
-            'MapFileName': '$(OutDir)\\$(TargetName).map',
-            'ImportLibrary': '$(OutDir)\\lib\\$(TargetName).lib',
-            'FixedBaseAddress': '1',
-            # SubSystem values:
-            #   0 == not set
-            #   1 == /SUBSYSTEM:CONSOLE
-            #   2 == /SUBSYSTEM:WINDOWS
-            # Most of the executables we'll ever create are tests
-            # and utilities with console output.
-            'SubSystem': '1',
-          },
-          'VCMIDLTool': {
-            'GenerateStublessProxies': 'true',
-            'TypeLibraryName': '$(InputName).tlb',
-            'OutputDirectory': '$(IntDir)',
-            'HeaderFileName': '$(InputName).h',
-            'DLLDataFileName': '$(InputName).dlldata.c',
-            'InterfaceIdentifierFileName': '$(InputName)_i.c',
-            'ProxyFileName': '$(InputName)_p.c',
-          },
-          'VCResourceCompilerTool': {
-            'Culture' : '1033',
-            'AdditionalIncludeDirectories': [
-              '<(DEPTH)',
-              '<(SHARED_INTERMEDIATE_DIR)',
-            ],
-          },
-          'target_conditions': [
-            ['_type=="executable"', {
-              'VCManifestTool': {
-                'EmbedManifest': 'true',
-              },
-            }],
-            ['_type=="executable" and ">(win_exe_compatibility_manifest)"!=""', {
-              'VCManifestTool': {
-                'AdditionalManifestFiles': [
-                  '>(win_exe_compatibility_manifest)',
-                ],
-              },
-            }],
-          ],
-          'conditions': [
-            # Building with Clang on Windows is a work in progress and very
-            # experimental. See crbug.com/82385.
-            # Keep this in sync with the similar blocks in build/config/compiler/BUILD.gn
-            ['clang==1', {
-              'VCCLCompilerTool': {
-                'AdditionalOptions': [
-                  # Many files use intrinsics without including this header.
-                  # TODO(hans): Fix those files, or move this to sub-GYPs.
-                  '/FIIntrin.h',
-
-                  # TODO(hans): Make this list shorter eventually.
-                  '-Qunused-arguments',
-                  '-Wno-c++11-compat-deprecated-writable-strings',
-                  '-Wno-deprecated-declarations',
-                  '-Wno-empty-body',
-                  '-Wno-enum-conversion',
-                  '-Wno-extra-tokens',
-                  '-Wno-ignored-attributes',
-                  '-Wno-incompatible-pointer-types',
-                  '-Wno-int-to-void-pointer-cast',
-                  '-Wno-invalid-noreturn',
-                  '-Wno-logical-op-parentheses',
-                  '-Wno-microsoft',
-                  '-Wno-missing-braces',
-                  '-Wno-missing-declarations',
-                  '-Wno-msvc-include',
-                  '-Wno-null-dereference',
-                  '-Wno-overloaded-virtual',
-                  '-Wno-parentheses',
-                  '-Wno-pointer-sign',
-                  '-Wno-reorder',
-                  '-Wno-return-type-c-linkage',
-                  '-Wno-self-assign',
-                  '-Wno-sometimes-uninitialized',
-                  '-Wno-switch',
-                  '-Wno-tautological-compare',
-                  '-Wno-unknown-pragmas',
-                  '-Wno-unsequenced',
-                  '-Wno-unused-function',
-                  '-Wno-unused-private-field',
-                  '-Wno-unused-value',
-                  '-Wno-unused-variable',
-                  '-Wno-unused-local-typedef',  # http://crbug.com/411648
-                  '-Wno-inconsistent-missing-override', #http://crbug.com/428099
-                ],
-              },
-            }],
-            ['clang==1 and target_arch=="ia32"', {
-              'VCCLCompilerTool': {
-                'WarnAsError': 'false',
-                'AdditionalOptions': [
-                  '/fallback',
-                ],
-              },
-            }],
-            ['clang==1 and clang_use_chrome_plugins==1', {
-              'VCCLCompilerTool': {
-                'AdditionalOptions': [
-                  '<@(clang_chrome_plugins_flags)',
-                ],
-              },
-            }],
-            ['clang==1 and MSVS_VERSION == "2013"', {
-              'VCCLCompilerTool': {
-                'AdditionalOptions': [
-                  '-fmsc-version=1800',
-                ],
-              },
-            }],
-            ['clang==1 and MSVS_VERSION == "2015"', {
-              'VCCLCompilerTool': {
-                'AdditionalOptions': [
-                  '-fmsc-version=1900',
-                ],
-              },
-            }],
-          ],
-        },
-      },
-    }],
-    ['disable_nacl==1', {
-      'target_defaults': {
-        'defines': [
-          'DISABLE_NACL',
-        ],
-      },
-    }],
-    ['OS=="win" and msvs_use_common_linker_extras', {
-      'target_defaults': {
-        'msvs_settings': {
-          'VCLinkerTool': {
-            'DelayLoadDLLs': [
-              'dbghelp.dll',
-              'dwmapi.dll',
-              'shell32.dll',
-              'uxtheme.dll',
-            ],
-          },
-        },
-        'configurations': {
-          'x86_Base': {
-            'msvs_settings': {
-              'VCLinkerTool': {
-                'AdditionalOptions': [
-                  '/safeseh',
-                  '/dynamicbase',
-                  '/ignore:4199',
-                  '/ignore:4221',
-                  '/nxcompat',
-                ],
-              },
-              'conditions': [
-                ['syzyasan==0', {
-                  'VCLinkerTool': {
-                    'AdditionalOptions': ['/largeaddressaware'],
-                  },
-                }],
-                ['asan==1', {
-                  # TODO(asan/win): Move this down into the general
-                  # win-target_defaults section once the 64-bit asan runtime
-                  # exists.  See crbug.com/345874.
-                  'VCCLCompilerTool': {
-                    'AdditionalOptions': [
-                      '-fsanitize=address',
-                      '-fsanitize-blacklist=<(PRODUCT_DIR)/../../tools/memory/asan/blacklist_win.txt',
-                    ],
-                    'AdditionalIncludeDirectories': [
-                      # MSVC needs to be able to find the sanitizer headers when
-                      # invoked via /fallback. This is critical for using macros
-                      # like ASAN_UNPOISON_MEMORY_REGION in files where we fall
-                      # back.
-                      '<(DEPTH)/<(make_clang_dir)/lib/clang/3.7.0/include_sanitizer',
-                    ],
-                  },
-                  'VCLinkerTool': {
-                    'AdditionalLibraryDirectories': [
-                      # TODO(hans): If make_clang_dir is absolute, this breaks.
-                      '<(DEPTH)/<(make_clang_dir)/lib/clang/3.7.0/lib/windows',
-                    ],
-                  },
-                  'target_conditions': [
-                    ['component=="shared_library"', {
-                      'VCLinkerTool': {
-                        'AdditionalDependencies': [
-                           'clang_rt.asan_dynamic-i386.lib',
-                           'clang_rt.asan_dynamic_runtime_thunk-i386.lib',
-                        ],
-                      },
-                    }],
-                    ['_type=="executable" and component=="static_library"', {
-                      'VCLinkerTool': {
-                        'AdditionalDependencies': [
-                           'clang_rt.asan-i386.lib',
-                        ],
-                      },
-                    }],
-                    ['(_type=="shared_library" or _type=="loadable_module") and component=="static_library"', {
-                      'VCLinkerTool': {
-                        'AdditionalDependencies': [
-                           'clang_rt.asan_dll_thunk-i386.lib',
-                        ],
-                      },
-                    }],
-                  ],
-                }],
-                ['sanitizer_coverage!=0', {
-                  # TODO(asan/win): Move this down into the general
-                  # win-target_defaults section once the 64-bit asan runtime
-                  # exists.  See crbug.com/345874.
-                  'VCCLCompilerTool': {
-                    'AdditionalOptions': [
-                      '-fsanitize-coverage=<(sanitizer_coverage)',
-                    ],
-                  },
-                }],
-              ],
-            },
-            'conditions': [
-              ['sanitizer_coverage!=0', {
-                # TODO(asan/win): Move this down into the general
-                # win-target_defaults section once the 64-bit asan runtime
-                # exists.  See crbug.com/345874.
-                'defines': [
-                  'SANITIZER_COVERAGE',
-                ],
-              }],
-            ],
-          },
-          'x64_Base': {
-            'msvs_settings': {
-              'VCLinkerTool': {
-                'AdditionalOptions': [
-                  # safeseh is not compatible with x64
-                  '/dynamicbase',
-                  '/ignore:4199',
-                  '/ignore:4221',
-                  '/nxcompat',
-                ],
-              },
-            },
-          },
-        },
-      },
-    }],
-    ['enable_new_npdevice_api==1', {
-      'target_defaults': {
-        'defines': [
-          'ENABLE_NEW_NPDEVICE_API',
-        ],
-      },
-    }],
-    # Don't warn about the "typedef 'foo' locally defined but not used"
-    # for gcc 4.8 and higher.
-    # TODO: remove this flag once all builds work. See crbug.com/227506
-    ['gcc_version>=48 and clang==0', {
-      'target_defaults': {
-        'cflags': [
-          '-Wno-unused-local-typedefs',
-        ],
-      },
-    }],
-    ['gcc_version>=48 and clang==0 and host_clang==1', {
-      'target_defaults': {
-        'target_conditions': [
-          ['_toolset=="host"', { 'cflags!': [ '-Wno-unused-local-typedefs' ]}],
-        ],
-      },
-    }],
-    ['clang==1 and ((OS!="mac" and OS!="ios") or clang_xcode==0) '
-        'and OS!="win"', {
-      'make_global_settings': [
-        ['CC', '<(make_clang_dir)/bin/clang'],
-        ['CXX', '<(make_clang_dir)/bin/clang++'],
-        ['CC.host', '$(CC)'],
-        ['CXX.host', '$(CXX)'],
-      ],
-    }],
-    ['clang==1 and OS=="win"', {
-      'make_global_settings': [
-        # On Windows, gyp's ninja generator only looks at CC.
-        ['CC', '<(make_clang_dir)/bin/clang-cl'],
-      ],
-    }],
-    ['use_lld==1 and OS=="win"', {
-      'make_global_settings': [
-        # Limited to Windows because lld-link is the driver that is compatible
-        # to link.exe.
-        ['LD', '<(make_clang_dir)/bin/lld-link'],
-      ],
-    }],
-    ['OS=="android" and clang==0', {
-      # Hardcode the compiler names in the Makefile so that
-      # it won't depend on the environment at make time.
-      'make_global_settings': [
-        ['CC', '<!(/bin/echo -n <(android_toolchain)/*-gcc)'],
-        ['CXX', '<!(/bin/echo -n <(android_toolchain)/*-g++)'],
-        ['CC.host', '<(host_cc)'],
-        ['CXX.host', '<(host_cxx)'],
-      ],
-    }],
-    ['OS=="linux" and target_arch=="mipsel" and clang==0', {
-      'make_global_settings': [
-        ['CC', '<(sysroot)/../bin/mipsel-linux-gnu-gcc'],
-        ['CXX', '<(sysroot)/../bin/mipsel-linux-gnu-g++'],
-        ['CC.host', '<(host_cc)'],
-        ['CXX.host', '<(host_cxx)'],
-      ],
-    }],
-    ['OS=="linux" and target_arch=="arm" and host_arch!="arm" and chromeos==0 and clang==0', {
-      # Set default ARM cross compiling on linux.  These can be overridden
-      # using CC/CXX/etc environment variables.
-      'make_global_settings': [
-        ['CC', '<!(which arm-linux-gnueabihf-gcc)'],
-        ['CXX', '<!(which arm-linux-gnueabihf-g++)'],
-        ['CC.host', '<(host_cc)'],
-        ['CXX.host', '<(host_cxx)'],
-      ],
-    }],
-
-    # TODO(yyanagisawa): supports GENERATOR==make
-    #  make generator doesn't support CC_wrapper without CC
-    #  in make_global_settings yet.
-    ['use_goma==1 and ("<(GENERATOR)"=="ninja" or clang==1)', {
-      'make_global_settings': [
-       ['CC_wrapper', '<(gomadir)/gomacc'],
-       ['CXX_wrapper', '<(gomadir)/gomacc'],
-       ['CC.host_wrapper', '<(gomadir)/gomacc'],
-       ['CXX.host_wrapper', '<(gomadir)/gomacc'],
-      ],
-    }],
-    ['use_lto==1', {
-      'target_defaults': {
-        'target_conditions': [
-          ['_toolset=="target"', {
-            'cflags': [
-              '-flto',
-            ],
-            'xcode_settings': {
-              'LLVM_LTO': 'YES',
-            },
-          }],
-          # Work-around for http://openradar.appspot.com/20356002
-          ['_toolset=="target" and _type!="static_library"', {
-            'xcode_settings': {
-              'OTHER_LDFLAGS': [
-                '-Wl,-all_load',
-              ],
-            },
-          }],
-        ],
-      },
-    }],
-    ['use_lto==1 and clang==0', {
-      'target_defaults': {
-        'target_conditions': [
-          ['_toolset=="target"', {
-            'cflags': [
-              '-ffat-lto-objects',
-            ],
-          }],
-        ],
-      },
-    }],
-    ['use_lto==1 and clang==1', {
-      'target_defaults': {
-        'target_conditions': [
-          ['_toolset=="target"', {
-            'arflags': [
-              '--plugin', '../../<(make_clang_dir)/lib/LLVMgold.so',
-            ],
-          }],
-        ],
-      },
-    }],
-    # Apply a lower LTO optimization level in non-official builds.
-    ['use_lto==1 and clang==1 and buildtype!="Official"', {
-      'target_defaults': {
-        'target_conditions': [
-          ['_toolset=="target"', {
-            'ldflags': [
-              '-Wl,--plugin-opt,O1',
-            ],
-          }],
-          ['_toolset=="target" and _type!="static_library"', {
-            'xcode_settings':  {
-              'OTHER_LDFLAGS': [
-                '-Wl,-mllvm,-O1',
-              ],
-            },
-          }],
-        ],
-      },
-    }],
-    ['use_lto==1 and clang==1 and target_arch=="arm"', {
-      'target_defaults': {
-        'target_conditions': [
-          ['_toolset=="target"', {
-            # Without this flag, LTO produces a .text section that is larger
-            # than the maximum call displacement, preventing the linker from
-            # relocating calls (http://llvm.org/PR22999).
-            'ldflags': [
-              '-Wl,-plugin-opt,-function-sections',
-            ],
-          }],
-        ],
-      },
-    }],
-    ['(use_lto==1 or use_lto_o2==1) and clang==0', {
-      'target_defaults': {
-        'target_conditions': [
-          ['_toolset=="target"', {
-            'ldflags': [
-              '-flto=32',
-            ],
-          }],
-        ],
-      },
-    }],
-    ['(use_lto==1 or use_lto_o2==1) and clang==1', {
-      'target_defaults': {
-        'target_conditions': [
-          ['_toolset=="target"', {
-            'ldflags': [
-              '-flto',
-            ],
-          }],
-        ],
-      },
-    }],
-    ['cfi_vptr==1', {
-      'target_defaults': {
-        'target_conditions': [
-          ['_toolset=="target"', {
-            'cflags': [
-              '-fsanitize=cfi-vcall',
-              '-fsanitize=cfi-derived-cast',
-              '-fsanitize=cfi-unrelated-cast',
-            ],
-            'ldflags': [
-              '-fsanitize=cfi-vcall',
-              '-fsanitize=cfi-derived-cast',
-              '-fsanitize=cfi-unrelated-cast',
-            ],
-            'xcode_settings': {
-              'OTHER_CFLAGS': [
-                '-fsanitize=cfi-vcall',
-                '-fsanitize=cfi-derived-cast',
-                '-fsanitize=cfi-unrelated-cast',
-              ],
-            },
-          }],
-          ['_toolset=="target" and _type!="static_library"', {
-            'xcode_settings':  {
-              'OTHER_LDFLAGS': [
-                '-fsanitize=cfi-vcall',
-                '-fsanitize=cfi-derived-cast',
-                '-fsanitize=cfi-unrelated-cast',
-              ],
-            },
-          }],
-        ],
-      },
-    }],
-    ['cfi_vptr==1', {
-      'target_defaults': {
-        'target_conditions': [
-          ['_toolset=="target"', {
-            'cflags': [
-              '-fsanitize-blacklist=<(cfi_blacklist)',
-            ],
-            'xcode_settings': {
-              'OTHER_CFLAGS': [
-                '-fsanitize-blacklist=<(cfi_blacklist)',
-              ],
-            },
-          }],
-        ],
-      },
-    }],
-  ],
-  'xcode_settings': {
-    # DON'T ADD ANYTHING NEW TO THIS BLOCK UNLESS YOU REALLY REALLY NEED IT!
-    # This block adds *project-wide* configuration settings to each project
-    # file.  It's almost always wrong to put things here.  Specify your
-    # custom xcode_settings in target_defaults to add them to targets instead.
-
-    'conditions': [
-      # In an Xcode Project Info window, the "Base SDK for All Configurations"
-      # setting sets the SDK on a project-wide basis. In order to get the
-      # configured SDK to show properly in the Xcode UI, SDKROOT must be set
-      # here at the project level.
-      ['OS=="mac"', {
-        'conditions': [
-          ['mac_sdk_path==""', {
-            'SDKROOT': 'macosx<(mac_sdk)',  # -isysroot
-          }, {
-            'SDKROOT': '<(mac_sdk_path)',  # -isysroot
-          }],
-        ],
-      }],
-      ['OS=="ios"', {
-        'conditions': [
-          ['ios_sdk_path==""', {
-            'conditions': [
-              # TODO(justincohen): Ninja only supports simulator for now.
-              ['"<(GENERATOR)"=="xcode"', {
-                'SDKROOT': 'iphoneos<(ios_sdk)',  # -isysroot
-              }, {
-                'SDKROOT': 'iphonesimulator<(ios_sdk)',  # -isysroot
-              }],
-            ],
-          }, {
-            'SDKROOT': '<(ios_sdk_path)',  # -isysroot
-          }],
-        ],
-      }],
-      ['OS=="ios"', {
-        # Target both iPhone and iPad.
-        'TARGETED_DEVICE_FAMILY': '1,2',
-      }, {  # OS!="ios"
-        'conditions': [
-          ['target_arch=="x64"', {
-            'ARCHS': [
-              'x86_64'
-            ],
-          }],
-          ['target_arch=="ia32"', {
-            'ARCHS': [
-              'i386'
-            ],
-          }],
-        ],
-      }],
-    ],
-
-    # The Xcode generator will look for an xcode_settings section at the root
-    # of each dict and use it to apply settings on a file-wide basis.  Most
-    # settings should not be here, they should be in target-specific
-    # xcode_settings sections, or better yet, should use non-Xcode-specific
-    # settings in target dicts.  SYMROOT is a special case, because many other
-    # Xcode variables depend on it, including variables such as
-    # PROJECT_DERIVED_FILE_DIR.  When a source group corresponding to something
-    # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the
-    # files to appear (when present) in the UI as actual files and not red
-    # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR,
-    # and therefore SYMROOT, needs to be set at the project level.
-    'SYMROOT': '<(DEPTH)/xcodebuild',
-  },
-}
diff --git a/build/common_untrusted.gypi b/build/common_untrusted.gypi
deleted file mode 100644
index bcc3686..0000000
--- a/build/common_untrusted.gypi
+++ /dev/null
@@ -1,40 +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 GYP file should be included for every target in Chromium that is built
-# using the NaCl toolchain.
-{
-  'includes': [
-    '../native_client/build/untrusted.gypi',
-  ],
-  'target_defaults': {
-    'conditions': [
-      # TODO(bradnelson): Drop this once the nacl side does the same.
-      ['target_arch=="x64"', {
-        'variables': {
-          'enable_x86_32': 0,
-        },
-      }],
-      ['target_arch=="ia32" and OS!="win"', {
-        'variables': {
-          'enable_x86_64': 0,
-        },
-      }],
-      ['target_arch=="arm"', {
-        'variables': {
-          'clang': 1,
-        },
-        'defines': [
-          # Needed by build/build_config.h processor architecture detection.
-          '__ARMEL__',
-          # Needed by base/third_party/nspr/prtime.cc.
-          '__arm__',
-          # Disable ValGrind. The assembly code it generates causes the build
-          # to fail.
-          'NVALGRIND',
-        ],
-      }],
-    ],
-  },
-}
diff --git a/build/copy_test_data_ios.gypi b/build/copy_test_data_ios.gypi
deleted file mode 100644
index 576a0f2..0000000
--- a/build/copy_test_data_ios.gypi
+++ /dev/null
@@ -1,53 +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 meant to be included into an action to copy test data files into
-# an iOS app bundle. To use this the following variables need to be defined:
-#   test_data_files: list: paths to test data files or directories
-#   test_data_prefix: string: a directory prefix that will be prepended to each
-#                             output path.  Generally, this should be the base
-#                             directory of the gypi file containing the unittest
-#                             target (e.g. "base" or "chrome").
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'my_unittests',
-#   'conditions': [
-#     ['OS == "ios"', {
-#       'actions': [
-#         {
-#           'action_name': 'copy_test_data',
-#           'variables': {
-#             'test_data_files': [
-#               'path/to/datafile.txt',
-#               'path/to/data/directory/',
-#             ]
-#             'test_data_prefix' : 'prefix',
-#           },
-#           'includes': ['path/to/this/gypi/file'],
-#         },
-#       ],
-#     }],
-# }
-#
-
-{
-  'inputs': [
-    # The |-o <(test_data_prefix)| is ignored; it is there to work around a
-    # caching bug in gyp (https://code.google.com/p/gyp/issues/detail?id=112).
-    # It caches command output when the string is the same, so if two copy
-    # steps have the same relative paths, there can be bogus cache hits that
-    # cause compile failures unless something varies.
-    '<!@pymod_do_main(copy_test_data_ios -o <(test_data_prefix) --inputs <(test_data_files))',
-  ],
-  'outputs': [
-    '<!@pymod_do_main(copy_test_data_ios -o <(PRODUCT_DIR)/<(_target_name).app/<(test_data_prefix) --outputs <(test_data_files))',
-  ],
-  'action': [
-    'python',
-    '<(DEPTH)/build/copy_test_data_ios.py',
-    '-o', '<(PRODUCT_DIR)/<(_target_name).app/<(test_data_prefix)',
-    '<@(_inputs)',
-  ],
-}
diff --git a/build/filename_rules.gypi b/build/filename_rules.gypi
deleted file mode 100644
index f67287f..0000000
--- a/build/filename_rules.gypi
+++ /dev/null
@@ -1,106 +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 gypi file defines the patterns used for determining whether a
-# file is excluded from the build on a given platform.  It is
-# included by common.gypi for chromium_code.
-
-{
-  'target_conditions': [
-    ['OS!="win" or >(nacl_untrusted_build)==1', {
-      'sources/': [ ['exclude', '_win(_browsertest|_unittest)?\\.(h|cc)$'],
-                    ['exclude', '(^|/)win/'],
-                    ['exclude', '(^|/)win_[^/]*\\.(h|cc)$'] ],
-    }],
-    ['OS!="mac" or >(nacl_untrusted_build)==1', {
-      'sources/': [ ['exclude', '_(cocoa|mac)(_unittest)?\\.(h|cc|mm?)$'],
-                    ['exclude', '(^|/)(cocoa|mac)/'] ],
-    }],
-    ['OS!="ios" or >(nacl_untrusted_build)==1', {
-      'sources/': [ ['exclude', '_ios(_unittest)?\\.(h|cc|mm?)$'],
-                    ['exclude', '(^|/)ios/'] ],
-    }],
-    ['(OS!="mac" and OS!="ios") or >(nacl_untrusted_build)==1', {
-      'sources/': [ ['exclude', '\\.mm?$' ] ],
-    }],
-    # Do not exclude the linux files on *BSD since most of them can be
-    # shared at this point.
-    # In case a file is not needed, it is going to be excluded later on.
-    # TODO(evan): the above is not correct; we shouldn't build _linux
-    # files on non-linux.
-    ['OS!="linux" and OS!="openbsd" and OS!="freebsd" or >(nacl_untrusted_build)==1', {
-      'sources/': [
-        ['exclude', '_linux(_unittest)?\\.(h|cc)$'],
-        ['exclude', '(^|/)linux/'],
-      ],
-    }],
-    ['OS!="android" or _toolset=="host" or >(nacl_untrusted_build)==1', {
-      'sources/': [
-        ['exclude', '_android(_unittest)?\\.(h|cc)$'],
-        ['exclude', '(^|/)android/'],
-      ],
-    }],
-    ['OS=="win" and >(nacl_untrusted_build)==0', {
-      'sources/': [
-        ['exclude', '_posix(_unittest)?\\.(h|cc)$'],
-        ['exclude', '(^|/)posix/'],
-      ],
-    }],
-    ['<(chromeos)!=1 or >(nacl_untrusted_build)==1', {
-      'sources/': [
-        ['exclude', '_chromeos(_unittest)?\\.(h|cc)$'],
-        ['exclude', '(^|/)chromeos/'],
-      ],
-    }],
-    ['>(nacl_untrusted_build)==0', {
-      'sources/': [
-        ['exclude', '_nacl(_unittest)?\\.(h|cc)$'],
-      ],
-    }],
-    ['OS!="linux" and OS!="openbsd" and OS!="freebsd" or >(nacl_untrusted_build)==1', {
-      'sources/': [
-        ['exclude', '_xdg(_unittest)?\\.(h|cc)$'],
-      ],
-    }],
-    ['<(use_x11)!=1 or >(nacl_untrusted_build)==1', {
-      'sources/': [
-        ['exclude', '_(x|x11)(_interactive_uitest|_unittest)?\\.(h|cc)$'],
-        ['exclude', '(^|/)x11_[^/]*\\.(h|cc)$'],
-        ['exclude', '(^|/)x11/'],
-        ['exclude', '(^|/)x/'],
-      ],
-    }],
-    ['<(toolkit_views)==0 or >(nacl_untrusted_build)==1', {
-      'sources/': [ ['exclude', '_views(_browsertest|_unittest)?\\.(h|cc)$'] ]
-    }],
-    ['<(use_aura)==0 or >(nacl_untrusted_build)==1', {
-      'sources/': [ ['exclude', '_aura(_browsertest|_unittest)?\\.(h|cc)$'],
-                    ['exclude', '(^|/)aura/'],
-      ]
-    }],
-    ['<(use_aura)==0 or <(use_x11)==0 or >(nacl_untrusted_build)==1', {
-      'sources/': [ ['exclude', '_aurax11(_browsertest|_unittest)?\\.(h|cc)$'] ]
-    }],
-    ['<(use_aura)==0 or OS!="win" or >(nacl_untrusted_build)==1', {
-      'sources/': [ ['exclude', '_aurawin\\.(h|cc)$'] ]
-    }],
-    ['<(use_aura)==0 or OS!="linux" or >(nacl_untrusted_build)==1', {
-      'sources/': [ ['exclude', '_auralinux\\.(h|cc)$'] ]
-    }],
-    ['<(use_ash)==0 or >(nacl_untrusted_build)==1', {
-      'sources/': [ ['exclude', '_ash(_browsertest|_unittest)?\\.(h|cc)$'],
-                    ['exclude', '(^|/)ash/'],
-      ]
-    }],
-    ['<(use_ash)==0 or OS!="win" or >(nacl_untrusted_build)==1', {
-      'sources/': [ ['exclude', '_ashwin\\.(h|cc)$'] ]
-    }],
-    ['<(use_ozone)==0 or >(nacl_untrusted_build)==1', {
-      'sources/': [ ['exclude', '_ozone(_browsertest|_unittest)?\\.(h|cc)$'] ]
-    }],
-    ['<(use_pango)==0', {
-      'sources/': [ ['exclude', '(^|_)pango(_util|_browsertest|_unittest)?\\.(h|cc)$'], ],
-    }],
-  ]
-}
diff --git a/build/gn_migration.gypi b/build/gn_migration.gypi
deleted file mode 100644
index 0ce7b2e..0000000
--- a/build/gn_migration.gypi
+++ /dev/null
@@ -1,682 +0,0 @@
-# Copyright (c) 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.
-
-# This file defines five targets that we are using to track the progress of the
-# GYP->GN migration:
-#
-# 'both_gn_and_gyp' lists what GN is currently capable of building and should
-# match the 'both_gn_and_gyp' target in //BUILD.gn.
-#
-# 'gyp_all' Should include everything built when building "all"; i.e., if you
-# type 'ninja gyp_all' and then 'ninja all', the second build should do
-# nothing. 'gyp_all' should just depend on the other four targets.
-#
-# 'gyp_only' lists any targets that are not meant to be ported over to the GN
-# build.
-#
-# 'gyp_remaining' lists all of the targets that still need to be converted,
-# i.e., all of the other (non-empty) targets that a GYP build will build.
-#
-# TODO(GYP): crbug.com/481694. Add a build step to the bot that enforces the
-# above contracts.
-
-{
-  'targets': [
-    {
-      'target_name': 'gyp_all',
-      'type': 'none',
-      'dependencies': [
-        'both_gn_and_gyp',
-        'gyp_only',
-        'gyp_remaining',
-      ]
-    },
-    {
-      # This target should mirror the structure of //:both_gn_and_gyp
-      # in src/BUILD.gn as closely as possible, for ease of comparison.
-      'target_name': 'both_gn_and_gyp',
-      'type': 'none',
-      'dependencies': [
-        '../base/base.gyp:base_i18n_perftests',
-        '../base/base.gyp:base_perftests',
-        '../base/base.gyp:base_unittests',
-        '../base/base.gyp:build_utf8_validator_tables#host',
-        '../base/base.gyp:check_example',
-        '../cc/cc_tests.gyp:cc_perftests',
-        '../cc/cc_tests.gyp:cc_unittests',
-        '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests',
-        '../chrome/chrome.gyp:chrome',
-        '../chrome/chrome.gyp:browser_tests',
-        '../chrome/chrome.gyp:chrome_app_unittests',
-        '../chrome/chrome.gyp:chromedriver',
-        '../chrome/chrome.gyp:chromedriver_tests',
-        '../chrome/chrome.gyp:chromedriver_unittests',
-        '../chrome/chrome.gyp:interactive_ui_tests',
-        '../chrome/chrome.gyp:load_library_perf_tests',
-        '../chrome/chrome.gyp:performance_browser_tests',
-        '../chrome/chrome.gyp:sync_integration_tests',
-        '../chrome/chrome.gyp:sync_performance_tests',
-        '../chrome/chrome.gyp:unit_tests',
-        '../chrome/tools/profile_reset/jtl_compiler.gyp:jtl_compiler',
-        '../cloud_print/cloud_print.gyp:cloud_print_unittests',
-        '../components/components.gyp:network_hints_browser',
-        '../components/components.gyp:policy_templates',
-        '../components/components.gyp:webui_generator',
-        '../components/components_tests.gyp:components_browsertests',
-        '../components/components_tests.gyp:components_perftests',
-        '../components/components_tests.gyp:components_unittests',
-        '../content/content.gyp:content_app_browser',
-        '../content/content.gyp:content_app_child',
-        '../content/content_shell_and_tests.gyp:content_browsertests',
-        '../content/content_shell_and_tests.gyp:content_gl_benchmark',
-        '../content/content_shell_and_tests.gyp:content_gl_tests',
-        '../content/content_shell_and_tests.gyp:content_perftests',
-        '../content/content_shell_and_tests.gyp:content_shell',
-        '../content/content_shell_and_tests.gyp:content_unittests',
-        '../courgette/courgette.gyp:courgette',
-        '../courgette/courgette.gyp:courgette_fuzz',
-        '../courgette/courgette.gyp:courgette_minimal_tool',
-        '../courgette/courgette.gyp:courgette_unittests',
-        '../crypto/crypto.gyp:crypto_unittests',
-        '../extensions/extensions_tests.gyp:extensions_browsertests',
-        '../extensions/extensions_tests.gyp:extensions_unittests',
-        '../device/device_tests.gyp:device_unittests',
-        '../gin/gin.gyp:gin_v8_snapshot_fingerprint',
-        '../gin/gin.gyp:gin_shell',
-        '../gin/gin.gyp:gin_unittests',
-        '../google_apis/gcm/gcm.gyp:gcm_unit_tests',
-        '../google_apis/gcm/gcm.gyp:mcs_probe',
-        '../google_apis/google_apis.gyp:google_apis_unittests',
-        '../gpu/gpu.gyp:angle_unittests',
-        '../gpu/gpu.gyp:gl_tests',
-        '../gpu/gpu.gyp:gpu_perftests',
-        '../gpu/gpu.gyp:gpu_unittests',
-        '../gpu/gles2_conform_support/gles2_conform_support.gyp:gles2_conform_support',  # TODO(GYP) crbug.com/471920
-        '../gpu/gles2_conform_support/gles2_conform_test.gyp:gles2_conform_test',  # TODO(GYP) crbug.com/471920
-        '../gpu/khronos_glcts_support/khronos_glcts_test.gyp:khronos_glcts_test',  # TODO(GYP) crbug.com/471903 to make this complete.
-        '../ipc/ipc.gyp:ipc_perftests',
-        '../ipc/ipc.gyp:ipc_tests',
-        '../ipc/mojo/ipc_mojo.gyp:ipc_mojo_unittests',
-        '../jingle/jingle.gyp:jingle_unittests',
-        '../media/media.gyp:ffmpeg_regression_tests',  # TODO(GYP) this should be conditional on media_use_ffmpeg
-        '../media/media.gyp:media_perftests',
-        '../media/media.gyp:media_unittests',
-        '../media/midi/midi.gyp:midi_unittests',
-        '../media/cast/cast.gyp:cast_benchmarks',
-        '../media/cast/cast.gyp:cast_unittests',
-        '../media/cast/cast.gyp:generate_barcode_video',
-        '../media/cast/cast.gyp:generate_timecode_audio',
-        '../mojo/mojo.gyp:mojo',
-        '../mojo/mojo_base.gyp:mojo_application_base',
-        '../mojo/mojo_base.gyp:mojo_common_unittests',
-        '../net/net.gyp:crash_cache',
-        '../net/net.gyp:crl_set_dump',
-        '../net/net.gyp:dns_fuzz_stub',
-        '../net/net.gyp:dump_cache',
-        '../net/net.gyp:gdig',
-        '../net/net.gyp:get_server_time',
-        '../net/net.gyp:hpack_example_generator',
-        '../net/net.gyp:hpack_fuzz_mutator',
-        '../net/net.gyp:hpack_fuzz_wrapper',
-        '../net/net.gyp:net_perftests',
-        '../net/net.gyp:net_unittests',
-        '../net/net.gyp:net_watcher',  # TODO(GYP): This should be conditional on use_v8_in_net
-        '../net/net.gyp:run_testserver',
-        '../net/net.gyp:stress_cache',
-        '../net/net.gyp:tld_cleanup',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_audio',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_audio_input',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_c_stub',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_cc_stub',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_compositor',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_crxfs',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_enumerate_devices',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_file_chooser',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_flash_topmost',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_gamepad',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_gles2',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_gles2_spinning_cube',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_graphics_2d',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_ime',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_input',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_media_stream_audio',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_media_stream_video',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_mouse_cursor',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_mouse_lock',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_paint_manager',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_post_message',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_printing',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_scaling',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_scroll',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_simple_font',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_threading',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_url_loader',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_url_loader_file',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_vc',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_video_decode',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_video_decode_dev',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_video_effects',
-        '../ppapi/ppapi_internal.gyp:ppapi_example_video_encode',
-        '../ppapi/ppapi_internal.gyp:ppapi_tests',
-        '../ppapi/ppapi_internal.gyp:ppapi_perftests',
-        '../ppapi/ppapi_internal.gyp:ppapi_unittests',
-        '../ppapi/tools/ppapi_tools.gyp:pepper_hash_for_uma',
-        '../printing/printing.gyp:printing_unittests',
-        '../skia/skia_tests.gyp:skia_unittests',
-        '../skia/skia.gyp:filter_fuzz_stub',
-        '../skia/skia.gyp:image_operations_bench',
-        '../sql/sql.gyp:sql_unittests',
-        '../sync/sync.gyp:run_sync_testserver',
-        '../sync/sync.gyp:sync_unit_tests',
-        '../sync/tools/sync_tools.gyp:sync_client',
-        '../sync/tools/sync_tools.gyp:sync_listen_notifications',
-        '../testing/gmock.gyp:gmock_main',
-        '../third_party/WebKit/Source/platform/blink_platform_tests.gyp:blink_heap_unittests',
-        '../third_party/WebKit/Source/platform/blink_platform_tests.gyp:blink_platform_unittests',
-        '../third_party/WebKit/Source/web/web_tests.gyp:webkit_unit_tests',
-        '../third_party/WebKit/Source/wtf/wtf_tests.gyp:wtf_unittests',
-        '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
-        '../third_party/codesighs/codesighs.gyp:codesighs',
-        '../third_party/codesighs/codesighs.gyp:maptsvdifftool',
-        '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
-        '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
-        '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
-        '../third_party/mojo/mojo_edk_tests.gyp:mojo_system_unittests',
-        '../third_party/mojo/mojo_edk_tests.gyp:mojo_public_bindings_unittests',
-        '../third_party/mojo/mojo_edk_tests.gyp:mojo_public_environment_unittests',
-        '../third_party/mojo/mojo_edk_tests.gyp:mojo_public_system_perftests',
-        '../third_party/mojo/mojo_edk_tests.gyp:mojo_public_system_unittests',
-        '../third_party/mojo/mojo_edk_tests.gyp:mojo_public_utility_unittests',
-        '../third_party/pdfium/samples/samples.gyp:pdfium_diff',
-        '../third_party/pdfium/samples/samples.gyp:pdfium_test',
-        '../third_party/smhasher/smhasher.gyp:pmurhash',
-        '../tools/gn/gn.gyp:gn',
-        '../tools/gn/gn.gyp:generate_test_gn_data',
-        '../tools/gn/gn.gyp:gn_unittests',
-        '../tools/imagediff/image_diff.gyp:image_diff',
-        '../tools/perf/clear_system_cache/clear_system_cache.gyp:clear_system_cache',
-        '../tools/telemetry/telemetry.gyp:bitmaptools#host',
-        '../ui/accessibility/accessibility.gyp:accessibility_unittests',
-        '../ui/app_list/app_list.gyp:app_list_unittests',
-        '../ui/base/ui_base_tests.gyp:ui_base_unittests',
-        '../ui/compositor/compositor.gyp:compositor_unittests',
-        '../ui/display/display.gyp:display_unittests',
-        '../ui/events/events.gyp:events_unittests',
-        '../ui/gfx/gfx_tests.gyp:gfx_unittests',
-        '../ui/gl/gl_tests.gyp:gl_unittests',
-        '../ui/message_center/message_center.gyp:message_center_unittests',
-        '../ui/snapshot/snapshot.gyp:snapshot_unittests',
-        '../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection_unittests',
-        '../ui/views/examples/examples.gyp:views_examples_with_content_exe',
-        '../url/url.gyp:url_unittests',
-        '../v8/tools/gyp/v8.gyp:v8_snapshot',
-        '../v8/tools/gyp/v8.gyp:postmortem-metadata',
-      ],
-      'conditions': [
-        ['clang==1', {
-          'dependencies': [
-            '../build/sanitizers/sanitizers.gyp:llvm-symbolizer',
-          ],
-        }],
-        ['disable_nacl==0 and disable_nacl_untrusted==0', {
-          'dependencies': [
-            '../components/nacl.gyp:nacl_loader_unittests',
-          ]
-        }],
-        ['enable_extensions==1 and OS!="mac"', {
-          'dependencies': [
-            '../extensions/shell/app_shell.gyp:app_shell',
-            '../extensions/shell/app_shell.gyp:app_shell_unittests',
-          ],
-        }],
-        ['enable_mdns==1', {
-          'dependencies': [
-            '../chrome/chrome.gyp:service_discovery_sniffer',
-          ]
-        }],
-        ['remoting==1', {
-          'dependencies': [
-            '../remoting/remoting_all.gyp:remoting_all',
-          ],
-        }],
-        ['remoting==1 and chromeos==0 and use_x11==1', {
-          'dependencies': [
-            '../remoting/remoting.gyp:remoting_me2me_host',
-            '../remoting/remoting.gyp:remoting_me2me_native_messaging_host',
-          ],
-        }],
-        ['toolkit_views==1', {
-          'dependencies': [
-            '../ui/app_list/app_list.gyp:app_list_demo',
-            '../ui/views/views.gyp:views_unittests',
-          ],
-        }],
-        ['use_ash==1', {
-          'dependencies': [
-            '../ash/ash.gyp:ash_shell',
-            '../ash/ash.gyp:ash_shell_unittests',
-            '../ash/ash.gyp:ash_unittests',
-          ],
-        }],
-        ['use_ash==1 or chromeos== 1', {
-          'dependencies': [
-            '../components/components.gyp:session_manager_component',
-          ]
-        }],
-        ['use_aura==1', {
-          'dependencies': [
-            '../ui/aura/aura.gyp:aura_bench',
-            '../ui/aura/aura.gyp:aura_demo',
-            '../ui/aura/aura.gyp:aura_unittests',
-            '../ui/keyboard/keyboard.gyp:keyboard_unittests',
-            '../ui/wm/wm.gyp:wm_unittests',
-          ],
-        }],
-        ['use_ozone==1', {
-          'dependencies': [
-            '../ui/ozone/ozone.gyp:ozone',
-          ],
-        }],
-        ['use_x11==1', {
-          'dependencies': [
-            '../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
-          ],
-          'conditions': [
-            ['target_arch!="arm"', {
-              'dependencies': [
-                '../gpu/tools/tools.gyp:compositor_model_bench',
-              ],
-            }],
-          ],
-        }],
-        ['OS=="android"', {
-          'dependencies': [
-            '../base/base.gyp:chromium_android_linker',
-            '../breakpad/breakpad.gyp:dump_syms',
-            '../build/android/rezip.gyp:rezip_apk_jar',
-            '../chrome/chrome.gyp:chrome_public_apk',
-            '../chrome/chrome.gyp:chrome_public_test_apk',
-            '../chrome/chrome.gyp:chrome_shell_apk',
-            '../chrome/chrome.gyp:chromedriver_webview_shell_apk',
-            #"//clank" TODO(GYP) - conditional somehow?
-            '../tools/imagediff/image_diff.gyp:image_diff#host',
-            '../tools/telemetry/telemetry.gyp:bitmaptools#host',
-
-            # TODO(GYP): Remove these when the components_unittests work.
-            #"//components/history/core/test:test",
-            #"//components/policy:policy_component_test_support",
-            #"//components/policy:test_support",
-            #"//components/rappor:test_support",
-            #"//components/signin/core/browser:test_support",
-            #"//components/sync_driver:test_support",
-            #"//components/user_manager",
-            #"//components/wallpaper",
-
-            '../content/content_shell_and_tests.gyp:content_shell_apk',
-
-            '../third_party/WebKit/Source/platform/blink_platform_tests.gyp:blink_heap_unittests_apk',
-            '../third_party/WebKit/Source/platform/blink_platform_tests.gyp:blink_platform_unittests_apk',
-            '../third_party/WebKit/Source/web/web_tests.gyp:webkit_unit_tests_apk',
-            '../third_party/WebKit/Source/wtf/wtf_tests.gyp:wtf_unittests_apk',
-            # TODO(GYP): Are these needed, or will they be pulled in automatically?
-            #"//third_party/android_tools:android_gcm_java",
-            #"//third_party/android_tools:uiautomator_java",
-            #"//third_party/android_tools:android_support_v13_java",
-            #"//third_party/android_tools:android_support_v7_appcompat_java",
-            #"//third_party/android_tools:android_support_v7_mediarouter_java",
-            #"//third_party/mesa",
-            #"//third_party/mockito:mockito_java",
-            #"//third_party/openmax_dl/dl",
-            #"//third_party/speex",
-            #"//ui/android:ui_java",
-
-            # TODO(GYP): Are these needed?
-            #"//chrome/test:test_support_unit",
-            #"//third_party/smhasher:murmurhash3",
-            #"//ui/message_center:test_support",
-          ],
-          'dependencies!': [
-            '../breakpad/breakpad.gyp:symupload',
-            '../chrome/chrome.gyp:browser_tests',
-            '../chrome/chrome.gyp:chromedriver',
-            '../chrome/chrome.gyp:chromedriver_unitests',
-            '../chrome/chrome.gyp:interactive_ui_tests',
-            '../chrome/chrome.gyp:performance_browser_tests',
-            '../chrome/chrome.gyp:sync_integration_tests',
-            '../chrome/chrome.gyp:unit_tests',
-            '../extensions/extensions_tests.gyp:extensions_browsertests',
-            '../extensions/extensions_tests.gyp:extensions_unittests',
-            '../google_apis/gcm/gcm.gyp:gcm_unit_tests',
-            '../ipc/ipc.gyp:ipc_tests',
-            '../jingle/jingle.gyp:jingle_unittests',
-            '../net/net.gyp:net_unittests',
-            #"//ppapi/examples",
-            '../third_party/pdfium/samples/samples.gyp:pdfium_test',
-            '../tools/gn/gn.gyp:gn',
-            '../tools/gn/gn.gyp:gn_unittests',
-            '../tools/imagediff/image_diff.gyp:image_diff',
-            '../tools/gn/gn.gyp:gn',
-            '../tools/gn/gn.gyp:gn_unittests',
-            '../ui/app_list/app_list.gyp:app_list_unittests',
-            '../url/url.gyp:url_unittests',
-          ],
-        }],
-        ['OS=="android" or OS=="linux"', {
-          'dependencies': [
-            '../net/net.gyp:disk_cache_memory_test',
-          ],
-        }],
-        ['chromeos==1', {
-          'dependencies': [
-            '../chromeos/chromeos.gyp:chromeos_unittests',
-            '../ui/chromeos/ui_chromeos.gyp:ui_chromeos_unittests',
-          ]
-        }],
-        ['chromeos==1 or OS=="win" or OS=="mac"', {
-          'dependencies': [
-            '../rlz/rlz.gyp:rlz_id',
-            '../rlz/rlz.gyp:rlz_lib',
-            '../rlz/rlz.gyp:rlz_unittests',
-          ],
-        }],
-        ['OS=="android" or OS=="linux" or os_bsd==1', {
-          'dependencies': [
-            '../breakpad/breakpad.gyp:core-2-minidump',
-            '../breakpad/breakpad.gyp:microdump_stackwalk',
-            '../breakpad/breakpad.gyp:minidump_dump',
-            '../breakpad/breakpad.gyp:minidump_stackwalk',
-            '../breakpad/breakpad.gyp:symupload',
-            '../third_party/codesighs/codesighs.gyp:nm2tsv',
-          ],
-        }],
-        ['OS=="linux"', {
-          'dependencies': [
-            '../breakpad/breakpad.gyp:breakpad_unittests',
-            '../breakpad/breakpad.gyp:dump_syms#host',
-            '../breakpad/breakpad.gyp:generate_test_dump',
-            '../breakpad/breakpad.gyp:minidump-2-core',
-            '../dbus/dbus.gyp:dbus_test_server',
-            '../dbus/dbus.gyp:dbus_unittests',
-            '../media/cast/cast.gyp:tap_proxy',
-            '../net/net.gyp:disk_cache_memory_test',
-            '../net/net.gyp:flip_in_mem_edsm_server',
-            '../net/net.gyp:flip_in_mem_edsm_server_unittests',
-            '../net/net.gyp:epoll_quic_client',
-            '../net/net.gyp:epoll_quic_server',
-            '../net/net.gyp:hpack_example_generator',
-            '../net/net.gyp:hpack_fuzz_mutator',
-            '../net/net.gyp:hpack_fuzz_wrapper',
-            '../net/net.gyp:net_perftests',
-            '../net/net.gyp:quic_client',
-            '../net/net.gyp:quic_server',
-            '../sandbox/sandbox.gyp:chrome_sandbox',
-            '../sandbox/sandbox.gyp:sandbox_linux_unittests',
-            '../sandbox/sandbox.gyp:sandbox_linux_jni_unittests',
-            '../third_party/sqlite/sqlite.gyp:sqlite_shell',
-         ],
-        }],
-        ['OS=="mac"', {
-          'dependencies': [
-            '../breakpad/breakpad.gyp:crash_inspector',
-            '../breakpad/breakpad.gyp:dump_syms',
-            '../breakpad/breakpad.gyp:symupload',
-            '../third_party/apple_sample_code/apple_sample_code.gyp:apple_sample_code',
-            '../third_party/molokocacao/molokocacao.gyp:molokocacao',
-
-            # TODO(GYP): remove these when the corresponding root targets work.
-            #"//cc/blink",
-            #"//components/ui/zoom:ui_zoom",
-            #"//content",
-            #"//content/test:test_support",
-            #"//device/battery",
-            #"//device/bluetooth",
-            #"//device/nfc",
-            #"//device/usb",
-            #"//device/vibration",
-            #"//media/blink",
-            #"//pdf",
-            #"//storage/browser",
-            #"//third_party/brotli",
-            #"//third_party/flac",
-            #"//third_party/hunspell",
-            #//third_party/iccjpeg",
-            #"//third_party/libphonenumber",
-            #"//third_party/ots",
-            #"//third_party/qcms",
-            #"//third_party/smhasher:murmurhash3",
-            #"//third_party/speex",
-            #"//third_party/webrtc/system_wrappers",
-            #"//ui/native_theme",
-            #"//ui/snapshot",
-            #"//ui/surface",
-          ],
-          'dependencies!': [
-            #"//chrome",  # TODO(GYP)
-            #"//chrome/test:browser_tests",  # TODO(GYP)
-            #"//chrome/test:interactive_ui_tests",  # TODO(GYP)
-            #"//chrome/test:sync_integration_tests",  # TODO(GYP)
-            #"//chrome/test:unit_tests",  # TODO(GYP)
-            #"//components:components_unittests",  # TODO(GYP)
-            #"//content/test:content_browsertests",  # TODO(GYP)
-            #"//content/test:content_perftests",  # TODO(GYP)
-            #"//content/test:content_unittests",  # TODO(GYP)
-            #"//extensions:extensions_browsertests",  # TODO(GYP)
-            #"//extensions:extensions_unittests",  # TODO(GYP)
-            #"//net:net_unittests",  # TODO(GYP)
-            #"//third_party/usrsctp",  # TODO(GYP)
-            #"//ui/app_list:app_list_unittests",  # TODO(GYP)
-            #"//ui/gfx:gfx_unittests",  # TODO(GYP)
-          ],
-        }],
-        ['OS=="win"', {
-          'dependencies': [
-            '../base/base.gyp:pe_image_test',
-            '../chrome/chrome.gyp:crash_service',
-            '../chrome_elf/chrome_elf.gyp:chrome_elf_unittests',
-            '../chrome_elf/chrome_elf.gyp:dll_hash_main',
-            '../components/components.gyp:wifi_test',
-            '../net/net.gyp:quic_client',
-            '../net/net.gyp:quic_server',
-            '../sandbox/sandbox.gyp:pocdll',
-            '../sandbox/sandbox.gyp:sandbox_poc',
-            '../sandbox/sandbox.gyp:sbox_integration_tests',
-            '../sandbox/sandbox.gyp:sbox_unittests',
-            '../sandbox/sandbox.gyp:sbox_validation_tests',
-            '../testing/gtest.gyp:gtest_main',
-            '../third_party/codesighs/codesighs.gyp:msdump2symdb',
-            '../third_party/codesighs/codesighs.gyp:msmap2tsv',
-            '../third_party/pdfium/samples/samples.gyp:pdfium_diff',
-            '../win8/win8.gyp:metro_viewer',
-          ],
-        }],
-      ],
-    },
-    {
-      'target_name': 'gyp_only',
-      'type': 'none',
-      'conditions': [
-        ['OS=="linux" or OS=="win"', {
-          'conditions': [
-            ['disable_nacl==0 and disable_nacl_untrusted==0', {
-              'dependencies': [
-                '../mojo/mojo_nacl.gyp:monacl_shell',  # This should not be built in chromium.
-              ]
-            }],
-          ]
-        }],
-      ],
-    },
-    {
-      'target_name': 'gyp_remaining',
-      'type': 'none',
-      'conditions': [
-        ['remoting==1', {
-          'dependencies': [
-            '../remoting/app_remoting_webapp.gyp:ar_sample_app',  # crbug.com/471916
-          ],
-        }],
-        ['test_isolation_mode!="noop"', {
-          'dependencies': [
-            '../base/base.gyp:base_unittests_run',
-            '../cc/cc_tests.gyp:cc_unittests_run',
-            '../chrome/chrome.gyp:browser_tests_run',
-            '../chrome/chrome.gyp:chrome_run',
-            '../chrome/chrome.gyp:interactive_ui_tests_run',
-            '../chrome/chrome.gyp:sync_integration_tests_run',
-            '../chrome/chrome.gyp:unit_tests_run',
-            '../components/components_tests.gyp:components_browsertests_run',
-            '../components/components_tests.gyp:components_unittests_run',
-            '../content/content_shell_and_tests.gyp:content_browsertests_run',
-            '../content/content_shell_and_tests.gyp:content_unittests_run',
-            '../crypto/crypto.gyp:crypto_unittests_run',
-            '../courgette/courgette.gyp:courgette_unittests_run',
-            '../gpu/gpu.gyp:gpu_unittests_run',
-            '../media/cast/cast.gyp:cast_unittests_run',
-            '../media/media.gyp:media_unittests_run',
-            '../media/midi/midi.gyp:midi_unittests_run',
-            '../net/net.gyp:net_unittests_run',
-            '../sql/sql.gyp:sql_unittests_run',
-            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests_run',
-            '../ui/accessibility/accessibility.gyp:accessibility_unittests_run',
-            '../ui/app_list/app_list.gyp:app_list_unittests_run',
-            '../ui/events/events.gyp:events_unittests_run',
-            '../ui/message_center/message_center.gyp:message_center_unittests_run',
-            '../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection_unittests_run',
-          ],
-        }],
-        ['test_isolation_mode!="noop" and use_ash==1', {
-          'dependencies': [
-            '../ash/ash.gyp:ash_unittests_run',
-          ],
-        }],
-        ['test_isolation_mode!="noop" and OS=="linux"', {
-          'dependencies': [
-            '../sandbox/sandbox.gyp:sandbox_linux_unittests_run',
-          ],
-        }],
-        ['use_openssl==1', {
-          'dependencies': [
-            # TODO(GYP): All of these targets still need to be converted.
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_ecdsa_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_bn_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_pqueue_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_digest_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_cipher_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_hkdf_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_constant_time_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_thread_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_base64_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_gcm_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_bytestring_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_evp_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_dsa_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_rsa_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_hmac_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_aead_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_ssl_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_err_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_lhash_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_pbkdf_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_dh_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_pkcs12_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_example_mul',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_ec_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_bio_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_pkcs7_test',
-            '../third_party/boringssl/boringssl_tests.gyp:boringssl_unittests',
-          ],
-        }],
-        ['chromeos==1', {
-          'dependencies': [
-            '../content/content_shell_and_tests.gyp:video_encode_accelerator_unittest',
-          ],
-        }],
-        ['chromeos==1 and target_arch != "arm"', {
-          'dependencies': [
-            '../content/content_shell_and_tests.gyp:vaapi_jpeg_decoder_unittest',
-          ],
-        }],
-        ['chromeos==1 or OS=="win" or OS=="android"', {
-          'dependencies': [
-            '../content/content_shell_and_tests.gyp:video_decode_accelerator_unittest',
-          ],
-        }],
-        ['OS=="linux" or OS=="win"', {
-          'dependencies': [
-            # TODO(GYP): Figure out which of these run on android/mac/win/ios/etc.
-            '../net/net.gyp:net_docs',
-            '../remoting/app_remoting_test.gyp:ar_sample_test_driver',
-
-            # TODO(GYP): in progress - see tfarina.
-            '../third_party/webrtc/tools/tools.gyp:frame_analyzer',
-            '../third_party/webrtc/tools/tools.gyp:rgba_to_i420_converter',
-          ],
-        }],
-        ['OS=="win"', {
-          'dependencies': [
-            # TODO(GYP): All of these targets still need to be converted.
-            '../base/base.gyp:debug_message',
-            '../chrome/chrome.gyp:app_shim',
-            '../chrome/chrome.gyp:gcapi_dll',
-            '../chrome/chrome.gyp:gcapi_test',
-            '../chrome/chrome.gyp:installer_util_unittests',
-            '../chrome/chrome.gyp:pack_policy_templates',
-            '../chrome/chrome.gyp:sb_sigutil',
-            '../chrome/chrome.gyp:setup',
-            '../chrome/chrome.gyp:setup_unittests',
-            '../chrome/installer/mini_installer.gyp:mini_installer',
-            '../chrome/tools/crash_service/caps/caps.gyp:caps',
-            '../cloud_print/gcp20/prototype/gcp20_device.gyp:gcp20_device',
-            '../cloud_print/gcp20/prototype/gcp20_device.gyp:gcp20_device_unittests',
-            '../cloud_print/service/service.gyp:cloud_print_service',
-            '../cloud_print/service/service.gyp:cloud_print_service_config',
-            '../cloud_print/service/service.gyp:cloud_print_service_setup',
-            '../cloud_print/virtual_driver/win/install/virtual_driver_install.gyp:virtual_driver_setup',
-            '../cloud_print/virtual_driver/win/virtual_driver.gyp:gcp_portmon',
-            '../components/test_runner/test_runner.gyp:layout_test_helper',
-            '../content/content_shell_and_tests.gyp:content_shell_crash_service',
-            '../gpu/gpu.gyp:angle_end2end_tests',
-            '../gpu/gpu.gyp:angle_perftests',
-            '../net/net.gyp:net_docs',
-            '../ppapi/ppapi_internal.gyp:ppapi_perftests',
-            '../remoting/app_remoting_test.gyp:ar_sample_test_driver',
-            '../remoting/remoting.gyp:remoting_breakpad_tester',
-            '../remoting/remoting.gyp:remoting_console',
-            '../remoting/remoting.gyp:remoting_desktop',
-            '../rlz/rlz.gyp:rlz',
-            '../tools/win/static_initializers/static_initializers.gyp:static_initializers',
-          ],
-        }],
-        ['OS=="win" and win_use_allocator_shim==1', {
-          'dependencies': [
-            '../base/allocator/allocator.gyp:allocator_unittests',
-          ]
-        }],
-        ['OS=="win" and target_arch=="ia32"', {
-          'dependencies': [
-            # TODO(GYP): All of these targets need to be ported over.
-            '../base/base.gyp:base_win64',
-            '../base/base.gyp:base_i18n_nacl_win64',
-            '../chrome/chrome.gyp:crash_service_win64',
-            '../chrome/chrome.gyp:launcher_support64',
-            '../components/components.gyp:breakpad_win64',
-            '../courgette/courgette.gyp:courgette64',
-            '../crypto/crypto.gyp:crypto_nacl_win64',
-            '../ipc/ipc.gyp:ipc_win64',
-            '../sandbox/sandbox.gyp:sandbox_win64',
-            '../cloud_print/virtual_driver/win/virtual_driver64.gyp:gcp_portmon64',
-            '../cloud_print/virtual_driver/win/virtual_driver64.gyp:virtual_driver_lib64',
-          ],
-        }],
-        ['OS=="win" and target_arch=="ia32" and configuration_policy==1', {
-          'dependencies': [
-            # TODO(GYP): All of these targets need to be ported over.
-            '../components/components.gyp:policy_win64',
-          ]
-        }],
-      ],
-    },
-  ]
-}
-
diff --git a/build/grit_action.gypi b/build/grit_action.gypi
deleted file mode 100644
index b24f0f8..0000000
--- a/build/grit_action.gypi
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# This file is meant to be included into an action to invoke grit in a
-# consistent manner. To use this the following variables need to be
-# defined:
-#   grit_grd_file: string: grd file path
-#   grit_out_dir: string: the output directory path
-
-# It would be really nice to do this with a rule instead of actions, but it
-# would need to determine inputs and outputs via grit_info on a per-file
-# basis. GYP rules don't currently support that. They could be extended to
-# do this, but then every generator would need to be updated to handle this.
-
-{
-  'variables': {
-    'grit_cmd': ['python', '<(DEPTH)/tools/grit/grit.py'],
-    'grit_resource_ids%': '<(DEPTH)/tools/gritsettings/resource_ids',
-    # This makes it possible to add more defines in specific targets,
-    # instead of build/common.gypi .
-    'grit_additional_defines%': [],
-    'grit_rc_header_format%': [],
-    'grit_whitelist%': '',
-
-    'conditions': [
-      # These scripts can skip writing generated files if they are identical
-      # to the already existing files, which avoids further build steps, like
-      # recompilation. However, a dependency (earlier build step) having a
-      # newer timestamp than an output (later build step) confuses some build
-      # systems, so only use this on ninja, which explicitly supports this use
-      # case (gyp turns all actions into ninja restat rules).
-      ['"<(GENERATOR)"=="ninja"', {
-        'write_only_new': '1',
-      }, {
-        'write_only_new': '0',
-      }],
-    ],
-  },
-  'conditions': [
-    ['"<(grit_whitelist)"==""', {
-      'variables': {
-        'grit_whitelist_flag': [],
-      }
-    }, {
-      'variables': {
-        'grit_whitelist_flag': ['-w', '<(grit_whitelist)'],
-      }
-    }]
-  ],
-  'inputs': [
-    '<!@pymod_do_main(grit_info <@(grit_defines) <@(grit_additional_defines) '
-        '<@(grit_whitelist_flag) --inputs <(grit_grd_file) '
-        '-f "<(grit_resource_ids)")',
-  ],
-  'outputs': [
-    '<!@pymod_do_main(grit_info <@(grit_defines) <@(grit_additional_defines) '
-        '<@(grit_whitelist_flag) --outputs \'<(grit_out_dir)\' '
-        '<(grit_grd_file) -f "<(grit_resource_ids)")',
-  ],
-  'action': ['<@(grit_cmd)',
-             '-i', '<(grit_grd_file)', 'build',
-             '-f', '<(grit_resource_ids)',
-             '-o', '<(grit_out_dir)',
-             '--write-only-new=<(write_only_new)',
-             '<@(grit_defines)',
-             '<@(grit_whitelist_flag)',
-             '<@(grit_additional_defines)',
-             '<@(grit_rc_header_format)'],
-  'message': 'Generating resources from <(grit_grd_file)',
-}
diff --git a/build/grit_target.gypi b/build/grit_target.gypi
deleted file mode 100644
index 179f986..0000000
--- a/build/grit_target.gypi
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# This file is meant to be included into a target that will have one or more
-# uses of grit_action.gypi. To use this the following variables need to be
-# defined:
-#   grit_out_dir: string: the output directory path
-
-# DO NOT USE THIS FILE. Instead, use qualified includes.
-# TODO: Convert everything to qualified includes, and delete this file,
-# http://crbug.com/401588
-{
-  'conditions': [
-    # If the target is a direct binary, it needs to be able to find the header,
-    # otherwise it probably a supporting target just for grit so the include
-    # dir needs to be set on anything that depends on this action.
-    ['_type=="executable" or _type=="shared_library" or \
-      _type=="loadable_module" or _type=="static_library"', {
-      'include_dirs': [
-        '<(grit_out_dir)',
-      ],
-    }, {
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '<(grit_out_dir)',
-        ],
-      },
-    }],
-  ],
-}
diff --git a/build/host_jar.gypi b/build/host_jar.gypi
deleted file mode 100644
index 9c35177..0000000
--- a/build/host_jar.gypi
+++ /dev/null
@@ -1,131 +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.
-
-# This file is meant to be included into a target to provide a rule to build
-# a JAR file for use on a host in a consistent manner. If a main class is
-# specified, this file will also generate an executable to run the jar in the
-# output folder's /bin/ directory.
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'my_jar',
-#   'type': 'none',
-#   'variables': {
-#     'src_paths': [
-#       'path/to/directory',
-#       'path/to/other/directory',
-#       'path/to/individual_file.java',
-#       ...
-#     ],
-#   },
-#   'includes': [ 'path/to/this/gypi/file' ],
-# }
-#
-# Required variables:
-#   src_paths - A list of all paths containing java files that should be
-#     included in the jar. Paths can be either directories or files.
-# Optional/automatic variables:
-#   excluded_src_paths - A list of all paths that should be excluded from
-#     the jar.
-#   generated_src_dirs - Directories containing additional .java files
-#     generated at build time.
-#   input_jars_paths - A list of paths to the jars that should be included
-#     in the classpath.
-#   main_class - The class containing the main() function that should be called
-#     when running the jar file.
-#   jar_excluded_classes - A list of .class files that should be excluded
-#     from the jar.
-
-{
-  'dependencies': [
-    '<(DEPTH)/build/android/setup.gyp:build_output_dirs',
-  ],
-  'variables': {
-    'classes_dir': '<(intermediate_dir)/classes',
-    'excluded_src_paths': [],
-    'generated_src_dirs': [],
-    'input_jars_paths': [],
-    'intermediate_dir': '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)',
-    'jar_dir': '<(PRODUCT_DIR)/lib.java',
-    'jar_excluded_classes': [],
-    'jar_name': '<(_target_name).jar',
-    'jar_path': '<(jar_dir)/<(jar_name)',
-    'main_class%': '',
-    'stamp': '<(intermediate_dir)/jar.stamp',
-  },
-  'all_dependent_settings': {
-    'variables': {
-      'input_jars_paths': ['<(jar_path)']
-    },
-  },
-  'actions': [
-    {
-      'action_name': 'javac_<(_target_name)',
-      'message': 'Compiling <(_target_name) java sources',
-      'variables': {
-        'extra_options': [],
-        'java_sources': [ '<!@(find <@(src_paths) -name "*.java")' ],
-        'conditions': [
-          ['"<(excluded_src_paths)" != ""', {
-            'java_sources!': ['<!@(find <@(excluded_src_paths) -name "*.java")']
-          }],
-          ['"<(jar_excluded_classes)" != ""', {
-            'extra_options': ['--jar-excluded-classes=<(jar_excluded_classes)']
-          }],
-          ['main_class != ""', {
-            'extra_options': ['--main-class=>(main_class)']
-          }]
-        ],
-      },
-      'inputs': [
-        '<(DEPTH)/build/android/gyp/util/build_utils.py',
-        '<(DEPTH)/build/android/gyp/javac.py',
-        '^@(java_sources)',
-        '>@(input_jars_paths)',
-      ],
-      'outputs': [
-        '<(jar_path)',
-        '<(stamp)',
-      ],
-      'action': [
-        'python', '<(DEPTH)/build/android/gyp/javac.py',
-        '--classpath=>(input_jars_paths)',
-        '--src-gendirs=>(generated_src_dirs)',
-        '--chromium-code=<(chromium_code)',
-        '--stamp=<(stamp)',
-        '--jar-path=<(jar_path)',
-        '<@(extra_options)',
-        '^@(java_sources)',
-      ],
-    },
-  ],
-  'conditions': [
-    ['main_class != ""', {
-      'actions': [
-        {
-          'action_name': 'create_java_binary_script_<(_target_name)',
-          'message': 'Creating java binary script <(_target_name)',
-          'variables': {
-            'output': '<(PRODUCT_DIR)/bin/<(_target_name)',
-          },
-          'inputs': [
-            '<(DEPTH)/build/android/gyp/create_java_binary_script.py',
-            '<(jar_path)',
-          ],
-          'outputs': [
-            '<(output)',
-          ],
-          'action': [
-            'python', '<(DEPTH)/build/android/gyp/create_java_binary_script.py',
-            '--classpath=>(input_jars_paths)',
-            '--jar-path=<(jar_path)',
-            '--output=<(output)',
-            '--main-class=>(main_class)',
-          ]
-        }
-      ]
-    }]
-  ]
-}
-
diff --git a/build/host_prebuilt_jar.gypi b/build/host_prebuilt_jar.gypi
deleted file mode 100644
index feed5ca..0000000
--- a/build/host_prebuilt_jar.gypi
+++ /dev/null
@@ -1,50 +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.
-
-# This file is meant to be included into a target to provide a rule to
-# copy a prebuilt JAR for use on a host to the output directory.
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'my_prebuilt_jar',
-#   'type': 'none',
-#   'variables': {
-#     'jar_path': 'path/to/prebuilt.jar',
-#   },
-#   'includes': [ 'path/to/this/gypi/file' ],
-# }
-#
-# Required variables:
-#   jar_path - The path to the prebuilt jar.
-
-{
-  'dependencies': [
-  ],
-  'variables': {
-    'dest_path': '<(PRODUCT_DIR)/lib.java/<(_target_name).jar',
-    'src_path': '<(jar_path)',
-  },
-  'all_dependent_settings': {
-    'variables': {
-      'input_jars_paths': [
-        '<(dest_path)',
-      ]
-    },
-  },
-  'actions': [
-    {
-      'action_name': 'copy_prebuilt_jar',
-      'message': 'Copy <(src_path) to <(dest_path)',
-      'inputs': [
-        '<(src_path)',
-      ],
-      'outputs': [
-        '<(dest_path)',
-      ],
-      'action': [
-        'python', '<(DEPTH)/build/cp.py', '<(src_path)', '<(dest_path)',
-      ],
-    }
-  ]
-}
diff --git a/build/internal/release_defaults.gypi b/build/internal/release_defaults.gypi
deleted file mode 100644
index 1bf674a..0000000
--- a/build/internal/release_defaults.gypi
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-{
-  'msvs_settings': {
-    'VCCLCompilerTool': {
-      'StringPooling': 'true',
-    },
-    'VCLinkerTool': {
-      # No incremental linking.
-      'LinkIncremental': '1',
-      # Eliminate Unreferenced Data (/OPT:REF).
-      'OptimizeReferences': '2',
-      # Folding on (/OPT:ICF).
-      'EnableCOMDATFolding': '2',
-    },
-  },
-}
diff --git a/build/internal/release_impl.gypi b/build/internal/release_impl.gypi
deleted file mode 100644
index 5ac0e09..0000000
--- a/build/internal/release_impl.gypi
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-{
-  'includes': ['release_defaults.gypi'],
-  'msvs_settings': {
-    'VCCLCompilerTool': {
-      'OmitFramePointers': 'false',
-      # The above is not sufficient (http://crbug.com/106711): it
-      # simply eliminates an explicit "/Oy", but both /O2 and /Ox
-      # perform FPO regardless, so we must explicitly disable.
-      # We still want the false setting above to avoid having
-      # "/Oy /Oy-" and warnings about overriding.
-      'AdditionalOptions': ['/Oy-'],
-    },
-  },
-}
diff --git a/build/internal/release_impl_official.gypi b/build/internal/release_impl_official.gypi
deleted file mode 100644
index d0729a9..0000000
--- a/build/internal/release_impl_official.gypi
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-{
-  'includes': ['release_defaults.gypi'],
-  'defines': ['OFFICIAL_BUILD'],
-  'msvs_settings': {
-    'VCCLCompilerTool': {
-      'InlineFunctionExpansion': '2',
-      'EnableIntrinsicFunctions': 'true',
-      'EnableFiberSafeOptimizations': 'true',
-      'OmitFramePointers': 'false',
-      # The above is not sufficient (http://crbug.com/106711): it
-      # simply eliminates an explicit "/Oy", but both /O2 and /Ox
-      # perform FPO regardless, so we must explicitly disable.
-      # We still want the false setting above to avoid having
-      # "/Oy /Oy-" and warnings about overriding.
-      'AdditionalOptions': ['/Oy-'],
-    },
-    'VCLibrarianTool': {
-      'AdditionalOptions': [
-        '/ltcg',
-        '/expectedoutputsize:120000000'
-      ],
-    },
-    'VCLinkerTool': {
-      'AdditionalOptions': [
-        '/time',
-        # This may reduce memory fragmentation during linking.
-        # The expected size is 40*1024*1024, which gives us about 10M of
-        # headroom as of Dec 16, 2011.
-        '/expectedoutputsize:41943040',
-      ],
-      # The /PROFILE flag causes the linker to add a "FIXUP" debug stream to
-      # the generated PDB. According to MSDN documentation, this flag is only
-      # available (or perhaps supported) in the Enterprise (team development)
-      # version of Visual Studio. If this blocks your official build, simply
-      # comment out this line, then  re-run "gclient runhooks".
-      'Profile': 'true',
-    },
-  },
-}
diff --git a/build/ios/coverage.gypi b/build/ios/coverage.gypi
deleted file mode 100644
index e822089..0000000
--- a/build/ios/coverage.gypi
+++ /dev/null
@@ -1,32 +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.
-
-{
-  'variables': {
-    'enable_coverage%': 0,
-  },
-  'conditions': [
-    ['enable_coverage', {
-        'target_defaults': {
-          'defines': [
-            'ENABLE_TEST_CODE_COVERAGE=1'
-          ],
-          'link_settings': {
-            'xcode_settings': {
-              'OTHER_LDFLAGS': [
-                '-fprofile-arcs',
-              ],
-            },
-          },
-          'xcode_settings': {
-            'OTHER_CFLAGS': [
-              '-fprofile-arcs',
-              '-ftest-coverage',
-            ],
-          },
-        },
-    }],
-  ],
-}
-
diff --git a/build/ios/mac_build.gypi b/build/ios/mac_build.gypi
deleted file mode 100644
index 4da21eb..0000000
--- a/build/ios/mac_build.gypi
+++ /dev/null
@@ -1,83 +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.
-
-# Xcode throws an error if an iOS target depends on a Mac OS X target. So
-# any place a utility program needs to be build and run, an action is
-# used to run ninja as script to work around this.
-# Example:
-# {
-#   'target_name': 'foo',
-#   'type': 'none',
-#   'variables': {
-#     # The name of a directory used for ninja. This cannot be shared with
-#     # another mac build.
-#     'ninja_output_dir': 'ninja-foo',
-#     # The full path to the location in which the ninja executable should be
-#     # placed. This cannot be shared with another mac build.
-#    'ninja_product_dir':
-#      '<(DEPTH)/xcodebuild/<(ninja_output_dir)/<(CONFIGURATION_NAME)',
-#     # The list of all the gyp files that contain the targets to run.
-#     're_run_targets': [
-#       'foo.gyp',
-#     ],
-#   },
-#   'includes': ['path_to/mac_build.gypi'],
-#   'actions': [
-#     {
-#       'action_name': 'compile foo',
-#       'inputs': [],
-#       'outputs': [],
-#       'action': [
-#         '<@(ninja_cmd)',
-#         # All the targets to build.
-#         'foo1',
-#         'foo2',
-#       ],
-#     },
-#   ],
-# }
-{
-  'variables': {
-    'variables': {
-     'parent_generator%': '<(GENERATOR)',
-    },
-    'parent_generator%': '<(parent_generator)',
-    # Common ninja command line flags.
-    'ninja_cmd': [
-      # Bounce through clean_env to clean up the environment so things
-      # set by the iOS build don't pollute the Mac build.
-      '<(DEPTH)/build/ios/clean_env.py',
-      # ninja must be found in the PATH.
-      'ADD_TO_PATH=<!(echo $PATH)',
-      'ninja',
-      '-C',
-      '<(ninja_product_dir)',
-    ],
-
-    # Common syntax to rerun gyp to generate the Mac projects.
-    're_run_gyp': [
-      'build/gyp_chromium',
-      '--depth=.',
-      # Don't use anything set for the iOS side of things.
-      '--ignore-environment',
-      # Generate for ninja
-      '--format=ninja',
-      # Generate files into xcodebuild/ninja
-      '-Goutput_dir=xcodebuild/<(ninja_output_dir)',
-      # nacl isn't in the iOS checkout, make sure it's turned off
-      '-Ddisable_nacl=1',
-      # Pass through the Mac SDK version.
-      '-Dmac_sdk=<(mac_sdk)',
-      '-Dparent_generator=<(parent_generator)'
-    ],
-
-    # Rerun gyp for each of the projects needed. This is what actually
-    # generates the projects on disk.
-    're_run_gyp_execution':
-      '<!(cd <(DEPTH) && <@(re_run_gyp) <@(re_run_targets))',
-  },
-  # Since these are used to generate things needed by other targets, make
-  # them hard dependencies so they are always built first.
-  'hard_dependency': 1,
-}
diff --git a/build/isolate.gypi b/build/isolate.gypi
deleted file mode 100644
index 69af5b0..0000000
--- a/build/isolate.gypi
+++ /dev/null
@@ -1,125 +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 meant to be included into a target to provide a rule
-# to "build" .isolate files into a .isolated file.
-#
-# To use this, create a gyp target with the following form:
-# 'conditions': [
-#   ['test_isolation_mode != "noop"', {
-#     'targets': [
-#       {
-#         'target_name': 'foo_test_run',
-#         'type': 'none',
-#         'dependencies': [
-#           'foo_test',
-#         ],
-#         'includes': [
-#           '../build/isolate.gypi',
-#         ],
-#         'sources': [
-#           'foo_test.isolate',
-#         ],
-#       },
-#     ],
-#   }],
-# ],
-#
-# Note: foo_test.isolate is included and a source file. It is an inherent
-# property of the .isolate format. This permits to define GYP variables but is
-# a stricter format than GYP so isolate.py can read it.
-#
-# The generated .isolated file will be:
-#   <(PRODUCT_DIR)/foo_test.isolated
-#
-# See http://dev.chromium.org/developers/testing/isolated-testing/for-swes
-# for more information.
-
-{
-  'includes': [
-    '../build/util/version.gypi',
-  ],
-  'rules': [
-    {
-      'rule_name': 'isolate',
-      'extension': 'isolate',
-      'inputs': [
-        # Files that are known to be involved in this step.
-        '<(DEPTH)/tools/isolate_driver.py',
-        '<(DEPTH)/tools/swarming_client/isolate.py',
-        '<(DEPTH)/tools/swarming_client/run_isolated.py',
-      ],
-      'outputs': [],
-      'action': [
-        'python',
-        '<(DEPTH)/tools/isolate_driver.py',
-        '<(test_isolation_mode)',
-        '--isolated', '<(PRODUCT_DIR)/<(RULE_INPUT_ROOT).isolated',
-        '--isolate', '<(RULE_INPUT_PATH)',
-
-        # Variables should use the -V FOO=<(FOO) form so frequent values,
-        # like '0' or '1', aren't stripped out by GYP. Run 'isolate.py help' for
-        # more details.
-
-        # Path variables are used to replace file paths when loading a .isolate
-        # file
-        '--path-variable', 'DEPTH', '<(DEPTH)',
-        '--path-variable', 'PRODUCT_DIR', '<(PRODUCT_DIR) ',
-
-        # Extra variables are replaced on the 'command' entry and on paths in
-        # the .isolate file but are not considered relative paths.
-        '--extra-variable', 'version_full=<(version_full)',
-
-        # Note: This list must match DefaultConfigVariables()
-        # in build/android/pylib/utils/isolator.py
-        '--config-variable', 'CONFIGURATION_NAME=<(CONFIGURATION_NAME)',
-        '--config-variable', 'OS=<(OS)',
-        '--config-variable', 'asan=<(asan)',
-        '--config-variable', 'branding=<(branding)',
-        '--config-variable', 'chromeos=<(chromeos)',
-        '--config-variable', 'component=<(component)',
-        '--config-variable', 'disable_nacl=<(disable_nacl)',
-        '--config-variable', 'enable_pepper_cdms=<(enable_pepper_cdms)',
-        '--config-variable', 'enable_plugins=<(enable_plugins)',
-        '--config-variable', 'fastbuild=<(fastbuild)',
-        '--config-variable', 'icu_use_data_file_flag=<(icu_use_data_file_flag)',
-        # TODO(kbr): move this to chrome_tests.gypi:gles2_conform_tests_run
-        # once support for user-defined config variables is added.
-        '--config-variable',
-          'internal_gles2_conform_tests=<(internal_gles2_conform_tests)',
-        '--config-variable', 'kasko=<(kasko)',
-        '--config-variable', 'libpeer_target_type=<(libpeer_target_type)',
-        '--config-variable', 'lsan=<(lsan)',
-        '--config-variable', 'msan=<(msan)',
-        '--config-variable', 'target_arch=<(target_arch)',
-        '--config-variable', 'tsan=<(tsan)',
-        '--config-variable', 'use_custom_libcxx=<(use_custom_libcxx)',
-        '--config-variable', 'use_instrumented_libraries=<(use_instrumented_libraries)',
-        '--config-variable',
-        'use_prebuilt_instrumented_libraries=<(use_prebuilt_instrumented_libraries)',
-        '--config-variable', 'use_openssl=<(use_openssl)',
-        '--config-variable', 'use_ozone=<(use_ozone)',
-        '--config-variable', 'use_x11=<(use_x11)',
-        '--config-variable', 'v8_use_external_startup_data=<(v8_use_external_startup_data)',
-      ],
-      'conditions': [
-        # Note: When gyp merges lists, it appends them to the old value.
-        ['OS=="mac"', {
-          'action': [
-            '--extra-variable', 'mac_product_name=<(mac_product_name)',
-          ],
-        }],
-        ["test_isolation_mode == 'prepare'", {
-          'outputs': [
-            '<(PRODUCT_DIR)/<(RULE_INPUT_ROOT).isolated.gen.json',
-          ],
-        }, {
-          'outputs': [
-            '<(PRODUCT_DIR)/<(RULE_INPUT_ROOT).isolated',
-          ],
-        }],
-      ],
-    },
-  ],
-}
diff --git a/build/jar_file_jni_generator.gypi b/build/jar_file_jni_generator.gypi
deleted file mode 100644
index 3d95b28..0000000
--- a/build/jar_file_jni_generator.gypi
+++ /dev/null
@@ -1,67 +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 meant to be included into a target to provide a rule
-# to generate jni bindings for system Java-files in a consistent manner.
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'android_jar_jni_headers',
-#   'type': 'none',
-#   'variables': {
-#     'jni_gen_package': 'chrome',
-#     'input_java_class': 'java/io/InputStream.class',
-#   },
-#   'includes': [ '../build/jar_file_jni_generator.gypi' ],
-# },
-#
-# Optional variables:
-#  input_jar_file - The input jar file, if omitted, android_sdk_jar will be used.
-
-{
-  'variables': {
-    'jni_generator': '<(DEPTH)/base/android/jni_generator/jni_generator.py',
-    # A comma separated string of include files.
-    'jni_generator_includes%': (
-        'base/android/jni_generator/jni_generator_helper.h'
-    ),
-    'native_exports%': '--native_exports_optional',
-  },
-  'actions': [
-    {
-      'action_name': 'generate_jni_headers_from_jar_file',
-      'inputs': [
-        '<(jni_generator)',
-        '<(input_jar_file)',
-        '<(android_sdk_jar)',
-      ],
-      'variables': {
-        'java_class_name': '<!(basename <(input_java_class)|sed "s/\.class//")',
-        'input_jar_file%': '<(android_sdk_jar)'
-      },
-      'outputs': [
-        '<(SHARED_INTERMEDIATE_DIR)/<(jni_gen_package)/jni/<(java_class_name)_jni.h',
-      ],
-      'action': [
-        '<(jni_generator)',
-        '-j',
-        '<(input_jar_file)',
-        '--input_file',
-        '<(input_java_class)',
-        '--output_dir',
-        '<(SHARED_INTERMEDIATE_DIR)/<(jni_gen_package)/jni',
-        '--includes',
-        '<(jni_generator_includes)',
-        '--optimize_generation',
-        '<(optimize_jni_generation)',
-        '<(native_exports)',
-      ],
-      'message': 'Generating JNI bindings from  <(input_jar_file)/<(input_java_class)',
-      'process_outputs_as_sources': 1,
-    },
-  ],
-  # This target exports a hard dependency because it generates header
-  # files.
-  'hard_dependency': 1,
-}
diff --git a/build/java.gypi b/build/java.gypi
deleted file mode 100644
index cee70e5..0000000
--- a/build/java.gypi
+++ /dev/null
@@ -1,347 +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 meant to be included into a target to provide a rule
-# to build Java in a consistent manner.
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'my-package_java',
-#   'type': 'none',
-#   'variables': {
-#     'java_in_dir': 'path/to/package/root',
-#   },
-#   'includes': ['path/to/this/gypi/file'],
-# }
-#
-# Required variables:
-#  java_in_dir - The top-level java directory. The src should be in
-#    <java_in_dir>/src.
-# Optional/automatic variables:
-#  add_to_dependents_classpaths - Set to 0 if the resulting jar file should not
-#    be added to its dependents' classpaths.
-#  additional_input_paths - These paths will be included in the 'inputs' list to
-#    ensure that this target is rebuilt when one of these paths changes.
-#  additional_src_dirs - Additional directories with .java files to be compiled
-#    and included in the output of this target.
-#  generated_src_dirs - Same as additional_src_dirs except used for .java files
-#    that are generated at build time. This should be set automatically by a
-#    target's dependencies. The .java files in these directories are not
-#    included in the 'inputs' list (unlike additional_src_dirs).
-#  input_jars_paths - The path to jars to be included in the classpath. This
-#    should be filled automatically by depending on the appropriate targets.
-#  javac_includes - A list of specific files to include. This is by default
-#    empty, which leads to inclusion of all files specified. May include
-#    wildcard, and supports '**/' for recursive path wildcards, ie.:
-#    '**/MyFileRegardlessOfDirectory.java', '**/IncludedPrefix*.java'.
-#  has_java_resources - Set to 1 if the java target contains an
-#    Android-compatible resources folder named res.  If 1, R_package and
-#    R_package_relpath must also be set.
-#  R_package - The java package in which the R class (which maps resources to
-#    integer IDs) should be generated, e.g. org.chromium.content.
-#  R_package_relpath - Same as R_package, but replace each '.' with '/'.
-#  res_extra_dirs - A list of extra directories containing Android resources.
-#    These directories may be generated at build time.
-#  res_extra_files - A list of the files in res_extra_dirs.
-#  never_lint - Set to 1 to not run lint on this target.
-
-{
-  'dependencies': [
-    '<(DEPTH)/build/android/setup.gyp:build_output_dirs'
-  ],
-  'variables': {
-    'add_to_dependents_classpaths%': 1,
-    'android_jar': '<(android_sdk)/android.jar',
-    'input_jars_paths': [ '<(android_jar)' ],
-    'additional_src_dirs': [],
-    'javac_includes': [],
-    'jar_name': '<(_target_name).jar',
-    'jar_dir': '<(PRODUCT_DIR)/lib.java',
-    'jar_path': '<(intermediate_dir)/<(jar_name)',
-    'jar_final_path': '<(jar_dir)/<(jar_name)',
-    'jar_excluded_classes': [ '*/R.class', '*/R##*.class' ],
-    'instr_stamp': '<(intermediate_dir)/instr.stamp',
-    'additional_input_paths': [],
-    'dex_path': '<(PRODUCT_DIR)/lib.java/<(_target_name).dex.jar',
-    'generated_src_dirs': ['>@(generated_R_dirs)'],
-    'generated_R_dirs': [],
-    'has_java_resources%': 0,
-    'res_extra_dirs': [],
-    'res_extra_files': [],
-    'res_v14_skip%': 0,
-    'resource_input_paths': ['>@(res_extra_files)'],
-    'intermediate_dir': '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)',
-    'compile_stamp': '<(intermediate_dir)/compile.stamp',
-    'lint_stamp': '<(intermediate_dir)/lint.stamp',
-    'lint_result': '<(intermediate_dir)/lint_result.xml',
-    'lint_config': '<(intermediate_dir)/lint_config.xml',
-    'never_lint%': 0,
-    'findbugs_stamp': '<(intermediate_dir)/findbugs.stamp',
-    'run_findbugs%': 0,
-    'proguard_config%': '',
-    'proguard_preprocess%': '0',
-    'variables': {
-      'variables': {
-        'proguard_preprocess%': 0,
-        'emma_never_instrument%': 0,
-      },
-      'conditions': [
-        ['proguard_preprocess == 1', {
-          'javac_jar_path': '<(intermediate_dir)/<(_target_name).pre.jar'
-        }, {
-          'javac_jar_path': '<(jar_path)'
-        }],
-        ['chromium_code != 0 and emma_coverage != 0 and emma_never_instrument == 0', {
-          'emma_instrument': 1,
-        }, {
-          'emma_instrument': 0,
-        }],
-      ],
-    },
-    'emma_instrument': '<(emma_instrument)',
-    'javac_jar_path': '<(javac_jar_path)',
-  },
-  'conditions': [
-    ['add_to_dependents_classpaths == 1', {
-      # This all_dependent_settings is used for java targets only. This will add the
-      # jar path to the classpath of dependent java targets.
-      'all_dependent_settings': {
-        'variables': {
-          'input_jars_paths': ['<(jar_final_path)'],
-          'library_dexed_jars_paths': ['<(dex_path)'],
-        },
-      },
-    }],
-    ['has_java_resources == 1', {
-      'variables': {
-        'resource_dir': '<(java_in_dir)/res',
-        'res_input_dirs': ['<(resource_dir)', '<@(res_extra_dirs)'],
-        'resource_input_paths': ['<!@(find <(resource_dir) -type f)'],
-
-        'R_dir': '<(intermediate_dir)/java_R',
-        'R_text_file': '<(R_dir)/R.txt',
-
-        'generated_src_dirs': ['<(R_dir)'],
-        'additional_input_paths': ['<(resource_zip_path)', ],
-
-        'dependencies_res_zip_paths': [],
-        'resource_zip_path': '<(PRODUCT_DIR)/res.java/<(_target_name).zip',
-      },
-      'all_dependent_settings': {
-        'variables': {
-          # Dependent libraries include this target's R.java file via
-          # generated_R_dirs.
-          'generated_R_dirs': ['<(R_dir)'],
-
-          # Dependent libraries and apks include this target's resources via
-          # dependencies_res_zip_paths.
-          'additional_input_paths': ['<(resource_zip_path)'],
-          'dependencies_res_zip_paths': ['<(resource_zip_path)'],
-
-          # additional_res_packages and additional_R_text_files are used to
-          # create this packages R.java files when building the APK.
-          'additional_res_packages': ['<(R_package)'],
-          'additional_R_text_files': ['<(R_text_file)'],
-        },
-      },
-      'actions': [
-        # Generate R.java and crunch image resources.
-        {
-          'action_name': 'process_resources',
-          'message': 'processing resources for <(_target_name)',
-          'variables': {
-            'android_manifest': '<(DEPTH)/build/android/AndroidManifest.xml',
-            # Write the inputs list to a file, so that its mtime is updated when
-            # the list of inputs changes.
-            'inputs_list_file': '>|(java_resources.<(_target_name).gypcmd >@(resource_input_paths))',
-            'process_resources_options': [],
-            'conditions': [
-              ['res_v14_skip == 1', {
-                'process_resources_options': ['--v14-skip']
-              }],
-            ],
-          },
-          'inputs': [
-            '<(DEPTH)/build/android/gyp/util/build_utils.py',
-            '<(DEPTH)/build/android/gyp/process_resources.py',
-            '<(DEPTH)/build/android/gyp/generate_v14_compatible_resources.py',
-            '>@(resource_input_paths)',
-            '>@(dependencies_res_zip_paths)',
-            '>(inputs_list_file)',
-          ],
-          'outputs': [
-            '<(resource_zip_path)',
-          ],
-          'action': [
-            'python', '<(DEPTH)/build/android/gyp/process_resources.py',
-            '--android-sdk', '<(android_sdk)',
-            '--aapt-path', '<(android_aapt_path)',
-            '--non-constant-id',
-
-            '--android-manifest', '<(android_manifest)',
-            '--custom-package', '<(R_package)',
-
-            '--dependencies-res-zips', '>(dependencies_res_zip_paths)',
-            '--resource-dirs', '<(res_input_dirs)',
-
-            '--R-dir', '<(R_dir)',
-            '--resource-zip-out', '<(resource_zip_path)',
-
-            '<@(process_resources_options)',
-          ],
-        },
-      ],
-    }],
-    ['proguard_preprocess == 1', {
-      'actions': [
-        {
-          'action_name': 'proguard_<(_target_name)',
-          'message': 'Proguard preprocessing <(_target_name) jar',
-          'inputs': [
-            '<(android_sdk_root)/tools/proguard/lib/proguard.jar',
-            '<(DEPTH)/build/android/gyp/util/build_utils.py',
-            '<(DEPTH)/build/android/gyp/proguard.py',
-            '<(javac_jar_path)',
-            '<(proguard_config)',
-          ],
-          'outputs': [
-            '<(jar_path)',
-          ],
-          'action': [
-            'python', '<(DEPTH)/build/android/gyp/proguard.py',
-            '--proguard-path=<(android_sdk_root)/tools/proguard/lib/proguard.jar',
-            '--input-path=<(javac_jar_path)',
-            '--output-path=<(jar_path)',
-            '--proguard-config=<(proguard_config)',
-            '--classpath=<(android_sdk_jar) >(input_jars_paths)',
-          ]
-        },
-      ],
-    }],
-    ['run_findbugs == 1', {
-      'actions': [
-        {
-          'action_name': 'findbugs_<(_target_name)',
-          'message': 'Running findbugs on <(_target_name)',
-          'inputs': [
-            '<(DEPTH)/build/android/findbugs_diff.py',
-            '<(DEPTH)/build/android/findbugs_filter/findbugs_exclude.xml',
-            '<(DEPTH)/build/android/pylib/utils/findbugs.py',
-            '>@(input_jars_paths)',
-            '<(jar_final_path)',
-            '<(compile_stamp)',
-          ],
-          'outputs': [
-            '<(findbugs_stamp)',
-          ],
-          'action': [
-            'python', '<(DEPTH)/build/android/findbugs_diff.py',
-            '--auxclasspath-gyp', '>(input_jars_paths)',
-            '--stamp', '<(findbugs_stamp)',
-            '<(jar_final_path)',
-          ],
-        },
-      ],
-    }],
-  ],
-  'actions': [
-    {
-      'action_name': 'javac_<(_target_name)',
-      'message': 'Compiling <(_target_name) java sources',
-      'variables': {
-        'java_sources': ['>!@(find >(java_in_dir)/src >(additional_src_dirs) -name "*.java")'],
-      },
-      'inputs': [
-        '<(DEPTH)/build/android/gyp/util/build_utils.py',
-        '<(DEPTH)/build/android/gyp/javac.py',
-        '>@(java_sources)',
-        '>@(input_jars_paths)',
-        '>@(additional_input_paths)',
-      ],
-      'outputs': [
-        '<(compile_stamp)',
-        '<(javac_jar_path)',
-      ],
-      'action': [
-        'python', '<(DEPTH)/build/android/gyp/javac.py',
-        '--classpath=>(input_jars_paths)',
-        '--src-gendirs=>(generated_src_dirs)',
-        '--javac-includes=<(javac_includes)',
-        '--chromium-code=<(chromium_code)',
-        '--jar-path=<(javac_jar_path)',
-        '--jar-excluded-classes=<(jar_excluded_classes)',
-        '--stamp=<(compile_stamp)',
-        '>@(java_sources)',
-      ]
-    },
-    {
-      'action_name': 'instr_jar_<(_target_name)',
-      'message': 'Instrumenting <(_target_name) jar',
-      'variables': {
-        'input_path': '<(jar_path)',
-        'output_path': '<(jar_final_path)',
-        'stamp_path': '<(instr_stamp)',
-        'instr_type': 'jar',
-      },
-      'outputs': [
-        '<(jar_final_path)',
-      ],
-      'inputs': [
-        '<(jar_path)',
-      ],
-      'includes': [ 'android/instr_action.gypi' ],
-    },
-    {
-      'variables': {
-        'src_dirs': [
-          '<(java_in_dir)/src',
-          '>@(additional_src_dirs)',
-        ],
-        'stamp_path': '<(lint_stamp)',
-        'result_path': '<(lint_result)',
-        'config_path': '<(lint_config)',
-        'lint_jar_path': '<(jar_final_path)',
-      },
-      'inputs': [
-        '<(jar_final_path)',
-        '<(compile_stamp)',
-      ],
-      'outputs': [
-        '<(lint_stamp)',
-      ],
-      'includes': [ 'android/lint_action.gypi' ],
-    },
-    {
-      'action_name': 'jar_toc_<(_target_name)',
-      'message': 'Creating <(_target_name) jar.TOC',
-      'inputs': [
-        '<(DEPTH)/build/android/gyp/util/build_utils.py',
-        '<(DEPTH)/build/android/gyp/util/md5_check.py',
-        '<(DEPTH)/build/android/gyp/jar_toc.py',
-        '<(jar_final_path)',
-      ],
-      'outputs': [
-        '<(jar_final_path).TOC',
-      ],
-      'action': [
-        'python', '<(DEPTH)/build/android/gyp/jar_toc.py',
-        '--jar-path=<(jar_final_path)',
-        '--toc-path=<(jar_final_path).TOC',
-      ]
-    },
-    {
-      'action_name': 'dex_<(_target_name)',
-      'variables': {
-        'conditions': [
-          ['emma_instrument != 0', {
-            'dex_no_locals': 1,
-          }],
-        ],
-        'dex_input_paths': [ '<(jar_final_path)' ],
-        'output_path': '<(dex_path)',
-      },
-      'includes': [ 'android/dex_action.gypi' ],
-    },
-  ],
-}
diff --git a/build/java_aidl.gypi b/build/java_aidl.gypi
deleted file mode 100644
index dda2894..0000000
--- a/build/java_aidl.gypi
+++ /dev/null
@@ -1,79 +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 meant to be included into a target to provide a rule
-# to build Java aidl files in a consistent manner.
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'aidl_aidl-file-name',
-#   'type': 'none',
-#   'variables': {
-#     'aidl_interface_file': '<interface-path>/<interface-file>.aidl',
-#     'aidl_import_include': '<(DEPTH)/<path-to-src-dir>',
-#   },
-#   'sources': {
-#     '<input-path1>/<input-file1>.aidl',
-#     '<input-path2>/<input-file2>.aidl',
-#     ...
-#   },
-#   'includes': ['<path-to-this-file>/java_aidl.gypi'],
-# }
-#
-#
-# The generated java files will be:
-#   <(PRODUCT_DIR)/lib.java/<input-file1>.java
-#   <(PRODUCT_DIR)/lib.java/<input-file2>.java
-#   ...
-#
-# Optional variables:
-#  aidl_import_include - This should be an absolute path to your java src folder
-#    that contains the classes that are imported by your aidl files.
-#
-# TODO(cjhopman): dependents need to rebuild when this target's inputs have changed.
-
-{
-  'variables': {
-    'aidl_path%': '<(android_sdk_tools)/aidl',
-    'intermediate_dir': '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/aidl',
-    'aidl_import_include%': '',
-    'additional_aidl_arguments': [],
-    'additional_aidl_input_paths': [],
-  },
-  'direct_dependent_settings': {
-    'variables': {
-      'generated_src_dirs': ['<(intermediate_dir)/'],
-    },
-  },
-  'conditions': [
-    ['aidl_import_include != ""', {
-      'variables': {
-        'additional_aidl_arguments': [ '-I<(aidl_import_include)' ],
-        'additional_aidl_input_paths': [ '<!@(find <(aidl_import_include) -name "*.java" | sort)' ],
-      }
-    }],
-  ],
-  'rules': [
-    {
-      'rule_name': 'compile_aidl',
-      'extension': 'aidl',
-      'inputs': [
-        '<(android_sdk)/framework.aidl',
-        '<(aidl_interface_file)',
-        '<@(additional_aidl_input_paths)',
-      ],
-      'outputs': [
-        '<(intermediate_dir)/<(RULE_INPUT_ROOT).java',
-      ],
-      'action': [
-        '<(aidl_path)',
-        '-p<(android_sdk)/framework.aidl',
-        '-p<(aidl_interface_file)',
-        '<@(additional_aidl_arguments)',
-        '<(RULE_INPUT_PATH)',
-        '<(intermediate_dir)/<(RULE_INPUT_ROOT).java',
-      ],
-    },
-  ],
-}
diff --git a/build/java_apk.gypi b/build/java_apk.gypi
deleted file mode 100644
index 976c90e..0000000
--- a/build/java_apk.gypi
+++ /dev/null
@@ -1,1028 +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 meant to be included into a target to provide a rule
-# to build Android APKs in a consistent manner.
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'my_package_apk',
-#   'type': 'none',
-#   'variables': {
-#     'apk_name': 'MyPackage',
-#     'java_in_dir': 'path/to/package/root',
-#     'resource_dir': 'path/to/package/root/res',
-#   },
-#   'includes': ['path/to/this/gypi/file'],
-# }
-#
-# Required variables:
-#  apk_name - The final apk will be named <apk_name>.apk
-#  java_in_dir - The top-level java directory. The src should be in
-#    <(java_in_dir)/src.
-# Optional/automatic variables:
-#  additional_input_paths - These paths will be included in the 'inputs' list to
-#    ensure that this target is rebuilt when one of these paths changes.
-#  additional_res_packages - Package names of R.java files generated in addition
-#    to the default package name defined in AndroidManifest.xml.
-#  additional_src_dirs - Additional directories with .java files to be compiled
-#    and included in the output of this target.
-#  additional_bundled_libs - Additional libraries what will be stripped and
-#    bundled in the apk.
-#  asset_location - The directory where assets are located.
-#  create_density_splits - Whether to create density-based apk splits. Splits
-#    are supported only for minSdkVersion >= 21.
-#  generated_src_dirs - Same as additional_src_dirs except used for .java files
-#    that are generated at build time. This should be set automatically by a
-#    target's dependencies. The .java files in these directories are not
-#    included in the 'inputs' list (unlike additional_src_dirs).
-#  input_jars_paths - The path to jars to be included in the classpath. This
-#    should be filled automatically by depending on the appropriate targets.
-#  is_test_apk - Set to 1 if building a test apk.  This prevents resources from
-#    dependencies from being re-included.
-#  native_lib_target - The target_name of the target which generates the final
-#    shared library to be included in this apk. A stripped copy of the
-#    library will be included in the apk.
-#  resource_dir - The directory for resources.
-#  shared_resources - Make a resource package that can be loaded by a different
-#    application at runtime to access the package's resources.
-#  R_package - A custom Java package to generate the resource file R.java in.
-#    By default, the package given in AndroidManifest.xml will be used.
-#  include_all_resources - Set to 1 to include all resource IDs in all generated
-#    R.java files.
-#  use_chromium_linker - Enable the content dynamic linker that allows sharing the
-#    RELRO section of the native libraries between the different processes.
-#  load_library_from_zip - When using the dynamic linker, load the library
-#    directly out of the zip file.
-#  use_relocation_packer - Enable relocation packing. Relies on the chromium
-#    linker, so use_chromium_linker must also be enabled.
-#  enable_chromium_linker_tests - Enable the content dynamic linker test support
-#    code. This allows a test APK to inject a Linker.TestRunner instance at
-#    runtime. Should only be used by the chromium_linker_test_apk target!!
-#  never_lint - Set to 1 to not run lint on this target.
-#  java_in_dir_suffix - To override the /src suffix on java_in_dir.
-#  app_manifest_version_name - set the apps 'human readable' version number.
-#  app_manifest_version_code - set the apps version number.
-{
-  'variables': {
-    'tested_apk_obfuscated_jar_path%': '/',
-    'tested_apk_dex_path%': '/',
-    'additional_input_paths': [],
-    'create_density_splits%': 0,
-    'input_jars_paths': [],
-    'library_dexed_jars_paths': [],
-    'additional_src_dirs': [],
-    'generated_src_dirs': [],
-    'app_manifest_version_name%': '<(android_app_version_name)',
-    'app_manifest_version_code%': '<(android_app_version_code)',
-    # aapt generates this proguard.txt.
-    'generated_proguard_file': '<(intermediate_dir)/proguard.txt',
-    'proguard_enabled%': 'false',
-    'proguard_flags_paths': ['<(generated_proguard_file)'],
-    'jar_name': 'chromium_apk_<(_target_name).jar',
-    'resource_dir%':'<(DEPTH)/build/android/ant/empty/res',
-    'R_package%':'',
-    'include_all_resources%': 0,
-    'additional_R_text_files': [],
-    'dependencies_res_zip_paths': [],
-    'additional_res_packages': [],
-    'additional_bundled_libs%': [],
-    'is_test_apk%': 0,
-    'extensions_to_not_compress%': '',
-    'resource_input_paths': [],
-    'intermediate_dir': '<(PRODUCT_DIR)/<(_target_name)',
-    'asset_location%': '<(intermediate_dir)/assets',
-    'codegen_stamp': '<(intermediate_dir)/codegen.stamp',
-    'package_input_paths': [],
-    'ordered_libraries_file': '<(intermediate_dir)/native_libraries.json',
-    'additional_ordered_libraries_file': '<(intermediate_dir)/additional_native_libraries.json',
-    'native_libraries_template': '<(DEPTH)/base/android/java/templates/NativeLibraries.template',
-    'native_libraries_java_dir': '<(intermediate_dir)/native_libraries_java/',
-    'native_libraries_java_file': '<(native_libraries_java_dir)/NativeLibraries.java',
-    'native_libraries_java_stamp': '<(intermediate_dir)/native_libraries_java.stamp',
-    'native_libraries_template_data_dir': '<(intermediate_dir)/native_libraries/',
-    'native_libraries_template_data_file': '<(native_libraries_template_data_dir)/native_libraries_array.h',
-    'native_libraries_template_version_file': '<(native_libraries_template_data_dir)/native_libraries_version.h',
-    'compile_stamp': '<(intermediate_dir)/compile.stamp',
-    'lint_stamp': '<(intermediate_dir)/lint.stamp',
-    'lint_result': '<(intermediate_dir)/lint_result.xml',
-    'lint_config': '<(intermediate_dir)/lint_config.xml',
-    'never_lint%': 0,
-    'findbugs_stamp': '<(intermediate_dir)/findbugs.stamp',
-    'run_findbugs%': 0,
-    'java_in_dir_suffix%': '/src',
-    'instr_stamp': '<(intermediate_dir)/instr.stamp',
-    'jar_stamp': '<(intermediate_dir)/jar.stamp',
-    'obfuscate_stamp': '<(intermediate_dir)/obfuscate.stamp',
-    'pack_arm_relocations_stamp': '<(intermediate_dir)/pack_arm_relocations.stamp',
-    'strip_stamp': '<(intermediate_dir)/strip.stamp',
-    'stripped_libraries_dir': '<(intermediate_dir)/stripped_libraries',
-    'strip_additional_stamp': '<(intermediate_dir)/strip_additional.stamp',
-    'version_stamp': '<(intermediate_dir)/version.stamp',
-    'javac_includes': [],
-    'jar_excluded_classes': [],
-    'javac_jar_path': '<(intermediate_dir)/<(_target_name).javac.jar',
-    'jar_path': '<(PRODUCT_DIR)/lib.java/<(jar_name)',
-    'obfuscated_jar_path': '<(intermediate_dir)/obfuscated.jar',
-    'test_jar_path': '<(PRODUCT_DIR)/test.lib.java/<(apk_name).jar',
-    'dex_path': '<(intermediate_dir)/classes.dex',
-    'emma_device_jar': '<(android_sdk_root)/tools/lib/emma_device.jar',
-    'android_manifest_path%': '<(java_in_dir)/AndroidManifest.xml',
-    'split_android_manifest_path': '<(intermediate_dir)/split-manifests/<(android_app_abi)/AndroidManifest.xml',
-    'push_stamp': '<(intermediate_dir)/push.stamp',
-    'link_stamp': '<(intermediate_dir)/link.stamp',
-    'resource_zip_path': '<(intermediate_dir)/<(_target_name).resources.zip',
-    'shared_resources%': 0,
-    'final_apk_path%': '<(PRODUCT_DIR)/apks/<(apk_name).apk',
-    'final_apk_path_no_extension%': '<(PRODUCT_DIR)/apks/<(apk_name)',
-    'final_abi_split_apk_path%': '<(PRODUCT_DIR)/apks/<(apk_name)-abi-<(android_app_abi).apk',
-    'incomplete_apk_path': '<(intermediate_dir)/<(apk_name)-incomplete.apk',
-    'apk_install_record': '<(intermediate_dir)/apk_install.record.stamp',
-    'device_intermediate_dir': '/data/data/org.chromium.gyp_managed_install/<(_target_name)/<(CONFIGURATION_NAME)',
-    'symlink_script_host_path': '<(intermediate_dir)/create_symlinks.sh',
-    'symlink_script_device_path': '<(device_intermediate_dir)/create_symlinks.sh',
-    'create_standalone_apk%': 1,
-    'res_v14_skip%': 0,
-    'variables': {
-      'variables': {
-        'native_lib_target%': '',
-        'native_lib_version_name%': '',
-        'use_chromium_linker%' : 0,
-        'use_relocation_packer%' : 0,
-        'enable_chromium_linker_tests%': 0,
-        'is_test_apk%': 0,
-        'unsigned_apk_path': '<(intermediate_dir)/<(apk_name)-unsigned.apk',
-        'unsigned_abi_split_apk_path': '<(intermediate_dir)/<(apk_name)-abi-<(android_app_abi)-unsigned.apk',
-        'create_abi_split%': 0,
-      },
-      'unsigned_apk_path': '<(unsigned_apk_path)',
-      'unsigned_abi_split_apk_path': '<(unsigned_abi_split_apk_path)',
-      'create_abi_split%': '<(create_abi_split)',
-      'conditions': [
-        ['gyp_managed_install == 1 and native_lib_target != ""', {
-          'conditions': [
-            ['create_abi_split == 0', {
-              'unsigned_standalone_apk_path': '<(intermediate_dir)/<(apk_name)-standalone-unsigned.apk',
-            }, {
-              'unsigned_standalone_apk_path': '<(intermediate_dir)/<(apk_name)-abi-<(android_app_abi)-standalone-unsigned.apk',
-            }],
-          ],
-        }, {
-          'unsigned_standalone_apk_path': '<(unsigned_apk_path)',
-        }],
-        ['gyp_managed_install == 1', {
-          'apk_package_native_libs_dir': '<(intermediate_dir)/libs.managed',
-        }, {
-          'apk_package_native_libs_dir': '<(intermediate_dir)/libs',
-        }],
-        ['is_test_apk == 0 and emma_coverage != 0', {
-          'emma_instrument%': 1,
-        },{
-          'emma_instrument%': 0,
-        }],
-        # When using abi splits, the abi split is modified by
-        # gyp_managed_install rather than the main .apk
-        ['create_abi_split == 1', {
-          'managed_input_apk_path': '<(unsigned_abi_split_apk_path)',
-        }, {
-          'managed_input_apk_path': '<(unsigned_apk_path)',
-        }],
-      ],
-    },
-    'native_lib_target%': '',
-    'native_lib_version_name%': '',
-    'use_chromium_linker%' : 0,
-    'load_library_from_zip%' : 0,
-    'use_relocation_packer%' : 0,
-    'enable_chromium_linker_tests%': 0,
-    'emma_instrument%': '<(emma_instrument)',
-    'apk_package_native_libs_dir': '<(apk_package_native_libs_dir)',
-    'unsigned_standalone_apk_path': '<(unsigned_standalone_apk_path)',
-    'unsigned_apk_path': '<(unsigned_apk_path)',
-    'unsigned_abi_split_apk_path': '<(unsigned_abi_split_apk_path)',
-    'create_abi_split%': '<(create_abi_split)',
-    'managed_input_apk_path': '<(managed_input_apk_path)',
-    'libchromium_android_linker': 'libchromium_android_linker.>(android_product_extension)',
-    'extra_native_libs': [],
-    'native_lib_placeholder_stamp': '<(apk_package_native_libs_dir)/<(android_app_abi)/native_lib_placeholder.stamp',
-    'native_lib_placeholders': [],
-    'main_apk_name': '<(apk_name)',
-  },
-  # Pass the jar path to the apk's "fake" jar target.  This would be better as
-  # direct_dependent_settings, but a variable set by a direct_dependent_settings
-  # cannot be lifted in a dependent to all_dependent_settings.
-  'all_dependent_settings': {
-    'conditions': [
-      ['proguard_enabled == "true"', {
-        'variables': {
-          'proguard_enabled': 'true',
-        }
-      }],
-    ],
-    'variables': {
-      'apk_output_jar_path': '<(jar_path)',
-      'tested_apk_obfuscated_jar_path': '<(obfuscated_jar_path)',
-      'tested_apk_dex_path': '<(dex_path)',
-    },
-  },
-  'conditions': [
-    ['resource_dir!=""', {
-      'variables': {
-        'resource_input_paths': [ '<!@(find <(resource_dir) -name "*")' ]
-      },
-    }],
-    ['R_package != ""', {
-      'variables': {
-        # We generate R.java in package R_package (in addition to the package
-        # listed in the AndroidManifest.xml, which is unavoidable).
-        'additional_res_packages': ['<(R_package)'],
-        'additional_R_text_files': ['<(intermediate_dir)/R.txt'],
-      },
-    }],
-    ['native_lib_target != "" and component == "shared_library"', {
-      'dependencies': [
-        '<(DEPTH)/build/android/setup.gyp:copy_system_libraries',
-      ],
-    }],
-    ['use_chromium_linker == 1', {
-      'dependencies': [
-        '<(DEPTH)/base/base.gyp:chromium_android_linker',
-      ],
-    }],
-    ['native_lib_target != ""', {
-      'variables': {
-        'conditions': [
-          ['use_chromium_linker == 1', {
-            'variables': {
-              'chromium_linker_path': [
-                '<(SHARED_LIB_DIR)/<(libchromium_android_linker)',
-              ],
-            }
-          }, {
-            'variables': {
-              'chromium_linker_path': [],
-            },
-          }],
-        ],
-        'generated_src_dirs': [ '<(native_libraries_java_dir)' ],
-        'native_libs_paths': [
-          '<(SHARED_LIB_DIR)/<(native_lib_target).>(android_product_extension)',
-          '<@(chromium_linker_path)'
-        ],
-        'package_input_paths': [
-          '<(apk_package_native_libs_dir)/<(android_app_abi)/gdbserver',
-        ],
-      },
-      'copies': [
-        {
-          # gdbserver is always copied into the APK's native libs dir. The ant
-          # build scripts (apkbuilder task) will only include it in a debug
-          # build.
-          'destination': '<(apk_package_native_libs_dir)/<(android_app_abi)',
-          'files': [
-            '<(android_gdbserver)',
-          ],
-        },
-      ],
-      'actions': [
-        {
-          'variables': {
-            'input_libraries': [
-              '<@(native_libs_paths)',
-              '<@(extra_native_libs)',
-            ],
-          },
-          'includes': ['../build/android/write_ordered_libraries.gypi'],
-        },
-        {
-          'action_name': 'native_libraries_<(_target_name)',
-          'variables': {
-            'conditions': [
-              ['use_chromium_linker == 1', {
-                'variables': {
-                  'linker_gcc_preprocess_defines': [
-                    '--defines', 'ENABLE_CHROMIUM_LINKER',
-                  ],
-                }
-              }, {
-                'variables': {
-                  'linker_gcc_preprocess_defines': [],
-                },
-              }],
-              ['load_library_from_zip == 1', {
-                'variables': {
-                  'linker_load_from_zip_file_preprocess_defines': [
-                    '--defines', 'ENABLE_CHROMIUM_LINKER_LIBRARY_IN_ZIP_FILE',
-                  ],
-                }
-              }, {
-                'variables': {
-                  'linker_load_from_zip_file_preprocess_defines': [],
-                },
-              }],
-              ['enable_chromium_linker_tests == 1', {
-                'variables': {
-                  'linker_tests_gcc_preprocess_defines': [
-                    '--defines', 'ENABLE_CHROMIUM_LINKER_TESTS',
-                  ],
-                }
-              }, {
-                'variables': {
-                  'linker_tests_gcc_preprocess_defines': [],
-                },
-              }],
-            ],
-            'gcc_preprocess_defines': [
-              '<@(linker_load_from_zip_file_preprocess_defines)',
-              '<@(linker_gcc_preprocess_defines)',
-              '<@(linker_tests_gcc_preprocess_defines)',
-            ],
-          },
-          'message': 'Creating NativeLibraries.java for <(_target_name)',
-          'inputs': [
-            '<(DEPTH)/build/android/gyp/util/build_utils.py',
-            '<(DEPTH)/build/android/gyp/gcc_preprocess.py',
-            '<(ordered_libraries_file)',
-            '<(native_libraries_template)',
-          ],
-          'outputs': [
-            '<(native_libraries_java_stamp)',
-          ],
-          'action': [
-            'python', '<(DEPTH)/build/android/gyp/gcc_preprocess.py',
-            '--include-path=',
-            '--output=<(native_libraries_java_file)',
-            '--template=<(native_libraries_template)',
-            '--stamp=<(native_libraries_java_stamp)',
-            '--defines', 'NATIVE_LIBRARIES_LIST=@FileArg(<(ordered_libraries_file):java_libraries_list)',
-            '--defines', 'NATIVE_LIBRARIES_VERSION_NUMBER="<(native_lib_version_name)"',
-            '<@(gcc_preprocess_defines)',
-          ],
-        },
-        {
-          'action_name': 'strip_native_libraries',
-          'variables': {
-            'ordered_libraries_file%': '<(ordered_libraries_file)',
-            'stripped_libraries_dir%': '<(stripped_libraries_dir)',
-            'input_paths': [
-              '<@(native_libs_paths)',
-              '<@(extra_native_libs)',
-            ],
-            'stamp': '<(strip_stamp)'
-          },
-          'includes': ['../build/android/strip_native_libraries.gypi'],
-        },
-        {
-          'action_name': 'insert_chromium_version',
-          'variables': {
-            'ordered_libraries_file%': '<(ordered_libraries_file)',
-            'stripped_libraries_dir%': '<(stripped_libraries_dir)',
-            'version_string': '<(native_lib_version_name)',
-            'input_paths': [
-              '<(strip_stamp)',
-            ],
-            'stamp': '<(version_stamp)'
-          },
-          'includes': ['../build/android/insert_chromium_version.gypi'],
-        },
-        {
-          'action_name': 'pack_arm_relocations',
-          'variables': {
-            'conditions': [
-              ['use_chromium_linker == 1 and use_relocation_packer == 1 and profiling != 1', {
-                'enable_packing': 1,
-              }, {
-                'enable_packing': 0,
-              }],
-            ],
-            'exclude_packing_list': [
-              '<(libchromium_android_linker)',
-            ],
-            'ordered_libraries_file%': '<(ordered_libraries_file)',
-            'stripped_libraries_dir%': '<(stripped_libraries_dir)',
-            'packed_libraries_dir': '<(libraries_source_dir)',
-            'input_paths': [
-              '<(version_stamp)'
-            ],
-            'stamp': '<(pack_arm_relocations_stamp)',
-          },
-          'includes': ['../build/android/pack_arm_relocations.gypi'],
-        },
-        {
-          'variables': {
-            'input_libraries': [
-              '<@(additional_bundled_libs)',
-            ],
-            'ordered_libraries_file': '<(additional_ordered_libraries_file)',
-            'subtarget': '_additional_libraries',
-          },
-          'includes': ['../build/android/write_ordered_libraries.gypi'],
-        },
-        {
-          'action_name': 'strip_additional_libraries',
-          'variables': {
-            'ordered_libraries_file': '<(additional_ordered_libraries_file)',
-            'stripped_libraries_dir': '<(libraries_source_dir)',
-            'input_paths': [
-              '<@(additional_bundled_libs)',
-              '<(strip_stamp)',
-            ],
-            'stamp': '<(strip_additional_stamp)'
-          },
-          'includes': ['../build/android/strip_native_libraries.gypi'],
-        },
-        {
-          'action_name': 'Create native lib placeholder files for previous releases',
-          'variables': {
-            'placeholders': ['<@(native_lib_placeholders)'],
-            'conditions': [
-              ['gyp_managed_install == 1', {
-                # This "library" just needs to be put in the .apk. It is not loaded
-                # at runtime.
-                'placeholders': ['libfix.crbug.384638.so'],
-              }]
-            ],
-          },
-          'inputs': [
-            '<(DEPTH)/build/android/gyp/create_placeholder_files.py',
-          ],
-          'outputs': [
-            '<(native_lib_placeholder_stamp)',
-          ],
-          'action': [
-            'python', '<(DEPTH)/build/android/gyp/create_placeholder_files.py',
-            '--dest-lib-dir=<(apk_package_native_libs_dir)/<(android_app_abi)/',
-            '--stamp=<(native_lib_placeholder_stamp)',
-            '<@(placeholders)',
-          ],
-        },
-      ],
-      'conditions': [
-        ['gyp_managed_install == 1', {
-          'variables': {
-            'libraries_top_dir': '<(intermediate_dir)/lib.stripped',
-            'libraries_source_dir': '<(libraries_top_dir)/lib/<(android_app_abi)',
-            'device_library_dir': '<(device_intermediate_dir)/lib.stripped',
-            'configuration_name': '<(CONFIGURATION_NAME)',
-          },
-          'dependencies': [
-            '<(DEPTH)/build/android/setup.gyp:get_build_device_configurations',
-            '<(DEPTH)/build/android/pylib/device/commands/commands.gyp:chromium_commands',
-          ],
-          'actions': [
-            {
-              'includes': ['../build/android/push_libraries.gypi'],
-            },
-            {
-              'action_name': 'create device library symlinks',
-              'message': 'Creating links on device for <(_target_name)',
-              'inputs': [
-                '<(DEPTH)/build/android/gyp/util/build_utils.py',
-                '<(DEPTH)/build/android/gyp/create_device_library_links.py',
-                '<(apk_install_record)',
-                '<(build_device_config_path)',
-                '<(ordered_libraries_file)',
-              ],
-              'outputs': [
-                '<(link_stamp)'
-              ],
-              'action': [
-                'python', '<(DEPTH)/build/android/gyp/create_device_library_links.py',
-                '--build-device-configuration=<(build_device_config_path)',
-                '--libraries=@FileArg(<(ordered_libraries_file):libraries)',
-                '--script-host-path=<(symlink_script_host_path)',
-                '--script-device-path=<(symlink_script_device_path)',
-                '--target-dir=<(device_library_dir)',
-                '--apk=<(incomplete_apk_path)',
-                '--stamp=<(link_stamp)',
-                '--configuration-name=<(CONFIGURATION_NAME)',
-              ],
-            },
-          ],
-          'conditions': [
-            ['create_standalone_apk == 1', {
-              'actions': [
-                {
-                  'action_name': 'create standalone APK',
-                  'variables': {
-                    'inputs': [
-                      '<(ordered_libraries_file)',
-                      '<(strip_additional_stamp)',
-                      '<(pack_arm_relocations_stamp)',
-                    ],
-                    'output_apk_path': '<(unsigned_standalone_apk_path)',
-                    'libraries_top_dir%': '<(libraries_top_dir)',
-                    'input_apk_path': '<(managed_input_apk_path)',
-                  },
-                  'includes': [ 'android/create_standalone_apk_action.gypi' ],
-                },
-              ],
-            }],
-          ],
-        }, {
-          # gyp_managed_install != 1
-          'variables': {
-            'libraries_source_dir': '<(apk_package_native_libs_dir)/<(android_app_abi)',
-            'package_input_paths': [
-              '<(strip_additional_stamp)',
-              '<(pack_arm_relocations_stamp)',
-            ],
-          },
-        }],
-      ],
-    }], # native_lib_target != ''
-    ['gyp_managed_install == 0 or create_standalone_apk == 1 or create_abi_split == 1', {
-      'dependencies': [
-        '<(DEPTH)/build/android/rezip.gyp:rezip_apk_jar',
-      ],
-    }],
-    ['create_abi_split == 1 or gyp_managed_install == 0 or create_standalone_apk == 1', {
-      'actions': [
-        {
-          'action_name': 'finalize_base',
-          'variables': {
-            'output_apk_path': '<(final_apk_path)',
-            'conditions': [
-              ['create_abi_split == 0', {
-                'input_apk_path': '<(unsigned_standalone_apk_path)',
-              }, {
-                'input_apk_path': '<(unsigned_apk_path)',
-                'load_library_from_zip': 0,
-              }]
-            ],
-          },
-          'includes': [ 'android/finalize_apk_action.gypi']
-        },
-      ],
-    }],
-    ['create_abi_split == 1', {
-      'actions': [
-        {
-          'action_name': 'generate_split_manifest_<(_target_name)',
-          'inputs': [
-            '<(DEPTH)/build/android/gyp/util/build_utils.py',
-            '<(DEPTH)/build/android/gyp/generate_split_manifest.py',
-            '<(android_manifest_path)',
-          ],
-          'outputs': [
-            '<(split_android_manifest_path)',
-          ],
-          'action': [
-            'python', '<(DEPTH)/build/android/gyp/generate_split_manifest.py',
-            '--main-manifest', '<(android_manifest_path)',
-            '--out-manifest', '<(split_android_manifest_path)',
-            '--split', 'abi_<(android_app_abi)',
-          ],
-        },
-        {
-          'variables': {
-            'apk_name': '<(main_apk_name)-abi-<(android_app_abi)',
-            'asset_location': '',
-            'android_manifest_path': '<(split_android_manifest_path)',
-            'create_density_splits': 0,
-          },
-          'includes': [ 'android/package_resources_action.gypi' ],
-        },
-        {
-          'variables': {
-            'apk_name': '<(main_apk_name)-abi-<(android_app_abi)',
-            'apk_path': '<(unsigned_abi_split_apk_path)',
-            'has_code': 0,
-            'native_libs_dir': '<(apk_package_native_libs_dir)',
-            'extra_inputs': ['<(native_lib_placeholder_stamp)'],
-          },
-          'includes': ['android/apkbuilder_action.gypi'],
-        },
-      ],
-    }],
-    ['create_abi_split == 1 and (gyp_managed_install == 0 or create_standalone_apk == 1)', {
-      'actions': [
-        {
-          'action_name': 'finalize_split',
-          'variables': {
-            'output_apk_path': '<(final_abi_split_apk_path)',
-            'conditions': [
-              ['gyp_managed_install == 1', {
-                'input_apk_path': '<(unsigned_standalone_apk_path)',
-              }, {
-                'input_apk_path': '<(unsigned_abi_split_apk_path)',
-              }],
-            ],
-          },
-          'includes': [ 'android/finalize_apk_action.gypi']
-        },
-      ],
-    }],
-    ['gyp_managed_install == 1', {
-      'actions': [
-        {
-          'action_name': 'finalize incomplete apk',
-          'variables': {
-            'load_library_from_zip': 0,
-            'input_apk_path': '<(managed_input_apk_path)',
-            'output_apk_path': '<(incomplete_apk_path)',
-          },
-          'includes': [ 'android/finalize_apk_action.gypi']
-        },
-        {
-          'action_name': 'apk_install_<(_target_name)',
-          'message': 'Installing <(apk_name).apk',
-          'inputs': [
-            '<(DEPTH)/build/android/gyp/util/build_utils.py',
-            '<(DEPTH)/build/android/gyp/apk_install.py',
-            '<(build_device_config_path)',
-            '<(incomplete_apk_path)',
-          ],
-          'outputs': [
-            '<(apk_install_record)',
-          ],
-          'action': [
-            'python', '<(DEPTH)/build/android/gyp/apk_install.py',
-            '--build-device-configuration=<(build_device_config_path)',
-            '--install-record=<(apk_install_record)',
-            '--configuration-name=<(CONFIGURATION_NAME)',
-            '--android-sdk-tools', '<(android_sdk_tools)',
-          ],
-          'conditions': [
-            ['create_abi_split == 1', {
-              'inputs': [
-                '<(final_apk_path)',
-              ],
-              'action': [
-                '--apk-path=<(final_apk_path)',
-                '--split-apk-path=<(incomplete_apk_path)',
-              ],
-            }, {
-              'action': [
-                '--apk-path=<(incomplete_apk_path)',
-              ],
-            }],
-            ['create_density_splits == 1', {
-              'inputs': [
-                '<(final_apk_path_no_extension)-density-hdpi.apk',
-                '<(final_apk_path_no_extension)-density-xhdpi.apk',
-                '<(final_apk_path_no_extension)-density-xxhdpi.apk',
-                '<(final_apk_path_no_extension)-density-tvdpi.apk',
-              ],
-              'action': [
-                '--split-apk-path=<(final_apk_path_no_extension)-density-hdpi.apk',
-                '--split-apk-path=<(final_apk_path_no_extension)-density-xhdpi.apk',
-                '--split-apk-path=<(final_apk_path_no_extension)-density-xxhdpi.apk',
-                '--split-apk-path=<(final_apk_path_no_extension)-density-tvdpi.apk',
-              ],
-            }],
-          ],
-        },
-      ],
-    }],
-    ['create_density_splits == 1', {
-      'actions': [
-        {
-          'action_name': 'finalize_density_splits',
-          'variables': {
-            'density_splits': 1,
-          },
-          'includes': [ 'android/finalize_splits_action.gypi']
-        },
-      ],
-    }],
-    ['is_test_apk == 1', {
-      'dependencies': [
-        '<(DEPTH)/build/android/pylib/device/commands/commands.gyp:chromium_commands',
-        '<(DEPTH)/tools/android/android_tools.gyp:android_tools',
-      ]
-    }],
-    ['run_findbugs == 1', {
-      'actions': [
-        {
-          'action_name': 'findbugs_<(_target_name)',
-          'message': 'Running findbugs on <(_target_name)',
-          'inputs': [
-            '<(DEPTH)/build/android/findbugs_diff.py',
-            '<(DEPTH)/build/android/findbugs_filter/findbugs_exclude.xml',
-            '<(DEPTH)/build/android/pylib/utils/findbugs.py',
-            '>@(input_jars_paths)',
-            '<(jar_path)',
-            '<(compile_stamp)',
-          ],
-          'outputs': [
-            '<(findbugs_stamp)',
-          ],
-          'action': [
-            'python', '<(DEPTH)/build/android/findbugs_diff.py',
-            '--auxclasspath-gyp', '>(input_jars_paths)',
-            '--stamp', '<(findbugs_stamp)',
-            '<(jar_path)',
-          ],
-        },
-      ],
-    },
-    ]
-  ],
-  'dependencies': [
-    '<(DEPTH)/tools/android/md5sum/md5sum.gyp:md5sum',
-  ],
-  'actions': [
-    {
-      'action_name': 'process_resources',
-      'message': 'processing resources for <(_target_name)',
-      'variables': {
-        # Write the inputs list to a file, so that its mtime is updated when
-        # the list of inputs changes.
-        'inputs_list_file': '>|(apk_codegen.<(_target_name).gypcmd >@(additional_input_paths) >@(resource_input_paths))',
-        'process_resources_options': [],
-        'conditions': [
-          ['is_test_apk == 1', {
-            'dependencies_res_zip_paths=': [],
-            'additional_res_packages=': [],
-          }],
-          ['res_v14_skip == 1', {
-            'process_resources_options+': ['--v14-skip']
-          }],
-          ['shared_resources == 1', {
-            'process_resources_options+': ['--shared-resources']
-          }],
-          ['R_package != ""', {
-            'process_resources_options+': ['--custom-package', '<(R_package)']
-          }],
-          ['include_all_resources == 1', {
-            'process_resources_options+': ['--include-all-resources']
-          }]
-        ],
-      },
-      'inputs': [
-        '<(DEPTH)/build/android/gyp/util/build_utils.py',
-        '<(DEPTH)/build/android/gyp/process_resources.py',
-        '<(android_manifest_path)',
-        '>@(additional_input_paths)',
-        '>@(resource_input_paths)',
-        '>@(dependencies_res_zip_paths)',
-        '>(inputs_list_file)',
-      ],
-      'outputs': [
-        '<(resource_zip_path)',
-        '<(generated_proguard_file)',
-        '<(codegen_stamp)',
-      ],
-      'action': [
-        'python', '<(DEPTH)/build/android/gyp/process_resources.py',
-        '--android-sdk', '<(android_sdk)',
-        '--aapt-path', '<(android_aapt_path)',
-
-        '--android-manifest', '<(android_manifest_path)',
-        '--dependencies-res-zips', '>(dependencies_res_zip_paths)',
-
-        '--extra-res-packages', '>(additional_res_packages)',
-        '--extra-r-text-files', '>(additional_R_text_files)',
-
-        '--proguard-file', '<(generated_proguard_file)',
-
-        '--resource-dirs', '<(resource_dir)',
-        '--resource-zip-out', '<(resource_zip_path)',
-
-        '--R-dir', '<(intermediate_dir)/gen',
-
-        '--stamp', '<(codegen_stamp)',
-
-        '<@(process_resources_options)',
-      ],
-    },
-    {
-      'action_name': 'javac_<(_target_name)',
-      'message': 'Compiling java for <(_target_name)',
-      'variables': {
-        'gen_src_dirs': [
-          '<(intermediate_dir)/gen',
-          '>@(generated_src_dirs)',
-        ],
-        # If there is a separate find for additional_src_dirs, it will find the
-        # wrong .java files when additional_src_dirs is empty.
-        # TODO(thakis): Gyp caches >! evaluation by command. Both java.gypi and
-        # java_apk.gypi evaluate the same command, and at the moment two targets
-        # set java_in_dir to "java". Add a dummy comment here to make sure
-        # that the two targets (one uses java.gypi, the other java_apk.gypi)
-        # get distinct source lists. Medium-term, make targets list all their
-        # Java files instead of using find. (As is, this will be broken if two
-        # targets use the same java_in_dir and both use java_apk.gypi or
-        # both use java.gypi.)
-        'java_sources': ['>!@(find >(java_in_dir)>(java_in_dir_suffix) >(additional_src_dirs) -name "*.java"  # apk)'],
-
-      },
-      'inputs': [
-        '<(DEPTH)/build/android/gyp/util/build_utils.py',
-        '<(DEPTH)/build/android/gyp/javac.py',
-        '>@(java_sources)',
-        '>@(input_jars_paths)',
-        '<(codegen_stamp)',
-      ],
-      'conditions': [
-        ['native_lib_target != ""', {
-          'inputs': [ '<(native_libraries_java_stamp)' ],
-        }],
-      ],
-      'outputs': [
-        '<(compile_stamp)',
-        '<(javac_jar_path)',
-      ],
-      'action': [
-        'python', '<(DEPTH)/build/android/gyp/javac.py',
-        '--classpath=>(input_jars_paths) <(android_sdk_jar)',
-        '--src-gendirs=>(gen_src_dirs)',
-        '--javac-includes=<(javac_includes)',
-        '--chromium-code=<(chromium_code)',
-        '--jar-path=<(javac_jar_path)',
-        '--jar-excluded-classes=<(jar_excluded_classes)',
-        '--stamp=<(compile_stamp)',
-        '>@(java_sources)',
-      ],
-    },
-    {
-      'action_name': 'instr_jar_<(_target_name)',
-      'message': 'Instrumenting <(_target_name) jar',
-      'variables': {
-        'input_path': '<(javac_jar_path)',
-        'output_path': '<(jar_path)',
-        'stamp_path': '<(instr_stamp)',
-        'instr_type': 'jar',
-      },
-      'outputs': [
-        '<(instr_stamp)',
-        '<(jar_path)',
-      ],
-      'inputs': [
-        '<(javac_jar_path)',
-      ],
-      'includes': [ 'android/instr_action.gypi' ],
-    },
-    {
-      'variables': {
-        'src_dirs': [
-          '<(java_in_dir)<(java_in_dir_suffix)',
-          '>@(additional_src_dirs)',
-        ],
-        'lint_jar_path': '<(jar_path)',
-        'stamp_path': '<(lint_stamp)',
-        'result_path': '<(lint_result)',
-        'config_path': '<(lint_config)',
-      },
-      'outputs': [
-        '<(lint_stamp)',
-      ],
-      'includes': [ 'android/lint_action.gypi' ],
-    },
-    {
-      'action_name': 'obfuscate_<(_target_name)',
-      'message': 'Obfuscating <(_target_name)',
-      'variables': {
-        'additional_obfuscate_options': [],
-        'additional_obfuscate_input_paths': [],
-        'proguard_out_dir': '<(intermediate_dir)/proguard',
-        'proguard_input_jar_paths': [
-          '>@(input_jars_paths)',
-          '<(jar_path)',
-        ],
-        'target_conditions': [
-          ['is_test_apk == 1', {
-            'additional_obfuscate_options': [
-              '--testapp',
-            ],
-          }],
-          ['is_test_apk == 1 and tested_apk_obfuscated_jar_path != "/"', {
-            'additional_obfuscate_options': [
-              '--tested-apk-obfuscated-jar-path', '>(tested_apk_obfuscated_jar_path)',
-            ],
-            'additional_obfuscate_input_paths': [
-              '>(tested_apk_obfuscated_jar_path).info',
-            ],
-          }],
-          ['proguard_enabled == "true"', {
-            'additional_obfuscate_options': [
-              '--proguard-enabled',
-            ],
-          }],
-        ],
-        'obfuscate_input_jars_paths': [
-          '>@(input_jars_paths)',
-          '<(jar_path)',
-        ],
-      },
-      'conditions': [
-        ['is_test_apk == 1', {
-          'outputs': [
-            '<(test_jar_path)',
-          ],
-        }],
-      ],
-      'inputs': [
-        '<(DEPTH)/build/android/gyp/apk_obfuscate.py',
-        '<(DEPTH)/build/android/gyp/util/build_utils.py',
-        '>@(proguard_flags_paths)',
-        '>@(obfuscate_input_jars_paths)',
-        '>@(additional_obfuscate_input_paths)',
-        '<(instr_stamp)',
-      ],
-      'outputs': [
-        '<(obfuscate_stamp)',
-
-        # In non-Release builds, these paths will all be empty files.
-        '<(obfuscated_jar_path)',
-        '<(obfuscated_jar_path).info',
-        '<(obfuscated_jar_path).dump',
-        '<(obfuscated_jar_path).seeds',
-        '<(obfuscated_jar_path).mapping',
-        '<(obfuscated_jar_path).usage',
-      ],
-      'action': [
-        'python', '<(DEPTH)/build/android/gyp/apk_obfuscate.py',
-
-        '--configuration-name', '<(CONFIGURATION_NAME)',
-
-        '--android-sdk', '<(android_sdk)',
-        '--android-sdk-tools', '<(android_sdk_tools)',
-        '--android-sdk-jar', '<(android_sdk_jar)',
-
-        '--input-jars-paths=>(proguard_input_jar_paths)',
-        '--proguard-configs=>(proguard_flags_paths)',
-
-        '--test-jar-path', '<(test_jar_path)',
-        '--obfuscated-jar-path', '<(obfuscated_jar_path)',
-
-        '--proguard-jar-path', '<(android_sdk_root)/tools/proguard/lib/proguard.jar',
-
-        '--stamp', '<(obfuscate_stamp)',
-
-        '>@(additional_obfuscate_options)',
-      ],
-    },
-    {
-      'action_name': 'dex_<(_target_name)',
-      'variables': {
-        'dex_input_paths': [
-          '>@(library_dexed_jars_paths)',
-          '<(jar_path)',
-        ],
-        'output_path': '<(dex_path)',
-        'proguard_enabled_input_path': '<(obfuscated_jar_path)',
-      },
-      'target_conditions': [
-        ['emma_instrument != 0', {
-          'variables': {
-            'dex_no_locals': 1,
-            'dex_input_paths': [
-              '<(emma_device_jar)'
-            ],
-          },
-        }],
-        ['is_test_apk == 1 and tested_apk_dex_path != "/"', {
-          'variables': {
-            'dex_additional_options': [
-              '--excluded-paths', '@FileArg(>(tested_apk_dex_path).inputs)'
-            ],
-          },
-          'inputs': [
-            '>(tested_apk_dex_path).inputs',
-          ],
-        }],
-        ['proguard_enabled == "true"', {
-          'inputs': [ '<(obfuscate_stamp)' ]
-        }, {
-          'inputs': [ '<(instr_stamp)' ]
-        }],
-      ],
-      'includes': [ 'android/dex_action.gypi' ],
-    },
-    {
-      'variables': {
-        'extra_inputs': ['<(codegen_stamp)'],
-        'resource_zips': [
-          '<(resource_zip_path)',
-        ],
-        'conditions': [
-          ['is_test_apk == 0', {
-            'resource_zips': [
-              '>@(dependencies_res_zip_paths)',
-            ],
-          }],
-        ],
-      },
-      'includes': [ 'android/package_resources_action.gypi' ],
-    },
-    {
-      'variables': {
-        'apk_path': '<(unsigned_apk_path)',
-        'conditions': [
-          ['native_lib_target != ""', {
-            'extra_inputs': ['<(native_lib_placeholder_stamp)'],
-          }],
-          ['create_abi_split == 0', {
-            'native_libs_dir': '<(apk_package_native_libs_dir)',
-          }, {
-            'native_libs_dir': '<(DEPTH)/build/android/ant/empty/res',
-          }],
-        ],
-      },
-      'includes': ['android/apkbuilder_action.gypi'],
-    },
-  ],
-}
diff --git a/build/java_prebuilt.gypi b/build/java_prebuilt.gypi
deleted file mode 100644
index 8efc4ef..0000000
--- a/build/java_prebuilt.gypi
+++ /dev/null
@@ -1,102 +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 meant to be included into a target to provide a rule
-# to package prebuilt Java JARs in a consistent manner.
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'my-package_java',
-#   'type': 'none',
-#   'variables': {
-#     'jar_path': 'path/to/your.jar',
-#   },
-#   'includes': ['path/to/this/gypi/file'],
-# }
-#
-# Required variables:
-#  jar_path - The path to the prebuilt Java JAR file.
-
-{
-  'dependencies': [
-    '<(DEPTH)/build/android/setup.gyp:build_output_dirs'
-  ],
-  'variables': {
-    'dex_path': '<(PRODUCT_DIR)/lib.java/<(_target_name).dex.jar',
-    'intermediate_dir': '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)',
-    'android_jar': '<(android_sdk)/android.jar',
-    'input_jars_paths': [ '<(android_jar)' ],
-    'neverlink%': 0,
-    'proguard_config%': '',
-    'proguard_preprocess%': '0',
-    'variables': {
-      'variables': {
-        'proguard_preprocess%': 0,
-      },
-      'conditions': [
-        ['proguard_preprocess == 1', {
-          'dex_input_jar_path': '<(intermediate_dir)/<(_target_name).pre.jar'
-        }, {
-          'dex_input_jar_path': '<(jar_path)'
-        }],
-      ],
-    },
-    'dex_input_jar_path': '<(dex_input_jar_path)',
-  },
-  'all_dependent_settings': {
-    'variables': {
-      'input_jars_paths': ['<(dex_input_jar_path)'],
-      'conditions': [
-        ['neverlink == 1', {
-          'library_dexed_jars_paths': [],
-        }, {
-          'library_dexed_jars_paths': ['<(dex_path)'],
-        }],
-      ],
-    },
-  },
-  'conditions' : [
-    ['proguard_preprocess == 1', {
-      'actions': [
-        {
-          'action_name': 'proguard_<(_target_name)',
-          'message': 'Proguard preprocessing <(_target_name) jar',
-          'inputs': [
-            '<(android_sdk_root)/tools/proguard/lib/proguard.jar',
-            '<(DEPTH)/build/android/gyp/util/build_utils.py',
-            '<(DEPTH)/build/android/gyp/proguard.py',
-            '<(jar_path)',
-            '<(proguard_config)',
-          ],
-          'outputs': [
-            '<(dex_input_jar_path)',
-          ],
-          'action': [
-            'python', '<(DEPTH)/build/android/gyp/proguard.py',
-            '--proguard-path=<(android_sdk_root)/tools/proguard/lib/proguard.jar',
-            '--input-path=<(jar_path)',
-            '--output-path=<(dex_input_jar_path)',
-            '--proguard-config=<(proguard_config)',
-            '--classpath=>(input_jars_paths)',
-          ]
-        },
-      ],
-    }],
-    ['neverlink == 0', {
-      'actions': [
-        {
-          'action_name': 'dex_<(_target_name)',
-          'message': 'Dexing <(_target_name) jar',
-          'variables': {
-            'dex_input_paths': [
-              '<(dex_input_jar_path)',
-            ],
-            'output_path': '<(dex_path)',
-          },
-          'includes': [ 'android/dex_action.gypi' ],
-        },
-      ],
-    }],
-  ],
-}
diff --git a/build/java_strings_grd.gypi b/build/java_strings_grd.gypi
deleted file mode 100644
index 7534be5..0000000
--- a/build/java_strings_grd.gypi
+++ /dev/null
@@ -1,62 +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.
-
-# This file is meant to be included into a target to provide a rule
-# to generate localized strings.xml from a grd file.
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'my-package_strings_grd',
-#   'type': 'none',
-#   'variables': {
-#     'grd_file': 'path/to/grd/file',
-#   },
-#   'includes': ['path/to/this/gypi/file'],
-# }
-#
-# Required variables:
-#  grd_file - The path to the grd file to use.
-{
-  'variables': {
-    'res_grit_dir': '<(INTERMEDIATE_DIR)/<(_target_name)/res_grit',
-    'grit_grd_file': '<(grd_file)',
-    'resource_zip_path': '<(PRODUCT_DIR)/res.java/<(_target_name).zip',
-    'grit_additional_defines': ['-E', 'ANDROID_JAVA_TAGGED_ONLY=false'],
-    'grit_out_dir': '<(res_grit_dir)',
-    # resource_ids is unneeded since we don't generate .h headers.
-    'grit_resource_ids': '',
-    'grit_outputs': [
-      '<!@pymod_do_main(grit_info <@(grit_defines) <@(grit_additional_defines) '
-          '--outputs \'<(grit_out_dir)\' '
-          '<(grit_grd_file) -f "<(grit_resource_ids)")',
-          ]
-  },
-  'all_dependent_settings': {
-    'variables': {
-      'additional_input_paths': ['<(resource_zip_path)'],
-      'dependencies_res_zip_paths': ['<(resource_zip_path)'],
-    },
-  },
-  'actions': [
-    {
-      'action_name': 'generate_localized_strings_xml',
-      'includes': ['../build/grit_action.gypi'],
-    },
-    {
-      'action_name': 'create_resources_zip',
-      'inputs': [
-          '<(DEPTH)/build/android/gyp/zip.py',
-          '<@(grit_outputs)',
-      ],
-      'outputs': [
-          '<(resource_zip_path)',
-      ],
-      'action': [
-          'python', '<(DEPTH)/build/android/gyp/zip.py',
-          '--input-dir', '<(res_grit_dir)',
-          '--output', '<(resource_zip_path)',
-      ],
-    }
-  ],
-}
diff --git a/build/jni_generator.gypi b/build/jni_generator.gypi
deleted file mode 100644
index 7a9e333..0000000
--- a/build/jni_generator.gypi
+++ /dev/null
@@ -1,87 +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 meant to be included into a target to provide a rule
-# to generate jni bindings for Java-files in a consistent manner.
-#
-# To use this, create a gyp target with the following form:
-#  {
-#    'target_name': 'base_jni_headers',
-#    'type': 'none',
-#    'sources': [
-#      'android/java/src/org/chromium/base/BuildInfo.java',
-#      ...
-#      ...
-#      'android/java/src/org/chromium/base/SystemMessageHandler.java',
-#    ],
-#    'variables': {
-#      'jni_gen_package': 'base',
-#    },
-#    'includes': [ '../build/jni_generator.gypi' ],
-#  },
-#
-# The generated file name pattern can be seen on the "outputs" section below.
-# (note that RULE_INPUT_ROOT is the basename for the java file).
-#
-# See base/android/jni_generator/jni_generator.py for more info about the
-# format of generating JNI bindings.
-
-{
-  'variables': {
-    'jni_generator': '<(DEPTH)/base/android/jni_generator/jni_generator.py',
-    'jni_generator_jarjar_file%': '',
-    'jni_generator_ptr_type%': 'long',
-    # A comma separated string of include files.
-    'jni_generator_includes%': (
-        'base/android/jni_generator/jni_generator_helper.h'
-    ),
-    'native_exports%': '--native_exports_optional',
-  },
-  'rules': [
-    {
-      'rule_name': 'generate_jni_headers',
-      'extension': 'java',
-      'inputs': [
-        '<(jni_generator)',
-      ],
-      'outputs': [
-        '<(SHARED_INTERMEDIATE_DIR)/<(jni_gen_package)/jni/<(RULE_INPUT_ROOT)_jni.h',
-      ],
-      'action': [
-        '<(jni_generator)',
-        '--input_file',
-        '<(RULE_INPUT_PATH)',
-        '--output_dir',
-        '<(SHARED_INTERMEDIATE_DIR)/<(jni_gen_package)/jni',
-        '--includes',
-        '<(jni_generator_includes)',
-        '--optimize_generation',
-        '<(optimize_jni_generation)',
-        '--jarjar',
-        '<(jni_generator_jarjar_file)',
-        '--ptr_type',
-        '<(jni_generator_ptr_type)',
-        '<(native_exports)',
-      ],
-      'message': 'Generating JNI bindings from <(RULE_INPUT_PATH)',
-      'process_outputs_as_sources': 1,
-      'conditions': [
-        ['jni_generator_jarjar_file != ""', {
-          'inputs': [
-            '<(jni_generator_jarjar_file)',
-          ],
-        }]
-      ],
-    },
-  ],
-  'direct_dependent_settings': {
-    'include_dirs': [
-      '<(SHARED_INTERMEDIATE_DIR)/<(jni_gen_package)',
-    ],
-  },
-  # This target exports a hard dependency because it generates header
-  # files.
-  'hard_dependency': 1,
-}
-
diff --git a/build/json_schema_bundle_compile.gypi b/build/json_schema_bundle_compile.gypi
deleted file mode 100644
index a302013..0000000
--- a/build/json_schema_bundle_compile.gypi
+++ /dev/null
@@ -1,83 +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.
-
-{
-  'variables': {
-    # When including this gypi, the following variables must be set:
-    #   schema_files:
-    #     An array of json or idl files that comprise the api model.
-    #   schema_include_rules (optional):
-    #     An array of paths to include when searching for referenced objects,
-    #     with the namespace separated by a :.
-    #     Example:
-    #       [ '/foo/bar:Foo::Bar::%(namespace)s' ]
-    #   cc_dir:
-    #     The directory to put the generated code in.
-    #   root_namespace:
-    #     A Python string substituion pattern used to generate the C++
-    #     namespace for each API. Use %(namespace)s to replace with the API
-    #     namespace, like "toplevel::%(namespace)s_api".
-    #
-    # Functions and namespaces can be excluded by setting "nocompile" to true.
-    # The default root path of API implementation sources is
-    # chrome/browser/extensions/api and can be overridden by setting "impl_dir".
-    'api_gen_dir': '<(DEPTH)/tools/json_schema_compiler',
-    'api_gen': '<(api_gen_dir)/compiler.py',
-    'generator_files': [
-      '<(api_gen_dir)/cc_generator.py',
-      '<(api_gen_dir)/code.py',
-      '<(api_gen_dir)/compiler.py',
-      '<(api_gen_dir)/cpp_bundle_generator.py',
-      '<(api_gen_dir)/cpp_type_generator.py',
-      '<(api_gen_dir)/cpp_util.py',
-      '<(api_gen_dir)/h_generator.py',
-      '<(api_gen_dir)/idl_schema.py',
-      '<(api_gen_dir)/json_schema.py',
-      '<(api_gen_dir)/model.py',
-      '<(api_gen_dir)/util_cc_helper.py',
-    ],
-    'schema_include_rules': [],
-  },
-  'actions': [
-    {
-      'action_name': 'genapi_bundle_schema',
-      'inputs': [
-        '<@(generator_files)',
-        '<@(schema_files)',
-        '<@(non_compiled_schema_files)',
-      ],
-      'outputs': [
-        '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/generated_schemas.h',
-        '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/generated_schemas.cc',
-      ],
-      'action': [
-        'python',
-        '<(api_gen)',
-        '--root=<(DEPTH)',
-        '--destdir=<(SHARED_INTERMEDIATE_DIR)',
-        '--namespace=<(root_namespace)',
-        '--generator=cpp-bundle-schema',
-        '--include-rules=<(schema_include_rules)',
-        '<@(schema_files)',
-        '<@(non_compiled_schema_files)',
-      ],
-      'message': 'Generating C++ API bundle code for schemas',
-      'process_outputs_as_sources': 1,
-      # Avoid running MIDL compiler on IDL input files.
-      'explicit_idl_action': 1,
-    },
-  ],
-  'include_dirs': [
-    '<(SHARED_INTERMEDIATE_DIR)',
-    '<(DEPTH)',
-  ],
-  'direct_dependent_settings': {
-    'include_dirs': [
-      '<(SHARED_INTERMEDIATE_DIR)',
-    ]
-  },
-  # This target exports a hard dependency because it generates header
-  # files.
-  'hard_dependency': 1,
-}
diff --git a/build/json_schema_bundle_registration_compile.gypi b/build/json_schema_bundle_registration_compile.gypi
deleted file mode 100644
index 8c5af4e..0000000
--- a/build/json_schema_bundle_registration_compile.gypi
+++ /dev/null
@@ -1,78 +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.
-
-{
-  'variables': {
-    # When including this gypi, the following variables must be set:
-    #   schema_files:
-    #     An array of json or idl files that comprise the api model.
-    #   impl_dir_:
-    #     The root path of API implementations; also used for the
-    #     output location. (N.B. Named as such to prevent gyp from
-    #     expanding it as a relative path.)
-    #   root_namespace:
-    #     A Python string substituion pattern used to generate the C++
-    #     namespace for each API. Use %(namespace)s to replace with the API
-    #     namespace, like "toplevel::%(namespace)s_api".
-    #
-    # Functions and namespaces can be excluded by setting "nocompile" to true.
-    'api_gen_dir': '<(DEPTH)/tools/json_schema_compiler',
-    'api_gen': '<(api_gen_dir)/compiler.py',
-    'generator_files': [
-      '<(api_gen_dir)/cc_generator.py',
-      '<(api_gen_dir)/code.py',
-      '<(api_gen_dir)/compiler.py',
-      '<(api_gen_dir)/cpp_bundle_generator.py',
-      '<(api_gen_dir)/cpp_type_generator.py',
-      '<(api_gen_dir)/cpp_util.py',
-      '<(api_gen_dir)/h_generator.py',
-      '<(api_gen_dir)/idl_schema.py',
-      '<(api_gen_dir)/json_schema.py',
-      '<(api_gen_dir)/model.py',
-      '<(api_gen_dir)/util_cc_helper.py',
-    ],
-  },
-  'actions': [
-    {
-      # GN version: json_schema_api.gni
-      'action_name': 'genapi_bundle_registration',
-      'inputs': [
-        '<@(generator_files)',
-        '<@(schema_files)',
-        '<@(non_compiled_schema_files)',
-      ],
-      'outputs': [
-        '<(SHARED_INTERMEDIATE_DIR)/<(impl_dir_)/generated_api_registration.h',
-        '<(SHARED_INTERMEDIATE_DIR)/<(impl_dir_)/generated_api_registration.cc',
-      ],
-      'action': [
-        'python',
-        '<(api_gen)',
-        '--root=<(DEPTH)',
-        '--destdir=<(SHARED_INTERMEDIATE_DIR)',
-        '--namespace=<(root_namespace)',
-        '--generator=cpp-bundle-registration',
-        '--impl-dir=<(impl_dir_)',
-        '<@(schema_files)',
-        '<@(non_compiled_schema_files)',
-      ],
-      'message': 'Generating C++ API bundle code for function registration',
-      'process_outputs_as_sources': 1,
-      # Avoid running MIDL compiler on IDL input files.
-      'explicit_idl_action': 1,
-    },
-  ],
-  'include_dirs': [
-    '<(SHARED_INTERMEDIATE_DIR)',
-    '<(DEPTH)',
-  ],
-  'direct_dependent_settings': {
-    'include_dirs': [
-      '<(SHARED_INTERMEDIATE_DIR)',
-    ]
-  },
-  # This target exports a hard dependency because it generates header
-  # files.
-  'hard_dependency': 1,
-}
diff --git a/build/json_schema_compile.gypi b/build/json_schema_compile.gypi
deleted file mode 100644
index 6e5727a..0000000
--- a/build/json_schema_compile.gypi
+++ /dev/null
@@ -1,123 +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.
-
-{
-  'variables': {
-    # When including this gypi, the following variables must be set:
-    #   schema_files:
-    #     An array of json or idl files that comprise the api model.
-    #   schema_include_rules (optional):
-    #     An array of paths to include when searching for referenced objects,
-    #     with the namespace separated by a :.
-    #     Example:
-    #       [ '/foo/bar:Foo::Bar::%(namespace)s' ]
-    #   cc_dir:
-    #     The directory to put the generated code in.
-    #   root_namespace:
-    #     A Python string substituion pattern used to generate the C++
-    #     namespace for each API. Use %(namespace)s to replace with the API
-    #     namespace, like "toplevel::%(namespace)s_api".
-    #
-    # Functions and namespaces can be excluded by setting "nocompile" to true.
-    'api_gen_dir': '<(DEPTH)/tools/json_schema_compiler',
-    'api_gen': '<(api_gen_dir)/compiler.py',
-    'schema_include_rules': [],
-  },
-  'rules': [
-    {
-      # GN version: json_schema_api.gni
-      'rule_name': 'genapi',
-      'msvs_external_rule': 1,
-      'extension': 'json',
-      'inputs': [
-        '<(api_gen_dir)/cc_generator.py',
-        '<(api_gen_dir)/code.py',
-        '<(api_gen_dir)/compiler.py',
-        '<(api_gen_dir)/cpp_generator.py',
-        '<(api_gen_dir)/cpp_type_generator.py',
-        '<(api_gen_dir)/cpp_util.py',
-        '<(api_gen_dir)/h_generator.py',
-        '<(api_gen_dir)/json_schema.py',
-        '<(api_gen_dir)/model.py',
-        '<(api_gen_dir)/util.cc',
-        '<(api_gen_dir)/util.h',
-        '<(api_gen_dir)/util_cc_helper.py',
-        # TODO(calamity): uncomment this when gyp on windows behaves like other
-        # platforms. List expansions of filepaths in inputs expand to different
-        # things.
-        # '<@(schema_files)',
-      ],
-      'outputs': [
-        '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).cc',
-        '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).h',
-      ],
-      'action': [
-        'python',
-        '<(api_gen)',
-        '<(RULE_INPUT_PATH)',
-        '--root=<(DEPTH)',
-        '--destdir=<(SHARED_INTERMEDIATE_DIR)',
-        '--namespace=<(root_namespace)',
-        '--generator=cpp',
-        '--include-rules=<(schema_include_rules)'
-      ],
-      'message': 'Generating C++ code from <(RULE_INPUT_PATH) json files',
-      'process_outputs_as_sources': 1,
-    },
-    {
-      'rule_name': 'genapi_idl',
-      'msvs_external_rule': 1,
-      'extension': 'idl',
-      'inputs': [
-        '<(api_gen_dir)/cc_generator.py',
-        '<(api_gen_dir)/code.py',
-        '<(api_gen_dir)/compiler.py',
-        '<(api_gen_dir)/cpp_generator.py',
-        '<(api_gen_dir)/cpp_type_generator.py',
-        '<(api_gen_dir)/cpp_util.py',
-        '<(api_gen_dir)/h_generator.py',
-        '<(api_gen_dir)/idl_schema.py',
-        '<(api_gen_dir)/model.py',
-        '<(api_gen_dir)/util.cc',
-        '<(api_gen_dir)/util.h',
-        '<(api_gen_dir)/util_cc_helper.py',
-        # TODO(calamity): uncomment this when gyp on windows behaves like other
-        # platforms. List expansions of filepaths in inputs expand to different
-        # things.
-        # '<@(schema_files)',
-      ],
-      'outputs': [
-        '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).cc',
-        '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT).h',
-      ],
-      'action': [
-        'python',
-        '<(api_gen)',
-        '<(RULE_INPUT_PATH)',
-        '--root=<(DEPTH)',
-        '--destdir=<(SHARED_INTERMEDIATE_DIR)',
-        '--namespace=<(root_namespace)',
-        '--generator=cpp',
-        '--include-rules=<(schema_include_rules)'
-      ],
-      'message': 'Generating C++ code from <(RULE_INPUT_PATH) IDL files',
-      'process_outputs_as_sources': 1,
-    },
-  ],
-  'include_dirs': [
-    '<(SHARED_INTERMEDIATE_DIR)',
-    '<(DEPTH)',
-  ],
-  'dependencies':[
-    '<(DEPTH)/tools/json_schema_compiler/api_gen_util.gyp:api_gen_util',
-  ],
-  'direct_dependent_settings': {
-    'include_dirs': [
-      '<(SHARED_INTERMEDIATE_DIR)',
-    ]
-  },
-  # This target exports a hard dependency because it generates header
-  # files.
-  'hard_dependency': 1,
-}
diff --git a/build/json_to_struct.gypi b/build/json_to_struct.gypi
deleted file mode 100644
index 57271c8..0000000
--- a/build/json_to_struct.gypi
+++ /dev/null
@@ -1,50 +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.
-
-{
-  'variables': {
-    # When including this gypi, the following variables must be set:
-    #   schema_file: a json file that comprise the structure model.
-    #   namespace: the C++ namespace that all generated files go under
-    #   cc_dir: path to generated files
-    # Functions and namespaces can be excluded by setting "nocompile" to true.
-    'struct_gen_dir': '<(DEPTH)/tools/json_to_struct',
-    'struct_gen': '<(struct_gen_dir)/json_to_struct.py',
-  },
-  'rules': [
-    {
-      # GN version: //tools/json_to_struct/json_to_struct.gni
-      'rule_name': 'genstaticinit',
-      'extension': 'json',
-      'inputs': [
-        '<(struct_gen_dir)/element_generator.py',
-        '<(struct_gen_dir)/json_to_struct.py',
-        '<(struct_gen_dir)/struct_generator.py',
-        '<(schema_file)',
-      ],
-      'outputs': [
-        '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_ROOT).cc',
-        '<(SHARED_INTERMEDIATE_DIR)/<(cc_dir)/<(RULE_INPUT_ROOT).h',
-      ],
-      'action': [
-        'python',
-        '<(struct_gen)',
-        '<(RULE_INPUT_PATH)',
-        '--destbase=<(SHARED_INTERMEDIATE_DIR)',
-        '--destdir=<(cc_dir)',
-        '--namespace=<(namespace)',
-        '--schema=<(schema_file)',
-      ],
-      'message': 'Generating C++ static initializers from <(RULE_INPUT_PATH)',
-      'process_outputs_as_sources': 1,
-    },
-  ],
-  'include_dirs': [
-    '<(SHARED_INTERMEDIATE_DIR)',
-    '<(DEPTH)',
-  ],
-  # This target exports a hard dependency because it generates header
-  # files.
-  'hard_dependency': 1,
-}
diff --git a/build/linux/unbundle/README b/build/linux/unbundle/README
deleted file mode 100644
index d1b2a96..0000000
--- a/build/linux/unbundle/README
+++ /dev/null
@@ -1,44 +0,0 @@
-This directory contains files that make it possible to use system libraries.
-
-For more info please read the following:
-
- - https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries
- - https://wiki.gentoo.org/wiki/Why_not_bundle_dependencies
- - http://www.debian.org/doc/debian-policy/ch-source.html#s-embeddedfiles
-
-For more Chromium-specific context please read
-http://spot.livejournal.com/312320.html .
-
-This directory is provided in the source tree to follow above guidelines.
-It is a compromise solution which takes into account Chromium developers
-who want to avoid the perceived burden of more conditional code in gyp,
-and expectations of Open Source community, where using system-provided
-libraries is the norm.
-
-Usage:
-
-1. remove_bundled_libraries.py <preserved-directories>
-
-   For example: remove_bundled_libraries.py third_party/mesa
-
-   The script scans sources looking for third_party directories.
-   Everything that is not explicitly preserved is removed (except for
-   gyp files), and the script fails if any directory passed on command
-   line does not exist (to ensure list is kept up to date).
-
-   This is intended to be used on sources extracted from a tarball,
-   not a repository.
-
-   NOTE: by default this will not remove anything (for safety). Pass
-   --do-remove flag to actually remove files.
-
-2. replace_gyp_files.py <gyp-flags>
-
-   For example: replace_gyp_files.py -Duse_system_harfbuzz=1
-
-   The script ignores flags other than -D for convenience. This makes it
-   possible to have a variable e.g. ${myconf} with all the options, and
-   execute:
-
-   build/linux/unbundle/replace_gyp_files.py ${myconf}
-   build/gyp_chromium ${myconf}
diff --git a/build/linux/unbundle/expat.gyp b/build/linux/unbundle/expat.gyp
deleted file mode 100644
index 030fb85..0000000
--- a/build/linux/unbundle/expat.gyp
+++ /dev/null
@@ -1,17 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'expat',
-      'type': 'none',
-      'link_settings': {
-        'libraries': [
-          '-lexpat',
-        ],
-      },
-    },
-  ],
-}
diff --git a/build/linux/unbundle/ffmpeg.gyp b/build/linux/unbundle/ffmpeg.gyp
deleted file mode 100644
index e3c3723..0000000
--- a/build/linux/unbundle/ffmpeg.gyp
+++ /dev/null
@@ -1,54 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'ffmpeg',
-      'type': 'none',
-      'direct_dependent_settings': {
-        'cflags': [
-          '<!@(pkg-config --cflags libavcodec libavformat libavutil)',
-
-          '<!(python <(DEPTH)/tools/compile_test/compile_test.py '
-              '--code "#define __STDC_CONSTANT_MACROS\n'
-              '#include <libavcodec/avcodec.h>\n'
-              'int test() { return AV_CODEC_ID_OPUS; }" '
-              '--on-failure -DCHROMIUM_OMIT_AV_CODEC_ID_OPUS=1)',
-
-          '<!(python <(DEPTH)/tools/compile_test/compile_test.py '
-              '--code "#define __STDC_CONSTANT_MACROS\n'
-              '#include <libavcodec/avcodec.h>\n'
-              'int test() { return AV_CODEC_ID_VP9; }" '
-              '--on-failure -DCHROMIUM_OMIT_AV_CODEC_ID_VP9=1)',
-
-          '<!(python <(DEPTH)/tools/compile_test/compile_test.py '
-              '--code "#define __STDC_CONSTANT_MACROS\n'
-              '#include <libavcodec/avcodec.h>\n'
-              'int test() { return AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL; }" '
-              '--on-failure -DCHROMIUM_OMIT_AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL=1)',
-
-          '<!(python <(DEPTH)/tools/compile_test/compile_test.py '
-              '--code "#define __STDC_CONSTANT_MACROS\n'
-              '#include <libavcodec/avcodec.h>\n'
-              'int test() { struct AVFrame frame;\n'
-              'return av_frame_get_channels(&frame); }" '
-              '--on-failure -DCHROMIUM_NO_AVFRAME_CHANNELS=1)',
-        ],
-        'defines': [
-          '__STDC_CONSTANT_MACROS',
-          'USE_SYSTEM_FFMPEG',
-        ],
-      },
-      'link_settings': {
-        'ldflags': [
-          '<!@(pkg-config --libs-only-L --libs-only-other libavcodec libavformat libavutil)',
-        ],
-        'libraries': [
-          '<!@(pkg-config --libs-only-l libavcodec libavformat libavutil)',
-        ],
-      },
-    },
-  ],
-}
diff --git a/build/linux/unbundle/flac.gyp b/build/linux/unbundle/flac.gyp
deleted file mode 100644
index 9e4a664..0000000
--- a/build/linux/unbundle/flac.gyp
+++ /dev/null
@@ -1,37 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'libflac',
-      'type': 'none',
-      'variables': {
-        'headers_root_path': 'include',
-        'header_filenames': [
-          'FLAC/callback.h',
-          'FLAC/metadata.h',
-          'FLAC/assert.h',
-          'FLAC/export.h',
-          'FLAC/format.h',
-          'FLAC/stream_decoder.h',
-          'FLAC/stream_encoder.h',
-          'FLAC/ordinals.h',
-          'FLAC/all.h',
-        ],
-      },
-      'includes': [
-        '../../build/shim_headers.gypi',
-      ],
-      'link_settings': {
-        'ldflags': [
-          '<!@(pkg-config --libs-only-L --libs-only-other flac)',
-        ],
-        'libraries': [
-          '<!@(pkg-config --libs-only-l flac)',
-        ],
-      },
-    },
-  ],
-}
diff --git a/build/linux/unbundle/harfbuzz.gyp b/build/linux/unbundle/harfbuzz.gyp
deleted file mode 100644
index 3bc1744..0000000
--- a/build/linux/unbundle/harfbuzz.gyp
+++ /dev/null
@@ -1,47 +0,0 @@
-# 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.
-
-{
-  'variables': {
-    # Check for presence of harfbuzz-icu library, use it if present.
-    'harfbuzz_libraries':
-        '<!(python <(DEPTH)/tools/compile_test/compile_test.py '
-        '--code "int main() { return 0; }" '
-        '--run-linker '
-        '--on-success "harfbuzz harfbuzz-icu" '
-        '--on-failure "harfbuzz" '
-        '-- -lharfbuzz-icu)',
-  },
-  'targets': [
-    {
-      'target_name': 'harfbuzz-ng',
-      'type': 'none',
-      'cflags': [
-        '<!@(pkg-config --cflags <(harfbuzz_libraries))',
-      ],
-      'direct_dependent_settings': {
-        'cflags': [
-          '<!@(pkg-config --cflags <(harfbuzz_libraries))',
-        ],
-      },
-      'link_settings': {
-        'ldflags': [
-          '<!@(pkg-config --libs-only-L --libs-only-other <(harfbuzz_libraries))',
-        ],
-        'libraries': [
-          '<!@(pkg-config --libs-only-l <(harfbuzz_libraries))',
-        ],
-      },
-      'variables': {
-        'headers_root_path': 'src',
-        'header_filenames': [
-          'hb.h',
-        ],
-      },
-      'includes': [
-        '../../build/shim_headers.gypi',
-      ],
-    },
-  ],
-}
diff --git a/build/linux/unbundle/icu.gyp b/build/linux/unbundle/icu.gyp
deleted file mode 100644
index 16c36df..0000000
--- a/build/linux/unbundle/icu.gyp
+++ /dev/null
@@ -1,248 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'icudata',
-      'type': 'none',
-      'direct_dependent_settings': {
-        'cflags': [
-          '<!@(pkg-config --cflags icu-uc)',
-        ],
-        'defines': [
-          'U_USING_ICU_NAMESPACE=0',
-        ],
-      },
-      'link_settings': {
-        'ldflags': [
-          '<!@(pkg-config --libs-only-L --libs-only-other icu-uc)',
-        ],
-        'libraries': [
-          '<!@(pkg-config --libs-only-l icu-uc)',
-        ],
-      },
-    },
-    {
-      'target_name': 'icui18n',
-      'type': 'none',
-      'toolsets': ['host', 'target'],
-      'direct_dependent_settings': {
-        'cflags': [
-          '<!@(pkg-config --cflags icu-i18n)',
-        ],
-        'defines': [
-          'U_USING_ICU_NAMESPACE=0',
-        ],
-      },
-      'link_settings': {
-        'ldflags': [
-          '<!@(pkg-config --libs-only-L --libs-only-other icu-i18n)',
-        ],
-        'libraries': [
-          '<!@(pkg-config --libs-only-l icu-i18n)',
-        ],
-      },
-      'variables': {
-        'headers_root_path': 'source/i18n',
-        'header_filenames': [
-          # This list can easily be updated using the command below:
-          # find third_party/icu/source/i18n/unicode -iname '*.h' \
-          # -printf "'%p',\n" | \
-          # sed -e 's|third_party/icu/source/i18n/||' | sort -u
-          'unicode/basictz.h',
-          'unicode/bmsearch.h',
-          'unicode/bms.h',
-          'unicode/calendar.h',
-          'unicode/choicfmt.h',
-          'unicode/coleitr.h',
-          'unicode/colldata.h',
-          'unicode/coll.h',
-          'unicode/curramt.h',
-          'unicode/currpinf.h',
-          'unicode/currunit.h',
-          'unicode/datefmt.h',
-          'unicode/dcfmtsym.h',
-          'unicode/decimfmt.h',
-          'unicode/dtfmtsym.h',
-          'unicode/dtitvfmt.h',
-          'unicode/dtitvinf.h',
-          'unicode/dtptngen.h',
-          'unicode/dtrule.h',
-          'unicode/fieldpos.h',
-          'unicode/fmtable.h',
-          'unicode/format.h',
-          'unicode/fpositer.h',
-          'unicode/gregocal.h',
-          'unicode/locdspnm.h',
-          'unicode/measfmt.h',
-          'unicode/measunit.h',
-          'unicode/measure.h',
-          'unicode/msgfmt.h',
-          'unicode/numfmt.h',
-          'unicode/numsys.h',
-          'unicode/plurfmt.h',
-          'unicode/plurrule.h',
-          'unicode/rbnf.h',
-          'unicode/rbtz.h',
-          'unicode/regex.h',
-          'unicode/search.h',
-          'unicode/selfmt.h',
-          'unicode/simpletz.h',
-          'unicode/smpdtfmt.h',
-          'unicode/sortkey.h',
-          'unicode/stsearch.h',
-          'unicode/tblcoll.h',
-          'unicode/timezone.h',
-          'unicode/tmunit.h',
-          'unicode/tmutamt.h',
-          'unicode/tmutfmt.h',
-          'unicode/translit.h',
-          'unicode/tzrule.h',
-          'unicode/tztrans.h',
-          'unicode/ucal.h',
-          'unicode/ucoleitr.h',
-          'unicode/ucol.h',
-          'unicode/ucsdet.h',
-          'unicode/ucurr.h',
-          'unicode/udat.h',
-          'unicode/udatpg.h',
-          'unicode/uldnames.h',
-          'unicode/ulocdata.h',
-          'unicode/umsg.h',
-          'unicode/unirepl.h',
-          'unicode/unum.h',
-          'unicode/uregex.h',
-          'unicode/usearch.h',
-          'unicode/uspoof.h',
-          'unicode/utmscale.h',
-          'unicode/utrans.h',
-          'unicode/vtzone.h',
-        ],
-      },
-      'includes': [
-        '../../build/shim_headers.gypi',
-      ],
-    },
-    {
-      'target_name': 'icuuc',
-      'type': 'none',
-      'toolsets': ['host', 'target'],
-      'direct_dependent_settings': {
-        'cflags': [
-          '<!@(pkg-config --cflags icu-uc)',
-        ],
-        'defines': [
-          'U_USING_ICU_NAMESPACE=0',
-        ],
-      },
-      'link_settings': {
-        'ldflags': [
-          '<!@(pkg-config --libs-only-L --libs-only-other icu-uc)',
-        ],
-        'libraries': [
-          '<!@(pkg-config --libs-only-l icu-uc)',
-        ],
-      },
-      'variables': {
-        'headers_root_path': 'source/common',
-        'header_filenames': [
-          # This list can easily be updated using the command below:
-          # find third_party/icu/source/common/unicode -iname '*.h' \
-          # -printf "'%p',\n" | \
-          # sed -e 's|third_party/icu/source/common/||' | sort -u
-          'unicode/brkiter.h',
-          'unicode/bytestream.h',
-          'unicode/caniter.h',
-          'unicode/chariter.h',
-          'unicode/dbbi.h',
-          'unicode/docmain.h',
-          'unicode/dtintrv.h',
-          'unicode/errorcode.h',
-          'unicode/icudataver.h',
-          'unicode/icuplug.h',
-          'unicode/idna.h',
-          'unicode/localpointer.h',
-          'unicode/locid.h',
-          'unicode/normalizer2.h',
-          'unicode/normlzr.h',
-          'unicode/pandroid.h',
-          'unicode/parseerr.h',
-          'unicode/parsepos.h',
-          'unicode/pfreebsd.h',
-          'unicode/plinux.h',
-          'unicode/pmac.h',
-          'unicode/popenbsd.h',
-          'unicode/ppalmos.h',
-          'unicode/ptypes.h',
-          'unicode/putil.h',
-          'unicode/pwin32.h',
-          'unicode/rbbi.h',
-          'unicode/rep.h',
-          'unicode/resbund.h',
-          'unicode/schriter.h',
-          'unicode/std_string.h',
-          'unicode/strenum.h',
-          'unicode/stringpiece.h',
-          'unicode/symtable.h',
-          'unicode/ubidi.h',
-          'unicode/ubrk.h',
-          'unicode/ucasemap.h',
-          'unicode/ucat.h',
-          'unicode/uchar.h',
-          'unicode/uchriter.h',
-          'unicode/uclean.h',
-          'unicode/ucnv_cb.h',
-          'unicode/ucnv_err.h',
-          'unicode/ucnv.h',
-          'unicode/ucnvsel.h',
-          'unicode/uconfig.h',
-          'unicode/udata.h',
-          'unicode/udeprctd.h',
-          'unicode/udraft.h',
-          'unicode/uenum.h',
-          'unicode/uidna.h',
-          'unicode/uintrnal.h',
-          'unicode/uiter.h',
-          'unicode/uloc.h',
-          'unicode/umachine.h',
-          'unicode/umisc.h',
-          'unicode/unifilt.h',
-          'unicode/unifunct.h',
-          'unicode/unimatch.h',
-          'unicode/uniset.h',
-          'unicode/unistr.h',
-          'unicode/unorm2.h',
-          'unicode/unorm.h',
-          'unicode/uobject.h',
-          'unicode/uobslete.h',
-          'unicode/urename.h',
-          'unicode/urep.h',
-          'unicode/ures.h',
-          'unicode/uscript.h',
-          'unicode/uset.h',
-          'unicode/usetiter.h',
-          'unicode/ushape.h',
-          'unicode/usprep.h',
-          'unicode/ustring.h',
-          'unicode/usystem.h',
-          'unicode/utext.h',
-          'unicode/utf16.h',
-          'unicode/utf32.h',
-          'unicode/utf8.h',
-          'unicode/utf.h',
-          'unicode/utf_old.h',
-          'unicode/utrace.h',
-          'unicode/utypeinfo.h',
-          'unicode/utypes.h',
-          'unicode/uvernum.h',
-          'unicode/uversion.h',
-        ],
-      },
-      'includes': [
-        '../../build/shim_headers.gypi',
-      ],
-    },
-  ],
-}
diff --git a/build/linux/unbundle/jsoncpp.gyp b/build/linux/unbundle/jsoncpp.gyp
deleted file mode 100644
index c397f64..0000000
--- a/build/linux/unbundle/jsoncpp.gyp
+++ /dev/null
@@ -1,39 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'jsoncpp',
-      'type': 'none',
-      'variables': {
-        'headers_root_path': 'source/include',
-        'header_filenames': [
-          'json/assertions.h',
-          'json/autolink.h',
-          'json/config.h',
-          'json/features.h',
-          'json/forwards.h',
-          'json/json.h',
-          'json/reader.h',
-          'json/value.h',
-          'json/writer.h',
-        ],
-      },
-      'includes': [
-        '../../build/shim_headers.gypi',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '/usr/include/jsoncpp',
-        ],
-      },
-      'link_settings': {
-        'libraries': [
-          '-ljsoncpp',
-        ],
-      },
-    }
-  ],
-}
diff --git a/build/linux/unbundle/libXNVCtrl.gyp b/build/linux/unbundle/libXNVCtrl.gyp
deleted file mode 100644
index f076bdb..0000000
--- a/build/linux/unbundle/libXNVCtrl.gyp
+++ /dev/null
@@ -1,35 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'libXNVCtrl',
-      'type': 'none',
-      'variables': {
-        'headers_root_path': '.',
-        'header_filenames': [
-          'NVCtrlLib.h',
-          'NVCtrl.h',
-        ],
-      },
-      'includes': [
-        '../../build/shim_headers.gypi',
-      ],
-      'direct_dependent_settings': {
-        'cflags': [
-            '<!@(pkg-config --cflags libXNVCtrl)',
-        ],
-      },
-      'link_settings': {
-        'ldflags': [
-          '<!@(pkg-config --libs-only-L --libs-only-other libXNVCtrl)',
-        ],
-        'libraries': [
-          '<!@(pkg-config --libs-only-l libXNVCtrl)',
-        ],
-      },
-    }
-  ],
-}
diff --git a/build/linux/unbundle/libevent.gyp b/build/linux/unbundle/libevent.gyp
deleted file mode 100644
index 99d7435..0000000
--- a/build/linux/unbundle/libevent.gyp
+++ /dev/null
@@ -1,27 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'libevent',
-      'type': 'none',
-      'toolsets': ['host', 'target'],
-      'variables': {
-        'headers_root_path': '.',
-        'header_filenames': [
-          'event.h',
-        ],
-      },
-      'includes': [
-        '../../build/shim_headers.gypi',
-      ],
-      'link_settings': {
-        'libraries': [
-          '-levent',
-        ],
-      },
-    }
-  ],
-}
diff --git a/build/linux/unbundle/libjpeg.gyp b/build/linux/unbundle/libjpeg.gyp
deleted file mode 100644
index f56e7aa..0000000
--- a/build/linux/unbundle/libjpeg.gyp
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'libjpeg',
-      'type': 'none',
-      'direct_dependent_settings': {
-        'defines': [
-          'USE_SYSTEM_LIBJPEG',
-        ],
-        'conditions': [
-          ['os_bsd==1', {
-            'include_dirs': [
-              '/usr/local/include',
-            ],
-          }],
-        ],
-      },
-      'link_settings': {
-        'libraries': [
-          '-ljpeg',
-        ],
-      },
-    }
-  ],
-}
diff --git a/build/linux/unbundle/libpng.gyp b/build/linux/unbundle/libpng.gyp
deleted file mode 100644
index d6933fc..0000000
--- a/build/linux/unbundle/libpng.gyp
+++ /dev/null
@@ -1,38 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'libpng',
-      'type': 'none',
-      'dependencies': [
-        '../zlib/zlib.gyp:zlib',
-      ],
-      'direct_dependent_settings': {
-        'cflags': [
-          '<!@(pkg-config --cflags libpng)',
-        ],
-      },
-      'link_settings': {
-        'ldflags': [
-          '<!@(pkg-config --libs-only-L --libs-only-other libpng)',
-        ],
-        'libraries': [
-          '<!@(pkg-config --libs-only-l libpng)',
-        ],
-      },
-      'variables': {
-        'headers_root_path': '.',
-        'header_filenames': [
-          'png.h',
-          'pngconf.h',
-        ],
-      },
-      'includes': [
-        '../../build/shim_headers.gypi',
-      ],
-    },
-  ],
-}
diff --git a/build/linux/unbundle/libusb.gyp b/build/linux/unbundle/libusb.gyp
deleted file mode 100644
index 1c18033..0000000
--- a/build/linux/unbundle/libusb.gyp
+++ /dev/null
@@ -1,34 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'libusb',
-      'type': 'none',
-      'variables': {
-        'headers_root_path': 'src/libusb',
-        'header_filenames': [
-          'libusb.h',
-        ],
-      },
-      'includes': [
-        '../../build/shim_headers.gypi',
-      ],
-      'direct_dependent_settings': {
-        'cflags': [
-          '<!@(pkg-config --cflags libusb-1.0)',
-        ],
-        'link_settings': {
-          'ldflags': [
-            '<!@(pkg-config --libs-only-L --libs-only-other libusb-1.0)',
-          ],
-          'libraries': [
-            '<!@(pkg-config --libs-only-l libusb-1.0)',
-          ],
-        },
-      },
-    },
-  ],
-}
diff --git a/build/linux/unbundle/libvpx.gyp b/build/linux/unbundle/libvpx.gyp
deleted file mode 100644
index 75671c5..0000000
--- a/build/linux/unbundle/libvpx.gyp
+++ /dev/null
@@ -1,43 +0,0 @@
-# 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.
-{
-  'targets': [
-    {
-      'target_name': 'libvpx',
-      'type': 'none',
-      'direct_dependent_settings': {
-        'cflags': [
-          '<!@(pkg-config --cflags vpx)',
-        ],
-      },
-      'variables': {
-        'headers_root_path': 'source/libvpx',
-        'header_filenames': [
-          'vpx/vp8.h',
-          'vpx/vp8cx.h',
-          'vpx/vp8dx.h',
-          'vpx/vpx_codec.h',
-          'vpx/vpx_codec_impl_bottom.h',
-          'vpx/vpx_codec_impl_top.h',
-          'vpx/vpx_decoder.h',
-          'vpx/vpx_encoder.h',
-          'vpx/vpx_frame_buffer.h',
-          'vpx/vpx_image.h',
-          'vpx/vpx_integer.h',
-        ],
-      },
-      'includes': [
-        '../../build/shim_headers.gypi',
-      ],
-      'link_settings': {
-        'ldflags': [
-          '<!@(pkg-config --libs-only-L --libs-only-other vpx)',
-        ],
-        'libraries': [
-          '<!@(pkg-config --libs-only-l vpx)',
-        ],
-      },
-    },
-  ],
-}
diff --git a/build/linux/unbundle/libwebp.gyp b/build/linux/unbundle/libwebp.gyp
deleted file mode 100644
index 6dbce2e..0000000
--- a/build/linux/unbundle/libwebp.gyp
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'libwebp',
-      'type': 'none',
-      'direct_dependent_settings': {
-        'defines': [
-          'ENABLE_WEBP',
-        ],
-      },
-      'link_settings': {
-        'libraries': [
-          # Check for presence of webpdemux library, use it if present.
-          '<!(python <(DEPTH)/tools/compile_test/compile_test.py '
-          '--code "int main() { return 0; }" '
-          '--run-linker '
-          '--on-success "-lwebp -lwebpdemux" '
-          '--on-failure "-lwebp" '
-          '-- -lwebpdemux)',
-        ],
-      },
-    }
-  ],
-}
diff --git a/build/linux/unbundle/libxml.gyp b/build/linux/unbundle/libxml.gyp
deleted file mode 100644
index bc4f9fc..0000000
--- a/build/linux/unbundle/libxml.gyp
+++ /dev/null
@@ -1,38 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'libxml',
-      'type': 'static_library',
-      'sources': [
-        'chromium/libxml_utils.h',
-        'chromium/libxml_utils.cc',
-      ],
-      'cflags': [
-        '<!@(pkg-config --cflags libxml-2.0)',
-      ],
-      'defines': [
-        'USE_SYSTEM_LIBXML',
-      ],
-      'direct_dependent_settings': {
-        'cflags': [
-          '<!@(pkg-config --cflags libxml-2.0)',
-        ],
-        'defines': [
-          'USE_SYSTEM_LIBXML',
-        ],
-      },
-      'link_settings': {
-        'ldflags': [
-          '<!@(pkg-config --libs-only-L --libs-only-other libxml-2.0)',
-        ],
-        'libraries': [
-          '<!@(pkg-config --libs-only-l libxml-2.0)',
-        ],
-      },
-    },
-  ],
-}
diff --git a/build/linux/unbundle/libxslt.gyp b/build/linux/unbundle/libxslt.gyp
deleted file mode 100644
index f7f6bb9..0000000
--- a/build/linux/unbundle/libxslt.gyp
+++ /dev/null
@@ -1,25 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'libxslt',
-      'type': 'none',
-      'direct_dependent_settings': {
-        'cflags': [
-          '<!@(pkg-config --cflags libxslt)',
-        ],
-      },
-      'link_settings': {
-        'ldflags': [
-          '<!@(pkg-config --libs-only-L --libs-only-other libxslt)',
-        ],
-        'libraries': [
-          '<!@(pkg-config --libs-only-l libxslt)',
-        ],
-      },
-    },
-  ],
-}
diff --git a/build/linux/unbundle/opus.gyp b/build/linux/unbundle/opus.gyp
deleted file mode 100644
index e8c30ba..0000000
--- a/build/linux/unbundle/opus.gyp
+++ /dev/null
@@ -1,38 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'opus',
-      'type': 'none',
-      'direct_dependent_settings': {
-        'cflags': [
-          '<!@(pkg-config --cflags opus)',
-        ],
-      },
-      'variables': {
-        'headers_root_path': 'src/include',
-        'header_filenames': [
-          'opus_custom.h',
-          'opus_defines.h',
-          'opus_multistream.h',
-          'opus_types.h',
-          'opus.h',
-        ],
-      },
-      'includes': [
-        '../../build/shim_headers.gypi',
-      ],
-      'link_settings': {
-        'ldflags': [
-          '<!@(pkg-config --libs-only-L --libs-only-other opus)',
-        ],
-        'libraries': [
-          '<!@(pkg-config --libs-only-l opus)',
-        ],
-      },
-    },
-  ],
-}
diff --git a/build/linux/unbundle/protobuf.gyp b/build/linux/unbundle/protobuf.gyp
deleted file mode 100644
index 7bcd992..0000000
--- a/build/linux/unbundle/protobuf.gyp
+++ /dev/null
@@ -1,149 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'protobuf_lite',
-      'type': 'none',
-      'direct_dependent_settings': {
-        'cflags': [
-          # Use full protobuf, because vanilla protobuf doesn't have
-          # our custom patch to retain unknown fields in lite mode.
-          '<!@(pkg-config --cflags protobuf)',
-        ],
-        'defines': [
-          'USE_SYSTEM_PROTOBUF',
-
-          # This macro must be defined to suppress the use
-          # of dynamic_cast<>, which requires RTTI.
-          'GOOGLE_PROTOBUF_NO_RTTI',
-          'GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER',
-        ],
-      },
-      'link_settings': {
-        # Use full protobuf, because vanilla protobuf doesn't have
-        # our custom patch to retain unknown fields in lite mode.
-        'ldflags': [
-          '<!@(pkg-config --libs-only-L --libs-only-other protobuf)',
-        ],
-        'libraries': [
-          '<!@(pkg-config --libs-only-l protobuf)',
-        ],
-      },
-      'variables': {
-        'headers_root_path': 'src',
-        'header_filenames': [
-          # This list can easily be updated using the command below:
-          # find third_party/protobuf/src -iname '*.h' -printf "'%p',\n" | \
-          # sed -e 's|third_party/protobuf/src/||' | sort -u
-          'google/protobuf/compiler/code_generator.h',
-          'google/protobuf/compiler/command_line_interface.h',
-          'google/protobuf/compiler/cpp/cpp_enum_field.h',
-          'google/protobuf/compiler/cpp/cpp_enum.h',
-          'google/protobuf/compiler/cpp/cpp_extension.h',
-          'google/protobuf/compiler/cpp/cpp_field.h',
-          'google/protobuf/compiler/cpp/cpp_file.h',
-          'google/protobuf/compiler/cpp/cpp_generator.h',
-          'google/protobuf/compiler/cpp/cpp_helpers.h',
-          'google/protobuf/compiler/cpp/cpp_message_field.h',
-          'google/protobuf/compiler/cpp/cpp_message.h',
-          'google/protobuf/compiler/cpp/cpp_options.h',
-          'google/protobuf/compiler/cpp/cpp_primitive_field.h',
-          'google/protobuf/compiler/cpp/cpp_service.h',
-          'google/protobuf/compiler/cpp/cpp_string_field.h',
-          'google/protobuf/compiler/cpp/cpp_unittest.h',
-          'google/protobuf/compiler/importer.h',
-          'google/protobuf/compiler/java/java_doc_comment.h',
-          'google/protobuf/compiler/java/java_enum_field.h',
-          'google/protobuf/compiler/java/java_enum.h',
-          'google/protobuf/compiler/java/java_extension.h',
-          'google/protobuf/compiler/java/java_field.h',
-          'google/protobuf/compiler/java/java_file.h',
-          'google/protobuf/compiler/java/java_generator.h',
-          'google/protobuf/compiler/java/java_helpers.h',
-          'google/protobuf/compiler/java/java_message_field.h',
-          'google/protobuf/compiler/java/java_message.h',
-          'google/protobuf/compiler/java/java_primitive_field.h',
-          'google/protobuf/compiler/java/java_service.h',
-          'google/protobuf/compiler/java/java_string_field.h',
-          'google/protobuf/compiler/mock_code_generator.h',
-          'google/protobuf/compiler/package_info.h',
-          'google/protobuf/compiler/parser.h',
-          'google/protobuf/compiler/plugin.h',
-          'google/protobuf/compiler/plugin.pb.h',
-          'google/protobuf/compiler/python/python_generator.h',
-          'google/protobuf/compiler/subprocess.h',
-          'google/protobuf/compiler/zip_writer.h',
-          'google/protobuf/descriptor_database.h',
-          'google/protobuf/descriptor.h',
-          'google/protobuf/descriptor.pb.h',
-          'google/protobuf/dynamic_message.h',
-          'google/protobuf/extension_set.h',
-          'google/protobuf/generated_enum_reflection.h',
-          'google/protobuf/generated_message_reflection.h',
-          'google/protobuf/generated_message_util.h',
-          'google/protobuf/io/coded_stream.h',
-          'google/protobuf/io/coded_stream_inl.h',
-          'google/protobuf/io/gzip_stream.h',
-          'google/protobuf/io/package_info.h',
-          'google/protobuf/io/printer.h',
-          'google/protobuf/io/tokenizer.h',
-          'google/protobuf/io/zero_copy_stream.h',
-          'google/protobuf/io/zero_copy_stream_impl.h',
-          'google/protobuf/io/zero_copy_stream_impl_lite.h',
-          'google/protobuf/message.h',
-          'google/protobuf/message_lite.h',
-          'google/protobuf/package_info.h',
-          'google/protobuf/reflection_ops.h',
-          'google/protobuf/repeated_field.h',
-          'google/protobuf/service.h',
-          'google/protobuf/stubs/atomicops.h',
-          'google/protobuf/stubs/atomicops_internals_arm64_gcc.h',
-          'google/protobuf/stubs/atomicops_internals_arm_gcc.h',
-          'google/protobuf/stubs/atomicops_internals_arm_qnx.h',
-          'google/protobuf/stubs/atomicops_internals_atomicword_compat.h',
-          'google/protobuf/stubs/atomicops_internals_macosx.h',
-          'google/protobuf/stubs/atomicops_internals_mips_gcc.h',
-          'google/protobuf/stubs/atomicops_internals_pnacl.h',
-          'google/protobuf/stubs/atomicops_internals_tsan.h',
-          'google/protobuf/stubs/atomicops_internals_x86_gcc.h',
-          'google/protobuf/stubs/atomicops_internals_x86_msvc.h',
-          'google/protobuf/stubs/common.h',
-          'google/protobuf/stubs/hash.h',
-          'google/protobuf/stubs/map-util.h',
-          'google/protobuf/stubs/once.h',
-          'google/protobuf/stubs/platform_macros.h',
-          'google/protobuf/stubs/stl_util.h',
-          'google/protobuf/stubs/stringprintf.h',
-          'google/protobuf/stubs/strutil.h',
-          'google/protobuf/stubs/substitute.h',
-          'google/protobuf/stubs/template_util.h',
-          'google/protobuf/stubs/type_traits.h',
-          'google/protobuf/testing/file.h',
-          'google/protobuf/testing/googletest.h',
-          'google/protobuf/test_util.h',
-          'google/protobuf/test_util_lite.h',
-          'google/protobuf/text_format.h',
-          'google/protobuf/unknown_field_set.h',
-          'google/protobuf/wire_format.h',
-          'google/protobuf/wire_format_lite.h',
-          'google/protobuf/wire_format_lite_inl.h',
-        ],
-      },
-      'includes': [
-        '../../build/shim_headers.gypi',
-      ],
-    },
-    {
-      'target_name': 'protoc',
-      'type': 'none',
-      'toolsets': ['host', 'target'],
-    },
-    {
-      'target_name': 'py_proto',
-      'type': 'none',
-    },
-  ],
-}
diff --git a/build/linux/unbundle/re2.gyp b/build/linux/unbundle/re2.gyp
deleted file mode 100644
index e2e567a..0000000
--- a/build/linux/unbundle/re2.gyp
+++ /dev/null
@@ -1,37 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 're2',
-      'type': 'none',
-      'variables': {
-        'headers_root_path': '.',
-        'header_filenames': [
-          're2/filtered_re2.h',
-          're2/re2.h',
-          're2/set.h',
-          're2/stringpiece.h',
-          're2/variadic_function.h',
-        ],
-        'shim_generator_additional_args': [
-          # Chromium copy of re2 is patched to rename POSIX to POSIX_SYNTAX
-          # because of collision issues that break the build.
-          # Upstream refuses to make changes:
-          # http://code.google.com/p/re2/issues/detail?id=73 .
-          '--define', 'POSIX=POSIX_SYNTAX',
-        ],
-      },
-      'includes': [
-        '../../build/shim_headers.gypi',
-      ],
-      'link_settings': {
-        'libraries': [
-          '-lre2',
-        ],
-      },
-    }
-  ],
-}
diff --git a/build/linux/unbundle/remove_bundled_libraries.py b/build/linux/unbundle/remove_bundled_libraries.py
deleted file mode 100755
index 69e76f5..0000000
--- a/build/linux/unbundle/remove_bundled_libraries.py
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/usr/bin/env 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.
-
-"""
-Removes bundled libraries to make sure they are not used.
-
-See README for more details.
-"""
-
-
-import optparse
-import os.path
-import sys
-
-
-def DoMain(argv):
-  my_dirname = os.path.abspath(os.path.dirname(__file__))
-  source_tree_root = os.path.abspath(
-    os.path.join(my_dirname, '..', '..', '..'))
-
-  if os.path.join(source_tree_root, 'build', 'linux', 'unbundle') != my_dirname:
-    print ('Sanity check failed: please run this script from ' +
-           'build/linux/unbundle directory.')
-    return 1
-
-  parser = optparse.OptionParser()
-  parser.add_option('--do-remove', action='store_true')
-
-  options, args = parser.parse_args(argv)
-
-  exclusion_used = {}
-  for exclusion in args:
-    exclusion_used[exclusion] = False
-
-  for root, dirs, files in os.walk(source_tree_root, topdown=False):
-    # Only look at paths which contain a "third_party" component
-    # (note that e.g. third_party.png doesn't count).
-    root_relpath = os.path.relpath(root, source_tree_root)
-    if 'third_party' not in root_relpath.split(os.sep):
-      continue
-
-    for f in files:
-      path = os.path.join(root, f)
-      relpath = os.path.relpath(path, source_tree_root)
-
-      excluded = False
-      for exclusion in args:
-        # Require precise exclusions. Find the right-most third_party
-        # in the relative path, and if there is more than one ignore
-        # the exclusion if it's completely contained within the part
-        # before right-most third_party path component.
-        split = relpath.rsplit(os.sep + 'third_party' + os.sep, 1)
-        if len(split) > 1 and split[0].startswith(exclusion):
-          continue
-
-        if relpath.startswith(exclusion):
-          # Multiple exclusions can match the same path. Go through all of them
-          # and mark each one as used.
-          exclusion_used[exclusion] = True
-          excluded = True
-      if excluded:
-        continue
-
-      # Deleting gyp files almost always leads to gyp failures.
-      # These files come from Chromium project, and can be replaced if needed.
-      if f.endswith('.gyp') or f.endswith('.gypi'):
-        continue
-
-      # Deleting .isolate files leads to gyp failures. They are usually
-      # not used by a distro build anyway.
-      # See http://www.chromium.org/developers/testing/isolated-testing
-      # for more info.
-      if f.endswith('.isolate'):
-        continue
-
-      if options.do_remove:
-        # Delete the file - best way to ensure it's not used during build.
-        os.remove(path)
-      else:
-        # By default just print paths that would be removed.
-        print path
-
-  exit_code = 0
-
-  # Fail if exclusion list contains stale entries - this helps keep it
-  # up to date.
-  for exclusion, used in exclusion_used.iteritems():
-    if not used:
-      print '%s does not exist' % exclusion
-      exit_code = 1
-
-  if not options.do_remove:
-    print ('To actually remove files printed above, please pass ' +
-           '--do-remove flag.')
-
-  return exit_code
-
-
-if __name__ == '__main__':
-  sys.exit(DoMain(sys.argv[1:]))
diff --git a/build/linux/unbundle/replace_gyp_files.py b/build/linux/unbundle/replace_gyp_files.py
deleted file mode 100755
index d06ae41..0000000
--- a/build/linux/unbundle/replace_gyp_files.py
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/usr/bin/env 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.
-
-"""
-Replaces gyp files in tree with files from here that
-make the build use system libraries.
-"""
-
-
-import optparse
-import os.path
-import shutil
-import sys
-
-
-REPLACEMENTS = {
-  'use_system_expat': 'third_party/expat/expat.gyp',
-  'use_system_ffmpeg': 'third_party/ffmpeg/ffmpeg.gyp',
-  'use_system_flac': 'third_party/flac/flac.gyp',
-  'use_system_harfbuzz': 'third_party/harfbuzz-ng/harfbuzz.gyp',
-  'use_system_icu': 'third_party/icu/icu.gyp',
-  'use_system_jsoncpp': 'third_party/jsoncpp/jsoncpp.gyp',
-  'use_system_libevent': 'third_party/libevent/libevent.gyp',
-  'use_system_libjpeg': 'third_party/libjpeg/libjpeg.gyp',
-  'use_system_libpng': 'third_party/libpng/libpng.gyp',
-  'use_system_libusb': 'third_party/libusb/libusb.gyp',
-  'use_system_libvpx': 'third_party/libvpx/libvpx.gyp',
-  'use_system_libwebp': 'third_party/libwebp/libwebp.gyp',
-  'use_system_libxml': 'third_party/libxml/libxml.gyp',
-  'use_system_libxnvctrl' : 'third_party/libXNVCtrl/libXNVCtrl.gyp',
-  'use_system_libxslt': 'third_party/libxslt/libxslt.gyp',
-  'use_system_opus': 'third_party/opus/opus.gyp',
-  'use_system_protobuf': 'third_party/protobuf/protobuf.gyp',
-  'use_system_re2': 'third_party/re2/re2.gyp',
-  'use_system_snappy': 'third_party/snappy/snappy.gyp',
-  'use_system_speex': 'third_party/speex/speex.gyp',
-  'use_system_sqlite': 'third_party/sqlite/sqlite.gyp',
-  'use_system_v8': 'v8/tools/gyp/v8.gyp',
-  'use_system_zlib': 'third_party/zlib/zlib.gyp',
-}
-
-
-def DoMain(argv):
-  my_dirname = os.path.dirname(__file__)
-  source_tree_root = os.path.abspath(
-    os.path.join(my_dirname, '..', '..', '..'))
-
-  parser = optparse.OptionParser()
-
-  # Accept arguments in gyp command-line syntax, so that the caller can re-use
-  # command-line for this script and gyp.
-  parser.add_option('-D', dest='defines', action='append')
-
-  parser.add_option('--undo', action='store_true')
-
-  options, args = parser.parse_args(argv)
-
-  for flag, path in REPLACEMENTS.items():
-    if '%s=1' % flag not in options.defines:
-      continue
-
-    if options.undo:
-      # Restore original file, and also remove the backup.
-      # This is meant to restore the source tree to its original state.
-      os.rename(os.path.join(source_tree_root, path + '.orig'),
-                os.path.join(source_tree_root, path))
-    else:
-      # Create a backup copy for --undo.
-      shutil.copyfile(os.path.join(source_tree_root, path),
-                      os.path.join(source_tree_root, path + '.orig'))
-
-      # Copy the gyp file from directory of this script to target path.
-      shutil.copyfile(os.path.join(my_dirname, os.path.basename(path)),
-                      os.path.join(source_tree_root, path))
-
-  return 0
-
-
-if __name__ == '__main__':
-  sys.exit(DoMain(sys.argv))
diff --git a/build/linux/unbundle/snappy.gyp b/build/linux/unbundle/snappy.gyp
deleted file mode 100644
index ab856ed..0000000
--- a/build/linux/unbundle/snappy.gyp
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'snappy',
-      'type': 'none',
-      'variables': {
-        'headers_root_path': 'src',
-        'header_filenames': [
-          'snappy-c.h',
-          'snappy-sinksource.h',
-          'snappy-stubs-public.h',
-          'snappy.h',
-        ],
-      },
-      'includes': [
-        '../../build/shim_headers.gypi',
-      ],
-      'link_settings': {
-        'libraries': [
-          '-lsnappy',
-        ],
-      },
-    },
-  ],
-}
diff --git a/build/linux/unbundle/speex.gyp b/build/linux/unbundle/speex.gyp
deleted file mode 100644
index 75376c8..0000000
--- a/build/linux/unbundle/speex.gyp
+++ /dev/null
@@ -1,45 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'libspeex',
-      'type': 'none',
-      'variables': {
-        'headers_root_path': 'include',
-        'header_filenames': [
-          'speex/speex_types.h',
-          'speex/speex_callbacks.h',
-          'speex/speex_config_types.h',
-          'speex/speex_stereo.h',
-          'speex/speex_echo.h',
-          'speex/speex_preprocess.h',
-          'speex/speex_jitter.h',
-          'speex/speex.h',
-          'speex/speex_resampler.h',
-          'speex/speex_buffer.h',
-          'speex/speex_header.h',
-          'speex/speex_bits.h',
-        ],
-      },
-      'includes': [
-        '../../build/shim_headers.gypi',
-      ],
-      'direct_dependent_settings': {
-        'cflags': [
-          '<!@(pkg-config --cflags speex)',
-        ],
-      },
-      'link_settings': {
-        'ldflags': [
-          '<!@(pkg-config --libs-only-L --libs-only-other speex)',
-        ],
-        'libraries': [
-          '<!@(pkg-config --libs-only-l speex)',
-        ],
-      },
-    },
-  ],
-}
diff --git a/build/linux/unbundle/sqlite.gyp b/build/linux/unbundle/sqlite.gyp
deleted file mode 100644
index 918da92..0000000
--- a/build/linux/unbundle/sqlite.gyp
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'sqlite',
-      'type': 'none',
-      'direct_dependent_settings': {
-        'cflags': [
-          '<!@(pkg-config --cflags sqlite3)',
-        ],
-        'defines': [
-          'USE_SYSTEM_SQLITE',
-        ],
-      },
-      'link_settings': {
-        'ldflags': [
-          '<!@(pkg-config --libs-only-L --libs-only-other sqlite3)',
-        ],
-        'libraries': [
-          '<!@(pkg-config --libs-only-l sqlite3)',
-        ],
-      },
-    },
-  ],
-}
diff --git a/build/linux/unbundle/v8.gyp b/build/linux/unbundle/v8.gyp
deleted file mode 100644
index 9b06347..0000000
--- a/build/linux/unbundle/v8.gyp
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 2013 the V8 project authors. All rights reserved.
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-#     * Redistributions of source code must retain the above copyright
-#       notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-#       copyright notice, this list of conditions and the following
-#       disclaimer in the documentation and/or other materials provided
-#       with the distribution.
-#     * Neither the name of Google Inc. nor the names of its
-#       contributors may be used to endorse or promote products derived
-#       from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-{
-  'includes': ['../../build/toolchain.gypi', '../../build/features.gypi'],
-  'targets': [
-    {
-      'target_name': 'v8',
-      'type': 'none',
-      'toolsets': ['host', 'target'],
-      'variables': {
-        'headers_root_path': '../../include',
-        'header_filenames': [
-          'v8-debug.h',
-          'v8-preparser.h',
-          'v8-profiler.h',
-          'v8-testing.h',
-          'v8.h',
-          'v8stdint.h',
-        ],
-      },
-      'includes': [
-        '../../../build/shim_headers.gypi',
-      ],
-      'link_settings': {
-        'libraries': [
-          '-lv8',
-        ],
-      },
-    },
-    {
-      'target_name': 'v8_shell',
-      'type': 'none',
-      'toolsets': ['host', 'target'],
-      'dependencies': [
-        'v8'
-      ],
-    },
-  ],
-}
diff --git a/build/linux/unbundle/zlib.gyp b/build/linux/unbundle/zlib.gyp
deleted file mode 100644
index 0a85ff0..0000000
--- a/build/linux/unbundle/zlib.gyp
+++ /dev/null
@@ -1,67 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'zlib',
-      'type': 'none',
-      'variables': {
-        'headers_root_path': '.',
-        'header_filenames': [
-          'zlib.h',
-        ],
-      },
-      'includes': [
-        '../../build/shim_headers.gypi',
-      ],
-      'direct_dependent_settings': {
-        'defines': [
-          'USE_SYSTEM_ZLIB',
-        ],
-      },
-      'link_settings': {
-        'libraries': [
-          '-lz',
-        ],
-      },
-    },
-    {
-      'target_name': 'minizip',
-      'type': 'static_library',
-      'all_dependent_settings': {
-        'defines': [
-          'USE_SYSTEM_MINIZIP',
-        ],
-      },
-      'defines': [
-        'USE_SYSTEM_MINIZIP',
-      ],
-      'link_settings': {
-        'libraries': [
-          '-lminizip',
-        ],
-      },
-    },
-    {
-      'target_name': 'zip',
-      'type': 'static_library',
-      'dependencies': [
-        'minizip',
-        '../../base/base.gyp:base',
-      ],
-      'include_dirs': [
-        '../..',
-      ],
-      'sources': [
-        'google/zip.cc',
-        'google/zip.h',
-        'google/zip_internal.cc',
-        'google/zip_internal.h',
-        'google/zip_reader.cc',
-        'google/zip_reader.h',
-      ],
-    },
-  ],
-}
diff --git a/build/mac/asan.gyp b/build/mac/asan.gyp
deleted file mode 100644
index 5231681..0000000
--- a/build/mac/asan.gyp
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright (c) 2013 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-{
-   'targets': [
-     {
-       'target_name': 'asan_dynamic_runtime',
-       'type': 'none',
-       'variables': {
-         # Every target is going to depend on asan_dynamic_runtime, so allow
-         # this one to depend on itself.
-         'prune_self_dependency': 1,
-         # Path is relative to this GYP file.
-         'asan_rtl_mask_path':
-             '../../third_party/llvm-build/Release+Asserts/lib/clang/*/lib/darwin',
-         'asan_osx_dynamic':
-             '<(asan_rtl_mask_path)/libclang_rt.asan_osx_dynamic.dylib',
-         'asan_iossim_dynamic':
-             '<(asan_rtl_mask_path)/libclang_rt.asan_iossim_dynamic.dylib',
-       },
-       'conditions': [
-         ['OS=="mac"', {
-           'copies': [
-             {
-               'destination': '<(PRODUCT_DIR)',
-               'files': [
-                 '<!(/bin/ls <(asan_osx_dynamic))',
-               ],
-             },
-           ],
-         }],
-         # ASan works with iOS simulator only, not bare-metal iOS.
-         ['OS=="ios" and target_arch=="ia32"', {
-           'toolsets': ['host', 'target'],
-           'copies': [
-             {
-               'destination': '<(PRODUCT_DIR)',
-               'target_conditions': [
-                 ['_toolset=="host"', {
-                   'files': [ '<!(/bin/ls <(asan_osx_dynamic))'],
-                 }],
-                 ['_toolset=="target"', {
-                   'files': [ '<!(/bin/ls <(asan_iossim_dynamic))'],
-                 }],
-               ],
-             },
-           ],
-         }],
-       ],
-     },
-   ],
-}
diff --git a/build/nocompile.gypi b/build/nocompile.gypi
deleted file mode 100644
index 8c0f288..0000000
--- a/build/nocompile.gypi
+++ /dev/null
@@ -1,96 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# This file is meant to be included into an target to create a unittest that
-# invokes a set of no-compile tests.  A no-compile test is a test that asserts
-# a particular construct will not compile.
-#
-# Also see:
-#   http://dev.chromium.org/developers/testing/no-compile-tests
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'my_module_nc_unittests',
-#   'type': 'executable',
-#   'sources': [
-#     'nc_testset_1.nc',
-#     'nc_testset_2.nc',
-#   ],
-#   'includes': ['path/to/this/gypi/file'],
-# }
-#
-# The .nc files are C++ files that contain code we wish to assert will not
-# compile.  Each individual test case in the file should be put in its own
-# #ifdef section.  The expected output should be appended with a C++-style
-# comment that has a python list of regular expressions.  This will likely
-# be greater than 80-characters. Giving a solid expected output test is
-# important so that random compile failures do not cause the test to pass.
-#
-# Example .nc file:
-#
-#   #if defined(TEST_NEEDS_SEMICOLON)  // [r"expected ',' or ';' at end of input"]
-#
-#   int a = 1
-#
-#   #elif defined(TEST_NEEDS_CAST)  // [r"invalid conversion from 'void*' to 'char*'"]
-#
-#   void* a = NULL;
-#   char* b = a;
-#
-#   #endif
-#
-# If we needed disable TEST_NEEDS_SEMICOLON, then change the define to:
-#
-#   DISABLE_TEST_NEEDS_SEMICOLON
-#   TEST_NEEDS_CAST
-#
-# The lines above are parsed by a regexp so avoid getting creative with the
-# formatting or ifdef logic; it will likely just not work.
-#
-# Implementation notes:
-# The .nc files are actually processed by a python script which executes the
-# compiler and generates a .cc file that is empty on success, or will have a
-# series of #error lines on failure, and a set of trivially passing gunit
-# TEST() functions on success. This allows us to fail at the compile step when
-# something goes wrong, and know during the unittest run that the test was at
-# least processed when things go right.
-
-{
-  # TODO(awong): Disabled until http://crbug.com/105388 is resolved.
-  'sources/': [['exclude', '\\.nc$']],
-  'conditions': [
-    [ 'OS!="win" and clang==1', {
-      'rules': [
-        {
-          'variables': {
-            'nocompile_driver': '<(DEPTH)/tools/nocompile_driver.py',
-            'nc_result_path': ('<(INTERMEDIATE_DIR)/<(module_dir)/'
-                               '<(RULE_INPUT_ROOT)_nc.cc'),
-           },
-          'rule_name': 'run_nocompile',
-          'extension': 'nc',
-          'inputs': [
-            '<(nocompile_driver)',
-          ],
-          'outputs': [
-            '<(nc_result_path)'
-          ],
-          'action': [
-            'python',
-            '<(nocompile_driver)',
-            '4', # number of compilers to invoke in parallel.
-            '<(RULE_INPUT_PATH)',
-            '-Wall -Werror -Wfatal-errors -I<(DEPTH)',
-            '<(nc_result_path)',
-            ],
-          'message': 'Generating no compile results for <(RULE_INPUT_PATH)',
-          'process_outputs_as_sources': 1,
-        },
-      ],
-    }, {
-      'sources/': [['exclude', '\\.nc$']]
-    }],  # 'OS!="win" and clang=="1"'
-  ],
-}
-
diff --git a/build/protoc.gypi b/build/protoc.gypi
deleted file mode 100644
index fafdf9d..0000000
--- a/build/protoc.gypi
+++ /dev/null
@@ -1,123 +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 meant to be included into a target to provide a rule
-# to invoke protoc in a consistent manner. For Java-targets, see
-# protoc_java.gypi.
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'my_proto_lib',
-#   'type': 'static_library',
-#   'sources': [
-#     'foo.proto',
-#     'bar.proto',
-#   ],
-#   'variables': {
-#     # Optional, see below: 'proto_in_dir': '.'
-#     'proto_out_dir': 'dir/for/my_proto_lib'
-#   },
-#   'includes': ['path/to/this/gypi/file'],
-# }
-# If necessary, you may add normal .cc files to the sources list or other gyp
-# dependencies.  The proto headers are guaranteed to be generated before any
-# source files, even within this target, are compiled.
-#
-# The 'proto_in_dir' variable must be the relative path to the
-# directory containing the .proto files.  If left out, it defaults to '.'.
-#
-# The 'proto_out_dir' variable specifies the path suffix that output
-# files are generated under.  Targets that gyp-depend on my_proto_lib
-# will be able to include the resulting proto headers with an include
-# like:
-#   #include "dir/for/my_proto_lib/foo.pb.h"
-#
-# If you need to add an EXPORT macro to a protobuf's c++ header, set the
-# 'cc_generator_options' variable with the value: 'dllexport_decl=FOO_EXPORT:'
-# e.g. 'dllexport_decl=BASE_EXPORT:'
-#
-# It is likely you also need to #include a file for the above EXPORT macro to
-# work. You can do so with the 'cc_include' variable.
-# e.g. 'base/base_export.h'
-#
-# Implementation notes:
-# A proto_out_dir of foo/bar produces
-#   <(SHARED_INTERMEDIATE_DIR)/protoc_out/foo/bar/{file1,file2}.pb.{cc,h}
-#   <(SHARED_INTERMEDIATE_DIR)/pyproto/foo/bar/{file1,file2}_pb2.py
-
-{
-  'variables': {
-    'protoc_wrapper': '<(DEPTH)/tools/protoc_wrapper/protoc_wrapper.py',
-    'cc_dir': '<(SHARED_INTERMEDIATE_DIR)/protoc_out/<(proto_out_dir)',
-    'py_dir': '<(PRODUCT_DIR)/pyproto/<(proto_out_dir)',
-    'cc_generator_options%': '',
-    'cc_include%': '',
-    'proto_in_dir%': '.',
-    'conditions': [
-      ['use_system_protobuf==0', {
-        'protoc': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
-      }, { # use_system_protobuf==1
-        'protoc': '<!(which protoc)',
-      }],
-    ],
-  },
-  'rules': [
-    {
-      'rule_name': 'genproto',
-      'extension': 'proto',
-      'inputs': [
-        '<(protoc_wrapper)',
-        '<(protoc)',
-      ],
-      'outputs': [
-        '<(py_dir)/<(RULE_INPUT_ROOT)_pb2.py',
-        '<(cc_dir)/<(RULE_INPUT_ROOT).pb.cc',
-        '<(cc_dir)/<(RULE_INPUT_ROOT).pb.h',
-      ],
-      'action': [
-        'python',
-        '<(protoc_wrapper)',
-        '--include',
-        '<(cc_include)',
-        '--protobuf',
-        '<(cc_dir)/<(RULE_INPUT_ROOT).pb.h',
-        # Using the --arg val form (instead of --arg=val) allows gyp's msvs rule
-        # generation to correct 'val' which is a path.
-        '--proto-in-dir','<(proto_in_dir)',
-        # Naively you'd use <(RULE_INPUT_PATH) here, but protoc requires
-        # --proto_path is a strict prefix of the path given as an argument.
-        '--proto-in-file','<(RULE_INPUT_ROOT)<(RULE_INPUT_EXT)',
-        '--use-system-protobuf=<(use_system_protobuf)',
-        '--',
-        '<(protoc)',
-        '--cpp_out', '<(cc_generator_options)<(cc_dir)',
-        '--python_out', '<(py_dir)',
-      ],
-      'message': 'Generating C++ and Python code from <(RULE_INPUT_PATH)',
-      'process_outputs_as_sources': 1,
-    },
-  ],
-  'dependencies': [
-    '<(DEPTH)/third_party/protobuf/protobuf.gyp:protoc#host',
-    '<(DEPTH)/third_party/protobuf/protobuf.gyp:protobuf_lite',
-  ],
-  'include_dirs': [
-    '<(SHARED_INTERMEDIATE_DIR)/protoc_out',
-    '<(DEPTH)',
-  ],
-  'direct_dependent_settings': {
-    'include_dirs': [
-      '<(SHARED_INTERMEDIATE_DIR)/protoc_out',
-      '<(DEPTH)',
-    ]
-  },
-  'export_dependent_settings': [
-    # The generated headers reference headers within protobuf_lite,
-    # so dependencies must be able to find those headers too.
-    '<(DEPTH)/third_party/protobuf/protobuf.gyp:protobuf_lite',
-  ],
-  # This target exports a hard dependency because it generates header
-  # files.
-  'hard_dependency': 1,
-}
diff --git a/build/protoc_java.gypi b/build/protoc_java.gypi
deleted file mode 100644
index 6fd80d8..0000000
--- a/build/protoc_java.gypi
+++ /dev/null
@@ -1,83 +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 meant to be included into a target to provide a rule
-# to invoke protoc in a consistent manner. This is only to be included
-# for Java targets. When including this file, a .jar-file will be generated.
-# For other targets, see protoc.gypi.
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'my_proto_lib',
-#   'sources': [
-#     'foo.proto',
-#     'bar.proto',
-#   ],
-#   'variables': {
-#     'proto_in_dir': '.'
-#   },
-#   'includes': ['path/to/this/gypi/file'],
-# }
-#
-# The 'proto_in_dir' variable must be the relative path to the
-# directory containing the .proto files.  If left out, it defaults to '.'.
-#
-# The 'output_java_files' variable specifies a list of output files that will
-# be generated. It is based on the package and java_outer_classname fields in
-# the proto. All the values must be prefixed with >(java_out_dir), since that
-# is the root directory of all the output.
-#
-# Implementation notes:
-# A target_name of foo and proto-specified 'package' java.package.path produces:
-#   <(PRODUCT_DIR)/java_proto/foo/{java/package/path/}{Foo,Bar}.java
-# where Foo and Bar are taken from 'java_outer_classname' of the protos.
-#
-# How the .jar-file is created is different than how protoc is used for other
-# targets, and as such, this lives in its own file.
-
-{
-  'variables': {
-    'protoc': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)android_protoc<(EXECUTABLE_SUFFIX)',
-    'java_out_dir': '<(PRODUCT_DIR)/java_proto/<(_target_name)/src',
-    'proto_in_dir%': '.',
-    'stamp_file': '<(java_out_dir).stamp',
-    'script': '<(DEPTH)/build/protoc_java.py',
-
-    # The rest of the variables here are for the java.gypi include.
-    'java_in_dir': '<(DEPTH)/build/android/empty',
-    'generated_src_dirs': ['<(java_out_dir)'],
-    # Adding the |stamp_file| to |additional_input_paths| makes the actions in
-    # the include of java.gypi depend on the genproto_java action.
-    'additional_input_paths': ['<(stamp_file)'],
-    'run_findbugs': 0,
-  },
-  'actions': [
-    {
-      'action_name': 'genproto_java',
-      'inputs': [
-        '<(script)',
-        '<(protoc)',
-        '<@(_sources)',
-      ],
-      # We do not know the names of the generated files, so we use a stamp.
-      'outputs': [
-        '<(stamp_file)',
-      ],
-      'action': [
-        '<(script)',
-        '--protoc=<(protoc)',
-        '--proto-path=<(proto_in_dir)',
-        '--java-out-dir=<(java_out_dir)',
-        '--stamp=<(stamp_file)',
-        '<@(_sources)',
-      ],
-      'message': 'Generating Java code from protobuf files in <(proto_in_dir)',
-    },
-  ],
-  'dependencies': [
-    '<(DEPTH)/third_party/android_protobuf/android_protobuf.gyp:android_protoc#host',
-    '<(DEPTH)/third_party/android_protobuf/android_protobuf.gyp:protobuf_nano_javalib',
-  ],
-  'includes': [ 'java.gypi' ],
-}
diff --git a/build/release.gypi b/build/release.gypi
deleted file mode 100644
index 9b8b11d..0000000
--- a/build/release.gypi
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-  'conditions': [
-    # Handle build types.
-    ['buildtype=="Dev"', {
-      'includes': ['internal/release_impl.gypi'],
-    }],
-    ['buildtype=="Dev" and incremental_chrome_dll==1', {
-      'msvs_settings': {
-        'VCLinkerTool': {
-          # Enable incremental linking and disable conflicting link options:
-          # http://msdn.microsoft.com/en-us/library/4khtbfyf.aspx
-          'LinkIncremental': '2',
-          'OptimizeReferences': '1',
-          'EnableCOMDATFolding': '1',
-          'Profile': 'false',
-        },
-      },
-    }],
-    ['buildtype=="Official"', {
-      'includes': ['internal/release_impl_official.gypi'],
-    }],
-    # TODO(bradnelson): may also need:
-    #     checksenabled
-    #     coverage
-    #     dom_stats
-    #     pgo_instrument
-    #     pgo_optimize
-  ],
-}
diff --git a/build/repack_action.gypi b/build/repack_action.gypi
deleted file mode 100644
index 04b982a..0000000
--- a/build/repack_action.gypi
+++ /dev/null
@@ -1,31 +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.
-
-# This file is meant to be included into an action to invoke grit repack in a
-# consistent manner. To use this the following variables need to be
-# defined:
-#   pak_inputs: list: paths of pak files that need to be combined.
-#   pak_output: string: the output pak file path.
-
-{
-  # GYP version: //tools/grit/repack.gni
-  'variables': {
-    'repack_path': '<(DEPTH)/tools/grit/grit/format/repack.py',
-    'repack_options%': [],
-  },
-  'inputs': [
-    '<(repack_path)',
-    '<@(pak_inputs)',
-  ],
-  'outputs': [
-    '<(pak_output)'
-  ],
-  'action': [
-    'python',
-    '<(repack_path)',
-    '<@(repack_options)',
-    '<(pak_output)',
-    '<@(pak_inputs)',
-  ],
-}
diff --git a/build/sanitizers/sanitizers.gyp b/build/sanitizers/sanitizers.gyp
deleted file mode 100644
index 91dab8a..0000000
--- a/build/sanitizers/sanitizers.gyp
+++ /dev/null
@@ -1,92 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'sanitizer_options',
-      'type': 'static_library',
-      'toolsets': ['host', 'target'],
-      'variables': {
-         # Every target is going to depend on sanitizer_options, so allow
-         # this one to depend on itself.
-         'prune_self_dependency': 1,
-         # Do not let 'none' targets depend on this one, they don't need to.
-         'link_dependency': 1,
-       },
-      'sources': [
-        'sanitizer_options.cc',
-      ],
-      'include_dirs': [
-        '../..',
-      ],
-      # Some targets may want to opt-out from ASan, TSan and MSan and link
-      # without the corresponding runtime libraries. We drop the libc++
-      # dependency and omit the compiler flags to avoid bringing instrumented
-      # code to those targets.
-      'conditions': [
-        ['use_custom_libcxx==1', {
-          'dependencies!': [
-            '../../buildtools/third_party/libc++/libc++.gyp:libcxx_proxy',
-          ],
-        }],
-        ['tsan==1', {
-          'sources': [
-            'tsan_suppressions.cc',
-          ],
-        }],
-        ['lsan==1', {
-          'sources': [
-            'lsan_suppressions.cc',
-          ],
-        }],
-        ['asan==1', {
-          'sources': [
-            'asan_suppressions.cc',
-          ],
-        }],
-      ],
-      'cflags/': [
-        ['exclude', '-fsanitize='],
-        ['exclude', '-fsanitize-'],
-      ],
-      'direct_dependent_settings': {
-        'ldflags': [
-          '-Wl,-u_sanitizer_options_link_helper',
-        ],
-        'target_conditions': [
-          ['_type=="executable"', {
-            'xcode_settings': {
-              'OTHER_LDFLAGS': [
-                '-Wl,-u,__sanitizer_options_link_helper',
-              ],
-            },
-          }],
-        ],
-      },
-    },
-    {
-      # Copy llvm-symbolizer to the product dir so that LKGR bots can package it.
-      'target_name': 'llvm-symbolizer',
-      'type': 'none',
-      'variables': {
-
-       # Path is relative to this GYP file.
-       'llvm_symbolizer_path':
-           '../../third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer<(EXECUTABLE_SUFFIX)',
-      },
-      'conditions': [
-        ['clang==1', {
-          'copies': [{
-            'destination': '<(PRODUCT_DIR)',
-            'files': [
-              '<(llvm_symbolizer_path)',
-            ],
-          }],
-        }],
-      ],
-    },
-  ],
-}
-
diff --git a/build/set_clang_warning_flags.gypi b/build/set_clang_warning_flags.gypi
deleted file mode 100644
index f6d7aea..0000000
--- a/build/set_clang_warning_flags.gypi
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright (c) 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 file is meant to be included to set clang-specific compiler flags.
-# To use this the following variable can be defined:
-#   clang_warning_flags:       list: Compiler flags to pass to clang.
-#   clang_warning_flags_unset: list: Compiler flags to not pass to clang.
-#
-# Only use this in third-party code. In chromium_code, fix your code to not
-# warn instead!
-#
-# Note that the gypi file is included in target_defaults, so it does not need
-# to be explicitly included.
-#
-# Warning flags set by this will be used on all platforms. If you want to set
-# warning flags on only some platforms, you have to do so manually.
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'my_target',
-#   'variables': {
-#     'clang_warning_flags': ['-Wno-awesome-warning'],
-#     'clang_warning_flags_unset': ['-Wpreviously-set-flag'],
-#   }
-# }
-
-{
-  'variables': {
-    'clang_warning_flags_unset%': [],  # Provide a default value.
-  },
-  'conditions': [
-    ['clang==1', {
-      # This uses >@ instead of @< to also see clang_warning_flags set in
-      # targets directly, not just the clang_warning_flags in target_defaults.
-      'cflags': [ '>@(clang_warning_flags)' ],
-      'cflags!': [ '>@(clang_warning_flags_unset)' ],
-      'xcode_settings': {
-        'WARNING_CFLAGS': ['>@(clang_warning_flags)'],
-        'WARNING_CFLAGS!': ['>@(clang_warning_flags_unset)'],
-      },
-      'msvs_settings': {
-        'VCCLCompilerTool': {
-          'AdditionalOptions': [ '>@(clang_warning_flags)' ],
-          'AdditionalOptions!': [ '>@(clang_warning_flags_unset)' ],
-        },
-      },
-    }],
-    ['clang==0 and host_clang==1', {
-      'target_conditions': [
-        ['_toolset=="host"', {
-          'cflags': [ '>@(clang_warning_flags)' ],
-          'cflags!': [ '>@(clang_warning_flags_unset)' ],
-        }],
-      ],
-    }],
-  ],
-}
diff --git a/build/shim_headers.gypi b/build/shim_headers.gypi
deleted file mode 100644
index 56d8d3a..0000000
--- a/build/shim_headers.gypi
+++ /dev/null
@@ -1,60 +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 meant to be included into a target to handle shim headers
-# in a consistent manner. To use this the following variables need to be
-# defined:
-#   headers_root_path: string: path to directory containing headers
-#   header_filenames: list: list of header file names
-
-{
-  'variables': {
-    'shim_headers_path': '<(SHARED_INTERMEDIATE_DIR)/shim_headers/<(_target_name)/<(_toolset)',
-    'shim_generator_additional_args%': [],
-  },
-  'include_dirs++': [
-    '<(shim_headers_path)',
-  ],
-  'all_dependent_settings': {
-    # Repeating this with different numbers of plusses is unfortunately required
-    # to make sure that even if this include is inside nested conditions/etc, it
-    # still gets inserted at the beginning of the include_dirs list. See
-    # http://crbug.com/263818 for details.
-    'include_dirs+++': [
-      '<(shim_headers_path)',
-    ],
-    'include_dirs++++': [
-      '<(shim_headers_path)',
-    ],
-    'include_dirs+++++': [
-      '<(shim_headers_path)',
-    ],
-  },
-  'actions': [
-    {
-      'variables': {
-        'generator_path': '<(DEPTH)/tools/generate_shim_headers/generate_shim_headers.py',
-        'generator_args': [
-          '--headers-root', '<(headers_root_path)',
-          '--output-directory', '<(shim_headers_path)',
-          '<@(shim_generator_additional_args)',
-          '<@(header_filenames)',
-        ],
-      },
-      'action_name': 'generate_<(_target_name)_shim_headers',
-      'inputs': [
-        '<(generator_path)',
-      ],
-      'outputs': [
-        '<!@pymod_do_main(generate_shim_headers <@(generator_args) --outputs)',
-      ],
-      'action': ['python',
-                 '<(generator_path)',
-                 '<@(generator_args)',
-                 '--generate',
-      ],
-      'message': 'Generating <(_target_name) shim headers',
-    },
-  ],
-}
diff --git a/build/some.gyp b/build/some.gyp
deleted file mode 100644
index 44a1dd5..0000000
--- a/build/some.gyp
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-{
-  'targets': [
-    {
-      'target_name': 'some',
-      'type': 'none',
-      'dependencies': [
-        # This file is intended to be locally modified. List the targets you use
-        # regularly. The generated some.sln will contains projects for only
-        # those targets and the targets they are transitively dependent on. This
-        # can result in a solution that loads and unloads faster in Visual
-        # Studio.
-        #
-        # Tip: Create a dummy CL to hold your local edits to this file, so they
-        # don't accidentally get added to another CL that you are editing.
-        #
-        # Example:
-        # '../chrome/chrome.gyp:chrome',
-      ],
-    },
-  ],
-}
diff --git a/build/temp_gyp/pdfsqueeze.gyp b/build/temp_gyp/pdfsqueeze.gyp
deleted file mode 100644
index 2b3b1ff..0000000
--- a/build/temp_gyp/pdfsqueeze.gyp
+++ /dev/null
@@ -1,40 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'pdfsqueeze',
-      'type': 'executable',
-      'sources': [
-        '../../third_party/pdfsqueeze/pdfsqueeze.m',
-      ],
-      'defines': [
-        # Use defines to map the full path names that will be used for
-        # the vars into the short forms expected by pdfsqueeze.m.
-        '______third_party_pdfsqueeze_ApplyGenericRGB_qfilter=ApplyGenericRGB_qfilter',
-        '______third_party_pdfsqueeze_ApplyGenericRGB_qfilter_len=ApplyGenericRGB_qfilter_len',
-      ],
-      'include_dirs': [
-        '<(INTERMEDIATE_DIR)',
-      ],
-      'libraries': [
-        '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
-        '$(SDKROOT)/System/Library/Frameworks/Quartz.framework',
-      ],
-      'actions': [
-        {
-          'action_name': 'Generate inline filter data',
-          'inputs': [
-            '../../third_party/pdfsqueeze/ApplyGenericRGB.qfilter',
-          ],
-          'outputs': [
-            '<(INTERMEDIATE_DIR)/ApplyGenericRGB.h',
-          ],
-          'action': ['xxd', '-i', '<@(_inputs)', '<@(_outputs)'],
-        },
-      ],
-    },
-  ],
-}
diff --git a/build/uiautomator_test.gypi b/build/uiautomator_test.gypi
deleted file mode 100644
index e9bd0bf..0000000
--- a/build/uiautomator_test.gypi
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2013 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# This file is meant to be included into a target to provide a rule
-# to build uiautomator dexed tests jar.
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'test_suite_name',
-#   'type': 'none',
-#   'includes': ['path/to/this/gypi/file'],
-# }
-#
-
-{
-  'dependencies': [
-    '<(DEPTH)/build/android/pylib/device/commands/commands.gyp:chromium_commands',
-    '<(DEPTH)/tools/android/android_tools.gyp:android_tools',
-  ],
-  'variables': {
-    'output_dex_path': '<(PRODUCT_DIR)/lib.java/<(_target_name).dex.jar',
-  },
-  'actions': [
-    {
-      'action_name': 'dex_<(_target_name)',
-      'message': 'Dexing <(_target_name) jar',
-      'variables': {
-        'dex_input_paths': [
-          '>@(library_dexed_jars_paths)',
-        ],
-        'output_path': '<(output_dex_path)',
-      },
-      'includes': [ 'android/dex_action.gypi' ],
-    },
-  ],
-}
diff --git a/build/util/version.gypi b/build/util/version.gypi
deleted file mode 100644
index 327a5c2..0000000
--- a/build/util/version.gypi
+++ /dev/null
@@ -1,20 +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.
-
-{
-  'variables': {
-    'variables': {
-      'version_py_path': '<(DEPTH)/build/util/version.py',
-      'version_path': '<(DEPTH)/chrome/VERSION',
-      'lastchange_path': '<(DEPTH)/build/util/LASTCHANGE',
-    },
-    'version_py_path': '<(version_py_path)',
-    'version_path': '<(version_path)',
-    'lastchange_path': '<(lastchange_path)',
-    'version_full':
-        '<!(python <(version_py_path) -f <(version_path) -t "@MAJOR@.@MINOR@.@BUILD@.@PATCH@")',
-    'version_mac_dylib':
-        '<!(python <(version_py_path) -f <(version_path) -t "@BUILD@.@PATCH_HI@.@PATCH_LO@" -e "PATCH_HI=int(PATCH)/256" -e "PATCH_LO=int(PATCH)%256")',
-  },  # variables
-}
diff --git a/build/win/asan.gyp b/build/win/asan.gyp
deleted file mode 100644
index c0d0c98..0000000
--- a/build/win/asan.gyp
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 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.
-
-{
-   'targets': [
-     {
-       'target_name': 'asan_dynamic_runtime',
-       'type': 'none',
-       'variables': {
-         # Every target is going to depend on asan_dynamic_runtime, so allow
-         # this one to depend on itself.
-         'prune_self_dependency': 1,
-       },
-       'conditions': [
-         ['OS=="win"', {
-           'copies': [
-             {
-               'destination': '<(PRODUCT_DIR)',
-               'files': [
-                 # Path is relative to this GYP file.
-                 '<(DEPTH)/<(make_clang_dir)/lib/clang/3.7.0/lib/windows/clang_rt.asan_dynamic-i386.dll',
-               ],
-             },
-           ],
-         }],
-       ],
-     },
-   ],
-}
diff --git a/build/win/importlibs/create_import_lib.gypi b/build/win/importlibs/create_import_lib.gypi
deleted file mode 100644
index 9cb0d34..0000000
--- a/build/win/importlibs/create_import_lib.gypi
+++ /dev/null
@@ -1,53 +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 meant to be included into a target to provide a rule
-# to create import libraries from an import description file in a consistent
-# manner.
-#
-# To use this, create a gyp target with the following form:
-# {
-#   'target_name': 'my_proto_lib',
-#   'type': 'none',
-#   'sources': [
-#     'foo.imports',
-#     'bar.imports',
-#   ],
-#   'variables': {
-#     # Optional, see below: 'proto_in_dir': '.'
-#     'create_importlib': 'path-to-script',
-#     'lib_dir': 'path-to-output-directory',
-#   },
-#   'includes': ['path/to/this/gypi/file'],
-# }
-#
-# This will generate import libraries named 'foo.lib' and 'bar.lib' in the
-# specified lib directory.
-
-{
-  'variables': {
-    'create_importlib': '<(DEPTH)/build/win/importlibs/create_importlib_win.py',
-    'lib_dir': '<(PRODUCT_DIR)/lib',
-  },
-  'rules': [
-    {
-      'rule_name': 'create_import_lib',
-      'extension': 'imports',
-      'inputs': [
-        '<(create_importlib)',
-      ],
-      'outputs': [
-        '<(lib_dir)/<(RULE_INPUT_ROOT).lib',
-      ],
-      'action': [
-        'python',
-        '<(create_importlib)',
-        '--output-file', '<@(_outputs)',
-        '<(RULE_INPUT_PATH)',
-      ],
-      'message': 'Generating import library from <(RULE_INPUT_PATH)',
-      'process_outputs_as_sources': 0,
-    },
-  ],
-}
diff --git a/build/win_precompile.gypi b/build/win_precompile.gypi
deleted file mode 100644
index fb86076..0000000
--- a/build/win_precompile.gypi
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# Include this file to make targets in your .gyp use the default
-# precompiled header on Windows, in debug builds only as the official
-# builders blow up (out of memory) if precompiled headers are used for
-# release builds.
-
-{
-  'conditions': [
-    ['OS=="win" and chromium_win_pch==1', {
-        'target_defaults': {
-          'msvs_precompiled_header': '<(DEPTH)/build/precompile.h',
-          'msvs_precompiled_source': '<(DEPTH)/build/precompile.cc',
-          'sources': ['<(DEPTH)/build/precompile.cc'],
-        }
-      }],
-  ],
-}
diff --git a/gin/fingerprint/fingerprint_v8_snapshot.gypi b/gin/fingerprint/fingerprint_v8_snapshot.gypi
deleted file mode 100644
index ede0de3..0000000
--- a/gin/fingerprint/fingerprint_v8_snapshot.gypi
+++ /dev/null
@@ -1,47 +0,0 @@
-# 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.
-
-# This file is meant to be included into a target to provide a rule that
-# fingerprints the v8 snapshot and generates a .cc file which includes this
-# fingerprint.
-#
-# To use this, create a gyp target with the following form:
-#  {
-#    'target_name': 'gin_v8_snapshot_fingerprint',
-#    'type': 'none',
-#    'variables': {
-#      'snapshot_file': 'snapshot blob file to be fingerprinted',
-#      'natives_file': 'natives blob file to be fingerprinted',
-#      'output_file': 'output .cc file to generate with fingerprints',
-#    },
-#    'includes': [ '../gin/fingerprint/fingerprint_v8_snapshot.gypi' ],
-#  },
-#
-
-{
-  'conditions': [
-    ['v8_use_external_startup_data==1', {
-      'actions': [
-        {
-          'action_name': 'Generate V8 snapshot fingerprint',
-          'message': 'Generating V8 snapshot fingerprint',
-          'inputs': [
-            '<(DEPTH)/gin/fingerprint/fingerprint_v8_snapshot.py',
-            '<(snapshot_file)',
-            '<(natives_file)',
-          ],
-          'outputs': [
-            '<(output_file)',
-          ],
-          'action': [
-            'python', '<(DEPTH)/gin/fingerprint/fingerprint_v8_snapshot.py',
-            '--snapshot_file=<(snapshot_file)',
-            '--natives_file=<(natives_file)',
-            '--output_file=<(output_file)',
-          ],
-        }
-      ],
-    }],
-  ],
-}
\ No newline at end of file
diff --git a/gin/gin.gyp b/gin/gin.gyp
deleted file mode 100644
index 096c120..0000000
--- a/gin/gin.gyp
+++ /dev/null
@@ -1,171 +0,0 @@
-# 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.
-
-{
-  'variables': {
-    'chromium_code': 1,
-    'gin_gen_path': '<(SHARED_INTERMEDIATE_DIR)/gin/',
-  },
-  'targets': [
-    {
-      'target_name': 'gin',
-      'type': '<(component)',
-      'dependencies': [
-        '../base/base.gyp:base',
-        '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
-        '../v8/tools/gyp/v8.gyp:v8',
-      ],
-      'export_dependent_settings': [
-        '../base/base.gyp:base',
-        '../v8/tools/gyp/v8.gyp:v8',
-      ],
-      'defines': [
-        'GIN_IMPLEMENTATION',
-      ],
-      'sources': [
-        'arguments.cc',
-        'arguments.h',
-        'array_buffer.cc',
-        'array_buffer.h',
-        'context_holder.cc',
-        'converter.cc',
-        'converter.h',
-        'debug_impl.cc',
-        'debug_impl.h',
-        'dictionary.cc',
-        'dictionary.h',
-        'function_template.cc',
-        'function_template.h',
-        'gin_export.h',
-        'handle.h',
-        'interceptor.cc',
-        'interceptor.h',
-        'isolate_holder.cc',
-        'modules/console.cc',
-        'modules/console.h',
-        'modules/file_module_provider.cc',
-        'modules/file_module_provider.h',
-        'modules/module_registry.cc',
-        'modules/module_registry.h',
-        'modules/module_registry_observer.h',
-        'modules/module_runner_delegate.cc',
-        'modules/module_runner_delegate.h',
-        'modules/timer.cc',
-        'modules/timer.h',
-        'object_template_builder.cc',
-        'object_template_builder.h',
-        'per_context_data.cc',
-        'per_context_data.h',
-        'per_isolate_data.cc',
-        'per_isolate_data.h',
-        'public/context_holder.h',
-        'public/debug.h',
-        'public/gin_embedders.h',
-        'public/isolate_holder.h',
-        'public/v8_platform.h',
-        'public/wrapper_info.h',
-        'runner.cc',
-        'runner.h',
-        'run_microtasks_observer.cc',
-        'run_microtasks_observer.h',
-        'shell_runner.cc',
-        'shell_runner.h',
-        'try_catch.cc',
-        'try_catch.h',
-        'v8_platform.cc',
-        'wrappable.cc',
-        'wrappable.h',
-        'wrapper_info.cc',
-      ],
-      'conditions': [
-        ['v8_use_external_startup_data==1 and OS=="win"', {
-          'dependencies': [
-            'gin_v8_snapshot_fingerprint',
-            '../crypto/crypto.gyp:crypto',
-          ],
-          'sources': [
-            '<(gin_gen_path)/v8_snapshot_fingerprint.cc',
-          ],
-          'defines': [
-            'V8_VERIFY_EXTERNAL_STARTUP_DATA',
-          ]
-        }],
-      ],
-    },
-    {
-      'target_name': 'gin_v8_snapshot_fingerprint',
-      'type': 'none',
-      'variables': {
-        'snapshot_file': '<(PRODUCT_DIR)/snapshot_blob.bin',
-        'natives_file': '<(PRODUCT_DIR)/natives_blob.bin',
-        'output_file': '<(gin_gen_path)/v8_snapshot_fingerprint.cc',
-      },
-      'includes': [ '../gin/fingerprint/fingerprint_v8_snapshot.gypi' ],
-    },
-    {
-      'target_name': 'gin_shell',
-      'type': 'executable',
-      'dependencies': [
-        '../base/base.gyp:base',
-        '../base/base.gyp:base_i18n',
-        '../v8/tools/gyp/v8.gyp:v8',
-        'gin',
-      ],
-      'sources': [
-        'shell/gin_main.cc',
-      ],
-      'msvs_settings': {
-        'VCLinkerTool': {
-          'SubSystem': '1', # /SUBSYSTEM:CONSOLE
-        },
-      },
-    },
-    {
-      'target_name': 'gin_test',
-      'type': 'static_library',
-      'dependencies': [
-        '../testing/gtest.gyp:gtest',
-        '../v8/tools/gyp/v8.gyp:v8',
-        'gin',
-      ],
-      'export_dependent_settings': [
-        '../testing/gtest.gyp:gtest',
-        'gin',
-      ],
-      'sources': [
-        'test/file.cc',
-        'test/file.h',
-        'test/file_runner.cc',
-        'test/file_runner.h',
-        'test/gc.cc',
-        'test/gc.h',
-        'test/gtest.cc',
-        'test/gtest.h',
-        'test/v8_test.cc',
-        'test/v8_test.h',
-      ],
-    },
-    {
-      'target_name': 'gin_unittests',
-      'type': 'executable',
-      'dependencies': [
-        '../base/base.gyp:test_support_base',
-        '../v8/tools/gyp/v8.gyp:v8',
-        'gin_test',
-      ],
-      'sources': [
-        'converter_unittest.cc',
-        'interceptor_unittest.cc',
-        'modules/module_registry_unittest.cc',
-        'modules/timer_unittest.cc',
-        'per_context_data_unittest.cc',
-        'shell_runner_unittest.cc',
-        'shell/gin_shell_unittest.cc',
-        'test/run_all_unittests.cc',
-        'test/run_js_tests.cc',
-        'wrappable_unittest.cc',
-      ],
-    },
-  ],
-}
diff --git a/sandbox/linux/sandbox_linux.gypi b/sandbox/linux/sandbox_linux.gypi
deleted file mode 100644
index 8389512..0000000
--- a/sandbox/linux/sandbox_linux.gypi
+++ /dev/null
@@ -1,463 +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.
-
-{
-  'variables': {
-    'conditions': [
-      ['OS=="linux"', {
-        'compile_suid_client': 1,
-        'compile_credentials': 1,
-        'use_base_test_suite': 1,
-      }, {
-        'compile_suid_client': 0,
-        'compile_credentials': 0,
-        'use_base_test_suite': 0,
-      }],
-      ['OS=="linux" and (target_arch=="ia32" or target_arch=="x64" or '
-         'target_arch=="mipsel")', {
-        'compile_seccomp_bpf_demo': 1,
-      }, {
-        'compile_seccomp_bpf_demo': 0,
-      }],
-    ],
-  },
-  'target_defaults': {
-    'target_conditions': [
-      # All linux/ files will automatically be excluded on Android
-      # so make sure we re-include them explicitly.
-      ['OS == "android"', {
-        'sources/': [
-          ['include', '^linux/'],
-        ],
-      }],
-    ],
-  },
-  'targets': [
-    # We have two principal targets: sandbox and sandbox_linux_unittests
-    # All other targets are listed as dependencies.
-    # There is one notable exception: for historical reasons, chrome_sandbox is
-    # the setuid sandbox and is its own target.
-    {
-      'target_name': 'sandbox',
-      'type': 'none',
-      'dependencies': [
-        'sandbox_services',
-      ],
-      'conditions': [
-        [ 'compile_suid_client==1', {
-          'dependencies': [
-            'suid_sandbox_client',
-          ],
-        }],
-        # Compile seccomp BPF when we support it.
-        [ 'use_seccomp_bpf==1', {
-          'dependencies': [
-            'seccomp_bpf',
-            'seccomp_bpf_helpers',
-          ],
-        }],
-      ],
-    },
-    {
-      'target_name': 'sandbox_linux_test_utils',
-      'type': 'static_library',
-      'dependencies': [
-        '../testing/gtest.gyp:gtest',
-      ],
-      'include_dirs': [
-        '../..',
-      ],
-      'sources': [
-        'tests/sandbox_test_runner.cc',
-        'tests/sandbox_test_runner.h',
-        'tests/sandbox_test_runner_function_pointer.cc',
-        'tests/sandbox_test_runner_function_pointer.h',
-        'tests/test_utils.cc',
-        'tests/test_utils.h',
-        'tests/unit_tests.cc',
-        'tests/unit_tests.h',
-      ],
-      'conditions': [
-        [ 'use_seccomp_bpf==1', {
-          'sources': [
-            'seccomp-bpf/bpf_tester_compatibility_delegate.h',
-            'seccomp-bpf/bpf_tests.h',
-            'seccomp-bpf/sandbox_bpf_test_runner.cc',
-            'seccomp-bpf/sandbox_bpf_test_runner.h',
-          ],
-          'dependencies': [
-            'seccomp_bpf',
-          ]
-        }],
-        [ 'use_base_test_suite==1', {
-          'dependencies': [
-            '../base/base.gyp:test_support_base',
-          ],
-          'defines': [
-            'SANDBOX_USES_BASE_TEST_SUITE',
-          ],
-        }],
-      ],
-    },
-    {
-      # The main sandboxing test target.
-      'target_name': 'sandbox_linux_unittests',
-      'includes': [
-        'sandbox_linux_test_sources.gypi',
-      ],
-      'type': 'executable',
-    },
-    {
-      # This target is the shared library used by Android APK (i.e.
-      # JNI-friendly) tests.
-      'target_name': 'sandbox_linux_jni_unittests',
-      'includes': [
-        'sandbox_linux_test_sources.gypi',
-      ],
-      'type': 'shared_library',
-      'conditions': [
-        [ 'OS == "android"', {
-          'dependencies': [
-            '../testing/android/native_test.gyp:native_test_native_code',
-          ],
-        }],
-      ],
-    },
-    {
-      'target_name': 'seccomp_bpf',
-      'type': '<(component)',
-      'sources': [
-        'bpf_dsl/bpf_dsl.cc',
-        'bpf_dsl/bpf_dsl.h',
-        'bpf_dsl/bpf_dsl_forward.h',
-        'bpf_dsl/bpf_dsl_impl.h',
-        'bpf_dsl/codegen.cc',
-        'bpf_dsl/codegen.h',
-        'bpf_dsl/cons.h',
-        'bpf_dsl/errorcode.h',
-        'bpf_dsl/linux_syscall_ranges.h',
-        'bpf_dsl/policy.cc',
-        'bpf_dsl/policy.h',
-        'bpf_dsl/policy_compiler.cc',
-        'bpf_dsl/policy_compiler.h',
-        'bpf_dsl/seccomp_macros.h',
-        'bpf_dsl/seccomp_macros.h',
-        'bpf_dsl/syscall_set.cc',
-        'bpf_dsl/syscall_set.h',
-        'bpf_dsl/trap_registry.h',
-        'seccomp-bpf/die.cc',
-        'seccomp-bpf/die.h',
-        'seccomp-bpf/sandbox_bpf.cc',
-        'seccomp-bpf/sandbox_bpf.h',
-        'seccomp-bpf/syscall.cc',
-        'seccomp-bpf/syscall.h',
-        'seccomp-bpf/trap.cc',
-        'seccomp-bpf/trap.h',
-      ],
-      'dependencies': [
-        '../base/base.gyp:base',
-        'sandbox_services',
-        'sandbox_services_headers',
-      ],
-      'defines': [
-        'SANDBOX_IMPLEMENTATION',
-      ],
-      'includes': [
-        # Disable LTO due to compiler bug
-        # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57703
-        '../../build/android/disable_gcc_lto.gypi',
-      ],
-      'include_dirs': [
-        '../..',
-      ],
-    },
-    {
-      'target_name': 'seccomp_bpf_helpers',
-      'type': '<(component)',
-      'sources': [
-        'seccomp-bpf-helpers/baseline_policy.cc',
-        'seccomp-bpf-helpers/baseline_policy.h',
-        'seccomp-bpf-helpers/sigsys_handlers.cc',
-        'seccomp-bpf-helpers/sigsys_handlers.h',
-        'seccomp-bpf-helpers/syscall_parameters_restrictions.cc',
-        'seccomp-bpf-helpers/syscall_parameters_restrictions.h',
-        'seccomp-bpf-helpers/syscall_sets.cc',
-        'seccomp-bpf-helpers/syscall_sets.h',
-      ],
-      'dependencies': [
-        '../base/base.gyp:base',
-        'sandbox_services',
-        'seccomp_bpf',
-      ],
-      'defines': [
-        'SANDBOX_IMPLEMENTATION',
-      ],
-      'include_dirs': [
-        '../..',
-      ],
-    },
-    {
-      # The setuid sandbox, for Linux
-      'target_name': 'chrome_sandbox',
-      'type': 'executable',
-      'sources': [
-        'suid/common/sandbox.h',
-        'suid/common/suid_unsafe_environment_variables.h',
-        'suid/process_util.h',
-        'suid/process_util_linux.c',
-        'suid/sandbox.c',
-      ],
-      'cflags': [
-        # For ULLONG_MAX
-        '-std=gnu99',
-      ],
-      'include_dirs': [
-        '../..',
-      ],
-      # Do not use any sanitizer tools with this binary. http://crbug.com/382766
-      'cflags/': [
-        ['exclude', '-fsanitize'],
-      ],
-      'ldflags/': [
-        ['exclude', '-fsanitize'],
-      ],
-    },
-    { 'target_name': 'sandbox_services',
-      'type': '<(component)',
-      'sources': [
-        'services/init_process_reaper.cc',
-        'services/init_process_reaper.h',
-        'services/proc_util.cc',
-        'services/proc_util.h',
-        'services/resource_limits.cc',
-        'services/resource_limits.h',
-        'services/scoped_process.cc',
-        'services/scoped_process.h',
-        'services/syscall_wrappers.cc',
-        'services/syscall_wrappers.h',
-        'services/thread_helpers.cc',
-        'services/thread_helpers.h',
-        'services/yama.cc',
-        'services/yama.h',
-        'syscall_broker/broker_channel.cc',
-        'syscall_broker/broker_channel.h',
-        'syscall_broker/broker_client.cc',
-        'syscall_broker/broker_client.h',
-        'syscall_broker/broker_common.h',
-        'syscall_broker/broker_file_permission.cc',
-        'syscall_broker/broker_file_permission.h',
-        'syscall_broker/broker_host.cc',
-        'syscall_broker/broker_host.h',
-        'syscall_broker/broker_policy.cc',
-        'syscall_broker/broker_policy.h',
-        'syscall_broker/broker_process.cc',
-        'syscall_broker/broker_process.h',
-      ],
-      'dependencies': [
-        '../base/base.gyp:base',
-      ],
-      'defines': [
-        'SANDBOX_IMPLEMENTATION',
-      ],
-      'conditions': [
-        ['compile_credentials==1', {
-          'sources': [
-            'services/credentials.cc',
-            'services/credentials.h',
-            'services/namespace_sandbox.cc',
-            'services/namespace_sandbox.h',
-            'services/namespace_utils.cc',
-            'services/namespace_utils.h',
-          ],
-          'dependencies': [
-            # for capability.h.
-            'sandbox_services_headers',
-          ],
-        }],
-      ],
-      'include_dirs': [
-        '..',
-      ],
-    },
-    { 'target_name': 'sandbox_services_headers',
-      'type': 'none',
-      'sources': [
-        'system_headers/arm64_linux_syscalls.h',
-        'system_headers/arm64_linux_ucontext.h',
-        'system_headers/arm_linux_syscalls.h',
-        'system_headers/arm_linux_ucontext.h',
-        'system_headers/capability.h',
-        'system_headers/i386_linux_ucontext.h',
-        'system_headers/linux_futex.h',
-        'system_headers/linux_seccomp.h',
-        'system_headers/linux_syscalls.h',
-        'system_headers/linux_time.h',
-        'system_headers/linux_ucontext.h',
-        'system_headers/mips_linux_syscalls.h',
-        'system_headers/mips_linux_ucontext.h',
-        'system_headers/x86_32_linux_syscalls.h',
-        'system_headers/x86_64_linux_syscalls.h',
-      ],
-      'include_dirs': [
-        '..',
-      ],
-    },
-    {
-      # We make this its own target so that it does not interfere
-      # with our tests, and so that it may be selectively included
-      # in ports which need it.
-      'target_name': 'libc_urandom_override',
-      'type': 'static_library',
-      'sources': [
-        'services/libc_urandom_override.cc',
-        'services/libc_urandom_override.h',
-      ],
-      'dependencies': [
-        '../base/base.gyp:base',
-      ],
-      'include_dirs': [
-        '..',
-      ],
-    },
-    {
-      'target_name': 'suid_sandbox_client',
-      'type': '<(component)',
-      'sources': [
-        'suid/common/sandbox.h',
-        'suid/common/suid_unsafe_environment_variables.h',
-        'suid/client/setuid_sandbox_client.cc',
-        'suid/client/setuid_sandbox_client.h',
-        'suid/client/setuid_sandbox_host.cc',
-        'suid/client/setuid_sandbox_host.h',
-      ],
-      'defines': [
-        'SANDBOX_IMPLEMENTATION',
-      ],
-      'dependencies': [
-        '../base/base.gyp:base',
-        'sandbox_services',
-      ],
-      'include_dirs': [
-        '..',
-      ],
-    },
-    {
-      'target_name': 'bpf_dsl_golden',
-      'type': 'none',
-      'actions': [
-        {
-          'action_name': 'generate',
-          'inputs': [
-            'bpf_dsl/golden/generate.py',
-            'bpf_dsl/golden/i386/ArgSizePolicy.txt',
-            'bpf_dsl/golden/i386/BasicPolicy.txt',
-            'bpf_dsl/golden/i386/ElseIfPolicy.txt',
-            'bpf_dsl/golden/i386/MaskingPolicy.txt',
-            'bpf_dsl/golden/i386/MoreBooleanLogicPolicy.txt',
-            'bpf_dsl/golden/i386/NegativeConstantsPolicy.txt',
-            'bpf_dsl/golden/i386/SwitchPolicy.txt',
-            'bpf_dsl/golden/x86-64/ArgSizePolicy.txt',
-            'bpf_dsl/golden/x86-64/BasicPolicy.txt',
-            'bpf_dsl/golden/x86-64/BooleanLogicPolicy.txt',
-            'bpf_dsl/golden/x86-64/ElseIfPolicy.txt',
-            'bpf_dsl/golden/x86-64/MaskingPolicy.txt',
-            'bpf_dsl/golden/x86-64/MoreBooleanLogicPolicy.txt',
-            'bpf_dsl/golden/x86-64/NegativeConstantsPolicy.txt',
-            'bpf_dsl/golden/x86-64/SwitchPolicy.txt',
-          ],
-          'outputs': [
-            '<(SHARED_INTERMEDIATE_DIR)/sandbox/linux/bpf_dsl/golden/golden_files.h',
-          ],
-          'action': [
-            'python',
-            'linux/bpf_dsl/golden/generate.py',
-            '<(SHARED_INTERMEDIATE_DIR)/sandbox/linux/bpf_dsl/golden/golden_files.h',
-            'linux/bpf_dsl/golden/i386/ArgSizePolicy.txt',
-            'linux/bpf_dsl/golden/i386/BasicPolicy.txt',
-            'linux/bpf_dsl/golden/i386/ElseIfPolicy.txt',
-            'linux/bpf_dsl/golden/i386/MaskingPolicy.txt',
-            'linux/bpf_dsl/golden/i386/MoreBooleanLogicPolicy.txt',
-            'linux/bpf_dsl/golden/i386/NegativeConstantsPolicy.txt',
-            'linux/bpf_dsl/golden/i386/SwitchPolicy.txt',
-            'linux/bpf_dsl/golden/x86-64/ArgSizePolicy.txt',
-            'linux/bpf_dsl/golden/x86-64/BasicPolicy.txt',
-            'linux/bpf_dsl/golden/x86-64/BooleanLogicPolicy.txt',
-            'linux/bpf_dsl/golden/x86-64/ElseIfPolicy.txt',
-            'linux/bpf_dsl/golden/x86-64/MaskingPolicy.txt',
-            'linux/bpf_dsl/golden/x86-64/MoreBooleanLogicPolicy.txt',
-            'linux/bpf_dsl/golden/x86-64/NegativeConstantsPolicy.txt',
-            'linux/bpf_dsl/golden/x86-64/SwitchPolicy.txt',
-          ],
-          'message': 'Generating header from golden files ...',
-        },
-      ],
-    },
-  ],
-  'conditions': [
-    [ 'OS=="android"', {
-      'targets': [
-      {
-        'target_name': 'sandbox_linux_unittests_stripped',
-        'type': 'none',
-        'dependencies': [ 'sandbox_linux_unittests' ],
-        'actions': [{
-          'action_name': 'strip sandbox_linux_unittests',
-          'inputs': [ '<(PRODUCT_DIR)/sandbox_linux_unittests' ],
-          'outputs': [ '<(PRODUCT_DIR)/sandbox_linux_unittests_stripped' ],
-          'action': [ '<(android_strip)', '<@(_inputs)', '-o', '<@(_outputs)' ],
-        }],
-      },
-      {
-        'target_name': 'sandbox_linux_unittests_deps',
-        'type': 'none',
-        'dependencies': [
-          'sandbox_linux_unittests_stripped',
-        ],
-        # For the component build, ensure dependent shared libraries are
-        # stripped and put alongside sandbox_linux_unittests to simplify pushing
-        # to the device.
-        'variables': {
-           'output_dir': '<(PRODUCT_DIR)/sandbox_linux_unittests_deps/',
-           'native_binary': '<(PRODUCT_DIR)/sandbox_linux_unittests_stripped',
-           'include_main_binary': 0,
-        },
-        'includes': [
-          '../../build/android/native_app_dependencies.gypi'
-        ],
-      }],
-    }],
-    [ 'OS=="android"', {
-      'targets': [
-        {
-        'target_name': 'sandbox_linux_jni_unittests_apk',
-        'type': 'none',
-        'variables': {
-          'test_suite_name': 'sandbox_linux_jni_unittests',
-        },
-        'dependencies': [
-          'sandbox_linux_jni_unittests',
-        ],
-        'includes': [ '../../build/apk_test.gypi' ],
-        }
-      ],
-    }],
-    ['test_isolation_mode != "noop"', {
-      'targets': [
-        {
-          'target_name': 'sandbox_linux_unittests_run',
-          'type': 'none',
-          'dependencies': [
-            'sandbox_linux_unittests',
-          ],
-          'includes': [
-            '../../build/isolate.gypi',
-          ],
-          'sources': [
-            '../sandbox_linux_unittests.isolate',
-          ],
-        },
-      ],
-    }],
-  ],
-}
diff --git a/sandbox/linux/sandbox_linux_nacl_nonsfi.gyp b/sandbox/linux/sandbox_linux_nacl_nonsfi.gyp
deleted file mode 100644
index 0b40d1c..0000000
--- a/sandbox/linux/sandbox_linux_nacl_nonsfi.gyp
+++ /dev/null
@@ -1,85 +0,0 @@
-# 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.
-
-{
-  'variables': {
-    'chromium_code': 1,
-  },
-  'includes': [
-    '../../build/common_untrusted.gypi',
-  ],
-  'conditions': [
-    ['disable_nacl==0 and disable_nacl_untrusted==0', {
-      'targets': [
-        {
-          'target_name': 'sandbox_linux_nacl_nonsfi',
-          'type': 'none',
-          'variables': {
-            'nacl_untrusted_build': 1,
-            'nlib_target': 'libsandbox_linux_nacl_nonsfi.a',
-            'build_glibc': 0,
-            'build_newlib': 0,
-            'build_irt': 0,
-            'build_pnacl_newlib': 0,
-            'build_nonsfi_helper': 1,
-
-            'sources': [
-              # This is the subset of linux build target, needed for
-              # nacl_helper_nonsfi's sandbox implementation.
-              'bpf_dsl/bpf_dsl.cc',
-              'bpf_dsl/codegen.cc',
-              'bpf_dsl/policy.cc',
-              'bpf_dsl/policy_compiler.cc',
-              'bpf_dsl/syscall_set.cc',
-              'seccomp-bpf-helpers/sigsys_handlers.cc',
-              'seccomp-bpf-helpers/syscall_parameters_restrictions.cc',
-              'seccomp-bpf/die.cc',
-              'seccomp-bpf/sandbox_bpf.cc',
-              'seccomp-bpf/syscall.cc',
-              'seccomp-bpf/trap.cc',
-              'services/credentials.cc',
-              'services/namespace_sandbox.cc',
-              'services/namespace_utils.cc',
-              'services/proc_util.cc',
-              'services/resource_limits.cc',
-              'services/syscall_wrappers.cc',
-              'services/thread_helpers.cc',
-              'suid/client/setuid_sandbox_client.cc',
-            ],
-          },
-          'dependencies': [
-            '../../base/base_nacl.gyp:base_nacl_nonsfi',
-          ],
-        },
-      ],
-    }],
-
-    ['disable_nacl==0 and disable_nacl_untrusted==0 and enable_nacl_nonsfi_test==1', {
-      'targets': [
-        {
-          'target_name': 'sandbox_linux_test_utils_nacl_nonsfi',
-          'type': 'none',
-          'variables': {
-            'nacl_untrusted_build': 1,
-            'nlib_target': 'libsandbox_linux_test_utils_nacl_nonsfi.a',
-            'build_glibc': 0,
-            'build_newlib': 0,
-            'build_irt': 0,
-            'build_pnacl_newlib': 0,
-            'build_nonsfi_helper': 1,
-
-            'sources': [
-              'seccomp-bpf/sandbox_bpf_test_runner.cc',
-              'tests/sandbox_test_runner.cc',
-              'tests/unit_tests.cc',
-            ],
-          },
-          'dependencies': [
-            '../../testing/gtest_nacl.gyp:gtest_nacl',
-          ],
-        },
-      ],
-    }],
-  ],
-}
diff --git a/sandbox/linux/sandbox_linux_test_sources.gypi b/sandbox/linux/sandbox_linux_test_sources.gypi
deleted file mode 100644
index 612814e..0000000
--- a/sandbox/linux/sandbox_linux_test_sources.gypi
+++ /dev/null
@@ -1,93 +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.
-
-# Tests need to be compiled in the same link unit, so we have to list them
-# in a separate .gypi file.
-{
-  'dependencies': [
-    'sandbox',
-    'sandbox_linux_test_utils',
-    'sandbox_services',
-    '../base/base.gyp:base',
-    '../testing/gtest.gyp:gtest',
-  ],
-  'include_dirs': [
-    '../..',
-  ],
-  'sources': [
-    'services/proc_util_unittest.cc',
-    'services/scoped_process_unittest.cc',
-    'services/resource_limits_unittests.cc',
-    'services/syscall_wrappers_unittest.cc',
-    'services/thread_helpers_unittests.cc',
-    'services/yama_unittests.cc',
-    'syscall_broker/broker_file_permission_unittest.cc',
-    'syscall_broker/broker_process_unittest.cc',
-    'tests/main.cc',
-    'tests/scoped_temporary_file.cc',
-    'tests/scoped_temporary_file.h',
-    'tests/scoped_temporary_file_unittest.cc',
-    'tests/test_utils_unittest.cc',
-    'tests/unit_tests_unittest.cc',
-  ],
-  'conditions': [
-    [ 'compile_suid_client==1', {
-      'sources': [
-        'suid/client/setuid_sandbox_client_unittest.cc',
-        'suid/client/setuid_sandbox_host_unittest.cc',
-      ],
-    }],
-    [ 'use_seccomp_bpf==1', {
-      'sources': [
-        'bpf_dsl/bpf_dsl_unittest.cc',
-        'bpf_dsl/codegen_unittest.cc',
-        'bpf_dsl/cons_unittest.cc',
-        'bpf_dsl/dump_bpf.cc',
-        'bpf_dsl/dump_bpf.h',
-        'bpf_dsl/syscall_set_unittest.cc',
-        'bpf_dsl/test_trap_registry.cc',
-        'bpf_dsl/test_trap_registry.h',
-        'bpf_dsl/test_trap_registry_unittest.cc',
-        'bpf_dsl/verifier.cc',
-        'bpf_dsl/verifier.h',
-        'integration_tests/bpf_dsl_seccomp_unittest.cc',
-        'integration_tests/seccomp_broker_process_unittest.cc',
-        'seccomp-bpf-helpers/baseline_policy_unittest.cc',
-        'seccomp-bpf-helpers/syscall_parameters_restrictions_unittests.cc',
-        'seccomp-bpf/bpf_tests_unittest.cc',
-        'seccomp-bpf/sandbox_bpf_unittest.cc',
-        'seccomp-bpf/syscall_unittest.cc',
-        'seccomp-bpf/trap_unittest.cc',
-      ],
-      'dependencies': [
-        'bpf_dsl_golden',
-      ],
-    }],
-    [ 'compile_credentials==1', {
-      'sources': [
-        'integration_tests/namespace_unix_domain_socket_unittest.cc',
-        'services/credentials_unittest.cc',
-        'services/namespace_utils_unittest.cc',
-      ],
-      'dependencies': [
-        '../build/linux/system.gyp:libcap'
-      ],
-      'conditions': [
-        [ 'use_base_test_suite==1', {
-          'sources': [
-            'services/namespace_sandbox_unittest.cc',
-          ]
-        }]
-      ],
-    }],
-    [ 'use_base_test_suite==1', {
-      'dependencies': [
-        '../base/base.gyp:test_support_base',
-      ],
-      'defines': [
-        'SANDBOX_USES_BASE_TEST_SUITE',
-      ],
-    }],
-  ],
-}
diff --git a/skia/skia.gyp b/skia/skia.gyp
deleted file mode 100644
index 109adff..0000000
--- a/skia/skia.gyp
+++ /dev/null
@@ -1,150 +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.
-
-{
-  'conditions': [
-    # In component mode (shared_lib), we build all of skia as a single DLL.
-    # However, in the static mode, we need to build skia as multiple targets
-    # in order to support the use case where a platform (e.g. Android) may
-    # already have a copy of skia as a system library.
-    ['component=="static_library"', {
-      'targets': [
-        {
-          'target_name': 'skia_library',
-          'type': 'static_library',
-          'includes': [
-            'skia_library.gypi',
-            'skia_common.gypi',
-            '../build/android/increase_size_for_speed.gypi',
-            # Disable LTO due to compiler error
-            # in mems_in_disjoint_alias_sets_p, at alias.c:393
-            # crbug.com/422255
-            '../build/android/disable_lto.gypi',
-          ],
-        },
-      ],
-    }],
-    ['component=="static_library"', {
-      'targets': [
-        {
-          'target_name': 'skia',
-          'type': 'none',
-          'dependencies': [
-            'skia_library',
-            'skia_chrome',
-          ],
-          'export_dependent_settings': [
-            'skia_library',
-            'skia_chrome',
-          ],
-        },
-        {
-          'target_name': 'skia_chrome',
-          'type': 'static_library',
-          'includes': [
-            'skia_chrome.gypi',
-            'skia_common.gypi',
-            '../build/android/increase_size_for_speed.gypi',
-          ],
-        },
-      ],
-    },
-    {  # component != static_library
-      'targets': [
-        {
-          'target_name': 'skia',
-          'type': 'shared_library',
-          'includes': [
-            'skia_library.gypi',
-            'skia_chrome.gypi',
-            'skia_common.gypi',
-            '../build/android/increase_size_for_speed.gypi',
-          ],
-          'defines': [
-            'SKIA_DLL',
-            'SKIA_IMPLEMENTATION=1',
-            'GR_GL_IGNORE_ES3_MSAA=0',
-          ],
-          'direct_dependent_settings': {
-            'defines': [
-              'SKIA_DLL',
-              'GR_GL_IGNORE_ES3_MSAA=0',
-            ],
-          },
-        },
-        {
-          'target_name': 'skia_library',
-          'type': 'none',
-        },
-        {
-          'target_name': 'skia_chrome',
-          'type': 'none',
-        },
-      ],
-    }],
-  ],
-
-  # targets that are not dependent upon the component type
-  'targets': [
-    {
-      'target_name': 'skia_chrome_opts',
-      'type': 'static_library',
-      'include_dirs': [
-        '..',
-        'config',
-        '../third_party/skia/include/core',
-      ],
-      'conditions': [
-        [ 'os_posix == 1 and OS != "mac" and OS != "android" and \
-            target_arch != "arm" and target_arch != "mipsel" and \
-            target_arch != "arm64" and target_arch != "mips64el"', {
-          'cflags': [
-            '-msse2',
-          ],
-        }],
-        [ 'target_arch != "arm" and target_arch != "mipsel" and \
-           target_arch != "arm64" and target_arch != "mips64el"', {
-          'sources': [
-            'ext/convolver_SSE2.cc',
-            'ext/convolver_SSE2.h',
-          ],
-        }],
-        [ 'target_arch == "mipsel" and mips_dsp_rev >= 2',{
-          'sources': [
-            'ext/convolver_mips_dspr2.cc',
-            'ext/convolver_mips_dspr2.h',
-          ],
-        }],
-      ],
-    },
-    {
-      'target_name': 'image_operations_bench',
-      'type': 'executable',
-      'dependencies': [
-        '../base/base.gyp:base',
-        'skia',
-      ],
-      'include_dirs': [
-        '..',
-      ],
-      'sources': [
-        'ext/image_operations_bench.cc',
-      ],
-    },
-    {
-      'target_name': 'filter_fuzz_stub',
-      'type': 'executable',
-      'dependencies': [
-        '../base/base.gyp:base',
-        'skia.gyp:skia',
-      ],
-      'sources': [
-        'tools/filter_fuzz_stub/filter_fuzz_stub.cc',
-      ],
-      'includes': [
-        '../build/android/increase_size_for_speed.gypi',
-      ],
-    },
-  ],
-}
diff --git a/skia/skia_chrome.gypi b/skia/skia_chrome.gypi
deleted file mode 100644
index d689a92..0000000
--- a/skia/skia_chrome.gypi
+++ /dev/null
@@ -1,109 +0,0 @@
-# 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 gypi file contains all the Chrome-specific enhancements to Skia.
-# In component mode (shared_lib) it is folded into a single shared library with
-# the Skia files but in all other cases it is a separate library.
-{
-  'dependencies': [
-    'skia_library',
-    'skia_chrome_opts',
-    '../base/base.gyp:base',
-    '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
-  ],
-
-  'direct_dependent_settings': {
-    'include_dirs': [
-      'ext',
-    ],
-  },
-  'variables': {
-    # TODO(scottmg): http://crbug.com/177306
-    'clang_warning_flags_unset': [
-      # Don't warn about string->bool used in asserts.
-      '-Wstring-conversion',
-    ],
-  },
-  'sources': [
-    'config/SkUserConfig.h',
-
-    # Note: file list duplicated in GN build.
-    'ext/analysis_canvas.cc',
-    'ext/analysis_canvas.h',
-    'ext/benchmarking_canvas.cc',
-    'ext/benchmarking_canvas.h',
-    'ext/bitmap_platform_device.h',
-    'ext/bitmap_platform_device_cairo.cc',
-    'ext/bitmap_platform_device_cairo.h',
-    'ext/bitmap_platform_device_mac.cc',
-    'ext/bitmap_platform_device_mac.h',
-    'ext/bitmap_platform_device_skia.cc',
-    'ext/bitmap_platform_device_skia.h',
-    'ext/bitmap_platform_device_win.cc',
-    'ext/bitmap_platform_device_win.h',
-    'ext/convolver.cc',
-    'ext/convolver.h',
-    'ext/event_tracer_impl.cc',
-    'ext/event_tracer_impl.h',
-    'ext/fontmgr_default_win.cc',
-    'ext/fontmgr_default_win.h',
-    'ext/google_logging.cc',
-    'ext/image_operations.cc',
-    'ext/image_operations.h',
-    'ext/opacity_draw_filter.cc',
-    'ext/opacity_draw_filter.h',
-    'ext/pixel_ref_utils.cc',
-    'ext/pixel_ref_utils.h',
-    'ext/platform_canvas.cc',
-    'ext/platform_canvas.h',
-    'ext/platform_device.cc',
-    'ext/platform_device.h',
-    'ext/platform_device_linux.cc',
-    'ext/platform_device_mac.cc',
-    'ext/platform_device_win.cc',
-    'ext/recursive_gaussian_convolution.cc',
-    'ext/recursive_gaussian_convolution.h',
-    'ext/refptr.h',
-    'ext/SkDiscardableMemory_chrome.h',
-    'ext/SkDiscardableMemory_chrome.cc',
-    'ext/SkMemory_new_handler.cpp',
-    'ext/skia_utils_base.cc',
-    'ext/skia_utils_base.h',
-    'ext/skia_utils_ios.mm',
-    'ext/skia_utils_ios.h',
-    'ext/skia_utils_mac.mm',
-    'ext/skia_utils_mac.h',
-    'ext/skia_utils_win.cc',
-    'ext/skia_utils_win.h',
-  ],
-  'conditions': [
-    [ 'OS == "android" and '
-      'enable_basic_printing==0 and enable_print_preview==0', {
-      'sources!': [
-        'ext/skia_utils_base.cc',
-      ],
-    }],
-    ['OS == "ios"', {
-      'dependencies!': [
-        'skia_chrome_opts',
-      ],
-    }],
-    [ 'OS != "android" and (OS != "linux" or use_cairo==1)', {
-      'sources!': [
-        'ext/bitmap_platform_device_skia.cc',
-      ],
-    }],
-  ],
-
-  'target_conditions': [
-    # Pull in specific linux files for android (which have been filtered out
-    # by file name rules).
-    [ 'OS == "android"', {
-      'sources/': [
-        ['include', 'ext/platform_device_linux\\.cc$'],
-      ],
-    }],
-  ],
-}
diff --git a/skia/skia_common.gypi b/skia/skia_common.gypi
deleted file mode 100644
index babb5cd..0000000
--- a/skia/skia_common.gypi
+++ /dev/null
@@ -1,190 +0,0 @@
-# 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 gypi file handles the removal of platform-specific files from the
-# Skia build.
-{
-  'includes': [
-    # blink_skia_config.gypi defines blink_skia_defines
-    '../third_party/WebKit/public/blink_skia_config.gypi',
-
-    # skia_for_chromium_defines.gypi defines skia_for_chromium_defines
-    '../third_party/skia/gyp/skia_for_chromium_defines.gypi',
-  ],
-
-  'include_dirs': [
-    '..',
-    'config',
-  ],
-
-  'conditions': [
-    [ 'OS != "android"', {
-      'sources/': [
-         ['exclude', '_android\\.(cc|cpp)$'],
-      ],
-    }],
-    [ 'OS != "ios"', {
-      'sources/': [
-         ['exclude', '_ios\\.(cc|cpp|mm?)$'],
-      ],
-    }],
-    [ 'OS == "ios"', {
-      'defines': [
-        'SK_BUILD_FOR_IOS',
-      ],
-    }],
-    [ 'OS != "mac"', {
-      'sources/': [
-        ['exclude', '_mac\\.(cc|cpp|mm?)$'],
-      ],
-    }],
-    [ 'OS == "mac"', {
-      'defines': [
-        'SK_BUILD_FOR_MAC',
-      ],
-    }],
-    [ 'OS != "win"', {
-      'sources/': [ ['exclude', '_win\\.(cc|cpp)$'] ],
-    }],
-    [ 'OS == "win"', {
-      'defines': [
-        # On windows, GDI handles are a scarse system-wide resource so we have to keep
-        # the glyph cache, which holds up to 4 GDI handles per entry, to a fairly small
-        # size.
-        # http://crbug.com/314387
-        'SK_DEFAULT_FONT_CACHE_COUNT_LIMIT=256',
-      ],
-    }],
-    [ 'desktop_linux == 0 and chromeos == 0', {
-      'sources/': [ ['exclude', '_linux\\.(cc|cpp)$'] ],
-    }],
-    [ 'use_cairo == 0', {
-      'sources/': [ ['exclude', '_cairo\\.(cc|cpp)$'] ],
-    }],
-
-    #Settings for text blitting, chosen to approximate the system browser.
-    [ 'OS == "linux"', {
-      'defines': [
-        'SK_GAMMA_EXPONENT=1.2',
-        'SK_GAMMA_CONTRAST=0.2',
-        'SK_HIGH_QUALITY_IS_LANCZOS',
-      ],
-    }],
-    ['OS == "android"', {
-      'defines': [
-        'SK_GAMMA_APPLY_TO_A8',
-        'SK_GAMMA_EXPONENT=1.4',
-        'SK_GAMMA_CONTRAST=0.0',
-      ],
-    }],
-    ['OS == "win"', {
-      'defines': [
-        'SK_GAMMA_SRGB',
-        'SK_GAMMA_CONTRAST=0.5',
-        'SK_HIGH_QUALITY_IS_LANCZOS',
-      ],
-    }],
-    ['OS == "mac"', {
-      'defines': [
-        'SK_GAMMA_SRGB',
-        'SK_GAMMA_CONTRAST=0.0',
-        'SK_HIGH_QUALITY_IS_LANCZOS',
-      ],
-    }],
-
-    # Neon support.
-    [ 'target_arch == "arm" and arm_version >= 7 and arm_neon == 1', {
-      'defines': [
-        'SK_ARM_HAS_NEON',
-      ],
-    }],
-    [ 'target_arch == "arm" and arm_version >= 7 and arm_neon_optional == 1', {
-      'defines': [
-        'SK_ARM_HAS_OPTIONAL_NEON',
-      ],
-    }],
-
-    # Enable feedback-directed optimisation for skia when building in android.
-    [ 'android_webview_build == 1', {
-      'aosp_build_settings': {
-        'LOCAL_FDO_SUPPORT': 'true',
-      },
-    }],
-  ],
-
-  'variables': {
-    'variables': {
-      'conditions': [
-        ['OS== "ios"', {
-          'skia_support_gpu': 0,
-        }, {
-          'skia_support_gpu': 1,
-        }],
-        ['OS=="ios" or (enable_basic_printing==0 and enable_print_preview==0)', {
-          'skia_support_pdf': 0,
-        }, {
-          'skia_support_pdf': 1,
-        }],
-      ],
-    },
-    'skia_support_gpu': '<(skia_support_gpu)',
-    'skia_support_pdf': '<(skia_support_pdf)',
-
-    # These two set the paths so we can include skia/gyp/core.gypi
-    'skia_src_path': '../third_party/skia/src',
-    'skia_include_path': '../third_party/skia/include',
-
-    # This list will contain all defines that also need to be exported to
-    # dependent components.
-    'skia_export_defines': [
-      'SK_SUPPORT_GPU=<(skia_support_gpu)',
-
-      # This variable contains additional defines, specified in blink's
-      # blink_skia_config.gypi file.
-      '<@(blink_skia_defines)',
-
-      # This variable contains additional defines, specified in skia's
-      # skia_for_chromium_defines.gypi file.
-      '<@(skia_for_chromium_defines)',
-    ],
-
-    'default_font_cache_limit%': '(20*1024*1024)',
-
-    'conditions': [
-      ['OS== "android"', {
-        # Android devices are typically more memory constrained, so
-        # default to a smaller glyph cache (it may be overriden at runtime
-        # when the renderer starts up, depending on the actual device memory).
-        'default_font_cache_limit': '(1*1024*1024)',
-        'skia_export_defines': [
-          'SK_BUILD_FOR_ANDROID',
-        ],
-      }],
-    ],
-  },
-
-  'defines': [
-    '<@(skia_export_defines)',
-
-    'SK_DEFAULT_FONT_CACHE_LIMIT=<(default_font_cache_limit)',
-  ],
-
-  'direct_dependent_settings': {
-    'defines': [
-      '<@(skia_export_defines)',
-    ],
-  },
-
-  # We would prefer this to be direct_dependent_settings,
-  # however we currently have no means to enforce that direct dependents
-  # re-export if they include Skia headers in their public headers.
-  'all_dependent_settings': {
-    'include_dirs': [
-      '..',
-      'config',
-    ],
-  },
-
-  'msvs_disabled_warnings': [4244, 4267, 4341, 4345, 4390, 4554, 4748, 4800],
-}
diff --git a/skia/skia_library.gypi b/skia/skia_library.gypi
deleted file mode 100644
index 14214ea..0000000
--- a/skia/skia_library.gypi
+++ /dev/null
@@ -1,373 +0,0 @@
-# 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 gypi file contains the Skia library.
-# In component mode (shared_lib) it is folded into a single shared library with
-# the Chrome-specific enhancements but in all other cases it is a separate lib.
-
-# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!WARNING!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-# variables and defines should go in skia_common.gypi so they can be seen
-# by files listed here and in skia_library_opts.gypi.
-# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!WARNING!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-{
-  'dependencies': [
-    'skia_library_opts.gyp:skia_opts',
-    '../third_party/zlib/zlib.gyp:zlib',
-  ],
-
-  'includes': [
-    '../third_party/skia/gyp/core.gypi',
-    '../third_party/skia/gyp/effects.gypi',
-    '../third_party/skia/gyp/pdf.gypi',
-    '../third_party/skia/gyp/utils.gypi',
-  ],
-
-  'sources': [
-    # this should likely be moved into src/utils in skia
-    '../third_party/skia/src/core/SkFlate.cpp',
-
-    '../third_party/skia/src/ports/SkImageDecoder_empty.cpp',
-    '../third_party/skia/src/images/SkScaledBitmapSampler.cpp',
-    '../third_party/skia/src/images/SkScaledBitmapSampler.h',
-
-    '../third_party/skia/src/ports/SkFontConfigInterface_direct.cpp',
-
-    '../third_party/skia/src/fonts/SkFontMgr_fontconfig.cpp',
-    '../third_party/skia/src/ports/SkFontHost_fontconfig.cpp',
-
-    '../third_party/skia/src/fonts/SkFontMgr_indirect.cpp',
-    '../third_party/skia/src/fonts/SkRemotableFontMgr.cpp',
-    '../third_party/skia/src/ports/SkRemotableFontMgr_win_dw.cpp',
-
-    '../third_party/skia/src/ports/SkImageGenerator_none.cpp',
-
-    '../third_party/skia/src/ports/SkFontHost_FreeType.cpp',
-    '../third_party/skia/src/ports/SkFontHost_FreeType_common.cpp',
-    '../third_party/skia/src/ports/SkFontHost_FreeType_common.h',
-    '../third_party/skia/src/ports/SkFontHost_mac.cpp',
-    '../third_party/skia/src/ports/SkFontHost_win.cpp',
-    '../third_party/skia/src/ports/SkFontMgr_android.cpp',
-    '../third_party/skia/src/ports/SkFontMgr_android_factory.cpp',
-    '../third_party/skia/src/ports/SkFontMgr_android_parser.cpp',
-    '../third_party/skia/src/ports/SkFontMgr_win_dw.cpp',
-    '../third_party/skia/src/ports/SkGlobalInitialization_chromium.cpp',
-    '../third_party/skia/src/ports/SkOSFile_posix.cpp',
-    '../third_party/skia/src/ports/SkOSFile_stdio.cpp',
-    '../third_party/skia/src/ports/SkOSFile_win.cpp',
-    '../third_party/skia/src/ports/SkScalerContext_win_dw.cpp',
-    '../third_party/skia/src/ports/SkScalerContext_win_dw.h',
-    '../third_party/skia/src/ports/SkTime_Unix.cpp',
-    '../third_party/skia/src/ports/SkTLS_pthread.cpp',
-    '../third_party/skia/src/ports/SkTLS_win.cpp',
-    '../third_party/skia/src/ports/SkTypeface_win_dw.cpp',
-    '../third_party/skia/src/ports/SkTypeface_win_dw.h',
-
-    '../third_party/skia/src/sfnt/SkOTTable_name.cpp',
-    '../third_party/skia/src/sfnt/SkOTTable_name.h',
-    '../third_party/skia/src/sfnt/SkOTUtils.cpp',
-    '../third_party/skia/src/sfnt/SkOTUtils.h',
-
-    '../third_party/skia/include/core/SkFontStyle.h',
-
-    '../third_party/skia/include/images/SkMovie.h',
-    '../third_party/skia/include/images/SkPageFlipper.h',
-
-    '../third_party/skia/include/ports/SkFontConfigInterface.h',
-    '../third_party/skia/include/ports/SkFontMgr.h',
-    '../third_party/skia/include/ports/SkFontMgr_indirect.h',
-    '../third_party/skia/include/ports/SkRemotableFontMgr.h',
-    '../third_party/skia/include/ports/SkTypeface_win.h',
-  ],
-
-  # Exclude all unused files in skia utils.gypi file
-  'sources!': [
-  '../third_party/skia/include/utils/SkBoundaryPatch.h',
-  '../third_party/skia/include/utils/SkFrontBufferedStream.h',
-  '../third_party/skia/include/utils/SkCamera.h',
-  '../third_party/skia/include/utils/SkCanvasStateUtils.h',
-  '../third_party/skia/include/utils/SkCubicInterval.h',
-  '../third_party/skia/include/utils/SkCullPoints.h',
-  '../third_party/skia/include/utils/SkDebugUtils.h',
-  '../third_party/skia/include/utils/SkDumpCanvas.h',
-  '../third_party/skia/include/utils/SkEventTracer.h',
-  '../third_party/skia/include/utils/SkInterpolator.h',
-  '../third_party/skia/include/utils/SkLayer.h',
-  '../third_party/skia/include/utils/SkMeshUtils.h',
-  '../third_party/skia/include/utils/SkNinePatch.h',
-  '../third_party/skia/include/utils/SkParsePaint.h',
-  '../third_party/skia/include/utils/SkParsePath.h',
-  '../third_party/skia/include/utils/SkRandom.h',
-
-  '../third_party/skia/src/utils/SkBitmapHasher.cpp',
-  '../third_party/skia/src/utils/SkBitmapHasher.h',
-  '../third_party/skia/src/utils/SkBoundaryPatch.cpp',
-  '../third_party/skia/src/utils/SkFrontBufferedStream.cpp',
-  '../third_party/skia/src/utils/SkCamera.cpp',
-  '../third_party/skia/src/utils/SkCanvasStack.h',
-  '../third_party/skia/src/utils/SkCubicInterval.cpp',
-  '../third_party/skia/src/utils/SkCullPoints.cpp',
-  '../third_party/skia/src/utils/SkDumpCanvas.cpp',
-  '../third_party/skia/src/utils/SkFloatUtils.h',
-  '../third_party/skia/src/utils/SkInterpolator.cpp',
-  '../third_party/skia/src/utils/SkLayer.cpp',
-  '../third_party/skia/src/utils/SkMD5.cpp',
-  '../third_party/skia/src/utils/SkMD5.h',
-  '../third_party/skia/src/utils/SkMeshUtils.cpp',
-  '../third_party/skia/src/utils/SkNinePatch.cpp',
-  '../third_party/skia/src/utils/SkOSFile.cpp',
-  '../third_party/skia/src/utils/SkParsePath.cpp',
-  '../third_party/skia/src/utils/SkPathUtils.cpp',
-  '../third_party/skia/src/utils/SkSHA1.cpp',
-  '../third_party/skia/src/utils/SkSHA1.h',
-  '../third_party/skia/src/utils/SkTFitsIn.h',
-  '../third_party/skia/src/utils/SkTLogic.h',
-
-  # We don't currently need to change thread affinity, so leave out this complexity for now.
-  "../third_party/skia/src/utils/SkThreadUtils_pthread_mach.cpp",
-  "../third_party/skia/src/utils/SkThreadUtils_pthread_linux.cpp",
-
-#windows
-  '../third_party/skia/include/utils/win/SkAutoCoInitialize.h',
-  '../third_party/skia/include/utils/win/SkHRESULT.h',
-  '../third_party/skia/include/utils/win/SkIStream.h',
-  '../third_party/skia/include/utils/win/SkTScopedComPtr.h',
-  '../third_party/skia/src/utils/win/SkAutoCoInitialize.cpp',
-  '../third_party/skia/src/utils/win/SkIStream.cpp',
-  '../third_party/skia/src/utils/win/SkWGL_win.cpp',
-
-#testing
-  '../third_party/skia/src/fonts/SkGScalerContext.cpp',
-  '../third_party/skia/src/fonts/SkGScalerContext.h',
-  ],
-
-  'include_dirs': [
-    '../third_party/skia/include/c',
-    '../third_party/skia/include/core',
-    '../third_party/skia/include/effects',
-    '../third_party/skia/include/images',
-    '../third_party/skia/include/lazy',
-    '../third_party/skia/include/pathops',
-    '../third_party/skia/include/pdf',
-    '../third_party/skia/include/pipe',
-    '../third_party/skia/include/ports',
-    '../third_party/skia/include/record',
-    '../third_party/skia/include/utils',
-    '../third_party/skia/src/core',
-    '../third_party/skia/src/opts',
-    '../third_party/skia/src/image',
-    '../third_party/skia/src/pdf',
-    '../third_party/skia/src/ports',
-    '../third_party/skia/src/sfnt',
-    '../third_party/skia/src/utils',
-    '../third_party/skia/src/lazy',
-  ],
-  'conditions': [
-    ['skia_support_gpu != 0', {
-      'includes': [
-        '../third_party/skia/gyp/gpu.gypi',
-      ],
-      'sources': [
-        '<@(skgpu_null_gl_sources)',
-        '<@(skgpu_sources)',
-      ],
-      'include_dirs': [
-        '../third_party/skia/include/gpu',
-        '../third_party/skia/src/gpu',
-      ],
-    }],
-    ['skia_support_pdf == 0', {
-      'sources/': [
-        ['exclude', '../third_party/skia/src/doc/SkDocument_PDF.cpp'],
-        ['exclude', '../third_party/skia/src/pdf/'],
-      ],
-    }],
-    ['skia_support_pdf == 1', {
-      'dependencies': [
-        '../third_party/sfntly/sfntly.gyp:sfntly',
-      ],
-    }],
-
-    [ 'OS == "win"', {
-      'sources!': [
-        # Keeping _win.cpp
-        "../third_party/skia/src/utils/SkThreadUtils_pthread.cpp",
-        "../third_party/skia/src/utils/SkThreadUtils_pthread_other.cpp",
-      ],
-    },{
-      'sources!': [
-        # Keeping _pthread.cpp and _pthread_other.cpp
-        "../third_party/skia/src/utils/SkThreadUtils_win.cpp",
-      ],
-    }],
-
-    [ 'OS != "mac"', {
-      'sources/': [
-        ['exclude', '/mac/']
-      ],
-    }],
-    [ 'OS == "android" and target_arch == "arm"', {
-      'sources': [
-        '../third_party/skia/src/core/SkUtilsArm.cpp',
-      ],
-      'includes': [
-        '../build/android/cpufeatures.gypi',
-      ],
-    }],
-    [ 'desktop_linux == 1 or chromeos == 1', {
-      'dependencies': [
-        '../build/linux/system.gyp:fontconfig',
-        '../build/linux/system.gyp:freetype2',
-        '../third_party/icu/icu.gyp:icuuc',
-      ],
-      'cflags': [
-        '-Wno-unused',
-        '-Wno-unused-function',
-      ],
-    }],
-    [ 'use_cairo == 1 and use_pango == 1', {
-      'dependencies': [
-        '../build/linux/system.gyp:pangocairo',
-      ],
-    }],
-    [ 'OS=="win" or OS=="mac" or OS=="ios" or OS=="android"', {
-      'sources!': [
-        '../third_party/skia/src/ports/SkFontConfigInterface_direct.cpp',
-        '../third_party/skia/src/ports/SkFontHost_fontconfig.cpp',
-        '../third_party/skia/src/fonts/SkFontMgr_fontconfig.cpp',
-      ],
-    }],
-    [ 'OS=="win" or OS=="mac" or OS=="ios"', {
-      'sources!': [
-        '../third_party/skia/src/ports/SkFontHost_FreeType.cpp',
-        '../third_party/skia/src/ports/SkFontHost_FreeType_common.cpp',
-
-      ],
-    }],
-    [ 'OS == "android"', {
-      'dependencies': [
-        '../third_party/expat/expat.gyp:expat',
-        '../third_party/freetype/freetype.gyp:ft2',
-      ],
-      # This exports a hard dependency because it needs to run its
-      # symlink action in order to expose the skia header files.
-      'hard_dependency': 1,
-      'include_dirs': [
-        '../third_party/expat/files/lib',
-      ],
-    }, { # not 'OS == "android"'
-      'sources!': [
-        "../third_party/skia/src/ports/SkFontMgr_android_factory.cpp",
-        '../third_party/skia/src/ports/SkFontMgr_android_parser.cpp',
-      ],
-    }],
-    [ 'OS == "ios"', {
-      'include_dirs': [
-        '../third_party/skia/include/utils/ios',
-        '../third_party/skia/include/utils/mac',
-      ],
-      'link_settings': {
-        'libraries': [
-          '$(SDKROOT)/System/Library/Frameworks/ImageIO.framework',
-        ],
-      },
-      'sources': [
-        # This file is used on both iOS and Mac, so it should be removed
-        #  from the ios and mac conditions and moved into the main sources
-        #  list.
-        '../third_party/skia/src/utils/mac/SkStream_mac.cpp',
-      ],
-
-      # The main skia_opts target does not currently work on iOS because the
-      # target architecture on iOS is determined at compile time rather than
-      # gyp time (simulator builds are x86, device builds are arm).  As a
-      # temporary measure, this is a separate opts target for iOS-only, using
-      # the _none.cpp files to avoid architecture-dependent implementations.
-      'dependencies': [
-        'skia_library_opts.gyp:skia_opts_none',
-      ],
-      'dependencies!': [
-        'skia_library_opts.gyp:skia_opts',
-      ],
-    }],
-    [ 'OS == "mac"', {
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '../third_party/skia/include/utils/mac',
-        ],
-      },
-      'include_dirs': [
-        '../third_party/skia/include/utils/mac',
-      ],
-      'link_settings': {
-        'libraries': [
-          '$(SDKROOT)/System/Library/Frameworks/AppKit.framework',
-        ],
-      },
-      'sources': [
-        '../third_party/skia/src/utils/mac/SkStream_mac.cpp',
-      ],
-    }],
-    [ 'OS == "win"', {
-      'sources!': [
-        '../third_party/skia/src/ports/SkOSFile_posix.cpp',
-        '../third_party/skia/src/ports/SkTime_Unix.cpp',
-        '../third_party/skia/src/ports/SkTLS_pthread.cpp',
-      ],
-      'include_dirs': [
-        '../third_party/skia/include/utils/win',
-        '../third_party/skia/src/utils/win',
-      ],
-    },{ # not 'OS == "win"'
-      'sources!': [
-        '../third_party/skia/src/ports/SkFontMgr_win_dw.cpp',
-        '../third_party/skia/src/ports/SkRemotableFontMgr_win_dw.cpp',
-        '../third_party/skia/src/ports/SkScalerContext_win_dw.cpp',
-        '../third_party/skia/src/ports/SkScalerContext_win_dw.h',
-        '../third_party/skia/src/ports/SkTypeface_win_dw.cpp',
-        '../third_party/skia/src/ports/SkTypeface_win_dw.h',
-
-        '../third_party/skia/src/utils/win/SkDWrite.h',
-        '../third_party/skia/src/utils/win/SkDWrite.cpp',
-        '../third_party/skia/src/utils/win/SkDWriteFontFileStream.cpp',
-        '../third_party/skia/src/utils/win/SkDWriteFontFileStream.h',
-        '../third_party/skia/src/utils/win/SkDWriteGeometrySink.cpp',
-        '../third_party/skia/src/utils/win/SkDWriteGeometrySink.h',
-        '../third_party/skia/src/utils/win/SkHRESULT.cpp',
-      ],
-    }],
-  ],
-  'target_conditions': [
-    # Pull in specific Mac files for iOS (which have been filtered out
-    # by file name rules).
-    [ 'OS == "ios"', {
-      'sources/': [
-        ['include', 'SkFontHost_mac\\.cpp$',],
-        ['include', 'SkStream_mac\\.cpp$',],
-        ['include', 'SkCreateCGImageRef\\.cpp$',],
-      ],
-      'xcode_settings' : {
-        'WARNING_CFLAGS': [
-          # SkFontHost_mac.cpp uses API deprecated in iOS 7.
-          # crbug.com/408571
-          '-Wno-deprecated-declarations',
-        ],
-      },
-    }],
-  ],
-
-  'direct_dependent_settings': {
-    'include_dirs': [
-      '../third_party/skia/include/core',
-      '../third_party/skia/include/effects',
-      '../third_party/skia/include/pdf',
-      '../third_party/skia/include/gpu',
-      '../third_party/skia/include/lazy',
-      '../third_party/skia/include/pathops',
-      '../third_party/skia/include/pipe',
-      '../third_party/skia/include/ports',
-      '../third_party/skia/include/utils',
-    ],
-  },
-}
diff --git a/skia/skia_library_opts.gyp b/skia/skia_library_opts.gyp
deleted file mode 100644
index 58f036f..0000000
--- a/skia/skia_library_opts.gyp
+++ /dev/null
@@ -1,229 +0,0 @@
-# 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 gyp file contains the platform-specific optimizations for Skia
-{
-  'variables': {
-      'skia_src_path': '../third_party/skia/src',
-      'includes': [ '../third_party/skia/gyp/opts.gypi' ],
-      'include_dirs': [
-        '../third_party/skia/include/core',
-        '../third_party/skia/include/effects',
-        '../third_party/skia/include/utils',
-        '../third_party/skia/src/core',
-        '../third_party/skia/src/opts',
-        '../third_party/skia/src/utils',
-      ],
-   },
-
-  'targets': [
-    # Due to an unfortunate intersection of lameness between gcc and gyp,
-    # we have to build the *_SSE2.cpp files in a separate target.  The
-    # gcc lameness is that, in order to compile SSE2 intrinsics code, it
-    # must be passed the -msse2 flag.  However, with this flag, it may
-    # emit SSE2 instructions even for scalar code, such as the CPUID
-    # test used to test for the presence of SSE2.  So that, and all other
-    # code must be compiled *without* -msse2.  The gyp lameness is that it
-    # does not allow file-specific CFLAGS, so we must create this extra
-    # target for those files to be compiled with -msse2.
-    #
-    # This is actually only a problem on 32-bit Linux (all Intel Macs have
-    # SSE2, Linux x86_64 has SSE2 by definition, and MSC will happily emit
-    # SSE2 from instrinsics, which generating plain ol' 386 for everything
-    # else).  However, to keep the .gyp file simple and avoid platform-specific
-    # build breakage, we do this on all platforms.
-
-    # For about the same reason, we need to compile the ARM opts files
-    # separately as well.
-    {
-      'target_name': 'skia_opts',
-      'type': 'static_library',
-      'includes': [
-        'skia_common.gypi',
-        '../build/android/increase_size_for_speed.gypi',
-        # Disable LTO due to compiler error
-        # in mems_in_disjoint_alias_sets_p, at alias.c:393
-        # crbug.com/422255
-        '../build/android/disable_lto.gypi',
-      ],
-      'include_dirs': [ '<@(include_dirs)' ],
-      'conditions': [
-        [ 'os_posix == 1 and OS != "mac" and OS != "android" and \
-           target_arch != "arm" and target_arch != "arm64" and \
-           target_arch != "mipsel" and target_arch != "mips64el"', {
-          'cflags': [ '-msse2' ],
-        }],
-        [ 'target_arch != "arm" and target_arch != "mipsel" and \
-           target_arch != "arm64" and target_arch != "mips64el"', {
-          'sources': [ '<@(sse2_sources)' ],
-          'dependencies': [
-            'skia_opts_ssse3',
-            'skia_opts_sse41',
-          ],
-        }],
-        [ 'target_arch == "arm"', {
-          'conditions': [
-            [ 'arm_version >= 7', {
-              'sources': [ '<@(armv7_sources)' ],
-            }, {  # arm_version < 7
-              'sources': [ '<@(none_sources)' ],
-            }],
-            [ 'arm_version >= 7 and (arm_neon == 1 or arm_neon_optional == 1)', {
-              'dependencies': [
-                'skia_opts_neon',
-              ]
-            }],
-          ],
-          # The assembly uses the frame pointer register (r7 in Thumb/r11 in
-          # ARM), the compiler doesn't like that. Explicitly remove the
-          # -fno-omit-frame-pointer flag for Android, as that gets added to all
-          # targets via common.gypi.
-          'cflags!': [
-            '-fno-omit-frame-pointer',
-            '-marm',
-            '-mapcs-frame',
-          ],
-          'cflags': [
-            '-fomit-frame-pointer',
-          ],
-        }],
-        [ 'target_arch == "mipsel"',{
-          'cflags': [ '-fomit-frame-pointer' ],
-          'conditions': [
-            [ 'mips_dsp_rev >= 1', {
-              'sources': [ '<@(mips_dsp_sources)' ],
-            }, {  # mips_dsp_rev == 0
-              'sources': [ '<@(none_sources)' ],
-            }],
-          ],
-        }],
-        [ 'target_arch == "mips64el"',{
-          'cflags': [ '-fomit-frame-pointer' ],
-          'sources': [ '<@(none_sources)' ],
-        }],
-        [ 'target_arch == "arm64"', {
-          'sources': [ '<@(arm64_sources)' ],
-        }],
-      ],
-    },
-    # For the same lame reasons as what is done for skia_opts, we have to
-    # create another target specifically for SSSE3 code as we would not want
-    # to compile the SSE2 code with -mssse3 which would potentially allow
-    # gcc to generate SSSE3 code.
-    {
-      'target_name': 'skia_opts_ssse3',
-      'type': 'static_library',
-      'includes': [
-        'skia_common.gypi',
-        '../build/android/increase_size_for_speed.gypi',
-      ],
-      'include_dirs': [ '<@(include_dirs)' ],
-      'conditions': [
-        [ 'OS in ["linux", "freebsd", "openbsd", "solaris", "android"]', {
-          'cflags': [ '-mssse3' ],
-        }],
-        [ 'OS == "mac"', {
-          'xcode_settings': {
-            'GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS': 'YES',
-          },
-        }],
-        [ 'OS == "win" and clang == 1', {
-          # cl.exe's /arch flag doesn't have a setting for SSSE3, and cl.exe
-          # doesn't need it for intrinsics. clang-cl does need it, though.
-          'msvs_settings': {
-            'VCCLCompilerTool': { 'AdditionalOptions': [ '-mssse3' ] },
-          },
-        }],
-        [ 'OS == "win"', {
-          'defines' : [ 'SK_CPU_SSE_LEVEL=31' ],
-        }],
-        [ 'target_arch != "arm" and target_arch != "arm64" and \
-           target_arch != "mipsel" and target_arch != "mips64el"', {
-          'sources': [ '<@(ssse3_sources)' ],
-        }],
-      ],
-    },
-    # For the same lame reasons as what is done for skia_opts, we also have to
-    # create another target specifically for SSE4.1 code as we would not want
-    # to compile the SSE2 code with -msse4.1 which would potentially allow
-    # gcc to generate SSE4.1 code.
-    {
-      'target_name': 'skia_opts_sse41',
-      'type': 'static_library',
-      'includes': [
-        'skia_common.gypi',
-        '../build/android/increase_size_for_speed.gypi',
-      ],
-      'include_dirs': [ '<@(include_dirs)' ],
-      'sources': [ '<@(sse41_sources)' ],
-      'conditions': [
-        [ 'OS in ["linux", "freebsd", "openbsd", "solaris", "android"]', {
-          'cflags': [ '-msse4.1' ],
-        }],
-        [ 'OS == "mac"', {
-          'xcode_settings': {
-            'GCC_ENABLE_SSE41_EXTENSIONS': 'YES',
-          },
-        }],
-        [ 'OS == "win" and clang == 1', {
-          # cl.exe's /arch flag doesn't have a setting for SSE4.1, and cl.exe
-          # doesn't need it for intrinsics. clang-cl does need it, though.
-          'msvs_settings': {
-            'VCCLCompilerTool': { 'AdditionalOptions': [ '-msse4.1' ] },
-          },
-        }],
-        [ 'OS == "win"', {
-          'defines' : [ 'SK_CPU_SSE_LEVEL=41' ],
-        }],
-      ],
-    },
-    {
-      'target_name': 'skia_opts_none',
-      'type': 'static_library',
-      'includes': [
-        'skia_common.gypi',
-        '../build/android/increase_size_for_speed.gypi',
-      ],
-      'include_dirs': [ '<@(include_dirs)' ],
-      'sources': [ '<@(none_sources)' ],
-    },
-  ],
-  'conditions': [
-    # NEON code must be compiled with -mfpu=neon which also affects scalar
-    # code. To support dynamic NEON code paths, we need to build all
-    # NEON-specific sources in a separate static library. The situation
-    # is very similar to the SSSE3 one.
-    ['target_arch == "arm" and (arm_neon == 1 or arm_neon_optional == 1)', {
-      'targets': [
-        {
-          'target_name': 'skia_opts_neon',
-          'type': 'static_library',
-          'includes': [
-            'skia_common.gypi',
-            '../build/android/increase_size_for_speed.gypi',
-            # Disable LTO due to Neon issues
-            # crbug.com/408997
-            '../build/android/disable_lto.gypi',
-          ],
-          'include_dirs': [ '<@(include_dirs)' ],
-          'cflags!': [
-            '-fno-omit-frame-pointer',
-            '-mfpu=vfp',  # remove them all, just in case.
-            '-mfpu=vfpv3',
-            '-mfpu=vfpv3-d16',
-          ],
-          'cflags': [
-            '-mfpu=neon',
-            '-fomit-frame-pointer',
-          ],
-          'ldflags': [
-            '-march=armv7-a',
-            '-Wl,--fix-cortex-a8',
-          ],
-          'sources': [ '<@(neon_sources)' ],
-        },
-      ],
-    }],
-  ],
-}
diff --git a/skia/skia_tests.gyp b/skia/skia_tests.gyp
deleted file mode 100644
index 698493d..0000000
--- a/skia/skia_tests.gyp
+++ /dev/null
@@ -1,64 +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.
-
-{
-  'variables': {
-    'chromium_code': 1,
-  },
-  'targets': [
-    {
-      'target_name': 'skia_unittests',
-      'type': '<(gtest_target_type)',
-      'dependencies': [
-        '../base/base.gyp:base',
-        '../base/base.gyp:run_all_unittests',
-        '../testing/gtest.gyp:gtest',
-        '../skia/skia.gyp:skia',
-        '../ui/gfx/gfx.gyp:gfx',
-        '../ui/gfx/gfx.gyp:gfx_geometry',
-      ],
-      'sources': [
-        'ext/analysis_canvas_unittest.cc',
-        'ext/bitmap_platform_device_mac_unittest.cc',
-        'ext/convolver_unittest.cc',
-        'ext/image_operations_unittest.cc',
-        'ext/pixel_ref_utils_unittest.cc',
-        'ext/platform_canvas_unittest.cc',
-        'ext/recursive_gaussian_convolution_unittest.cc',
-        'ext/refptr_unittest.cc',
-        'ext/skia_utils_ios_unittest.mm',
-        'ext/skia_utils_mac_unittest.mm',
-      ],
-      'conditions': [
-        ['OS != "win" and OS != "mac"', {
-          'sources!': [
-            'ext/platform_canvas_unittest.cc',
-          ],
-        }],
-        ['OS == "android"', {
-          'dependencies': [
-            '../testing/android/native_test.gyp:native_test_native_code',
-          ],
-        }],
-      ],
-    },
-  ],
-  'conditions': [
-    ['OS == "android"', {
-      'targets': [
-        {
-          'target_name': 'skia_unittests_apk',
-          'type': 'none',
-          'dependencies': [
-            'skia_unittests',
-          ],
-          'variables': {
-            'test_suite_name': 'skia_unittests',
-          },
-          'includes': [ '../build/apk_test.gypi' ],
-        },
-      ],
-    }],
-  ],
-}
diff --git a/testing/android/appurify_support.gyp b/testing/android/appurify_support.gyp
deleted file mode 100644
index 2904368..0000000
--- a/testing/android/appurify_support.gyp
+++ /dev/null
@@ -1,22 +0,0 @@
-# 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.
-
-{
-  'conditions': [
-    ['OS=="android"', {
-      'targets': [
-        {
-          'target_name': 'appurify_support_java',
-          'type': 'none',
-          'variables': {
-            'java_in_dir': '../../testing/android/appurify_support/java',
-          },
-          'includes': [
-            '../../build/java.gypi',
-          ],
-        },
-      ],
-    }],
-  ],
-}
diff --git a/testing/android/junit/junit_test.gyp b/testing/android/junit/junit_test.gyp
deleted file mode 100644
index 16e0048..0000000
--- a/testing/android/junit/junit_test.gyp
+++ /dev/null
@@ -1,43 +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.
-
-{
-  'targets': [
-    {
-      # GN: //testing/android/junit:junit_test_support
-      'target_name': 'junit_test_support',
-      'type': 'none',
-      'dependencies': [
-        '../../../third_party/junit/junit.gyp:junit_jar',
-        '../../../third_party/mockito/mockito.gyp:mockito_jar',
-        '../../../third_party/robolectric/robolectric.gyp:robolectric_jar'
-      ],
-      'variables': {
-        'src_paths': [
-          'java/src',
-        ],
-      },
-      'includes': [
-        '../../../build/host_jar.gypi',
-      ],
-    },
-    {
-      # GN: //testing/android/junit:junit_unittests
-      'target_name': 'junit_unit_tests',
-      'type': 'none',
-      'dependencies': [
-        'junit_test_support',
-      ],
-      'variables': {
-        'main_class': 'org.chromium.testing.local.JunitTestMain',
-        'src_paths': [
-          'javatests/src',
-        ],
-      },
-      'includes': [
-        '../../../build/host_jar.gypi',
-      ],
-    },
-  ],
-}
diff --git a/testing/android/native_test.gyp b/testing/android/native_test.gyp
deleted file mode 100644
index fcfd7d7..0000000
--- a/testing/android/native_test.gyp
+++ /dev/null
@@ -1,71 +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.
-
-{
-  'conditions': [
-    ['OS=="android"', {
-      'targets': [
-        {
-          # GN: //testing/android:native_test_jni_headers
-          'target_name': 'native_test_jni_headers',
-          'type': 'none',
-          'sources': [
-            'native_test/java/src/org/chromium/native_test/NativeTestActivity.java'
-          ],
-          'variables': {
-            'jni_gen_package': 'testing',
-          },
-          'includes': [ '../../build/jni_generator.gypi' ],
-        },
-        {
-          # GN: //testing/android:native_test_support
-          'target_name': 'native_test_support',
-          'message': 'building native pieces of native test package',
-          'type': 'static_library',
-          'sources': [
-            'native_test/native_test_launcher.cc',
-            'native_test/native_test_launcher.h',
-            'native_test/native_test_util.cc',
-            'native_test/native_test_util.h',
-          ],
-          'dependencies': [
-            '../../base/base.gyp:base',
-            '../../base/base.gyp:test_support_base',
-            '../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
-            '../gtest.gyp:gtest',
-            'native_test_jni_headers',
-          ],
-        },
-        {
-          # GN: //testing/android:native_test_native_code
-          'target_name': 'native_test_native_code',
-          'message': 'building JNI onload for native test package',
-          'type': 'static_library',
-          'sources': [
-            'native_test/native_test_jni_onload.cc',
-          ],
-          'dependencies': [
-            'native_test_support',
-            '../../base/base.gyp:base',
-          ],
-        },
-        {
-          'target_name': 'native_test_java',
-          'type': 'none',
-          'dependencies': [
-            'appurify_support.gyp:appurify_support_java',
-            '../../base/base.gyp:base_native_libraries_gen',
-            '../../base/base.gyp:base_java',
-          ],
-          'variables': {
-            'chromium_code': '1',
-            'jar_excluded_classes': [ '*/NativeLibraries.class' ],
-            'java_in_dir': 'native_test/java',
-          },
-          'includes': [ '../../build/java.gypi' ],
-        },
-      ],
-    }]
-  ],
-}
diff --git a/testing/android/on_device_instrumentation.gyp b/testing/android/on_device_instrumentation.gyp
deleted file mode 100644
index 12e0f35..0000000
--- a/testing/android/on_device_instrumentation.gyp
+++ /dev/null
@@ -1,79 +0,0 @@
-# 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.
-
-{
-  'conditions': [
-    ['OS=="android"', {
-      'variables' : {
-        'driver_apk_name': 'OnDeviceInstrumentationDriver',
-        'driver_apk_path': '<(PRODUCT_DIR)/apks/<(driver_apk_name).apk'
-      },
-      'targets': [
-        {
-          'target_name': 'reporter_java',
-          'type': 'none',
-          'dependencies': ['../../base/base.gyp:base_java'],
-          'variables': {
-            'java_in_dir': '../../testing/android/reporter/java',
-          },
-          'includes': [
-            '../../build/java.gypi',
-          ],
-        },
-        {
-          'target_name': 'broker_java',
-          'type': 'none',
-          'variables': {
-            'java_in_dir': '../../testing/android/broker/java',
-          },
-          'includes': [
-            '../../build/java.gypi',
-          ],
-        },
-        {
-          'target_name': 'driver_apk',
-          'type': 'none',
-          'dependencies': [
-            'broker_java',
-            'reporter_java',
-            'appurify_support.gyp:appurify_support_java',
-          ],
-          'variables': {
-            'apk_name': '<(driver_apk_name)',
-            'final_apk_path': '<(driver_apk_path)',
-            'java_in_dir': '../../testing/android/driver/java',
-          },
-          'includes': [
-            '../../build/java_apk.gypi',
-          ],
-        },
-        {
-          # This emulates gn's datadeps fields, allowing other APKs to declare
-          # that they require that this APK be built without including the
-          # driver's code.
-          'target_name': 'require_driver_apk',
-          'type': 'none',
-          'actions': [
-            {
-              'action_name': 'require_<(driver_apk_name)',
-              'message': 'Making sure <(driver_apk_path) has been built.',
-              'variables': {
-                'required_file': '<(PRODUCT_DIR)/driver_apk/<(driver_apk_name).apk.required',
-              },
-              'inputs': [
-                '<(driver_apk_path)',
-              ],
-              'outputs': [
-                '<(required_file)',
-              ],
-              'action': [
-                'python', '../../build/android/gyp/touch.py', '<(required_file)',
-              ],
-            },
-          ],
-        },
-      ],
-    }],
-  ],
-}
diff --git a/testing/gmock.gyp b/testing/gmock.gyp
deleted file mode 100644
index 6363b4b..0000000
--- a/testing/gmock.gyp
+++ /dev/null
@@ -1,67 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'gmock',
-      'type': 'static_library',
-      'dependencies': [
-        'gtest.gyp:gtest',
-      ],
-      'sources': [
-        # Sources based on files in r173 of gmock.
-        'gmock/include/gmock/gmock-actions.h',
-        'gmock/include/gmock/gmock-cardinalities.h',
-        'gmock/include/gmock/gmock-generated-actions.h',
-        'gmock/include/gmock/gmock-generated-function-mockers.h',
-        'gmock/include/gmock/gmock-generated-matchers.h',
-        'gmock/include/gmock/gmock-generated-nice-strict.h',
-        'gmock/include/gmock/gmock-matchers.h',
-        'gmock/include/gmock/gmock-spec-builders.h',
-        'gmock/include/gmock/gmock.h',
-        'gmock/include/gmock/internal/gmock-generated-internal-utils.h',
-        'gmock/include/gmock/internal/gmock-internal-utils.h',
-        'gmock/include/gmock/internal/gmock-port.h',
-        'gmock/src/gmock-all.cc',
-        'gmock/src/gmock-cardinalities.cc',
-        'gmock/src/gmock-internal-utils.cc',
-        'gmock/src/gmock-matchers.cc',
-        'gmock/src/gmock-spec-builders.cc',
-        'gmock/src/gmock.cc',
-        'gmock_mutant.h',  # gMock helpers
-      ],
-      'sources!': [
-        'gmock/src/gmock-all.cc',  # Not needed by our build.
-      ],
-      'include_dirs': [
-        'gmock',
-        'gmock/include',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          'gmock/include',  # So that gmock headers can find themselves.
-        ],
-      },
-      'export_dependent_settings': [
-        'gtest.gyp:gtest',
-      ],
-      'conditions': [
-        ['OS == "ios"', {
-          'toolsets': ['host', 'target'],
-        }],
-      ],
-    },
-    {
-      'target_name': 'gmock_main',
-      'type': 'static_library',
-      'dependencies': [
-        'gmock',
-      ],
-      'sources': [
-        'gmock/src/gmock_main.cc',
-      ],
-    },
-  ],
-}
diff --git a/testing/gtest.gyp b/testing/gtest.gyp
deleted file mode 100644
index d61772e..0000000
--- a/testing/gtest.gyp
+++ /dev/null
@@ -1,214 +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.
-
-{
-  'includes': [
-    'gtest.gypi',
-  ],
-  'targets': [
-    {
-      'target_name': 'gtest',
-      'toolsets': ['host', 'target'],
-      'type': 'static_library',
-      'sources': [
-        '<@(gtest_sources)',
-      ],
-      'include_dirs': [
-        'gtest',
-        'gtest/include',
-      ],
-      'dependencies': [
-        'gtest_prod',
-      ],
-      'defines': [
-        # In order to allow regex matches in gtest to be shared between Windows
-        # and other systems, we tell gtest to always use it's internal engine.
-        'GTEST_HAS_POSIX_RE=0',
-        # Chrome doesn't support / require C++11, yet.
-        'GTEST_LANG_CXX11=0',
-      ],
-      'all_dependent_settings': {
-        'defines': [
-          'GTEST_HAS_POSIX_RE=0',
-          'GTEST_LANG_CXX11=0',
-        ],
-      },
-      'conditions': [
-        ['OS == "mac" or OS == "ios"', {
-          'sources': [
-            'gtest_mac.h',
-            'gtest_mac.mm',
-            'platform_test_mac.mm',
-          ],
-          'link_settings': {
-            'libraries': [
-              '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
-            ],
-          },
-        }],
-        ['OS == "ios"', {
-          'dependencies' : [
-            '<(DEPTH)/testing/iossim/iossim.gyp:iossim#host',
-          ],
-          'direct_dependent_settings': {
-            'target_conditions': [
-              # Turn all tests into bundles on iOS because that's the only
-              # type of executable supported for iOS.
-              ['_type=="executable"', {
-                'variables': {
-                  # Use a variable so the path gets fixed up so it is always
-                  # correct when INFOPLIST_FILE finally gets set.
-                  'ios_unittest_info_plist_path':
-                    '<(DEPTH)/testing/gtest_ios/unittest-Info.plist',
-                },
-                'mac_bundle': 1,
-                'xcode_settings': {
-                  'BUNDLE_ID_TEST_NAME':
-                    '>!(echo ">(_target_name)" | sed -e "s/_//g")',
-                  'INFOPLIST_FILE': '>(ios_unittest_info_plist_path)',
-                },
-                'mac_bundle_resources': [
-                  '<(ios_unittest_info_plist_path)',
-                  '<(DEPTH)/testing/gtest_ios/Default.png',
-                ],
-                'mac_bundle_resources!': [
-                  '<(ios_unittest_info_plist_path)',
-                ],
-              }],
-            ],
-          },
-          'sources': [
-            'coverage_util_ios.cc',
-            'coverage_util_ios.h',
-          ],
-        }],
-        ['OS=="ios" and asan==1', {
-          'direct_dependent_settings': {
-            'target_conditions': [
-              # Package the ASan runtime dylib into the test app bundles.
-              ['_type=="executable"', {
-                'postbuilds': [
-                  {
-                    'variables': {
-                      # Define copy_asan_dylib_path in a variable ending in
-                      # _path so that gyp understands it's a path and
-                      # performs proper relativization during dict merging.
-                      'copy_asan_dylib_path':
-                        '<(DEPTH)/build/mac/copy_asan_runtime_dylib.sh',
-                    },
-                    'postbuild_name': 'Copy ASan runtime dylib',
-                    'action': [
-                      '>(copy_asan_dylib_path)',
-                    ],
-                  },
-                ],
-              }],
-            ],
-          },
-        }],
-        ['os_posix == 1', {
-          'defines': [
-            # gtest isn't able to figure out when RTTI is disabled for gcc
-            # versions older than 4.3.2, and assumes it's enabled.  Our Mac
-            # and Linux builds disable RTTI, and cannot guarantee that the
-            # compiler will be 4.3.2. or newer.  The Mac, for example, uses
-            # 4.2.1 as that is the latest available on that platform.  gtest
-            # must be instructed that RTTI is disabled here, and for any
-            # direct dependents that might include gtest headers.
-            'GTEST_HAS_RTTI=0',
-          ],
-          'direct_dependent_settings': {
-            'defines': [
-              'GTEST_HAS_RTTI=0',
-            ],
-          },
-        }],
-        ['OS=="android" and android_app_abi=="x86"', {
-          'defines': [
-            'GTEST_HAS_CLONE=0',
-          ],
-          'direct_dependent_settings': {
-            'defines': [
-              'GTEST_HAS_CLONE=0',
-            ],
-          },
-        }],
-        ['OS=="android"', {
-          # We want gtest features that use tr1::tuple, but we currently
-          # don't support the variadic templates used by libstdc++'s
-          # implementation. gtest supports this scenario by providing its
-          # own implementation but we must opt in to it.
-          'defines': [
-            'GTEST_USE_OWN_TR1_TUPLE=1',
-            # GTEST_USE_OWN_TR1_TUPLE only works if GTEST_HAS_TR1_TUPLE is set.
-            # gtest r625 made it so that GTEST_HAS_TR1_TUPLE is set to 0
-            # automatically on android, so it has to be set explicitly here.
-            'GTEST_HAS_TR1_TUPLE=1',
-          ],
-          'direct_dependent_settings': {
-            'defines': [
-              'GTEST_USE_OWN_TR1_TUPLE=1',
-              'GTEST_HAS_TR1_TUPLE=1',
-            ],
-          },
-        }],
-      ],
-      'direct_dependent_settings': {
-        'defines': [
-          'UNIT_TEST',
-        ],
-        'include_dirs': [
-          'gtest/include',  # So that gtest headers can find themselves.
-        ],
-        'target_conditions': [
-          ['_type=="executable"', {
-            'test': 1,
-            'conditions': [
-              ['OS=="mac"', {
-                'run_as': {
-                  'action????': ['${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}'],
-                },
-              }],
-              ['OS=="ios"', {
-                'variables': {
-                  # Use a variable so the path gets fixed up so it is always
-                  # correct when the action finally gets used.
-                  'ios_run_unittest_script_path':
-                    '<(DEPTH)/testing/gtest_ios/run-unittest.sh',
-                },
-                'run_as': {
-                  'action????': ['>(ios_run_unittest_script_path)'],
-                },
-              }],
-              ['OS=="win"', {
-                'run_as': {
-                  'action????': ['$(TargetPath)', '--gtest_print_time'],
-                },
-              }],
-            ],
-          }],
-        ],
-        'msvs_disabled_warnings': [4800],
-      },
-    },
-    {
-      'target_name': 'gtest_main',
-      'type': 'static_library',
-      'dependencies': [
-        'gtest',
-      ],
-      'sources': [
-        'gtest/src/gtest_main.cc',
-      ],
-    },
-    {
-      'target_name': 'gtest_prod',
-      'toolsets': ['host', 'target'],
-      'type': 'none',
-      'sources': [
-        'gtest/include/gtest/gtest_prod.h',
-      ],
-    },
-  ],
-}
diff --git a/testing/gtest.gypi b/testing/gtest.gypi
deleted file mode 100644
index ca12e1b..0000000
--- a/testing/gtest.gypi
+++ /dev/null
@@ -1,41 +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.
-
-{
-  'variables': {
-    'gtest_sources': [
-      'gtest/include/gtest/gtest-death-test.h',
-      'gtest/include/gtest/gtest-message.h',
-      'gtest/include/gtest/gtest-param-test.h',
-      'gtest/include/gtest/gtest-printers.h',
-      'gtest/include/gtest/gtest-spi.h',
-      'gtest/include/gtest/gtest-test-part.h',
-      'gtest/include/gtest/gtest-typed-test.h',
-      'gtest/include/gtest/gtest.h',
-      'gtest/include/gtest/gtest_pred_impl.h',
-      'gtest/include/gtest/gtest_prod.h',
-      'gtest/include/gtest/internal/gtest-death-test-internal.h',
-      'gtest/include/gtest/internal/gtest-filepath.h',
-      'gtest/include/gtest/internal/gtest-internal.h',
-      'gtest/include/gtest/internal/gtest-linked_ptr.h',
-      'gtest/include/gtest/internal/gtest-param-util-generated.h',
-      'gtest/include/gtest/internal/gtest-param-util.h',
-      'gtest/include/gtest/internal/gtest-port.h',
-      'gtest/include/gtest/internal/gtest-string.h',
-      'gtest/include/gtest/internal/gtest-tuple.h',
-      'gtest/include/gtest/internal/gtest-type-util.h',
-      'gtest/src/gtest-death-test.cc',
-      'gtest/src/gtest-filepath.cc',
-      'gtest/src/gtest-internal-inl.h',
-      'gtest/src/gtest-port.cc',
-      'gtest/src/gtest-printers.cc',
-      'gtest/src/gtest-test-part.cc',
-      'gtest/src/gtest-typed-test.cc',
-      'gtest/src/gtest.cc',
-      'multiprocess_func_list.cc',
-      'multiprocess_func_list.h',
-      'platform_test.h',
-    ],
-  },
-}
diff --git a/testing/gtest_nacl.gyp b/testing/gtest_nacl.gyp
deleted file mode 100644
index d1c0ce0..0000000
--- a/testing/gtest_nacl.gyp
+++ /dev/null
@@ -1,94 +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.
-
-{
-  'variables': {
-    'chromium_code': 1,
-  },
-  'includes': [
-    '../build/common_untrusted.gypi',
-    'gtest.gypi',
-  ],
-  'conditions': [
-    ['disable_nacl==0 and disable_nacl_untrusted==0', {
-      'targets': [
-        {
-          'target_name': 'gtest_nacl',
-          'type': 'none',
-          'variables': {
-            'nlib_target': 'libgtest_nacl.a',
-            'build_glibc': 0,
-            'build_newlib': 0,
-            'build_irt': 0,
-            'build_pnacl_newlib': 1,
-            'build_nonsfi_helper': 1,
-          },
-          'sources': [
-            '<@(gtest_sources)',
-          ],
-          'include_dirs': [
-            'gtest',
-            'gtest/include',
-          ],
-          'defines': [
-            # In order to allow regex matches in gtest to be shared between
-            # Windows and other systems, we tell gtest to always use it's
-            # internal engine.
-            'GTEST_HAS_POSIX_RE=0',
-            'GTEST_LANG_CXX11=0',
-            # gtest isn't able to figure out when RTTI is disabled for gcc
-            # versions older than 4.3.2, and assumes it's enabled.  Our Mac
-            # and Linux builds disable RTTI, and cannot guarantee that the
-            # compiler will be 4.3.2. or newer.  The Mac, for example, uses
-            # 4.2.1 as that is the latest available on that platform.  gtest
-            # must be instructed that RTTI is disabled here, and for any
-            # direct dependents that might include gtest headers.
-            'GTEST_HAS_RTTI=0',
-          ],
-          'all_dependent_settings': {
-            'defines': [
-              'GTEST_HAS_POSIX_RE=0',
-              'GTEST_LANG_CXX11=0',
-            ],
-            'link_flags': [
-              '-lgtest_nacl',
-            ],
-          },
-          'direct_dependent_settings': {
-            'defines': [
-              'UNIT_TEST',
-              'GTEST_HAS_RTTI=0',
-            ],
-            'include_dirs': [
-              'gtest/include',  # So that gtest headers can find themselves.
-            ],
-          },
-        },
-        {
-          'target_name': 'gtest_main_nacl',
-          'type': 'none',
-          'variables': {
-            'nlib_target': 'libgtest_main_nacl.a',
-            'build_glibc': 0,
-            'build_newlib': 0,
-            'build_irt': 0,
-            'build_pnacl_newlib': 1,
-            'build_nonsfi_helper': 1,
-          },
-          'dependencies': [
-            'gtest_nacl',
-          ],
-          'sources': [
-            'gtest/src/gtest_main.cc',
-          ],
-          'all_dependent_settings': {
-            'link_flags': [
-              '-lgtest_main_nacl',
-            ],
-          },
-        },
-      ],
-    }],
-  ],
-}
diff --git a/testing/iossim/iossim.gyp b/testing/iossim/iossim.gyp
deleted file mode 100644
index 6041d39..0000000
--- a/testing/iossim/iossim.gyp
+++ /dev/null
@@ -1,156 +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.
-
-{
-  'variables': {
-    'mac_deployment_target': '10.8'
-  },
-  'conditions': [
-    ['OS!="ios" or "<(GENERATOR)"!="xcode" or "<(GENERATOR_FLAVOR)"=="ninja"', {
-      'targets': [
-        {
-          'target_name': 'iossim',
-          'toolsets': ['host'],
-          'type': 'executable',
-          'variables': {
-            'developer_dir': '<!(xcode-select -print-path)',
-            # TODO(lliabraa): Once all builders are on Xcode 6 this variable can
-            # be removed and the actions gated by this variable can be run by
-            # default (crbug.com/385030).
-            'xcode_version': '<!(xcodebuild -version | grep Xcode | awk \'{print $2}\')',
-          },
-          'conditions': [
-            ['xcode_version>="6.0"', {
-              'variables': {
-                'iphone_sim_path': '<(developer_dir)/../SharedFrameworks',
-              },
-              'defines': [
-                'IOSSIM_USE_XCODE_6',
-              ],
-              'actions': [
-                {
-                  'action_name': 'generate_dvt_foundation_header',
-                  'inputs': [
-                    '<(iphone_sim_path)/DVTFoundation.framework/Versions/Current/DVTFoundation',
-                    '<(PRODUCT_DIR)/class-dump',
-                  ],
-                  'outputs': [
-                    '<(INTERMEDIATE_DIR)/iossim/DVTFoundation.h'
-                  ],
-                  'action': [
-                    # Actions don't provide a way to redirect stdout, so a custom
-                    # script is invoked that will execute the first argument and
-                    # write the output to the file specified as the second argument.
-                    # -I sorts classes, categories, and protocols by inheritance.
-                    # -C <regex> only displays classes matching regular expression.
-                    './redirect-stdout.sh',
-                    '<(PRODUCT_DIR)/class-dump -CDVTStackBacktrace|DVTInvalidation|DVTMixIn <(iphone_sim_path)/DVTFoundation.framework',
-                    '<(INTERMEDIATE_DIR)/iossim/DVTFoundation.h',
-                  ],
-                  'message': 'Generating DVTFoundation.h',
-                },
-                {
-                  'action_name': 'generate_dvt_core_simulator',
-                  'inputs': [
-                    '<(developer_dir)/Library/PrivateFrameworks/CoreSimulator.framework/Versions/Current/CoreSimulator',
-                    '<(PRODUCT_DIR)/class-dump',
-                  ],
-                  'outputs': [
-                    '<(INTERMEDIATE_DIR)/iossim/CoreSimulator.h'
-                  ],
-                  'action': [
-                    # Actions don't provide a way to redirect stdout, so a custom
-                    # script is invoked that will execute the first argument and
-                    # write the output to the file specified as the second argument.
-                    # -I sorts classes, categories, and protocols by inheritance.
-                    # -C <regex> only displays classes matching regular expression.
-                    './redirect-stdout.sh',
-                    '<(PRODUCT_DIR)/class-dump -CSim <(developer_dir)/Library/PrivateFrameworks/CoreSimulator.framework',
-                    '<(INTERMEDIATE_DIR)/iossim/CoreSimulator.h',
-                  ],
-                  'message': 'Generating CoreSimulator.h',
-                },
-              ],  # actions
-            }, {  # else: xcode_version<"6.0"
-              'variables': {
-                'iphone_sim_path': '<(developer_dir)/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks',
-              },
-            }],  # xcode_version
-          ],  # conditions
-          'dependencies': [
-            '<(DEPTH)/third_party/class-dump/class-dump.gyp:class-dump#host',
-          ],
-          'include_dirs': [
-            '<(INTERMEDIATE_DIR)/iossim',
-          ],
-          'sources': [
-            'iossim.mm',
-            '<(INTERMEDIATE_DIR)/iossim/iPhoneSimulatorRemoteClient.h',
-          ],
-          'libraries': [
-            '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
-          ],
-          'actions': [
-            {
-              'action_name': 'generate_dvt_iphone_sim_header',
-              'inputs': [
-                '<(iphone_sim_path)/DVTiPhoneSimulatorRemoteClient.framework/Versions/Current/DVTiPhoneSimulatorRemoteClient',
-                '<(PRODUCT_DIR)/class-dump',
-              ],
-              'outputs': [
-                '<(INTERMEDIATE_DIR)/iossim/DVTiPhoneSimulatorRemoteClient.h'
-              ],
-              'action': [
-                # Actions don't provide a way to redirect stdout, so a custom
-                # script is invoked that will execute the first argument and
-                # write the output to the file specified as the second argument.
-                # -I sorts classes, categories, and protocols by inheritance.
-                # -C <regex> only displays classes matching regular expression.
-                './redirect-stdout.sh',
-                '<(PRODUCT_DIR)/class-dump -I -CiPhoneSimulator <(iphone_sim_path)/DVTiPhoneSimulatorRemoteClient.framework',
-                '<(INTERMEDIATE_DIR)/iossim/DVTiPhoneSimulatorRemoteClient.h',
-              ],
-              'message': 'Generating DVTiPhoneSimulatorRemoteClient.h',
-            },
-          ],  # actions
-          'xcode_settings': {
-            'ARCHS': ['x86_64'],
-          },
-        },
-      ],
-    }, {  # else, OS=="ios" and "<(GENERATOR)"=="xcode" and "<(GENERATOR_FLAVOR)"!="ninja"
-      'variables': {
-        'ninja_output_dir': 'ninja-iossim',
-        'ninja_product_dir':
-          '$(SYMROOT)/<(ninja_output_dir)/<(CONFIGURATION_NAME)',
-      },
-      'targets': [
-        {
-          'target_name': 'iossim',
-          'type': 'none',
-          'toolsets': ['host'],
-          'variables': {
-            # Gyp to rerun
-            're_run_targets': [
-               'testing/iossim/iossim.gyp',
-            ],
-          },
-          'includes': ['../../build/ios/mac_build.gypi'],
-          'actions': [
-            {
-              'action_name': 'compile iossim',
-              'inputs': [],
-              'outputs': [],
-              'action': [
-                '<@(ninja_cmd)',
-                'iossim',
-              ],
-              'message': 'Generating the iossim executable',
-            },
-          ],
-        },
-      ],
-    }],
-  ],
-}
diff --git a/testing/perf/perf_test.gyp b/testing/perf/perf_test.gyp
deleted file mode 100644
index 2065270..0000000
--- a/testing/perf/perf_test.gyp
+++ /dev/null
@@ -1,18 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'perf_test',
-      'type': 'static_library',
-      'sources': [
-        'perf_test.cc',
-      ],
-      'dependencies': [
-        '../../base/base.gyp:base',
-      ],
-    },
-  ],
-}
diff --git a/third_party/android_crazy_linker/crazy_linker.gyp b/third_party/android_crazy_linker/crazy_linker.gyp
deleted file mode 100644
index 6869c0d..0000000
--- a/third_party/android_crazy_linker/crazy_linker.gyp
+++ /dev/null
@@ -1,56 +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.
-
-{
-  'targets': [
-    {
-      # GN: //third_party/android_crazy_linker:android_crazy_linker
-      'target_name': 'crazy_linker',
-      'type': 'static_library',
-      'include_dirs': [
-        'src/include',
-        'src/src',
-      ],
-      'defines': [
-        'CRAZY_DEBUG=0',
-      ],
-      'sources': [
-        'src/src/crazy_linker_api.cpp',
-        'src/src/crazy_linker_ashmem.cpp',
-        'src/src/crazy_linker_debug.cpp',
-        'src/src/crazy_linker_elf_loader.cpp',
-        'src/src/crazy_linker_elf_relocations.cpp',
-        'src/src/crazy_linker_elf_relro.cpp',
-        'src/src/crazy_linker_elf_symbols.cpp',
-        'src/src/crazy_linker_elf_view.cpp',
-        'src/src/crazy_linker_error.cpp',
-        'src/src/crazy_linker_globals.cpp',
-        'src/src/crazy_linker_library_list.cpp',
-        'src/src/crazy_linker_library_view.cpp',
-        'src/src/crazy_linker_line_reader.cpp',
-        'src/src/crazy_linker_proc_maps.cpp',
-        'src/src/crazy_linker_rdebug.cpp',
-        'src/src/crazy_linker_search_path_list.cpp',
-        'src/src/crazy_linker_shared_library.cpp',
-        'src/src/crazy_linker_system.cpp',
-        'src/src/crazy_linker_thread.cpp',
-        'src/src/crazy_linker_util.cpp',
-        'src/src/crazy_linker_wrappers.cpp',
-        'src/src/crazy_linker_zip.cpp',
-        'src/src/linker_phdr.cpp',
-      ],
-      'link_settings': {
-        'libraries': [
-          '-llog',
-          '-ldl',
-        ],
-      },
-      'direct_dependent_settings': {
-        'include_dirs': [
-          'src/include',
-        ],
-      },
-    },
-  ],
-}
diff --git a/third_party/ashmem/ashmem.gyp b/third_party/ashmem/ashmem.gyp
deleted file mode 100644
index e26ac18..0000000
--- a/third_party/ashmem/ashmem.gyp
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-{
-  'targets': [
-    {
-      'target_name': 'ashmem',
-      'type': 'static_library',
-      'sources': [
-        'ashmem.h',
-        'ashmem-dev.c'
-      ],
-    },
-  ],
-}
diff --git a/third_party/boringssl/boringssl.gyp b/third_party/boringssl/boringssl.gyp
deleted file mode 100644
index 845a920..0000000
--- a/third_party/boringssl/boringssl.gyp
+++ /dev/null
@@ -1,108 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'boringssl',
-      'type': '<(component)',
-      'includes': [
-        'boringssl.gypi',
-      ],
-      'sources': [
-        '<@(boringssl_lib_sources)',
-      ],
-      'defines': [
-        'BORINGSSL_IMPLEMENTATION',
-        'BORINGSSL_NO_STATIC_INITIALIZER',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-      'conditions': [
-        ['component == "shared_library"', {
-          'defines': [
-            'BORINGSSL_SHARED_LIBRARY',
-          ],
-        }],
-        ['target_arch == "arm"', {
-          'sources': [ '<@(boringssl_linux_arm_sources)' ],
-        }],
-        ['target_arch == "arm64"', {
-          'sources': [ '<@(boringssl_linux_aarch64_sources)' ],
-        }],
-        ['target_arch == "ia32"', {
-          'conditions': [
-            ['OS == "mac"', {
-              'sources': [ '<@(boringssl_mac_x86_sources)' ],
-            }],
-            ['OS == "linux" or OS == "android"', {
-              'sources': [ '<@(boringssl_linux_x86_sources)' ],
-            }],
-            ['OS == "win"', {
-              'sources': [ '<@(boringssl_win_x86_sources)' ],
-              # Windows' assembly is built with Yasm. The other platforms use
-              # the platform assembler.
-              'variables': {
-                'yasm_output_path': '<(SHARED_INTERMEDIATE_DIR)/third_party/boringssl',
-              },
-              'includes': [
-                '../yasm/yasm_compile.gypi',
-              ],
-            }],
-            ['OS != "mac" and OS != "linux" and OS != "win" and OS != "android"', {
-              'defines': [ 'OPENSSL_NO_ASM' ],
-            }],
-          ]
-        }],
-        ['target_arch == "x64"', {
-          'conditions': [
-            ['OS == "mac"', {
-              'sources': [ '<@(boringssl_mac_x86_64_sources)' ],
-            }],
-            ['OS == "linux" or OS == "android"', {
-              'sources': [ '<@(boringssl_linux_x86_64_sources)' ],
-            }],
-            ['OS == "win"', {
-              'sources': [ '<@(boringssl_win_x86_64_sources)' ],
-              # Windows' assembly is built with Yasm. The other platforms use
-              # the platform assembler.
-              'variables': {
-                'yasm_output_path': '<(SHARED_INTERMEDIATE_DIR)/third_party/boringssl',
-              },
-              'includes': [
-                '../yasm/yasm_compile.gypi',
-              ],
-            }],
-            ['OS != "mac" and OS != "linux" and OS != "win" and OS != "android"', {
-              'defines': [ 'OPENSSL_NO_ASM' ],
-            }],
-          ]
-        }],
-        ['target_arch != "arm" and target_arch != "ia32" and target_arch != "x64" and target_arch != "arm64"', {
-          'defines': [ 'OPENSSL_NO_ASM' ],
-        }],
-      ],
-      'include_dirs': [
-        'src/include',
-        # This is for arm_arch.h, which is needed by some asm files. Since the
-        # asm files are generated and kept in a different directory, they
-        # cannot use relative paths to find this file.
-        'src/crypto',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          'src/include',
-        ],
-        'conditions': [
-          ['component == "shared_library"', {
-            'defines': [
-              'BORINGSSL_SHARED_LIBRARY',
-            ],
-          }],
-        ],
-      },
-    },
-  ],
-}
diff --git a/third_party/boringssl/boringssl_nacl.gyp b/third_party/boringssl/boringssl_nacl.gyp
deleted file mode 100644
index 6ab4b9d..0000000
--- a/third_party/boringssl/boringssl_nacl.gyp
+++ /dev/null
@@ -1,50 +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.
-{
-  'includes': [
-    '../../native_client/build/untrusted.gypi',
-  ],
-  'targets': [
-    {
-      'target_name': 'boringssl_nacl',
-      'type': 'none',
-      'variables': {
-        'nlib_target': 'libboringssl_nacl.a',
-        'build_glibc': 0,
-        'build_newlib': 0,
-        'build_pnacl_newlib': 1,
-      },
-      'dependencies': [
-        '<(DEPTH)/native_client/tools.gyp:prep_toolchain',
-        '<(DEPTH)/native_client_sdk/native_client_sdk_untrusted.gyp:nacl_io_untrusted',
-      ],
-      'includes': [
-        # Include the auto-generated gypi file.
-        'boringssl.gypi'
-      ],
-      'sources': [
-        '<@(boringssl_lib_sources)',
-      ],
-      'defines': [
-        'OPENSSL_NO_ASM',
-      ],
-      'include_dirs': [
-        'src/include',
-        # This is for arm_arch.h, which is needed by some asm files. Since the
-        # asm files are generated and kept in a different directory, they
-        # cannot use relative paths to find this file.
-        'src/crypto',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          'src/include',
-        ],
-      },
-      'pnacl_compile_flags': [
-        '-Wno-sometimes-uninitialized',
-        '-Wno-unused-variable',
-      ],
-    },  # target boringssl_nacl
-  ],
-}
diff --git a/third_party/boringssl/boringssl_tests.gyp b/third_party/boringssl/boringssl_tests.gyp
deleted file mode 100644
index a875bfe..0000000
--- a/third_party/boringssl/boringssl_tests.gyp
+++ /dev/null
@@ -1,25 +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.
-
-{
-  'includes': [
-    'boringssl_tests.gypi',
-  ],
-  'targets': [
-    {
-      'target_name': 'boringssl_unittests',
-      'type': 'executable',
-      'sources': [
-        'boringssl_unittest.cc',
-       ],
-      'dependencies': [
-        '<@(boringssl_test_targets)',
-        '../../base/base.gyp:base',
-        '../../base/base.gyp:run_all_unittests',
-        '../../base/base.gyp:test_support_base',
-        '../../testing/gtest.gyp:gtest',
-      ],
-    },
-  ],
-}
diff --git a/third_party/boringssl/boringssl_tests.gypi b/third_party/boringssl/boringssl_tests.gypi
deleted file mode 100644
index 0373742..0000000
--- a/third_party/boringssl/boringssl_tests.gypi
+++ /dev/null
@@ -1,364 +0,0 @@
-# Copyright (c) 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 file is created by update_gypi_and_asm.py. Do not edit manually.
-
-{
-  'targets': [
-    {
-      'target_name': 'boringssl_base64_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/base64/base64_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_bio_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/bio/bio_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_bn_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/bn/bn_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_bytestring_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/bytestring/bytestring_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_aead_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/cipher/aead_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_cipher_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/cipher/cipher_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_constant_time_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/constant_time_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_dh_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/dh/dh_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_digest_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/digest/digest_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_dsa_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/dsa/dsa_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_ec_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/ec/ec_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_example_mul',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/ec/example_mul.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_ecdsa_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/ecdsa/ecdsa_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_err_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/err/err_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_evp_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/evp/evp_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_pbkdf_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/evp/pbkdf_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_hkdf_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/hkdf/hkdf_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_hmac_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/hmac/hmac_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_lhash_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/lhash/lhash_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_gcm_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/modes/gcm_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_pkcs12_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/pkcs8/pkcs12_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_rsa_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/rsa/rsa_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_pkcs7_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/crypto/x509/pkcs7_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_pqueue_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/ssl/pqueue/pqueue_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-    {
-      'target_name': 'boringssl_ssl_test',
-      'type': 'executable',
-      'dependencies': [
-        'boringssl.gyp:boringssl',
-      ],
-      'sources': [
-        'src/ssl/ssl_test.c',
-      ],
-      # TODO(davidben): Fix size_t truncations in BoringSSL.
-      # https://crbug.com/429039
-      'msvs_disabled_warnings': [ 4267, ],
-    },
-  ],
-  'variables': {
-    'boringssl_test_targets': [
-      'boringssl_aead_test',
-      'boringssl_base64_test',
-      'boringssl_bio_test',
-      'boringssl_bn_test',
-      'boringssl_bytestring_test',
-      'boringssl_cipher_test',
-      'boringssl_constant_time_test',
-      'boringssl_dh_test',
-      'boringssl_digest_test',
-      'boringssl_dsa_test',
-      'boringssl_ec_test',
-      'boringssl_ecdsa_test',
-      'boringssl_err_test',
-      'boringssl_evp_test',
-      'boringssl_example_mul',
-      'boringssl_gcm_test',
-      'boringssl_hkdf_test',
-      'boringssl_hmac_test',
-      'boringssl_lhash_test',
-      'boringssl_pbkdf_test',
-      'boringssl_pkcs12_test',
-      'boringssl_pkcs7_test',
-      'boringssl_pqueue_test',
-      'boringssl_rsa_test',
-      'boringssl_ssl_test',
-    ],
-  }
-}
diff --git a/third_party/brotli/brotli.gyp b/third_party/brotli/brotli.gyp
deleted file mode 100644
index e09f0c6..0000000
--- a/third_party/brotli/brotli.gyp
+++ /dev/null
@@ -1,32 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'brotli',
-      'type': 'static_library',
-      'include_dirs': [
-        'dec',
-      ],
-      'sources': [
-        'dec/bit_reader.c',
-        'dec/bit_reader.h',
-        'dec/context.h',
-        'dec/decode.c',
-        'dec/decode.h',
-        'dec/dictionary.h',
-        'dec/huffman.c',
-        'dec/huffman.h',
-        'dec/prefix.h',
-        'dec/safe_malloc.c',
-        'dec/safe_malloc.h',
-        'dec/streams.c',
-        'dec/streams.h',
-        'dec/transform.h',
-        'dec/types.h',
-      ],
-    },
-  ],
-}
diff --git a/third_party/cython/python_module.gypi b/third_party/cython/python_module.gypi
deleted file mode 100644
index 138c416..0000000
--- a/third_party/cython/python_module.gypi
+++ /dev/null
@@ -1,29 +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.
-
-{
-  'variables': {
-    'python_module_destination': '<(PRODUCT_DIR)/python/<(python_base_module)',
-  },
-  'rules': [
-    {
-      'rule_name': '<(_target_name)_cp_python',
-      'extension': 'py',
-      'inputs': [
-        '<(DEPTH)/build/cp.py',
-      ],
-      'outputs': [
-        '<(python_module_destination)/<(RULE_INPUT_NAME)',
-      ],
-      'action': [
-        'python',
-        '<@(_inputs)',
-        '<(RULE_INPUT_PATH)',
-        '<@(_outputs)',
-      ],
-      'message': 'Moving <(RULE_INPUT_PATH) to its destination',
-    },
-  ],
-  'hard_dependency': 1,
-}
diff --git a/third_party/expat/expat.gyp b/third_party/expat/expat.gyp
deleted file mode 100644
index c11b9e6..0000000
--- a/third_party/expat/expat.gyp
+++ /dev/null
@@ -1,79 +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.
-
-{
-  'variables': {
-    'conditions': [
-      # On Linux, we implicitly already depend on expat via fontconfig;
-      # let's not pull it in twice.
-      ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
-        'use_system_expat%': 1,
-      }, {
-        'use_system_expat%': 0,
-      }],
-    ],
-  },
-  'target_defaults': {
-    'defines': [
-      '_LIB',
-      'XML_STATIC',  # Compile for static linkage.
-    ],
-    'include_dirs': [
-      'files/lib',
-    ],
-  },
-  'conditions': [
-    ['use_system_expat == 1', {
-      'targets': [
-        {
-          'target_name': 'expat',
-          'type': 'none',
-          'link_settings': {
-            'libraries': [
-              '-lexpat',
-            ],
-          },
-        },
-      ],
-    }, {  # else: use_system_expat != 1
-      'targets': [
-        {
-          'target_name': 'expat',
-          'type': 'static_library',
-          'sources': [
-            'files/lib/expat.h',
-            'files/lib/xmlparse.c',
-            'files/lib/xmlrole.c',
-            'files/lib/xmltok.c',
-          ],
-
-          # Prefer adding a dependency to expat and relying on the following
-          # direct_dependent_settings rule over manually adding the include
-          # path.  This is because you'll want any translation units that
-          # #include these files to pick up the #defines as well.
-          'direct_dependent_settings': {
-            'include_dirs': [
-              'files/lib'
-            ],
-            'defines': [
-              'XML_STATIC',  # Tell dependants to expect static linkage.
-            ],
-          },
-          'conditions': [
-            ['OS=="win"', {
-              'defines': [
-                'COMPILED_FROM_DSP',
-              ],
-            }],
-            ['OS=="mac" or OS=="ios" or OS=="android" or os_bsd==1', {
-              'defines': [
-                'HAVE_EXPAT_CONFIG_H',
-              ],
-            }],
-          ],
-        },
-      ],
-    }],
-  ],
-}
diff --git a/third_party/expat/expat_nacl.gyp b/third_party/expat/expat_nacl.gyp
deleted file mode 100644
index ea7811c..0000000
--- a/third_party/expat/expat_nacl.gyp
+++ /dev/null
@@ -1,47 +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.
-
-{
-  'includes': [
-    '../../native_client/build/untrusted.gypi',
-  ],
-  'targets': [
-    {
-      'target_name': 'expat_nacl',
-      'type': 'none',
-      'variables': {
-        'nlib_target': 'libexpat_nacl.a',
-        'build_glibc': 0,
-        'build_newlib': 0,
-        'build_pnacl_newlib': 1,
-      },
-      'sources': [
-        'files/lib/expat.h',
-        'files/lib/xmlparse.c',
-        'files/lib/xmlrole.c',
-        'files/lib/xmltok.c',
-      ],
-      'include_dirs': [
-        'files/lib',
-      ],
-      'defines': [
-        '_LIB',
-        'XML_STATIC',
-        'HAVE_MEMMOVE',
-      ],
-      'compile_flags': [
-        '-Wno-enum-conversion',
-        '-Wno-switch',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          'files/lib'
-        ],
-        'defines': [
-          'XML_STATIC',  # Tell dependants to expect static linkage.
-        ],
-      },
-    },
-  ],
-}
diff --git a/third_party/fontconfig/fontconfig.gyp b/third_party/fontconfig/fontconfig.gyp
deleted file mode 100644
index 3565a7f..0000000
--- a/third_party/fontconfig/fontconfig.gyp
+++ /dev/null
@@ -1,71 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'fontconfig',
-      'type': '<(component)',
-      'dependencies' : [
-        '../zlib/zlib.gyp:zlib',
-        '../../build/linux/system.gyp:freetype2',
-        '../libxml/libxml.gyp:libxml',
-      ],
-      'defines': [
-          'HAVE_CONFIG_H',
-          'FC_CACHEDIR="/var/cache/fontconfig"',
-          'FONTCONFIG_PATH="/etc/fonts"',
-      ],
-      'conditions': [
-        ['clang==1', {
-          # Work around a null-conversion warning. See crbug.com/358852.
-          'cflags': [
-            '-Wno-non-literal-null-conversion',
-          ],
-        }],
-      ],
-      'sources': [
-        'chromium/empty.cc',
-        'src/src/fcarch.h',
-        'src/src/fcatomic.c',
-        'src/src/fcblanks.c',
-        'src/src/fccache.c',
-        'src/src/fccfg.c',
-        'src/src/fccharset.c',
-        'src/src/fccompat.c',
-        'src/src/fcdbg.c',
-        'src/src/fcdefault.c',
-        'src/src/fcdir.c',
-        'src/src/fcformat.c',
-        'src/src/fcfreetype.c',
-        'src/src/fcfs.c',
-        'src/src/fchash.c',
-        'src/src/fcinit.c',
-        'src/src/fclang.c',
-        'src/src/fclist.c',
-        'src/src/fcmatch.c',
-        'src/src/fcmatrix.c',
-        'src/src/fcname.c',
-        'src/src/fcobjs.c',
-        'src/src/fcpat.c',
-        'src/src/fcserialize.c',
-        'src/src/fcstat.c',
-        'src/src/fcstr.c',
-        'src/src/fcxml.c',
-        'src/src/ftglue.h',
-        'src/src/ftglue.c',
-      ],
-      'include_dirs': [
-        'src',
-        'include',
-        'include/src',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-           'src',
-        ],
-      },
-    },
-  ],
-}
diff --git a/third_party/freetype2/freetype2.gyp b/third_party/freetype2/freetype2.gyp
deleted file mode 100644
index c2a279d..0000000
--- a/third_party/freetype2/freetype2.gyp
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright (c) 2013 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-{
- 'variables': {
-    'ft2_dir': 'src',
- },
- 'targets': [
-    {
-      # We use a hard-coded shared library version in product_extension
-      # in order to match the version used on Ubuntu Precise.
-      # We also disable bzip2 and the ftpatent code to match the version
-      # that shipped on Ubuntu Lucid.
-      'target_name': 'freetype2',
-      'type': 'shared_library',
-      'product_name': 'freetype',
-      'product_extension': 'so.6',
-      'toolsets': ['target'],
-      'sources': [
-        '<(ft2_dir)/src/base/ftsystem.c',
-        '<(ft2_dir)/src/base/ftinit.c',
-        '<(ft2_dir)/src/base/ftdebug.c',
-
-        '<(ft2_dir)/src/base/ftbase.c',
-
-        '<(ft2_dir)/src/base/ftbbox.c',
-        '<(ft2_dir)/src/base/ftglyph.c',
-
-        '<(ft2_dir)/src/base/ftbdf.c',
-        '<(ft2_dir)/src/base/ftbitmap.c',
-        '<(ft2_dir)/src/base/ftcid.c',
-        '<(ft2_dir)/src/base/ftfstype.c',
-        '<(ft2_dir)/src/base/ftgasp.c',
-        '<(ft2_dir)/src/base/ftgxval.c',
-        '<(ft2_dir)/src/base/ftlcdfil.c',
-        '<(ft2_dir)/src/base/ftmm.c',
-        '<(ft2_dir)/src/base/ftpfr.c',
-        '<(ft2_dir)/src/base/ftstroke.c',
-        '<(ft2_dir)/src/base/ftsynth.c',
-        '<(ft2_dir)/src/base/fttype1.c',
-        '<(ft2_dir)/src/base/ftwinfnt.c',
-        '<(ft2_dir)/src/base/ftxf86.c',
-
-        '<(ft2_dir)/src/bdf/bdf.c',
-        '<(ft2_dir)/src/cff/cff.c',
-        '<(ft2_dir)/src/cid/type1cid.c',
-        '<(ft2_dir)/src/pcf/pcf.c',
-        '<(ft2_dir)/src/pfr/pfr.c',
-        '<(ft2_dir)/src/sfnt/sfnt.c',
-        '<(ft2_dir)/src/truetype/truetype.c',
-        '<(ft2_dir)/src/type1/type1.c',
-        '<(ft2_dir)/src/type42/type42.c',
-        '<(ft2_dir)/src/winfonts/winfnt.c',
-
-        '<(ft2_dir)/src/psaux/psaux.c',
-        '<(ft2_dir)/src/psnames/psnames.c',
-        '<(ft2_dir)/src/pshinter/pshinter.c',
-
-        '<(ft2_dir)/src/raster/raster.c',
-        '<(ft2_dir)/src/smooth/smooth.c',
-
-        '<(ft2_dir)/src/autofit/autofit.c',
-        '<(ft2_dir)/src/gzip/ftgzip.c',
-        '<(ft2_dir)/src/lzw/ftlzw.c',
-      ],
-      'defines': [
-        'FT_CONFIG_OPTION_SYSTEM_ZLIB',
-        'FT2_BUILD_LIBRARY',
-        'FT_CONFIG_CONFIG_H=<ftconfig.h>',  # See comments in README.chromium.
-        'FT_CONFIG_MODULES_H=<ftmodule.h>',  # See comments in README.chromium.
-      ],
-      'include_dirs': [
-        'include',
-        '<(ft2_dir)/include',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          'include',
-          '<(ft2_dir)/include',
-        ],
-      },
-      'link_settings': {
-        'libraries': [
-          '-lz',
-        ],
-      },
-    },
-  ], # targets
-}
diff --git a/third_party/harfbuzz-ng/harfbuzz.gyp b/third_party/harfbuzz-ng/harfbuzz.gyp
deleted file mode 100644
index 96e4b7c..0000000
--- a/third_party/harfbuzz-ng/harfbuzz.gyp
+++ /dev/null
@@ -1,199 +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.
-
-{
-  'includes': [
-    '../../build/win_precompile.gypi',
-  ],
-  'variables': {
-    'variables': {
-      'conditions': [
-        ['sysroot!=""', {
-          'pkg-config': '<(chroot_cmd) ../../build/linux/pkg-config-wrapper "<(sysroot)" "<(target_arch)" "<(system_libdir)"',
-        }, {
-          'pkg-config': 'pkg-config'
-        }],
-      ],
-    },
-
-    'pkg-config': '<(pkg-config)',
-
-    'conditions': [
-      ['OS=="linux" and (buildtype!="Official" or chromeos==1) and embedded==0', {
-        # Since version 1.31.0, pangoft2 which we depend on pulls in harfbuzz
-        # anyways. However, we want to have control of the version of harfbuzz
-        # we use, so don't use system harfbuzz for official builds, unless we
-        # are building for chrome os, where we have the system harfbuzz under
-        # control as well.
-        'use_system_harfbuzz%': '<!(python ../../build/check_return_value.py <(pkg-config) --atleast-version=1.31.0 pangoft2)',
-      }, {
-        'use_system_harfbuzz': 0,
-      }],
-      ['OS=="linux" and target_arch=="arm" and chromeos==0', {
-        # Override use_system_harfbuzz for ARM cross compiling so system
-        # harfbuzz is not used because the corresponding package is not
-        # available.
-        'use_system_harfbuzz': 0,
-      }],
-    ],
-  },
-  'conditions': [
-    ['use_system_harfbuzz==0', {
-      'targets': [
-        {
-          'target_name': 'harfbuzz-ng',
-          'type': 'static_library',
-          'defines': [
-            'HAVE_OT',
-            'HAVE_ICU',
-            'HAVE_ICU_BUILTIN',
-            'HB_NO_MT',
-          ],
-          'sources': [
-            'src/hb-atomic-private.hh',
-            'src/hb-blob.cc',
-            'src/hb-blob.h',
-            'src/hb-buffer.cc',
-            'src/hb-buffer-deserialize-json.hh',
-            'src/hb-buffer-deserialize-text.hh',
-            'src/hb-buffer.h',
-            'src/hb-buffer-private.hh',
-            'src/hb-buffer-serialize.cc',
-            'src/hb-cache-private.hh',
-            'src/hb-common.cc',
-            'src/hb-common.h',
-            'src/hb-deprecated.h',
-            'src/hb-face.cc',
-            'src/hb-face.h',
-            'src/hb-face-private.hh',
-            'src/hb-fallback-shape.cc',
-            'src/hb-font.cc',
-            'src/hb-font.h',
-            'src/hb-font-private.hh',
-            'src/hb.h',
-            'src/hb-icu.cc',
-            'src/hb-icu.h',
-            'src/hb-mutex-private.hh',
-            'src/hb-object-private.hh',
-            'src/hb-open-file-private.hh',
-            'src/hb-open-type-private.hh',
-            'src/hb-ot.h',
-            'src/hb-ot-head-table.hh',
-            'src/hb-ot-hhea-table.hh',
-            'src/hb-ot-hmtx-table.hh',
-            'src/hb-ot-layout.cc',
-            'src/hb-ot-layout-common-private.hh',
-            'src/hb-ot-layout-gdef-table.hh',
-            'src/hb-ot-layout-gpos-table.hh',
-            'src/hb-ot-layout-gsubgpos-private.hh',
-            'src/hb-ot-layout-gsub-table.hh',
-            'src/hb-ot-layout.h',
-            'src/hb-ot-layout-private.hh',
-            'src/hb-ot-map.cc',
-            'src/hb-ot-map-private.hh',
-            'src/hb-ot-maxp-table.hh',
-            'src/hb-ot-name-table.hh',
-            'src/hb-ot-shape.cc',
-            'src/hb-ot-shape-complex-arabic.cc',
-            'src/hb-ot-shape-complex-arabic-fallback.hh',
-            'src/hb-ot-shape-complex-arabic-table.hh',
-            'src/hb-ot-shape-complex-default.cc',
-            'src/hb-ot-shape-complex-hangul.cc',
-            'src/hb-ot-shape-complex-hebrew.cc',
-            'src/hb-ot-shape-complex-indic.cc',
-            'src/hb-ot-shape-complex-indic-machine.hh',
-            'src/hb-ot-shape-complex-indic-private.hh',
-            'src/hb-ot-shape-complex-indic-table.cc',
-            'src/hb-ot-shape-complex-myanmar.cc',
-            'src/hb-ot-shape-complex-myanmar-machine.hh',
-            'src/hb-ot-shape-complex-private.hh',
-            'src/hb-ot-shape-complex-sea.cc',
-            'src/hb-ot-shape-complex-sea-machine.hh',
-            'src/hb-ot-shape-complex-thai.cc',
-            'src/hb-ot-shape-complex-tibetan.cc',
-            'src/hb-ot-shape-fallback.cc',
-            'src/hb-ot-shape-fallback-private.hh',
-            'src/hb-ot-shape.h',
-            'src/hb-ot-shape-normalize.cc',
-            'src/hb-ot-shape-normalize-private.hh',
-            'src/hb-ot-shape-private.hh',
-            'src/hb-ot-tag.cc',
-            'src/hb-ot-tag.h',
-            'src/hb-private.hh',
-            'src/hb-set.cc',
-            'src/hb-set.h',
-            'src/hb-set-private.hh',
-            'src/hb-shape.cc',
-            'src/hb-shape.h',
-            'src/hb-shape-plan.cc',
-            'src/hb-shape-plan.h',
-            'src/hb-shape-plan-private.hh',
-            'src/hb-shaper.cc',
-            'src/hb-shaper-impl-private.hh',
-            'src/hb-shaper-list.hh',
-            'src/hb-shaper-private.hh',
-            'src/hb-unicode.cc',
-            'src/hb-unicode.h',
-            'src/hb-unicode-private.hh',
-            'src/hb-utf-private.hh',
-            'src/hb-version.h',
-            'src/hb-warning.cc',
-          ],
-          'include_dirs': [
-            'src',
-          ],
-          'direct_dependent_settings': {
-            'include_dirs': [
-              'src',
-            ],
-          },
-          'dependencies': [
-            '../../third_party/icu/icu.gyp:icuuc',
-          ],
-          'variables': {
-            'clang_warning_flags': [ '-Wno-unused-value', ],
-          },
-          'conditions': [
-            ['OS=="win"', {
-              # TODO(eae): C4267 on amd64. size_t -> int, size_t -> unsigned int
-              'msvs_disabled_warnings': [4267, 4334],
-            }],
-            ['OS=="mac"', {
-              'defines': [
-                'HAVE_CORETEXT',
-              ],
-              'sources': [
-                'src/hb-coretext.cc',
-                'src/hb-coretext.h',
-              ],
-            }],
-          ],
-        },
-      ],
-    }, {  # use_system_harfbuzz==1
-      'targets': [
-        {
-          'target_name': 'harfbuzz-ng',
-          'type': 'none',
-          'cflags': [
-            '<!@(<(pkg-config) --cflags harfbuzz)',
-          ],
-          'direct_dependent_settings': {
-            'cflags': [
-              '<!@(<(pkg-config) --cflags harfbuzz)',
-            ],
-          },
-          'link_settings': {
-            'ldflags': [
-              '<!@(<(pkg-config) --libs-only-L --libs-only-other harfbuzz)',
-            ],
-            'libraries': [
-              '<!@(<(pkg-config) --libs-only-l harfbuzz)',
-            ],
-          },
-        },
-      ],
-    }],
-  ],
-}
diff --git a/third_party/iaccessible2/iaccessible2.gyp b/third_party/iaccessible2/iaccessible2.gyp
deleted file mode 100644
index 918728a..0000000
--- a/third_party/iaccessible2/iaccessible2.gyp
+++ /dev/null
@@ -1,48 +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.
-
-{
-  'variables': {
-    'midl_out_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/iaccessible2',
-  },
-  'targets': [
-    {
-      'target_name': 'iaccessible2',
-      'type': 'static_library',
-      'sources': [
-        'ia2_api_all.idl',
-        '<(midl_out_dir)/ia2_api_all.h',
-        '<(midl_out_dir)/ia2_api_all_i.c',
-      ],
-      'hard_dependency': 1,
-      'msvs_settings': {
-        'VCMIDLTool': {
-          'OutputDirectory': '<(midl_out_dir)',
-          'DLLDataFileName': 'dlldata.c',
-         },
-      },
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '<(SHARED_INTERMEDIATE_DIR)',
-        ],
-      },
-    },
-    {
-      'target_name': 'IAccessible2Proxy',
-      'type': 'shared_library',
-      'defines': [ 'REGISTER_PROXY_DLL' ],
-      'dependencies': [ 'iaccessible2' ],
-      'sources': [
-        'IAccessible2Proxy.def',
-        '<(midl_out_dir)/dlldata.c',
-        '<(midl_out_dir)/ia2_api_all_p.c',
-      ],
-      'link_settings': {
-        'libraries': [
-          '-lrpcrt4.lib',
-        ],
-      },
-    },
-  ],
-}
diff --git a/third_party/iccjpeg/iccjpeg.gyp b/third_party/iccjpeg/iccjpeg.gyp
deleted file mode 100644
index 7801148..0000000
--- a/third_party/iccjpeg/iccjpeg.gyp
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-{
-  'targets': [
-    {
-      'target_name': 'iccjpeg',
-      'type': 'static_library',
-      'dependencies': [
-        '<(libjpeg_gyp_path):libjpeg',
-      ],
-      'sources': [
-        'iccjpeg.c',
-        'iccjpeg.h',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '.',
-        ],
-      },
-    },
-  ],
-}
diff --git a/third_party/jsr-305/jsr-305.gyp b/third_party/jsr-305/jsr-305.gyp
deleted file mode 100644
index 37af4b2..0000000
--- a/third_party/jsr-305/jsr-305.gyp
+++ /dev/null
@@ -1,19 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'jsr_305_javalib',
-      'type': 'none',
-      'variables': {
-        # The sources are not located in a folder that is called src/, so we
-        # need to set it in additional_src_dirs parameter instead.
-        'java_in_dir': '../../build/android/empty',
-        'additional_src_dirs': [ 'src/ri/' ],
-      },
-      'includes': [ '../../build/java.gypi' ],
-    },
-  ]
-}
diff --git a/third_party/jstemplate/compiled_resources.gyp b/third_party/jstemplate/compiled_resources.gyp
deleted file mode 100644
index 7ad8373..0000000
--- a/third_party/jstemplate/compiled_resources.gyp
+++ /dev/null
@@ -1,17 +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.
-{
-  'targets': [
-    {
-      'target_name': 'jstemplate',
-      'variables': {
-        'depends': [
-          'util.js',
-          'jsevalcontext.js',
-        ],
-      },
-      'includes': ['../../third_party/closure_compiler/compile_js.gypi'],
-    }
-  ],
-}
diff --git a/third_party/junit/junit.gyp b/third_party/junit/junit.gyp
deleted file mode 100644
index c797e06..0000000
--- a/third_party/junit/junit.gyp
+++ /dev/null
@@ -1,34 +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.
-
-{
-  'targets': [
-    {
-      # GN: //third_party/junit:hamcrest
-      'target_name': 'hamcrest_jar',
-      'type': 'none',
-      'variables': {
-        'jar_path': 'src/lib/hamcrest-core-1.1.jar',
-      },
-      'includes': [
-        '../../build/host_prebuilt_jar.gypi',
-      ]
-    },
-    {
-      # GN: //third_party/junit:junit
-      'target_name': 'junit_jar',
-      'type': 'none',
-      'dependencies': [
-        'hamcrest_jar',
-      ],
-      'variables': {
-        'src_paths': [ 'src/src/main/java' ],
-      },
-      'includes': [
-        '../../build/host_jar.gypi',
-      ],
-    },
-  ],
-}
-
diff --git a/third_party/khronos/khronos.gyp b/third_party/khronos/khronos.gyp
deleted file mode 100644
index 8a85572..0000000
--- a/third_party/khronos/khronos.gyp
+++ /dev/null
@@ -1,18 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'khronos_headers',
-      'type': 'none',
-      'all_dependent_settings': {
-        'include_dirs': [
-          '.',
-          '../../gpu',  # Contains GLES2/gl2chromium.h
-        ],
-      },
-    },
-  ],
-}
diff --git a/third_party/libXNVCtrl/libXNVCtrl.gyp b/third_party/libXNVCtrl/libXNVCtrl.gyp
deleted file mode 100644
index c72c795..0000000
--- a/third_party/libXNVCtrl/libXNVCtrl.gyp
+++ /dev/null
@@ -1,18 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'libXNVCtrl',
-      'type': 'static_library',
-      'sources': [
-        'NVCtrl.c',
-        'NVCtrl.h',
-        'NVCtrlLib.h',
-        'nv_control.h',
-      ],
-    },
-  ],
-}
diff --git a/third_party/libevent/libevent.gyp b/third_party/libevent/libevent.gyp
deleted file mode 100644
index 656dd63..0000000
--- a/third_party/libevent/libevent.gyp
+++ /dev/null
@@ -1,64 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'libevent',
-      'product_name': 'event',
-      'type': 'static_library',
-      'toolsets': ['host', 'target'],
-      'sources': [
-        'buffer.c',
-        'evbuffer.c',
-        'evdns.c',
-        'event.c',
-        'event_tagging.c',
-        'evrpc.c',
-        'evutil.c',
-        'http.c',
-        'log.c',
-        'poll.c',
-        'select.c',
-        'signal.c',
-        'strlcpy.c',
-      ],
-      'defines': [
-        'HAVE_CONFIG_H',
-      ],
-      'include_dirs': [
-        '../..',
-      ],
-      'conditions': [
-        # libevent has platform-specific implementation files.  Since its
-        # native build uses autoconf, platform-specific config.h files are
-        # provided and live in platform-specific directories.
-        [ 'OS == "linux" or (OS == "android" and _toolset == "host")', {
-          'sources': [ 'epoll.c' ],
-          'include_dirs': [ 'linux' ],
-          'link_settings': {
-            'libraries': [
-              # We need rt for clock_gettime().
-              # TODO(port) Maybe on FreeBSD as well?
-              '-lrt',
-            ],
-          },
-        }],
-        [ 'OS == "android" and _toolset == "target"', {
-          # On android, clock_gettime() is in libc.so, so no need to link librt.
-          'sources': [ 'epoll.c' ],
-          'include_dirs': [ 'android' ],
-        }],
-        [ 'OS == "mac" or OS == "ios" or os_bsd==1', {
-          'sources': [ 'kqueue.c' ],
-          'include_dirs': [ 'mac' ]
-        }],
-        [ 'OS == "solaris"', {
-          'sources': [ 'devpoll.c', 'evport.c' ],
-          'include_dirs': [ 'solaris' ]
-        }],
-      ],
-    },
-  ],
-}
diff --git a/third_party/libevent/libevent_nacl_nonsfi.gyp b/third_party/libevent/libevent_nacl_nonsfi.gyp
deleted file mode 100644
index 2999ceb..0000000
--- a/third_party/libevent/libevent_nacl_nonsfi.gyp
+++ /dev/null
@@ -1,47 +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.
-
-{
-  'includes': [
-    '../../build/common_untrusted.gypi',
-  ],
-  'conditions': [
-    ['disable_nacl==0 and disable_nacl_untrusted==0', {
-      'targets': [
-        {
-          'target_name': 'event_nacl_nonsfi',
-          'type': 'none',
-          'sources': [
-            'buffer.c',
-            'evbuffer.c',
-            'event.c',
-            'evutil.c',
-            'log.c',
-            'poll.c',
-            'strlcpy.c',
-            'nacl_nonsfi/config.h',
-            'nacl_nonsfi/event-config.h',
-            'nacl_nonsfi/random.c',
-            'nacl_nonsfi/signal_stub.c',
-          ],
-          'defines': [
-            'HAVE_CONFIG_H',
-          ],
-          'include_dirs': [
-            'nacl_nonsfi',
-          ],
-          'variables': {
-            'nacl_untrusted_build': 1,
-            'nlib_target': 'libevent_nacl_nonsfi.a',
-            'build_glibc': 0,
-            'build_newlib': 0,
-            'build_irt': 0,
-            'build_pnacl_newlib': 0,
-            'build_nonsfi_helper': 1,
-          },
-        },
-      ],
-    }],
-  ],
-}
diff --git a/third_party/libjpeg/libjpeg.gyp b/third_party/libjpeg/libjpeg.gyp
deleted file mode 100644
index 8af796e..0000000
--- a/third_party/libjpeg/libjpeg.gyp
+++ /dev/null
@@ -1,109 +0,0 @@
-# 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.
-
-{
-  # This file handles building both with our local libjpeg and with the system
-  # libjpeg.
-  'conditions': [
-    ['use_system_libjpeg==0', {
-      'targets': [
-        {
-          'target_name': 'libjpeg',
-          'type': 'static_library',
-          'defines': [
-            'NO_GETENV',  # getenv() is not thread-safe.
-          ],
-          'sources': [
-            'jcapimin.c',
-            'jcapistd.c',
-            'jccoefct.c',
-            'jccolor.c',
-            'jcdctmgr.c',
-            'jchuff.c',
-            'jchuff.h',
-            'jcinit.c',
-            'jcmainct.c',
-            'jcmarker.c',
-            'jcmaster.c',
-            'jcomapi.c',
-            'jconfig.h',
-            'jcparam.c',
-            'jcphuff.c',
-            'jcprepct.c',
-            'jcsample.c',
-            'jdapimin.c',
-            'jdapistd.c',
-            'jdatadst.c',
-            'jdatasrc.c',
-            'jdcoefct.c',
-            'jdcolor.c',
-            'jdct.h',
-            'jddctmgr.c',
-            'jdhuff.c',
-            'jdhuff.h',
-            'jdinput.c',
-            'jdmainct.c',
-            'jdmarker.c',
-            'jdmaster.c',
-            'jdmerge.c',
-            'jdphuff.c',
-            'jdpostct.c',
-            'jdsample.c',
-            'jerror.c',
-            'jerror.h',
-            'jfdctflt.c',
-            'jfdctfst.c',
-            'jfdctint.c',
-            'jidctflt.c',
-            'jidctfst.c',
-            'jidctint.c',
-            'jinclude.h',
-            'jmemmgr.c',
-            'jmemnobs.c',
-            'jmemsys.h',
-            'jmorecfg.h',
-            'jpegint.h',
-            'jpeglib.h',
-            'jquant1.c',
-            'jquant2.c',
-            'jutils.c',
-            'jversion.h',
-          ],
-          'direct_dependent_settings': {
-            'include_dirs': [
-              '.',
-            ],
-          },
-          'conditions': [
-            ['OS!="win"', {'product_name': 'jpeg'}],
-          ],
-        },
-      ],
-    }, {
-      'targets': [
-        {
-          'target_name': 'libjpeg',
-          'type': 'none',
-          'direct_dependent_settings': {
-            'defines': [
-              'USE_SYSTEM_LIBJPEG',
-            ],
-            'conditions': [
-              ['os_bsd==1', {
-                'include_dirs': [
-                  '/usr/local/include',
-                ],
-              }],
-            ],
-          },
-          'link_settings': {
-            'libraries': [
-              '-ljpeg',
-            ],
-          },
-        }
-      ],
-    }],
-  ],
-}
diff --git a/third_party/libpng/libpng.gyp b/third_party/libpng/libpng.gyp
deleted file mode 100644
index ac8fdb4..0000000
--- a/third_party/libpng/libpng.gyp
+++ /dev/null
@@ -1,86 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'libpng',
-      'dependencies': [
-        '../zlib/zlib.gyp:zlib',
-      ],
-      'defines': [
-        'CHROME_PNG_WRITE_SUPPORT',
-        'PNG_USER_CONFIG',
-      ],
-      'sources': [
-        'png.c',
-        'png.h',
-        'pngconf.h',
-        'pngerror.c',
-        'pnggccrd.c',
-        'pngget.c',
-        'pngmem.c',
-        'pngpread.c',
-        'pngread.c',
-        'pngrio.c',
-        'pngrtran.c',
-        'pngrutil.c',
-        'pngset.c',
-        'pngtrans.c',
-        'pngusr.h',
-        'pngvcrd.c',
-        'pngwio.c',
-        'pngwrite.c',
-        'pngwtran.c',
-        'pngwutil.c',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '.',
-        ],
-        'defines': [
-          'CHROME_PNG_WRITE_SUPPORT',
-          'PNG_USER_CONFIG',
-        ],
-      },
-      'export_dependent_settings': [
-        '../zlib/zlib.gyp:zlib',
-      ],
-      # TODO(jschuh): http://crbug.com/167187
-      'msvs_disabled_warnings': [ 4267 ],
-      'conditions': [
-        ['OS!="win"', {'product_name': 'png'}],
-        ['OS=="win"', {
-          'type': '<(component)',
-        }, {
-          # Chromium libpng does not support building as a shared_library
-          # on non-Windows platforms.
-          'type': 'static_library',
-        }],
-        ['OS=="win" and component=="shared_library"', {
-          'defines': [
-            'PNG_BUILD_DLL',
-            'PNG_NO_MODULEDEF',
-          ],
-          'direct_dependent_settings': {
-            'defines': [
-              'PNG_USE_DLL',
-            ],
-          },          
-        }],
-        ['OS=="android"', {
-          'toolsets': ['target', 'host'],
-          'defines': [
-            'CHROME_PNG_READ_PACK_SUPPORT',  # Required by freetype.
-          ],
-          'direct_dependent_settings': {
-            'defines': [
-              'CHROME_PNG_READ_PACK_SUPPORT',
-            ],
-          },
-        }],
-      ],
-    },
-  ]
-}
diff --git a/third_party/libxml/libxml.gyp b/third_party/libxml/libxml.gyp
deleted file mode 100644
index 51e45db..0000000
--- a/third_party/libxml/libxml.gyp
+++ /dev/null
@@ -1,263 +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.
-
-{
-  'variables': {
-    'conditions': [
-      # Define an "os_include" variable that points at the OS-specific generated
-      # headers.  These were generated by running the configure script offline.
-      ['os_posix == 1 and OS != "mac" and OS != "ios"', {
-        'os_include': 'linux'
-      }],
-      ['OS=="mac"', {'os_include': 'mac'}],
-      ['OS=="win"', {'os_include': 'win32'}],
-    ],
-    'use_system_libxml%': 0,
-  },
-  'targets': [
-    {
-      'target_name': 'libxml',
-      'conditions': [
-        ['use_system_libxml', {
-          'conditions': [
-            ['os_posix == 1 and OS != "mac" and OS != "ios"', {
-              'type': 'static_library',
-              'sources': [
-                'chromium/libxml_utils.h',
-                'chromium/libxml_utils.cc',
-              ],
-              'cflags': [
-                '<!@(pkg-config --cflags libxml-2.0)',
-              ],
-              'defines': [
-                'USE_SYSTEM_LIBXML',
-              ],
-              'direct_dependent_settings': {
-                'cflags': [
-                  '<!@(pkg-config --cflags libxml-2.0)',
-                ],
-                'defines': [
-                  'USE_SYSTEM_LIBXML',
-                ],
-              },
-              'link_settings': {
-                'ldflags': [
-                  '<!@(pkg-config --libs-only-L --libs-only-other libxml-2.0)',
-                ],
-                'libraries': [
-                  '<!@(pkg-config --libs-only-l libxml-2.0)',
-                ],
-              },
-            }],
-            ['OS == "ios"', {
-              'type': 'static_library',
-              'sources': [
-                'chromium/libxml_utils.h',
-                'chromium/libxml_utils.cc',
-              ],
-              'include_dirs': [
-                '$(SDKROOT)/usr/include/libxml2',
-              ],
-              'all_dependent_settings': {
-                'defines': [
-                  'USE_SYSTEM_LIBXML',
-                ],
-                'include_dirs': [
-                  '$(SDKROOT)/usr/include/libxml2',
-                ],
-              },
-              'link_settings': {
-                'libraries': [
-                  '$(SDKROOT)/usr/lib/libxml2.dylib',
-                ],
-              },
-            }],
-          ],
-        }, {  # else: !use_system_libxml
-          'type': 'static_library',
-          'sources': [
-            'chromium/libxml_utils.h',
-            'chromium/libxml_utils.cc',
-            'linux/config.h',
-            'linux/include/libxml/xmlversion.h',
-            'mac/config.h',
-            'mac/include/libxml/xmlversion.h',
-            'src/include/libxml/c14n.h',
-            'src/include/libxml/catalog.h',
-            'src/include/libxml/chvalid.h',
-            'src/include/libxml/debugXML.h',
-            'src/include/libxml/dict.h',
-            'src/include/libxml/DOCBparser.h',
-            'src/include/libxml/encoding.h',
-            'src/include/libxml/entities.h',
-            'src/include/libxml/globals.h',
-            'src/include/libxml/hash.h',
-            'src/include/libxml/HTMLparser.h',
-            'src/include/libxml/HTMLtree.h',
-            'src/include/libxml/list.h',
-            'src/include/libxml/parser.h',
-            'src/include/libxml/parserInternals.h',
-            'src/include/libxml/pattern.h',
-            'src/include/libxml/relaxng.h',
-            'src/include/libxml/SAX.h',
-            'src/include/libxml/SAX2.h',
-            'src/include/libxml/schemasInternals.h',
-            'src/include/libxml/schematron.h',
-            'src/include/libxml/threads.h',
-            'src/include/libxml/tree.h',
-            'src/include/libxml/uri.h',
-            'src/include/libxml/valid.h',
-            'src/include/libxml/xinclude.h',
-            'src/include/libxml/xlink.h',
-            'src/include/libxml/xmlautomata.h',
-            'src/include/libxml/xmlerror.h',
-            'src/include/libxml/xmlexports.h',
-            'src/include/libxml/xmlIO.h',
-            'src/include/libxml/xmlmemory.h',
-            'src/include/libxml/xmlmodule.h',
-            'src/include/libxml/xmlreader.h',
-            'src/include/libxml/xmlregexp.h',
-            'src/include/libxml/xmlsave.h',
-            'src/include/libxml/xmlschemas.h',
-            'src/include/libxml/xmlschemastypes.h',
-            'src/include/libxml/xmlstring.h',
-            'src/include/libxml/xmlunicode.h',
-            'src/include/libxml/xmlwriter.h',
-            'src/include/libxml/xpath.h',
-            'src/include/libxml/xpathInternals.h',
-            'src/include/libxml/xpointer.h',
-            'src/include/win32config.h',
-            'src/include/wsockcompat.h',
-            'src/acconfig.h',
-            'src/c14n.c',
-            'src/catalog.c',
-            'src/chvalid.c',
-            'src/debugXML.c',
-            'src/dict.c',
-            'src/DOCBparser.c',
-            'src/elfgcchack.h',
-            'src/encoding.c',
-            'src/entities.c',
-            'src/error.c',
-            'src/globals.c',
-            'src/hash.c',
-            'src/HTMLparser.c',
-            'src/HTMLtree.c',
-            'src/legacy.c',
-            'src/libxml.h',
-            'src/list.c',
-            'src/parser.c',
-            'src/parserInternals.c',
-            'src/pattern.c',
-            'src/relaxng.c',
-            'src/SAX.c',
-            'src/SAX2.c',
-            'src/schematron.c',
-            'src/threads.c',
-            'src/tree.c',
-            #'src/trio.c',
-            #'src/trio.h',
-            #'src/triodef.h',
-            #'src/trionan.c',
-            #'src/trionan.h',
-            #'src/triop.h',
-            #'src/triostr.c',
-            #'src/triostr.h',
-            'src/uri.c',
-            'src/valid.c',
-            'src/xinclude.c',
-            'src/xlink.c',
-            'src/xmlIO.c',
-            'src/xmlmemory.c',
-            'src/xmlmodule.c',
-            'src/xmlreader.c',
-            'src/xmlregexp.c',
-            'src/xmlsave.c',
-            'src/xmlschemas.c',
-            'src/xmlschemastypes.c',
-            'src/xmlstring.c',
-            'src/xmlunicode.c',
-            'src/xmlwriter.c',
-            'src/xpath.c',
-            'src/xpointer.c',
-            'win32/config.h',
-            'win32/include/libxml/xmlversion.h',
-          ],
-          'defines': [
-            # Define LIBXML_STATIC as nothing to match how libxml.h
-            # (an internal header) defines LIBXML_STATIC, otherwise
-            # we get the macro redefined warning from GCC.  (-DFOO
-            # defines the macro FOO as 1.)
-            'LIBXML_STATIC=',
-          ],
-          'variables': {
-            'clang_warning_flags': [
-              # libxml passes `const unsigned char*` through `const char*`.
-              '-Wno-pointer-sign',
-              # pattern.c and uri.c both have an intentional
-              # `for (...);` / `while(...);` loop. I submitted a patch to
-              # move the `'` to its own line, but until that's landed
-              # suppress the warning:
-              '-Wno-empty-body',
-              # debugXML.c compares array 'arg' to NULL.
-              '-Wno-tautological-pointer-compare',
-              # See http://crbug.com/138571#c8
-              '-Wno-ignored-attributes',
-            ],
-          },
-          'include_dirs': [
-            '<(os_include)',
-            '<(os_include)/include',
-            'src/include',
-          ],
-          'dependencies': [
-            '../icu/icu.gyp:icuuc',
-            '../zlib/zlib.gyp:zlib',
-          ],
-          'export_dependent_settings': [
-            '../icu/icu.gyp:icuuc',
-          ],
-          'direct_dependent_settings': {
-            'defines': [
-              'LIBXML_STATIC',
-            ],
-            'include_dirs': [
-              '<(os_include)/include',
-              'src/include',
-            ],
-          },
-          'conditions': [
-            ['OS=="linux"', {
-              'link_settings': {
-                'libraries': [
-                  # We need dl for dlopen() and friends.
-                  '-ldl',
-                  '-lm',
-                ],
-              },
-            }],
-            # http://www.xmlsoft.org/threads.html says that this is required
-            # when using libxml from several threads, which can possibly happen
-            # in chrome. On linux, this is picked up by transitivity from
-            # pkg-config output from build/linux/system.gyp.
-            ['OS=="mac" or OS=="android"', {'defines': ['_REENTRANT']}],
-            ['OS=="win"', {
-              'product_name': 'libxml2',
-              # Disable unimportant 'unused variable' warning, and
-              # signed/unsigned comparison warning. The signed/unsigned (4101)
-              # is fixed upstream and can be removed eventually.
-              # TODO(jschuh): http://crbug.com/167187 size_t -> int
-              'msvs_disabled_warnings': [ 4018, 4101, 4267 ],
-            }, {  # else: OS!="win"
-              'product_name': 'xml2',
-            }],
-          ],
-        }],
-        ['OS == "ios"', {
-          'toolsets': ['host', 'target'],
-        }],
-      ],
-    },
-  ],
-}
diff --git a/third_party/mesa/mesa.gyp b/third_party/mesa/mesa.gyp
deleted file mode 100644
index 82027b3..0000000
--- a/third_party/mesa/mesa.gyp
+++ /dev/null
@@ -1,750 +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.
-
-{
-  'variables': {
-    'generated_src_dir': 'src/chromium_gensrc',
-  },
-  'target_defaults': {
-    'defines': [
-      'MAPI_ABI_HEADER="glapi_mapi_tmp_shared.h"',
-      "PACKAGE_NAME=\"Mesa\"",
-      "PACKAGE_TARNAME=\"mesa\"",
-      "PACKAGE_VERSION=\"9.0.3\"",
-      "PACKAGE_STRING=\"Mesa\ 9.0.3\"",
-      "PACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi\?product=Mesa\"",
-      "PACKAGE_URL=\"\"",
-      "PACKAGE=\"mesa\"",
-      "VERSION=\"9.0.3\"",
-      "STDC_HEADERS=1",
-      "HAVE_SYS_TYPES_H=1",
-      "HAVE_SYS_STAT_H=1",
-      "HAVE_STDLIB_H=1",
-      "HAVE_STRING_H=1",
-      "HAVE_MEMORY_H=1",
-      "HAVE_STRINGS_H=1",
-      "HAVE_INTTYPES_H=1",
-      "HAVE_STDINT_H=1",
-      "HAVE_DLFCN_H=1",
-      "LT_OBJDIR=\".libs/\"",
-      "YYTEXT_POINTER=1",
-      "HAVE_LIBEXPAT=1",
-      "HAVE_LIBXCB_DRI2=1",
-      "FEATURE_GL=1",
-      'MAPI_MODE_GLAPI',
-      #"USE_X86_64_ASM",
-      "IN_DRI_DRIVER",
-      "USE_XCB",
-      "GLX_INDIRECT_RENDERING",
-      "GLX_DIRECT_RENDERING",
-      "USE_EXTERNAL_DXTN_LIB=1",
-      "IN_DRI_DRIVER",
-      "HAVE_ALIAS",
-      "HAVE_MINCORE",
-      "HAVE_LIBUDEV",
-      "_GLAPI_NO_EXPORTS",
-    ],
-    'conditions': [
-      ['OS=="android"', {
-        'defines': [
-          '__GLIBC__',
-          '_GNU_SOURCE',
-        ],
-      }],
-      ['OS=="linux"', {
-        'defines': [
-          '_GNU_SOURCE',
-        ],
-      }],
-      ['os_posix == 1', {
-        'defines': [
-          'HAVE_DLOPEN',
-          'HAVE_PTHREAD=1',
-          'HAVE_UNISTD_H=1',
-        ],
-      }],
-      ['os_posix == 1 and OS != "android"', {
-        'defines': [
-          'HAVE_POSIX_MEMALIGN',
-        ],
-      }],
-      ['os_posix == 1 and OS != "mac" and OS != "android"', {
-        'cflags': [
-          '-fPIC',
-        ],
-      }],
-      ['ubsan_vptr == 1', {
-        'cflags!': [
-          # UBsan's vptr is not compatible with -fno-rtti,
-          # which is used by gallium/auxiliary/Makefile.
-          '-fsanitize=null',
-          '-fsanitize=vptr',
-          '-fsanitize-coverage=<(sanitizer_coverage)',
-        ],
-      }],
-    ],
-  },
-  'targets': [
-    {
-      'target_name': 'mesa_headers',
-      'type': 'none',
-      'direct_dependent_settings': {
-        'include_dirs': [
-          'src/include',
-        ],
-      },
-      'conditions': [
-        ['use_x11==0', {
-          'direct_dependent_settings': {
-            'defines': [
-              'MESA_EGL_NO_X11_HEADERS',
-            ],
-          },
-        }],
-      ],
-    },
-    {
-      'target_name': 'mesa_libglslcommon',
-      'type': 'static_library',
-      'include_dirs': [
-        'src/src/gallium/auxiliary',
-        'src/src/gallium/include',
-        'src/src/glsl',
-        'src/src/glsl/glcpp',
-        'src/src/mapi',
-        'src/src/mapi/glapi',
-        'src/src/mesa',
-        'src/src/mesa/main',
-        'src/include',
-        '<(generated_src_dir)/mesa/',
-        '<(generated_src_dir)/mesa/main',
-        '<(generated_src_dir)/mesa/program',
-        '<(generated_src_dir)/mesa/glapi',
-      ],
-      'dependencies': [
-        'mesa_headers',
-      ],
-      # TODO(scottmg): http://crbug.com/143877 These should be removed if
-      # Mesa is ever rolled and the warnings are fixed.
-      'msvs_disabled_warnings': [
-          4005, 4018, 4065, 4090, 4099, 4291, 4345, 4267,
-      ],
-      'variables': {
-        'clang_warning_flags': [
-          '-Wno-tautological-constant-out-of-range-compare',
-          '-Wno-mismatched-tags',  # Fixed upstream.
-        ],
-        'clang_warning_flags_unset': [
-          # Don't warn about string->bool used in asserts.
-          '-Wstring-conversion',
-        ],
-      },
-      'sources': [
-        '<(generated_src_dir)/mesa/main/dispatch.h',
-        'src/src/glsl/ast_expr.cpp',
-        'src/src/glsl/ast_function.cpp',
-        'src/src/glsl/ast_to_hir.cpp',
-        'src/src/glsl/ast_type.cpp',
-        'src/src/glsl/builtin_variables.cpp',
-        '<(generated_src_dir)/mesa/glcpp-lex.c',
-        '<(generated_src_dir)/mesa/glcpp-parse.c',
-        '<(generated_src_dir)/mesa/glcpp-parse.h',
-        'src/src/glsl/glcpp/glcpp.h',
-        'src/src/glsl/glcpp/pp.c',
-        '<(generated_src_dir)/mesa/glsl_lexer.cc',
-        '<(generated_src_dir)/mesa/glsl_parser.cc',
-        'src/src/glsl/glsl_parser_extras.cpp',
-        'src/src/glsl/glsl_parser_extras.h',
-        'src/src/glsl/glsl_symbol_table.cpp',
-        'src/src/glsl/glsl_symbol_table.h',
-        'src/src/glsl/glsl_types.cpp',
-        'src/src/glsl/glsl_types.h',
-        'src/src/glsl/hir_field_selection.cpp',
-        'src/src/glsl/ir.cpp',
-        'src/src/glsl/ir.h',
-        'src/src/glsl/ir_basic_block.cpp',
-        'src/src/glsl/ir_basic_block.h',
-        'src/src/glsl/ir_builder.cpp',
-        'src/src/glsl/ir_builder.h',
-        'src/src/glsl/ir_clone.cpp',
-        'src/src/glsl/ir_constant_expression.cpp',
-        'src/src/glsl/ir_expression_flattening.cpp',
-        'src/src/glsl/ir_expression_flattening.h',
-        'src/src/glsl/ir_function.cpp',
-        'src/src/glsl/ir_function_can_inline.cpp',
-        'src/src/glsl/ir_function_detect_recursion.cpp',
-        'src/src/glsl/ir_hierarchical_visitor.cpp',
-        'src/src/glsl/ir_hierarchical_visitor.h',
-        'src/src/glsl/ir_hv_accept.cpp',
-        'src/src/glsl/ir_import_prototypes.cpp',
-        'src/src/glsl/ir_print_visitor.cpp',
-        'src/src/glsl/ir_print_visitor.h',
-        'src/src/glsl/ir_reader.cpp',
-        'src/src/glsl/ir_reader.h',
-        'src/src/glsl/ir_rvalue_visitor.cpp',
-        'src/src/glsl/ir_rvalue_visitor.h',
-        'src/src/glsl/ir_set_program_inouts.cpp',
-        'src/src/glsl/ir_validate.cpp',
-        'src/src/glsl/ir_variable_refcount.cpp',
-        'src/src/glsl/ir_variable_refcount.h',
-        'src/src/glsl/link_functions.cpp',
-        'src/src/glsl/link_uniform_initializers.cpp',
-        'src/src/glsl/link_uniforms.cpp',
-        'src/src/glsl/linker.cpp',
-        'src/src/glsl/linker.h',
-        'src/src/glsl/loop_analysis.cpp',
-        'src/src/glsl/loop_analysis.h',
-        'src/src/glsl/loop_controls.cpp',
-        'src/src/glsl/loop_unroll.cpp',
-        'src/src/glsl/lower_clip_distance.cpp',
-        'src/src/glsl/lower_discard.cpp',
-        'src/src/glsl/lower_discard_flow.cpp',
-        'src/src/glsl/lower_if_to_cond_assign.cpp',
-        'src/src/glsl/lower_instructions.cpp',
-        'src/src/glsl/lower_jumps.cpp',
-        'src/src/glsl/lower_mat_op_to_vec.cpp',
-        'src/src/glsl/lower_noise.cpp',
-        'src/src/glsl/lower_output_reads.cpp',
-        'src/src/glsl/lower_texture_projection.cpp',
-        'src/src/glsl/lower_ubo_reference.cpp',
-        'src/src/glsl/lower_variable_index_to_cond_assign.cpp',
-        'src/src/glsl/lower_vec_index_to_cond_assign.cpp',
-        'src/src/glsl/lower_vec_index_to_swizzle.cpp',
-        'src/src/glsl/lower_vector.cpp',
-        'src/src/glsl/opt_algebraic.cpp',
-        'src/src/glsl/opt_array_splitting.cpp',
-        'src/src/glsl/opt_constant_folding.cpp',
-        'src/src/glsl/opt_constant_propagation.cpp',
-        'src/src/glsl/opt_constant_variable.cpp',
-        'src/src/glsl/opt_copy_propagation.cpp',
-        'src/src/glsl/opt_copy_propagation_elements.cpp',
-        'src/src/glsl/opt_dead_code.cpp',
-        'src/src/glsl/opt_dead_code_local.cpp',
-        'src/src/glsl/opt_dead_functions.cpp',
-        'src/src/glsl/opt_function_inlining.cpp',
-        'src/src/glsl/opt_if_simplification.cpp',
-        'src/src/glsl/opt_noop_swizzle.cpp',
-        'src/src/glsl/opt_redundant_jumps.cpp',
-        'src/src/glsl/opt_structure_splitting.cpp',
-        'src/src/glsl/opt_swizzle_swizzle.cpp',
-        'src/src/glsl/opt_tree_grafting.cpp',
-        'src/src/glsl/program.h',
-        'src/src/glsl/ralloc.c',
-        'src/src/glsl/ralloc.h',
-        'src/src/glsl/s_expression.cpp',
-        'src/src/glsl/s_expression.h',
-        # This file is not needed and has duplicate symbols (although it
-        # happens to link because of static library link ordering).
-        #'src/src/glsl/standalone_scaffolding.cpp',
-        #'src/src/glsl/standalone_scaffolding.h',
-        'src/src/glsl/strtod.c',
-        'src/src/glsl/strtod.h',
-      ],
-    },
-    {
-      'target_name': 'mesa',
-      'type': 'static_library',
-      'include_dirs': [
-        'src/src/gallium/auxiliary',
-        'src/src/gallium/include',
-        'src/src/glsl',
-        'src/src/glsl/glcpp',
-        'src/src/mapi',
-        'src/src/mapi/glapi',
-        'src/src/mesa',
-        'src/src/mesa/main',
-        '<(generated_src_dir)/mesa/',
-        '<(generated_src_dir)/mesa/main',
-        '<(generated_src_dir)/mesa/program',
-        '<(generated_src_dir)/mesa/glapi',
-      ],
-      'dependencies': [
-        'mesa_headers',
-        'mesa_libglslcommon',
-      ],
-      # TODO(scottmg): http://crbug.com/143877 These should be removed if
-      # Mesa is ever rolled and the warnings are fixed.
-      'msvs_disabled_warnings': [
-          4005, 4018, 4090, 4099, 4146, 4291, 4305, 4334, 4748, 4267,
-      ],
-      'variables': {
-        'clang_warning_flags': [
-          '-Wno-tautological-constant-out-of-range-compare',
-          '-Wno-absolute-value',  # Fires on st_atom_array.c, might be a bug
-          '-Wno-mismatched-tags',  # Fixed upstream.
-        ],
-        'clang_warning_flags_unset': [
-          # Don't warn about string->bool used in asserts.
-          '-Wstring-conversion',
-        ],
-      },
-      'sources': [
-        '<(generated_src_dir)/mesa/builtin_function.cpp',
-        '<(generated_src_dir)/mesa/glapi_mapi_tmp_shared.h',
-        'src/src/mapi/mapi/entry.c',
-        'src/src/mapi/mapi/entry.h',
-        'src/src/mapi/mapi/mapi_glapi.c',
-        'src/src/mapi/mapi/stub.c',
-        'src/src/mapi/mapi/stub.h',
-        'src/src/mapi/mapi/table.c',
-        'src/src/mapi/mapi/table.h',
-        'src/src/mapi/mapi/u_current.c',
-        'src/src/mapi/mapi/u_current.h',
-        'src/src/mapi/mapi/u_execmem.c',
-        'src/src/mapi/mapi/u_execmem.h',
-        'src/src/mesa/main/accum.c',
-        'src/src/mesa/main/accum.h',
-        'src/src/mesa/main/api_arrayelt.c',
-        'src/src/mesa/main/api_arrayelt.h',
-        'src/src/mesa/main/api_exec.c',
-        'src/src/mesa/main/api_exec.h',
-        'src/src/mesa/main/api_loopback.c',
-        'src/src/mesa/main/api_loopback.h',
-        'src/src/mesa/main/api_validate.c',
-        'src/src/mesa/main/api_validate.h',
-        'src/src/mesa/main/arbprogram.c',
-        'src/src/mesa/main/arbprogram.h',
-        'src/src/mesa/main/arrayobj.c',
-        'src/src/mesa/main/arrayobj.h',
-        'src/src/mesa/main/atifragshader.c',
-        'src/src/mesa/main/atifragshader.h',
-        'src/src/mesa/main/attrib.c',
-        'src/src/mesa/main/attrib.h',
-        'src/src/mesa/main/blend.c',
-        'src/src/mesa/main/blend.h',
-        'src/src/mesa/main/bufferobj.c',
-        'src/src/mesa/main/bufferobj.h',
-        'src/src/mesa/main/buffers.c',
-        'src/src/mesa/main/buffers.h',
-        'src/src/mesa/main/clear.c',
-        'src/src/mesa/main/clear.h',
-        'src/src/mesa/main/clip.c',
-        'src/src/mesa/main/clip.h',
-        'src/src/mesa/main/colortab.c',
-        'src/src/mesa/main/colortab.h',
-        'src/src/mesa/main/condrender.c',
-        'src/src/mesa/main/condrender.h',
-        'src/src/mesa/main/context.c',
-        'src/src/mesa/main/context.h',
-        'src/src/mesa/main/convolve.c',
-        'src/src/mesa/main/convolve.h',
-        'src/src/mesa/main/cpuinfo.c',
-        'src/src/mesa/main/cpuinfo.h',
-        'src/src/mesa/main/debug.c',
-        'src/src/mesa/main/debug.h',
-        'src/src/mesa/main/depth.c',
-        'src/src/mesa/main/depth.h',
-        'src/src/mesa/main/dlist.c',
-        'src/src/mesa/main/dlist.h',
-        'src/src/mesa/main/drawpix.c',
-        'src/src/mesa/main/drawpix.h',
-        'src/src/mesa/main/drawtex.c',
-        'src/src/mesa/main/drawtex.h',
-        'src/src/mesa/main/enable.c',
-        'src/src/mesa/main/enable.h',
-        '<(generated_src_dir)/mesa/enums.c',
-        'src/src/mesa/main/enums.h',
-        'src/src/mesa/main/errors.c',
-        'src/src/mesa/main/errors.h',
-        'src/src/mesa/main/eval.c',
-        'src/src/mesa/main/eval.h',
-        'src/src/mesa/main/execmem.c',
-        'src/src/mesa/main/extensions.c',
-        'src/src/mesa/main/extensions.h',
-        'src/src/mesa/main/fbobject.c',
-        'src/src/mesa/main/fbobject.h',
-        'src/src/mesa/main/feedback.c',
-        'src/src/mesa/main/feedback.h',
-        'src/src/mesa/main/ff_fragment_shader.cpp',
-        'src/src/mesa/main/ffvertex_prog.c',
-        'src/src/mesa/main/ffvertex_prog.h',
-        'src/src/mesa/main/fog.c',
-        'src/src/mesa/main/fog.h',
-        'src/src/mesa/main/format_pack.c',
-        'src/src/mesa/main/format_pack.h',
-        'src/src/mesa/main/format_unpack.c',
-        'src/src/mesa/main/format_unpack.h',
-        'src/src/mesa/main/formats.c',
-        'src/src/mesa/main/formats.h',
-        'src/src/mesa/main/framebuffer.c',
-        'src/src/mesa/main/framebuffer.h',
-        'src/src/mesa/main/get.c',
-        'src/src/mesa/main/get.h',
-        'src/src/mesa/main/getstring.c',
-        'src/src/mesa/main/glformats.c',
-        'src/src/mesa/main/glformats.h',
-        'src/src/mesa/main/hash.c',
-        'src/src/mesa/main/hash.h',
-        'src/src/mesa/main/hint.c',
-        'src/src/mesa/main/hint.h',
-        'src/src/mesa/main/histogram.c',
-        'src/src/mesa/main/histogram.h',
-        'src/src/mesa/main/image.c',
-        'src/src/mesa/main/image.h',
-        'src/src/mesa/main/imports.c',
-        'src/src/mesa/main/imports.h',
-        'src/src/mesa/main/light.c',
-        'src/src/mesa/main/light.h',
-        'src/src/mesa/main/lines.c',
-        'src/src/mesa/main/lines.h',
-        'src/src/mesa/main/matrix.c',
-        'src/src/mesa/main/matrix.h',
-        'src/src/mesa/main/mipmap.c',
-        'src/src/mesa/main/mipmap.h',
-        'src/src/mesa/main/mm.c',
-        'src/src/mesa/main/mm.h',
-        'src/src/mesa/main/multisample.c',
-        'src/src/mesa/main/multisample.h',
-        'src/src/mesa/main/nvprogram.c',
-        'src/src/mesa/main/nvprogram.h',
-        'src/src/mesa/main/pack.c',
-        'src/src/mesa/main/pack.h',
-        'src/src/mesa/main/pbo.c',
-        'src/src/mesa/main/pbo.h',
-        'src/src/mesa/main/pixel.c',
-        'src/src/mesa/main/pixel.h',
-        'src/src/mesa/main/pixelstore.c',
-        'src/src/mesa/main/pixelstore.h',
-        'src/src/mesa/main/pixeltransfer.c',
-        'src/src/mesa/main/pixeltransfer.h',
-        'src/src/mesa/main/points.c',
-        'src/src/mesa/main/points.h',
-        'src/src/mesa/main/polygon.c',
-        'src/src/mesa/main/polygon.h',
-        'src/src/mesa/main/queryobj.c',
-        'src/src/mesa/main/queryobj.h',
-        'src/src/mesa/main/rastpos.c',
-        'src/src/mesa/main/rastpos.h',
-        'src/src/mesa/main/readpix.c',
-        'src/src/mesa/main/readpix.h',
-        'src/src/mesa/main/remap.c',
-        'src/src/mesa/main/remap.h',
-        'src/src/mesa/main/renderbuffer.c',
-        'src/src/mesa/main/renderbuffer.h',
-        'src/src/mesa/main/samplerobj.c',
-        'src/src/mesa/main/samplerobj.h',
-        'src/src/mesa/main/scissor.c',
-        'src/src/mesa/main/scissor.h',
-        'src/src/mesa/main/shader_query.cpp',
-        'src/src/mesa/main/shaderapi.c',
-        'src/src/mesa/main/shaderapi.h',
-        'src/src/mesa/main/shaderobj.c',
-        'src/src/mesa/main/shaderobj.h',
-        'src/src/mesa/main/shared.c',
-        'src/src/mesa/main/shared.h',
-        'src/src/mesa/main/state.c',
-        'src/src/mesa/main/state.h',
-        'src/src/mesa/main/stencil.c',
-        'src/src/mesa/main/stencil.h',
-        'src/src/mesa/main/syncobj.c',
-        'src/src/mesa/main/syncobj.h',
-        'src/src/mesa/main/texcompress.c',
-        'src/src/mesa/main/texcompress.h',
-        'src/src/mesa/main/texcompress_cpal.c',
-        'src/src/mesa/main/texcompress_cpal.h',
-        'src/src/mesa/main/texcompress_etc.c',
-        'src/src/mesa/main/texcompress_etc.h',
-        'src/src/mesa/main/texcompress_fxt1.c',
-        'src/src/mesa/main/texcompress_fxt1.h',
-        'src/src/mesa/main/texcompress_rgtc.c',
-        'src/src/mesa/main/texcompress_rgtc.h',
-        'src/src/mesa/main/texcompress_s3tc.c',
-        'src/src/mesa/main/texcompress_s3tc.h',
-        'src/src/mesa/main/texenv.c',
-        'src/src/mesa/main/texenv.h',
-        'src/src/mesa/main/texformat.c',
-        'src/src/mesa/main/texformat.h',
-        'src/src/mesa/main/texgen.c',
-        'src/src/mesa/main/texgen.h',
-        'src/src/mesa/main/texgetimage.c',
-        'src/src/mesa/main/texgetimage.h',
-        'src/src/mesa/main/teximage.c',
-        'src/src/mesa/main/teximage.h',
-        'src/src/mesa/main/texobj.c',
-        'src/src/mesa/main/texobj.h',
-        'src/src/mesa/main/texparam.c',
-        'src/src/mesa/main/texparam.h',
-        'src/src/mesa/main/texstate.c',
-        'src/src/mesa/main/texstate.h',
-        'src/src/mesa/main/texstorage.c',
-        'src/src/mesa/main/texstorage.h',
-        'src/src/mesa/main/texstore.c',
-        'src/src/mesa/main/texstore.h',
-        'src/src/mesa/main/texturebarrier.c',
-        'src/src/mesa/main/texturebarrier.h',
-        'src/src/mesa/main/transformfeedback.c',
-        'src/src/mesa/main/transformfeedback.h',
-        'src/src/mesa/main/uniform_query.cpp',
-        'src/src/mesa/main/uniforms.c',
-        'src/src/mesa/main/uniforms.h',
-        'src/src/mesa/main/varray.c',
-        'src/src/mesa/main/varray.h',
-        'src/src/mesa/main/version.c',
-        'src/src/mesa/main/version.h',
-        'src/src/mesa/main/viewport.c',
-        'src/src/mesa/main/viewport.h',
-        'src/src/mesa/main/vtxfmt.c',
-        'src/src/mesa/main/vtxfmt.h',
-        'src/src/mesa/math/m_debug_clip.c',
-        'src/src/mesa/math/m_debug_norm.c',
-        'src/src/mesa/math/m_debug_xform.c',
-        'src/src/mesa/math/m_eval.c',
-        'src/src/mesa/math/m_eval.h',
-        'src/src/mesa/math/m_matrix.c',
-        'src/src/mesa/math/m_matrix.h',
-        'src/src/mesa/math/m_translate.c',
-        'src/src/mesa/math/m_translate.h',
-        'src/src/mesa/math/m_vector.c',
-        'src/src/mesa/math/m_vector.h',
-        'src/src/mesa/math/m_xform.c',
-        'src/src/mesa/math/m_xform.h',
-        'src/src/mesa/program/arbprogparse.c',
-        'src/src/mesa/program/arbprogparse.h',
-        'src/src/mesa/program/hash_table.c',
-        'src/src/mesa/program/hash_table.h',
-        'src/src/mesa/program/ir_to_mesa.cpp',
-        'src/src/mesa/program/ir_to_mesa.h',
-        '<(generated_src_dir)/mesa/lex.yy.c',
-        'src/src/mesa/program/nvfragparse.c',
-        'src/src/mesa/program/nvfragparse.h',
-        'src/src/mesa/program/nvvertparse.c',
-        'src/src/mesa/program/nvvertparse.h',
-        'src/src/mesa/program/prog_cache.c',
-        'src/src/mesa/program/prog_cache.h',
-        'src/src/mesa/program/prog_execute.c',
-        'src/src/mesa/program/prog_execute.h',
-        'src/src/mesa/program/prog_instruction.c',
-        'src/src/mesa/program/prog_instruction.h',
-        'src/src/mesa/program/prog_noise.c',
-        'src/src/mesa/program/prog_noise.h',
-        'src/src/mesa/program/prog_opt_constant_fold.c',
-        'src/src/mesa/program/prog_optimize.c',
-        'src/src/mesa/program/prog_optimize.h',
-        'src/src/mesa/program/prog_parameter.c',
-        'src/src/mesa/program/prog_parameter.h',
-        'src/src/mesa/program/prog_parameter_layout.c',
-        'src/src/mesa/program/prog_parameter_layout.h',
-        'src/src/mesa/program/prog_print.c',
-        'src/src/mesa/program/prog_print.h',
-        'src/src/mesa/program/prog_statevars.c',
-        'src/src/mesa/program/prog_statevars.h',
-        'src/src/mesa/program/program.c',
-        'src/src/mesa/program/program.h',
-        '<(generated_src_dir)/mesa/program/program_parse.tab.c',
-        '<(generated_src_dir)/mesa/program/program_parse.tab.h',
-        'src/src/mesa/program/program_parse_extra.c',
-        'src/src/mesa/program/programopt.c',
-        'src/src/mesa/program/programopt.h',
-        'src/src/mesa/program/register_allocate.c',
-        'src/src/mesa/program/register_allocate.h',
-        'src/src/mesa/program/sampler.cpp',
-        'src/src/mesa/program/sampler.h',
-        'src/src/mesa/program/string_to_uint_map.cpp',
-        'src/src/mesa/program/symbol_table.c',
-        'src/src/mesa/program/symbol_table.h',
-        'src/src/mesa/swrast/s_aaline.c',
-        'src/src/mesa/swrast/s_aaline.h',
-        'src/src/mesa/swrast/s_aatriangle.c',
-        'src/src/mesa/swrast/s_aatriangle.h',
-        'src/src/mesa/swrast/s_alpha.c',
-        'src/src/mesa/swrast/s_alpha.h',
-        'src/src/mesa/swrast/s_atifragshader.c',
-        'src/src/mesa/swrast/s_atifragshader.h',
-        'src/src/mesa/swrast/s_bitmap.c',
-        'src/src/mesa/swrast/s_blend.c',
-        'src/src/mesa/swrast/s_blend.h',
-        'src/src/mesa/swrast/s_blit.c',
-        'src/src/mesa/swrast/s_clear.c',
-        'src/src/mesa/swrast/s_context.c',
-        'src/src/mesa/swrast/s_context.h',
-        'src/src/mesa/swrast/s_copypix.c',
-        'src/src/mesa/swrast/s_depth.c',
-        'src/src/mesa/swrast/s_depth.h',
-        'src/src/mesa/swrast/s_drawpix.c',
-        'src/src/mesa/swrast/s_feedback.c',
-        'src/src/mesa/swrast/s_feedback.h',
-        'src/src/mesa/swrast/s_fog.c',
-        'src/src/mesa/swrast/s_fog.h',
-        'src/src/mesa/swrast/s_fragprog.c',
-        'src/src/mesa/swrast/s_fragprog.h',
-        'src/src/mesa/swrast/s_lines.c',
-        'src/src/mesa/swrast/s_lines.h',
-        'src/src/mesa/swrast/s_logic.c',
-        'src/src/mesa/swrast/s_logic.h',
-        'src/src/mesa/swrast/s_masking.c',
-        'src/src/mesa/swrast/s_masking.h',
-        'src/src/mesa/swrast/s_points.c',
-        'src/src/mesa/swrast/s_points.h',
-        'src/src/mesa/swrast/s_renderbuffer.c',
-        'src/src/mesa/swrast/s_renderbuffer.h',
-        'src/src/mesa/swrast/s_span.c',
-        'src/src/mesa/swrast/s_span.h',
-        'src/src/mesa/swrast/s_stencil.c',
-        'src/src/mesa/swrast/s_stencil.h',
-        'src/src/mesa/swrast/s_texcombine.c',
-        'src/src/mesa/swrast/s_texcombine.h',
-        'src/src/mesa/swrast/s_texfetch.c',
-        'src/src/mesa/swrast/s_texfetch.h',
-        'src/src/mesa/swrast/s_texfilter.c',
-        'src/src/mesa/swrast/s_texfilter.h',
-        'src/src/mesa/swrast/s_texrender.c',
-        'src/src/mesa/swrast/s_texture.c',
-        'src/src/mesa/swrast/s_triangle.c',
-        'src/src/mesa/swrast/s_triangle.h',
-        'src/src/mesa/swrast/s_zoom.c',
-        'src/src/mesa/swrast/s_zoom.h',
-        'src/src/mesa/swrast_setup/ss_context.c',
-        'src/src/mesa/swrast_setup/ss_context.h',
-        'src/src/mesa/swrast_setup/ss_triangle.c',
-        'src/src/mesa/swrast_setup/ss_triangle.h',
-        'src/src/mesa/tnl/t_context.c',
-        'src/src/mesa/tnl/t_context.h',
-        'src/src/mesa/tnl/t_draw.c',
-        'src/src/mesa/tnl/t_pipeline.c',
-        'src/src/mesa/tnl/t_pipeline.h',
-        'src/src/mesa/tnl/t_rasterpos.c',
-        'src/src/mesa/tnl/t_vb_fog.c',
-        'src/src/mesa/tnl/t_vb_light.c',
-        'src/src/mesa/tnl/t_vb_normals.c',
-        'src/src/mesa/tnl/t_vb_points.c',
-        'src/src/mesa/tnl/t_vb_program.c',
-        'src/src/mesa/tnl/t_vb_render.c',
-        'src/src/mesa/tnl/t_vb_texgen.c',
-        'src/src/mesa/tnl/t_vb_texmat.c',
-        'src/src/mesa/tnl/t_vb_vertex.c',
-        'src/src/mesa/tnl/t_vertex.c',
-        'src/src/mesa/tnl/t_vertex.h',
-        'src/src/mesa/tnl/t_vertex_generic.c',
-        'src/src/mesa/tnl/t_vertex_sse.c',
-        'src/src/mesa/tnl/t_vp_build.c',
-        'src/src/mesa/tnl/t_vp_build.h',
-        'src/src/mesa/vbo/vbo_context.c',
-        'src/src/mesa/vbo/vbo_context.h',
-        'src/src/mesa/vbo/vbo_exec.c',
-        'src/src/mesa/vbo/vbo_exec.h',
-        'src/src/mesa/vbo/vbo_exec_api.c',
-        'src/src/mesa/vbo/vbo_exec_array.c',
-        'src/src/mesa/vbo/vbo_exec_draw.c',
-        'src/src/mesa/vbo/vbo_exec_eval.c',
-        'src/src/mesa/vbo/vbo_noop.c',
-        'src/src/mesa/vbo/vbo_noop.h',
-        'src/src/mesa/vbo/vbo_primitive_restart.c',
-        'src/src/mesa/vbo/vbo_rebase.c',
-        'src/src/mesa/vbo/vbo_save.c',
-        'src/src/mesa/vbo/vbo_save.h',
-        'src/src/mesa/vbo/vbo_save_api.c',
-        'src/src/mesa/vbo/vbo_save_draw.c',
-        'src/src/mesa/vbo/vbo_save_loopback.c',
-        'src/src/mesa/vbo/vbo_split.c',
-        'src/src/mesa/vbo/vbo_split.h',
-        'src/src/mesa/vbo/vbo_split_copy.c',
-        'src/src/mesa/vbo/vbo_split_inplace.c',
-        'src/src/mesa/x86-64/x86-64.c',
-        'src/src/mesa/x86-64/x86-64.h',
-      ],
-      'conditions': [
-        ['OS=="android" and clang==0', {
-          # Disable sincos() optimization to avoid a linker error
-          # since Android's math library doesn't have sincos().
-          # Either -fno-builtin-sin or -fno-builtin-cos works.
-          'cflags': [
-            '-fno-builtin-sin',
-          ],
-        }],
-        ['OS=="win"', {
-          'defines': [
-            # Because we're building as a static library
-            '_GLAPI_NO_EXPORTS',
-          ],
-        }],
-      ],
-    },
-    # Building this target will hide the native OpenGL shared library and
-    # replace it with a slow software renderer.
-    {
-      'target_name': 'osmesa',
-      'type': 'loadable_module',
-      'mac_bundle': 0,
-      'dependencies': [
-        'mesa_headers',
-        'mesa',
-      ],
-      'xcode_settings': {
-        'OTHER_LDFLAGS': [
-          '-lstdc++',
-        ],
-      },
-      'conditions': [
-        ['OS=="win"', {
-          'defines': [
-            'BUILD_GL32',
-            'KEYWORD1=GLAPI',
-            'KEYWORD2=GLAPIENTRY',
-          ],
-        }],
-        ['OS=="linux"', {
-          'link_settings': {
-            'libraries': [
-              '-ldl',
-              '-lm',
-              '-lstdc++',
-            ],
-          },
-        }],
-      ],
-      'include_dirs': [
-        'src/src/mapi',
-        'src/src/mesa',
-        'src/src/mesa/drivers',
-        '<(generated_src_dir)/mesa',
-      ],
-      'msvs_disabled_warnings': [
-          4005, 4018, 4065, 4090, 4099, 4291, 4345, 4267,
-      ],
-      'sources': [
-        'src/src/mesa/drivers/common/driverfuncs.c',
-        'src/src/mesa/drivers/common/driverfuncs.h',
-        'src/src/mesa/drivers/common/meta.c',
-        'src/src/mesa/drivers/common/meta.h',
-        'src/src/mesa/drivers/osmesa/osmesa.c',
-        'src/src/mesa/drivers/osmesa/osmesa.def',
-      ],
-      'variables': {
-        'clang_warning_flags_unset': [
-          # Don't warn about string->bool used in asserts.
-          '-Wstring-conversion',
-        ],
-      },
-    },
-  ],
-  'conditions': [
-    ['OS=="android"', {
-      'targets': [
-        {
-          # Copies libosmesa.so to the out/$BUILDTYPE/lib/ directory so that
-          # the write_ordered_libraries.py script won't assume it to be a
-          # system library. This will cause the library to be stripped allowing
-          # targets to embed it in the to-be-generated APK.
-          'target_name': 'osmesa_in_lib_dir',
-          'type': 'none',
-          'dependencies': [
-            'osmesa',
-          ],
-          'actions': [
-            {
-              'action_name': 'copy_libosmesa',
-              'inputs': ['<(PRODUCT_DIR)/libosmesa.so'],
-              'outputs': ['<(SHARED_LIB_DIR)/libosmesa.so'],
-              'action': [
-                'cp',
-                '<(PRODUCT_DIR)/libosmesa.so',
-                '<(SHARED_LIB_DIR)/libosmesa.so',
-              ],
-            },
-          ],
-        },
-      ],
-    }],
-  ],
-}
diff --git a/third_party/mesa/mesa_gensrc.gypi b/third_party/mesa/mesa_gensrc.gypi
deleted file mode 100644
index f35c23e..0000000
--- a/third_party/mesa/mesa_gensrc.gypi
+++ /dev/null
@@ -1,604 +0,0 @@
-# Copyright (c) 2013 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-{
-  'variables': {
-    'xmlfiles': [
-      'src/src/mapi/glapi/gen/EXT_draw_buffers2.xml',
-      'src/src/mapi/glapi/gen/NV_texture_barrier.xml',
-      'src/src/mapi/glapi/gen/NV_primitive_restart.xml',
-      'src/src/mapi/glapi/gen/ARB_base_instance.xml',
-      'src/src/mapi/glapi/gen/EXT_packed_depth_stencil.xml',
-      'src/src/mapi/glapi/gen/ARB_sync.xml',
-      'src/src/mapi/glapi/gen/ARB_draw_buffers.xml',
-      'src/src/mapi/glapi/gen/ARB_geometry_shader4.xml',
-      'src/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml',
-      'src/src/mapi/glapi/gen/GL3x.xml',
-      'src/src/mapi/glapi/gen/ARB_blend_func_extended.xml',
-      'src/src/mapi/glapi/gen/EXT_gpu_shader4.xml',
-      'src/src/mapi/glapi/gen/ARB_robustness.xml',
-      'src/src/mapi/glapi/gen/ARB_ES2_compatibility.xml',
-      'src/src/mapi/glapi/gen/ARB_map_buffer_range.xml',
-      'src/src/mapi/glapi/gen/OES_single_precision.xml',
-      'src/src/mapi/glapi/gen/ARB_debug_output.xml',
-      'src/src/mapi/glapi/gen/ARB_draw_instanced.xml',
-      'src/src/mapi/glapi/gen/ARB_copy_buffer.xml',
-      'src/src/mapi/glapi/gen/glX_API.xml',
-      'src/src/mapi/glapi/gen/ARB_framebuffer_object.xml',
-      'src/src/mapi/glapi/gen/OES_EGL_image.xml',
-      'src/src/mapi/glapi/gen/gl_and_es_API.xml',
-      'src/src/mapi/glapi/gen/ARB_color_buffer_float.xml',
-      'src/src/mapi/glapi/gen/ARB_instanced_arrays.xml',
-      'src/src/mapi/glapi/gen/APPLE_object_purgeable.xml',
-      'src/src/mapi/glapi/gen/APPLE_vertex_array_object.xml',
-      'src/src/mapi/glapi/gen/ARB_texture_rgb10_a2ui.xml',
-      'src/src/mapi/glapi/gen/ARB_sampler_objects.xml',
-      'src/src/mapi/glapi/gen/OES_fixed_point.xml',
-      'src/src/mapi/glapi/gen/EXT_provoking_vertex.xml',
-      'src/src/mapi/glapi/gen/ARB_texture_float.xml',
-      'src/src/mapi/glapi/gen/EXT_texture_integer.xml',
-      'src/src/mapi/glapi/gen/es_EXT.xml',
-      'src/src/mapi/glapi/gen/gl_and_glX_API.xml',
-      'src/src/mapi/glapi/gen/EXT_transform_feedback.xml',
-      'src/src/mapi/glapi/gen/ARB_texture_buffer_object.xml',
-      'src/src/mapi/glapi/gen/EXT_framebuffer_object.xml',
-      'src/src/mapi/glapi/gen/ARB_uniform_buffer_object.xml',
-      'src/src/mapi/glapi/gen/ARB_texture_rg.xml',
-      'src/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml',
-      'src/src/mapi/glapi/gen/ARB_seamless_cube_map.xml',
-      'src/src/mapi/glapi/gen/EXT_texture_array.xml',
-      'src/src/mapi/glapi/gen/ARB_vertex_array_object.xml',
-      'src/src/mapi/glapi/gen/ARB_invalidate_subdata.xml',
-      'src/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml',
-      'src/src/mapi/glapi/gen/AMD_draw_buffers_blend.xml',
-      'src/src/mapi/glapi/gen/ARB_get_program_binary.xml',
-      'src/src/mapi/glapi/gen/gl_API.xml',
-      'src/src/mapi/glapi/gen/ARB_depth_clamp.xml',
-      'src/src/mapi/glapi/gen/ARB_texture_storage.xml',
-      'src/src/mapi/glapi/gen/ARB_depth_buffer_float.xml',
-      'src/src/mapi/glapi/gen/EXT_separate_shader_objects.xml',
-      'src/src/mapi/glapi/gen/ARB_texture_compression_rgtc.xml',
-      'src/src/mapi/glapi/gen/NV_conditional_render.xml',
-      'src/src/mesa/main/APIspec.xml',
-    ],
-  },
-
-  'targets': [
-    # The targets below generate all of the sources Mesa generates
-    # during its build process. Mesa's XML processors like gl_XML.py
-    # rely heavily on Python's libxml2 bindings. Specifically, the
-    # processors require validation against the DTD for default values
-    # for attributes, and none of Python's built-in XML parsers support
-    # validation. It's infeasible to use any third-party XML parser for
-    # Python which relies on native code due to the large number of
-    # host platforms Chromium must build on, and pure Python validators
-    # are in short supply.
-
-    # The main target is generate_mesa_sources, which must be run
-    # manually on a host platform with libxml2's Python bindings
-    # installed. (Most Linux distributions should fulfill this
-    # requirement.)
-    {
-      'target_name': 'mesa_builtin_compiler',
-      'type': 'executable',
-      'include_dirs': [
-        'src/src/gallium/auxiliary',
-        'src/src/gallium/include',
-        'src/src/glsl',
-        'src/src/glsl/glcpp',
-        'src/src/mapi',
-        'src/src/mapi/glapi',
-        'src/src/mesa',
-        'src/src/mesa/main',
-        '<(generated_src_dir)/mesa/',
-        '<(generated_src_dir)/mesa/main',
-        '<(generated_src_dir)/mesa/program',
-        '<(generated_src_dir)/mesa/glapi',
-      ],
-      'dependencies': [
-        'generate_main_mesa_sources',
-        'mesa_headers',
-        'mesa_libglslcommon', # implicit dependency on generate_main_mesa_sources
-      ],
-      'variables': {
-        'clang_warning_flags': [
-          '-Wno-tautological-constant-out-of-range-compare',
-        ],
-        'clang_warning_flags_unset': [
-          # Don't warn about string->bool used in asserts.
-          '-Wstring-conversion',
-        ],
-      },
-      'sources': [
-        'src/src/mesa/program/hash_table.c',
-        'src/src/mesa/program/symbol_table.c',
-        'src/src/glsl/standalone_scaffolding.cpp',
-        'src/src/glsl/main.cpp',
-        'src/src/glsl/builtin_stubs.cpp',
-      ],
-    },
-    {
-      'target_name': 'generate_mesa_sources',
-      'type': 'none',
-      'dependencies': [
-        'mesa_builtin_compiler',
-      ],
-      'actions': [
-        {
-          'action_name': 'generateBuiltins',
-          'inputs': [
-            '<(PRODUCT_DIR)/mesa_builtin_compiler',
-            'src/src/glsl/builtins/tools/generate_builtins.py'
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/builtin_function.cpp',
-          ],
-          'action': [
-            'python',
-            'redirectoutput.py',
-            '<(generated_src_dir)/mesa/builtin_function.cpp',
-            'src/src/glsl/builtins/tools/generate_builtins.py',
-            '<(PRODUCT_DIR)/mesa_builtin_compiler',
-          ],
-          'message': "Generating Mesa builtins ...",
-        }
-      ],
-    },
-    {
-      'target_name': 'generate_main_mesa_sources',
-      'type': 'none',
-      'actions': [
-        {
-          'action_name': 'glsl_parser_cc',
-          'inputs': [
-            'src/src/glsl/glsl_parser.yy',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/glsl_parser.cc',
-            '<(generated_src_dir)/mesa/glsl_parser.h',
-          ],
-          'action': [
-            'bison',
-            '-y',
-            '-v',
-            '-o',
-            '<(generated_src_dir)/mesa/glsl_parser.cc',
-            '-p',
-            '_mesa_glsl_',
-            '--defines=<(generated_src_dir)/mesa/glsl_parser.h',
-            'src/src/glsl/glsl_parser.yy'
-          ],
-          'message': "Generating glsl parser ...",
-        },
-        {
-          'action_name': 'lex_yy_c',
-          'inputs': [
-            'src/src/mesa/program/program_lexer.l',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/lex.yy.c',
-          ],
-          'action': [
-            'flex',
-            '--never-interactive',
-            '--outfile=<(generated_src_dir)/mesa/lex.yy.c',
-            'src/src/mesa/program/program_lexer.l'
-          ],
-          'message': "Generating lex.yy.c ...",
-        },
-        {
-          'action_name': 'glsl_lexer_cc',
-          'inputs': [
-            'src/src/glsl/glsl_lexer.ll',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/glsl_lexer.cc',
-          ],
-          'action': [
-            'flex',
-            '--nounistd',
-            '--outfile=<(generated_src_dir)/mesa/glsl_lexer.cc',
-            'src/src/glsl/glsl_lexer.ll',
-          ],
-          'message': "Generating glsl lexer ...",
-        },
-        {
-          'action_name': 'glcpp_lex_c',
-          'inputs': [
-            'src/src/glsl/glcpp/glcpp-lex.l',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/glcpp-lex.c',
-          ],
-          'action': [
-            'flex',
-            '--nounistd',
-            '--outfile=<(generated_src_dir)/mesa/glcpp-lex.c',
-            'src/src/glsl/glcpp/glcpp-lex.l',
-          ],
-          'message': "Generating glcpp-lex.c ...",
-        },
-        {
-          'action_name': 'glcpp_parse_c',
-          'inputs': [
-            'src/src/glsl/glcpp/glcpp-parse.y',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/glcpp-parse.c',
-            '<(generated_src_dir)/mesa/glcpp-parse.h',
-          ],
-          'action': [
-            'bison',
-            '-y',
-            '-v',
-            '-d',
-            '-p',
-            'glcpp_parser_',
-            '-o',
-            '<(generated_src_dir)/mesa/glcpp-parse.c',
-            '--defines=<(generated_src_dir)/mesa/glcpp-parse.h',
-            'src/src/glsl/glcpp/glcpp-parse.y',
-          ],
-          'message': "Generating glcpp parser ...",
-        },
-        {
-          'action_name': 'program_parse_tab_c',
-          'inputs': [
-            'src/src/mesa/program/program_parse.y',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/program/program_parse.tab.c',
-          ],
-          'action': [
-            'bison',
-            '-y',
-            '-v',
-            '-d',
-            '-p',
-            '_mesa_program_',
-            '--output=<(generated_src_dir)/mesa/program/program_parse.tab.c',
-            'src/src/mesa/program/program_parse.y',
-          ],
-          'message': "Generating program_parse.y ...",
-        },
-        {
-          'action_name': 'glapi_mapi_tmp_h',
-          'inputs': [
-            '<@(xmlfiles)',
-            'redirectoutput.py',
-            'src/src/mapi/mapi/mapi_abi.py',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/glapi_mapi_tmp.h',
-          ],
-          'action': [
-            'python',
-            'redirectoutput.py',
-            '<(generated_src_dir)/mesa/glapi_mapi_tmp.h',
-            'src/src/mapi/mapi/mapi_abi.py',
-            '--printer',
-            'glapi',
-            '--mode',
-            'lib',
-            'src/src/mapi/glapi/gen/gl_and_es_API.xml',
-          ],
-          'message': "Generating glapi_mapi_tmp.h ...",
-        },
-        {
-          'action_name': 'glapi_mapi_tmp_shared_h',
-          'inputs': [
-            '<@(xmlfiles)',
-            'redirectoutput.py',
-            'src/src/mapi/mapi/mapi_abi.py',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/glapi_mapi_tmp_shared.h',
-          ],
-          'action': [
-            'python',
-            'redirectoutput.py',
-            '<(generated_src_dir)/mesa/glapi_mapi_tmp_shared.h',
-            'src/src/mapi/mapi/mapi_abi.py',
-            '--printer',
-            'shared-glapi',
-            '--mode',
-            'lib',
-            'src/src/mapi/glapi/gen/gl_and_es_API.xml',
-          ],
-          'message': "Generating glapi_mapi_tmp_shared.h ...",
-        },
-        {
-          'action_name': 'glprocs_h',
-          'inputs': [
-            '<@(xmlfiles)',
-            'redirectoutput.py',
-            'src/src/mapi/glapi/gen/gl_procs.py',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/glprocs.h',
-          ],
-          'action': [
-            'python',
-            'redirectoutput.py',
-            '<(generated_src_dir)/mesa/glprocs.h',
-            'src/src/mapi/glapi/gen/gl_procs.py',
-            '-f',
-            'src/src/mapi/glapi/gen/gl_API.xml',
-          ],
-          'message': "Generating glprocs.h ...",
-        },
-        {
-          'action_name': 'glapitemp_h',
-          'inputs': [
-            '<@(xmlfiles)',
-            'redirectoutput.py',
-            'src/src/mapi/glapi/gen/gl_apitemp.py',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/glapi/glapitemp.h',
-          ],
-          'action': [
-            'python',
-            'redirectoutput.py',
-            '<(generated_src_dir)/mesa/glapi/glapitemp.h',
-            'src/src/mapi/glapi/gen/gl_apitemp.py',
-            '-f',
-            'src/src/mapi/glapi/gen/gl_API.xml',
-          ],
-          'message': "Generating glapitemp.h ...",
-        },
-        {
-          'action_name': 'glapitable_h',
-          'inputs': [
-            '<@(xmlfiles)',
-            'redirectoutput.py',
-            'src/src/mapi/glapi/gen/gl_table.py',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/glapi/glapitable.h',
-          ],
-          'action': [
-            'python',
-            'redirectoutput.py',
-            '<(generated_src_dir)/mesa/glapi/glapitable.h',
-            'src/src/mapi/glapi/gen/gl_table.py',
-            '-f',
-            'src/src/mapi/glapi/gen/gl_API.xml',
-          ],
-          'message': "Generating glapitable.h ...",
-        },
-        {
-          'action_name': 'glapi_gentable_c',
-          'inputs': [
-            '<@(xmlfiles)',
-            'redirectoutput.py',
-            'src/src/mapi/glapi/gen/gl_gentable.py',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/glapi_gentable.c',
-          ],
-          'action': [
-            'python',
-            'redirectoutput.py',
-            '<(generated_src_dir)/mesa/glapi_gentable.c',
-            'src/src/mapi/glapi/gen/gl_gentable.py',
-            '-f',
-            'src/src/mapi/glapi/gen/gl_API.xml',
-          ],
-          'message': "Generating glapi_gentable.c ...",
-        },
-        {
-          'action_name': 'glapi_x86_64_S',
-          'inputs': [
-            '<@(xmlfiles)',
-            'redirectoutput.py',
-            'src/src/mapi/glapi/gen/gl_x86-64_asm.py',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/glapi_x86-64.S',
-          ],
-          'action': [
-            'python',
-            'redirectoutput.py',
-            '<(generated_src_dir)/mesa/glapi_x86-64.S',
-            'src/src/mapi/glapi/gen/gl_x86-64_asm.py',
-            '-f',
-            'src/src/mapi/glapi/gen/gl_API.xml',
-          ],
-          'message': "Generating glapi_x86-64.S ...",
-        },
-        {
-          'action_name': 'enums_c',
-          'inputs': [
-            '<@(xmlfiles)',
-            'redirectoutput.py',
-            'src/src/mapi/glapi/gen/gl_enums.py',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/enums.c',
-          ],
-          'action': [
-            'python',
-            'redirectoutput.py',
-            '<(generated_src_dir)/mesa/enums.c',
-            'src/src/mapi/glapi/gen/gl_enums.py',
-            '-f',
-            'src/src/mapi/glapi/gen/gl_and_es_API.xml',
-          ],
-          'message': "Generating enums.c ...",
-        },
-        {
-          'action_name': 'dispatch_h',
-          'inputs': [
-            '<@(xmlfiles)',
-            'redirectoutput.py',
-            'src/src/mapi/glapi/gen/gl_table.py',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/main/dispatch.h',
-          ],
-          'action': [
-            'python',
-            'redirectoutput.py',
-            '<(generated_src_dir)/mesa/main/dispatch.h',
-            'src/src/mapi/glapi/gen/gl_table.py',
-            '-f',
-            'src/src/mapi/glapi/gen/gl_API.xml',
-            '-m',
-            'remap_table',
-          ],
-          'message': "Generating dispatch.h ...",
-        },
-        {
-          'action_name': 'remap_helper_h',
-          'inputs': [
-            '<@(xmlfiles)',
-            'redirectoutput.py',
-            'src/src/mapi/glapi/gen/remap_helper.py',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/main/remap_helper.h',
-          ],
-          'action': [
-            'python',
-            'redirectoutput.py',
-            '<(generated_src_dir)/mesa/main/remap_helper.h',
-            'src/src/mapi/glapi/gen/remap_helper.py',
-            '-f',
-            'src/src/mapi/glapi/gen/gl_API.xml',
-          ],
-          'message': "Generating remap_helper.h ...",
-        },
-        {
-          'action_name': 'indirect_c',
-          'inputs': [
-            '<@(xmlfiles)',
-            'src/src/mapi/glapi/gen/glX_proto_send.py',
-            'redirectoutput.py',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/indirect.c',
-          ],
-          'action': [
-            'python',
-            'redirectoutput.py',
-            '<(generated_src_dir)/mesa/indirect.c',
-            'src/src/mapi/glapi/gen/glX_proto_send.py',
-            '-f',
-            'src/src/mapi/glapi/gen/gl_API.xml',
-            '-m',
-            'proto',
-          ],
-          'message': "Generating indirect.c ...",
-        },
-        {
-          'action_name': 'indirect_h',
-          'inputs': [
-            '<@(xmlfiles)',
-            'redirectoutput.py',
-            'src/src/mapi/glapi/gen/glX_proto_send.py',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/indirect.h',
-          ],
-          'action': [
-            'python',
-            'redirectoutput.py',
-            '<(generated_src_dir)/mesa/indirect.h',
-            'src/src/mapi/glapi/gen/glX_proto_send.py',
-            '-f',
-            'src/src/mapi/glapi/gen/gl_API.xml',
-            '-m',
-            'init_h',
-          ],
-          'message': "Generating indirect.h ...",
-        },
-        {
-          'action_name': 'indirect_init_c',
-          'inputs': [
-            '<@(xmlfiles)',
-            'redirectoutput.py',
-            'src/src/mapi/glapi/gen/glX_proto_send.py',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/indirect_init.c',
-          ],
-          'action': [
-            'python',
-            'redirectoutput.py',
-            '<(generated_src_dir)/mesa/indirect_init.c',
-            'src/src/mapi/glapi/gen/glX_proto_send.py',
-            '-f',
-            'src/src/mapi/glapi/gen/gl_API.xml',
-            '-m',
-            'init_c',
-          ],
-          'message': "Generating indirect_init.c ...",
-        },
-        {
-          'action_name': 'indirect_size_h',
-          'inputs': [
-            '<@(xmlfiles)',
-            'redirectoutput.py',
-            'src/src/mapi/glapi/gen/glX_proto_size.py',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/indirect_size.h',
-          ],
-          'action': [
-            'python',
-            'redirectoutput.py',
-            '<(generated_src_dir)/mesa/indirect_size.h',
-            'src/src/mapi/glapi/gen/glX_proto_size.py',
-            '-f',
-            'src/src/mapi/glapi/gen/gl_API.xml',
-            '-m',
-            'size_h',
-            '--only-set',
-            '-h',
-            '_INDIRECT_SIZE_H_',
-          ],
-          'message': "Generating indirect_size.h ...",
-        },
-        {
-          'action_name': 'indirect_size_c',
-          'inputs': [
-            '<@(xmlfiles)',
-            'redirectoutput.py',
-            'src/src/mapi/glapi/gen/glX_proto_size.py',
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/indirect_size.c',
-          ],
-          'action': [
-            'python',
-            'redirectoutput.py',
-            '<(generated_src_dir)/mesa/indirect_size.c',
-            'src/src/mapi/glapi/gen/glX_proto_size.py',
-            '-f',
-            'src/src/mapi/glapi/gen/gl_API.xml',
-            '-m',
-            'size_c',
-            '--only-set',
-          ],
-          'message': "Generating indirect_size.c ...",
-        },
-        {
-          'action_name': 'git_sha1_h',
-          'inputs': [
-          ],
-          'outputs': [
-            '<(generated_src_dir)/mesa/git_sha1.h',
-          ],
-          'action': [
-            'python',
-            'generate_git_sha1.py',
-            '<(generated_src_dir)/mesa/git_sha1.h',
-          ],
-          'message': "Generating Mesa sources ...",
-        },
-      ],
-    },
-  ],
-}
diff --git a/third_party/mockito/mockito.gyp b/third_party/mockito/mockito.gyp
deleted file mode 100644
index d9a9db2..0000000
--- a/third_party/mockito/mockito.gyp
+++ /dev/null
@@ -1,47 +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.
-
-{
-  'targets': [
-    {
-      # GN: //third_party/mockito:cglib_and_asm_java
-      'target_name': 'cglib_and_asm_jar',
-      'type': 'none',
-      'variables': {
-        'jar_path': 'src/lib/repackaged/cglib-and-asm-1.0.jar',
-      },
-      'includes': [
-        '../../build/host_prebuilt_jar.gypi',
-      ]
-    },
-    {
-      # GN: //third_party/mockito:objenesis_java
-      'target_name': 'objenesis_jar',
-      'type': 'none',
-      'variables': {
-        'jar_path': 'src/lib/run/objenesis-2.1.jar',
-      },
-      'includes': [
-        '../../build/host_prebuilt_jar.gypi',
-      ]
-    },
-    {
-      # GN: //third_party/mockito:mockito_java
-      'target_name': 'mockito_jar',
-      'type': 'none',
-      'dependencies': [
-        'cglib_and_asm_jar',
-        'objenesis_jar',
-        '../junit/junit.gyp:junit_jar',
-      ],
-      'variables': {
-        'src_paths': [ 'src/src' ],
-      },
-      'includes': [
-        '../../build/host_jar.gypi',
-      ],
-    },
-  ],
-}
-
diff --git a/third_party/modp_b64/modp_b64.gyp b/third_party/modp_b64/modp_b64.gyp
deleted file mode 100644
index 6176c5d..0000000
--- a/third_party/modp_b64/modp_b64.gyp
+++ /dev/null
@@ -1,48 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'modp_b64',
-      'type': 'static_library',
-      'toolsets': ['host', 'target'],
-      'sources': [
-        'modp_b64.cc',
-        'modp_b64.h',
-        'modp_b64_data.h',
-      ],
-      'include_dirs': [
-        '../..',
-      ],
-    },
-  ],
-  'conditions': [
-    ['OS == "win" and target_arch=="ia32"', {
-      # Even if we are building the browser for Win32, we need a few modules
-      # to be built for Win64, and this is a prerequsite.
-      'targets': [
-        {
-          'target_name': 'modp_b64_win64',
-          'type': 'static_library',
-          # We can't use dynamic_annotations target for win64 build since it is
-          # a 32-bit library.
-          'include_dirs': [
-            '../..',
-          ],
-          'sources': [
-            'modp_b64.cc',
-            'modp_b64.h',
-            'modp_b64_data.h',
-          ],
-          'configurations': {
-            'Common_Base': {
-              'msvs_target_platform': 'x64',
-            },
-          },
-        },
-      ],
-    }],
-  ],
-}
diff --git a/third_party/modp_b64/modp_b64_nacl.gyp b/third_party/modp_b64/modp_b64_nacl.gyp
deleted file mode 100644
index e2f4a25..0000000
--- a/third_party/modp_b64/modp_b64_nacl.gyp
+++ /dev/null
@@ -1,26 +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.
-
-{
-  'includes': [
-    '../../native_client/build/untrusted.gypi',
-  ],
-  'targets': [
-    {
-      'target_name': 'modp_b64_nacl',
-      'type': 'none',
-      'variables': {
-        'nlib_target': 'libmodp_b64_nacl.a',
-        'build_glibc': 0,
-        'build_newlib': 1,
-        'build_pnacl_newlib': 1,
-      },
-      'sources': [
-        'modp_b64.cc',
-        'modp_b64.h',
-        'modp_b64_data.h',
-      ],
-    },
-  ],
-}
diff --git a/third_party/ots/ots-common.gypi b/third_party/ots/ots-common.gypi
deleted file mode 100644
index 9cb539c..0000000
--- a/third_party/ots/ots-common.gypi
+++ /dev/null
@@ -1,77 +0,0 @@
-# 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.
-
-{
-  'variables': {
-    'ots_sources': [
-      'include/ots-memory-stream.h',
-      'include/opentype-sanitiser.h',
-      'src/cff.cc',
-      'src/cff.h',
-      'src/cff_type2_charstring.cc',
-      'src/cff_type2_charstring.h',
-      'src/cmap.cc',
-      'src/cmap.h',
-      'src/cvt.cc',
-      'src/cvt.h',
-      'src/fpgm.cc',
-      'src/fpgm.h',
-      'src/gasp.cc',
-      'src/gasp.h',
-      'src/gdef.cc',
-      'src/gdef.h',
-      'src/glyf.cc',
-      'src/glyf.h',
-      'src/gpos.cc',
-      'src/gpos.h',
-      'src/gsub.cc',
-      'src/gsub.h',
-      'src/hdmx.cc',
-      'src/hdmx.h',
-      'src/head.cc',
-      'src/head.h',
-      'src/hhea.cc',
-      'src/hhea.h',
-      'src/hmtx.cc',
-      'src/hmtx.h',
-      'src/kern.cc',
-      'src/kern.h',
-      'src/layout.cc',
-      'src/layout.h',
-      'src/loca.cc',
-      'src/loca.h',
-      'src/ltsh.cc',
-      'src/ltsh.h',
-      'src/maxp.cc',
-      'src/maxp.h',
-      'src/math.cc',
-      'src/math_.h',
-      'src/metrics.cc',
-      'src/metrics.h',
-      'src/name.cc',
-      'src/name.h',
-      'src/os2.cc',
-      'src/os2.h',
-      'src/ots.cc',
-      'src/ots.h',
-      'src/post.cc',
-      'src/post.h',
-      'src/prep.cc',
-      'src/prep.h',
-      'src/vdmx.cc',
-      'src/vdmx.h',
-      'src/vhea.cc',
-      'src/vhea.h',
-      'src/vmtx.cc',
-      'src/vmtx.h',
-      'src/vorg.cc',
-      'src/vorg.h',
-      'src/woff2.cc',
-      'src/woff2.h',
-    ],
-    'ots_include_dirs': [
-      'include',
-    ],
-  },
-}
diff --git a/third_party/ots/ots-standalone.gyp b/third_party/ots/ots-standalone.gyp
deleted file mode 100644
index a45ec4a..0000000
--- a/third_party/ots/ots-standalone.gyp
+++ /dev/null
@@ -1,256 +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.
-
-{
-  'variables': {
-    'gcc_cflags': [
-      '-ggdb',
-      '-W',
-      '-Wall',
-      '-Wshadow',
-      '-Wno-unused-parameter',
-      '-fPIE',
-      '-fstack-protector',
-    ],
-    'gcc_ldflags': [
-      '-ggdb',
-      '-fpie',
-      '-Wl,-z,relro',
-      '-Wl,-z,now',
-    ],
-  },
-  'includes': [
-    'ots-common.gypi',
-  ],
-  'target_defaults': {
-    'include_dirs': [
-      '.',
-      'third_party/brotli/dec',
-    ],
-    'conditions': [
-      ['OS=="linux"', {
-        'cflags': [
-          '<@(gcc_cflags)',
-          '-O',
-        ],
-        'ldflags': [
-          '<@(gcc_ldflags)',
-        ],
-        'defines': [
-          '_FORTIFY_SOURCE=2',
-        ],
-        'link_settings': {
-          'libraries': ['-lz'],
-        },
-      }],
-      ['OS=="mac"', {
-        'xcode_settings': {
-          'GCC_DYNAMIC_NO_PIC': 'NO',            # No -mdynamic-no-pic
-          'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES',   # -fvisibility=hidden
-          'OTHER_CFLAGS': [
-            '<@(gcc_cflags)',
-          ],
-        },
-        'link_settings': {
-          'libraries': [
-            '/System/Library/Frameworks/ApplicationServices.framework',
-            '/usr/lib/libz.dylib'
-          ],
-        },
-      }],
-      ['OS=="win"', {
-        'link_settings': {
-          'libraries': [
-            '-lzdll.lib',
-          ],
-        },
-        'msvs_settings': {
-          'VCLinkerTool': {
-            'AdditionalLibraryDirectories': ['third_party/zlib'],
-            'DelayLoadDLLs': ['zlib1.dll'],
-          },
-        },
-        'include_dirs': [
-          'third_party/zlib',
-        ],
-        'defines': [
-          'NOMINMAX', # To suppress max/min macro definition.
-          'WIN32',
-        ],
-      }],
-    ],
-  },
-  'targets': [
-    {
-      'target_name': 'ots',
-      'type': 'static_library',
-      'sources': [
-        '<@(ots_sources)',
-      ],
-      'dependencies': [
-        'third_party/brotli.gyp:brotli',
-      ],
-      'include_dirs': [
-        '<@(ots_include_dirs)',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '<@(ots_include_dirs)',
-        ],
-      },
-    },
-    {
-      'target_name': 'freetype2',
-      'type': 'none',
-      'conditions': [
-        ['OS=="linux"', {
-          'direct_dependent_settings': {
-            'cflags': [
-              '<!(pkg-config freetype2 --cflags)',
-            ],
-            'link_settings': {
-              'libraries': [
-                '<!(pkg-config freetype2 --libs)',
-              ],
-            },
-          },
-        }],
-      ],
-    },
-    {
-      'target_name': 'idempotent',
-      'type': 'executable',
-      'sources': [
-        'test/idempotent.cc',
-      ],
-      'dependencies': [
-        'ots',
-      ],
-      'conditions': [
-        ['OS=="linux"', {
-          'dependencies': [
-            'freetype2',
-          ]
-        }],
-        ['OS=="win"', {
-          'link_settings': {
-            'libraries': [
-              '-lgdi32.lib',
-            ],
-          },
-        }],
-      ],
-    },
-    {
-      'target_name': 'ot-sanitise',
-      'type': 'executable',
-      'sources': [
-        'test/ot-sanitise.cc',
-        'test/file-stream.h',
-      ],
-      'dependencies': [
-        'ots',
-      ],
-    },
-  ],
-  'conditions': [
-    ['OS=="linux" or OS=="mac"', {
-      'targets': [
-        {
-          'target_name': 'validator_checker',
-          'type': 'executable',
-          'sources': [
-            'test/validator-checker.cc',
-          ],
-          'dependencies': [
-            'ots',
-          ],
-          'conditions': [
-            ['OS=="linux"', {
-              'dependencies': [
-                'freetype2',
-              ]
-            }],
-          ],
-        },
-        {
-          'target_name': 'perf',
-          'type': 'executable',
-          'sources': [
-            'test/perf.cc',
-          ],
-          'dependencies': [
-            'ots',
-          ],
-        },
-        {
-          'target_name': 'cff_type2_charstring_test',
-          'type': 'executable',
-          'sources': [
-            'test/cff_type2_charstring_test.cc',
-          ],
-          'dependencies': [
-            'ots',
-          ],
-          'libraries': [
-            '-lgtest',
-            '-lgtest_main',
-          ],
-          'include_dirs': [
-            'src',
-          ],
-        },
-        {
-          'target_name': 'layout_common_table_test',
-          'type': 'executable',
-          'sources': [
-            'test/layout_common_table_test.cc',
-          ],
-          'dependencies': [
-            'ots',
-          ],
-          'libraries': [
-            '-lgtest',
-            '-lgtest_main',
-          ],
-          'include_dirs': [
-            'src',
-          ],
-        },
-        {
-          'target_name': 'table_dependencies_test',
-          'type': 'executable',
-          'sources': [
-            'test/table_dependencies_test.cc',
-          ],
-          'dependencies': [
-            'ots',
-          ],
-          'libraries': [
-            '-lgtest',
-            '-lgtest_main',
-          ],
-          'include_dirs': [
-            'src',
-          ],
-        },
-      ],
-    }],
-    ['OS=="linux"', {
-      'targets': [
-        {
-          'target_name': 'side_by_side',
-          'type': 'executable',
-          'sources': [
-            'test/side-by-side.cc',
-          ],
-          'dependencies': [
-            'freetype2',
-            'ots',
-          ],
-        },
-      ],
-    }],
-  ],
-}
diff --git a/third_party/ots/ots.gyp b/third_party/ots/ots.gyp
deleted file mode 100644
index 288e41c..0000000
--- a/third_party/ots/ots.gyp
+++ /dev/null
@@ -1,39 +0,0 @@
-# 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.
-
-{
-  'variables': {
-    'chromium_code': 1,
-  },
-  'includes': [
-    'ots-common.gypi',
-  ],
-  'targets': [
-    {
-      'target_name': 'ots',
-      'type': 'static_library',
-      'sources': [
-        '<@(ots_sources)',
-      ],
-      'include_dirs': [
-        '../..',
-        '<@(ots_include_dirs)',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '<@(ots_include_dirs)',
-        ],
-      },
-      'dependencies': [
-        '../brotli/brotli.gyp:brotli',
-        '../zlib/zlib.gyp:zlib',
-      ],
-      # TODO(jschuh): http://crbug.com/167187
-      'msvs_disabled_warnings': [
-        4267,
-        4334,
-      ],      
-    },
-  ],
-}
diff --git a/third_party/ots/third_party/brotli.gyp b/third_party/ots/third_party/brotli.gyp
deleted file mode 100644
index 9903110..0000000
--- a/third_party/ots/third_party/brotli.gyp
+++ /dev/null
@@ -1,32 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'brotli',
-      'type': 'static_library',
-      'include_dirs': [
-        'brotli/dec',
-      ],
-      'sources': [
-        'brotli/dec/bit_reader.c',
-        'brotli/dec/bit_reader.h',
-        'brotli/dec/context.h',
-        'brotli/dec/decode.c',
-        'brotli/dec/decode.h',
-        'brotli/dec/dictionary.h',
-        'brotli/dec/huffman.c',
-        'brotli/dec/huffman.h',
-        'brotli/dec/prefix.h',
-        'brotli/dec/safe_malloc.c',
-        'brotli/dec/safe_malloc.h',
-        'brotli/dec/streams.c',
-        'brotli/dec/streams.h',
-        'brotli/dec/transform.h',
-        'brotli/dec/types.h',
-      ],
-    },
-  ],
-}
diff --git a/third_party/protobuf/protobuf.gyp b/third_party/protobuf/protobuf.gyp
deleted file mode 100644
index 7417eec..0000000
--- a/third_party/protobuf/protobuf.gyp
+++ /dev/null
@@ -1,398 +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.
-
-{
-  'conditions': [
-    ['use_system_protobuf==0', {
-      'conditions': [
-        ['OS!="win"', {
-          'variables': {
-            'config_h_dir':
-              '.',  # crafted for gcc/linux.
-          },
-        }, {  # else, OS=="win"
-          'variables': {
-            'config_h_dir':
-              'vsprojects',  # crafted for msvc.
-          },
-          'target_defaults': {
-            'msvs_disabled_warnings': [
-              4018,  # signed/unsigned mismatch in comparison
-              4244,  # implicit conversion, possible loss of data
-              4355,  # 'this' used in base member initializer list
-              4267,  # size_t to int truncation
-              4291,  # no matching operator delete for a placement new
-            ],
-            'defines!': [
-              'WIN32_LEAN_AND_MEAN',  # Protobuf defines this itself.
-            ],
-          },
-        }],
-        ['OS=="ios" and "<(GENERATOR)"=="xcode" and "<(GENERATOR_FLAVOR)"!="ninja"', {
-          'variables': {
-            'ninja_output_dir': 'ninja-protoc',
-            'ninja_product_dir':
-              '<(DEPTH)/xcodebuild/<(ninja_output_dir)/<(CONFIGURATION_NAME)',
-            # Gyp to rerun
-            're_run_targets': [
-              'third_party/protobuf/protobuf.gyp',
-            ],
-          },
-          'targets': [
-            {
-              # On iOS, generating protoc is done via two actions: (1) compiling
-              # the executable with ninja, and (2) copying the executable into a
-              # location that is shared with other projects. These actions are
-              # separated into two targets in order to be able to specify that the
-              # second action should not run until the first action finishes (since
-              # the ordering of multiple actions in one target is defined only by
-              # inputs and outputs, and it's impossible to set correct inputs for
-              # the ninja build, so setting all the inputs and outputs isn't an
-              # option). The first target is given here; the second target is the
-              # normal protoc target under the condition that "OS==iOS".
-              'target_name': 'compile_protoc',
-              'type': 'none',
-              'toolsets': ['host'],
-              'includes': ['../../build/ios/mac_build.gypi'],
-              'actions': [
-                {
-                  'action_name': 'compile protoc',
-                  'inputs': [],
-                  'outputs': [],
-                  'action': [
-                    '<@(ninja_cmd)',
-                    'protoc',
-                  ],
-                  'message': 'Generating the C++ protocol buffers compiler',
-                },
-              ],
-            },
-          ],
-        }],
-      ],
-      'targets': [
-        # The "lite" lib is about 1/7th the size of the heavy lib,
-        # but it doesn't support some of the more exotic features of
-        # protobufs, like reflection.  To generate C++ code that can link
-        # against the lite version of the library, add the option line:
-        #
-        #   option optimize_for = LITE_RUNTIME;
-        #
-        # to your .proto file.
-        {
-          'target_name': 'protobuf_lite',
-          'type': '<(component)',
-          'toolsets': ['host', 'target'],
-          'includes': [
-            'protobuf_lite.gypi',
-          ],
-          # Required for component builds. See http://crbug.com/172800.
-          'defines': [
-            'LIBPROTOBUF_EXPORTS',
-            'PROTOBUF_USE_DLLS',
-          ],
-          'direct_dependent_settings': {
-            'defines': [
-              'PROTOBUF_USE_DLLS',
-            ],
-          },
-        },
-        # This is the full, heavy protobuf lib that's needed for c++ .protos
-        # that don't specify the LITE_RUNTIME option.  The protocol
-        # compiler itself (protoc) falls into that category.
-        #
-        # DO NOT LINK AGAINST THIS TARGET IN CHROME CODE  --agl
-        {
-          'target_name': 'protobuf_full_do_not_use',
-          'type': 'static_library',
-          'toolsets': ['host','target'],
-          'includes': [
-            'protobuf_lite.gypi',
-          ],
-          'sources': [
-            'src/google/protobuf/descriptor.h',
-            'src/google/protobuf/descriptor.pb.h',
-            'src/google/protobuf/descriptor_database.h',
-            'src/google/protobuf/dynamic_message.h',
-            'src/google/protobuf/generated_enum_reflection.h',
-            'src/google/protobuf/generated_message_reflection.h',
-            'src/google/protobuf/message.h',
-            'src/google/protobuf/reflection_ops.h',
-            'src/google/protobuf/service.h',
-            'src/google/protobuf/text_format.h',
-            'src/google/protobuf/wire_format.h',
-            'src/google/protobuf/io/gzip_stream.h',
-            'src/google/protobuf/io/printer.h',
-            'src/google/protobuf/io/tokenizer.h',
-            'src/google/protobuf/io/zero_copy_stream_impl.h',
-            'src/google/protobuf/compiler/code_generator.h',
-            'src/google/protobuf/compiler/command_line_interface.h',
-            'src/google/protobuf/compiler/importer.h',
-            'src/google/protobuf/compiler/java/java_doc_comment.cc',
-            'src/google/protobuf/compiler/java/java_doc_comment.h',
-            'src/google/protobuf/compiler/parser.h',
-
-            'src/google/protobuf/stubs/strutil.cc',
-            'src/google/protobuf/stubs/strutil.h',
-            'src/google/protobuf/stubs/substitute.cc',
-            'src/google/protobuf/stubs/substitute.h',
-            'src/google/protobuf/stubs/stl_util.h',
-            'src/google/protobuf/stubs/stringprintf.cc',
-            'src/google/protobuf/stubs/stringprintf.h',
-            'src/google/protobuf/stubs/structurally_valid.cc',
-            'src/google/protobuf/stubs/template_util.h',
-            'src/google/protobuf/stubs/type_traits.h',
-
-            'src/google/protobuf/descriptor.cc',
-            'src/google/protobuf/descriptor.pb.cc',
-            'src/google/protobuf/descriptor_database.cc',
-            'src/google/protobuf/dynamic_message.cc',
-            'src/google/protobuf/extension_set.cc',
-            'src/google/protobuf/extension_set.h',
-            'src/google/protobuf/extension_set_heavy.cc',
-            'src/google/protobuf/generated_message_reflection.cc',
-            'src/google/protobuf/message.cc',
-            'src/google/protobuf/reflection_ops.cc',
-            'src/google/protobuf/service.cc',
-            'src/google/protobuf/text_format.cc',
-            'src/google/protobuf/wire_format.cc',
-            # This file pulls in zlib, but it's not actually used by protoc, so
-            # instead of compiling zlib for the host, let's just exclude this.
-            # 'src/src/google/protobuf/io/gzip_stream.cc',
-            'src/google/protobuf/io/printer.cc',
-            'src/google/protobuf/io/tokenizer.cc',
-            'src/google/protobuf/io/zero_copy_stream_impl.cc',
-            'src/google/protobuf/compiler/importer.cc',
-            'src/google/protobuf/compiler/parser.cc',
-          ],
-        },
-        {
-          'target_name': 'protoc',
-          'conditions': [
-            ['OS!="ios" or "<(GENERATOR)"!="xcode" or "<(GENERATOR_FLAVOR)"=="ninja"', {
-              'type': 'executable',
-              'toolsets': ['host'],
-              'sources': [
-                'src/google/protobuf/compiler/code_generator.cc',
-                'src/google/protobuf/compiler/command_line_interface.cc',
-                'src/google/protobuf/compiler/plugin.cc',
-                'src/google/protobuf/compiler/plugin.pb.cc',
-                'src/google/protobuf/compiler/subprocess.cc',
-                'src/google/protobuf/compiler/subprocess.h',
-                'src/google/protobuf/compiler/zip_writer.cc',
-                'src/google/protobuf/compiler/zip_writer.h',
-                'src/google/protobuf/compiler/cpp/cpp_enum.cc',
-                'src/google/protobuf/compiler/cpp/cpp_enum.h',
-                'src/google/protobuf/compiler/cpp/cpp_enum_field.cc',
-                'src/google/protobuf/compiler/cpp/cpp_enum_field.h',
-                'src/google/protobuf/compiler/cpp/cpp_extension.cc',
-                'src/google/protobuf/compiler/cpp/cpp_extension.h',
-                'src/google/protobuf/compiler/cpp/cpp_field.cc',
-                'src/google/protobuf/compiler/cpp/cpp_field.h',
-                'src/google/protobuf/compiler/cpp/cpp_file.cc',
-                'src/google/protobuf/compiler/cpp/cpp_file.h',
-                'src/google/protobuf/compiler/cpp/cpp_generator.cc',
-                'src/google/protobuf/compiler/cpp/cpp_helpers.cc',
-                'src/google/protobuf/compiler/cpp/cpp_helpers.h',
-                'src/google/protobuf/compiler/cpp/cpp_message.cc',
-                'src/google/protobuf/compiler/cpp/cpp_message.h',
-                'src/google/protobuf/compiler/cpp/cpp_message_field.cc',
-                'src/google/protobuf/compiler/cpp/cpp_message_field.h',
-                'src/google/protobuf/compiler/cpp/cpp_primitive_field.cc',
-                'src/google/protobuf/compiler/cpp/cpp_primitive_field.h',
-                'src/google/protobuf/compiler/cpp/cpp_service.cc',
-                'src/google/protobuf/compiler/cpp/cpp_service.h',
-                'src/google/protobuf/compiler/cpp/cpp_string_field.cc',
-                'src/google/protobuf/compiler/cpp/cpp_string_field.h',
-                'src/google/protobuf/compiler/java/java_enum.cc',
-                'src/google/protobuf/compiler/java/java_enum.h',
-                'src/google/protobuf/compiler/java/java_enum_field.cc',
-                'src/google/protobuf/compiler/java/java_enum_field.h',
-                'src/google/protobuf/compiler/java/java_extension.cc',
-                'src/google/protobuf/compiler/java/java_extension.h',
-                'src/google/protobuf/compiler/java/java_field.cc',
-                'src/google/protobuf/compiler/java/java_field.h',
-                'src/google/protobuf/compiler/java/java_file.cc',
-                'src/google/protobuf/compiler/java/java_file.h',
-                'src/google/protobuf/compiler/java/java_generator.cc',
-                'src/google/protobuf/compiler/java/java_helpers.cc',
-                'src/google/protobuf/compiler/java/java_helpers.h',
-                'src/google/protobuf/compiler/java/java_message.cc',
-                'src/google/protobuf/compiler/java/java_message.h',
-                'src/google/protobuf/compiler/java/java_message_field.cc',
-                'src/google/protobuf/compiler/java/java_message_field.h',
-                'src/google/protobuf/compiler/java/java_primitive_field.cc',
-                'src/google/protobuf/compiler/java/java_primitive_field.h',
-                'src/google/protobuf/compiler/java/java_service.cc',
-                'src/google/protobuf/compiler/java/java_service.h',
-                'src/google/protobuf/compiler/java/java_string_field.cc',
-                'src/google/protobuf/compiler/java/java_string_field.h',
-                'src/google/protobuf/compiler/python/python_generator.cc',
-                'src/google/protobuf/compiler/main.cc',
-              ],
-              'dependencies': [
-                'protobuf_full_do_not_use',
-              ],
-              'include_dirs': [
-                '<(config_h_dir)',
-                'src/src',
-              ],
-            }, {  # else, OS=="ios" and "<(GENERATOR)"=="xcode" and "<(GENERATOR_FLAVOR)"!="ninja"
-              'type': 'none',
-              'toolsets': ['host'],
-              'dependencies': [
-                'compile_protoc',
-              ],
-              'actions': [
-                {
-                  'action_name': 'copy protoc',
-                  'inputs': [
-                    '<(ninja_product_dir)/protoc',
-                  ],
-                  'outputs': [
-                    '<(PRODUCT_DIR)/protoc',
-                  ],
-                  'action': [
-                    'cp',
-                    '<(ninja_product_dir)/protoc',
-                    '<(PRODUCT_DIR)/protoc',
-                  ],
-                },
-              ],
-            }],
-          ],
-        },
-        {
-          # Generate the python module needed by all protoc-generated Python code.
-          'target_name': 'py_proto',
-          'type': 'none',
-          'copies': [
-            {
-              'destination': '<(PRODUCT_DIR)/pyproto/google/',
-              'files': [
-                # google/ module gets an empty __init__.py.
-                '__init__.py',
-              ],
-            },
-            {
-              'destination': '<(PRODUCT_DIR)/pyproto/google/protobuf',
-              'files': [
-                'python/google/protobuf/__init__.py',
-                'python/google/protobuf/descriptor.py',
-                'python/google/protobuf/descriptor_database.py',
-                'python/google/protobuf/descriptor_pool.py',
-                'python/google/protobuf/message.py',
-                'python/google/protobuf/message_factory.py',
-                'python/google/protobuf/reflection.py',
-                'python/google/protobuf/service.py',
-                'python/google/protobuf/service_reflection.py',
-                'python/google/protobuf/text_format.py',
-
-                # TODO(ncarter): protoc's python generator treats
-                # descriptor.proto specially, but it's not possible to trigger
-                # the special treatment unless you run protoc from ./src/src
-                # (the treatment is based on the path to the .proto file
-                # matching a constant exactly). I'm not sure how to convince
-                # gyp to execute a rule from a different directory.  Until this
-                # is resolved, use a copy of descriptor_pb2.py that I manually
-                # generated.
-                'descriptor_pb2.py',
-              ],
-            },
-            {
-              'destination': '<(PRODUCT_DIR)/pyproto/google/protobuf/internal',
-              'files': [
-                'python/google/protobuf/internal/__init__.py',
-                'python/google/protobuf/internal/api_implementation.py',
-                'python/google/protobuf/internal/containers.py',
-                'python/google/protobuf/internal/cpp_message.py',
-                'python/google/protobuf/internal/decoder.py',
-                'python/google/protobuf/internal/encoder.py',
-                'python/google/protobuf/internal/enum_type_wrapper.py',
-                'python/google/protobuf/internal/generator_test.py',
-                'python/google/protobuf/internal/message_listener.py',
-                'python/google/protobuf/internal/python_message.py',
-                'python/google/protobuf/internal/type_checkers.py',
-                'python/google/protobuf/internal/wire_format.py',
-              ],
-            },
-          ],
-      #   # We can't generate a proper descriptor_pb2.py -- see earlier comment.
-      #   'rules': [
-      #     {
-      #       'rule_name': 'genproto',
-      #       'extension': 'proto',
-      #       'inputs': [
-      #         '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
-      #       ],
-      #       'variables': {
-      #         # The protoc compiler requires a proto_path argument with the
-      #           # directory containing the .proto file.
-      #           'rule_input_relpath': 'src/google/protobuf',
-      #         },
-      #         'outputs': [
-      #           '<(PRODUCT_DIR)/pyproto/google/protobuf/<(RULE_INPUT_ROOT)_pb2.py',
-      #         ],
-      #         'action': [
-      #           '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)',
-      #           '-I./src',
-      #           '-I.',
-      #           '--python_out=<(PRODUCT_DIR)/pyproto/google/protobuf',
-      #           'google/protobuf/descriptor.proto',
-      #         ],
-      #         'message': 'Generating Python code from <(RULE_INPUT_PATH)',
-      #       },
-      #     ],
-      #     'dependencies': [
-      #       'protoc#host',
-      #     ],
-      #     'sources': [
-      #       'src/google/protobuf/descriptor.proto',
-      #     ],
-         },
-      ],
-    }, { # use_system_protobuf==1
-      'targets': [
-        {
-          'target_name': 'protobuf_lite',
-          'type': 'none',
-          'direct_dependent_settings': {
-            'cflags': [
-              # Use full protobuf, because vanilla protobuf doesn't have
-              # our custom patch to retain unknown fields in lite mode.
-              '<!@(pkg-config --cflags protobuf)',
-            ],
-            'defines': [
-              'USE_SYSTEM_PROTOBUF',
-
-              # This macro must be defined to suppress the use
-              # of dynamic_cast<>, which requires RTTI.
-              'GOOGLE_PROTOBUF_NO_RTTI',
-              'GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER',
-            ],
-          },
-          'link_settings': {
-            # Use full protobuf, because vanilla protobuf doesn't have
-            # our custom patch to retain unknown fields in lite mode.
-            'ldflags': [
-              '<!@(pkg-config --libs-only-L --libs-only-other protobuf)',
-            ],
-            'libraries': [
-              '<!@(pkg-config --libs-only-l protobuf)',
-            ],
-          },
-        },
-        {
-          'target_name': 'protoc',
-          'type': 'none',
-          'toolsets': ['host', 'target'],
-        },
-        {
-          'target_name': 'py_proto',
-          'type': 'none',
-        },
-      ],
-    }],
-  ],
-}
diff --git a/third_party/protobuf/protobuf_lite.gypi b/third_party/protobuf/protobuf_lite.gypi
deleted file mode 100644
index bbdc072..0000000
--- a/third_party/protobuf/protobuf_lite.gypi
+++ /dev/null
@@ -1,68 +0,0 @@
-# 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.
-
-{
-  'sources': [
-    'src/google/protobuf/stubs/atomicops.h',
-    'src/google/protobuf/stubs/atomicops_internals_arm_gcc.h',
-    'src/google/protobuf/stubs/atomicops_internals_atomicword_compat.h',
-    'src/google/protobuf/stubs/atomicops_internals_macosx.h',
-    'src/google/protobuf/stubs/atomicops_internals_mips_gcc.h',
-    'src/google/protobuf/stubs/atomicops_internals_x86_gcc.cc',
-    'src/google/protobuf/stubs/atomicops_internals_x86_gcc.h',
-    'src/google/protobuf/stubs/atomicops_internals_x86_msvc.cc',
-    'src/google/protobuf/stubs/atomicops_internals_x86_msvc.h',
-    'src/google/protobuf/stubs/common.h',
-    'src/google/protobuf/stubs/once.h',
-    'src/google/protobuf/stubs/platform_macros.h',
-    'src/google/protobuf/extension_set.h',
-    'src/google/protobuf/generated_message_util.h',
-    'src/google/protobuf/message_lite.h',
-    'src/google/protobuf/repeated_field.h',
-    'src/google/protobuf/unknown_field_set.cc',
-    'src/google/protobuf/unknown_field_set.h',
-    'src/google/protobuf/wire_format_lite.h',
-    'src/google/protobuf/wire_format_lite_inl.h',
-    'src/google/protobuf/io/coded_stream.h',
-    'src/google/protobuf/io/zero_copy_stream.h',
-    'src/google/protobuf/io/zero_copy_stream_impl_lite.h',
-
-    'src/google/protobuf/stubs/common.cc',
-    'src/google/protobuf/stubs/once.cc',
-    'src/google/protobuf/stubs/hash.h',
-    'src/google/protobuf/stubs/map-util.h',
-    'src/google/protobuf/extension_set.cc',
-    'src/google/protobuf/generated_message_util.cc',
-    'src/google/protobuf/message_lite.cc',
-    'src/google/protobuf/repeated_field.cc',
-    'src/google/protobuf/wire_format_lite.cc',
-    'src/google/protobuf/io/coded_stream.cc',
-    'src/google/protobuf/io/coded_stream_inl.h',
-    'src/google/protobuf/io/zero_copy_stream.cc',
-    'src/google/protobuf/io/zero_copy_stream_impl_lite.cc',
-    '<(config_h_dir)/config.h',
-  ],
-  'include_dirs': [
-    '<(config_h_dir)',
-    'src',
-  ],
-  # This macro must be defined to suppress the use of dynamic_cast<>,
-  # which requires RTTI.
-  'defines': [
-    'GOOGLE_PROTOBUF_NO_RTTI',
-    'GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER',
-  ],
-  'direct_dependent_settings': {
-    'include_dirs': [
-      '<(config_h_dir)',
-      'src',
-    ],
-    'defines': [
-      'GOOGLE_PROTOBUF_NO_RTTI',
-      'GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER',
-    ],
-    # TODO(jschuh): http://crbug.com/167187 size_t -> int.
-    'msvs_disabled_warnings': [ 4267 ],
-  },
-}
diff --git a/third_party/protobuf/protobuf_nacl.gyp b/third_party/protobuf/protobuf_nacl.gyp
deleted file mode 100644
index e8741c2..0000000
--- a/third_party/protobuf/protobuf_nacl.gyp
+++ /dev/null
@@ -1,36 +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.
-
-{
-  'includes': [
-    '../../native_client/build/untrusted.gypi',
-  ],
-  'targets': [
-    {
-      'target_name': 'protobuf_lite_nacl',
-      'type': 'none',
-      'variables': {
-        'nlib_target': 'libprotobuf_lite_nacl.a',
-        'build_glibc': 0,
-        'build_newlib': 0,
-        'build_pnacl_newlib': 1,
-        'config_h_dir': '.',
-      },
-      'dependencies': [
-        '../../native_client/tools.gyp:prep_toolchain',
-      ],
-      'pnacl_compile_flags': [
-        # This disables #warning in hash_map/hash_set headers which are
-        # deprecated but still used in protobuf.
-        #
-        # TODO(sergeyu): Migrate protobuf to unordered_man and unordered_set
-        # and remove this flag.
-        '-Wno-#warnings',
-      ],
-      'includes': [
-        'protobuf_lite.gypi',
-      ],
-    },  # end of target 'protobuf_lite_nacl'
-  ]
-}
diff --git a/third_party/qcms/qcms.gyp b/third_party/qcms/qcms.gyp
deleted file mode 100644
index 6f33aba..0000000
--- a/third_party/qcms/qcms.gyp
+++ /dev/null
@@ -1,65 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'qcms',
-      'product_name': 'qcms',
-      'type': 'static_library',
-      'sources': [
-        'src/chain.c',
-        'src/chain.h',
-        'src/iccread.c',
-        'src/matrix.c',
-        'src/matrix.h',
-        'src/qcms.h',
-        'src/qcmsint.h',
-        'src/qcmstypes.h',
-        'src/transform.c',
-        'src/transform_util.c',
-        'src/transform_util.h',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          './src',
-        ],
-      },
-      # Warning (sign-conversion) fixed upstream by large refactoring. Can be
-      # removed on next roll.
-      'msvs_disabled_warnings': [ 4018 ],
-
-      'conditions': [
-        ['target_arch=="ia32" or target_arch=="x64"', {
-          'defines': [
-            'SSE2_ENABLE',
-          ],
-          'sources': [
-            'src/transform-sse1.c',
-            'src/transform-sse2.c',
-          ],
-        }],
-        # QCMS assumes this target isn't compiled since MSVC x64 doesn't support
-        # the MMX intrinsics present in the SSE1 code.
-        ['OS=="win" and target_arch=="x64"', {
-          'sources!': [
-            'src/transform-sse1.c',
-          ],
-        }],
-        ['OS == "win"', {
-          'msvs_disabled_warnings': [
-            4056,  # overflow in floating-point constant arithmetic (INFINITY)
-            4756,  # overflow in constant arithmetic (INFINITY)
-          ],
-        }],
-      ],
-    },
-  ],
-}
-
-# Local Variables:
-# tab-width:2
-# indent-tabs-mode:nil
-# End:
-# vim: set expandtab tabstop=2 shiftwidth=2:
diff --git a/third_party/re2/re2.gyp b/third_party/re2/re2.gyp
deleted file mode 100644
index 8ddfc91..0000000
--- a/third_party/re2/re2.gyp
+++ /dev/null
@@ -1,78 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 're2',
-      'type': 'static_library',
-      'include_dirs': [
-        '.',
-        '<(DEPTH)',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '.',
-          '<(DEPTH)',
-        ],
-      },
-      'dependencies': [
-        '<(DEPTH)/base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
-      ],
-      'sources': [
-        're2/bitstate.cc',
-        're2/compile.cc',
-        're2/dfa.cc',
-        're2/filtered_re2.cc',
-        're2/filtered_re2.h',
-        're2/mimics_pcre.cc',
-        're2/nfa.cc',
-        're2/onepass.cc',
-        're2/parse.cc',
-        're2/perl_groups.cc',
-        're2/prefilter.cc',
-        're2/prefilter.h',
-        're2/prefilter_tree.cc',
-        're2/prefilter_tree.h',
-        're2/prog.cc',
-        're2/prog.h',
-        're2/re2.cc',
-        're2/re2.h',
-        're2/regexp.cc',
-        're2/regexp.h',
-        're2/set.cc',
-        're2/set.h',
-        're2/simplify.cc',
-        're2/stringpiece.h',
-        're2/tostring.cc',
-        're2/unicode_casefold.cc',
-        're2/unicode_casefold.h',
-        're2/unicode_groups.cc',
-        're2/unicode_groups.h',
-        're2/variadic_function.h',
-        're2/walker-inl.h',
-        'util/arena.cc',
-        'util/arena.h',
-        'util/atomicops.h',
-        'util/flags.h',
-        'util/hash.cc',
-        'util/logging.h',
-        'util/mutex.h',
-        'util/rune.cc',
-        'util/sparse_array.h',
-        'util/sparse_set.h',
-        'util/stringpiece.cc',
-        'util/stringprintf.cc',
-        'util/strutil.cc',
-        'util/utf.h',
-        'util/util.h',
-      ],
-      'conditions': [
-        ['OS=="win"', {
-          'msvs_disabled_warnings': [ 4018, 4722, 4267 ],
-        }]
-      ]
-    },
-  ],
-}
diff --git a/third_party/robolectric/robolectric.gyp b/third_party/robolectric/robolectric.gyp
deleted file mode 100644
index 7c3d785..0000000
--- a/third_party/robolectric/robolectric.gyp
+++ /dev/null
@@ -1,58 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      # GN: //third_party/robolectric:android-all-4.3_r2-robolectric-0
-      'target_name': 'android-all-4.3_r2-robolectric-0',
-      'type': 'none',
-      'variables': {
-        'jar_path': 'lib/android-all-4.3_r2-robolectric-0.jar',
-      },
-      'includes': [
-        '../../build/host_prebuilt_jar.gypi',
-      ]
-    },
-    {
-      # GN: //third_party/robolectric:tagsoup-1.2
-      'target_name': 'tagsoup-1.2',
-      'type': 'none',
-      'variables': {
-        'jar_path': 'lib/tagsoup-1.2.jar',
-      },
-      'includes': [
-        '../../build/host_prebuilt_jar.gypi',
-      ]
-    },
-    {
-      # GN: //third_party/robolectric:json-20080701
-      'target_name': 'json-20080701',
-      'type': 'none',
-      'variables': {
-        'jar_path': 'lib/json-20080701.jar',
-      },
-      'includes': [
-        '../../build/host_prebuilt_jar.gypi',
-      ]
-    },
-    {
-      # GN: //third_party/robolectric:robolectric_java
-      'target_name': 'robolectric_jar',
-      'type': 'none',
-      'dependencies': [
-        'android-all-4.3_r2-robolectric-0',
-        'tagsoup-1.2',
-        'json-20080701',
-      ],
-      'variables': {
-        'jar_path': 'lib/robolectric-2.4-jar-with-dependencies.jar',
-      },
-      'includes': [
-        '../../build/host_prebuilt_jar.gypi',
-      ]
-    },
-  ],
-}
-
diff --git a/third_party/sfntly/sfntly.gyp b/third_party/sfntly/sfntly.gyp
deleted file mode 100644
index f76b820..0000000
--- a/third_party/sfntly/sfntly.gyp
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-{
-  'variables': {
-    'chromium_code': 1,
-  },
-  'targets': [
-    {
-      'target_name': 'sfntly',
-      'type': 'static_library',
-      'sources': [
-        'cpp/src/sfntly/data/byte_array.cc',
-        'cpp/src/sfntly/data/byte_array.h',
-        'cpp/src/sfntly/data/font_data.cc',
-        'cpp/src/sfntly/data/font_data.h',
-        'cpp/src/sfntly/data/font_input_stream.cc',
-        'cpp/src/sfntly/data/font_input_stream.h',
-        'cpp/src/sfntly/data/font_output_stream.cc',
-        'cpp/src/sfntly/data/font_output_stream.h',
-        'cpp/src/sfntly/data/growable_memory_byte_array.cc',
-        'cpp/src/sfntly/data/growable_memory_byte_array.h',
-        'cpp/src/sfntly/data/memory_byte_array.cc',
-        'cpp/src/sfntly/data/memory_byte_array.h',
-        'cpp/src/sfntly/data/readable_font_data.cc',
-        'cpp/src/sfntly/data/readable_font_data.h',
-        'cpp/src/sfntly/data/writable_font_data.cc',
-        'cpp/src/sfntly/data/writable_font_data.h',
-        'cpp/src/sfntly/font.cc',
-        'cpp/src/sfntly/font.h',
-        'cpp/src/sfntly/font_factory.cc',
-        'cpp/src/sfntly/font_factory.h',
-        'cpp/src/sfntly/math/fixed1616.h',
-        'cpp/src/sfntly/math/font_math.h',
-        'cpp/src/sfntly/port/atomic.h',
-        'cpp/src/sfntly/port/config.h',
-        'cpp/src/sfntly/port/endian.h',
-        'cpp/src/sfntly/port/exception_type.h',
-        'cpp/src/sfntly/port/file_input_stream.cc',
-        'cpp/src/sfntly/port/file_input_stream.h',
-        'cpp/src/sfntly/port/input_stream.h',
-        'cpp/src/sfntly/port/lock.cc',
-        'cpp/src/sfntly/port/lock.h',
-        'cpp/src/sfntly/port/memory_input_stream.cc',
-        'cpp/src/sfntly/port/memory_input_stream.h',
-        'cpp/src/sfntly/port/memory_output_stream.cc',
-        'cpp/src/sfntly/port/memory_output_stream.h',
-        'cpp/src/sfntly/port/output_stream.h',
-        'cpp/src/sfntly/port/refcount.h',
-        'cpp/src/sfntly/port/type.h',
-        'cpp/src/sfntly/table/bitmap/big_glyph_metrics.cc',
-        'cpp/src/sfntly/table/bitmap/big_glyph_metrics.h',
-        'cpp/src/sfntly/table/bitmap/bitmap_glyph.cc',
-        'cpp/src/sfntly/table/bitmap/bitmap_glyph.h',
-        'cpp/src/sfntly/table/bitmap/bitmap_glyph_info.cc',
-        'cpp/src/sfntly/table/bitmap/bitmap_glyph_info.h',
-        'cpp/src/sfntly/table/bitmap/bitmap_size_table.cc',
-        'cpp/src/sfntly/table/bitmap/bitmap_size_table.h',
-        'cpp/src/sfntly/table/bitmap/composite_bitmap_glyph.cc',
-        'cpp/src/sfntly/table/bitmap/composite_bitmap_glyph.h',
-        'cpp/src/sfntly/table/bitmap/ebdt_table.cc',
-        'cpp/src/sfntly/table/bitmap/ebdt_table.h',
-        'cpp/src/sfntly/table/bitmap/eblc_table.cc',
-        'cpp/src/sfntly/table/bitmap/eblc_table.h',
-        'cpp/src/sfntly/table/bitmap/ebsc_table.cc',
-        'cpp/src/sfntly/table/bitmap/ebsc_table.h',
-        'cpp/src/sfntly/table/bitmap/glyph_metrics.cc',
-        'cpp/src/sfntly/table/bitmap/glyph_metrics.h',
-        'cpp/src/sfntly/table/bitmap/index_sub_table.cc',
-        'cpp/src/sfntly/table/bitmap/index_sub_table.h',
-        'cpp/src/sfntly/table/bitmap/index_sub_table_format1.cc',
-        'cpp/src/sfntly/table/bitmap/index_sub_table_format1.h',
-        'cpp/src/sfntly/table/bitmap/index_sub_table_format2.cc',
-        'cpp/src/sfntly/table/bitmap/index_sub_table_format2.h',
-        'cpp/src/sfntly/table/bitmap/index_sub_table_format3.cc',
-        'cpp/src/sfntly/table/bitmap/index_sub_table_format3.h',
-        'cpp/src/sfntly/table/bitmap/index_sub_table_format4.cc',
-        'cpp/src/sfntly/table/bitmap/index_sub_table_format4.h',
-        'cpp/src/sfntly/table/bitmap/index_sub_table_format5.cc',
-        'cpp/src/sfntly/table/bitmap/index_sub_table_format5.h',
-        'cpp/src/sfntly/table/bitmap/simple_bitmap_glyph.cc',
-        'cpp/src/sfntly/table/bitmap/simple_bitmap_glyph.h',
-        'cpp/src/sfntly/table/bitmap/small_glyph_metrics.cc',
-        'cpp/src/sfntly/table/bitmap/small_glyph_metrics.h',
-        'cpp/src/sfntly/table/byte_array_table_builder.cc',
-        'cpp/src/sfntly/table/byte_array_table_builder.h',
-        'cpp/src/sfntly/table/core/cmap_table.cc',
-        'cpp/src/sfntly/table/core/cmap_table.h',
-        'cpp/src/sfntly/table/core/font_header_table.cc',
-        'cpp/src/sfntly/table/core/font_header_table.h',
-        'cpp/src/sfntly/table/core/horizontal_device_metrics_table.cc',
-        'cpp/src/sfntly/table/core/horizontal_device_metrics_table.h',
-        'cpp/src/sfntly/table/core/horizontal_header_table.cc',
-        'cpp/src/sfntly/table/core/horizontal_header_table.h',
-        'cpp/src/sfntly/table/core/horizontal_metrics_table.cc',
-        'cpp/src/sfntly/table/core/horizontal_metrics_table.h',
-        'cpp/src/sfntly/table/core/maximum_profile_table.cc',
-        'cpp/src/sfntly/table/core/maximum_profile_table.h',
-        'cpp/src/sfntly/table/core/name_table.cc',
-        'cpp/src/sfntly/table/core/name_table.h',
-        'cpp/src/sfntly/table/core/os2_table.cc',
-        'cpp/src/sfntly/table/core/os2_table.h',
-        'cpp/src/sfntly/table/font_data_table.cc',
-        'cpp/src/sfntly/table/font_data_table.h',
-        'cpp/src/sfntly/table/generic_table_builder.cc',
-        'cpp/src/sfntly/table/generic_table_builder.h',
-        'cpp/src/sfntly/table/header.cc',
-        'cpp/src/sfntly/table/header.h',
-        'cpp/src/sfntly/table/subtable.cc',
-        'cpp/src/sfntly/table/subtable.h',
-        'cpp/src/sfntly/table/subtable_container_table.h',
-        'cpp/src/sfntly/table/table.cc',
-        'cpp/src/sfntly/table/table.h',
-        'cpp/src/sfntly/table/table_based_table_builder.cc',
-        'cpp/src/sfntly/table/table_based_table_builder.h',
-        'cpp/src/sfntly/table/truetype/glyph_table.cc',
-        'cpp/src/sfntly/table/truetype/glyph_table.h',
-        'cpp/src/sfntly/table/truetype/loca_table.cc',
-        'cpp/src/sfntly/table/truetype/loca_table.h',
-        'cpp/src/sfntly/tag.cc',
-        'cpp/src/sfntly/tag.h',
-        'cpp/src/sample/chromium/font_subsetter.cc',
-        'cpp/src/sample/chromium/font_subsetter.h',
-        'cpp/src/sample/chromium/subsetter_impl.cc',
-        'cpp/src/sample/chromium/subsetter_impl.h',
-      ],
-      'include_dirs': [
-        'cpp/src', '../..',
-      ],
-      # This macro must be define to suppress the use of exception
-      'defines': [
-        'SFNTLY_NO_EXCEPTION',
-      ],
-      'dependencies' : [
-        '../icu/icu.gyp:icuuc',
-      ],
-      # TODO(jschuh): http://crbug.com/167187
-      'msvs_disabled_warnings': [ 4267 ],
-    },
-  ]
-}
diff --git a/third_party/smhasher/smhasher.gyp b/third_party/smhasher/smhasher.gyp
deleted file mode 100644
index cad864e..0000000
--- a/third_party/smhasher/smhasher.gyp
+++ /dev/null
@@ -1,36 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'murmurhash3',
-      'type': 'static_library',
-      'sources': [
-        'src/MurmurHash3.h',
-        'src/MurmurHash3.cpp',
-      ],
-    },
-    {
-      'target_name': 'pmurhash',
-      'type': 'static_library',
-      'sources': [
-        'src/PMurHash.h',
-        'src/PMurHash.c',
-      ],
-    },
-    {
-      'target_name': 'cityhash',
-      'type': 'static_library',
-      'sources': [
-        'src/City.cpp',
-        'src/City.h',
-      ],
-      # TODO(jschuh): http://code.google.com/p/smhasher/issues/detail?id=19
-      'msvs_disabled_warnings': [
-        4267,
-      ],
-    },
-  ],
-}
diff --git a/third_party/snappy/snappy.gyp b/third_party/snappy/snappy.gyp
deleted file mode 100644
index ac0186f..0000000
--- a/third_party/snappy/snappy.gyp
+++ /dev/null
@@ -1,99 +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.
-
-{
-'variables': {
-    'conditions': [
-      # Define an "os_include" variable that points at the OS-specific generated
-      # headers.  These were generated by running the configure script offline.
-      ['os_posix == 1 and OS != "mac"', {
-        'os_include': 'linux'
-      }],
-      ['OS=="mac"', {'os_include': 'mac'}],
-      ['OS=="win"', {'os_include': 'win32'}],
-    ],
-    'use_system_libxml%': 0,
-  },
-  'targets': [
-    {
-      'target_name': 'snappy',
-      'type': 'static_library',
-      'include_dirs': [
-        '<(os_include)',
-        'src',
-        '../..',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '<(os_include)',
-          'src',
-        ],
-      },
-      'variables': {
-        'clang_warning_flags_unset': [
-          # snappy-stubs-internal.h unapologetically has: using namespace std
-          # https://code.google.com/p/snappy/issues/detail?id=70
-          '-Wheader-hygiene',
-        ],
-      },
-      'sources': [
-        'src/snappy-internal.h',
-        'src/snappy-sinksource.cc',
-        'src/snappy-sinksource.h',
-        'src/snappy-stubs-internal.cc',
-        'src/snappy-stubs-internal.h',
-        'src/snappy.cc',
-        'src/snappy.h',
-      ],
-      'conditions': [
-        ['OS=="linux" or OS=="mac"', {
-          'defines': [
-            # TODO(tfarina): Only Mac and Linux has the generated config.h for
-            # now. Generate the config.h for Windows too and enable this there
-            # as well.
-            'HAVE_CONFIG_H=1',
-          ],
-        }],
-        ['OS=="win"', {
-          # Signed/unsigned comparison
-          'msvs_disabled_warnings': [
-            # https://code.google.com/p/snappy/issues/detail?id=71
-            4018,
-            # https://code.google.com/p/snappy/issues/detail?id=75
-            4267,
-          ],
-        }],
-      ],
-    },
-    {
-      'target_name': 'snappy_unittest',
-      'type': 'executable',
-      'sources': [
-        'src/snappy-test.cc',
-        'src/snappy-test.h',
-        'src/snappy_unittest.cc',
-      ],
-      'dependencies': [
-        'snappy',
-        '../../base/base.gyp:base',
-        '../../testing/gtest.gyp:gtest',
-        '../../third_party/zlib/zlib.gyp:zlib',
-      ],
-      'variables': {
-        'clang_warning_flags': [ '-Wno-return-type' ],
-        'clang_warning_flags_unset': [ '-Wheader-hygiene' ],
-      },
-      'conditions': [
-        ['OS=="linux" or OS=="mac"', {
-          'defines': [
-            # TODO(tfarina): Only Mac and Linux has the generated config.h for
-            # now. Generate the config.h for Windows too and enable this there
-            # as well.
-            'HAVE_CONFIG_H=1',
-          ],
-        }],
-      ],
-    },
-  ],
-}
diff --git a/third_party/yasm/yasm.gyp b/third_party/yasm/yasm.gyp
deleted file mode 100644
index 6a5e692..0000000
--- a/third_party/yasm/yasm.gyp
+++ /dev/null
@@ -1,581 +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.
-
-# The yasm build process creates a slew of small C subprograms that
-# dynamically generate files at various point in the build process.  This makes
-# the build integration moderately complex.
-#
-# There are three classes of dynamically generated files:
-#   1) C source files that should be included in the build (eg., lc3bid.c)
-#   2) C source files that are #included by static C sources (eg., license.c)
-#   3) Intermediate files that are used as input by other subprograms to
-#      further generate files in category #1 or #2.  (eg., version.mac)
-#
-# This structure is represented with the following targets:
-#   1) yasm -- Sources, flags for the main yasm executable. Also has most of
-#              of the actions and rules that invoke the subprograms.
-#   2) config_sources -- Checked in version of files generated by manually
-#                        running configure that are used by all binaries.
-#   3) generate_files -- Actions and rules for files of type #3.
-#   4) genperf_libs -- Object files shared between yasm and the genperf
-#                      subprogram.
-#   5) genmacro, genmodule, etc. -- One executable target for each subprogram.
-#
-# You will notice that a lot of the action targets seem very similar --
-# especially for genmacro invocations. This makes it seem like they should
-# be a rule. The problem is that the correct invocation cannot be inferred
-# purely from the file name, or extension.  Nor is it obvious whether the
-# output should be processed as a source or not.  Thus, we are left with a
-# large amount of repetitive code.
-
-{
-  'variables': {
-    'yasm_include_dirs': [
-      'source/config/<(OS)',
-      'source/patched-yasm',
-    ],
-
-    # The cflags used by any target that will be directly linked into yasm.
-    # These are specifically not used when building the subprograms.  While
-    # it would probably be safe to use these flags there as well, the
-    # ./configure based build does not use the same flags between the main
-    # yasm executable, and its subprograms.
-    'yasm_defines': ['HAVE_CONFIG_H'],
-    'yasm_cflags': [
-      '-std=gnu99',
-      '-ansi',
-      '-pedantic',
-    ],
-
-    # Locations for various generated artifacts.
-    'shared_generated_dir': '<(SHARED_INTERMEDIATE_DIR)/third_party/yasm',
-    'generated_dir': '<(INTERMEDIATE_DIR)/third_party/yasm',
-
-    # Various files referenced by multiple targets.
-    'version_file': 'version.mac',  # Generated by genversion.
-    'genmodule_source': 'genmodule_outfile.c',
-  },
-  'target_defaults': {
-    # Silence warnings in libc++ builds (C code doesn't need this flag).
-    'ldflags!': [ '-stdlib=libc++', ],
-  },
-  'targets': [
-    {
-      'target_name': 'yasm',
-      'type': 'executable',
-      'toolsets': ['host'],
-      'dependencies': [
-        'config_sources',
-        'genmacro',
-        'genmodule',
-        'genperf',
-        'genperf_libs',
-        'generate_files',  # Needed to generate gperf and instruction files.
-        'genstring',
-        're2c',
-      ],
-      'variables': {
-        'clang_warning_flags': [
-          # yasm passes a `const elf_machine_sym*` through `void*`.
-          '-Wno-incompatible-pointer-types',
-        ],
-      },
-      'conditions': [
-        ['OS=="win"', {
-          # As of VS 2013 Update 3, building this project with /analyze hits an
-          # internal compiler error on elf-x86-amd64.c in release builds with
-          # the amd64_x86 compiler. This halts the build and prevents subsequent
-          # analysis. Therefore, /analyze is disabled for this project. See this
-          # bug for details:
-          # https://connect.microsoft.com/VisualStudio/feedback/details/1014799/internal-compiler-error-when-using-analyze
-          'msvs_settings': {
-            'VCCLCompilerTool': {
-              'AdditionalOptions!': [ '/analyze' ]
-            },
-          },
-        }],
-      ],
-      'sources': [
-         'source/patched-yasm/frontends/yasm/yasm-options.c',
-         'source/patched-yasm/frontends/yasm/yasm.c',
-         'source/patched-yasm/libyasm/assocdat.c',
-         'source/patched-yasm/libyasm/bc-align.c',
-         'source/patched-yasm/libyasm/bc-data.c',
-         'source/patched-yasm/libyasm/bc-incbin.c',
-         'source/patched-yasm/libyasm/bc-org.c',
-         'source/patched-yasm/libyasm/bc-reserve.c',
-         'source/patched-yasm/libyasm/bitvect.c',
-         'source/patched-yasm/libyasm/bytecode.c',
-         'source/patched-yasm/libyasm/errwarn.c',
-         'source/patched-yasm/libyasm/expr.c',
-         'source/patched-yasm/libyasm/file.c',
-         'source/patched-yasm/libyasm/floatnum.c',
-         'source/patched-yasm/libyasm/hamt.c',
-         'source/patched-yasm/libyasm/insn.c',
-         'source/patched-yasm/libyasm/intnum.c',
-         'source/patched-yasm/libyasm/inttree.c',
-         'source/patched-yasm/libyasm/linemap.c',
-         'source/patched-yasm/libyasm/md5.c',
-         'source/patched-yasm/libyasm/mergesort.c',
-         'source/patched-yasm/libyasm/section.c',
-         'source/patched-yasm/libyasm/strcasecmp.c',
-         'source/patched-yasm/libyasm/strsep.c',
-         'source/patched-yasm/libyasm/symrec.c',
-         'source/patched-yasm/libyasm/valparam.c',
-         'source/patched-yasm/libyasm/value.c',
-         'source/patched-yasm/modules/arch/lc3b/lc3barch.c',
-         'source/patched-yasm/modules/arch/lc3b/lc3bbc.c',
-         'source/patched-yasm/modules/arch/x86/x86arch.c',
-         'source/patched-yasm/modules/arch/x86/x86bc.c',
-         'source/patched-yasm/modules/arch/x86/x86expr.c',
-         'source/patched-yasm/modules/arch/x86/x86id.c',
-         'source/patched-yasm/modules/dbgfmts/codeview/cv-dbgfmt.c',
-         'source/patched-yasm/modules/dbgfmts/codeview/cv-symline.c',
-         'source/patched-yasm/modules/dbgfmts/codeview/cv-type.c',
-         'source/patched-yasm/modules/dbgfmts/dwarf2/dwarf2-aranges.c',
-         'source/patched-yasm/modules/dbgfmts/dwarf2/dwarf2-dbgfmt.c',
-         'source/patched-yasm/modules/dbgfmts/dwarf2/dwarf2-info.c',
-         'source/patched-yasm/modules/dbgfmts/dwarf2/dwarf2-line.c',
-         'source/patched-yasm/modules/dbgfmts/null/null-dbgfmt.c',
-         'source/patched-yasm/modules/dbgfmts/stabs/stabs-dbgfmt.c',
-         'source/patched-yasm/modules/listfmts/nasm/nasm-listfmt.c',
-         'source/patched-yasm/modules/objfmts/bin/bin-objfmt.c',
-         'source/patched-yasm/modules/objfmts/coff/coff-objfmt.c',
-         'source/patched-yasm/modules/objfmts/coff/win64-except.c',
-         'source/patched-yasm/modules/objfmts/dbg/dbg-objfmt.c',
-         'source/patched-yasm/modules/objfmts/elf/elf-objfmt.c',
-         'source/patched-yasm/modules/objfmts/elf/elf-x86-amd64.c',
-         'source/patched-yasm/modules/objfmts/elf/elf-x86-x86.c',
-         'source/patched-yasm/modules/objfmts/elf/elf.c',
-         'source/patched-yasm/modules/objfmts/macho/macho-objfmt.c',
-         'source/patched-yasm/modules/objfmts/rdf/rdf-objfmt.c',
-         'source/patched-yasm/modules/objfmts/xdf/xdf-objfmt.c',
-         'source/patched-yasm/modules/parsers/gas/gas-parse.c',
-         'source/patched-yasm/modules/parsers/gas/gas-parse-intel.c',
-         'source/patched-yasm/modules/parsers/gas/gas-parser.c',
-         'source/patched-yasm/modules/parsers/nasm/nasm-parse.c',
-         'source/patched-yasm/modules/parsers/nasm/nasm-parser.c',
-         'source/patched-yasm/modules/preprocs/cpp/cpp-preproc.c',
-         'source/patched-yasm/modules/preprocs/nasm/nasm-eval.c',
-         'source/patched-yasm/modules/preprocs/nasm/nasm-pp.c',
-         'source/patched-yasm/modules/preprocs/nasm/nasm-preproc.c',
-         'source/patched-yasm/modules/preprocs/nasm/nasmlib.c',
-         'source/patched-yasm/modules/preprocs/raw/raw-preproc.c',
-
-         # Sources needed by re2c.
-         'source/patched-yasm/modules/parsers/gas/gas-token.re',
-         'source/patched-yasm/modules/parsers/nasm/nasm-token.re',
-
-         # Sources needed by genperf. Make sure the generated gperf files
-         # (the ones in shared_generated_dir) are synced with the outputs
-         # for the related generate_*_insn actions in the generate_files
-         # target below.
-         '<(shared_generated_dir)/x86insn_nasm.gperf',
-         '<(shared_generated_dir)/x86insn_gas.gperf',
-         '<(shared_generated_dir)/x86cpu.c',
-         '<(shared_generated_dir)/x86regtmod.c',
-      ],
-      'include_dirs': [
-        '<@(yasm_include_dirs)',
-        '<(shared_generated_dir)',
-        '<(generated_dir)',
-      ],
-      'defines': [ '<@(yasm_defines)' ],
-      'cflags': [ '<@(yasm_cflags)', ],
-      'msvs_disabled_warnings': [ 4267 ],
-      'rules': [
-        {
-          'rule_name': 'generate_gperf',
-          'extension': 'gperf',
-          'inputs': [ '<(PRODUCT_DIR)/'
-                      '<(EXECUTABLE_PREFIX)genperf<(EXECUTABLE_SUFFIX)' ],
-          'outputs': [
-            '<(generated_dir)/<(RULE_INPUT_ROOT).c',
-          ],
-          'action': ['<(PRODUCT_DIR)/genperf',
-                     '<(RULE_INPUT_PATH)',
-                     '<(generated_dir)/<(RULE_INPUT_ROOT).c',
-          ],
-          # These files are #included, so do not treat them as sources.
-          'process_outputs_as_sources': 0,
-          'message': 'yasm gperf for <(RULE_INPUT_PATH)',
-        },
-        {
-          'rule_name': 'generate_re2c',
-          'extension': 're',
-          'inputs': [ '<(PRODUCT_DIR)/'
-                      '<(EXECUTABLE_PREFIX)re2c<(EXECUTABLE_SUFFIX)' ],
-          'outputs': [ '<(generated_dir)/<(RULE_INPUT_ROOT).c', ],
-          'action': [
-            '<(PRODUCT_DIR)/re2c',
-            '-b',
-            '-o',
-            '<(generated_dir)/<(RULE_INPUT_ROOT).c',
-            '<(RULE_INPUT_PATH)',
-          ],
-          'process_outputs_as_sources': 1,
-          'message': 'yasm re2c for <(RULE_INPUT_PATH)',
-        },
-      ],
-      'actions': [
-        ###
-        ###  genmacro calls.
-        ###
-        {
-          'action_name': 'generate_nasm_macros',
-          'variables': {
-            'infile': 'source/patched-yasm/modules/parsers/nasm/nasm-std.mac',
-            'varname': 'nasm_standard_mac',
-            'outfile': '<(generated_dir)/nasm-macros.c',
-          },
-          'inputs': [ '<(PRODUCT_DIR)/'
-                      '<(EXECUTABLE_PREFIX)genmacro<(EXECUTABLE_SUFFIX)',
-                      '<(infile)', ],
-          'outputs': [ '<(outfile)', ],
-          'action': ['<(PRODUCT_DIR)/genmacro',
-                     '<(outfile)', '<(varname)', '<(infile)', ],
-           # Not a direct source because this is #included by
-           #   source/patched-yasm/modules/parsers/nasm/nasm-parser.c
-          'process_outputs_as_sources': 1,
-          'message': 'yasm genmacro for <(infile)',
-        },
-        {
-          'action_name': 'generate_nasm_version',
-          'variables': {
-            'infile': '<(shared_generated_dir)/<(version_file)',
-            'varname': 'nasm_version_mac',
-            'outfile': '<(generated_dir)/nasm-version.c',
-          },
-          'inputs': [ '<(PRODUCT_DIR)/'
-                      '<(EXECUTABLE_PREFIX)genmacro<(EXECUTABLE_SUFFIX)',
-                      '<(infile)', ],
-          'outputs': [ '<(outfile)', ],
-          'action': ['<(PRODUCT_DIR)/genmacro',
-                     '<(outfile)', '<(varname)', '<(infile)',
-          ],
-           # Not a direct source because this is #included by
-           #   source/patched-yasm/modules/preprocs/nasm/nasm-preproc.c
-          'process_outputs_as_sources': 0,
-          'message': 'yasm genmacro for <(infile)',
-        },
-        {
-          'action_name': 'generate_win64_gas',
-          'variables': {
-            'infile': 'source/patched-yasm/modules/objfmts/coff/win64-gas.mac',
-            'varname': 'win64_gas_stdmac',
-            'outfile': '<(generated_dir)/win64-gas.c',
-          },
-          'inputs': [ '<(PRODUCT_DIR)/'
-                      '<(EXECUTABLE_PREFIX)genmacro<(EXECUTABLE_SUFFIX)',
-                      '<(infile)', ],
-          'outputs': [ '<(outfile)', ],
-          'action': ['<(PRODUCT_DIR)/genmacro',
-                     '<(outfile)', '<(varname)', '<(infile)',
-          ],
-           # Not a direct source because this is #included by
-           #   source/patched-yasm/modules/objfmts/coff/coff-objfmt.c
-          'process_outputs_as_sources': 0,
-          'message': 'yasm genmacro for <(infile)',
-        },
-        {
-          'action_name': 'generate_win64_nasm',
-          'variables': {
-            'infile': 'source/patched-yasm/modules/objfmts/coff/win64-nasm.mac',
-            'varname': 'win64_nasm_stdmac',
-            'outfile': '<(generated_dir)/win64-nasm.c',
-          },
-          'inputs': [ '<(PRODUCT_DIR)/'
-                      '<(EXECUTABLE_PREFIX)genmacro<(EXECUTABLE_SUFFIX)',
-                      '<(infile)', ],
-          'outputs': [ '<(outfile)', ],
-          'action': ['<(PRODUCT_DIR)/genmacro',
-                     '<(outfile)',
-                     '<(varname)',
-                     '<(infile)',
-          ],
-           # Not a direct source because this is #included by
-           #   source/patched-yasm/modules/objfmts/coff/coff-objfmt.c
-          'process_outputs_as_sources': 0,
-          'message': 'yasm genmacro for <(infile)',
-        },
-
-        ###
-        ###  genstring call.
-        ###
-        {
-          'action_name': 'generate_license',
-          'variables': {
-            'infile': 'source/patched-yasm/COPYING',
-            'varname': 'license_msg',
-            'outfile': '<(generated_dir)/license.c',
-          },
-          'inputs': [ '<(PRODUCT_DIR)/'
-                      '<(EXECUTABLE_PREFIX)genstring<(EXECUTABLE_SUFFIX)',
-                      '<(infile)', ],
-          'outputs': [ '<(outfile)', ],
-          'action': ['<(PRODUCT_DIR)/genstring',
-                     '<(varname)',
-                     '<(outfile)',
-                     '<(infile)',
-          ],
-          # Not a direct source because this is #included by
-          #   source/patched-yasm/frontends/yasm/yasm.c
-          'process_outputs_as_sources': 0,
-          'message': 'Generating yasm embeddable license',
-        },
-
-        ###
-        ###  A re2c call that doesn't fit into the rule below.
-        ###
-        {
-          'action_name': 'generate_lc3b_token',
-          'variables': {
-            'infile': 'source/patched-yasm/modules/arch/lc3b/lc3bid.re',
-            # The license file is #included by yasm.c.
-            'outfile': '<(generated_dir)/lc3bid.c',
-          },
-          'inputs': [ '<(PRODUCT_DIR)/'
-                      '<(EXECUTABLE_PREFIX)re2c<(EXECUTABLE_SUFFIX)',
-                      '<(infile)', ],
-          'outputs': [ '<(outfile)', ],
-          'action': [
-            '<(PRODUCT_DIR)/re2c',
-            '-s',
-            '-o', '<(outfile)',
-            '<(infile)'
-          ],
-          'process_outputs_as_sources': 1,
-          'message': 'Generating yasm tokens for lc3b',
-        },
-
-        ###
-        ###  genmodule call.
-        ###
-        {
-          'action_name': 'generate_module',
-          'variables': {
-            'makefile': 'source/config/<(OS)/Makefile',
-            'module_in': 'source/patched-yasm/libyasm/module.in',
-            'outfile': '<(generated_dir)/module.c',
-          },
-          'inputs': [
-            '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)genmodule<(EXECUTABLE_SUFFIX)',
-            '<(module_in)',
-            '<(makefile)'
-          ],
-          'outputs': [ '<(generated_dir)/module.c' ],
-          'action': [
-            '<(PRODUCT_DIR)/genmodule',
-            '<(module_in)',
-            '<(makefile)',
-            '<(outfile)'
-          ],
-          'process_outputs_as_sources': 1,
-          'message': 'Generating yasm module information',
-        },
-      ],
-    },
-    {
-      'target_name': 'config_sources',
-      'type': 'none',
-      'toolsets': ['host'],
-      'sources': [
-        'source/config/<(OS)/Makefile',
-        'source/config/<(OS)/config.h',
-        'source/config/<(OS)/libyasm-stdint.h',
-      ],
-    },
-    {
-      'target_name': 'generate_files',
-      'type': 'none',
-      'toolsets': ['host'],
-      'dependencies': [
-        'genperf',
-        'genversion',
-      ],
-      'sources': [
-         'source/patched-yasm/modules/arch/x86/x86cpu.gperf',
-         'source/patched-yasm/modules/arch/x86/x86regtmod.gperf',
-      ],
-      'rules': [
-        {
-          'rule_name': 'generate_gperf',
-          'extension': 'gperf',
-          'inputs': [ '<(PRODUCT_DIR)/'
-                      '<(EXECUTABLE_PREFIX)genperf<(EXECUTABLE_SUFFIX)' ],
-          'outputs': [ '<(shared_generated_dir)/<(RULE_INPUT_ROOT).c', ],
-          'action': [
-            '<(PRODUCT_DIR)/genperf',
-            '<(RULE_INPUT_PATH)',
-            '<(shared_generated_dir)/<(RULE_INPUT_ROOT).c',
-          ],
-          'process_outputs_as_sources': 0,
-          'message': 'yasm genperf for <(RULE_INPUT_PATH)',
-        },
-      ],
-      'actions': [
-        {
-          'action_name': 'generate_x86_insn',
-          'variables': {
-            'gen_insn_path':
-                'source/patched-yasm/modules/arch/x86/gen_x86_insn.py',
-          },
-          'inputs': [ '<(gen_insn_path)', ],
-          'outputs': [
-            '<(shared_generated_dir)/x86insns.c',
-            '<(shared_generated_dir)/x86insn_gas.gperf',
-            '<(shared_generated_dir)/x86insn_nasm.gperf',
-          ],
-          'action': [
-            'python',
-            '<(gen_insn_path)',
-            '<(shared_generated_dir)',
-          ],
-          'message': 'Running <(gen_insn_path)',
-          'process_outputs_as_sources': 0,
-        },
-        {
-          'action_name': 'generate_version',
-          'inputs': [ '<(PRODUCT_DIR)/'
-                      '<(EXECUTABLE_PREFIX)genversion<(EXECUTABLE_SUFFIX)' ],
-          'outputs': [ '<(shared_generated_dir)/<(version_file)', ],
-          'action': [
-            '<(PRODUCT_DIR)/genversion',
-            '<(shared_generated_dir)/<(version_file)'
-          ],
-          'message': 'Generating yasm version file: '
-                     '<(shared_generated_dir)/<(version_file)',
-          'process_outputs_as_sources': 0,
-        },
-      ],
-    },
-    {
-      'target_name': 'genperf_libs',
-      'type': 'static_library',
-      'toolsets': ['host'],
-      'dependencies': [ 'config_sources', ],
-      'sources': [
-         'source/patched-yasm/libyasm/phash.c',
-         'source/patched-yasm/libyasm/xmalloc.c',
-         'source/patched-yasm/libyasm/xstrdup.c',
-      ],
-      'include_dirs': [
-        '<@(yasm_include_dirs)',
-      ],
-      'defines': [ '<@(yasm_defines)' ],
-      'cflags': [
-        '<@(yasm_cflags)',
-      ],
-    },
-    {
-      'target_name': 'genstring',
-      'type': 'executable',
-      'toolsets': ['host'],
-      'dependencies': [ 'config_sources', ],
-      'sources': [
-         'source/patched-yasm/genstring.c',
-      ],
-      'include_dirs': [
-        '<@(yasm_include_dirs)',
-      ],
-      'cflags': [
-        '-std=gnu99',
-      ],
-    },
-    {
-      'target_name': 'genperf',
-      'type': 'executable',
-      'toolsets': ['host'],
-      'dependencies': [
-        'genperf_libs',
-      ],
-      'sources': [
-         'source/patched-yasm/tools/genperf/genperf.c',
-         'source/patched-yasm/tools/genperf/perfect.c',
-      ],
-      'include_dirs': [
-        '<@(yasm_include_dirs)',
-      ],
-      'cflags': [
-        '-std=gnu99',
-      ],
-    },
-    {
-      'target_name': 'genmacro',
-      'type': 'executable',
-      'toolsets': ['host'],
-      'dependencies': [ 'config_sources', ],
-      'sources': [
-        'source/patched-yasm/tools/genmacro/genmacro.c',
-      ],
-      'include_dirs': [
-        '<@(yasm_include_dirs)',
-      ],
-      'cflags': [
-        '-std=gnu99',
-      ],
-    },
-    {
-      'target_name': 'genversion',
-      'type': 'executable',
-      'toolsets': ['host'],
-      'dependencies': [ 'config_sources', ],
-      'sources': [
-         'source/patched-yasm/modules/preprocs/nasm/genversion.c',
-      ],
-      'include_dirs': [
-        '<@(yasm_include_dirs)',
-      ],
-      'cflags': [
-        '-std=gnu99',
-      ],
-    },
-    {
-      'target_name': 're2c',
-      'type': 'executable',
-      'toolsets': ['host'],
-      'dependencies': [ 'config_sources', ],
-      'sources': [
-         'source/patched-yasm/tools/re2c/main.c',
-         'source/patched-yasm/tools/re2c/code.c',
-         'source/patched-yasm/tools/re2c/dfa.c',
-         'source/patched-yasm/tools/re2c/parser.c',
-         'source/patched-yasm/tools/re2c/actions.c',
-         'source/patched-yasm/tools/re2c/scanner.c',
-         'source/patched-yasm/tools/re2c/mbo_getopt.c',
-         'source/patched-yasm/tools/re2c/substr.c',
-         'source/patched-yasm/tools/re2c/translate.c',
-      ],
-      'include_dirs': [
-        '<@(yasm_include_dirs)',
-      ],
-      'cflags': [
-        '-std=gnu99',
-      ],
-      'variables': {
-          # re2c is missing CLOSEVOP from one switch.
-        'clang_warning_flags': [ '-Wno-switch' ],
-      },
-      'msvs_disabled_warnings': [ 4267 ],
-    },
-    {
-      'target_name': 'genmodule',
-      'type': 'executable',
-      'toolsets': ['host'],
-      'dependencies': [
-        'config_sources',
-      ],
-      'sources': [
-        'source/patched-yasm/libyasm/genmodule.c',
-      ],
-      'include_dirs': [
-        '<@(yasm_include_dirs)',
-
-      ],
-      'cflags': [
-        '-std=gnu99',
-      ],
-    },
-  ],
-}
diff --git a/third_party/yasm/yasm_compile.gypi b/third_party/yasm/yasm_compile.gypi
deleted file mode 100644
index 75b8705..0000000
--- a/third_party/yasm/yasm_compile.gypi
+++ /dev/null
@@ -1,119 +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 is an gyp include to use YASM for compiling assembly files.
-#
-# Files to be compiled with YASM should have an extension of .asm.
-#
-# There are three variables for this include:
-# yasm_flags : Pass additional flags into YASM.
-# yasm_output_path : Output directory for the compiled object files.
-# yasm_includes : Includes used by .asm code.  Changes to which should force
-#                 recompilation.
-#
-# Sample usage:
-# 'sources': [
-#   'ultra_optimized_awesome.asm',
-# ],
-# 'variables': {
-#   'yasm_flags': [
-#     '-I', 'assembly_include',
-#   ],
-#   'yasm_output_path': '<(SHARED_INTERMEDIATE_DIR)/project',
-#   'yasm_includes': ['ultra_optimized_awesome.inc']
-# },
-# 'includes': [
-#   'third_party/yasm/yasm_compile.gypi'
-# ],
-
-{
-  'variables': {
-    'yasm_flags': [],
-    'yasm_includes': [],
-
-    'conditions': [
-      [ 'use_system_yasm==0', {
-        'yasm_path': '<(PRODUCT_DIR)/yasm<(EXECUTABLE_SUFFIX)',
-      }, {
-        'yasm_path': '<!(which yasm)',
-      }],
-
-      # Define yasm_flags that pass into YASM.
-      [ 'os_posix==1 and OS!="mac" and OS!="ios" and target_arch=="ia32"', {
-        'yasm_flags': [
-          '-felf32',
-          '-m', 'x86',
-        ],
-      }],
-      [ 'os_posix==1 and OS!="mac" and OS!="ios" and target_arch=="x64"', {
-        'yasm_flags': [
-          '-DPIC',
-          '-felf64',
-          '-m', 'amd64',
-        ],
-      }],
-      [ '(OS=="mac" or OS=="ios") and target_arch=="ia32"', {
-        'yasm_flags': [
-          '-fmacho32',
-          '-m', 'x86',
-        ],
-      }],
-      [ '(OS=="mac" or OS=="ios") and target_arch=="x64"', {
-        'yasm_flags': [
-          '-fmacho64',
-          '-m', 'amd64',
-        ],
-      }],
-      [ 'OS=="win" and target_arch=="ia32"', {
-        'yasm_flags': [
-          '-DPREFIX',
-          '-fwin32',
-          '-m', 'x86',
-        ],
-      }],
-      [ 'OS=="win" and target_arch=="x64"', {
-        'yasm_flags': [
-          '-fwin64',
-          '-m', 'amd64',
-        ],
-      }],
-
-      # Define output extension.
-      ['OS=="win"', {
-        'asm_obj_extension': 'obj',
-      }, {
-        'asm_obj_extension': 'o',
-      }],
-    ],
-  },  # variables
-
-  'conditions': [
-    # Only depend on YASM on x86 systems, do this so that compiling
-    # .asm files for ARM will fail.
-    ['use_system_yasm==0 and ( target_arch=="ia32" or target_arch=="x64" )', {
-      'dependencies': [
-        '<(DEPTH)/third_party/yasm/yasm.gyp:yasm#host',
-      ],
-    }],
-  ],  # conditions
-
-  'rules': [
-    {
-      'rule_name': 'assemble',
-      'extension': 'asm',
-      'inputs': [ '<(yasm_path)', '<@(yasm_includes)'],
-      'outputs': [
-        '<(yasm_output_path)/<(RULE_INPUT_ROOT).<(asm_obj_extension)',
-      ],
-      'action': [
-        '<(yasm_path)',
-        '<@(yasm_flags)',
-        '-o', '<(yasm_output_path)/<(RULE_INPUT_ROOT).<(asm_obj_extension)',
-        '<(RULE_INPUT_PATH)',
-      ],
-      'process_outputs_as_sources': 1,
-      'message': 'Compile assembly <(RULE_INPUT_PATH)',
-    },
-  ],  # rules
-}
diff --git a/third_party/zlib/google/zip.gyp b/third_party/zlib/google/zip.gyp
deleted file mode 100644
index 9542f9c..0000000
--- a/third_party/zlib/google/zip.gyp
+++ /dev/null
@@ -1,27 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'zip',
-      'type': 'static_library',
-      'dependencies': [
-        '../zlib.gyp:minizip',
-        '../../../base/base.gyp:base',
-      ],
-      'include_dirs': [
-        '../../..',
-      ],
-      'sources': [
-        'zip.cc',
-        'zip.h',
-        'zip_internal.cc',
-        'zip_internal.h',
-        'zip_reader.cc',
-        'zip_reader.h',
-      ],
-    },
-  ],
-}
diff --git a/third_party/zlib/zlib.gyp b/third_party/zlib/zlib.gyp
deleted file mode 100644
index bb478ce..0000000
--- a/third_party/zlib/zlib.gyp
+++ /dev/null
@@ -1,143 +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.
-
-{
-  'targets': [
-    {
-      'target_name' : 'zlib_x86_simd',
-      'type': 'static_library',
-      'conditions': [
-        ['OS!="ios" and (target_arch=="ia32" or target_arch=="x64")', {
-          'cflags' : ['-msse4.2', '-mpclmul'],
-          'xcode_settings' : {
-             'OTHER_CFLAGS' : ['-msse4.2', '-mpclmul'],
-          },
-          'sources' : [
-            'crc_folding.c',
-            'fill_window_sse.c',
-          ],
-          'conditions': [
-            ['OS=="win" and clang==1', {
-              'msvs_settings': {
-                'VCCLCompilerTool': {
-                  'AdditionalOptions': [ '-msse4.2', '-mpclmul' ],
-                },
-              },
-            }],
-          ],
-        }, {
-          'sources' : [ 'simd_stub.c' ],
-        }],
-        ['OS=="android"', {
-          'toolsets': ['target', 'host'],
-        }],
-      ],
-    },
-    {
-      'target_name': 'zlib',
-      'type': 'static_library',
-      'sources': [
-        'adler32.c',
-        'compress.c',
-        'crc32.c',
-        'crc32.h',
-        'deflate.c',
-        'deflate.h',
-        'gzclose.c',
-        'gzguts.h',
-        'gzlib.c',
-        'gzread.c',
-        'gzwrite.c',
-        'infback.c',
-        'inffast.c',
-        'inffast.h',
-        'inffixed.h',
-        'inflate.c',
-        'inflate.h',
-        'inftrees.c',
-        'inftrees.h',
-        'mozzconf.h',
-        'trees.c',
-        'trees.h',
-        'uncompr.c',
-        'x86.h',
-        'zconf.h',
-        'zlib.h',
-        'zutil.c',
-        'zutil.h',
-      ],
-      'dependencies' : [
-        'zlib_x86_simd'
-      ],
-      'include_dirs': [
-        '.',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '.',
-        ],
-      },
-      'conditions': [
-        ['OS!="ios" and (target_arch=="ia32" or target_arch=="x64")', {
-          'sources' : [ 'x86.c', ],
-        }],
-        ['OS!="win"', {
-          'product_name': 'chrome_zlib',
-        }], ['OS=="android"', {
-          'toolsets': ['target', 'host'],
-        }],
-      ],
-    },
-    {
-      'target_name': 'minizip',
-      'type': 'static_library',
-      'sources': [
-        'contrib/minizip/ioapi.c',
-        'contrib/minizip/ioapi.h',
-        'contrib/minizip/iowin32.c',
-        'contrib/minizip/iowin32.h',
-        'contrib/minizip/unzip.c',
-        'contrib/minizip/unzip.h',
-        'contrib/minizip/zip.c',
-        'contrib/minizip/zip.h',
-      ],
-      'dependencies': [
-        'zlib',
-      ],
-      'include_dirs': [
-        '.',
-        '../..',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '.',
-        ],
-      },
-      'variables': {
-        'clang_warning_flags': [
-          # zlib uses `if ((a == b))` for some reason.
-          '-Wno-parentheses-equality',
-        ],
-      },
-      'conditions': [
-        ['OS!="win"', {
-          'sources!': [
-            'contrib/minizip/iowin32.c'
-          ],
-        }],
-        ['OS=="android"', {
-          'toolsets': ['target', 'host'],
-        }],
-        ['OS=="mac" or OS=="ios" or os_bsd==1 or OS=="android"', {
-          # Mac, Android and the BSDs don't have fopen64, ftello64, or
-          # fseeko64. We use fopen, ftell, and fseek instead on these
-          # systems.
-          'defines': [
-            'USE_FILE32API'
-          ],
-        }],
-      ],
-    },
-  ],
-}
diff --git a/tools/android/adb_reboot/adb_reboot.gyp b/tools/android/adb_reboot/adb_reboot.gyp
deleted file mode 100644
index 85134b9..0000000
--- a/tools/android/adb_reboot/adb_reboot.gyp
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright (c) 2013 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-{
-  'targets': [
-    {
-      'target_name': 'adb_reboot',
-      'type': 'executable',
-      'sources': [
-        'adb_reboot.c',
-      ],
-    },
-  ],
-}
diff --git a/tools/android/android_tools.gyp b/tools/android/android_tools.gyp
deleted file mode 100644
index 84de85c..0000000
--- a/tools/android/android_tools.gyp
+++ /dev/null
@@ -1,52 +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.
-
-{
-  'targets': [
-    # Intermediate target grouping the android tools needed to run native
-    # unittests and instrumentation test apks.
-    {
-      'target_name': 'android_tools',
-      'type': 'none',
-      'dependencies': [
-        'adb_reboot/adb_reboot.gyp:adb_reboot',
-        'file_poller/file_poller.gyp:file_poller',
-        'forwarder2/forwarder.gyp:forwarder2',
-        'md5sum/md5sum.gyp:md5sum',
-        'purge_ashmem/purge_ashmem.gyp:purge_ashmem',
-        'run_pie/run_pie.gyp:run_pie',
-        '../../tools/telemetry/telemetry.gyp:*#host',
-      ],
-    },
-    {
-      'target_name': 'heap_profiler',
-      'type': 'none',
-      'dependencies': [
-        'heap_profiler/heap_profiler.gyp:heap_dump',
-        'heap_profiler/heap_profiler.gyp:heap_profiler',
-      ],
-    },
-    {
-      'target_name': 'memdump',
-      'type': 'none',
-      'dependencies': [
-        'memdump/memdump.gyp:memdump',
-      ],
-    },
-    {
-      'target_name': 'memconsumer',
-      'type': 'none',
-      'dependencies': [
-        'memconsumer/memconsumer.gyp:memconsumer',
-      ],
-    },
-    {
-      'target_name': 'ps_ext',
-      'type': 'none',
-      'dependencies': [
-        'ps_ext/ps_ext.gyp:ps_ext',
-      ],
-    },
-  ],
-}
diff --git a/tools/android/common/common.gyp b/tools/android/common/common.gyp
deleted file mode 100644
index c86790c..0000000
--- a/tools/android/common/common.gyp
+++ /dev/null
@@ -1,30 +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.
-
-{
-  'variables': {
-    'chromium_code': 1,
-  },
-  'targets': [
-    {
-      # GN version: //tools/android/common
-      'target_name': 'android_tools_common',
-      'type': 'static_library',
-      'toolsets': ['host', 'target'],
-      'include_dirs': [
-        '..',
-        '../../..',
-      ],
-      'sources': [
-        'adb_connection.cc',
-        'adb_connection.h',
-        'daemon.cc',
-        'daemon.h',
-        'net.cc',
-        'net.h',
-      ],
-    },
-  ],
-}
-
diff --git a/tools/android/file_poller/file_poller.gyp b/tools/android/file_poller/file_poller.gyp
deleted file mode 100644
index 097344d..0000000
--- a/tools/android/file_poller/file_poller.gyp
+++ /dev/null
@@ -1,18 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'file_poller',
-      'type': 'executable',
-      'dependencies': [
-        '../../../base/base.gyp:base',
-      ],
-      'sources': [
-        'file_poller.cc',
-      ],
-    },
-  ],
-}
diff --git a/tools/android/findbugs_plugin/findbugs_plugin.gyp b/tools/android/findbugs_plugin/findbugs_plugin.gyp
deleted file mode 100644
index 440d779..0000000
--- a/tools/android/findbugs_plugin/findbugs_plugin.gyp
+++ /dev/null
@@ -1,17 +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.
-
-{
-   'targets': [
-      {
-         'target_name': 'findbugs_plugin_test',
-         'type': 'none',
-         'variables': {
-           'java_in_dir': 'test/java/',
-            'run_findbugs': 0,
-         },
-         'includes': [ '../../../build/java.gypi' ],
-      }
-   ]
-}
diff --git a/tools/android/forwarder/forwarder.gyp b/tools/android/forwarder/forwarder.gyp
deleted file mode 100644
index 1df518b..0000000
--- a/tools/android/forwarder/forwarder.gyp
+++ /dev/null
@@ -1,43 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'forwarder',
-      'type': 'none',
-      'dependencies': [
-        'forwarder_symbols',
-      ],
-      'actions': [
-        {
-          'action_name': 'strip_forwarder',
-          'inputs': ['<(PRODUCT_DIR)/forwarder_symbols'],
-          'outputs': ['<(PRODUCT_DIR)/forwarder'],
-          'action': [
-            '<(android_strip)',
-            '--strip-unneeded',
-            '<@(_inputs)',
-            '-o',
-            '<@(_outputs)',
-          ],
-        },
-      ],
-    }, {
-      'target_name': 'forwarder_symbols',
-      'type': 'executable',
-      'dependencies': [
-        '../../../base/base.gyp:base',
-        '../common/common.gyp:android_tools_common',
-      ],
-      'include_dirs': [
-        '../../..',
-      ],
-      'sources': [
-        'forwarder.cc',
-      ],
-    },
-  ],
-}
-
diff --git a/tools/android/forwarder2/forwarder.gyp b/tools/android/forwarder2/forwarder.gyp
deleted file mode 100644
index 54bf8b7..0000000
--- a/tools/android/forwarder2/forwarder.gyp
+++ /dev/null
@@ -1,77 +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.
-
-{
-  'variables': {
-    'chromium_code': 1,
-  },
-  'targets': [
-    {
-      # GN version: //tools/android/forwarder2
-      'target_name': 'forwarder2',
-      'type': 'none',
-      'dependencies': [
-        'device_forwarder',
-        'host_forwarder#host',
-      ],
-      # For the component build, ensure dependent shared libraries are stripped
-      # and put alongside forwarder to simplify pushing to the device.
-      'variables': {
-         'output_dir': '<(PRODUCT_DIR)/forwarder_dist/',
-         'native_binary': '<(PRODUCT_DIR)/device_forwarder',
-      },
-      'includes': ['../../../build/android/native_app_dependencies.gypi'],
-    },
-    {
-      # GN version: //tools/android/forwarder2:device_forwarder
-      'target_name': 'device_forwarder',
-      'type': 'executable',
-      'toolsets': ['target'],
-      'dependencies': [
-        '../../../base/base.gyp:base',
-        '../../../build/android/pylib/device/commands/commands.gyp:chromium_commands',
-        '../common/common.gyp:android_tools_common',
-      ],
-      'include_dirs': [
-        '../../..',
-      ],
-      'sources': [
-        'command.cc',
-        'common.cc',
-        'daemon.cc',
-        'device_controller.cc',
-        'device_forwarder_main.cc',
-        'device_listener.cc',
-        'forwarder.cc',
-        'forwarders_manager.cc',
-        'pipe_notifier.cc',
-        'socket.cc',
-      ],
-    },
-    {
-      # GN version: //tools/android/forwarder2:host_forwarder
-      'target_name': 'host_forwarder',
-      'type': 'executable',
-      'toolsets': ['host'],
-      'dependencies': [
-        '../../../base/base.gyp:base',
-        '../common/common.gyp:android_tools_common',
-      ],
-      'include_dirs': [
-        '../../..',
-      ],
-      'sources': [
-        'command.cc',
-        'common.cc',
-        'daemon.cc',
-        'forwarder.cc',
-        'forwarders_manager.cc',
-        'host_controller.cc',
-        'host_forwarder_main.cc',
-        'pipe_notifier.cc',
-        'socket.cc',
-      ],
-    },
-  ],
-}
diff --git a/tools/android/heap_profiler/heap_profiler.gyp b/tools/android/heap_profiler/heap_profiler.gyp
deleted file mode 100644
index 50e6797..0000000
--- a/tools/android/heap_profiler/heap_profiler.gyp
+++ /dev/null
@@ -1,75 +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.
-
-{
-  'targets': [
-    {
-      # libheap_profiler is the library that will be preloaded in the Android
-      # Zygote and contains the black magic to hook malloc/mmap calls.
-      'target_name': 'heap_profiler',
-      'type': 'shared_library',
-      'include_dirs': [ '../../..' ],
-      'sources': [ 'heap_profiler_hooks_android.c' ],
-      'dependencies': [ 'heap_profiler_core' ],
-    },
-    {
-      # heap_profiler_core contains only the tracking metadata code without any
-      # hooks. It is required by both the hprof library itself and the unittest.
-      'target_name': 'heap_profiler_core',
-      'type': 'static_library',
-      'sources': [
-        'heap_profiler.c',
-        'heap_profiler.h',
-      ],
-      'include_dirs': [ '../../..' ],
-    },
-    {
-      'target_name': 'heap_dump',
-      'type': 'executable',
-      'sources': [ 'heap_dump.c' ],
-      'include_dirs': [ '../../..' ],
-    },
-    {
-      'target_name': 'heap_profiler_unittests',
-      'type': '<(gtest_target_type)',
-      'sources': [ 'heap_profiler_unittest.cc' ],
-      'dependencies': [
-        'heap_profiler_core',
-        '../../../testing/android/native_test.gyp:native_test_native_code',
-        '../../../testing/gtest.gyp:gtest',
-        '../../../testing/gtest.gyp:gtest_main',
-      ],
-      'include_dirs': [ '../../..' ],
-    },
-    {
-      'target_name': 'heap_profiler_unittests_apk',
-      'type': 'none',
-      'dependencies': [
-        'heap_profiler_unittests',
-      ],
-      'variables': {
-        'test_suite_name': 'heap_profiler_unittests',
-      },
-      'includes': [ '../../../build/apk_test.gypi' ],
-    },
-    {
-      'target_name': 'heap_profiler_integrationtest',
-      'type': 'executable',
-      'sources': [ 'heap_profiler_integrationtest.cc' ],
-      'dependencies': [ '../../../testing/gtest.gyp:gtest' ],
-      'include_dirs': [ '../../..' ],
-    },
-    {
-      'target_name': 'heap_profiler_integrationtest_stripped',
-      'type': 'none',
-      'dependencies': [ 'heap_profiler_integrationtest' ],
-      'actions': [{
-        'action_name': 'strip heap_profiler_integrationtest',
-        'inputs': [ '<(PRODUCT_DIR)/heap_profiler_integrationtest' ],
-        'outputs': [ '<(PRODUCT_DIR)/heap_profiler_integrationtest_stripped' ],
-        'action': [ '<(android_strip)', '<@(_inputs)', '-o', '<@(_outputs)' ],
-      }],
-    },
-  ],
-}
diff --git a/tools/android/md5sum/md5sum.gyp b/tools/android/md5sum/md5sum.gyp
deleted file mode 100644
index 75d664e..0000000
--- a/tools/android/md5sum/md5sum.gyp
+++ /dev/null
@@ -1,81 +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.
-
-{
-  'targets': [
-    {
-      # GN: //tools/android/md5sum:md5sum
-      'target_name': 'md5sum',
-      'type': 'none',
-      'dependencies': [
-        'md5sum_stripped_device_bin',
-        'md5sum_bin_host#host',
-      ],
-      # For the component build, ensure dependent shared libraries are stripped
-      # and put alongside md5sum to simplify pushing to the device.
-      'variables': {
-         'output_dir': '<(PRODUCT_DIR)/md5sum_dist/',
-         'native_binary': '<(PRODUCT_DIR)/md5sum_bin',
-      },
-      'includes': ['../../../build/android/native_app_dependencies.gypi'],
-    },
-    {
-      # GN: //tools/android/md5sum:md5sum_bin($default_toolchain)
-      'target_name': 'md5sum_device_bin',
-      'type': 'executable',
-      'dependencies': [
-        '../../../base/base.gyp:base',
-      ],
-      'include_dirs': [
-        '../../..',
-      ],
-      'sources': [
-        'md5sum.cc',
-      ],
-      'conditions': [
-        [ 'order_profiling!=0 and OS=="android"', {
-            'dependencies': [ '../../../tools/cygprofile/cygprofile.gyp:cygprofile', ],
-        }],
-      ],
-    },
-    {
-      # GN: //tools/android/md5sum:md5sum_prepare_dist
-      'target_name': 'md5sum_stripped_device_bin',
-      'type': 'none',
-      'dependencies': [
-        'md5sum_device_bin',
-      ],
-      'actions': [
-        {
-          'action_name': 'strip_md5sum_device_bin',
-          'inputs': ['<(PRODUCT_DIR)/md5sum_device_bin'],
-          'outputs': ['<(PRODUCT_DIR)/md5sum_bin'],
-          'action': [
-            '<(android_strip)',
-            '--strip-unneeded',
-            '<@(_inputs)',
-            '-o',
-            '<@(_outputs)',
-          ],
-        },
-      ],
-    },
-    # Same binary but for the host rather than the device.
-    {
-      # GN: //tools/android/md5sum:md5sum_copy_host($default_toolchain)
-      'target_name': 'md5sum_bin_host',
-      'toolsets': ['host'],
-      'type': 'executable',
-      'dependencies': [
-        '../../../base/base.gyp:base',
-      ],
-      'include_dirs': [
-        '../../..',
-      ],
-      'sources': [
-        'md5sum.cc',
-      ],
-    },
-  ],
-}
diff --git a/tools/android/memconsumer/memconsumer.gyp b/tools/android/memconsumer/memconsumer.gyp
deleted file mode 100644
index b0e2517..0000000
--- a/tools/android/memconsumer/memconsumer.gyp
+++ /dev/null
@@ -1,44 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'memconsumer',
-      'type': 'none',
-      'dependencies': [
-        'memconsumer_apk',
-      ],
-    },
-    {
-      'target_name': 'memconsumer_apk',
-      'type': 'none',
-      'variables': {
-        'apk_name': 'MemConsumer',
-        'java_in_dir': 'java',
-        'resource_dir': 'java/res',
-        'native_lib_target': 'libmemconsumer',
-      },
-      'dependencies': [
-        'libmemconsumer',
-      ],
-      'includes': [ '../../../build/java_apk.gypi' ],
-    },
-    {
-      'target_name': 'libmemconsumer',
-      'type': 'shared_library',
-      'variables': {
-        # This library uses native JNI exports; tell gyp so that the required
-        # symbols will be kept.
-        'use_native_jni_exports': 1,
-      },
-      'sources': [
-        'memconsumer_hook.cc',
-      ],
-      'libraries': [
-        '-llog',
-      ],
-    },
-  ],
-}
diff --git a/tools/android/memdump/memdump.gyp b/tools/android/memdump/memdump.gyp
deleted file mode 100644
index f47cedf..0000000
--- a/tools/android/memdump/memdump.gyp
+++ /dev/null
@@ -1,39 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'memdump-unstripped',
-      'type': 'executable',
-      'dependencies': [
-        '../../../base/base.gyp:base',
-      ],
-      'sources': [
-        'memdump.cc',
-      ],
-    },
-    {
-      'target_name': 'memdump',
-      'type': 'none',
-      'dependencies': [
-        'memdump-unstripped',
-      ],
-      'actions': [
-        {
-          'action_name': 'strip_memdump',
-          'inputs': ['<(PRODUCT_DIR)/memdump-unstripped'],
-          'outputs': ['<(PRODUCT_DIR)/memdump'],
-          'action': [
-            '<(android_strip)',
-            '--strip-unneeded',
-            '<@(_inputs)',
-            '-o',
-            '<@(_outputs)',
-          ],
-        },
-      ],
-    },
-  ],
-}
diff --git a/tools/android/ps_ext/ps_ext.gyp b/tools/android/ps_ext/ps_ext.gyp
deleted file mode 100644
index f467d93..0000000
--- a/tools/android/ps_ext/ps_ext.gyp
+++ /dev/null
@@ -1,36 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'ps_ext-unstripped',
-      'type': 'executable',
-      'sources': [
-        'ps_ext.c',
-      ],
-    },
-    {
-      'target_name': 'ps_ext',
-      'type': 'none',
-      'dependencies': [
-        'ps_ext-unstripped',
-      ],
-      'actions': [
-        {
-          'action_name': 'strip_ps_ext',
-          'inputs': ['<(PRODUCT_DIR)/ps_ext-unstripped'],
-          'outputs': ['<(PRODUCT_DIR)/ps_ext'],
-          'action': [
-            '<(android_strip)',
-            '--strip-unneeded',
-            '<@(_inputs)',
-            '-o',
-            '<@(_outputs)',
-          ],
-        },
-      ],
-    },
-  ],
-}
diff --git a/tools/android/purge_ashmem/purge_ashmem.gyp b/tools/android/purge_ashmem/purge_ashmem.gyp
deleted file mode 100644
index d563b1f..0000000
--- a/tools/android/purge_ashmem/purge_ashmem.gyp
+++ /dev/null
@@ -1,21 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      'target_name': 'purge_ashmem',
-      'type': 'executable',
-      'dependencies': [
-        '../../../third_party/ashmem/ashmem.gyp:ashmem',
-      ],
-      'include_dirs': [
-        '../../../',
-      ],
-      'sources': [
-        'purge_ashmem.c',
-      ],
-    },
-  ],
-}
diff --git a/tools/android/run_pie/run_pie.gyp b/tools/android/run_pie/run_pie.gyp
deleted file mode 100644
index 75850f4..0000000
--- a/tools/android/run_pie/run_pie.gyp
+++ /dev/null
@@ -1,49 +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.
-
-{
-  'targets': [
-    {
-      'target_name': 'run_pie-unstripped',
-      'type': 'executable',
-      'sources': [
-        'run_pie.c',
-      ],
-      # See crbug.com/373219. This is the only Android executable which must be
-      # non PIE.
-      'cflags!': [
-        '-fPIE',
-      ],
-      'ldflags!': [
-        '-pie',
-      ],
-      # Don't inherit unneeded dependencies on libc++, so the binary remains
-      # self-contained also in component=shared_library builds.
-      'libraries!': [
-        '-l<(android_libcpp_library)',
-      ],
-    },
-    {
-      'target_name': 'run_pie',
-      'type': 'none',
-      'dependencies': [
-        'run_pie-unstripped',
-      ],
-      'actions': [
-        {
-          'action_name': 'strip_run_pie',
-          'inputs': ['<(PRODUCT_DIR)/run_pie-unstripped'],
-          'outputs': ['<(PRODUCT_DIR)/run_pie'],
-          'action': [
-            '<(android_strip)',
-            '--strip-unneeded',
-            '<@(_inputs)',
-            '-o',
-            '<@(_outputs)',
-          ],
-        },
-      ],
-    },
-  ],
-}
diff --git a/tools/relocation_packer/relocation_packer.gyp b/tools/relocation_packer/relocation_packer.gyp
deleted file mode 100644
index 1e9c1b9..0000000
--- a/tools/relocation_packer/relocation_packer.gyp
+++ /dev/null
@@ -1,161 +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.
-
-{
-  'variables': {
-    'target_define%': 'TARGET_UNSUPPORTED',
-    'conditions': [
-      [ 'target_arch == "arm"', {
-        'target_define': 'TARGET_ARM',
-      }],
-      [ 'target_arch == "arm64"', {
-        'target_define': 'TARGET_ARM64',
-      }],
-    ],
-  },
-  'targets': [
-    {
-      # GN: //tools/relocation_packer:lib_relocation_packer
-      'target_name': 'lib_relocation_packer',
-      'toolsets': ['host'],
-      'type': 'static_library',
-      'defines': [
-        '<(target_define)',
-      ],
-      'dependencies': [
-        '../../third_party/elfutils/elfutils.gyp:libelf',
-      ],
-      'sources': [
-        'src/debug.cc',
-        'src/delta_encoder.cc',
-        'src/elf_file.cc',
-        'src/leb128.cc',
-        'src/packer.cc',
-        'src/sleb128.cc',
-        'src/run_length_encoder.cc',
-      ],
-    },
-    {
-      # GN: //tools/relocation_packer:relocation_packer
-      'target_name': 'relocation_packer',
-      'toolsets': ['host'],
-      'type': 'executable',
-      'defines': [
-        '<(target_define)',
-      ],
-      'dependencies': [
-        '../../third_party/elfutils/elfutils.gyp:libelf',
-        'lib_relocation_packer',
-      ],
-      'sources': [
-        'src/main.cc',
-      ],
-    },
-    {
-      # GN: //tools/relocation_packer:relocation_packer_unittests
-      'target_name': 'relocation_packer_unittests',
-      'toolsets': ['host'],
-      'type': 'executable',
-      'defines': [
-        '<(target_define)',
-      ],
-      'cflags': [
-        '-DINTERMEDIATE_DIR="<(INTERMEDIATE_DIR)"',
-      ],
-      'dependencies': [
-        '../../testing/gtest.gyp:gtest',
-        'lib_relocation_packer',
-      ],
-      'include_dirs': [
-        '../..',
-      ],
-      'sources': [
-        'src/debug_unittest.cc',
-        'src/delta_encoder_unittest.cc',
-        'src/elf_file_unittest.cc',
-        'src/leb128_unittest.cc',
-        'src/packer_unittest.cc',
-        'src/sleb128_unittest.cc',
-        'src/run_length_encoder_unittest.cc',
-        'src/run_all_unittests.cc',
-      ],
-      'copies': [
-        {
-          'destination': '<(INTERMEDIATE_DIR)',
-          'files': [
-            'test_data/elf_file_unittest_relocs_arm32.so',
-            'test_data/elf_file_unittest_relocs_arm32_packed.so',
-            'test_data/elf_file_unittest_relocs_arm64.so',
-            'test_data/elf_file_unittest_relocs_arm64_packed.so',
-          ],
-        },
-      ],
-    },
-
-    # Targets to build test data.  These participate only in building test
-    # data for use with elf_file_unittest.cc, and are not part of the main
-    # relocation packer build.  Unit test data files are checked in to the
-    # source tree as 'golden' data, and are not generated 'on the fly' by
-    # the build.
-    #
-    # See test_data/generate_elf_file_unittest_relocs.sh for instructions.
-    {
-      # GN: //tools/relocation_packer:relocation_packer_test_data
-      'target_name': 'relocation_packer_test_data',
-      'toolsets': ['target'],
-      'type': 'shared_library',
-      'cflags': [
-        '-O0',
-        '-g0',
-      ],
-      'sources': [
-        'test_data/elf_file_unittest_relocs.cc',
-      ],
-    },
-    {
-      # GN: //tools/relocation_packer:relocation_packer_unittests_test_data
-      'target_name': 'relocation_packer_unittests_test_data',
-      'toolsets': ['target'],
-      'type': 'none',
-      'actions': [
-        {
-          'variables': {
-            'test_file': '<(SHARED_LIB_DIR)/librelocation_packer_test_data.so',
-            'conditions': [
-              [ 'target_arch == "arm"', {
-                'added_section': '.android.rel.dyn',
-                'unpacked_output': 'elf_file_unittest_relocs_arm32.so',
-                'packed_output': 'elf_file_unittest_relocs_arm32_packed.so',
-              }],
-              [ 'target_arch == "arm64"', {
-                'added_section': '.android.rela.dyn',
-                'unpacked_output': 'elf_file_unittest_relocs_arm64.so',
-                'packed_output': 'elf_file_unittest_relocs_arm64_packed.so',
-              }],
-            ],
-          },
-          'action_name': 'generate_relocation_packer_test_data',
-          'inputs': [
-            'test_data/generate_elf_file_unittest_relocs.py',
-            '<(PRODUCT_DIR)/relocation_packer',
-            '<(test_file)',
-          ],
-          'outputs': [
-            '<(INTERMEDIATE_DIR)/<(unpacked_output)',
-            '<(INTERMEDIATE_DIR)/<(packed_output)',
-          ],
-          'action': [
-              'python', 'test_data/generate_elf_file_unittest_relocs.py',
-              '--android-pack-relocations=<(PRODUCT_DIR)/relocation_packer',
-              '--android-objcopy=<(android_objcopy)',
-              '--added-section=<(added_section)',
-              '--test-file=<(test_file)',
-              '--unpacked-output=<(INTERMEDIATE_DIR)/<(unpacked_output)',
-              '--packed-output=<(INTERMEDIATE_DIR)/<(packed_output)',
-          ],
-        },
-      ],
-    },
-  ],
-}
diff --git a/tools/xdisplaycheck/xdisplaycheck.gyp b/tools/xdisplaycheck/xdisplaycheck.gyp
deleted file mode 100644
index 7030b6f..0000000
--- a/tools/xdisplaycheck/xdisplaycheck.gyp
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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.
-
-{
-  'targets': [
-    {
-      # GN version: //tools/xdisplaycheck
-      'target_name': 'xdisplaycheck',
-      'type': 'executable',
-      'dependencies': [
-        '../../build/linux/system.gyp:x11',
-      ],
-      'sources': [
-        'xdisplaycheck.cc',
-      ],
-    },
-  ],
-}
diff --git a/url/url.gyp b/url/url.gyp
deleted file mode 100644
index 4114801..0000000
--- a/url/url.gyp
+++ /dev/null
@@ -1,127 +0,0 @@
-# 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.
-
-{
-  'variables': {
-    'chromium_code': 1,
-  },
-  'includes': [
-    'url_srcs.gypi',
-  ],
-  'targets': [
-    {
-      # Note, this target_name cannot be 'url', because that will generate
-      # 'url.dll' for a Windows component build, and that will confuse Windows,
-      # which has a system DLL with the same name.
-      'target_name': 'url_lib',
-      'type': '<(component)',
-      'dependencies': [
-        '../base/base.gyp:base',
-        '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
-        '../third_party/icu/icu.gyp:icui18n',
-        '../third_party/icu/icu.gyp:icuuc',
-      ],
-      'sources': [
-        '<@(gurl_sources)',
-      ],
-      'direct_dependent_settings': {
-        'include_dirs': [
-          '..',
-        ],
-      },
-      'defines': [
-        'URL_IMPLEMENTATION',
-      ],
-      # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
-      'msvs_disabled_warnings': [4267, ],
-    },
-    {
-      'target_name': 'url_unittests',
-      'type': 'executable',
-      'dependencies': [
-        '../base/base.gyp:run_all_unittests',
-        '../testing/gtest.gyp:gtest',
-        '../third_party/icu/icu.gyp:icuuc',
-        'url_lib',
-      ],
-      'sources': [
-        'gurl_unittest.cc',
-        'origin_unittest.cc',
-        'url_canon_icu_unittest.cc',
-        'url_canon_unittest.cc',
-        'url_parse_unittest.cc',
-        'url_test_utils.h',
-        'url_util_unittest.cc',
-      ],
-      'conditions': [
-        ['os_posix==1 and OS!="mac" and OS!="ios" and use_allocator!="none"',
-          {
-            'dependencies': [
-              '../base/allocator/allocator.gyp:allocator',
-            ],
-          }
-        ],
-      ],
-      # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
-      'msvs_disabled_warnings': [4267, ],
-    },
-  ],
-  'conditions': [
-    ['OS=="android"', {
-      'targets': [
-        {
-          'target_name': 'url_jni_headers',
-          'type': 'none',
-          'sources': [
-            'android/java/src/org/chromium/url/IDNStringUtil.java'
-          ],
-          'variables': {
-            'jni_gen_package': 'url',
-          },
-          'includes': [ '../build/jni_generator.gypi' ],
-        },
-        {
-          'target_name': 'url_java',
-          'type': 'none',
-          'variables': {
-            'java_in_dir': '../url/android/java',
-          },
-          'dependencies': [
-            '../base/base.gyp:base',
-          ],
-          'includes': [ '../build/java.gypi' ],
-        },
-        {
-          # Same as url_lib but using ICU alternatives on Android.
-          'target_name': 'url_lib_use_icu_alternatives_on_android',
-          'type': '<(component)',
-          'dependencies': [
-            '../base/base.gyp:base',
-            '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
-            'url_java',
-            'url_jni_headers',
-          ],
-          'sources': [
-            '<@(gurl_sources)',
-            'url_canon_icu_alternatives_android.cc',
-            'url_canon_icu_alternatives_android.h',
-          ],
-          'sources!': [
-            'url_canon_icu.cc',
-            'url_canon_icu.h',
-          ],
-          'direct_dependent_settings': {
-            'include_dirs': [
-              '..',
-            ],
-          },
-          'defines': [
-            'URL_IMPLEMENTATION',
-            'USE_ICU_ALTERNATIVES_ON_ANDROID=1',
-          ],
-        },
-      ],
-    }],
-  ],
-}
diff --git a/url/url_nacl.gyp b/url/url_nacl.gyp
deleted file mode 100644
index 4af75b1..0000000
--- a/url/url_nacl.gyp
+++ /dev/null
@@ -1,37 +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.
-
-{
-  'variables': {
-    'chromium_code': 1,
-  },
-  'includes': [
-    '../build/common_untrusted.gypi',
-    'url_srcs.gypi',
-  ],
-  'targets': [
-    {
-      'target_name': 'url_nacl',
-      'type': 'none',
-      'variables': {
-        'nlib_target': 'liburl_nacl.a',
-        'build_glibc': 0,
-        'build_newlib': 0,
-        'build_pnacl_newlib': 1,
-      },
-      'dependencies': [
-        '../third_party/icu/icu_nacl.gyp:icudata_nacl',
-        '../third_party/icu/icu_nacl.gyp:icui18n_nacl',
-        '../third_party/icu/icu_nacl.gyp:icuuc_nacl',
-      ],
-      'export_dependent_settings': [
-        '../third_party/icu/icu_nacl.gyp:icui18n_nacl',
-        '../third_party/icu/icu_nacl.gyp:icuuc_nacl',
-      ],
-      'sources': [
-        '<@(gurl_sources)',
-      ],
-    },  # end of target 'url_nacl'
-  ],
-}
diff --git a/url/url_srcs.gypi b/url/url_srcs.gypi
deleted file mode 100644
index 61db15d..0000000
--- a/url/url_srcs.gypi
+++ /dev/null
@@ -1,44 +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.
-
-{
-  'variables': {
-    'gurl_sources': [
-      'android/url_jni_registrar.cc',
-      'android/url_jni_registrar.h',
-      'gurl.cc',
-      'gurl.h',
-      'origin.cc',
-      'origin.h',
-      'third_party/mozilla/url_parse.cc',
-      'third_party/mozilla/url_parse.h',
-      'url_canon.h',
-      'url_canon_etc.cc',
-      'url_canon_filesystemurl.cc',
-      'url_canon_fileurl.cc',
-      'url_canon_host.cc',
-      'url_canon_icu.cc',
-      'url_canon_icu.h',
-      'url_canon_internal.cc',
-      'url_canon_internal.h',
-      'url_canon_internal_file.h',
-      'url_canon_ip.cc',
-      'url_canon_ip.h',
-      'url_canon_mailtourl.cc',
-      'url_canon_path.cc',
-      'url_canon_pathurl.cc',
-      'url_canon_query.cc',
-      'url_canon_relative.cc',
-      'url_canon_stdstring.cc',
-      'url_canon_stdurl.cc',
-      'url_constants.cc',
-      'url_constants.h',
-      'url_file.h',
-      'url_parse_file.cc',
-      'url_parse_internal.h',
-      'url_util.cc',
-      'url_util.h',
-    ],
-  },
-}
