| Index: mojo/public/cpp/bindings/lib/interface_endpoint_client.cc
|
| diff --git a/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc b/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc
|
| index 5e1978d2086eb445415d517379438ee9e8ceed43..a79316c0b8232f38c94048461c5276504849070d 100644
|
| --- a/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc
|
| +++ b/mojo/public/cpp/bindings/lib/interface_endpoint_client.cc
|
| @@ -132,13 +132,13 @@ bool InterfaceEndpointClient::HandleIncomingMessageThunk::Accept(
|
| InterfaceEndpointClient::InterfaceEndpointClient(
|
| ScopedInterfaceEndpointHandle handle,
|
| MessageReceiverWithResponderStatus* receiver,
|
| - std::unique_ptr<MessageFilter> payload_validator,
|
| + std::unique_ptr<MessageReceiver> payload_validator,
|
| bool expect_sync_requests,
|
| scoped_refptr<base::SingleThreadTaskRunner> runner)
|
| : handle_(std::move(handle)),
|
| incoming_receiver_(receiver),
|
| - payload_validator_(std::move(payload_validator)),
|
| thunk_(this),
|
| + filters_(&thunk_),
|
| next_request_id_(1),
|
| encountered_error_(false),
|
| task_runner_(std::move(runner)),
|
| @@ -148,7 +148,7 @@ InterfaceEndpointClient::InterfaceEndpointClient(
|
|
|
| // TODO(yzshen): the way to use validator (or message filter in general)
|
| // directly is a little awkward.
|
| - payload_validator_->set_sink(&thunk_);
|
| + filters_.Append(std::move(payload_validator));
|
|
|
| controller_ = handle_.group_controller()->AttachEndpointClient(
|
| handle_, this, task_runner_);
|
| @@ -187,6 +187,11 @@ ScopedInterfaceEndpointHandle InterfaceEndpointClient::PassHandle() {
|
| return std::move(handle_);
|
| }
|
|
|
| +void InterfaceEndpointClient::AddFilter(
|
| + std::unique_ptr<MessageReceiver> filter) {
|
| + filters_.Append(std::move(filter));
|
| +}
|
| +
|
| void InterfaceEndpointClient::RaiseError() {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
|
|
| @@ -256,8 +261,7 @@ bool InterfaceEndpointClient::AcceptWithResponder(Message* message,
|
|
|
| bool InterfaceEndpointClient::HandleIncomingMessage(Message* message) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
| -
|
| - return payload_validator_->Accept(message);
|
| + return filters_.Accept(message);
|
| }
|
|
|
| void InterfaceEndpointClient::NotifyError() {
|
|
|