summaryrefslogtreecommitdiff
path: root/chromium/net/quiche/common/platform/impl/quiche_text_utils_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/quiche/common/platform/impl/quiche_text_utils_impl.h')
-rw-r--r--chromium/net/quiche/common/platform/impl/quiche_text_utils_impl.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/chromium/net/quiche/common/platform/impl/quiche_text_utils_impl.h b/chromium/net/quiche/common/platform/impl/quiche_text_utils_impl.h
index 037d5827a08..8f52eaf0fd6 100644
--- a/chromium/net/quiche/common/platform/impl/quiche_text_utils_impl.h
+++ b/chromium/net/quiche/common/platform/impl/quiche_text_utils_impl.h
@@ -7,6 +7,7 @@
#include <algorithm>
#include <cstdint>
+#include <sstream>
#include <string>
#include <vector>
@@ -17,6 +18,7 @@
#include "base/strings/stringprintf.h"
#include "net/base/hex_utils.h"
#include "net/base/parse_number.h"
+#include "net/third_party/quiche/src/common/platform/api/quiche_optional.h"
#include "net/third_party/quiche/src/common/platform/api/quiche_string_piece.h"
namespace quiche {
@@ -29,6 +31,11 @@ class QuicheTextUtilsImpl {
return base::StartsWith(data, prefix, base::CompareCase::SENSITIVE);
}
+ // Returns true if |data| end with |suffix|, case sensitively.
+ static bool EndsWith(QuicheStringPiece data, QuicheStringPiece suffix) {
+ return base::EndsWith(data, suffix, base::CompareCase::SENSITIVE);
+ }
+
// Returns true of |data| ends with |suffix|, case insensitively.
static bool EndsWithIgnoreCase(QuicheStringPiece data,
QuicheStringPiece suffix) {
@@ -115,6 +122,16 @@ class QuicheTextUtilsImpl {
}
}
+ // Decodes a base64-encoded |input|. Returns nullopt when the input is
+ // invalid.
+ static QuicheOptional<std::string> Base64Decode(QuicheStringPiece input) {
+ std::string output;
+ if (!base::Base64Decode(input, &output)) {
+ return QuicheOptional<std::string>();
+ }
+ return output;
+ }
+
// Returns a std::string containing hex and ASCII representations of |binary|,
// side-by-side in the style of hexdump. Non-printable characters will be
// printed as '.' in the ASCII output.