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

Side by Side Diff: services/shell/public/cpp/interface_registry.h

Issue 2417703002: Fix an issue running mash in chrome: (Closed)
Patch Set: Created 4 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef SERVICES_SHELL_PUBLIC_CPP_INTERFACE_REGISTRY_H_ 5 #ifndef SERVICES_SHELL_PUBLIC_CPP_INTERFACE_REGISTRY_H_
6 #define SERVICES_SHELL_PUBLIC_CPP_INTERFACE_REGISTRY_H_ 6 #define SERVICES_SHELL_PUBLIC_CPP_INTERFACE_REGISTRY_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <queue> 9 #include <queue>
10 #include <set> 10 #include <set>
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 private: 74 private:
75 InterfaceRegistry* registry_; 75 InterfaceRegistry* registry_;
76 DISALLOW_COPY_AND_ASSIGN(TestApi); 76 DISALLOW_COPY_AND_ASSIGN(TestApi);
77 }; 77 };
78 78
79 // Construct an InterfaceRegistry with no filtering rules applied. 79 // Construct an InterfaceRegistry with no filtering rules applied.
80 InterfaceRegistry(); 80 InterfaceRegistry();
81 81
82 // Construct an InterfaceRegistry with filtering rules as specified in 82 // Construct an InterfaceRegistry with filtering rules as specified in
83 // |capability_request| applied. 83 // |capability_request| applied.
84 InterfaceRegistry(const Identity& remote_identity, 84 InterfaceRegistry(const Identity& local_identity,
85 const Identity& remote_identity,
85 const CapabilityRequest& capability_request); 86 const CapabilityRequest& capability_request);
86 ~InterfaceRegistry() override; 87 ~InterfaceRegistry() override;
87 88
88 // Sets a default handler for incoming interface requests which are allowed by 89 // Sets a default handler for incoming interface requests which are allowed by
89 // capability filters but have no registered handler in this registry. 90 // capability filters but have no registered handler in this registry.
90 void set_default_binder(const Binder& binder) { default_binder_ = binder; } 91 void set_default_binder(const Binder& binder) { default_binder_ = binder; }
91 92
92 void Bind(mojom::InterfaceProviderRequest local_interfaces_request); 93 void Bind(mojom::InterfaceProviderRequest local_interfaces_request);
93 94
94 base::WeakPtr<InterfaceRegistry> GetWeakPtr(); 95 base::WeakPtr<InterfaceRegistry> GetWeakPtr();
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 bool SetInterfaceBinderForName(std::unique_ptr<InterfaceBinder> binder, 156 bool SetInterfaceBinderForName(std::unique_ptr<InterfaceBinder> binder,
156 const std::string& name); 157 const std::string& name);
157 158
158 // Returns true if |remote_identity_| is allowed to bind |interface_name|, 159 // Returns true if |remote_identity_| is allowed to bind |interface_name|,
159 // according to capability policy. 160 // according to capability policy.
160 bool CanBindRequestForInterface(const std::string& interface_name) const; 161 bool CanBindRequestForInterface(const std::string& interface_name) const;
161 162
162 mojom::InterfaceProviderRequest pending_request_; 163 mojom::InterfaceProviderRequest pending_request_;
163 164
164 mojo::Binding<mojom::InterfaceProvider> binding_; 165 mojo::Binding<mojom::InterfaceProvider> binding_;
166 const Identity local_identity_;
165 const Identity remote_identity_; 167 const Identity remote_identity_;
166 const CapabilityRequest capability_request_; 168 const CapabilityRequest capability_request_;
167 const bool allow_all_interfaces_; 169 const bool allow_all_interfaces_;
168 170
169 NameToInterfaceBinderMap name_to_binder_; 171 NameToInterfaceBinderMap name_to_binder_;
170 Binder default_binder_; 172 Binder default_binder_;
171 173
172 bool is_paused_ = false; 174 bool is_paused_ = false;
173 175
174 // Pending interface requests which can accumulate if GetInterface() is called 176 // Pending interface requests which can accumulate if GetInterface() is called
175 // while binding is paused. 177 // while binding is paused.
176 std::queue<std::pair<std::string, mojo::ScopedMessagePipeHandle>> 178 std::queue<std::pair<std::string, mojo::ScopedMessagePipeHandle>>
177 pending_interface_requests_; 179 pending_interface_requests_;
178 180
179 base::WeakPtrFactory<InterfaceRegistry> weak_factory_; 181 base::WeakPtrFactory<InterfaceRegistry> weak_factory_;
180 182
181 DISALLOW_COPY_AND_ASSIGN(InterfaceRegistry); 183 DISALLOW_COPY_AND_ASSIGN(InterfaceRegistry);
182 }; 184 };
183 185
184 } // namespace shell 186 } // namespace shell
185 187
186 #endif // SERVICES_SHELL_PUBLIC_CPP_INTERFACE_REGISTRY_H_ 188 #endif // SERVICES_SHELL_PUBLIC_CPP_INTERFACE_REGISTRY_H_
OLDNEW
« no previous file with comments | « chrome/app/mash/chrome_mash_manifest.json ('k') | services/shell/public/cpp/lib/interface_registry.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698