0

Roll Fuchsia SDK from 497d151e24e6 to 3b3374c29e5c

This CL includes sergeyu@'s fixes for compatibility with new FIDL, from
https://chromium-review.googlesource.com/c/chromium/src/+/1391849

In future FIDL will use std::string and std::vector for non-nullable
strings and vectors. This change updates files that depend on FIDL
to use the new types.

The AutoRoll server is located here: https://autoroll.skia.org/r/fuchsia-sdk-chromium-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


CQ_INCLUDE_TRYBOTS=luci.chromium.try:fuchsia-arm64-cast;luci.chromium.try:fuchsia-x64-cast
TBR=sergeyu

Change-Id: Ib8565264e2820d86fda0e1a755e18f78addf2342
Reviewed-on: https://chromium-review.googlesource.com/c/1408352
Reviewed-by: Wez <wez@chromium.org>
Commit-Queue: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622334}
This commit is contained in:
Wez
2019-01-13 06:49:50 +00:00
committed by Commit Bot
parent bab4f10a00
commit 3a12771bd7
22 changed files with 191 additions and 227 deletions

@@ -226,19 +226,14 @@ class TestolaImpl : public fidljstest::Testola {
void PrintInt(int32_t number) override { received_int_ = number; } void PrintInt(int32_t number) override { received_int_ = number; }
void PrintMsg(fidl::StringPtr message) override { void PrintMsg(std::string message) override { received_msg_ = message; }
std::string as_str = message.get();
received_msg_ = as_str;
}
void VariousArgs(fidljstest::Blorp blorp, void VariousArgs(fidljstest::Blorp blorp,
fidl::StringPtr msg, std::string msg,
fidl::VectorPtr<uint32_t> stuff) override { std::vector<uint32_t> stuff) override {
std::string msg_as_str = msg.get();
std::vector<uint32_t> stuff_as_vec = stuff.get();
various_blorp_ = blorp; various_blorp_ = blorp;
various_msg_ = msg_as_str; various_msg_ = msg;
various_stuff_ = stuff_as_vec; various_stuff_ = stuff;
} }
void WithResponse(int32_t a, void WithResponse(int32_t a,
@@ -277,15 +272,15 @@ class TestolaImpl : public fidljstest::Testola {
sat.arrrr[i] = static_cast<int32_t>(i * 5) - 10; sat.arrrr[i] = static_cast<int32_t>(i * 5) - 10;
} }
sat.nullable_vector_of_string0 = nullptr; sat.nullable_vector_of_string0 = nullptr;
fidl::VectorPtr<fidl::StringPtr> vector_of_str; std::vector<std::string> vector_of_str;
vector_of_str.push_back("passed_str0"); vector_of_str.push_back("passed_str0");
vector_of_str.push_back("passed_str1"); vector_of_str.push_back("passed_str1");
sat.nullable_vector_of_string1 = std::move(vector_of_str); sat.nullable_vector_of_string1.reset(std::move(vector_of_str));
fidl::VectorPtr<fidljstest::Blorp> vector_of_blorp; std::vector<fidljstest::Blorp> vector_of_blorp;
vector_of_blorp->push_back(fidljstest::Blorp::GAMMA); vector_of_blorp.push_back(fidljstest::Blorp::GAMMA);
vector_of_blorp->push_back(fidljstest::Blorp::BETA); vector_of_blorp.push_back(fidljstest::Blorp::BETA);
vector_of_blorp->push_back(fidljstest::Blorp::BETA); vector_of_blorp.push_back(fidljstest::Blorp::BETA);
vector_of_blorp->push_back(fidljstest::Blorp::ALPHA); vector_of_blorp.push_back(fidljstest::Blorp::ALPHA);
sat.vector_of_blorp = std::move(vector_of_blorp); sat.vector_of_blorp = std::move(vector_of_blorp);
resp(std::move(sat)); resp(std::move(sat));
@@ -330,37 +325,36 @@ class TestolaImpl : public fidljstest::Testola {
callback(std::move(resp)); callback(std::move(resp));
} }
void SendVectorsOfString( void SendVectorsOfString(std::vector<std::string> unsized,
fidl::VectorPtr<fidl::StringPtr> unsized, std::vector<fidl::StringPtr> nullable,
fidl::VectorPtr<fidl::StringPtr> nullable, std::vector<std::string> max_strlen) override {
fidl::VectorPtr<fidl::StringPtr> max_strlen) override { ASSERT_EQ(unsized.size(), 3u);
ASSERT_EQ(unsized->size(), 3u); EXPECT_EQ(unsized[0], "str0");
EXPECT_EQ((*unsized)[0], "str0"); EXPECT_EQ(unsized[1], "str1");
EXPECT_EQ((*unsized)[1], "str1"); EXPECT_EQ(unsized[2], "str2");
EXPECT_EQ((*unsized)[2], "str2");
ASSERT_EQ(nullable->size(), 5u); ASSERT_EQ(nullable.size(), 5u);
EXPECT_EQ((*nullable)[0], "str3"); EXPECT_EQ(nullable[0], "str3");
EXPECT_TRUE((*nullable)[1].is_null()); EXPECT_TRUE(nullable[1].is_null());
EXPECT_TRUE((*nullable)[2].is_null()); EXPECT_TRUE(nullable[2].is_null());
EXPECT_TRUE((*nullable)[3].is_null()); EXPECT_TRUE(nullable[3].is_null());
EXPECT_EQ((*nullable)[4], "str4"); EXPECT_EQ(nullable[4], "str4");
ASSERT_EQ(max_strlen->size(), 1u); ASSERT_EQ(max_strlen.size(), 1u);
EXPECT_EQ((*max_strlen)[0], "0123456789"); EXPECT_EQ(max_strlen[0], "0123456789");
did_get_vectors_of_string_ = true; did_get_vectors_of_string_ = true;
} }
void VectorOfStruct(fidl::VectorPtr<fidljstest::StructWithUint> stuff, void VectorOfStruct(std::vector<fidljstest::StructWithUint> stuff,
VectorOfStructCallback callback) override { VectorOfStructCallback callback) override {
ASSERT_EQ(stuff->size(), 4u); ASSERT_EQ(stuff.size(), 4u);
EXPECT_EQ((*stuff)[0].num, 456u); EXPECT_EQ(stuff[0].num, 456u);
EXPECT_EQ((*stuff)[1].num, 789u); EXPECT_EQ(stuff[1].num, 789u);
EXPECT_EQ((*stuff)[2].num, 123u); EXPECT_EQ(stuff[2].num, 123u);
EXPECT_EQ((*stuff)[3].num, 0xfffffu); EXPECT_EQ(stuff[3].num, 0xfffffu);
fidl::VectorPtr<fidljstest::StructWithUint> response; std::vector<fidljstest::StructWithUint> response;
fidljstest::StructWithUint a; fidljstest::StructWithUint a;
a.num = 369; a.num = 369;
response.push_back(a); response.push_back(a);
@@ -373,99 +367,99 @@ class TestolaImpl : public fidljstest::Testola {
void PassVectorOfPrimitives( void PassVectorOfPrimitives(
fidljstest::VectorsOfPrimitives input, fidljstest::VectorsOfPrimitives input,
PassVectorOfPrimitivesCallback callback) override { PassVectorOfPrimitivesCallback callback) override {
ASSERT_EQ(input.v_bool->size(), 1u); ASSERT_EQ(input.v_bool.size(), 1u);
ASSERT_EQ(input.v_uint8->size(), 2u); ASSERT_EQ(input.v_uint8.size(), 2u);
ASSERT_EQ(input.v_uint16->size(), 3u); ASSERT_EQ(input.v_uint16.size(), 3u);
ASSERT_EQ(input.v_uint32->size(), 4u); ASSERT_EQ(input.v_uint32.size(), 4u);
ASSERT_EQ(input.v_uint64->size(), 5u); ASSERT_EQ(input.v_uint64.size(), 5u);
ASSERT_EQ(input.v_int8->size(), 6u); ASSERT_EQ(input.v_int8.size(), 6u);
ASSERT_EQ(input.v_int16->size(), 7u); ASSERT_EQ(input.v_int16.size(), 7u);
ASSERT_EQ(input.v_int32->size(), 8u); ASSERT_EQ(input.v_int32.size(), 8u);
ASSERT_EQ(input.v_int64->size(), 9u); ASSERT_EQ(input.v_int64.size(), 9u);
ASSERT_EQ(input.v_float32->size(), 10u); ASSERT_EQ(input.v_float32.size(), 10u);
ASSERT_EQ(input.v_float64->size(), 11u); ASSERT_EQ(input.v_float64.size(), 11u);
EXPECT_EQ((*input.v_bool)[0], true); EXPECT_EQ(input.v_bool[0], true);
EXPECT_EQ((*input.v_uint8)[0], 2u); EXPECT_EQ(input.v_uint8[0], 2u);
EXPECT_EQ((*input.v_uint8)[1], 3u); EXPECT_EQ(input.v_uint8[1], 3u);
EXPECT_EQ((*input.v_uint16)[0], 4u); EXPECT_EQ(input.v_uint16[0], 4u);
EXPECT_EQ((*input.v_uint16)[1], 5u); EXPECT_EQ(input.v_uint16[1], 5u);
EXPECT_EQ((*input.v_uint16)[2], 6u); EXPECT_EQ(input.v_uint16[2], 6u);
EXPECT_EQ((*input.v_uint32)[0], 7u); EXPECT_EQ(input.v_uint32[0], 7u);
EXPECT_EQ((*input.v_uint32)[1], 8u); EXPECT_EQ(input.v_uint32[1], 8u);
EXPECT_EQ((*input.v_uint32)[2], 9u); EXPECT_EQ(input.v_uint32[2], 9u);
EXPECT_EQ((*input.v_uint32)[3], 10u); EXPECT_EQ(input.v_uint32[3], 10u);
EXPECT_EQ((*input.v_uint64)[0], 11u); EXPECT_EQ(input.v_uint64[0], 11u);
EXPECT_EQ((*input.v_uint64)[1], 12u); EXPECT_EQ(input.v_uint64[1], 12u);
EXPECT_EQ((*input.v_uint64)[2], 13u); EXPECT_EQ(input.v_uint64[2], 13u);
EXPECT_EQ((*input.v_uint64)[3], 14u); EXPECT_EQ(input.v_uint64[3], 14u);
EXPECT_EQ((*input.v_uint64)[4], 0xffffffffffffff00ULL); EXPECT_EQ(input.v_uint64[4], 0xffffffffffffff00ULL);
EXPECT_EQ((*input.v_int8)[0], -16); EXPECT_EQ(input.v_int8[0], -16);
EXPECT_EQ((*input.v_int8)[1], -17); EXPECT_EQ(input.v_int8[1], -17);
EXPECT_EQ((*input.v_int8)[2], -18); EXPECT_EQ(input.v_int8[2], -18);
EXPECT_EQ((*input.v_int8)[3], -19); EXPECT_EQ(input.v_int8[3], -19);
EXPECT_EQ((*input.v_int8)[4], -20); EXPECT_EQ(input.v_int8[4], -20);
EXPECT_EQ((*input.v_int8)[5], -21); EXPECT_EQ(input.v_int8[5], -21);
EXPECT_EQ((*input.v_int16)[0], -22); EXPECT_EQ(input.v_int16[0], -22);
EXPECT_EQ((*input.v_int16)[1], -23); EXPECT_EQ(input.v_int16[1], -23);
EXPECT_EQ((*input.v_int16)[2], -24); EXPECT_EQ(input.v_int16[2], -24);
EXPECT_EQ((*input.v_int16)[3], -25); EXPECT_EQ(input.v_int16[3], -25);
EXPECT_EQ((*input.v_int16)[4], -26); EXPECT_EQ(input.v_int16[4], -26);
EXPECT_EQ((*input.v_int16)[5], -27); EXPECT_EQ(input.v_int16[5], -27);
EXPECT_EQ((*input.v_int16)[6], -28); EXPECT_EQ(input.v_int16[6], -28);
EXPECT_EQ((*input.v_int32)[0], -29); EXPECT_EQ(input.v_int32[0], -29);
EXPECT_EQ((*input.v_int32)[1], -30); EXPECT_EQ(input.v_int32[1], -30);
EXPECT_EQ((*input.v_int32)[2], -31); EXPECT_EQ(input.v_int32[2], -31);
EXPECT_EQ((*input.v_int32)[3], -32); EXPECT_EQ(input.v_int32[3], -32);
EXPECT_EQ((*input.v_int32)[4], -33); EXPECT_EQ(input.v_int32[4], -33);
EXPECT_EQ((*input.v_int32)[5], -34); EXPECT_EQ(input.v_int32[5], -34);
EXPECT_EQ((*input.v_int32)[6], -35); EXPECT_EQ(input.v_int32[6], -35);
EXPECT_EQ((*input.v_int32)[7], -36); EXPECT_EQ(input.v_int32[7], -36);
EXPECT_EQ((*input.v_int64)[0], -37); EXPECT_EQ(input.v_int64[0], -37);
EXPECT_EQ((*input.v_int64)[1], -38); EXPECT_EQ(input.v_int64[1], -38);
EXPECT_EQ((*input.v_int64)[2], -39); EXPECT_EQ(input.v_int64[2], -39);
EXPECT_EQ((*input.v_int64)[3], -40); EXPECT_EQ(input.v_int64[3], -40);
EXPECT_EQ((*input.v_int64)[4], -41); EXPECT_EQ(input.v_int64[4], -41);
EXPECT_EQ((*input.v_int64)[5], -42); EXPECT_EQ(input.v_int64[5], -42);
EXPECT_EQ((*input.v_int64)[6], -43); EXPECT_EQ(input.v_int64[6], -43);
EXPECT_EQ((*input.v_int64)[7], -44); EXPECT_EQ(input.v_int64[7], -44);
EXPECT_EQ((*input.v_int64)[8], -0x7fffffffffffffffLL); EXPECT_EQ(input.v_int64[8], -0x7fffffffffffffffLL);
EXPECT_EQ((*input.v_float32)[0], 46.f); EXPECT_EQ(input.v_float32[0], 46.f);
EXPECT_EQ((*input.v_float32)[1], 47.f); EXPECT_EQ(input.v_float32[1], 47.f);
EXPECT_EQ((*input.v_float32)[2], 48.f); EXPECT_EQ(input.v_float32[2], 48.f);
EXPECT_EQ((*input.v_float32)[3], 49.f); EXPECT_EQ(input.v_float32[3], 49.f);
EXPECT_EQ((*input.v_float32)[4], 50.f); EXPECT_EQ(input.v_float32[4], 50.f);
EXPECT_EQ((*input.v_float32)[5], 51.f); EXPECT_EQ(input.v_float32[5], 51.f);
EXPECT_EQ((*input.v_float32)[6], 52.f); EXPECT_EQ(input.v_float32[6], 52.f);
EXPECT_EQ((*input.v_float32)[7], 53.f); EXPECT_EQ(input.v_float32[7], 53.f);
EXPECT_EQ((*input.v_float32)[8], 54.f); EXPECT_EQ(input.v_float32[8], 54.f);
EXPECT_EQ((*input.v_float32)[9], 55.f); EXPECT_EQ(input.v_float32[9], 55.f);
EXPECT_EQ((*input.v_float64)[0], 56.0); EXPECT_EQ(input.v_float64[0], 56.0);
EXPECT_EQ((*input.v_float64)[1], 57.0); EXPECT_EQ(input.v_float64[1], 57.0);
EXPECT_EQ((*input.v_float64)[2], 58.0); EXPECT_EQ(input.v_float64[2], 58.0);
EXPECT_EQ((*input.v_float64)[3], 59.0); EXPECT_EQ(input.v_float64[3], 59.0);
EXPECT_EQ((*input.v_float64)[4], 60.0); EXPECT_EQ(input.v_float64[4], 60.0);
EXPECT_EQ((*input.v_float64)[5], 61.0); EXPECT_EQ(input.v_float64[5], 61.0);
EXPECT_EQ((*input.v_float64)[6], 62.0); EXPECT_EQ(input.v_float64[6], 62.0);
EXPECT_EQ((*input.v_float64)[7], 63.0); EXPECT_EQ(input.v_float64[7], 63.0);
EXPECT_EQ((*input.v_float64)[8], 64.0); EXPECT_EQ(input.v_float64[8], 64.0);
EXPECT_EQ((*input.v_float64)[9], 65.0); EXPECT_EQ(input.v_float64[9], 65.0);
EXPECT_EQ((*input.v_float64)[10], 66.0); EXPECT_EQ(input.v_float64[10], 66.0);
fidljstest::VectorsOfPrimitives output = std::move(input); fidljstest::VectorsOfPrimitives output = std::move(input);
#define INC_OUTPUT_ARRAY(v) \ #define INC_OUTPUT_ARRAY(v) \
for (size_t i = 0; i < output.v->size(); ++i) { \ for (size_t i = 0; i < output.v.size(); ++i) { \
(*output.v)[i] += 10; \ output.v[i] += 10; \
} }
INC_OUTPUT_ARRAY(v_uint8); INC_OUTPUT_ARRAY(v_uint8);
INC_OUTPUT_ARRAY(v_uint16); INC_OUTPUT_ARRAY(v_uint16);

@@ -1 +1 @@
497d151e24e6a0911a9aa326ed148eb7a2f09782 3b3374c29e5c1fa60be4d5a0f3f3e09dc9c13c56

@@ -1 +1 @@
2cc78a4b2803532aa6bf0f2fbea69a6a6e42efdb 87fb54d489d2d61e4d08fd4f088decd90d018cc5

@@ -51,18 +51,18 @@ NetworkChangeNotifierFuchsia::NetworkChangeNotifierFuchsia(
ZX_LOG(ERROR, status) << "Lost connection to netstack."; ZX_LOG(ERROR, status) << "Lost connection to netstack.";
}); });
netstack_.events().OnInterfacesChanged = netstack_.events().OnInterfacesChanged =
[this](fidl::VectorPtr<fuchsia::netstack::NetInterface> interfaces) { [this](std::vector<fuchsia::netstack::NetInterface> interfaces) {
ProcessInterfaceList(base::OnceClosure(), std::move(interfaces)); ProcessInterfaceList(base::OnceClosure(), std::move(interfaces));
}; };
// Fetch the interface list synchronously, so that an initial ConnectionType // Fetch the interface list synchronously, so that an initial ConnectionType
// is available before we return. // is available before we return.
base::RunLoop wait_for_interfaces; base::RunLoop wait_for_interfaces;
netstack_->GetInterfaces([ netstack_->GetInterfaces(
this, quit_closure = wait_for_interfaces.QuitClosure() [this, quit_closure = wait_for_interfaces.QuitClosure()](
](fidl::VectorPtr<fuchsia::netstack::NetInterface> interfaces) { std::vector<fuchsia::netstack::NetInterface> interfaces) {
ProcessInterfaceList(quit_closure, std::move(interfaces)); ProcessInterfaceList(quit_closure, std::move(interfaces));
}); });
wait_for_interfaces.Run(); wait_for_interfaces.Run();
} }
@@ -79,7 +79,7 @@ NetworkChangeNotifierFuchsia::GetCurrentConnectionType() const {
void NetworkChangeNotifierFuchsia::ProcessInterfaceList( void NetworkChangeNotifierFuchsia::ProcessInterfaceList(
base::OnceClosure on_initialized_cb, base::OnceClosure on_initialized_cb,
fidl::VectorPtr<fuchsia::netstack::NetInterface> interfaces) { std::vector<fuchsia::netstack::NetInterface> interfaces) {
netstack_->GetRouteTable(WrapCallbackAsFunction(base::BindRepeating( netstack_->GetRouteTable(WrapCallbackAsFunction(base::BindRepeating(
&NetworkChangeNotifierFuchsia::OnRouteTableReceived, &NetworkChangeNotifierFuchsia::OnRouteTableReceived,
base::Unretained(this), base::Passed(std::move(on_initialized_cb)), base::Unretained(this), base::Passed(std::move(on_initialized_cb)),
@@ -88,11 +88,11 @@ void NetworkChangeNotifierFuchsia::ProcessInterfaceList(
void NetworkChangeNotifierFuchsia::OnRouteTableReceived( void NetworkChangeNotifierFuchsia::OnRouteTableReceived(
base::OnceClosure on_initialized_cb, base::OnceClosure on_initialized_cb,
fidl::VectorPtr<fuchsia::netstack::NetInterface> interfaces, std::vector<fuchsia::netstack::NetInterface> interfaces,
fidl::VectorPtr<fuchsia::netstack::RouteTableEntry> route_table) { std::vector<fuchsia::netstack::RouteTableEntry> route_table) {
// Find the default interface in the routing table. // Find the default interface in the routing table.
auto default_route_interface = std::find_if( auto default_route_interface = std::find_if(
route_table->begin(), route_table->end(), route_table.begin(), route_table.end(),
[](const fuchsia::netstack::RouteTableEntry& rt) { [](const fuchsia::netstack::RouteTableEntry& rt) {
return MaskPrefixLength( return MaskPrefixLength(
internal::FuchsiaIpAddressToIPAddress(rt.netmask)) == 0; internal::FuchsiaIpAddressToIPAddress(rt.netmask)) == 0;
@@ -100,8 +100,8 @@ void NetworkChangeNotifierFuchsia::OnRouteTableReceived(
// Find the default interface in the NetInterface list. // Find the default interface in the NetInterface list.
const fuchsia::netstack::NetInterface* default_interface = nullptr; const fuchsia::netstack::NetInterface* default_interface = nullptr;
if (default_route_interface != route_table->end()) { if (default_route_interface != route_table.end()) {
for (const auto& cur_interface : *interfaces) { for (const auto& cur_interface : interfaces) {
if (cur_interface.id == default_route_interface->nicid) { if (cur_interface.id == default_route_interface->nicid) {
default_interface = &cur_interface; default_interface = &cur_interface;
} }

@@ -40,7 +40,7 @@ class NET_EXPORT_PRIVATE NetworkChangeNotifierFuchsia
// GetRouteTable() to OnRouteTableReceived(). // GetRouteTable() to OnRouteTableReceived().
void ProcessInterfaceList( void ProcessInterfaceList(
base::OnceClosure on_initialized_cb, base::OnceClosure on_initialized_cb,
fidl::VectorPtr<fuchsia::netstack::NetInterface> interfaces); std::vector<fuchsia::netstack::NetInterface> interfaces);
// Computes network change notification state change from the list of // Computes network change notification state change from the list of
// interfaces and routing table data, sending observer events if IP or // interfaces and routing table data, sending observer events if IP or
@@ -51,8 +51,8 @@ class NET_EXPORT_PRIVATE NetworkChangeNotifierFuchsia
// finished executing. // finished executing.
void OnRouteTableReceived( void OnRouteTableReceived(
base::OnceClosure on_initialized_cb, base::OnceClosure on_initialized_cb,
fidl::VectorPtr<fuchsia::netstack::NetInterface> interfaces, std::vector<fuchsia::netstack::NetInterface> interfaces,
fidl::VectorPtr<fuchsia::netstack::RouteTableEntry> table); std::vector<fuchsia::netstack::RouteTableEntry> table);
// NetworkChangeNotifier implementation. // NetworkChangeNotifier implementation.
ConnectionType GetCurrentConnectionType() const override; ConnectionType GetCurrentConnectionType() const override;

@@ -81,11 +81,9 @@ fuchsia::netstack::NetInterface CreateNetInterface(
output.features = features; output.features = features;
output.addr = std::move(address); output.addr = std::move(address);
output.netmask = std::move(netmask); output.netmask = std::move(netmask);
output.hwaddr = fidl::VectorPtr<uint8_t>::New(0);
output.addr.Clone(&output.broadaddr); output.addr.Clone(&output.broadaddr);
output.ipv6addrs = fidl::VectorPtr<fuchsia::net::Subnet>::New(0);
for (auto& x : ipv6) { for (auto& x : ipv6) {
output.ipv6addrs.push_back(std::move(x)); output.ipv6addrs.push_back(std::move(x));
} }
@@ -107,17 +105,17 @@ class FakeNetstack : public fuchsia::netstack::testing::Netstack_TestBase {
// Adds |interface| to the interface query response list. // Adds |interface| to the interface query response list.
void PushInterface(fuchsia::netstack::NetInterface&& interface) { void PushInterface(fuchsia::netstack::NetInterface&& interface) {
interfaces_->push_back(std::move(interface)); interfaces_.push_back(std::move(interface));
} }
void PushRouteTableEntry(fuchsia::netstack::RouteTableEntry&& interface) { void PushRouteTableEntry(fuchsia::netstack::RouteTableEntry&& interface) {
route_table_->push_back(std::move(interface)); route_table_.push_back(std::move(interface));
} }
// Sends the accumulated |interfaces_| to the OnInterfacesChanged event. // Sends the accumulated |interfaces_| to the OnInterfacesChanged event.
void NotifyInterfaces() { void NotifyInterfaces() {
binding_.events().OnInterfacesChanged(std::move(interfaces_)); binding_.events().OnInterfacesChanged(std::move(interfaces_));
interfaces_ = fidl::VectorPtr<fuchsia::netstack::NetInterface>::New(0); interfaces_.clear();
} }
fidl::Binding<fuchsia::netstack::Netstack>& binding() { return binding_; } fidl::Binding<fuchsia::netstack::Netstack>& binding() { return binding_; }
@@ -128,11 +126,9 @@ class FakeNetstack : public fuchsia::netstack::testing::Netstack_TestBase {
} }
void GetRouteTable(GetRouteTableCallback callback) override { void GetRouteTable(GetRouteTableCallback callback) override {
fidl::VectorPtr<fuchsia::netstack::RouteTableEntry> table = std::vector<fuchsia::netstack::RouteTableEntry> table(2);
fidl::VectorPtr<fuchsia::netstack::RouteTableEntry>::New(2); table[0] = CreateRouteTableEntry(kDefaultNic, true);
(*table)[0] = CreateRouteTableEntry(kDefaultNic, true); table[1] = CreateRouteTableEntry(kSecondaryNic, true);
(*table)[1] = CreateRouteTableEntry(kSecondaryNic, true);
callback(std::move(table)); callback(std::move(table));
} }
@@ -140,10 +136,8 @@ class FakeNetstack : public fuchsia::netstack::testing::Netstack_TestBase {
LOG(FATAL) << "Unimplemented function called: " << name; LOG(FATAL) << "Unimplemented function called: " << name;
} }
::fidl::VectorPtr<fuchsia::netstack::NetInterface> interfaces_ = std::vector<fuchsia::netstack::NetInterface> interfaces_;
fidl::VectorPtr<fuchsia::netstack::NetInterface>::New(0); std::vector<fuchsia::netstack::RouteTableEntry> route_table_;
::fidl::VectorPtr<fuchsia::netstack::RouteTableEntry> route_table_ =
fidl::VectorPtr<fuchsia::netstack::RouteTableEntry>::New(0);
fidl::Binding<fuchsia::netstack::Netstack> binding_; fidl::Binding<fuchsia::netstack::Netstack> binding_;

@@ -52,13 +52,13 @@ NetworkInterface NetworkInterfaceFromAddress(
prefix_length = prefix_length =
MaskPrefixLength(FuchsiaIpAddressToIPAddress(interface.netmask)); MaskPrefixLength(FuchsiaIpAddressToIPAddress(interface.netmask));
} else { } else {
CHECK_LE(address_index, interface.ipv6addrs->size()); CHECK_LE(address_index, interface.ipv6addrs.size());
address = FuchsiaIpAddressToIPAddress( address = FuchsiaIpAddressToIPAddress(
interface.ipv6addrs->at(address_index - 1).addr); interface.ipv6addrs.at(address_index - 1).addr);
prefix_length = interface.ipv6addrs->at(address_index - 1).prefix_len; prefix_length = interface.ipv6addrs.at(address_index - 1).prefix_len;
} }
return NetworkInterface(*interface.name, interface.name, interface.id, return NetworkInterface(interface.name, interface.name, interface.id,
ConvertConnectionType(interface), address, ConvertConnectionType(interface), address,
prefix_length, attributes); prefix_length, attributes);
} }
@@ -90,7 +90,7 @@ std::vector<NetworkInterface> NetInterfaceToNetworkInterfaces(
output.push_back(NetworkInterfaceFromAddress(iface_in, 0)); output.push_back(NetworkInterfaceFromAddress(iface_in, 0));
// Append interface entries for all additional IPv6 addresses. // Append interface entries for all additional IPv6 addresses.
for (size_t i = 0; i < iface_in.ipv6addrs->size(); ++i) { for (size_t i = 0; i < iface_in.ipv6addrs.size(); ++i) {
output.push_back(NetworkInterfaceFromAddress(iface_in, i + 1)); output.push_back(NetworkInterfaceFromAddress(iface_in, i + 1));
} }
@@ -107,14 +107,14 @@ bool GetNetworkList(NetworkInterfaceList* networks, int policy) {
->ConnectToServiceSync<fuchsia::netstack::Netstack>(); ->ConnectToServiceSync<fuchsia::netstack::Netstack>();
// TODO(kmarshall): Use NetworkChangeNotifier's cached interface list. // TODO(kmarshall): Use NetworkChangeNotifier's cached interface list.
fidl::VectorPtr<fuchsia::netstack::NetInterface> interfaces; std::vector<fuchsia::netstack::NetInterface> interfaces;
zx_status_t status = netstack->GetInterfaces(&interfaces); zx_status_t status = netstack->GetInterfaces(&interfaces);
if (status != ZX_OK) { if (status != ZX_OK) {
ZX_LOG(ERROR, status) << "fuchsia::netstack::GetInterfaces()"; ZX_LOG(ERROR, status) << "fuchsia::netstack::GetInterfaces()";
return false; return false;
} }
for (auto& interface : interfaces.get()) { for (auto& interface : interfaces) {
auto converted = internal::NetInterfaceToNetworkInterfaces(interface); auto converted = internal::NetInterfaceToNetworkInterfaces(interface);
std::move(converted.begin(), converted.end(), std::move(converted.begin(), converted.end(),
std::back_inserter(*networks)); std::back_inserter(*networks));

@@ -224,8 +224,8 @@ void ScenicWindow::OnScenicError(zx_status_t status) {
} }
void ScenicWindow::OnScenicEvents( void ScenicWindow::OnScenicEvents(
fidl::VectorPtr<fuchsia::ui::scenic::Event> events) { std::vector<fuchsia::ui::scenic::Event> events) {
for (const auto& event : *events) { for (const auto& event : events) {
if (event.is_gfx()) { if (event.is_gfx()) {
if (!event.gfx().is_metrics()) if (!event.gfx().is_metrics())
continue; continue;

@@ -71,7 +71,7 @@ class OZONE_EXPORT ScenicWindow : public PlatformWindow,
// Callbacks for |scenic_session_|. // Callbacks for |scenic_session_|.
void OnScenicError(zx_status_t status); void OnScenicError(zx_status_t status);
void OnScenicEvents(fidl::VectorPtr<fuchsia::ui::scenic::Event> events); void OnScenicEvents(std::vector<fuchsia::ui::scenic::Event> events);
// InputEventDispatcher::Delegate interface. // InputEventDispatcher::Delegate interface.
void DispatchEvent(ui::Event* event) override; void DispatchEvent(ui::Event* event) override;

@@ -11,20 +11,18 @@ namespace castrunner {
ApplicationConfigManager::ApplicationConfigManager() = default; ApplicationConfigManager::ApplicationConfigManager() = default;
ApplicationConfigManager::~ApplicationConfigManager() = default; ApplicationConfigManager::~ApplicationConfigManager() = default;
void ApplicationConfigManager::GetConfig(fidl::StringPtr id, void ApplicationConfigManager::GetConfig(std::string id,
GetConfigCallback callback) { GetConfigCallback callback) {
DCHECK(id);
constexpr char kTestCastAppId[] = "00000000"; constexpr char kTestCastAppId[] = "00000000";
if (*id != kTestCastAppId) { if (id != kTestCastAppId) {
LOG(ERROR) << "Unknown Cast app Id: " << *id; LOG(ERROR) << "Unknown Cast app Id: " << id;
callback(chromium::cast::ApplicationConfigPtr()); callback(chromium::cast::ApplicationConfigPtr());
return; return;
} }
chromium::cast::ApplicationConfigPtr app_config = chromium::cast::ApplicationConfigPtr app_config =
chromium::cast::ApplicationConfig::New(); chromium::cast::ApplicationConfig::New();
app_config->id = *id; app_config->id = id;
app_config->display_name = "Dummy test app"; app_config->display_name = "Dummy test app";
app_config->web_url = "https://www.google.com"; app_config->web_url = "https://www.google.com";
callback(std::move(app_config)); callback(std::move(app_config));

@@ -21,8 +21,7 @@ class ApplicationConfigManager
~ApplicationConfigManager() override; ~ApplicationConfigManager() override;
// chromium::cast::ApplicationConfigManager interface. // chromium::cast::ApplicationConfigManager interface.
void GetConfig(fidl::StringPtr id, void GetConfig(std::string id, GetConfigCallback config_callback) override;
GetConfigCallback config_callback) override;
DISALLOW_COPY_AND_ASSIGN(ApplicationConfigManager); DISALLOW_COPY_AND_ASSIGN(ApplicationConfigManager);
}; };

@@ -16,19 +16,17 @@ FakeApplicationConfigManager::FakeApplicationConfigManager(
: embedded_test_server_(embedded_test_server) {} : embedded_test_server_(embedded_test_server) {}
FakeApplicationConfigManager::~FakeApplicationConfigManager() = default; FakeApplicationConfigManager::~FakeApplicationConfigManager() = default;
void FakeApplicationConfigManager::GetConfig(fidl::StringPtr id, void FakeApplicationConfigManager::GetConfig(std::string id,
GetConfigCallback callback) { GetConfigCallback callback) {
DCHECK(id); if (id != kTestCastAppId) {
LOG(ERROR) << "Unknown Cast app Id: " << id;
if (*id != kTestCastAppId) {
LOG(ERROR) << "Unknown Cast app Id: " << *id;
callback(chromium::cast::ApplicationConfigPtr()); callback(chromium::cast::ApplicationConfigPtr());
return; return;
} }
chromium::cast::ApplicationConfigPtr app_config = chromium::cast::ApplicationConfigPtr app_config =
chromium::cast::ApplicationConfig::New(); chromium::cast::ApplicationConfig::New();
app_config->id = *id; app_config->id = id;
app_config->display_name = "Dummy test app"; app_config->display_name = "Dummy test app";
app_config->web_url = embedded_test_server_->base_url().spec(); app_config->web_url = embedded_test_server_->base_url().spec();
callback(std::move(app_config)); callback(std::move(app_config));

@@ -25,8 +25,7 @@ class FakeApplicationConfigManager
~FakeApplicationConfigManager() override; ~FakeApplicationConfigManager() override;
// chromium::cast::ApplicationConfigManager interface. // chromium::cast::ApplicationConfigManager interface.
void GetConfig(fidl::StringPtr id, void GetConfig(std::string id, GetConfigCallback config_callback) override;
GetConfigCallback config_callback) override;
private: private:
net::EmbeddedTestServer* embedded_test_server_; net::EmbeddedTestServer* embedded_test_server_;

@@ -34,7 +34,7 @@ void CastRunner::StartComponent(
constexpr char kCastPresentationUrlScheme[] = "cast"; constexpr char kCastPresentationUrlScheme[] = "cast";
constexpr char kCastSecurePresentationUrlScheme[] = "casts"; constexpr char kCastSecurePresentationUrlScheme[] = "casts";
GURL cast_url(*package.resolved_url); GURL cast_url(package.resolved_url);
if (!cast_url.is_valid() || if (!cast_url.is_valid() ||
(!cast_url.SchemeIs(kCastPresentationUrlScheme) && (!cast_url.SchemeIs(kCastPresentationUrlScheme) &&
!cast_url.SchemeIs(kCastSecurePresentationUrlScheme)) || !cast_url.SchemeIs(kCastSecurePresentationUrlScheme)) ||
@@ -70,7 +70,7 @@ void CastRunner::GetConfigCallback(
} }
// If a config was returned then use it to launch a component. // If a config was returned then use it to launch a component.
GURL cast_app_url(*app_config->web_url); GURL cast_app_url(app_config->web_url);
RegisterComponent(webrunner::WebComponent::ForUrlRequest( RegisterComponent(webrunner::WebComponent::ForUrlRequest(
this, std::move(cast_app_url), std::move(startup_info), this, std::move(cast_app_url), std::move(startup_info),
std::move(controller_request))); std::move(controller_request)));

@@ -14,7 +14,7 @@ zx::channel StartCastComponent(
fidl::InterfaceRequest<fuchsia::sys::ComponentController> fidl::InterfaceRequest<fuchsia::sys::ComponentController>
component_controller_request) { component_controller_request) {
fuchsia::sys::LaunchInfo launch_info; fuchsia::sys::LaunchInfo launch_info;
launch_info.url.reset(cast_url.as_string()); launch_info.url = cast_url.as_string();
// Create a channel to pass to the Runner, through which to expose the new // Create a channel to pass to the Runner, through which to expose the new
// component's ServiceDirectory. // component's ServiceDirectory.
@@ -31,7 +31,7 @@ zx::channel StartCastComponent(
startup_info.flat_namespace.directories.resize(0); startup_info.flat_namespace.directories.resize(0);
fuchsia::sys::Package package; fuchsia::sys::Package package;
package.resolved_url.reset(cast_url.as_string()); package.resolved_url = cast_url.as_string();
sys_runner->get()->StartComponent(std::move(package), std::move(startup_info), sys_runner->get()->StartComponent(std::move(package), std::move(startup_info),
std::move(component_controller_request)); std::move(component_controller_request));

@@ -69,7 +69,7 @@ void WebContentRunner::StartComponent(
fuchsia::sys::StartupInfo startup_info, fuchsia::sys::StartupInfo startup_info,
fidl::InterfaceRequest<fuchsia::sys::ComponentController> fidl::InterfaceRequest<fuchsia::sys::ComponentController>
controller_request) { controller_request) {
GURL url(*package.resolved_url); GURL url(package.resolved_url);
if (!url.is_valid()) { if (!url.is_valid()) {
LOG(ERROR) << "Rejected invalid URL: " << url; LOG(ERROR) << "Rejected invalid URL: " << url;
return; return;

@@ -284,11 +284,11 @@ void FrameImpl::SetJavaScriptLogLevel(chromium::web::LogLevel level) {
log_level_ = level; log_level_ = level;
} }
void FrameImpl::LoadUrl(fidl::StringPtr url, void FrameImpl::LoadUrl(std::string url,
std::unique_ptr<chromium::web::LoadUrlParams> params) { std::unique_ptr<chromium::web::LoadUrlParams> params) {
GURL validated_url(*url); GURL validated_url(url);
if (!validated_url.is_valid()) { if (!validated_url.is_valid()) {
DLOG(WARNING) << "Invalid URL: " << *url; DLOG(WARNING) << "Invalid URL: " << url;
return; return;
} }
@@ -358,7 +358,7 @@ void FrameImpl::SetNavigationEventObserver(
} }
} }
void FrameImpl::ExecuteJavaScript(fidl::VectorPtr<::fidl::StringPtr> origins, void FrameImpl::ExecuteJavaScript(std::vector<std::string> origins,
fuchsia::mem::Buffer script, fuchsia::mem::Buffer script,
chromium::web::ExecuteMode mode, chromium::web::ExecuteMode mode,
ExecuteJavaScriptCallback callback) { ExecuteJavaScriptCallback callback) {
@@ -367,13 +367,13 @@ void FrameImpl::ExecuteJavaScript(fidl::VectorPtr<::fidl::StringPtr> origins,
return; return;
} }
if (origins->empty()) { if (origins.empty()) {
callback(false); callback(false);
return; return;
} }
std::vector<std::string> origins_strings; std::vector<std::string> origins_strings;
for (const auto& origin : *origins) for (const auto& origin : origins)
origins_strings.push_back(origin); origins_strings.push_back(origin);
base::string16 script_utf16; base::string16 script_utf16;
@@ -529,18 +529,18 @@ FrameImpl::OriginScopedScript::OriginScopedScript(
FrameImpl::OriginScopedScript::~OriginScopedScript() = default; FrameImpl::OriginScopedScript::~OriginScopedScript() = default;
void FrameImpl::PostMessage(chromium::web::WebMessage message, void FrameImpl::PostMessage(chromium::web::WebMessage message,
fidl::StringPtr target_origin, std::string target_origin,
PostMessageCallback callback) { PostMessageCallback callback) {
constexpr char kWildcardOrigin[] = "*"; constexpr char kWildcardOrigin[] = "*";
if (target_origin->empty()) { if (target_origin.empty()) {
callback(false); callback(false);
return; return;
} }
base::Optional<base::string16> target_origin_utf16; base::Optional<base::string16> target_origin_utf16;
if (*target_origin != kWildcardOrigin) if (target_origin != kWildcardOrigin)
target_origin_utf16 = base::UTF8ToUTF16(*target_origin); target_origin_utf16 = base::UTF8ToUTF16(target_origin);
base::string16 data_utf16; base::string16 data_utf16;
if (!ReadUTF8FromVMOAsUTF16(message.data, &data_utf16)) { if (!ReadUTF8FromVMOAsUTF16(message.data, &data_utf16)) {

@@ -67,12 +67,12 @@ class FrameImpl : public chromium::web::Frame,
void SetNavigationEventObserver( void SetNavigationEventObserver(
fidl::InterfaceHandle<chromium::web::NavigationEventObserver> observer) fidl::InterfaceHandle<chromium::web::NavigationEventObserver> observer)
override; override;
void ExecuteJavaScript(fidl::VectorPtr<::fidl::StringPtr> origins, void ExecuteJavaScript(std::vector<std::string> origins,
fuchsia::mem::Buffer script, fuchsia::mem::Buffer script,
chromium::web::ExecuteMode mode, chromium::web::ExecuteMode mode,
ExecuteJavaScriptCallback callback) override; ExecuteJavaScriptCallback callback) override;
void PostMessage(chromium::web::WebMessage message, void PostMessage(chromium::web::WebMessage message,
fidl::StringPtr targetOrigin, std::string target_origin,
PostMessageCallback callback) override; PostMessageCallback callback) override;
private: private:
@@ -97,7 +97,7 @@ class FrameImpl : public chromium::web::Frame,
}; };
// chromium::web::NavigationController implementation. // chromium::web::NavigationController implementation.
void LoadUrl(fidl::StringPtr url, void LoadUrl(std::string url,
std::unique_ptr<chromium::web::LoadUrlParams> params) override; std::unique_ptr<chromium::web::LoadUrlParams> params) override;
void GoBack() override; void GoBack() override;
void GoForward() override; void GoForward() override;

@@ -390,9 +390,7 @@ IN_PROC_BROWSER_TEST_F(FrameImplTest, ExecuteJavaScriptImmediate) {
chromium::web::NavigationControllerPtr controller; chromium::web::NavigationControllerPtr controller;
frame->GetNavigationController(controller.NewRequest()); frame->GetNavigationController(controller.NewRequest());
CheckLoadUrl(title1.spec(), kPage1Title, controller.get()); CheckLoadUrl(title1.spec(), kPage1Title, controller.get());
fidl::VectorPtr<fidl::StringPtr> origins = std::vector<std::string> origins = {title1.GetOrigin().spec()};
fidl::VectorPtr<fidl::StringPtr>::New(0);
origins.push_back(title1.GetOrigin().spec());
frame->ExecuteJavaScript( frame->ExecuteJavaScript(
std::move(origins), std::move(origins),
@@ -414,9 +412,7 @@ IN_PROC_BROWSER_TEST_F(FrameImplTest, ExecuteJavaScriptOnLoad) {
GURL url(embedded_test_server()->GetURL(kDynamicTitlePath)); GURL url(embedded_test_server()->GetURL(kDynamicTitlePath));
chromium::web::FramePtr frame = CreateFrame(); chromium::web::FramePtr frame = CreateFrame();
fidl::VectorPtr<fidl::StringPtr> origins = std::vector<std::string> origins = {url.GetOrigin().spec()};
fidl::VectorPtr<fidl::StringPtr>::New(0);
origins.push_back(url.GetOrigin().spec());
frame->ExecuteJavaScript(std::move(origins), frame->ExecuteJavaScript(std::move(origins),
MemBufferFromString("stashed_title = 'hello';"), MemBufferFromString("stashed_title = 'hello';"),
@@ -433,9 +429,7 @@ IN_PROC_BROWSER_TEST_F(FrameImplTest, ExecuteJavaScriptOnLoadVmoDestroyed) {
GURL url(embedded_test_server()->GetURL(kDynamicTitlePath)); GURL url(embedded_test_server()->GetURL(kDynamicTitlePath));
chromium::web::FramePtr frame = CreateFrame(); chromium::web::FramePtr frame = CreateFrame();
fidl::VectorPtr<fidl::StringPtr> origins = std::vector<std::string> origins = {url.GetOrigin().spec()};
fidl::VectorPtr<fidl::StringPtr>::New(0);
origins.push_back(url.GetOrigin().spec());
frame->ExecuteJavaScript(std::move(origins), frame->ExecuteJavaScript(std::move(origins),
MemBufferFromString("stashed_title = 'hello';"), MemBufferFromString("stashed_title = 'hello';"),
@@ -452,9 +446,7 @@ IN_PROC_BROWSER_TEST_F(FrameImplTest, ExecuteJavascriptOnLoadWrongOrigin) {
GURL url(embedded_test_server()->GetURL(kDynamicTitlePath)); GURL url(embedded_test_server()->GetURL(kDynamicTitlePath));
chromium::web::FramePtr frame = CreateFrame(); chromium::web::FramePtr frame = CreateFrame();
fidl::VectorPtr<fidl::StringPtr> origins = std::vector<std::string> origins = {"http://example.com"};
fidl::VectorPtr<fidl::StringPtr>::New(0);
origins.push_back("http://example.com");
frame->ExecuteJavaScript(std::move(origins), frame->ExecuteJavaScript(std::move(origins),
MemBufferFromString("stashed_title = 'hello';"), MemBufferFromString("stashed_title = 'hello';"),
@@ -475,9 +467,7 @@ IN_PROC_BROWSER_TEST_F(FrameImplTest, ExecuteJavaScriptOnLoadWildcardOrigin) {
GURL url(embedded_test_server()->GetURL(kDynamicTitlePath)); GURL url(embedded_test_server()->GetURL(kDynamicTitlePath));
chromium::web::FramePtr frame = CreateFrame(); chromium::web::FramePtr frame = CreateFrame();
fidl::VectorPtr<fidl::StringPtr> origins = std::vector<std::string> origins = {"*"};
fidl::VectorPtr<fidl::StringPtr>::New(0);
origins.push_back("*");
frame->ExecuteJavaScript(std::move(origins), frame->ExecuteJavaScript(std::move(origins),
MemBufferFromString("stashed_title = 'hello';"), MemBufferFromString("stashed_title = 'hello';"),
@@ -504,10 +494,8 @@ IN_PROC_BROWSER_TEST_F(FrameImplTest, ExecuteMultipleJavaScriptsOnLoad) {
GURL url(embedded_test_server()->GetURL(kDynamicTitlePath)); GURL url(embedded_test_server()->GetURL(kDynamicTitlePath));
chromium::web::FramePtr frame = CreateFrame(); chromium::web::FramePtr frame = CreateFrame();
fidl::VectorPtr<fidl::StringPtr> origins = std::vector<std::string> origins = {url.GetOrigin().spec()};
fidl::VectorPtr<fidl::StringPtr>::New(0); frame->ExecuteJavaScript(origins,
origins.push_back(url.GetOrigin().spec());
frame->ExecuteJavaScript(origins.Clone(),
MemBufferFromString("stashed_title = 'hello';"), MemBufferFromString("stashed_title = 'hello';"),
chromium::web::ExecuteMode::ON_PAGE_LOAD, chromium::web::ExecuteMode::ON_PAGE_LOAD,
[](bool success) { EXPECT_TRUE(success); }); [](bool success) { EXPECT_TRUE(success); });
@@ -527,11 +515,9 @@ IN_PROC_BROWSER_TEST_F(FrameImplTest, ExecuteOnLoadEarlyAndLateRegistrations) {
GURL url(embedded_test_server()->GetURL(kDynamicTitlePath)); GURL url(embedded_test_server()->GetURL(kDynamicTitlePath));
chromium::web::FramePtr frame = CreateFrame(); chromium::web::FramePtr frame = CreateFrame();
fidl::VectorPtr<fidl::StringPtr> origins = std::vector<std::string> origins = {url.GetOrigin().spec()};
fidl::VectorPtr<fidl::StringPtr>::New(0);
origins.push_back(url.GetOrigin().spec());
frame->ExecuteJavaScript(origins.Clone(), frame->ExecuteJavaScript(origins,
MemBufferFromString("stashed_title = 'hello';"), MemBufferFromString("stashed_title = 'hello';"),
chromium::web::ExecuteMode::ON_PAGE_LOAD, chromium::web::ExecuteMode::ON_PAGE_LOAD,
[](bool success) { EXPECT_TRUE(success); }); [](bool success) { EXPECT_TRUE(success); });
@@ -565,9 +551,7 @@ IN_PROC_BROWSER_TEST_F(FrameImplTest, ExecuteJavaScriptBadEncoding) {
base::RunLoop run_loop; base::RunLoop run_loop;
// 0xFE is an illegal UTF-8 byte; it should cause UTF-8 conversion to fail. // 0xFE is an illegal UTF-8 byte; it should cause UTF-8 conversion to fail.
fidl::VectorPtr<fidl::StringPtr> origins = std::vector<std::string> origins = {url.host()};
fidl::VectorPtr<fidl::StringPtr>::New(0);
origins.push_back(url.host());
frame->ExecuteJavaScript(std::move(origins), MemBufferFromString("true;\xfe"), frame->ExecuteJavaScript(std::move(origins), MemBufferFromString("true;\xfe"),
chromium::web::ExecuteMode::IMMEDIATE_ONCE, chromium::web::ExecuteMode::IMMEDIATE_ONCE,
[&run_loop](bool success) { [&run_loop](bool success) {

@@ -110,9 +110,7 @@ void NamedMessagePortConnector::NotifyPageLoad(chromium::web::Frame* frame) {
void NamedMessagePortConnector::InjectBindings(chromium::web::Frame* frame) { void NamedMessagePortConnector::InjectBindings(chromium::web::Frame* frame) {
DCHECK(frame); DCHECK(frame);
fidl::VectorPtr<fidl::StringPtr> origins = std::vector<std::string> origins = {"*"};
fidl::VectorPtr<fidl::StringPtr>::New(0);
origins.push_back("*");
frame->ExecuteJavaScript( frame->ExecuteJavaScript(
std::move(origins), CloneBuffer(bindings_script_), std::move(origins), CloneBuffer(bindings_script_),
chromium::web::ExecuteMode::ON_PAGE_LOAD, chromium::web::ExecuteMode::ON_PAGE_LOAD,

@@ -192,8 +192,8 @@ void CheckResponseBuffer(const oldhttp::URLResponse& response,
void CheckResponseHeaders(const oldhttp::URLResponse& response, void CheckResponseHeaders(const oldhttp::URLResponse& response,
ResponseHeaders* expected_headers) { ResponseHeaders* expected_headers) {
for (auto& header : response.headers.get()) { for (auto& header : response.headers.get()) {
const std::string header_name = header.name->data(); const std::string header_name = header.name.data();
const std::string header_value = header.value->data(); const std::string header_value = header.value.data();
auto iter = std::find_if(expected_headers->begin(), expected_headers->end(), auto iter = std::find_if(expected_headers->begin(), expected_headers->end(),
[&header_name, &header_value](auto& elt) -> bool { [&header_name, &header_value](auto& elt) -> bool {
return elt.first.compare(header_name) == 0 && return elt.first.compare(header_name) == 0 &&

@@ -146,7 +146,7 @@ void URLLoaderImpl::Start(oldhttp::URLRequest request, Callback callback) {
net_error_ = net::OK; net_error_ = net::OK;
// Create the URLRequest and set this object as the delegate. // Create the URLRequest and set this object as the delegate.
net_request_ = context_->CreateRequest(GURL(request.url.get()), net_request_ = context_->CreateRequest(GURL(request.url),
net::RequestPriority::MEDIUM, this); net::RequestPriority::MEDIUM, this);
net_request_->set_method(request.method); net_request_->set_method(request.method);