Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5954)

Unified Diff: chrome/browser/metro_viewer/metro_viewer_process_host_win.cc

Issue 10984007: in-chrome viewer for metro (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix include Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/metro_viewer/metro_viewer_process_host_win.cc
diff --git a/chrome/browser/metro_viewer/metro_viewer_process_host_win.cc b/chrome/browser/metro_viewer/metro_viewer_process_host_win.cc
new file mode 100644
index 0000000000000000000000000000000000000000..93805957c134a045f9936df89716e475bd6ab47b
--- /dev/null
+++ b/chrome/browser/metro_viewer/metro_viewer_process_host_win.cc
@@ -0,0 +1,59 @@
+// Copyright 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/metro_viewer/metro_viewer_process_host_win.h"
+
+#include "base/logging.h"
+#include "chrome/common/metro_viewer_messages.h"
+#include "content/public/browser/browser_thread.h"
+#include "ipc/ipc_channel_proxy.h"
+#include "ui/surface/accelerated_surface_win.h"
+
+#if defined(USE_AURA)
Ben Goodger (Google) 2012/10/01 16:30:54 and we use gyp not to build these files
scottmg 2012/10/01 17:30:24 Done.
+
+MetroViewerProcessHost::MetroViewerProcessHost() {
+ channel_.reset(new IPC::ChannelProxy(
+ // TODO(scottmg): Need to have a secure way to randomize and request
+ // this name from the viewer-side.
+ "viewer",
+ IPC::Channel::MODE_NAMED_SERVER,
+ this,
+ content::BrowserThread::GetMessageLoopProxyForThread(
+ content::BrowserThread::IO)));
+}
+
+MetroViewerProcessHost::~MetroViewerProcessHost() {
+}
+
+bool MetroViewerProcessHost::Send(IPC::Message* msg) {
+ return channel_->Send(msg);
+}
+
+bool MetroViewerProcessHost::OnMessageReceived(const IPC::Message& message) {
+ DCHECK(CalledOnValidThread());
+ bool handled = true;
+ IPC_BEGIN_MESSAGE_MAP(MetroViewerProcessHost, message)
+ IPC_MESSAGE_HANDLER(ViewerHostMsg_SetTargetSurface, OnSetTargetSurface)
+ IPC_MESSAGE_HANDLER(ViewerHostMsg_MouseEvent, OnMouseEvent)
+ IPC_MESSAGE_UNHANDLED(handled = false)
+ IPC_END_MESSAGE_MAP()
+ return handled;
+}
+
+void MetroViewerProcessHost::OnSetTargetSurface(
+ gfx::NativeViewId target_surface) {
+ DLOG(INFO) << __FUNCTION__ << ", target_surface = " << target_surface;
+ HWND hwnd = reinterpret_cast<HWND>(target_surface);
+
+ scoped_refptr<AcceleratedPresenter> any_window =
+ AcceleratedPresenter::GetForWindow(NULL);
+ any_window->SetNewTargetWindow(hwnd);
+}
+
+void MetroViewerProcessHost::OnMouseEvent(
+ int msg, WPARAM w_param, LPARAM l_param) {
+ // TODO(scottmg): Pass to window.
+}
+
+#endif // defined(USE_AURA)

Powered by Google App Engine
This is Rietveld 408576698