summaryrefslogtreecommitdiff
path: root/chromium/net/quiche/common
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/net/quiche/common
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-chromium-85-based.tar.gz
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/net/quiche/common')
-rw-r--r--chromium/net/quiche/common/platform/impl/quiche_logging_impl.h2
-rw-r--r--chromium/net/quiche/common/platform/impl/quiche_optional_impl.h2
-rw-r--r--chromium/net/quiche/common/platform/impl/quiche_time_utils_impl.cc50
-rw-r--r--chromium/net/quiche/common/platform/impl/quiche_time_utils_impl.h25
4 files changed, 78 insertions, 1 deletions
diff --git a/chromium/net/quiche/common/platform/impl/quiche_logging_impl.h b/chromium/net/quiche/common/platform/impl/quiche_logging_impl.h
index d3261b023f3..0d1d111be61 100644
--- a/chromium/net/quiche/common/platform/impl/quiche_logging_impl.h
+++ b/chromium/net/quiche/common/platform/impl/quiche_logging_impl.h
@@ -5,7 +5,9 @@
#ifndef NET_QUICHE_COMMON_PLATFORM_IMPL_QUICHE_LOGGING_IMPL_H_
#define NET_QUICHE_COMMON_PLATFORM_IMPL_QUICHE_LOGGING_IMPL_H_
+#include "base/check_op.h"
#include "base/logging.h"
+#include "base/notreached.h"
#include "build/build_config.h"
#include "net/base/net_export.h"
diff --git a/chromium/net/quiche/common/platform/impl/quiche_optional_impl.h b/chromium/net/quiche/common/platform/impl/quiche_optional_impl.h
index bbdb0a80308..9d1648695bc 100644
--- a/chromium/net/quiche/common/platform/impl/quiche_optional_impl.h
+++ b/chromium/net/quiche/common/platform/impl/quiche_optional_impl.h
@@ -12,7 +12,7 @@ namespace quiche {
template <typename T>
using QuicheOptionalImpl = base::Optional<T>;
-#define QuicheNullOptImpl base::nullopt
+#define QUICHE_NULLOPT_IMPL base::nullopt
} // namespace quiche
diff --git a/chromium/net/quiche/common/platform/impl/quiche_time_utils_impl.cc b/chromium/net/quiche/common/platform/impl/quiche_time_utils_impl.cc
new file mode 100644
index 00000000000..7c78cbc5bcb
--- /dev/null
+++ b/chromium/net/quiche/common/platform/impl/quiche_time_utils_impl.cc
@@ -0,0 +1,50 @@
+// Copyright 2020 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 "net/quiche/common/platform/impl/quiche_time_utils_impl.h"
+
+#include "base/time/time.h"
+
+#include <iostream>
+
+namespace quiche {
+QuicheOptional<int64_t> QuicheUtcDateTimeToUnixSecondsInner(int year,
+ int month,
+ int day,
+ int hour,
+ int minute,
+ int second) {
+ base::Time::Exploded exploded{
+ year, month,
+ 0, // day_of_week
+ day, hour, minute, second,
+ };
+ base::Time time;
+ if (!base::Time::FromUTCExploded(exploded, &time)) {
+ return base::nullopt;
+ }
+ return (time - base::Time::UnixEpoch()).InSeconds();
+}
+
+QuicheOptional<int64_t> QuicheUtcDateTimeToUnixSecondsImpl(int year,
+ int month,
+ int day,
+ int hour,
+ int minute,
+ int second) {
+ // Handle leap seconds without letting any other irregularities happen.
+ if (second == 60) {
+ auto previous_second = QuicheUtcDateTimeToUnixSecondsInner(
+ year, month, day, hour, minute, second - 1);
+ if (!previous_second.has_value()) {
+ return base::nullopt;
+ }
+ return *previous_second + 1;
+ }
+
+ return QuicheUtcDateTimeToUnixSecondsInner(year, month, day, hour, minute,
+ second);
+}
+
+} // namespace quiche
diff --git a/chromium/net/quiche/common/platform/impl/quiche_time_utils_impl.h b/chromium/net/quiche/common/platform/impl/quiche_time_utils_impl.h
new file mode 100644
index 00000000000..60dda04eb65
--- /dev/null
+++ b/chromium/net/quiche/common/platform/impl/quiche_time_utils_impl.h
@@ -0,0 +1,25 @@
+// Copyright 2020 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 NET_QUICHE_COMMON_PLATFORM_IMPL_QUICHE_TIME_UTILS_IMPL_H_
+#define NET_QUICHE_COMMON_PLATFORM_IMPL_QUICHE_TIME_UTILS_IMPL_H_
+
+#include <cstdint>
+
+#include "net/base/net_export.h"
+#include "net/third_party/quiche/src/common/platform/api/quiche_optional.h"
+
+namespace quiche {
+
+NET_EXPORT_PRIVATE QuicheOptional<int64_t> QuicheUtcDateTimeToUnixSecondsImpl(
+ int year,
+ int month,
+ int day,
+ int hour,
+ int minute,
+ int second);
+
+} // namespace quiche
+
+#endif // NET_QUICHE_COMMON_PLATFORM_IMPL_QUICHE_TIME_UTILS_IMPL_H_