OLD | NEW |
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 #include <stddef.h> | 5 #include <stddef.h> |
6 #include <stdint.h> | 6 #include <stdint.h> |
7 | 7 |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 using GetNameCallback = | 29 using GetNameCallback = |
30 test::mojom::ApplicationPackageApptestService::GetNameCallback; | 30 test::mojom::ApplicationPackageApptestService::GetNameCallback; |
31 | 31 |
32 class ProvidedApplicationDelegate | 32 class ProvidedApplicationDelegate |
33 : public ShellClient, | 33 : public ShellClient, |
34 public InterfaceFactory<test::mojom::ApplicationPackageApptestService>, | 34 public InterfaceFactory<test::mojom::ApplicationPackageApptestService>, |
35 public test::mojom::ApplicationPackageApptestService, | 35 public test::mojom::ApplicationPackageApptestService, |
36 public base::SimpleThread { | 36 public base::SimpleThread { |
37 public: | 37 public: |
38 ProvidedApplicationDelegate(const std::string& name, | 38 ProvidedApplicationDelegate(const std::string& name, |
39 InterfaceRequest<mojom::Application> request, | 39 InterfaceRequest<mojom::ShellClient> request, |
40 const Callback<void()>& destruct_callback) | 40 const Callback<void()>& destruct_callback) |
41 : base::SimpleThread(name), | 41 : base::SimpleThread(name), |
42 name_(name), | 42 name_(name), |
43 request_(std::move(request)), | 43 request_(std::move(request)), |
44 destruct_callback_(destruct_callback) { | 44 destruct_callback_(destruct_callback) { |
45 Start(); | 45 Start(); |
46 } | 46 } |
47 ~ProvidedApplicationDelegate() override { | 47 ~ProvidedApplicationDelegate() override { |
48 Join(); | 48 Join(); |
49 destruct_callback_.Run(); | 49 destruct_callback_.Run(); |
(...skipping 21 matching lines...) Expand all Loading... |
71 } | 71 } |
72 | 72 |
73 // base::SimpleThread: | 73 // base::SimpleThread: |
74 void Run() override { | 74 void Run() override { |
75 ApplicationRunner(this).Run(request_.PassMessagePipe().release().value(), | 75 ApplicationRunner(this).Run(request_.PassMessagePipe().release().value(), |
76 false); | 76 false); |
77 delete this; | 77 delete this; |
78 } | 78 } |
79 | 79 |
80 const std::string name_; | 80 const std::string name_; |
81 InterfaceRequest<mojom::Application> request_; | 81 InterfaceRequest<mojom::ShellClient> request_; |
82 const Callback<void()> destruct_callback_; | 82 const Callback<void()> destruct_callback_; |
83 WeakBindingSet<test::mojom::ApplicationPackageApptestService> bindings_; | 83 WeakBindingSet<test::mojom::ApplicationPackageApptestService> bindings_; |
84 | 84 |
85 DISALLOW_COPY_AND_ASSIGN(ProvidedApplicationDelegate); | 85 DISALLOW_COPY_AND_ASSIGN(ProvidedApplicationDelegate); |
86 }; | 86 }; |
87 | 87 |
88 class ApplicationPackageApptestDelegate | 88 class ApplicationPackageApptestDelegate |
89 : public ShellClient, | 89 : public ShellClient, |
90 public InterfaceFactory<mojom::ContentHandler>, | 90 public InterfaceFactory<mojom::ContentHandler>, |
91 public InterfaceFactory<test::mojom::ApplicationPackageApptestService>, | 91 public InterfaceFactory<test::mojom::ApplicationPackageApptestService>, |
(...skipping 19 matching lines...) Expand all Loading... |
111 } | 111 } |
112 | 112 |
113 // InterfaceFactory<test::mojom::ApplicationPackageApptestService>: | 113 // InterfaceFactory<test::mojom::ApplicationPackageApptestService>: |
114 void Create(Connection* connection, | 114 void Create(Connection* connection, |
115 InterfaceRequest<test::mojom::ApplicationPackageApptestService> | 115 InterfaceRequest<test::mojom::ApplicationPackageApptestService> |
116 request) override { | 116 request) override { |
117 bindings_.AddBinding(this, std::move(request)); | 117 bindings_.AddBinding(this, std::move(request)); |
118 } | 118 } |
119 | 119 |
120 // mojom::ContentHandler: | 120 // mojom::ContentHandler: |
121 void StartApplication(InterfaceRequest<mojom::Application> request, | 121 void StartApplication(InterfaceRequest<mojom::ShellClient> request, |
122 URLResponsePtr response, | 122 URLResponsePtr response, |
123 const Callback<void()>& destruct_callback) override { | 123 const Callback<void()>& destruct_callback) override { |
124 const std::string url = response->url; | 124 const std::string url = response->url; |
125 if (url == "mojo://package_test_a/") { | 125 if (url == "mojo://package_test_a/") { |
126 new ProvidedApplicationDelegate("A", std::move(request), | 126 new ProvidedApplicationDelegate("A", std::move(request), |
127 destruct_callback); | 127 destruct_callback); |
128 } else if (url == "mojo://package_test_b/") { | 128 } else if (url == "mojo://package_test_b/") { |
129 new ProvidedApplicationDelegate("B", std::move(request), | 129 new ProvidedApplicationDelegate("B", std::move(request), |
130 destruct_callback); | 130 destruct_callback); |
131 } | 131 } |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
199 base::RunLoop run_loop; | 199 base::RunLoop run_loop; |
200 std::string b_name; | 200 std::string b_name; |
201 service_b->GetName(base::Bind(&ReceiveName, &b_name, &run_loop)); | 201 service_b->GetName(base::Bind(&ReceiveName, &b_name, &run_loop)); |
202 run_loop.Run(); | 202 run_loop.Run(); |
203 EXPECT_EQ("B", b_name); | 203 EXPECT_EQ("B", b_name); |
204 } | 204 } |
205 } | 205 } |
206 | 206 |
207 } // namespace shell | 207 } // namespace shell |
208 } // namespace mojo | 208 } // namespace mojo |
OLD | NEW |