summaryrefslogtreecommitdiff
path: root/chromium/net/base/backoff_entry_serializer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/base/backoff_entry_serializer.cc')
-rw-r--r--chromium/net/base/backoff_entry_serializer.cc49
1 files changed, 27 insertions, 22 deletions
diff --git a/chromium/net/base/backoff_entry_serializer.cc b/chromium/net/base/backoff_entry_serializer.cc
index 6127e5ef229..3375397d18a 100644
--- a/chromium/net/base/backoff_entry_serializer.cc
+++ b/chromium/net/base/backoff_entry_serializer.cc
@@ -36,13 +36,12 @@ bool BackoffDurationSafeToSerialize(const base::TimeDelta& duration) {
namespace net {
-std::unique_ptr<base::Value> BackoffEntrySerializer::SerializeToValue(
- const BackoffEntry& entry,
- base::Time time_now) {
- std::unique_ptr<base::ListValue> serialized(new base::ListValue());
- serialized->AppendInteger(kSerializationFormatVersion);
+base::Value BackoffEntrySerializer::SerializeToValue(const BackoffEntry& entry,
+ base::Time time_now) {
+ std::vector<base::Value> serialized;
+ serialized.emplace_back(kSerializationFormatVersion);
- serialized->AppendInteger(entry.failure_count());
+ serialized.emplace_back(entry.failure_count());
// Convert both |base::TimeTicks| values into |base::TimeDelta| values by
// subtracting |kZeroTicks. This way, the top-level subtraction uses
@@ -67,11 +66,11 @@ std::unique_ptr<base::Value> BackoffEntrySerializer::SerializeToValue(
// Redundantly stores both the remaining time delta and the absolute time.
// The delta is used to work around some cases where wall clock time changes.
- serialized->AppendDouble(backoff_duration.InSecondsF());
- serialized->AppendString(
+ serialized.emplace_back(backoff_duration.InSecondsF());
+ serialized.emplace_back(
base::NumberToString(absolute_release_time.ToInternalValue()));
- return std::move(serialized);
+ return base::Value(std::move(serialized));
}
std::unique_ptr<BackoffEntry> BackoffEntrySerializer::DeserializeFromValue(
@@ -79,29 +78,35 @@ std::unique_ptr<BackoffEntry> BackoffEntrySerializer::DeserializeFromValue(
const BackoffEntry::Policy* policy,
const base::TickClock* tick_clock,
base::Time time_now) {
- const base::ListValue* serialized_list = nullptr;
- if (!serialized.GetAsList(&serialized_list))
+ if (!serialized.is_list())
return nullptr;
- if (serialized_list->GetSize() != 4)
+ const base::Value::ConstListView& list_view = serialized.GetList();
+
+ if (list_view.size() != 4)
return nullptr;
- int version_number;
- if (!serialized_list->GetInteger(0, &version_number) ||
- version_number != kSerializationFormatVersion) {
+
+ if (!list_view[0].is_int())
+ return nullptr;
+ int version_number = list_view[0].GetInt();
+ if (version_number != kSerializationFormatVersion)
return nullptr;
- }
- int failure_count;
- if (!serialized_list->GetInteger(1, &failure_count) || failure_count < 0) {
+ if (!list_view[1].is_int())
+ return nullptr;
+ int failure_count = list_view[1].GetInt();
+ if (failure_count < 0) {
return nullptr;
}
failure_count = std::min(failure_count, kMaxFailureCount);
- double original_backoff_duration_double;
- if (!serialized_list->GetDouble(2, &original_backoff_duration_double))
+ if (!list_view[2].is_double())
return nullptr;
- std::string absolute_release_time_string;
- if (!serialized_list->GetString(3, &absolute_release_time_string))
+ double original_backoff_duration_double = list_view[2].GetDouble();
+
+ if (!list_view[3].is_string())
return nullptr;
+ std::string absolute_release_time_string = list_view[3].GetString();
+
int64_t absolute_release_time_us;
if (!base::StringToInt64(absolute_release_time_string,
&absolute_release_time_us)) {