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

Side by Side Diff: components/view_manager/view_manager_service_apptest.cc

Issue 1254383016: ApplicationConnection lifetime management changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years, 4 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 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/message_loop/message_loop.h" 6 #include "base/message_loop/message_loop.h"
7 #include "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "components/view_manager/ids.h" 9 #include "components/view_manager/ids.h"
10 #include "components/view_manager/public/interfaces/view_manager.mojom.h" 10 #include "components/view_manager/public/interfaces/view_manager.mojom.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 71
72 bool EmbedUrl(mojo::ApplicationImpl* app, 72 bool EmbedUrl(mojo::ApplicationImpl* app,
73 ViewManagerService* vm, 73 ViewManagerService* vm,
74 const String& url, 74 const String& url,
75 Id root_id) { 75 Id root_id) {
76 bool result = false; 76 bool result = false;
77 base::RunLoop run_loop; 77 base::RunLoop run_loop;
78 { 78 {
79 mojo::URLRequestPtr request(mojo::URLRequest::New()); 79 mojo::URLRequestPtr request(mojo::URLRequest::New());
80 request->url = mojo::String::From(url); 80 request->url = mojo::String::From(url);
81 ApplicationConnection* connection = 81 scoped_ptr<ApplicationConnection> connection =
82 app->ConnectToApplication(request.Pass()); 82 app->ConnectToApplication(request.Pass());
83 mojo::ViewManagerClientPtr client; 83 mojo::ViewManagerClientPtr client;
84 connection->ConnectToService(&client); 84 connection->ConnectToService(&client);
85 vm->Embed(root_id, client.Pass(), 85 vm->Embed(root_id, client.Pass(),
86 base::Bind(&BoolResultCallback, &run_loop, &result)); 86 base::Bind(&BoolResultCallback, &run_loop, &result));
87 } 87 }
88 run_loop.Run(); 88 run_loop.Run();
89 return result; 89 return result;
90 } 90 }
91 91
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 tracker()->OnEmbed(connection_id, root.Pass()); 336 tracker()->OnEmbed(connection_id, root.Pass());
337 if (embed_run_loop_) 337 if (embed_run_loop_)
338 embed_run_loop_->Quit(); 338 embed_run_loop_->Quit();
339 } 339 }
340 void OnEmbedForDescendant( 340 void OnEmbedForDescendant(
341 uint32_t view, 341 uint32_t view,
342 mojo::URLRequestPtr request, 342 mojo::URLRequestPtr request,
343 const OnEmbedForDescendantCallback& callback) override { 343 const OnEmbedForDescendantCallback& callback) override {
344 tracker()->OnEmbedForDescendant(view); 344 tracker()->OnEmbedForDescendant(view);
345 mojo::ViewManagerClientPtr client; 345 mojo::ViewManagerClientPtr client;
346 ApplicationConnection* connection = 346 scoped_ptr<ApplicationConnection> connection =
347 app_->ConnectToApplication(request.Pass()); 347 app_->ConnectToApplication(request.Pass());
348 connection->ConnectToService(&client); 348 connection->ConnectToService(&client);
349 callback.Run(client.Pass()); 349 callback.Run(client.Pass());
350 } 350 }
351 void OnEmbeddedAppDisconnected(Id view_id) override { 351 void OnEmbeddedAppDisconnected(Id view_id) override {
352 tracker()->OnEmbeddedAppDisconnected(view_id); 352 tracker()->OnEmbeddedAppDisconnected(view_id);
353 } 353 }
354 void OnUnembed() override { tracker()->OnUnembed(); } 354 void OnUnembed() override { tracker()->OnUnembed(); }
355 void OnViewBoundsChanged(Id view_id, 355 void OnViewBoundsChanged(Id view_id,
356 RectPtr old_bounds, 356 RectPtr old_bounds,
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 return client.Pass(); 555 return client.Pass();
556 } 556 }
557 557
558 // ApplicationTestBase: 558 // ApplicationTestBase:
559 ApplicationDelegate* GetApplicationDelegate() override { return this; } 559 ApplicationDelegate* GetApplicationDelegate() override { return this; }
560 void SetUp() override { 560 void SetUp() override {
561 ApplicationTestBase::SetUp(); 561 ApplicationTestBase::SetUp();
562 client_factory_.reset(new ViewManagerClientFactory(application_impl())); 562 client_factory_.reset(new ViewManagerClientFactory(application_impl()));
563 mojo::URLRequestPtr request(mojo::URLRequest::New()); 563 mojo::URLRequestPtr request(mojo::URLRequest::New());
564 request->url = mojo::String::From("mojo:view_manager"); 564 request->url = mojo::String::From("mojo:view_manager");
565 ApplicationConnection* vm_connection = 565 scoped_ptr<ApplicationConnection> vm_connection =
566 application_impl()->ConnectToApplication(request.Pass()); 566 application_impl()->ConnectToApplication(request.Pass());
567 vm_connection->AddService(client_factory_.get()); 567 vm_connection->AddService(client_factory_.get());
568 vm_connection->ConnectToService(&view_manager_root_); 568 vm_connection->ConnectToService(&view_manager_root_);
569 vm_client1_ = client_factory_->WaitForInstance(); 569 vm_client1_ = client_factory_->WaitForInstance();
570 ASSERT_TRUE(vm_client1_); 570 ASSERT_TRUE(vm_client1_);
571 // Next we should get an embed call on the "window manager" client. 571 // Next we should get an embed call on the "window manager" client.
572 vm_client1_->WaitForIncomingMethodCall(); 572 vm_client1_->WaitForIncomingMethodCall();
573 ASSERT_EQ(1u, changes1()->size()); 573 ASSERT_EQ(1u, changes1()->size());
574 EXPECT_EQ(CHANGE_TYPE_EMBED, (*changes1())[0].type); 574 EXPECT_EQ(CHANGE_TYPE_EMBED, (*changes1())[0].type);
575 // All these tests assume 1 for the client id. The only real assertion here 575 // All these tests assume 1 for the client id. The only real assertion here
(...skipping 1127 matching lines...) Expand 10 before | Expand all | Expand 10 after
1703 // TODO(sky): need to better track changes to initial connection. For example, 1703 // TODO(sky): need to better track changes to initial connection. For example,
1704 // that SetBounsdViews/AddView and the like don't result in messages to the 1704 // that SetBounsdViews/AddView and the like don't result in messages to the
1705 // originating connection. 1705 // originating connection.
1706 1706
1707 // TODO(sky): make sure coverage of what was 1707 // TODO(sky): make sure coverage of what was
1708 // ViewManagerTest.SecondEmbedRoot_InitService and 1708 // ViewManagerTest.SecondEmbedRoot_InitService and
1709 // ViewManagerTest.MultipleEmbedRootsBeforeWTHReady gets added to window manager 1709 // ViewManagerTest.MultipleEmbedRootsBeforeWTHReady gets added to window manager
1710 // tests. 1710 // tests.
1711 1711
1712 } // namespace view_manager 1712 } // namespace view_manager
OLDNEW
« no previous file with comments | « components/view_manager/view_manager_client_apptest.cc ('k') | mandoline/tab/frame_connection.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698