Home | History | Annotate | Download | only in test
      1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "ash/test/test_metro_viewer_process_host.h"
      6 
      7 #include <windef.h>
      8 
      9 #include "base/logging.h"
     10 #include "ui/aura/remote_window_tree_host_win.h"
     11 #include "ui/gfx/win/dpi.h"
     12 
     13 namespace ash {
     14 namespace test {
     15 
     16 TestMetroViewerProcessHost::TestMetroViewerProcessHost(
     17     base::SingleThreadTaskRunner* ipc_task_runner)
     18     : MetroViewerProcessHost(ipc_task_runner),
     19       closed_unexpectedly_(false) {
     20 }
     21 
     22 TestMetroViewerProcessHost::~TestMetroViewerProcessHost() {
     23 }
     24 
     25 void TestMetroViewerProcessHost::TerminateViewer() {
     26   base::ProcessId viewer_process_id = GetViewerProcessId();
     27   if (viewer_process_id != base::kNullProcessId) {
     28     base::ProcessHandle viewer_process = NULL;
     29     base::OpenProcessHandleWithAccess(
     30         viewer_process_id,
     31         PROCESS_QUERY_INFORMATION | SYNCHRONIZE | PROCESS_TERMINATE,
     32         &viewer_process);
     33     if (viewer_process) {
     34       ::TerminateProcess(viewer_process, 0);
     35       ::WaitForSingleObject(viewer_process, INFINITE);
     36       ::CloseHandle(viewer_process);
     37     }
     38   }
     39 }
     40 
     41 void TestMetroViewerProcessHost::OnChannelError() {
     42   closed_unexpectedly_ = true;
     43   aura::RemoteWindowTreeHostWin::Instance()->Disconnected();
     44 }
     45 
     46 void TestMetroViewerProcessHost::OnSetTargetSurface(
     47     gfx::NativeViewId target_surface,
     48     float device_scale) {
     49   DLOG(INFO) << __FUNCTION__ << ", target_surface = " << target_surface;
     50   HWND hwnd = reinterpret_cast<HWND>(target_surface);
     51   gfx::InitDeviceScaleFactor(device_scale);
     52   aura::RemoteWindowTreeHostWin::Instance()->SetRemoteWindowHandle(hwnd);
     53   aura::RemoteWindowTreeHostWin::Instance()->Connected(this);
     54 }
     55 
     56 void TestMetroViewerProcessHost::OnOpenURL(const base::string16& url) {
     57 }
     58 
     59 void TestMetroViewerProcessHost::OnHandleSearchRequest(
     60     const base::string16& search_string) {
     61 }
     62 
     63 void TestMetroViewerProcessHost::OnWindowSizeChanged(uint32 width,
     64                                                      uint32 height) {
     65 }
     66 
     67 }  // namespace test
     68 }  // namespace ash
     69