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

Side by Side Diff: chrome/test/base/mojo_test_connector.cc

Issue 2389133008: Mash: Replaces "exe:chrome" with "service:content_browser" (Closed)
Patch Set: rebase 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
« no previous file with comments | « chrome/test/BUILD.gn ('k') | mash/app_driver/app_driver.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include "chrome/test/base/mojo_test_connector.h" 5 #include "chrome/test/base/mojo_test_connector.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 17 matching lines...) Expand all
28 #include "services/shell/runner/common/switches.h" 28 #include "services/shell/runner/common/switches.h"
29 #include "services/shell/service_manager.h" 29 #include "services/shell/service_manager.h"
30 #include "services/shell/switches.h" 30 #include "services/shell/switches.h"
31 31
32 using shell::mojom::Service; 32 using shell::mojom::Service;
33 using shell::mojom::ServicePtr; 33 using shell::mojom::ServicePtr;
34 34
35 namespace { 35 namespace {
36 36
37 const char kTestRunnerName[] = "exe:mash_browser_tests"; 37 const char kTestRunnerName[] = "exe:mash_browser_tests";
38 const char kTestName[] = "exe:chrome"; 38 const char kTestName[] = "service:content_browser";
39 39
40 // BackgroundTestState maintains all the state necessary to bind the test to 40 // BackgroundTestState maintains all the state necessary to bind the test to
41 // mojo. This class is only used on the thread created by BackgroundShell. 41 // mojo. This class is only used on the thread created by BackgroundShell.
42 class BackgroundTestState { 42 class BackgroundTestState {
43 public: 43 public:
44 BackgroundTestState() : child_token_(mojo::edk::GenerateRandomToken()) {} 44 BackgroundTestState() : child_token_(mojo::edk::GenerateRandomToken()) {}
45 ~BackgroundTestState() {} 45 ~BackgroundTestState() {}
46 46
47 // Prepares the command line and other setup for connecting the test to mojo. 47 // Prepares the command line and other setup for connecting the test to mojo.
48 // Must be paired with a call to ChildProcessLaunched(). 48 // Must be paired with a call to ChildProcessLaunched().
(...skipping 15 matching lines...) Expand all
64 test_launch_options->fds_to_remap = &handle_passing_info_; 64 test_launch_options->fds_to_remap = &handle_passing_info_;
65 #else 65 #else
66 #error "Unsupported" 66 #error "Unsupported"
67 #endif 67 #endif
68 shell::mojom::ServicePtr service = 68 shell::mojom::ServicePtr service =
69 shell::PassServiceRequestOnCommandLine(command_line, child_token_); 69 shell::PassServiceRequestOnCommandLine(command_line, child_token_);
70 70
71 std::unique_ptr<shell::ConnectParams> params(new shell::ConnectParams); 71 std::unique_ptr<shell::ConnectParams> params(new shell::ConnectParams);
72 params->set_source(shell::CreateServiceManagerIdentity()); 72 params->set_source(shell::CreateServiceManagerIdentity());
73 // Use the default instance name (which should be "browser"). Otherwise a 73 // Use the default instance name (which should be "browser"). Otherwise a
74 // service (e.g. ash) that connects to the default "exe:chrome" will spawn 74 // service (e.g. ash) that connects to the default "service:content_browser"
75 // a new instance. 75 // will spawn a new instance.
76 params->set_target(shell::Identity(kTestName, shell::mojom::kRootUserID)); 76 params->set_target(shell::Identity(kTestName, shell::mojom::kRootUserID));
77 77
78 shell::mojom::ClientProcessConnectionPtr client_process_connection = 78 shell::mojom::ClientProcessConnectionPtr client_process_connection =
79 shell::mojom::ClientProcessConnection::New(); 79 shell::mojom::ClientProcessConnection::New();
80 client_process_connection->service = 80 client_process_connection->service =
81 service.PassInterface().PassHandle(); 81 service.PassInterface().PassHandle();
82 client_process_connection->pid_receiver_request = 82 client_process_connection->pid_receiver_request =
83 mojo::GetProxy(&pid_receiver_).PassMessagePipe(); 83 mojo::GetProxy(&pid_receiver_).PassMessagePipe();
84 params->set_client_process_connection(std::move(client_process_connection)); 84 params->set_client_process_connection(std::move(client_process_connection));
85 service_manager->Connect(std::move(params)); 85 service_manager->Connect(std::move(params));
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 : public shell::NativeRunnerDelegate { 202 : public shell::NativeRunnerDelegate {
203 public: 203 public:
204 NativeRunnerDelegateImpl() {} 204 NativeRunnerDelegateImpl() {}
205 ~NativeRunnerDelegateImpl() override {} 205 ~NativeRunnerDelegateImpl() override {}
206 206
207 private: 207 private:
208 // shell::NativeRunnerDelegate: 208 // shell::NativeRunnerDelegate:
209 void AdjustCommandLineArgumentsForTarget( 209 void AdjustCommandLineArgumentsForTarget(
210 const shell::Identity& target, 210 const shell::Identity& target,
211 base::CommandLine* command_line) override { 211 base::CommandLine* command_line) override {
212 if (target.name() != "exe:chrome") { 212 if (target.name() != kTestName) {
213 if (target.name() == "exe:mash_browser_tests") 213 if (target.name() == kTestRunnerName)
214 RemoveMashFromBrowserTests(command_line); 214 RemoveMashFromBrowserTests(command_line);
215 command_line->AppendSwitch(MojoTestConnector::kMashApp); 215 command_line->AppendSwitch(MojoTestConnector::kMashApp);
216 return; 216 return;
217 } 217 }
218 218
219 base::CommandLine::StringVector argv(command_line->argv()); 219 base::CommandLine::StringVector argv(command_line->argv());
220 auto iter = 220 auto iter =
221 std::find(argv.begin(), argv.end(), FILE_PATH_LITERAL("--run-in-mash")); 221 std::find(argv.begin(), argv.end(), FILE_PATH_LITERAL("--run-in-mash"));
222 if (iter != argv.end()) 222 if (iter != argv.end())
223 argv.erase(iter); 223 argv.erase(iter);
(...skipping 26 matching lines...) Expand all
250 MojoTestConnector::~MojoTestConnector() {} 250 MojoTestConnector::~MojoTestConnector() {}
251 251
252 std::unique_ptr<content::TestState> MojoTestConnector::PrepareForTest( 252 std::unique_ptr<content::TestState> MojoTestConnector::PrepareForTest(
253 base::CommandLine* command_line, 253 base::CommandLine* command_line,
254 base::TestLauncher::LaunchOptions* test_launch_options) { 254 base::TestLauncher::LaunchOptions* test_launch_options) {
255 std::unique_ptr<MojoTestState> test_state( 255 std::unique_ptr<MojoTestState> test_state(
256 new MojoTestState(&background_shell_)); 256 new MojoTestState(&background_shell_));
257 test_state->Init(command_line, test_launch_options); 257 test_state->Init(command_line, test_launch_options);
258 return std::move(test_state); 258 return std::move(test_state);
259 } 259 }
OLDNEW
« no previous file with comments | « chrome/test/BUILD.gn ('k') | mash/app_driver/app_driver.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698