Remove base/base64 and file_version_info

Change-Id: I6f3b2cf8f1f8e972c6c695fe7784cf38a5455274
Reviewed-on: https://gn-review.googlesource.com/1523
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Brett Wilson <brettw@chromium.org>
diff --git a/base/base64.cc b/base/base64.cc
deleted file mode 100644
index ca8ee93..0000000
--- a/base/base64.cc
+++ /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.
-
-#include "base/base64.h"
-
-#include <stddef.h>
-
-#include "third_party/modp_b64/modp_b64.h"
-
-namespace base {
-
-void Base64Encode(const StringPiece& input, std::string* output) {
-  std::string temp;
-  temp.resize(modp_b64_encode_len(input.size()));  // makes room for null byte
-
-  // modp_b64_encode_len() returns at least 1, so temp[0] is safe to use.
-  size_t output_size = modp_b64_encode(&(temp[0]), input.data(), input.size());
-
-  temp.resize(output_size);  // strips off null byte
-  output->swap(temp);
-}
-
-bool Base64Decode(const StringPiece& input, std::string* output) {
-  std::string temp;
-  temp.resize(modp_b64_decode_len(input.size()));
-
-  // does not null terminate result since result is binary data!
-  size_t input_size = input.size();
-  size_t output_size = modp_b64_decode(&(temp[0]), input.data(), input_size);
-  if (output_size == MODP_B64_ERROR)
-    return false;
-
-  temp.resize(output_size);
-  output->swap(temp);
-  return true;
-}
-
-}  // namespace base
diff --git a/base/base64.h b/base/base64.h
deleted file mode 100644
index dd72c39..0000000
--- a/base/base64.h
+++ /dev/null
@@ -1,25 +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.
-
-#ifndef BASE_BASE64_H_
-#define BASE_BASE64_H_
-
-#include <string>
-
-#include "base/base_export.h"
-#include "base/strings/string_piece.h"
-
-namespace base {
-
-// Encodes the input string in base64. The encoding can be done in-place.
-BASE_EXPORT void Base64Encode(const StringPiece& input, std::string* output);
-
-// Decodes the base64 input string.  Returns true if successful and false
-// otherwise. The output string is only modified if successful. The decoding can
-// be done in-place.
-BASE_EXPORT bool Base64Decode(const StringPiece& input, std::string* output);
-
-}  // namespace base
-
-#endif  // BASE_BASE64_H_
diff --git a/base/base64_decode_fuzzer.cc b/base/base64_decode_fuzzer.cc
deleted file mode 100644
index 3716f72..0000000
--- a/base/base64_decode_fuzzer.cc
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2017 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 <string>
-
-#include "base/base64.h"
-#include "base/strings/string_piece.h"
-
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  std::string decode_output;
-  base::StringPiece data_piece(reinterpret_cast<const char*>(data), size);
-  base::Base64Decode(data_piece, &decode_output);
-  return 0;
-}
diff --git a/base/base64_encode_fuzzer.cc b/base/base64_encode_fuzzer.cc
deleted file mode 100644
index c324be0..0000000
--- a/base/base64_encode_fuzzer.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2017 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 <string>
-
-#include "base/base64.h"
-#include "base/logging.h"
-#include "base/strings/string_piece.h"
-
-// Encode some random data, and then decode it.
-extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  std::string encode_output;
-  std::string decode_output;
-  base::StringPiece data_piece(reinterpret_cast<const char*>(data), size);
-  base::Base64Encode(data_piece, &encode_output);
-  CHECK(base::Base64Decode(encode_output, &decode_output));
-  CHECK_EQ(data_piece, decode_output);
-  return 0;
-}
diff --git a/base/base64url.cc b/base/base64url.cc
deleted file mode 100644
index 0a2c045..0000000
--- a/base/base64url.cc
+++ /dev/null
@@ -1,101 +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.
-
-#include "base/base64url.h"
-
-#include <stddef.h>
-
-#include "base/base64.h"
-#include "base/macros.h"
-#include "base/numerics/safe_math.h"
-#include "base/strings/string_util.h"
-#include "third_party/modp_b64/modp_b64.h"
-
-namespace base {
-
-const char kPaddingChar = '=';
-
-// Base64url maps {+, /} to {-, _} in order for the encoded content to be safe
-// to use in a URL. These characters will be translated by this implementation.
-const char kBase64Chars[] = "+/";
-const char kBase64UrlSafeChars[] = "-_";
-
-void Base64UrlEncode(const StringPiece& input,
-                     Base64UrlEncodePolicy policy,
-                     std::string* output) {
-  Base64Encode(input, output);
-
-  ReplaceChars(*output, "+", "-", output);
-  ReplaceChars(*output, "/", "_", output);
-
-  switch (policy) {
-    case Base64UrlEncodePolicy::INCLUDE_PADDING:
-      // The padding included in |*output| will not be amended.
-      break;
-    case Base64UrlEncodePolicy::OMIT_PADDING:
-      // The padding included in |*output| will be removed.
-      const size_t last_non_padding_pos =
-          output->find_last_not_of(kPaddingChar);
-      if (last_non_padding_pos != std::string::npos)
-        output->resize(last_non_padding_pos + 1);
-
-      break;
-  }
-}
-
-bool Base64UrlDecode(const StringPiece& input,
-                     Base64UrlDecodePolicy policy,
-                     std::string* output) {
-  // Characters outside of the base64url alphabet are disallowed, which includes
-  // the {+, /} characters found in the conventional base64 alphabet.
-  if (input.find_first_of(kBase64Chars) != std::string::npos)
-    return false;
-
-  const size_t required_padding_characters = input.size() % 4;
-  const bool needs_replacement =
-      input.find_first_of(kBase64UrlSafeChars) != std::string::npos;
-
-  switch (policy) {
-    case Base64UrlDecodePolicy::REQUIRE_PADDING:
-      // Fail if the required padding is not included in |input|.
-      if (required_padding_characters > 0)
-        return false;
-      break;
-    case Base64UrlDecodePolicy::IGNORE_PADDING:
-      // Missing padding will be silently appended.
-      break;
-    case Base64UrlDecodePolicy::DISALLOW_PADDING:
-      // Fail if padding characters are included in |input|.
-      if (input.find_first_of(kPaddingChar) != std::string::npos)
-        return false;
-      break;
-  }
-
-  // If the string either needs replacement of URL-safe characters to normal
-  // base64 ones, or additional padding, a copy of |input| needs to be made in
-  // order to make these adjustments without side effects.
-  if (required_padding_characters > 0 || needs_replacement) {
-    std::string base64_input;
-
-    CheckedNumeric<size_t> base64_input_size = input.size();
-    if (required_padding_characters > 0)
-      base64_input_size += 4 - required_padding_characters;
-
-    base64_input.reserve(base64_input_size.ValueOrDie());
-    input.AppendToString(&base64_input);
-
-    // Substitute the base64url URL-safe characters to their base64 equivalents.
-    ReplaceChars(base64_input, "-", "+", &base64_input);
-    ReplaceChars(base64_input, "_", "/", &base64_input);
-
-    // Append the necessary padding characters.
-    base64_input.resize(base64_input_size.ValueOrDie(), '=');
-
-    return Base64Decode(base64_input, output);
-  }
-
-  return Base64Decode(input, output);
-}
-
-}  // namespace base
diff --git a/base/base64url.h b/base/base64url.h
deleted file mode 100644
index 66a4824..0000000
--- a/base/base64url.h
+++ /dev/null
@@ -1,56 +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.
-
-#ifndef BASE_BASE64URL_H_
-#define BASE_BASE64URL_H_
-
-#include <string>
-
-#include "base/base_export.h"
-#include "base/compiler_specific.h"
-#include "base/macros.h"
-#include "base/strings/string_piece.h"
-
-namespace base {
-
-enum class Base64UrlEncodePolicy {
-  // Include the trailing padding in the output, when necessary.
-  INCLUDE_PADDING,
-
-  // Remove the trailing padding from the output.
-  OMIT_PADDING
-};
-
-// Encodes the |input| string in base64url, defined in RFC 4648:
-// https://tools.ietf.org/html/rfc4648#section-5
-//
-// The |policy| defines whether padding should be included or omitted from the
-// encoded |*output|. |input| and |*output| may reference the same storage.
-BASE_EXPORT void Base64UrlEncode(const StringPiece& input,
-                                 Base64UrlEncodePolicy policy,
-                                 std::string* output);
-
-enum class Base64UrlDecodePolicy {
-  // Require inputs contain trailing padding if non-aligned.
-  REQUIRE_PADDING,
-
-  // Accept inputs regardless of whether or not they have the correct padding.
-  IGNORE_PADDING,
-
-  // Reject inputs if they contain any trailing padding.
-  DISALLOW_PADDING
-};
-
-// Decodes the |input| string in base64url, defined in RFC 4648:
-// https://tools.ietf.org/html/rfc4648#section-5
-//
-// The |policy| defines whether padding will be required, ignored or disallowed
-// altogether. |input| and |*output| may reference the same storage.
-BASE_EXPORT bool Base64UrlDecode(const StringPiece& input,
-                                 Base64UrlDecodePolicy policy,
-                                 std::string* output) WARN_UNUSED_RESULT;
-
-}  // namespace base
-
-#endif  // BASE_BASE64URL_H_
diff --git a/base/file_version_info.h b/base/file_version_info.h
deleted file mode 100644
index 3240bbe..0000000
--- a/base/file_version_info.h
+++ /dev/null
@@ -1,73 +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.
-
-#ifndef BASE_FILE_VERSION_INFO_H_
-#define BASE_FILE_VERSION_INFO_H_
-
-#include <string>
-
-#include "build_config.h"
-#include "base/base_export.h"
-#include "base/strings/string16.h"
-
-#if defined(OS_WIN)
-#include <windows.h>
-#endif
-
-namespace base {
-class FilePath;
-}
-
-// Provides an interface for accessing the version information for a file. This
-// is the information you access when you select a file in the Windows Explorer,
-// right-click select Properties, then click the Version tab, and on the Mac
-// when you select a file in the Finder and do a Get Info.
-//
-// This list of properties is straight out of Win32's VerQueryValue
-// <http://msdn.microsoft.com/en-us/library/ms647464.aspx> and the Mac
-// version returns values from the Info.plist as appropriate. TODO(avi): make
-// this a less-obvious Windows-ism.
-
-class BASE_EXPORT FileVersionInfo {
- public:
-  virtual ~FileVersionInfo() {}
-#if defined(OS_WIN) || defined(OS_MACOSX)
-  // Creates a FileVersionInfo for the specified path. Returns NULL if something
-  // goes wrong (typically the file does not exit or cannot be opened). The
-  // returned object should be deleted when you are done with it.
-  static FileVersionInfo* CreateFileVersionInfo(
-      const base::FilePath& file_path);
-#endif  // OS_WIN || OS_MACOSX
-
-#if defined(OS_WIN)
-  // Creates a FileVersionInfo for the specified module. Returns NULL in case
-  // of error. The returned object should be deleted when you are done with it.
-  static FileVersionInfo* CreateFileVersionInfoForModule(HMODULE module);
-#else
-  // Creates a FileVersionInfo for the current module. Returns NULL in case
-  // of error. The returned object should be deleted when you are done with it.
-  static FileVersionInfo* CreateFileVersionInfoForCurrentModule();
-#endif  // OS_WIN
-
-  // Accessors to the different version properties.
-  // Returns an empty string if the property is not found.
-  virtual base::string16 company_name() = 0;
-  virtual base::string16 company_short_name() = 0;
-  virtual base::string16 product_name() = 0;
-  virtual base::string16 product_short_name() = 0;
-  virtual base::string16 internal_name() = 0;
-  virtual base::string16 product_version() = 0;
-  virtual base::string16 private_build() = 0;
-  virtual base::string16 special_build() = 0;
-  virtual base::string16 comments() = 0;
-  virtual base::string16 original_filename() = 0;
-  virtual base::string16 file_description() = 0;
-  virtual base::string16 file_version() = 0;
-  virtual base::string16 legal_copyright() = 0;
-  virtual base::string16 legal_trademarks() = 0;
-  virtual base::string16 last_change() = 0;
-  virtual bool is_official_build() = 0;
-};
-
-#endif  // BASE_FILE_VERSION_INFO_H_
diff --git a/base/file_version_info_mac.h b/base/file_version_info_mac.h
deleted file mode 100644
index 9cc4b10..0000000
--- a/base/file_version_info_mac.h
+++ /dev/null
@@ -1,51 +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.
-
-#ifndef BASE_FILE_VERSION_INFO_MAC_H_
-#define BASE_FILE_VERSION_INFO_MAC_H_
-
-#include <CoreFoundation/CoreFoundation.h>
-#include <string>
-
-#include "base/file_version_info.h"
-#include "base/mac/scoped_nsobject.h"
-#include "base/macros.h"
-
-@class NSBundle;
-
-class FileVersionInfoMac : public FileVersionInfo {
- public:
-  explicit FileVersionInfoMac(NSBundle *bundle);
-  ~FileVersionInfoMac() override;
-
-  // Accessors to the different version properties.
-  // Returns an empty string if the property is not found.
-  base::string16 company_name() override;
-  base::string16 company_short_name() override;
-  base::string16 product_name() override;
-  base::string16 product_short_name() override;
-  base::string16 internal_name() override;
-  base::string16 product_version() override;
-  base::string16 private_build() override;
-  base::string16 special_build() override;
-  base::string16 comments() override;
-  base::string16 original_filename() override;
-  base::string16 file_description() override;
-  base::string16 file_version() override;
-  base::string16 legal_copyright() override;
-  base::string16 legal_trademarks() override;
-  base::string16 last_change() override;
-  bool is_official_build() override;
-
- private:
-  // Returns a base::string16 value for a property name.
-  // Returns the empty string if the property does not exist.
-  base::string16 GetString16Value(CFStringRef name);
-
-  base::scoped_nsobject<NSBundle> bundle_;
-
-  DISALLOW_COPY_AND_ASSIGN(FileVersionInfoMac);
-};
-
-#endif  // BASE_FILE_VERSION_INFO_MAC_H_
diff --git a/base/file_version_info_mac.mm b/base/file_version_info_mac.mm
deleted file mode 100644
index ec0743c..0000000
--- a/base/file_version_info_mac.mm
+++ /dev/null
@@ -1,124 +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.
-
-#include "base/file_version_info_mac.h"
-
-#import <Foundation/Foundation.h>
-
-#include "base/files/file_path.h"
-#include "base/logging.h"
-#include "base/mac/bundle_locations.h"
-#include "base/mac/foundation_util.h"
-#include "base/strings/sys_string_conversions.h"
-#include "build_config.h"
-
-FileVersionInfoMac::FileVersionInfoMac(NSBundle *bundle)
-    : bundle_([bundle retain]) {
-}
-
-FileVersionInfoMac::~FileVersionInfoMac() {}
-
-// static
-FileVersionInfo* FileVersionInfo::CreateFileVersionInfoForCurrentModule() {
-  return CreateFileVersionInfo(base::mac::FrameworkBundlePath());
-}
-
-// static
-FileVersionInfo* FileVersionInfo::CreateFileVersionInfo(
-    const base::FilePath& file_path) {
-  NSString* path = base::SysUTF8ToNSString(file_path.value());
-  NSBundle* bundle = [NSBundle bundleWithPath:path];
-  return new FileVersionInfoMac(bundle);
-}
-
-base::string16 FileVersionInfoMac::company_name() {
-  return base::string16();
-}
-
-base::string16 FileVersionInfoMac::company_short_name() {
-  return base::string16();
-}
-
-base::string16 FileVersionInfoMac::internal_name() {
-  return base::string16();
-}
-
-base::string16 FileVersionInfoMac::product_name() {
-  return GetString16Value(kCFBundleNameKey);
-}
-
-base::string16 FileVersionInfoMac::product_short_name() {
-  return GetString16Value(kCFBundleNameKey);
-}
-
-base::string16 FileVersionInfoMac::comments() {
-  return base::string16();
-}
-
-base::string16 FileVersionInfoMac::legal_copyright() {
-  return GetString16Value(CFSTR("CFBundleGetInfoString"));
-}
-
-base::string16 FileVersionInfoMac::product_version() {
-  // On OS X, CFBundleVersion is used by LaunchServices, and must follow
-  // specific formatting rules, so the four-part Chrome version is in
-  // CFBundleShortVersionString. On iOS, both have a policy-enfoced limit
-  // of three version components, so the full version is stored in a custom
-  // key (CrBundleVersion) falling back to CFBundleVersion if not present.
-#if defined(OS_IOS)
-  base::string16 version(GetString16Value(CFSTR("CrBundleVersion")));
-  if (version.length() > 0)
-    return version;
-  return GetString16Value(CFSTR("CFBundleVersion"));
-#else
-  return GetString16Value(CFSTR("CFBundleShortVersionString"));
-#endif  // defined(OS_IOS)
-}
-
-base::string16 FileVersionInfoMac::file_description() {
-  return base::string16();
-}
-
-base::string16 FileVersionInfoMac::legal_trademarks() {
-  return base::string16();
-}
-
-base::string16 FileVersionInfoMac::private_build() {
-  return base::string16();
-}
-
-base::string16 FileVersionInfoMac::file_version() {
-  return product_version();
-}
-
-base::string16 FileVersionInfoMac::original_filename() {
-  return GetString16Value(kCFBundleNameKey);
-}
-
-base::string16 FileVersionInfoMac::special_build() {
-  return base::string16();
-}
-
-base::string16 FileVersionInfoMac::last_change() {
-  return GetString16Value(CFSTR("SCMRevision"));
-}
-
-bool FileVersionInfoMac::is_official_build() {
-#if defined (GOOGLE_CHROME_BUILD)
-  return true;
-#else
-  return false;
-#endif
-}
-
-base::string16 FileVersionInfoMac::GetString16Value(CFStringRef name) {
-  if (bundle_) {
-    NSString *ns_name = base::mac::CFToNSCast(name);
-    NSString* value = [bundle_ objectForInfoDictionaryKey:ns_name];
-    if (value) {
-      return base::SysNSStringToUTF16(value);
-    }
-  }
-  return base::string16();
-}
diff --git a/base/file_version_info_win.cc b/base/file_version_info_win.cc
deleted file mode 100644
index 4affd81..0000000
--- a/base/file_version_info_win.cc
+++ /dev/null
@@ -1,218 +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 "base/file_version_info_win.h"
-
-#include <windows.h>
-#include <stddef.h>
-
-#include "base/files/file_path.h"
-#include "base/logging.h"
-#include "base/threading/thread_restrictions.h"
-#include "base/win/resource_util.h"
-
-using base::FilePath;
-
-namespace {
-
-struct LanguageAndCodePage {
-  WORD language;
-  WORD code_page;
-};
-
-// Returns the \\VarFileInfo\\Translation value extracted from the
-// VS_VERSION_INFO resource in |data|.
-LanguageAndCodePage* GetTranslate(const void* data) {
-  LanguageAndCodePage* translate = nullptr;
-  UINT length;
-  if (::VerQueryValue(data, L"\\VarFileInfo\\Translation",
-                      reinterpret_cast<void**>(&translate), &length)) {
-    return translate;
-  }
-  return nullptr;
-}
-
-VS_FIXEDFILEINFO* GetVsFixedFileInfo(const void* data) {
-  VS_FIXEDFILEINFO* fixed_file_info = nullptr;
-  UINT length;
-  if (::VerQueryValue(data, L"\\", reinterpret_cast<void**>(&fixed_file_info),
-                      &length)) {
-    return fixed_file_info;
-  }
-  return nullptr;
-}
-
-}  // namespace
-
-FileVersionInfoWin::~FileVersionInfoWin() = default;
-
-// static
-FileVersionInfo* FileVersionInfo::CreateFileVersionInfoForModule(
-    HMODULE module) {
-  void* data;
-  size_t version_info_length;
-  const bool has_version_resource = base::win::GetResourceFromModule(
-      module, VS_VERSION_INFO, RT_VERSION, &data, &version_info_length);
-  if (!has_version_resource)
-    return nullptr;
-
-  const LanguageAndCodePage* translate = GetTranslate(data);
-  if (!translate)
-    return nullptr;
-
-  return new FileVersionInfoWin(data, translate->language,
-                                translate->code_page);
-}
-
-// static
-FileVersionInfo* FileVersionInfo::CreateFileVersionInfo(
-    const FilePath& file_path) {
-  base::AssertBlockingAllowed();
-
-  DWORD dummy;
-  const wchar_t* path = file_path.value().c_str();
-  const DWORD length = ::GetFileVersionInfoSize(path, &dummy);
-  if (length == 0)
-    return nullptr;
-
-  std::vector<uint8_t> data(length, 0);
-
-  if (!::GetFileVersionInfo(path, dummy, length, data.data()))
-    return nullptr;
-
-  const LanguageAndCodePage* translate = GetTranslate(data.data());
-  if (!translate)
-    return nullptr;
-
-  return new FileVersionInfoWin(std::move(data), translate->language,
-                                translate->code_page);
-}
-
-base::string16 FileVersionInfoWin::company_name() {
-  return GetStringValue(L"CompanyName");
-}
-
-base::string16 FileVersionInfoWin::company_short_name() {
-  return GetStringValue(L"CompanyShortName");
-}
-
-base::string16 FileVersionInfoWin::internal_name() {
-  return GetStringValue(L"InternalName");
-}
-
-base::string16 FileVersionInfoWin::product_name() {
-  return GetStringValue(L"ProductName");
-}
-
-base::string16 FileVersionInfoWin::product_short_name() {
-  return GetStringValue(L"ProductShortName");
-}
-
-base::string16 FileVersionInfoWin::comments() {
-  return GetStringValue(L"Comments");
-}
-
-base::string16 FileVersionInfoWin::legal_copyright() {
-  return GetStringValue(L"LegalCopyright");
-}
-
-base::string16 FileVersionInfoWin::product_version() {
-  return GetStringValue(L"ProductVersion");
-}
-
-base::string16 FileVersionInfoWin::file_description() {
-  return GetStringValue(L"FileDescription");
-}
-
-base::string16 FileVersionInfoWin::legal_trademarks() {
-  return GetStringValue(L"LegalTrademarks");
-}
-
-base::string16 FileVersionInfoWin::private_build() {
-  return GetStringValue(L"PrivateBuild");
-}
-
-base::string16 FileVersionInfoWin::file_version() {
-  return GetStringValue(L"FileVersion");
-}
-
-base::string16 FileVersionInfoWin::original_filename() {
-  return GetStringValue(L"OriginalFilename");
-}
-
-base::string16 FileVersionInfoWin::special_build() {
-  return GetStringValue(L"SpecialBuild");
-}
-
-base::string16 FileVersionInfoWin::last_change() {
-  return GetStringValue(L"LastChange");
-}
-
-bool FileVersionInfoWin::is_official_build() {
-  return (GetStringValue(L"Official Build").compare(L"1") == 0);
-}
-
-bool FileVersionInfoWin::GetValue(const wchar_t* name,
-                                  std::wstring* value_str) {
-  WORD lang_codepage[8];
-  size_t i = 0;
-  // Use the language and codepage from the DLL.
-  lang_codepage[i++] = language_;
-  lang_codepage[i++] = code_page_;
-  // Use the default language and codepage from the DLL.
-  lang_codepage[i++] = ::GetUserDefaultLangID();
-  lang_codepage[i++] = code_page_;
-  // Use the language from the DLL and Latin codepage (most common).
-  lang_codepage[i++] = language_;
-  lang_codepage[i++] = 1252;
-  // Use the default language and Latin codepage (most common).
-  lang_codepage[i++] = ::GetUserDefaultLangID();
-  lang_codepage[i++] = 1252;
-
-  i = 0;
-  while (i < arraysize(lang_codepage)) {
-    wchar_t sub_block[MAX_PATH];
-    WORD language = lang_codepage[i++];
-    WORD code_page = lang_codepage[i++];
-    _snwprintf_s(sub_block, MAX_PATH, MAX_PATH,
-                 L"\\StringFileInfo\\%04x%04x\\%ls", language, code_page, name);
-    LPVOID value = NULL;
-    uint32_t size;
-    BOOL r = ::VerQueryValue(data_, sub_block, &value, &size);
-    if (r && value) {
-      value_str->assign(static_cast<wchar_t*>(value));
-      return true;
-    }
-  }
-  return false;
-}
-
-std::wstring FileVersionInfoWin::GetStringValue(const wchar_t* name) {
-  std::wstring str;
-  if (GetValue(name, &str))
-    return str;
-  else
-    return L"";
-}
-
-FileVersionInfoWin::FileVersionInfoWin(std::vector<uint8_t>&& data,
-                                       WORD language,
-                                       WORD code_page)
-    : owned_data_(std::move(data)),
-      data_(owned_data_.data()),
-      language_(language),
-      code_page_(code_page),
-      fixed_file_info_(GetVsFixedFileInfo(data_)) {
-  DCHECK(!owned_data_.empty());
-}
-
-FileVersionInfoWin::FileVersionInfoWin(void* data,
-                                       WORD language,
-                                       WORD code_page)
-    : data_(data),
-      language_(language),
-      code_page_(code_page),
-      fixed_file_info_(GetVsFixedFileInfo(data)) {
-  DCHECK(data_);
-}
diff --git a/base/file_version_info_win.h b/base/file_version_info_win.h
deleted file mode 100644
index d91b67f..0000000
--- a/base/file_version_info_win.h
+++ /dev/null
@@ -1,77 +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.
-
-#ifndef BASE_FILE_VERSION_INFO_WIN_H_
-#define BASE_FILE_VERSION_INFO_WIN_H_
-
-#include <windows.h>
-
-#include <stdint.h>
-
-#include <memory>
-#include <string>
-#include <vector>
-
-#include "base/base_export.h"
-#include "base/file_version_info.h"
-#include "base/macros.h"
-
-struct tagVS_FIXEDFILEINFO;
-typedef tagVS_FIXEDFILEINFO VS_FIXEDFILEINFO;
-
-class BASE_EXPORT FileVersionInfoWin : public FileVersionInfo {
- public:
-  ~FileVersionInfoWin() override;
-
-  // Accessors to the different version properties.
-  // Returns an empty string if the property is not found.
-  base::string16 company_name() override;
-  base::string16 company_short_name() override;
-  base::string16 product_name() override;
-  base::string16 product_short_name() override;
-  base::string16 internal_name() override;
-  base::string16 product_version() override;
-  base::string16 private_build() override;
-  base::string16 special_build() override;
-  base::string16 comments() override;
-  base::string16 original_filename() override;
-  base::string16 file_description() override;
-  base::string16 file_version() override;
-  base::string16 legal_copyright() override;
-  base::string16 legal_trademarks() override;
-  base::string16 last_change() override;
-  bool is_official_build() override;
-
-  // Lets you access other properties not covered above.
-  bool GetValue(const wchar_t* name, std::wstring* value);
-
-  // Similar to GetValue but returns a wstring (empty string if the property
-  // does not exist).
-  std::wstring GetStringValue(const wchar_t* name);
-
-  // Get the fixed file info if it exists. Otherwise NULL
-  const VS_FIXEDFILEINFO* fixed_file_info() const { return fixed_file_info_; }
-
- private:
-  friend FileVersionInfo;
-
-  // |data| is a VS_VERSION_INFO resource. |language| and |code_page| are
-  // extracted from the \VarFileInfo\Translation value of |data|.
-  FileVersionInfoWin(std::vector<uint8_t>&& data,
-                     WORD language,
-                     WORD code_page);
-  FileVersionInfoWin(void* data, WORD language, WORD code_page);
-
-  const std::vector<uint8_t> owned_data_;
-  const void* const data_;
-  const WORD language_;
-  const WORD code_page_;
-
-  // This is a pointer into |data_| if it exists. Otherwise nullptr.
-  const VS_FIXEDFILEINFO* const fixed_file_info_;
-
-  DISALLOW_COPY_AND_ASSIGN(FileVersionInfoWin);
-};
-
-#endif  // BASE_FILE_VERSION_INFO_WIN_H_
diff --git a/build/gen.py b/build/gen.py
index 21b4008..01fe35f 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -683,7 +683,6 @@
         'base/debug/debugger_win.cc',
         'base/debug/profiler.cc',
         'base/debug/stack_trace_win.cc',
-        'base/file_version_info_win.cc',
         'base/files/file_enumerator_win.cc',
         'base/files/file_path_watcher_win.cc',
         'base/files/file_util_win.cc',