| 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 "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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 // ChildProcessLaunched may be called on an arbitrary thread, so track the | 80 // ChildProcessLaunched may be called on an arbitrary thread, so track the |
| 81 // current TaskRunner and post back to it when we want to send the PID. | 81 // current TaskRunner and post back to it when we want to send the PID. |
| 82 main_task_runner_ = base::ThreadTaskRunnerHandle::Get(); | 82 main_task_runner_ = base::ThreadTaskRunnerHandle::Get(); |
| 83 } | 83 } |
| 84 | 84 |
| 85 private: | 85 private: |
| 86 // content::TestState: | 86 // content::TestState: |
| 87 void ChildProcessLaunched(base::ProcessHandle handle, | 87 void ChildProcessLaunched(base::ProcessHandle handle, |
| 88 base::ProcessId pid) override { | 88 base::ProcessId pid) override { |
| 89 platform_channel_->ChildProcessLaunched(); | 89 platform_channel_->ChildProcessLaunched(); |
| 90 process_connection_.Connect(handle, platform_channel_->PassServerHandle()); | 90 process_connection_.Connect( |
| 91 handle, |
| 92 mojo::edk::ConnectionParam(platform_channel_->PassServerHandle())); |
| 91 | 93 |
| 92 main_task_runner_->PostTask( | 94 main_task_runner_->PostTask( |
| 93 FROM_HERE, | 95 FROM_HERE, |
| 94 base::Bind(&MojoTestState::SetPID, weak_factory_.GetWeakPtr(), pid)); | 96 base::Bind(&MojoTestState::SetPID, weak_factory_.GetWeakPtr(), pid)); |
| 95 } | 97 } |
| 96 | 98 |
| 97 // Called on the main thread only. | 99 // Called on the main thread only. |
| 98 void SetPID(base::ProcessId pid) { | 100 void SetPID(base::ProcessId pid) { |
| 99 DCHECK(pid_receiver_.is_bound()); | 101 DCHECK(pid_receiver_.is_bound()); |
| 100 pid_receiver_->SetPID(pid); | 102 pid_receiver_->SetPID(pid); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 MojoTestConnector::~MojoTestConnector() {} | 205 MojoTestConnector::~MojoTestConnector() {} |
| 204 | 206 |
| 205 std::unique_ptr<content::TestState> MojoTestConnector::PrepareForTest( | 207 std::unique_ptr<content::TestState> MojoTestConnector::PrepareForTest( |
| 206 base::CommandLine* command_line, | 208 base::CommandLine* command_line, |
| 207 base::TestLauncher::LaunchOptions* test_launch_options) { | 209 base::TestLauncher::LaunchOptions* test_launch_options) { |
| 208 auto test_state = | 210 auto test_state = |
| 209 base::MakeUnique<MojoTestState>(&background_service_manager_); | 211 base::MakeUnique<MojoTestState>(&background_service_manager_); |
| 210 test_state->Init(command_line, test_launch_options); | 212 test_state->Init(command_line, test_launch_options); |
| 211 return test_state; | 213 return test_state; |
| 212 } | 214 } |
| OLD | NEW |