Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / ash / test / test_metro_viewer_process_host.cc
index 85df3e2..156cf99 100644 (file)
@@ -22,6 +22,22 @@ TestMetroViewerProcessHost::TestMetroViewerProcessHost(
 TestMetroViewerProcessHost::~TestMetroViewerProcessHost() {
 }
 
+void TestMetroViewerProcessHost::TerminateViewer() {
+  base::ProcessId viewer_process_id = GetViewerProcessId();
+  if (viewer_process_id != base::kNullProcessId) {
+    base::ProcessHandle viewer_process = NULL;
+    base::OpenProcessHandleWithAccess(
+        viewer_process_id,
+        PROCESS_QUERY_INFORMATION | SYNCHRONIZE | PROCESS_TERMINATE,
+        &viewer_process);
+    if (viewer_process) {
+      ::TerminateProcess(viewer_process, 0);
+      ::WaitForSingleObject(viewer_process, INFINITE);
+      ::CloseHandle(viewer_process);
+    }
+  }
+}
+
 void TestMetroViewerProcessHost::OnChannelError() {
   closed_unexpectedly_ = true;
   aura::RemoteWindowTreeHostWin::Instance()->Disconnected();