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 |