Remove various unused files
- base/unguessable_token.*
- base/value_conversions.*
- base/version.*
- base/syslog_logging.*
Change-Id: I8fbb339d9c22b4efa1c7565706adc16d435418a4
Reviewed-on: https://gn-review.googlesource.com/1500
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
diff --git a/base/syslog_logging.cc b/base/syslog_logging.cc
deleted file mode 100644
index 03c2b5e..0000000
--- a/base/syslog_logging.cc
+++ /dev/null
@@ -1,118 +0,0 @@
-// Copyright 2016 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/syslog_logging.h"
-
-#if defined(OS_WIN)
-#include <windows.h>
-#include "base/bind.h"
-#include "base/callback_helpers.h"
-#include "base/debug/stack_trace.h"
-#elif defined(OS_LINUX)
-// <syslog.h> defines a LOG_WARNING macro that could conflict with
-// base::LOG_WARNING.
-#include <syslog.h>
-#undef LOG_WARNING
-#endif
-
-#include <ostream>
-#include <string>
-
-namespace logging {
-
-#if defined(OS_WIN)
-
-namespace {
-
-std::string* g_event_source_name = nullptr;
-uint16_t g_category = 0;
-uint32_t g_event_id = 0;
-
-} // namespace
-
-void SetEventSource(const std::string& name,
- uint16_t category,
- uint32_t event_id) {
- DCHECK_EQ(nullptr, g_event_source_name);
- g_event_source_name = new std::string(name);
- g_category = category;
- g_event_id = event_id;
-}
-
-#endif // defined(OS_WIN)
-
-EventLogMessage::EventLogMessage(const char* file,
- int line,
- LogSeverity severity)
- : log_message_(file, line, severity) {
-}
-
-EventLogMessage::~EventLogMessage() {
-#if defined(OS_WIN)
- // If g_event_source_name is nullptr (which it is per default) SYSLOG will
- // degrade gracefully to regular LOG. If you see this happening most probably
- // you are using SYSLOG before you called SetEventSourceName.
- if (g_event_source_name == nullptr)
- return;
-
- HANDLE event_log_handle =
- RegisterEventSourceA(nullptr, g_event_source_name->c_str());
- if (event_log_handle == nullptr) {
- stream() << " !!NOT ADDED TO EVENTLOG!!";
- return;
- }
-
- base::ScopedClosureRunner auto_deregister(
- base::Bind(base::IgnoreResult(&DeregisterEventSource), event_log_handle));
- std::string message(log_message_.str());
- WORD log_type = EVENTLOG_ERROR_TYPE;
- switch (log_message_.severity()) {
- case LOG_INFO:
- log_type = EVENTLOG_INFORMATION_TYPE;
- break;
- case LOG_WARNING:
- log_type = EVENTLOG_WARNING_TYPE;
- break;
- case LOG_ERROR:
- case LOG_FATAL:
- // The price of getting the stack trace is not worth the hassle for
- // non-error conditions.
- base::debug::StackTrace trace;
- message.append(trace.ToString());
- log_type = EVENTLOG_ERROR_TYPE;
- break;
- }
- LPCSTR strings[1] = {message.data()};
- if (!ReportEventA(event_log_handle, log_type, g_category, g_event_id, nullptr,
- 1, 0, strings, nullptr)) {
- stream() << " !!NOT ADDED TO EVENTLOG!!";
- }
-#elif defined(OS_LINUX)
- const char kEventSource[] = "chrome";
- openlog(kEventSource, LOG_NOWAIT | LOG_PID, LOG_USER);
- // We can't use the defined names for the logging severity from syslog.h
- // because they collide with the names of our own severity levels. Therefore
- // we use the actual values which of course do not match ours.
- // See sys/syslog.h for reference.
- int priority = 3;
- switch (log_message_.severity()) {
- case LOG_INFO:
- priority = 6;
- break;
- case LOG_WARNING:
- priority = 4;
- break;
- case LOG_ERROR:
- priority = 3;
- break;
- case LOG_FATAL:
- priority = 2;
- break;
- }
- syslog(priority, "%s", log_message_.str().c_str());
- closelog();
-#endif // defined(OS_WIN)
-}
-
-} // namespace logging
diff --git a/base/syslog_logging.h b/base/syslog_logging.h
deleted file mode 100644
index 2c2ff55..0000000
--- a/base/syslog_logging.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2016 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_SYSLOG_LOGGING_H_
-#define BASE_SYSLOG_LOGGING_H_
-
-#include <iosfwd>
-
-#include "base/logging.h"
-#include "build_config.h"
-
-namespace logging {
-
-// Keep in mind that the syslog is always active regardless of the logging level
-// and applied flags. Use only for important information that a system
-// administrator might need to maintain the browser installation.
-#define SYSLOG_STREAM(severity) \
- COMPACT_GOOGLE_LOG_EX_ ## severity(EventLogMessage).stream()
-#define SYSLOG(severity) \
- SYSLOG_STREAM(severity)
-
-#if defined(OS_WIN)
-// Sets the name, category and event id of the event source for logging to the
-// Windows Event Log. Call this function once before using the SYSLOG macro or
-// otherwise it will behave as a regular LOG macro.
-void BASE_EXPORT SetEventSource(const std::string& name,
- uint16_t category,
- uint32_t event_id);
-#endif // defined(OS_WIN)
-
-// Creates a formatted message on the system event log. That would be the
-// Application Event log on Windows and the messages log file on POSIX systems.
-class BASE_EXPORT EventLogMessage {
- public:
- EventLogMessage(const char* file, int line, LogSeverity severity);
-
- ~EventLogMessage();
-
- std::ostream& stream() { return log_message_.stream(); }
-
- private:
- LogMessage log_message_;
-
- DISALLOW_COPY_AND_ASSIGN(EventLogMessage);
-};
-
-} // namespace logging
-
-#endif // BASE_SYSLOG_LOGGING_H_
diff --git a/base/unguessable_token.cc b/base/unguessable_token.cc
deleted file mode 100644
index 0d8aad3..0000000
--- a/base/unguessable_token.cc
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2016 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/unguessable_token.h"
-
-#include "base/format_macros.h"
-#include "base/rand_util.h"
-#include "base/strings/stringprintf.h"
-
-namespace base {
-
-UnguessableToken::UnguessableToken(uint64_t high, uint64_t low)
- : high_(high), low_(low) {}
-
-std::string UnguessableToken::ToString() const {
- return base::StringPrintf("%016" PRIX64 "%016" PRIX64, high_, low_);
-}
-
-// static
-UnguessableToken UnguessableToken::Create() {
- UnguessableToken token;
- // Use base::RandBytes instead of crypto::RandBytes, because crypto calls the
- // base version directly, and to prevent the dependency from base/ to crypto/.
- base::RandBytes(&token, sizeof(token));
- return token;
-}
-
-// static
-UnguessableToken UnguessableToken::Deserialize(uint64_t high, uint64_t low) {
- // Receiving a zeroed out UnguessableToken from another process means that it
- // was never initialized via Create(). Treat this case as a security issue.
- DCHECK(!(high == 0 && low == 0));
- return UnguessableToken(high, low);
-}
-
-std::ostream& operator<<(std::ostream& out, const UnguessableToken& token) {
- return out << "(" << token.ToString() << ")";
-}
-
-} // namespace base
diff --git a/base/unguessable_token.h b/base/unguessable_token.h
deleted file mode 100644
index 6858e22..0000000
--- a/base/unguessable_token.h
+++ /dev/null
@@ -1,110 +0,0 @@
-// Copyright 2016 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_UNGUESSABLE_TOKEN_H_
-#define BASE_UNGUESSABLE_TOKEN_H_
-
-#include <stdint.h>
-#include <string.h>
-#include <iosfwd>
-#include <tuple>
-
-#include "base/base_export.h"
-#include "base/hash.h"
-#include "base/logging.h"
-
-namespace base {
-
-struct UnguessableTokenHash;
-
-// A UnguessableToken is an 128-bit token generated from a cryptographically
-// strong random source. It can be used as part of a larger aggregate type,
-// or as an ID in and of itself.
-//
-// UnguessableToken can be used to implement "Capability-Based Security".
-// In other words, UnguessableToken can be used when the resource associated
-// with the ID needs to be protected against manipulation by other untrusted
-// agents in the system, and there is no other convenient way to verify the
-// authority of the agent to do so (because the resource is part of a table
-// shared across processes, for instance). In such a scheme, knowledge of the
-// token value in and of itself is sufficient proof of authority to carry out
-// an operation against the associated resource.
-//
-// Use Create() for creating new UnguessableTokens.
-//
-// NOTE: It is illegal to send empty UnguessableTokens across processes, and
-// sending/receiving empty tokens should be treated as a security issue.
-// If there is a valid scenario for sending "no token" across processes,
-// base::Optional should be used instead of an empty token.
-class BASE_EXPORT UnguessableToken {
- public:
- // Create a unique UnguessableToken.
- static UnguessableToken Create();
-
- // Return a UnguessableToken built from the high/low bytes provided.
- // It should only be used in deserialization scenarios.
- //
- // NOTE: If the deserialized token is empty, it means that it was never
- // initialized via Create(). This is a security issue, and should be handled.
- static UnguessableToken Deserialize(uint64_t high, uint64_t low);
-
- // Creates an empty UnguessableToken.
- // Assign to it with Create() before using it.
- constexpr UnguessableToken() = default;
-
- // NOTE: Serializing an empty UnguessableToken is an illegal operation.
- uint64_t GetHighForSerialization() const {
- DCHECK(!is_empty());
- return high_;
- }
-
- // NOTE: Serializing an empty UnguessableToken is an illegal operation.
- uint64_t GetLowForSerialization() const {
- DCHECK(!is_empty());
- return low_;
- }
-
- bool is_empty() const { return high_ == 0 && low_ == 0; }
-
- // Hex representation of the unguessable token.
- std::string ToString() const;
-
- explicit operator bool() const { return !is_empty(); }
-
- bool operator<(const UnguessableToken& other) const {
- return std::tie(high_, low_) < std::tie(other.high_, other.low_);
- }
-
- bool operator==(const UnguessableToken& other) const {
- return high_ == other.high_ && low_ == other.low_;
- }
-
- bool operator!=(const UnguessableToken& other) const {
- return !(*this == other);
- }
-
- private:
- friend struct UnguessableTokenHash;
- UnguessableToken(uint64_t high, uint64_t low);
-
- // Note: Two uint64_t are used instead of uint8_t[16], in order to have a
- // simpler ToString() and is_empty().
- uint64_t high_ = 0;
- uint64_t low_ = 0;
-};
-
-BASE_EXPORT std::ostream& operator<<(std::ostream& out,
- const UnguessableToken& token);
-
-// For use in std::unordered_map.
-struct UnguessableTokenHash {
- size_t operator()(const base::UnguessableToken& token) const {
- DCHECK(token);
- return base::HashInts64(token.high_, token.low_);
- }
-};
-
-} // namespace base
-
-#endif // BASE_UNGUESSABLE_TOKEN_H_
diff --git a/base/value_conversions.cc b/base/value_conversions.cc
deleted file mode 100644
index 7e3fd94..0000000
--- a/base/value_conversions.cc
+++ /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.
-
-#include "base/value_conversions.h"
-
-#include <stdint.h>
-
-#include <algorithm>
-#include <string>
-#include <vector>
-
-#include "base/files/file_path.h"
-#include "base/memory/ptr_util.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/time/time.h"
-#include "base/unguessable_token.h"
-#include "base/values.h"
-
-namespace base {
-namespace {
-// Helper for serialize/deserialize UnguessableToken.
-union UnguessableTokenRepresentation {
- struct Field {
- uint64_t high;
- uint64_t low;
- } field;
-
- uint8_t buffer[sizeof(Field)];
-};
-} // namespace
-
-// |Value| internally stores strings in UTF-8, so we have to convert from the
-// system native code to UTF-8 and back.
-std::unique_ptr<Value> CreateFilePathValue(const FilePath& in_value) {
- return std::make_unique<Value>(in_value.AsUTF8Unsafe());
-}
-
-bool GetValueAsFilePath(const Value& value, FilePath* file_path) {
- std::string str;
- if (!value.GetAsString(&str))
- return false;
- if (file_path)
- *file_path = FilePath::FromUTF8Unsafe(str);
- return true;
-}
-
-// |Value| does not support 64-bit integers, and doubles do not have enough
-// precision, so we store the 64-bit time value as a string instead.
-std::unique_ptr<Value> CreateTimeDeltaValue(const TimeDelta& time) {
- std::string string_value = base::Int64ToString(time.ToInternalValue());
- return std::make_unique<Value>(string_value);
-}
-
-bool GetValueAsTimeDelta(const Value& value, TimeDelta* time) {
- std::string str;
- int64_t int_value;
- if (!value.GetAsString(&str) || !base::StringToInt64(str, &int_value))
- return false;
- if (time)
- *time = TimeDelta::FromInternalValue(int_value);
- return true;
-}
-
-std::unique_ptr<Value> CreateUnguessableTokenValue(
- const UnguessableToken& token) {
- UnguessableTokenRepresentation representation;
- representation.field.high = token.GetHighForSerialization();
- representation.field.low = token.GetLowForSerialization();
-
- return std::make_unique<Value>(
- HexEncode(representation.buffer, sizeof(representation.buffer)));
-}
-
-bool GetValueAsUnguessableToken(const Value& value, UnguessableToken* token) {
- if (!value.is_string()) {
- return false;
- }
-
- // TODO(dcheng|yucliu): Make a function that accepts non vector variant and
- // reads a fixed number of bytes.
- std::vector<uint8_t> high_low_bytes;
- if (!HexStringToBytes(value.GetString(), &high_low_bytes)) {
- return false;
- }
-
- UnguessableTokenRepresentation representation;
- if (high_low_bytes.size() != sizeof(representation.buffer)) {
- return false;
- }
-
- std::copy(high_low_bytes.begin(), high_low_bytes.end(),
- std::begin(representation.buffer));
- *token = UnguessableToken::Deserialize(representation.field.high,
- representation.field.low);
- return true;
-}
-
-} // namespace base
diff --git a/base/value_conversions.h b/base/value_conversions.h
deleted file mode 100644
index bd095cd..0000000
--- a/base/value_conversions.h
+++ /dev/null
@@ -1,35 +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.
-
-#ifndef BASE_VALUE_CONVERSIONS_H_
-#define BASE_VALUE_CONVERSIONS_H_
-
-// This file contains methods to convert things to a |Value| and back.
-
-#include <memory>
-#include "base/base_export.h"
-
-namespace base {
-
-class FilePath;
-class TimeDelta;
-class UnguessableToken;
-class Value;
-
-// The caller takes ownership of the returned value.
-BASE_EXPORT std::unique_ptr<Value> CreateFilePathValue(
- const FilePath& in_value);
-BASE_EXPORT bool GetValueAsFilePath(const Value& value, FilePath* file_path);
-
-BASE_EXPORT std::unique_ptr<Value> CreateTimeDeltaValue(const TimeDelta& time);
-BASE_EXPORT bool GetValueAsTimeDelta(const Value& value, TimeDelta* time);
-
-BASE_EXPORT std::unique_ptr<Value> CreateUnguessableTokenValue(
- const UnguessableToken& token);
-BASE_EXPORT bool GetValueAsUnguessableToken(const Value& value,
- UnguessableToken* token);
-
-} // namespace base
-
-#endif // BASE_VALUE_CONVERSIONS_H_
diff --git a/base/version.cc b/base/version.cc
deleted file mode 100644
index 3a54607..0000000
--- a/base/version.cc
+++ /dev/null
@@ -1,194 +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/version.h"
-
-#include <stddef.h>
-
-#include <algorithm>
-
-#include "base/logging.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/strings/string_split.h"
-#include "base/strings/string_util.h"
-
-namespace base {
-
-namespace {
-
-// Parses the |numbers| vector representing the different numbers
-// inside the version string and constructs a vector of valid integers. It stops
-// when it reaches an invalid item (including the wildcard character). |parsed|
-// is the resulting integer vector. Function returns true if all numbers were
-// parsed successfully, false otherwise.
-bool ParseVersionNumbers(const std::string& version_str,
- std::vector<uint32_t>* parsed) {
- std::vector<StringPiece> numbers =
- SplitStringPiece(version_str, ".", KEEP_WHITESPACE, SPLIT_WANT_ALL);
- if (numbers.empty())
- return false;
-
- for (auto it = numbers.begin(); it != numbers.end(); ++it) {
- if (StartsWith(*it, "+", CompareCase::SENSITIVE))
- return false;
-
- unsigned int num;
- if (!StringToUint(*it, &num))
- return false;
-
- // This throws out leading zeros for the first item only.
- if (it == numbers.begin() && UintToString(num) != *it)
- return false;
-
- // StringToUint returns unsigned int but Version fields are uint32_t.
- static_assert(sizeof (uint32_t) == sizeof (unsigned int),
- "uint32_t must be same as unsigned int");
- parsed->push_back(num);
- }
- return true;
-}
-
-// Compares version components in |components1| with components in
-// |components2|. Returns -1, 0 or 1 if |components1| is less than, equal to,
-// or greater than |components2|, respectively.
-int CompareVersionComponents(const std::vector<uint32_t>& components1,
- const std::vector<uint32_t>& components2) {
- const size_t count = std::min(components1.size(), components2.size());
- for (size_t i = 0; i < count; ++i) {
- if (components1[i] > components2[i])
- return 1;
- if (components1[i] < components2[i])
- return -1;
- }
- if (components1.size() > components2.size()) {
- for (size_t i = count; i < components1.size(); ++i) {
- if (components1[i] > 0)
- return 1;
- }
- } else if (components1.size() < components2.size()) {
- for (size_t i = count; i < components2.size(); ++i) {
- if (components2[i] > 0)
- return -1;
- }
- }
- return 0;
-}
-
-} // namespace
-
-Version::Version() = default;
-
-Version::Version(const Version& other) = default;
-
-Version::~Version() = default;
-
-Version::Version(const std::string& version_str) {
- std::vector<uint32_t> parsed;
- if (!ParseVersionNumbers(version_str, &parsed))
- return;
-
- components_.swap(parsed);
-}
-
-Version::Version(std::vector<uint32_t> components)
- : components_(std::move(components)) {}
-
-bool Version::IsValid() const {
- return (!components_.empty());
-}
-
-// static
-bool Version::IsValidWildcardString(const std::string& wildcard_string) {
- std::string version_string = wildcard_string;
- if (EndsWith(version_string, ".*", CompareCase::SENSITIVE))
- version_string.resize(version_string.size() - 2);
-
- Version version(version_string);
- return version.IsValid();
-}
-
-int Version::CompareToWildcardString(const std::string& wildcard_string) const {
- DCHECK(IsValid());
- DCHECK(Version::IsValidWildcardString(wildcard_string));
-
- // Default behavior if the string doesn't end with a wildcard.
- if (!EndsWith(wildcard_string, ".*", CompareCase::SENSITIVE)) {
- Version version(wildcard_string);
- DCHECK(version.IsValid());
- return CompareTo(version);
- }
-
- std::vector<uint32_t> parsed;
- const bool success = ParseVersionNumbers(
- wildcard_string.substr(0, wildcard_string.length() - 2), &parsed);
- DCHECK(success);
- const int comparison = CompareVersionComponents(components_, parsed);
- // If the version is smaller than the wildcard version's |parsed| vector,
- // then the wildcard has no effect (e.g. comparing 1.2.3 and 1.3.*) and the
- // version is still smaller. Same logic for equality (e.g. comparing 1.2.2 to
- // 1.2.2.* is 0 regardless of the wildcard). Under this logic,
- // 1.2.0.0.0.0 compared to 1.2.* is 0.
- if (comparison == -1 || comparison == 0)
- return comparison;
-
- // Catch the case where the digits of |parsed| are found in |components_|,
- // which means that the two are equal since |parsed| has a trailing "*".
- // (e.g. 1.2.3 vs. 1.2.* will return 0). All other cases return 1 since
- // components is greater (e.g. 3.2.3 vs 1.*).
- DCHECK_GT(parsed.size(), 0UL);
- const size_t min_num_comp = std::min(components_.size(), parsed.size());
- for (size_t i = 0; i < min_num_comp; ++i) {
- if (components_[i] != parsed[i])
- return 1;
- }
- return 0;
-}
-
-int Version::CompareTo(const Version& other) const {
- DCHECK(IsValid());
- DCHECK(other.IsValid());
- return CompareVersionComponents(components_, other.components_);
-}
-
-const std::string Version::GetString() const {
- DCHECK(IsValid());
- std::string version_str;
- size_t count = components_.size();
- for (size_t i = 0; i < count - 1; ++i) {
- version_str.append(UintToString(components_[i]));
- version_str.append(".");
- }
- version_str.append(UintToString(components_[count - 1]));
- return version_str;
-}
-
-bool operator==(const Version& v1, const Version& v2) {
- return v1.CompareTo(v2) == 0;
-}
-
-bool operator!=(const Version& v1, const Version& v2) {
- return !(v1 == v2);
-}
-
-bool operator<(const Version& v1, const Version& v2) {
- return v1.CompareTo(v2) < 0;
-}
-
-bool operator<=(const Version& v1, const Version& v2) {
- return v1.CompareTo(v2) <= 0;
-}
-
-bool operator>(const Version& v1, const Version& v2) {
- return v1.CompareTo(v2) > 0;
-}
-
-bool operator>=(const Version& v1, const Version& v2) {
- return v1.CompareTo(v2) >= 0;
-}
-
-std::ostream& operator<<(std::ostream& stream, const Version& v) {
- return stream << v.GetString();
-}
-
-} // namespace base
diff --git a/base/version.h b/base/version.h
deleted file mode 100644
index b3a0956..0000000
--- a/base/version.h
+++ /dev/null
@@ -1,76 +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.
-
-#ifndef BASE_VERSION_H_
-#define BASE_VERSION_H_
-
-#include <stdint.h>
-
-#include <iosfwd>
-#include <string>
-#include <vector>
-
-#include "base/base_export.h"
-
-namespace base {
-
-// Version represents a dotted version number, like "1.2.3.4", supporting
-// parsing and comparison.
-class BASE_EXPORT Version {
- public:
- // The only thing you can legally do to a default constructed
- // Version object is assign to it.
- Version();
-
- Version(const Version& other);
-
- // Initializes from a decimal dotted version number, like "0.1.1".
- // Each component is limited to a uint16_t. Call IsValid() to learn
- // the outcome.
- explicit Version(const std::string& version_str);
-
- // Initializes from a vector of components, like {1, 2, 3, 4}. Call IsValid()
- // to learn the outcome.
- explicit Version(std::vector<uint32_t> components);
-
- ~Version();
-
- // Returns true if the object contains a valid version number.
- bool IsValid() const;
-
- // Returns true if the version wildcard string is valid. The version wildcard
- // string may end with ".*" (e.g. 1.2.*, 1.*). Any other arrangement with "*"
- // is invalid (e.g. 1.*.3 or 1.2.3*). This functions defaults to standard
- // Version behavior (IsValid) if no wildcard is present.
- static bool IsValidWildcardString(const std::string& wildcard_string);
-
- // Returns -1, 0, 1 for <, ==, >.
- int CompareTo(const Version& other) const;
-
- // Given a valid version object, compare if a |wildcard_string| results in a
- // newer version. This function will default to CompareTo if the string does
- // not end in wildcard sequence ".*". IsValidWildcard(wildcard_string) must be
- // true before using this function.
- int CompareToWildcardString(const std::string& wildcard_string) const;
-
- // Return the string representation of this version.
- const std::string GetString() const;
-
- const std::vector<uint32_t>& components() const { return components_; }
-
- private:
- std::vector<uint32_t> components_;
-};
-
-BASE_EXPORT bool operator==(const Version& v1, const Version& v2);
-BASE_EXPORT bool operator!=(const Version& v1, const Version& v2);
-BASE_EXPORT bool operator<(const Version& v1, const Version& v2);
-BASE_EXPORT bool operator<=(const Version& v1, const Version& v2);
-BASE_EXPORT bool operator>(const Version& v1, const Version& v2);
-BASE_EXPORT bool operator>=(const Version& v1, const Version& v2);
-BASE_EXPORT std::ostream& operator<<(std::ostream& stream, const Version& v);
-
-} // namespace base
-
-#endif // BASE_VERSION_H_
diff --git a/build/gen.py b/build/gen.py
index 95f8fe1..9e2ab8f 100755
--- a/build/gen.py
+++ b/build/gen.py
@@ -342,7 +342,6 @@
'base/time/time.cc',
'base/timer/elapsed_timer.cc',
'base/timer/timer.cc',
- 'base/unguessable_token.cc',
'base/value_iterators.cc',
'base/values.cc',
'base/vlog.cc',