Commit 292b0f6b authored by Fabrice de Gans-Riberi's avatar Fabrice de Gans-Riberi Committed by Commit Bot

[fuchsia] Add string - bytes vector conversion helpers.

* Replace various implementation of these helpers throughout //fuchsia
  with a common helper.
* Replace a stale bug reference.

Bug: 978696
Change-Id: I7bf29ea00312bfcaa3baff8f8d3f5a724367fc12
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1733419
Commit-Queue: Fabrice de Gans-Riberi <fdegans@chromium.org>
Reviewed-by: default avatarWez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#684166}
parent 46d42eef
...@@ -12,9 +12,11 @@ import("//testing/test.gni") ...@@ -12,9 +12,11 @@ import("//testing/test.gni")
source_set("base") { source_set("base") {
sources = [ sources = [
"mem_buffer_util.cc", "mem_buffer_util.cc",
"string_util.cc",
] ]
public = [ public = [
"mem_buffer_util.h", "mem_buffer_util.h",
"string_util.h",
] ]
deps = [ deps = [
"//base", "//base",
......
// Copyright 2019 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 "fuchsia/base/string_util.h"
namespace cr_fuchsia {
std::vector<uint8_t> StringToBytes(base::StringPiece str) {
const uint8_t* raw_data = reinterpret_cast<const uint8_t*>(str.data());
return std::vector<uint8_t>(raw_data, raw_data + str.length());
}
base::StringPiece BytesAsString(const std::vector<uint8_t>& bytes) {
return base::StringPiece(reinterpret_cast<const char*>(bytes.data()),
bytes.size());
}
} // namespace cr_fuchsia
// Copyright 2019 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 FUCHSIA_BASE_STRING_UTIL_H_
#define FUCHSIA_BASE_STRING_UTIL_H_
#include <cstdint>
#include <vector>
#include "base/containers/span.h"
#include "base/strings/string_piece.h"
namespace cr_fuchsia {
// Creates a byte vector from a string.
std::vector<uint8_t> StringToBytes(base::StringPiece str);
// Creates a string from a byte vector.
base::StringPiece BytesAsString(const std::vector<uint8_t>& bytes);
} // namespace cr_fuchsia
#endif // FUCHSIA_BASE_STRING_UTIL_H_
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
#include <lib/fidl/cpp/binding.h> #include <lib/fidl/cpp/binding.h>
#include <lib/ui/scenic/cpp/view_token_pair.h> #include <lib/ui/scenic/cpp/view_token_pair.h>
#include "base/containers/span.h"
#include "base/bind.h" #include "base/bind.h"
#include "base/fuchsia/fuchsia_logging.h" #include "base/fuchsia/fuchsia_logging.h"
#include "base/macros.h" #include "base/macros.h"
...@@ -21,6 +19,7 @@ ...@@ -21,6 +19,7 @@
#include "fuchsia/base/frame_test_util.h" #include "fuchsia/base/frame_test_util.h"
#include "fuchsia/base/mem_buffer_util.h" #include "fuchsia/base/mem_buffer_util.h"
#include "fuchsia/base/result_receiver.h" #include "fuchsia/base/result_receiver.h"
#include "fuchsia/base/string_util.h"
#include "fuchsia/base/test_navigation_listener.h" #include "fuchsia/base/test_navigation_listener.h"
#include "fuchsia/engine/browser/frame_impl.h" #include "fuchsia/engine/browser/frame_impl.h"
#include "fuchsia/engine/common.h" #include "fuchsia/engine/common.h"
...@@ -80,11 +79,6 @@ class MockWebContentsObserver : public content::WebContentsObserver { ...@@ -80,11 +79,6 @@ class MockWebContentsObserver : public content::WebContentsObserver {
void(content::RenderViewHost* render_view_host)); void(content::RenderViewHost* render_view_host));
}; };
std::vector<uint8_t> StringToUnsignedVector(base::StringPiece str) {
const uint8_t* raw_data = reinterpret_cast<const uint8_t*>(str.data());
return std::vector<uint8_t>(raw_data, raw_data + str.length());
}
std::string StringFromMemBufferOrDie(const fuchsia::mem::Buffer& buffer) { std::string StringFromMemBufferOrDie(const fuchsia::mem::Buffer& buffer) {
std::string output; std::string output;
CHECK(cr_fuchsia::StringFromMemBuffer(buffer, &output)); CHECK(cr_fuchsia::StringFromMemBuffer(buffer, &output));
...@@ -1529,11 +1523,11 @@ IN_PROC_BROWSER_TEST_F(RequestMonitoringFrameImplBrowserTest, ExtraHeaders) { ...@@ -1529,11 +1523,11 @@ IN_PROC_BROWSER_TEST_F(RequestMonitoringFrameImplBrowserTest, ExtraHeaders) {
const GURL page_url(embedded_test_server()->GetURL(kPage1Path)); const GURL page_url(embedded_test_server()->GetURL(kPage1Path));
fuchsia::web::LoadUrlParams load_url_params; fuchsia::web::LoadUrlParams load_url_params;
fuchsia::net::http::Header header1; fuchsia::net::http::Header header1;
header1.name = StringToUnsignedVector("X-ExtraHeaders"); header1.name = cr_fuchsia::StringToBytes("X-ExtraHeaders");
header1.value = StringToUnsignedVector("1"); header1.value = cr_fuchsia::StringToBytes("1");
fuchsia::net::http::Header header2; fuchsia::net::http::Header header2;
header2.name = StringToUnsignedVector("X-2ExtraHeaders"); header2.name = cr_fuchsia::StringToBytes("X-2ExtraHeaders");
header2.value = StringToUnsignedVector("2"); header2.value = cr_fuchsia::StringToBytes("2");
load_url_params.set_headers({header1, header2}); load_url_params.set_headers({header1, header2});
EXPECT_TRUE(cr_fuchsia::LoadUrlAndExpectResponse( EXPECT_TRUE(cr_fuchsia::LoadUrlAndExpectResponse(
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "content/public/browser/navigation_handle.h" #include "content/public/browser/navigation_handle.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
#include "content/public/common/was_activated_option.mojom.h" #include "content/public/common/was_activated_option.mojom.h"
#include "fuchsia/base/string_util.h"
#include "ui/base/page_transition_types.h" #include "ui/base/page_transition_types.h"
namespace { namespace {
...@@ -140,15 +141,10 @@ void NavigationControllerImpl::LoadUrl(std::string url, ...@@ -140,15 +141,10 @@ void NavigationControllerImpl::LoadUrl(std::string url,
std::vector<std::string> extra_headers; std::vector<std::string> extra_headers;
extra_headers.reserve(params.headers().size()); extra_headers.reserve(params.headers().size());
for (const auto& header : params.headers()) { for (const auto& header : params.headers()) {
// TODO(crbug.com/964732): Check there is no colon in |header_name|. // TODO(crbug.com/990525): Validate |header.name| and |header.value|.
base::StringPiece header_name(
reinterpret_cast<const char*>(header.name.data()),
header.name.size());
base::StringPiece header_value(
reinterpret_cast<const char*>(header.value.data()),
header.value.size());
extra_headers.emplace_back( extra_headers.emplace_back(
base::StrCat({header_name, ": ", header_value})); base::StrCat({cr_fuchsia::BytesAsString(header.name), ": ",
cr_fuchsia::BytesAsString(header.value)}));
} }
params_converted.extra_headers = base::JoinString(extra_headers, "\n"); params_converted.extra_headers = base::JoinString(extra_headers, "\n");
} }
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include "fuchsia/base/frame_test_util.h" #include "fuchsia/base/frame_test_util.h"
#include "fuchsia/base/mem_buffer_util.h" #include "fuchsia/base/mem_buffer_util.h"
#include "fuchsia/base/result_receiver.h" #include "fuchsia/base/result_receiver.h"
#include "fuchsia/base/string_util.h"
#include "fuchsia/base/test_navigation_listener.h" #include "fuchsia/base/test_navigation_listener.h"
#include "fuchsia/runners/cast/cast_runner.h" #include "fuchsia/runners/cast/cast_runner.h"
#include "fuchsia/runners/cast/fake_application_config_manager.h" #include "fuchsia/runners/cast/fake_application_config_manager.h"
...@@ -44,11 +45,6 @@ void ComponentErrorHandler(zx_status_t status) { ...@@ -44,11 +45,6 @@ void ComponentErrorHandler(zx_status_t status) {
ADD_FAILURE(); ADD_FAILURE();
} }
std::vector<uint8_t> StringToUnsignedVector(base::StringPiece str) {
const uint8_t* raw_data = reinterpret_cast<const uint8_t*>(str.data());
return std::vector<uint8_t>(raw_data, raw_data + str.length());
}
class FakeAdditionalHeadersProvider class FakeAdditionalHeadersProvider
: public fuchsia::web::AdditionalHeadersProvider { : public fuchsia::web::AdditionalHeadersProvider {
public: public:
...@@ -61,8 +57,8 @@ class FakeAdditionalHeadersProvider ...@@ -61,8 +57,8 @@ class FakeAdditionalHeadersProvider
void GetHeaders(GetHeadersCallback callback) override { void GetHeaders(GetHeadersCallback callback) override {
std::vector<fuchsia::net::http::Header> headers; std::vector<fuchsia::net::http::Header> headers;
fuchsia::net::http::Header header; fuchsia::net::http::Header header;
header.name = StringToUnsignedVector("Test"); header.name = cr_fuchsia::StringToBytes("Test");
header.value = StringToUnsignedVector("Value"); header.value = cr_fuchsia::StringToBytes("Value");
headers.push_back(std::move(header)); headers.push_back(std::move(header));
callback(std::move(headers), 0); callback(std::move(headers), 0);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment