Commit d2c21fb9 authored by Yutaka Hirano's avatar Yutaka Hirano Committed by Chromium LUCI CQ

Delete legacy IPC traits for network::ResourceRequestBody

The traits were needed because of FrameHostMsg_OpenURL which was removed
at https://chromium-review.googlesource.com/c/chromium/src/+/2259537.

Bug: None
Change-Id: I87282de1ff5f4479099291e9ea39f2ee877f1fc8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2626851Reviewed-by: default avatarTom Sepez <tsepez@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Reviewed-by: default avatarTarun Bansal <tbansal@chromium.org>
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#843381}
parent 144d900c
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "chrome/browser/optimization_guide/prediction/prediction_manager.h" #include "chrome/browser/optimization_guide/prediction/prediction_manager.h"
#include "chrome/browser/optimization_guide/prediction/prediction_model_download_manager.h" #include "chrome/browser/optimization_guide/prediction/prediction_model_download_manager.h"
#include "components/download/public/background_service/download_metadata.h" #include "components/download/public/background_service/download_metadata.h"
#include "services/network/public/cpp/resource_request_body.h"
namespace optimization_guide { namespace optimization_guide {
......
...@@ -9,174 +9,6 @@ ...@@ -9,174 +9,6 @@
#include "ipc/ipc_platform_file.h" #include "ipc/ipc_platform_file.h"
#include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "net/http/http_util.h" #include "net/http/http_util.h"
#include "services/network/public/mojom/chunked_data_pipe_getter.mojom.h"
#include "services/network/public/mojom/data_pipe_getter.mojom.h"
#include "services/network/public/mojom/url_loader.mojom-shared.h"
namespace IPC {
void ParamTraits<network::DataElement>::Write(base::Pickle* m,
const param_type& p) {
WriteParam(m, static_cast<int>(p.type()));
switch (p.type()) {
case network::mojom::DataElementDataView::Tag::kBytes: {
const auto& bytes = p.As<network::DataElementBytes>().bytes();
m->WriteData(reinterpret_cast<const char*>(bytes.data()),
static_cast<int>(bytes.size()));
break;
}
case network::mojom::DataElementDataView::Tag::kFile: {
const auto& file = p.As<network::DataElementFile>();
WriteParam(m, file.path());
WriteParam(m, file.offset());
WriteParam(m, file.length());
WriteParam(m, file.expected_modification_time());
break;
}
case network::mojom::DataElementDataView::Tag::kDataPipe: {
WriteParam(m, p.As<network::DataElementDataPipe>()
.CloneDataPipeGetter()
.PassPipe()
.release());
break;
}
case network::mojom::DataElementDataView::Tag::kChunkedDataPipe: {
auto& element = const_cast<network::DataElement&>(p)
.As<network::DataElementChunkedDataPipe>();
DCHECK(!element.read_only_once());
WriteParam(m,
element.ReleaseChunkedDataPipeGetter().PassPipe().release());
break;
}
}
}
bool ParamTraits<network::DataElement>::Read(const base::Pickle* m,
base::PickleIterator* iter,
param_type* r) {
int type;
if (!ReadParam(m, iter, &type))
return false;
switch (static_cast<network::mojom::DataElementDataView::Tag>(type)) {
case network::mojom::DataElementDataView::Tag::kBytes: {
const char* char_data;
int len;
if (!iter->ReadData(&char_data, &len))
return false;
const uint8_t* data = reinterpret_cast<const uint8_t*>(char_data);
*r = network::DataElement(
network::DataElementBytes(std::vector<uint8_t>(data, data + len)));
DCHECK_EQ(static_cast<int>(r->type()), type);
return true;
}
case network::mojom::DataElementDataView::Tag::kFile: {
base::FilePath file_path;
uint64_t offset, length;
base::Time expected_modification_time;
if (!ReadParam(m, iter, &file_path))
return false;
if (!ReadParam(m, iter, &offset))
return false;
if (!ReadParam(m, iter, &length))
return false;
if (!ReadParam(m, iter, &expected_modification_time))
return false;
*r = network::DataElement(network::DataElementFile(
file_path, offset, length, expected_modification_time));
DCHECK_EQ(static_cast<int>(r->type()), type);
return true;
}
case network::mojom::DataElementDataView::Tag::kDataPipe: {
mojo::MessagePipeHandle message_pipe;
if (!ReadParam(m, iter, &message_pipe))
return false;
if (!message_pipe) {
return false;
}
mojo::PendingRemote<network::mojom::DataPipeGetter> data_pipe_getter(
mojo::ScopedMessagePipeHandle(message_pipe), 0u);
*r = network::DataElement(
network::DataElementDataPipe(std::move(data_pipe_getter)));
DCHECK_EQ(static_cast<int>(r->type()), type);
return true;
}
case network::mojom::DataElementDataView::Tag::kChunkedDataPipe: {
mojo::MessagePipeHandle message_pipe;
if (!ReadParam(m, iter, &message_pipe))
return false;
if (!message_pipe) {
return false;
}
mojo::PendingRemote<network::mojom::ChunkedDataPipeGetter>
chunked_data_pipe_getter(mojo::ScopedMessagePipeHandle(message_pipe),
0u);
*r = network::DataElement(network::DataElementChunkedDataPipe(
std::move(chunked_data_pipe_getter),
network::DataElementChunkedDataPipe::ReadOnlyOnce(false)));
DCHECK_EQ(static_cast<int>(r->type()), type);
return true;
}
}
return false;
}
void ParamTraits<network::DataElement>::Log(const param_type& p,
std::string* l) {
l->append("<network::DataElement>");
}
void ParamTraits<scoped_refptr<network::ResourceRequestBody>>::Write(
base::Pickle* m,
const param_type& p) {
WriteParam(m, p.get() != nullptr);
if (p.get()) {
WriteParam(m, *p->elements());
WriteParam(m, p->identifier());
WriteParam(m, p->contains_sensitive_info());
}
}
bool ParamTraits<scoped_refptr<network::ResourceRequestBody>>::Read(
const base::Pickle* m,
base::PickleIterator* iter,
param_type* r) {
bool has_object;
if (!ReadParam(m, iter, &has_object))
return false;
if (!has_object)
return true;
std::vector<network::DataElement> elements;
if (!ReadParam(m, iter, &elements))
return false;
// A chunked element is only allowed if it's the only one element.
if (elements.size() > 1) {
for (const auto& element : elements) {
if (element.type() == network::DataElement::Tag::kChunkedDataPipe) {
return false;
}
}
}
int64_t identifier;
if (!ReadParam(m, iter, &identifier))
return false;
bool contains_sensitive_info;
if (!ReadParam(m, iter, &contains_sensitive_info))
return false;
*r = new network::ResourceRequestBody;
(*r)->swap_elements(&elements);
(*r)->set_identifier(identifier);
(*r)->set_contains_sensitive_info(contains_sensitive_info);
return true;
}
void ParamTraits<scoped_refptr<network::ResourceRequestBody>>::Log(
const param_type& p,
std::string* l) {
l->append("<ResourceRequestBody>");
}
} // namespace IPC
// Generation of IPC definitions. // Generation of IPC definitions.
......
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
#include "net/ssl/ssl_info.h" #include "net/ssl/ssl_info.h"
#include "services/network/public/cpp/net_ipc_param_traits.h" #include "services/network/public/cpp/net_ipc_param_traits.h"
#include "services/network/public/cpp/origin_policy.h" #include "services/network/public/cpp/origin_policy.h"
#include "services/network/public/cpp/resource_request_body.h"
#include "services/network/public/cpp/url_loader_completion_status.h" #include "services/network/public/cpp/url_loader_completion_status.h"
#include "services/network/public/mojom/blocked_by_response_reason.mojom-shared.h" #include "services/network/public/mojom/blocked_by_response_reason.mojom-shared.h"
#include "services/network/public/mojom/cors.mojom-shared.h" #include "services/network/public/mojom/cors.mojom-shared.h"
...@@ -40,43 +39,6 @@ ...@@ -40,43 +39,6 @@
// This file defines IPC::ParamTraits for network:: classes / structs. // This file defines IPC::ParamTraits for network:: classes / structs.
// For IPC::ParamTraits for net:: class / structs, see net_ipc_param_traits.h. // For IPC::ParamTraits for net:: class / structs, see net_ipc_param_traits.h.
#ifndef INTERNAL_SERVICES_NETWORK_PUBLIC_CPP_NETWORK_IPC_PARAM_TRAITS_H_
#define INTERNAL_SERVICES_NETWORK_PUBLIC_CPP_NETWORK_IPC_PARAM_TRAITS_H_
#undef IPC_MESSAGE_EXPORT
#define IPC_MESSAGE_EXPORT COMPONENT_EXPORT(NETWORK_CPP_BASE)
namespace IPC {
// TODO(Richard): Remove this traits after usage of
// content::mojom::OpenURLParams disappears.
template <>
struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ParamTraits<network::DataElement> {
typedef network::DataElement param_type;
static void Write(base::Pickle* m, const param_type& p);
static bool Read(const base::Pickle* m,
base::PickleIterator* iter,
param_type* r);
static void Log(const param_type& p, std::string* l);
};
// TODO(Richard): Remove this traits after usage of OpenURLParams struct
// disappears.
template <>
struct COMPONENT_EXPORT(NETWORK_CPP_BASE)
ParamTraits<scoped_refptr<network::ResourceRequestBody>> {
typedef scoped_refptr<network::ResourceRequestBody> param_type;
static void Write(base::Pickle* m, const param_type& p);
static bool Read(const base::Pickle* m,
base::PickleIterator* iter,
param_type* r);
static void Log(const param_type& p, std::string* l);
};
} // namespace IPC
#endif // INTERNAL_SERVICES_NETWORK_PUBLIC_CPP_NETWORK_IPC_PARAM_TRAITS_H_
IPC_ENUM_TRAITS_MAX_VALUE(network::mojom::CorsError, IPC_ENUM_TRAITS_MAX_VALUE(network::mojom::CorsError,
network::mojom::CorsError::kMaxValue) network::mojom::CorsError::kMaxValue)
......
...@@ -1659,54 +1659,6 @@ struct FuzzTraits<SkBitmap> { ...@@ -1659,54 +1659,6 @@ struct FuzzTraits<SkBitmap> {
} }
}; };
template <>
struct FuzzTraits<network::DataElement> {
static bool Fuzz(network::DataElement* p, Fuzzer* fuzzer) {
// TODO(mbarbella): Support mutation.
if (!fuzzer->ShouldGenerate())
return true;
switch (RandInRange(2)) {
case 0: {
// network::DataElement::Type::TYPE_BYTES
if (RandEvent(2)) {
*p = network::DataElement(
network::DataElementBytes(std::vector<uint8_t>()));
} else {
char data[256];
int data_len = RandInRange(sizeof(data));
fuzzer->FuzzBytes(&data[0], data_len);
*p = network::DataElement(network::DataElementBytes(
std::vector<uint8_t>(std::begin(data), std::end(data))));
}
return true;
}
case 1: {
// network::DataElement::Type::TYPE_FILE
base::FilePath path;
uint64_t offset;
uint64_t length;
base::Time modification_time;
if (!FuzzParam(&path, fuzzer))
return false;
if (!FuzzParam(&offset, fuzzer))
return false;
if (!FuzzParam(&length, fuzzer))
return false;
if (!FuzzParam(&modification_time, fuzzer))
return false;
*p = network::DataElement(
network::DataElementFile(path, offset, length, modification_time));
return true;
}
default: {
NOTREACHED();
return false;
}
}
}
};
template <> template <>
struct FuzzTraits<ui::LatencyInfo> { struct FuzzTraits<ui::LatencyInfo> {
static bool Fuzz(ui::LatencyInfo* p, Fuzzer* fuzzer) { static bool Fuzz(ui::LatencyInfo* p, Fuzzer* fuzzer) {
......
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