Index: services/shell/public/cpp/interface_registry.h |
diff --git a/services/shell/public/cpp/interface_registry.h b/services/shell/public/cpp/interface_registry.h |
index f5d10dcbb7201dff05a285aa0a84f047dc077e6b..97a46ebfbfcede33f242964adfa501c832180d77 100644 |
--- a/services/shell/public/cpp/interface_registry.h |
+++ b/services/shell/public/cpp/interface_registry.h |
@@ -104,6 +104,14 @@ class InterfaceRegistry : public mojom::InterfaceProvider { |
} |
void RemoveInterface(const std::string& name); |
+ // Temporarily prevent incoming interface requests from being bound. Incoming |
+ // requests will be queued internally and dispatched once UnpauseBinding() is |
+ // called. |
+ void PauseBinding(); |
+ |
+ // Resumes incoming interface request binding. |
+ void ResumeBinding(); |
+ |
private: |
using NameToInterfaceBinderMap = |
std::map<std::string, std::unique_ptr<InterfaceBinder>>; |
@@ -117,6 +125,8 @@ class InterfaceRegistry : public mojom::InterfaceProvider { |
bool SetInterfaceBinderForName(std::unique_ptr<InterfaceBinder> binder, |
const std::string& name); |
+ mojom::InterfaceProviderRequest pending_request_; |
+ |
mojo::Binding<mojom::InterfaceProvider> binding_; |
Connection* connection_; |