| Index: chrome/browser/service_process/service_process_control_browsertest.cc
|
| diff --git a/chrome/browser/service_process/service_process_control_browsertest.cc b/chrome/browser/service_process/service_process_control_browsertest.cc
|
| index eb934c85a7a853d4e6ae91dc41776dd0cb4d088d..c510cd76cd8fa8396dc558bb77b97475a03d972a 100644
|
| --- a/chrome/browser/service_process/service_process_control_browsertest.cc
|
| +++ b/chrome/browser/service_process/service_process_control_browsertest.cc
|
| @@ -9,7 +9,7 @@
|
| #include "base/command_line.h"
|
| #include "base/path_service.h"
|
| #include "base/process/kill.h"
|
| -#include "base/process/process_handle.h"
|
| +#include "base/process/process.h"
|
| #include "base/process/process_iterator.h"
|
| #include "base/test/test_timeouts.h"
|
| #include "chrome/browser/ui/browser.h"
|
| @@ -25,12 +25,9 @@
|
| class ServiceProcessControlBrowserTest
|
| : public InProcessBrowserTest {
|
| public:
|
| - ServiceProcessControlBrowserTest()
|
| - : service_process_handle_(base::kNullProcessHandle) {
|
| + ServiceProcessControlBrowserTest() {
|
| }
|
| virtual ~ServiceProcessControlBrowserTest() {
|
| - base::CloseProcessHandle(service_process_handle_);
|
| - service_process_handle_ = base::kNullProcessHandle;
|
| }
|
|
|
| void HistogramsCallback() {
|
| @@ -68,10 +65,6 @@ class ServiceProcessControlBrowserTest
|
| ServiceProcessControl::GetInstance()->Disconnect();
|
| }
|
|
|
| - virtual void SetUp() override {
|
| - service_process_handle_ = base::kNullProcessHandle;
|
| - }
|
| -
|
| virtual void TearDown() override {
|
| if (ServiceProcessControl::GetInstance()->IsConnected())
|
| EXPECT_TRUE(ServiceProcessControl::GetInstance()->Shutdown());
|
| @@ -79,11 +72,12 @@ class ServiceProcessControlBrowserTest
|
| // ForceServiceProcessShutdown removes the process from launched on Mac.
|
| ForceServiceProcessShutdown("", 0);
|
| #endif // OS_MACOSX
|
| - if (service_process_handle_ != base::kNullProcessHandle) {
|
| - EXPECT_TRUE(base::WaitForSingleProcess(
|
| - service_process_handle_,
|
| - TestTimeouts::action_max_timeout()));
|
| - service_process_handle_ = base::kNullProcessHandle;
|
| + if (service_process_.IsValid()) {
|
| + int exit_code;
|
| + EXPECT_TRUE(service_process_.WaitForExitWithTimeout(
|
| + TestTimeouts::action_max_timeout(),
|
| + &exit_code));
|
| + service_process_.Close();
|
| }
|
| }
|
|
|
| @@ -91,12 +85,16 @@ class ServiceProcessControlBrowserTest
|
| base::ProcessId service_pid;
|
| EXPECT_TRUE(GetServiceProcessData(NULL, &service_pid));
|
| EXPECT_NE(static_cast<base::ProcessId>(0), service_pid);
|
| - EXPECT_TRUE(base::OpenProcessHandleWithAccess(
|
| - service_pid,
|
| - base::kProcessAccessWaitForTermination |
|
| - // we need query permission to get exit code
|
| - base::kProcessAccessQueryInformation,
|
| - &service_process_handle_));
|
| +#if defined(OS_WIN)
|
| + service_process_ =
|
| + base::Process::OpenWithAccess(service_pid,
|
| + SYNCHRONIZE | PROCESS_QUERY_INFORMATION);
|
| + EXPECT_TRUE(service_process_.IsValid());
|
| +#else
|
| + base::ProcessHandle service_process_handle;
|
| + EXPECT_TRUE(base::OpenProcessHandle(service_pid, &service_process_handle));
|
| + service_process_ = base::Process(service_process_handle);
|
| +#endif
|
| // Quit the current message. Post a QuitTask instead of just calling Quit()
|
| // because this can get invoked in the context of a Launch() call and we
|
| // may not be in Run() yet.
|
| @@ -112,7 +110,7 @@ class ServiceProcessControlBrowserTest
|
| }
|
|
|
| private:
|
| - base::ProcessHandle service_process_handle_;
|
| + base::Process service_process_;
|
| };
|
|
|
| class RealServiceProcessControlBrowserTest
|
|
|