mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
Convert DataPipeGetterPtr and DataPipeGetterRequest to new Mojo types
https://chromium-review.googlesource.com/c/chromium/src/+/1787760 https://chromium-review.googlesource.com/c/chromium/src/+/1787659
This commit is contained in:
@@ -33,7 +33,7 @@ KeyWeakMap<std::string> g_weak_map;
|
||||
class DataPipeReader {
|
||||
public:
|
||||
DataPipeReader(util::Promise<v8::Local<v8::Value>> promise,
|
||||
network::mojom::DataPipeGetterPtr data_pipe_getter)
|
||||
mojo::Remote<network::mojom::DataPipeGetter> data_pipe_getter)
|
||||
: promise_(std::move(promise)),
|
||||
data_pipe_getter_(std::move(data_pipe_getter)),
|
||||
handle_watcher_(FROM_HERE,
|
||||
@@ -109,7 +109,7 @@ class DataPipeReader {
|
||||
// Destroy data pipe.
|
||||
handle_watcher_.Cancel();
|
||||
data_pipe_.reset();
|
||||
data_pipe_getter_ = nullptr;
|
||||
data_pipe_getter_.reset();
|
||||
}
|
||||
|
||||
static void FreeBuffer(char* data, void* self) {
|
||||
@@ -118,7 +118,7 @@ class DataPipeReader {
|
||||
|
||||
util::Promise<v8::Local<v8::Value>> promise_;
|
||||
|
||||
network::mojom::DataPipeGetterPtr data_pipe_getter_;
|
||||
mojo::Remote<network::mojom::DataPipeGetter> data_pipe_getter_;
|
||||
mojo::ScopedDataPipeConsumerHandle data_pipe_;
|
||||
mojo::SimpleWatcher handle_watcher_;
|
||||
|
||||
@@ -141,8 +141,9 @@ class DataPipeReader {
|
||||
gin::WrapperInfo DataPipeHolder::kWrapperInfo = {gin::kEmbedderNativeGin};
|
||||
|
||||
DataPipeHolder::DataPipeHolder(const network::DataElement& element)
|
||||
: id_(base::NumberToString(++g_next_id)),
|
||||
data_pipe_(element.CloneDataPipeGetter()) {}
|
||||
: id_(base::NumberToString(++g_next_id)) {
|
||||
data_pipe_.Bind(element.CloneDataPipeGetter());
|
||||
}
|
||||
|
||||
DataPipeHolder::~DataPipeHolder() = default;
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
|
||||
#include "gin/handle.h"
|
||||
#include "gin/wrappable.h"
|
||||
#include "mojo/public/cpp/bindings/remote.h"
|
||||
#include "services/network/public/cpp/data_element.h"
|
||||
#include "services/network/public/mojom/data_pipe_getter.mojom.h"
|
||||
|
||||
@@ -41,7 +42,7 @@ class DataPipeHolder : public gin::Wrappable<DataPipeHolder> {
|
||||
~DataPipeHolder() override;
|
||||
|
||||
std::string id_;
|
||||
network::mojom::DataPipeGetterPtr data_pipe_;
|
||||
mojo::Remote<network::mojom::DataPipeGetter> data_pipe_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(DataPipeHolder);
|
||||
};
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
#include "content/public/browser/network_service_instance.h"
|
||||
#include "content/public/browser/storage_partition.h"
|
||||
#include "mojo/public/cpp/bindings/pending_remote.h"
|
||||
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
|
||||
#include "native_mate/dictionary.h"
|
||||
#include "native_mate/object_template_builder.h"
|
||||
#include "net/base/completion_repeating_callback.h"
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include <utility>
|
||||
|
||||
#include "mojo/public/cpp/bindings/receiver_set.h"
|
||||
#include "mojo/public/cpp/system/string_data_source.h"
|
||||
#include "native_mate/dictionary.h"
|
||||
#include "native_mate/object_template_builder.h"
|
||||
@@ -112,9 +113,10 @@ class MultipartDataPipeGetter : public UploadDataPipeGetter,
|
||||
~MultipartDataPipeGetter() override = default;
|
||||
|
||||
void AttachToRequestBody(network::ResourceRequestBody* body) override {
|
||||
network::mojom::DataPipeGetterPtr data_pipe_getter;
|
||||
binding_set_.AddBinding(this, mojo::MakeRequest(&data_pipe_getter));
|
||||
body->AppendDataPipe(std::move(data_pipe_getter));
|
||||
mojo::PendingRemote<network::mojom::DataPipeGetter> data_pipe_getter_remote;
|
||||
receivers_.Add(this,
|
||||
data_pipe_getter_remote.InitWithNewPipeAndPassReceiver());
|
||||
body->AppendDataPipe(std::move(data_pipe_getter_remote));
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -125,11 +127,12 @@ class MultipartDataPipeGetter : public UploadDataPipeGetter,
|
||||
SetPipe(std::move(pipe));
|
||||
}
|
||||
|
||||
void Clone(network::mojom::DataPipeGetterRequest request) override {
|
||||
binding_set_.AddBinding(this, std::move(request));
|
||||
void Clone(
|
||||
mojo::PendingReceiver<network::mojom::DataPipeGetter> receiver) override {
|
||||
receivers_.Add(this, std::move(receiver));
|
||||
}
|
||||
|
||||
mojo::BindingSet<network::mojom::DataPipeGetter> binding_set_;
|
||||
mojo::ReceiverSet<network::mojom::DataPipeGetter> receivers_;
|
||||
};
|
||||
|
||||
// Streaming chunked data to NetworkService.
|
||||
|
||||
Reference in New Issue
Block a user