Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(286)

Unified Diff: mojo/public/cpp/bindings/lib/router.h

Issue 2064903002: Mojo: Report bindings validation errors via MojoNotifyBadMessage (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/public/cpp/bindings/lib/router.h
diff --git a/mojo/public/cpp/bindings/lib/router.h b/mojo/public/cpp/bindings/lib/router.h
index 2f5e8e2a971366c0ddc04895635be9d0565b29e5..9b9c16e2262d34d43a3012e5336fdb55729e6e66 100644
--- a/mojo/public/cpp/bindings/lib/router.h
+++ b/mojo/public/cpp/bindings/lib/router.h
@@ -39,6 +39,12 @@ class Router : public MessageReceiverWithResponder {
incoming_receiver_ = receiver;
}
+ // Sets the interface name for this Router. Used only for debugging.
+ void set_interface_name(const std::string& name) {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ interface_name_ = name;
+ }
+
// Sets the error handler to receive notifications when an error is
// encountered while reading from the pipe or waiting to read from the pipe.
void set_connection_error_handler(const Closure& error_handler) {
@@ -71,15 +77,15 @@ class Router : public MessageReceiverWithResponder {
return connector_.PassMessagePipe();
}
- void RaiseError() {
+ void RaiseError(Result error) {
DCHECK(thread_checker_.CalledOnValidThread());
- connector_.RaiseError();
+ connector_.RaiseError(std::move(error));
}
// MessageReceiver implementation:
- bool Accept(Message* message) override;
- bool AcceptWithResponder(Message* message,
- MessageReceiver* responder) override;
+ Result Accept(Message* message) override;
+ Result AcceptWithResponder(Message* message,
+ MessageReceiver* responder) override;
// Blocks the current thread until the first incoming method call, i.e.,
// either a call to a client method or a callback method, or |deadline|.
@@ -141,15 +147,15 @@ class Router : public MessageReceiverWithResponder {
~HandleIncomingMessageThunk() override;
// MessageReceiver implementation:
- bool Accept(Message* message) override;
+ Result Accept(Message* message) override;
private:
Router* router_;
};
- bool HandleIncomingMessage(Message* message);
+ Result HandleIncomingMessage(Message* message);
void HandleQueuedMessages();
- bool HandleMessageInternal(Message* message);
+ Result HandleMessageInternal(Message* message);
void OnConnectionError();
@@ -161,6 +167,7 @@ class Router : public MessageReceiverWithResponder {
SyncResponseMap sync_responses_;
uint64_t next_request_id_;
bool testing_mode_;
+ std::string interface_name_;
std::queue<std::unique_ptr<Message>> pending_messages_;
// Whether a task has been posted to trigger processing of
// |pending_messages_|.

Powered by Google App Engine
This is Rietveld 408576698