| Index: ash/test/test_metro_viewer_process_host.cc
|
| diff --git a/ash/test/test_metro_viewer_process_host.cc b/ash/test/test_metro_viewer_process_host.cc
|
| index 277864f1681bffa394c50427827d36d3557d779f..a5d36e95a2de2a2ce505c6ebeed8858cc34a1816 100644
|
| --- a/ash/test/test_metro_viewer_process_host.cc
|
| +++ b/ash/test/test_metro_viewer_process_host.cc
|
| @@ -23,81 +23,14 @@
|
| namespace ash {
|
| namespace test {
|
|
|
| -TestMetroViewerProcessHost::InternalMessageFilter::InternalMessageFilter(
|
| - TestMetroViewerProcessHost* owner)
|
| - : owner_(owner) {
|
| -}
|
| -
|
| -void TestMetroViewerProcessHost::InternalMessageFilter::OnChannelConnected(
|
| - int32 peer_pid) {
|
| - owner_->NotifyChannelConnected();
|
| -}
|
| -
|
| TestMetroViewerProcessHost::TestMetroViewerProcessHost(
|
| - const std::string& ipc_channel_name)
|
| - : ipc_thread_("test_metro_viewer_ipc_thread"),
|
| - channel_connected_event_(false, false),
|
| + const std::string& ipc_channel_name,
|
| + base::SingleThreadTaskRunner* ipc_task_runner)
|
| + : MetroViewerProcessHost(ipc_channel_name, ipc_task_runner),
|
| closed_unexpectedly_(false) {
|
| -
|
| - base::Thread::Options options;
|
| - options.message_loop_type = base::MessageLoop::TYPE_IO;
|
| - ipc_thread_.StartWithOptions(options);
|
| -
|
| - channel_.reset(new IPC::ChannelProxy(
|
| - ipc_channel_name.c_str(),
|
| - IPC::Channel::MODE_NAMED_SERVER,
|
| - this,
|
| - ipc_thread_.message_loop_proxy()));
|
| -
|
| - channel_->AddFilter(new InternalMessageFilter(this));
|
| }
|
|
|
| TestMetroViewerProcessHost::~TestMetroViewerProcessHost() {
|
| - channel_.reset();
|
| - ipc_thread_.Stop();
|
| -}
|
| -
|
| -void TestMetroViewerProcessHost::NotifyChannelConnected() {
|
| - channel_connected_event_.Signal();
|
| -}
|
| -
|
| -bool TestMetroViewerProcessHost::LaunchViewerAndWaitForConnection(
|
| - const base::string16& app_user_model_id) {
|
| - // Activate the viewer process. NOTE: This assumes that the viewer process is
|
| - // registered as the default browser using the provided |app_user_model_id|.
|
| -
|
| - // TODO(robertshield): Initialize COM at test suite startup.
|
| - base::win::ScopedCOMInitializer com_initializer;
|
| -
|
| - base::win::ScopedComPtr<IApplicationActivationManager> activator;
|
| - HRESULT hr = activator.CreateInstance(CLSID_ApplicationActivationManager);
|
| - if (SUCCEEDED(hr)) {
|
| - DWORD pid = 0;
|
| - hr = activator->ActivateApplication(
|
| - app_user_model_id.c_str(), L"open", AO_NONE, &pid);
|
| - }
|
| -
|
| - LOG_IF(ERROR, FAILED(hr)) << "Tried and failed to launch Metro Chrome. "
|
| - << "hr=" << std::hex << hr;
|
| -
|
| - // Having launched the viewer process, now we wait for it to connect.
|
| - return channel_connected_event_.TimedWait(base::TimeDelta::FromSeconds(60));
|
| -}
|
| -
|
| -bool TestMetroViewerProcessHost::Send(IPC::Message* msg) {
|
| - return channel_->Send(msg);
|
| -}
|
| -
|
| -bool TestMetroViewerProcessHost::OnMessageReceived(
|
| - const IPC::Message& message) {
|
| - DCHECK(CalledOnValidThread());
|
| - bool handled = true;
|
| - IPC_BEGIN_MESSAGE_MAP(TestMetroViewerProcessHost, message)
|
| - IPC_MESSAGE_HANDLER(MetroViewerHostMsg_SetTargetSurface, OnSetTargetSurface)
|
| - IPC_MESSAGE_UNHANDLED(handled = false)
|
| - IPC_END_MESSAGE_MAP()
|
| - return handled ? true :
|
| - aura::RemoteRootWindowHostWin::Instance()->OnMessageReceived(message);
|
| }
|
|
|
| void TestMetroViewerProcessHost::OnChannelError() {
|
|
|