| Index: base/BUILD.gn
 | 
| diff --git a/base/BUILD.gn b/base/BUILD.gn
 | 
| index 44e656c2f804a22677773b89887c291d2f0da776..e4176811a8a5978cf1cbfb33883ba661b87b2eee 100644
 | 
| --- a/base/BUILD.gn
 | 
| +++ b/base/BUILD.gn
 | 
| @@ -11,12 +11,6 @@ if (is_android) {
 | 
|  
 | 
|  component("base") {
 | 
|    sources = [
 | 
| -    "third_party/dmg_fp/dmg_fp.h",
 | 
| -    "third_party/dmg_fp/g_fmt.cc",
 | 
| -    "third_party/dmg_fp/dtoa_wrapper.cc",
 | 
| -    "third_party/icu/icu_utf.cc",
 | 
| -    "third_party/icu/icu_utf.h",
 | 
| -    "third_party/superfasthash/superfasthash.c",
 | 
|      "allocator/allocator_extension.cc",
 | 
|      "allocator/allocator_extension.h",
 | 
|      "allocator/type_profiler_control.cc",
 | 
| @@ -94,6 +88,8 @@ component("base") {
 | 
|      "auto_reset.h",
 | 
|      "barrier_closure.cc",
 | 
|      "barrier_closure.h",
 | 
| +    "base64.cc",
 | 
| +    "base64.h",
 | 
|      "base_export.h",
 | 
|      "base_paths.cc",
 | 
|      "base_paths.h",
 | 
| @@ -106,8 +102,6 @@ component("base") {
 | 
|      "base_paths_win.cc",
 | 
|      "base_paths_win.h",
 | 
|      "base_switches.h",
 | 
| -    "base64.cc",
 | 
| -    "base64.h",
 | 
|      "basictypes.h",
 | 
|      "big_endian.cc",
 | 
|      "big_endian.h",
 | 
| @@ -125,10 +119,10 @@ component("base") {
 | 
|      "callback_internal.cc",
 | 
|      "callback_internal.h",
 | 
|      "cancelable_callback.h",
 | 
| -    "command_line.cc",
 | 
| -    "command_line.h",
 | 
|      "chromeos/memory_pressure_observer_chromeos.cc",
 | 
|      "chromeos/memory_pressure_observer_chromeos.h",
 | 
| +    "command_line.cc",
 | 
| +    "command_line.h",
 | 
|      "compiler_specific.h",
 | 
|      "containers/adapters.h",
 | 
|      "containers/hash_tables.h",
 | 
| @@ -154,6 +148,12 @@ component("base") {
 | 
|      "debug/dump_without_crashing.h",
 | 
|      "debug/gdi_debug_util_win.cc",
 | 
|      "debug/gdi_debug_util_win.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/superfasthash/superfasthash.c",
 | 
|  
 | 
|      # This file depends on files from the "allocator" target,
 | 
|      # but this target does not depend on "allocator" (see
 | 
| @@ -185,8 +185,6 @@ component("base") {
 | 
|      "files/dir_reader_linux.h",
 | 
|      "files/dir_reader_posix.h",
 | 
|      "files/file.cc",
 | 
| -    "files/file_posix.cc",
 | 
| -    "files/file_win.cc",
 | 
|      "files/file_enumerator.cc",
 | 
|      "files/file_enumerator.h",
 | 
|      "files/file_enumerator_posix.cc",
 | 
| @@ -203,6 +201,7 @@ component("base") {
 | 
|      "files/file_path_watcher_linux.cc",
 | 
|      "files/file_path_watcher_mac.cc",
 | 
|      "files/file_path_watcher_win.cc",
 | 
| +    "files/file_posix.cc",
 | 
|      "files/file_proxy.cc",
 | 
|      "files/file_proxy.h",
 | 
|      "files/file_util.cc",
 | 
| @@ -214,6 +213,7 @@ component("base") {
 | 
|      "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",
 | 
| @@ -280,8 +280,8 @@ component("base") {
 | 
|      "mac/launchd.h",
 | 
|      "mac/libdispatch_task_runner.cc",
 | 
|      "mac/libdispatch_task_runner.h",
 | 
| -    "mac/mac_logging.h",
 | 
|      "mac/mac_logging.cc",
 | 
| +    "mac/mac_logging.h",
 | 
|      "mac/mac_util.h",
 | 
|      "mac/mac_util.mm",
 | 
|      "mac/mach_logging.cc",
 | 
| @@ -378,19 +378,19 @@ component("base") {
 | 
|      "message_loop/message_pump_mac.mm",
 | 
|      "message_loop/message_pump_win.cc",
 | 
|      "message_loop/message_pump_win.h",
 | 
| -    "metrics/field_trial.cc",
 | 
| -    "metrics/field_trial.h",
 | 
| -    "metrics/sample_map.cc",
 | 
| -    "metrics/sample_map.h",
 | 
| -    "metrics/sample_vector.cc",
 | 
| -    "metrics/sample_vector.h",
 | 
|      "metrics/bucket_ranges.cc",
 | 
|      "metrics/bucket_ranges.h",
 | 
| +    "metrics/field_trial.cc",
 | 
| +    "metrics/field_trial.h",
 | 
|      "metrics/histogram.cc",
 | 
|      "metrics/histogram.h",
 | 
|      "metrics/histogram_base.cc",
 | 
|      "metrics/histogram_base.h",
 | 
|      "metrics/histogram_delta_serialization.cc",
 | 
| +    "metrics/sample_map.cc",
 | 
| +    "metrics/sample_map.h",
 | 
| +    "metrics/sample_vector.cc",
 | 
| +    "metrics/sample_vector.h",
 | 
|      "metrics/histogram_delta_serialization.",
 | 
|      "metrics/histogram_flattener.h",
 | 
|      "metrics/histogram_macros.h",
 | 
| @@ -402,10 +402,6 @@ component("base") {
 | 
|      "metrics/sparse_histogram.h",
 | 
|      "metrics/statistics_recorder.cc",
 | 
|      "metrics/statistics_recorder.h",
 | 
| -    "metrics/stats_counters.cc",
 | 
| -    "metrics/stats_counters.h",
 | 
| -    "metrics/stats_table.cc",
 | 
| -    "metrics/stats_table.h",
 | 
|      "metrics/user_metrics.cc",
 | 
|      "metrics/user_metrics.h",
 | 
|      "metrics/user_metrics_action.h",
 | 
| @@ -414,14 +410,14 @@ component("base") {
 | 
|      "native_library_mac.mm",
 | 
|      "native_library_posix.cc",
 | 
|      "native_library_win.cc",
 | 
| -    "numerics/safe_conversions.h",
 | 
| -    "numerics/safe_conversions_impl.h",
 | 
| -    "numerics/safe_math.h",
 | 
| -    "numerics/safe_math_impl.h",
 | 
|      "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",
 | 
| @@ -544,11 +540,11 @@ component("base") {
 | 
|      "strings/string16.cc",
 | 
|      "strings/string16.h",
 | 
|      "strings/string_number_conversions.cc",
 | 
| -    "strings/string_split.cc",
 | 
| -    "strings/string_split.h",
 | 
|      "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",
 | 
| @@ -590,8 +586,6 @@ component("base") {
 | 
|      "synchronization/waitable_event_watcher_posix.cc",
 | 
|      "synchronization/waitable_event_watcher_win.cc",
 | 
|      "synchronization/waitable_event_win.cc",
 | 
| -    "system_monitor/system_monitor.cc",
 | 
| -    "system_monitor/system_monitor.h",
 | 
|      "sys_byteorder.h",
 | 
|      "sys_info.cc",
 | 
|      "sys_info.h",
 | 
| @@ -604,6 +598,8 @@ component("base") {
 | 
|      "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",
 | 
| @@ -644,12 +640,12 @@ component("base") {
 | 
|      "threading/thread_local_storage_posix.cc",
 | 
|      "threading/thread_local_storage_win.cc",
 | 
|      "threading/thread_local_win.cc",
 | 
| -    "threading/thread_restrictions.h",
 | 
|      "threading/thread_restrictions.cc",
 | 
| +    "threading/thread_restrictions.h",
 | 
|      "threading/watchdog.cc",
 | 
|      "threading/watchdog.h",
 | 
| -    "threading/worker_pool.h",
 | 
|      "threading/worker_pool.cc",
 | 
| +    "threading/worker_pool.h",
 | 
|      "threading/worker_pool_posix.cc",
 | 
|      "threading/worker_pool_posix.h",
 | 
|      "threading/worker_pool_win.cc",
 | 
| @@ -675,6 +671,11 @@ component("base") {
 | 
|      "timer/mock_timer.h",
 | 
|      "timer/timer.cc",
 | 
|      "timer/timer.h",
 | 
| +    "trace_event/memory_dump_manager.cc",
 | 
| +    "trace_event/memory_dump_manager.h",
 | 
| +    "trace_event/memory_dump_provider.h",
 | 
| +    "trace_event/process_memory_dump.cc",
 | 
| +    "trace_event/process_memory_dump.h",
 | 
|      "trace_event/trace_event.h",
 | 
|      "trace_event/trace_event_android.cc",
 | 
|      "trace_event/trace_event_argument.cc",
 | 
| @@ -695,10 +696,10 @@ component("base") {
 | 
|      "tracking_info.cc",
 | 
|      "tracking_info.h",
 | 
|      "tuple.h",
 | 
| -    "values.cc",
 | 
| -    "values.h",
 | 
|      "value_conversions.cc",
 | 
|      "value_conversions.h",
 | 
| +    "values.cc",
 | 
| +    "values.h",
 | 
|      "version.cc",
 | 
|      "version.h",
 | 
|      "vlog.cc",
 | 
| @@ -787,10 +788,10 @@ component("base") {
 | 
|  
 | 
|    if (is_android) {
 | 
|      sources += [
 | 
| -      "memory/discardable_memory_ashmem_allocator.cc",
 | 
| -      "memory/discardable_memory_ashmem_allocator.h",
 | 
|        "memory/discardable_memory_ashmem.cc",
 | 
|        "memory/discardable_memory_ashmem.h",
 | 
| +      "memory/discardable_memory_ashmem_allocator.cc",
 | 
| +      "memory/discardable_memory_ashmem_allocator.h",
 | 
|      ]
 | 
|      sources -= [
 | 
|        "base_paths_posix.cc",
 | 
| @@ -802,12 +803,12 @@ component("base") {
 | 
|      sources += [
 | 
|        "debug/proc_maps_linux.cc",
 | 
|        "files/file_path_watcher_linux.cc",
 | 
| -      "process/memory_linux.cc",
 | 
| +      "posix/unix_domain_socket_linux.cc",
 | 
|        "process/internal_linux.cc",
 | 
| +      "process/memory_linux.cc",
 | 
|        "process/process_handle_linux.cc",
 | 
|        "process/process_iterator_linux.cc",
 | 
|        "process/process_metrics_linux.cc",
 | 
| -      "posix/unix_domain_socket_linux.cc",
 | 
|        "sys_info_linux.cc",
 | 
|      ]
 | 
|      set_sources_assignment_filter(sources_assignment_filter)
 | 
| @@ -835,24 +836,24 @@ component("base") {
 | 
|        "debug/stack_trace_posix.cc",
 | 
|        "files/file_enumerator_posix.cc",
 | 
|        "files/file_util_posix.cc",
 | 
| +      "memory/shared_memory_posix.cc",
 | 
|        "message_loop/message_pump_libevent.cc",
 | 
| +      "metrics/field_trial.cc",
 | 
| +      "native_library_posix.cc",
 | 
|        "process/kill_posix.cc",
 | 
|        "process/launch_posix.cc",
 | 
|        "process/process_metrics_posix.cc",
 | 
|        "process/process_posix.cc",
 | 
| -      "metrics/field_trial.cc",
 | 
| -      "native_library_posix.cc",
 | 
| -      "memory/shared_memory_posix.cc",
 | 
|        "sync_socket_posix.cc",
 | 
|        "sys_info_posix.cc",
 | 
|      ]
 | 
|    } else {
 | 
|      # Remove nacl stuff.
 | 
|      sources -= [
 | 
| +      "memory/shared_memory_nacl.cc",
 | 
|        "os_compat_nacl.cc",
 | 
|        "os_compat_nacl.h",
 | 
|        "rand_util_nacl.cc",
 | 
| -      "memory/shared_memory_nacl.cc",
 | 
|      ]
 | 
|    }
 | 
|  
 | 
| @@ -1126,6 +1127,10 @@ source_set("protect_file_posix") {
 | 
|    sources = [
 | 
|      "files/protect_file_posix.cc",
 | 
|    ]
 | 
| +
 | 
| +  deps = [
 | 
| +    "//base",
 | 
| +  ]
 | 
|  }
 | 
|  
 | 
|  test("base_unittests") {
 | 
| @@ -1183,10 +1188,9 @@ test("base_unittests") {
 | 
|      "gmock_unittest.cc",
 | 
|      "guid_unittest.cc",
 | 
|      "hash_unittest.cc",
 | 
| -    "id_map_unittest.cc",
 | 
|      "i18n/break_iterator_unittest.cc",
 | 
| -    "i18n/char_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",
 | 
| @@ -1195,6 +1199,7 @@ test("base_unittests") {
 | 
|      "i18n/string_search_unittest.cc",
 | 
|      "i18n/time_formatting_unittest.cc",
 | 
|      "i18n/timezone_unittest.cc",
 | 
| +    "id_map_unittest.cc",
 | 
|      "ios/device_util_unittest.mm",
 | 
|      "ios/weak_nsobject_unittest.mm",
 | 
|      "json/json_parser_unittest.cc",
 | 
| @@ -1233,17 +1238,17 @@ test("base_unittests") {
 | 
|      "message_loop/message_loop_unittest.cc",
 | 
|      "message_loop/message_pump_glib_unittest.cc",
 | 
|      "message_loop/message_pump_io_ios_unittest.cc",
 | 
| -    "metrics/sample_map_unittest.cc",
 | 
| -    "metrics/sample_vector_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_snapshot_manager_unittest.cc",
 | 
|      "metrics/histogram_unittest.cc",
 | 
| +    "metrics/sample_map_unittest.cc",
 | 
| +    "metrics/sample_vector_unittest.cc",
 | 
|      "metrics/sparse_histogram_unittest.cc",
 | 
| -    "metrics/stats_table_unittest.cc",
 | 
|      "metrics/statistics_recorder_unittest.cc",
 | 
| +    "numerics/safe_numerics_unittest.cc",
 | 
|      "observer_list_unittest.cc",
 | 
|      "os_compat_android_unittest.cc",
 | 
|      "path_service_unittest.cc",
 | 
| @@ -1271,7 +1276,6 @@ test("base_unittests") {
 | 
|      "process/process_util_unittest_ios.cc",
 | 
|      "profiler/tracked_time_unittest.cc",
 | 
|      "rand_util_unittest.cc",
 | 
| -    "numerics/safe_numerics_unittest.cc",
 | 
|      "scoped_clear_errno_unittest.cc",
 | 
|      "scoped_generic_unittest.cc",
 | 
|      "scoped_native_library_unittest.cc",
 | 
| @@ -1282,13 +1286,13 @@ test("base_unittests") {
 | 
|      "strings/nullable_string16_unittest.cc",
 | 
|      "strings/safe_sprintf_unittest.cc",
 | 
|      "strings/string16_unittest.cc",
 | 
| -    "strings/stringprintf_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",
 | 
| @@ -1330,6 +1334,7 @@ test("base_unittests") {
 | 
|      "timer/mock_timer_unittest.cc",
 | 
|      "timer/timer_unittest.cc",
 | 
|      "tools_sanity_unittest.cc",
 | 
| +    "trace_event/memory_dump_manager_unittest.cc",
 | 
|      "trace_event/trace_event_argument_unittest.cc",
 | 
|      "trace_event/trace_event_memory_unittest.cc",
 | 
|      "trace_event/trace_event_synthetic_delay_unittest.cc",
 | 
| @@ -1372,6 +1377,7 @@ test("base_unittests") {
 | 
|      "//base/test:run_all_unittests",
 | 
|      "//base/test:test_support",
 | 
|      "//base/third_party/dynamic_annotations",
 | 
| +    "//base/third_party/nspr",
 | 
|      "//testing/gmock",
 | 
|      "//testing/gtest",
 | 
|      "//third_party/icu",
 | 
| @@ -1386,7 +1392,6 @@ test("base_unittests") {
 | 
|  
 | 
|    if (is_ios) {
 | 
|      sources -= [
 | 
| -      "metrics/stats_table_uinittest.cc",  # Requires spawning a process.
 | 
|        "process/memory_unittest.cc",
 | 
|        "process/memory_unittest_mac.h",
 | 
|        "process/memory_unittest_mac.mm",
 | 
| @@ -1509,16 +1514,19 @@ if (is_android) {
 | 
|  
 | 
|    # GYP: //base.gyp:base_java_application_state
 | 
|    # GYP: //base.gyp:base_java_library_load_from_apk_status_codes
 | 
| +  # GYP: //base.gyp:base_java_library_process_type
 | 
|    # GYP: //base.gyp:base_java_memory_pressure_level
 | 
|    java_cpp_enum("base_android_java_enums_srcjar") {
 | 
|      sources = [
 | 
|        "android/application_status_listener.h",
 | 
|        "android/library_loader/library_load_from_apk_status_codes.h",
 | 
| +      "android/library_loader/library_loader_hooks.h",
 | 
|        "memory/memory_pressure_listener.h",
 | 
|      ]
 | 
|      outputs = [
 | 
|        "org/chromium/base/ApplicationState.java",
 | 
|        "org/chromium/base/library_loader/LibraryLoadFromApkStatusCodes.java",
 | 
| +      "org/chromium/base/library_loader/LibraryProcessType.java",
 | 
|        "org/chromium/base/MemoryPressureLevel.java",
 | 
|      ]
 | 
|    }
 | 
| 
 |