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

Side by Side Diff: mojo/services/view_manager/view_manager_unittest.cc

Issue 380413003: Mojo: Use InterfaceFactory<Interface> for service registration (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: convert everything over, remove ApplicationConnection::AddService Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include <string> 5 #include <string>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/at_exit.h" 8 #include "base/at_exit.h"
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 297
298 // static 298 // static
299 base::RunLoop* ViewManagerProxy::main_run_loop_ = NULL; 299 base::RunLoop* ViewManagerProxy::main_run_loop_ = NULL;
300 300
301 // static 301 // static
302 bool ViewManagerProxy::in_embed_ = false; 302 bool ViewManagerProxy::in_embed_ = false;
303 303
304 class TestViewManagerClientConnection 304 class TestViewManagerClientConnection
305 : public InterfaceImpl<ViewManagerClient> { 305 : public InterfaceImpl<ViewManagerClient> {
306 public: 306 public:
307 TestViewManagerClientConnection(ApplicationConnection* app_connection) : 307 TestViewManagerClientConnection() : connection_(&tracker_) {
308 connection_(&tracker_) {
309 tracker_.set_delegate(&connection_); 308 tracker_.set_delegate(&connection_);
310 } 309 }
311 310
312 // InterfaceImp: 311 // InterfaceImp:
313 virtual void OnConnectionEstablished() OVERRIDE { 312 virtual void OnConnectionEstablished() OVERRIDE {
314 connection_.set_router(internal_state()->router()); 313 connection_.set_router(internal_state()->router());
315 connection_.set_view_manager(client()); 314 connection_.set_view_manager(client());
316 } 315 }
317 316
318 // ViewMangerClient: 317 // ViewMangerClient:
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 374
376 private: 375 private:
377 TestChangeTracker tracker_; 376 TestChangeTracker tracker_;
378 ViewManagerProxy connection_; 377 ViewManagerProxy connection_;
379 378
380 DISALLOW_COPY_AND_ASSIGN(TestViewManagerClientConnection); 379 DISALLOW_COPY_AND_ASSIGN(TestViewManagerClientConnection);
381 }; 380 };
382 381
383 // Used with ViewManagerService::Embed(). Creates a 382 // Used with ViewManagerService::Embed(). Creates a
384 // TestViewManagerClientConnection, which creates and owns the ViewManagerProxy. 383 // TestViewManagerClientConnection, which creates and owns the ViewManagerProxy.
385 class EmbedServiceLoader : public ServiceLoader, ApplicationDelegate { 384 class EmbedServiceLoader : public ServiceLoader,
385 ApplicationDelegate,
386 public InterfaceFactory<ViewManagerClient> {
386 public: 387 public:
387 EmbedServiceLoader() {} 388 EmbedServiceLoader() {}
388 virtual ~EmbedServiceLoader() {} 389 virtual ~EmbedServiceLoader() {}
389 390
390 // ServiceLoader: 391 // ServiceLoader implementation:
391 virtual void LoadService(ServiceManager* manager, 392 virtual void LoadService(ServiceManager* manager,
392 const GURL& url, 393 const GURL& url,
393 ScopedMessagePipeHandle shell_handle) OVERRIDE { 394 ScopedMessagePipeHandle shell_handle) OVERRIDE {
394 scoped_ptr<ApplicationImpl> app(new ApplicationImpl(this, 395 scoped_ptr<ApplicationImpl> app(new ApplicationImpl(this,
395 shell_handle.Pass())); 396 shell_handle.Pass()));
396 apps_.push_back(app.release()); 397 apps_.push_back(app.release());
397 } 398 }
398 virtual void OnServiceError(ServiceManager* manager, 399 virtual void OnServiceError(ServiceManager* manager,
399 const GURL& url) OVERRIDE { 400 const GURL& url) OVERRIDE {
400 } 401 }
401 402
402 // ApplicationDelegate 403 // ApplicationDelegate implementation:
403 virtual bool ConfigureIncomingConnection(ApplicationConnection* connection) 404 virtual bool ConfigureIncomingConnection(ApplicationConnection* connection)
404 OVERRIDE { 405 OVERRIDE {
405 connection->AddService<TestViewManagerClientConnection>(); 406 connection->AddServiceFactory(this);
406 return true; 407 return true;
407 } 408 }
408 409
410 // InterfaceFactory<ViewManagerClient> implementation:
411 virtual void Create(ApplicationConnection* connection,
412 InterfaceRequest<ViewManagerClient> request) OVERRIDE {
413 mojo::BindToRequest(new TestViewManagerClientConnection, &request);
414 }
415
409 private: 416 private:
410 ScopedVector<ApplicationImpl> apps_; 417 ScopedVector<ApplicationImpl> apps_;
411 418
412 DISALLOW_COPY_AND_ASSIGN(EmbedServiceLoader); 419 DISALLOW_COPY_AND_ASSIGN(EmbedServiceLoader);
413 }; 420 };
414 421
415 // Creates an id used for transport from the specified parameters. 422 // Creates an id used for transport from the specified parameters.
416 Id BuildNodeId(ConnectionSpecificId connection_id, 423 Id BuildNodeId(ConnectionSpecificId connection_id,
417 ConnectionSpecificId node_id) { 424 ConnectionSpecificId node_id) {
418 return (connection_id << 16) | node_id; 425 return (connection_id << 16) | node_id;
(...skipping 978 matching lines...) Expand 10 before | Expand all | Expand 10 after
1397 // originating connection. 1404 // originating connection.
1398 1405
1399 // TODO(beng): Add tests for focus: 1406 // TODO(beng): Add tests for focus:
1400 // - focus between two nodes known to a connection 1407 // - focus between two nodes known to a connection
1401 // - focus between nodes unknown to one of the connections. 1408 // - focus between nodes unknown to one of the connections.
1402 // - focus between nodes unknown to either connection. 1409 // - focus between nodes unknown to either connection.
1403 1410
1404 } // namespace service 1411 } // namespace service
1405 } // namespace view_manager 1412 } // namespace view_manager
1406 } // namespace mojo 1413 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698