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

Side by Side Diff: win8/metro_driver/chrome_app_view_ash.cc

Issue 130223002: Have browser process shutdown metro viewer on Metro -> Metro restart. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use scoped_ptr.get() instead of relying on conversion. Created 6 years, 11 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ui/metro_viewer/metro_viewer_messages.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "win8/metro_driver/stdafx.h" 5 #include "win8/metro_driver/stdafx.h"
6 #include "win8/metro_driver/chrome_app_view_ash.h" 6 #include "win8/metro_driver/chrome_app_view_ash.h"
7 7
8 #include <corewindow.h> 8 #include <corewindow.h>
9 #include <shellapi.h> 9 #include <shellapi.h>
10 #include <windows.foundation.h> 10 #include <windows.foundation.h>
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 class ChromeChannelListener : public IPC::Listener { 150 class ChromeChannelListener : public IPC::Listener {
151 public: 151 public:
152 ChromeChannelListener(base::MessageLoop* ui_loop, ChromeAppViewAsh* app_view) 152 ChromeChannelListener(base::MessageLoop* ui_loop, ChromeAppViewAsh* app_view)
153 : ui_proxy_(ui_loop->message_loop_proxy()), 153 : ui_proxy_(ui_loop->message_loop_proxy()),
154 app_view_(app_view) {} 154 app_view_(app_view) {}
155 155
156 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE { 156 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE {
157 IPC_BEGIN_MESSAGE_MAP(ChromeChannelListener, message) 157 IPC_BEGIN_MESSAGE_MAP(ChromeChannelListener, message)
158 IPC_MESSAGE_HANDLER(MetroViewerHostMsg_ActivateDesktop, 158 IPC_MESSAGE_HANDLER(MetroViewerHostMsg_ActivateDesktop,
159 OnActivateDesktop) 159 OnActivateDesktop)
160 IPC_MESSAGE_HANDLER(MetroViewerHostMsg_MetroExit, OnMetroExit)
160 IPC_MESSAGE_HANDLER(MetroViewerHostMsg_OpenURLOnDesktop, 161 IPC_MESSAGE_HANDLER(MetroViewerHostMsg_OpenURLOnDesktop,
161 OnOpenURLOnDesktop) 162 OnOpenURLOnDesktop)
162 IPC_MESSAGE_HANDLER(MetroViewerHostMsg_SetCursor, OnSetCursor) 163 IPC_MESSAGE_HANDLER(MetroViewerHostMsg_SetCursor, OnSetCursor)
163 IPC_MESSAGE_HANDLER(MetroViewerHostMsg_DisplayFileOpen, 164 IPC_MESSAGE_HANDLER(MetroViewerHostMsg_DisplayFileOpen,
164 OnDisplayFileOpenDialog) 165 OnDisplayFileOpenDialog)
165 IPC_MESSAGE_HANDLER(MetroViewerHostMsg_DisplayFileSaveAs, 166 IPC_MESSAGE_HANDLER(MetroViewerHostMsg_DisplayFileSaveAs,
166 OnDisplayFileSaveAsDialog) 167 OnDisplayFileSaveAsDialog)
167 IPC_MESSAGE_HANDLER(MetroViewerHostMsg_DisplaySelectFolder, 168 IPC_MESSAGE_HANDLER(MetroViewerHostMsg_DisplaySelectFolder,
168 OnDisplayFolderPicker) 169 OnDisplayFolderPicker)
169 IPC_MESSAGE_HANDLER(MetroViewerHostMsg_SetCursorPos, OnSetCursorPos) 170 IPC_MESSAGE_HANDLER(MetroViewerHostMsg_SetCursorPos, OnSetCursorPos)
(...skipping 17 matching lines...) Expand all
187 } 188 }
188 189
189 private: 190 private:
190 void OnActivateDesktop(const base::FilePath& shortcut, bool ash_exit) { 191 void OnActivateDesktop(const base::FilePath& shortcut, bool ash_exit) {
191 ui_proxy_->PostTask(FROM_HERE, 192 ui_proxy_->PostTask(FROM_HERE,
192 base::Bind(&ChromeAppViewAsh::OnActivateDesktop, 193 base::Bind(&ChromeAppViewAsh::OnActivateDesktop,
193 base::Unretained(app_view_), 194 base::Unretained(app_view_),
194 shortcut, ash_exit)); 195 shortcut, ash_exit));
195 } 196 }
196 197
198 void OnMetroExit() {
199 MetroExit(app_view_->core_window_hwnd());
200 }
201
197 void OnOpenURLOnDesktop(const base::FilePath& shortcut, 202 void OnOpenURLOnDesktop(const base::FilePath& shortcut,
198 const base::string16& url) { 203 const base::string16& url) {
199 ui_proxy_->PostTask(FROM_HERE, 204 ui_proxy_->PostTask(FROM_HERE,
200 base::Bind(&ChromeAppViewAsh::OnOpenURLOnDesktop, 205 base::Bind(&ChromeAppViewAsh::OnOpenURLOnDesktop,
201 base::Unretained(app_view_), 206 base::Unretained(app_view_),
202 shortcut, url)); 207 shortcut, url));
203 } 208 }
204 209
205 void OnSetCursor(int64 cursor) { 210 void OnSetCursor(int64 cursor) {
206 ui_proxy_->PostTask(FROM_HERE, 211 ui_proxy_->PostTask(FROM_HERE,
(...skipping 1109 matching lines...) Expand 10 before | Expand all | Expand 10 after
1316 mswr::ComPtr<winapp::Core::ICoreApplicationExit> app_exit; 1321 mswr::ComPtr<winapp::Core::ICoreApplicationExit> app_exit;
1317 CheckHR(core_app.As(&app_exit)); 1322 CheckHR(core_app.As(&app_exit));
1318 globals.app_exit = app_exit.Detach(); 1323 globals.app_exit = app_exit.Detach();
1319 } 1324 }
1320 1325
1321 IFACEMETHODIMP 1326 IFACEMETHODIMP
1322 ChromeAppViewFactory::CreateView(winapp::Core::IFrameworkView** view) { 1327 ChromeAppViewFactory::CreateView(winapp::Core::IFrameworkView** view) {
1323 *view = mswr::Make<ChromeAppViewAsh>().Detach(); 1328 *view = mswr::Make<ChromeAppViewAsh>().Detach();
1324 return (*view) ? S_OK : E_OUTOFMEMORY; 1329 return (*view) ? S_OK : E_OUTOFMEMORY;
1325 } 1330 }
OLDNEW
« no previous file with comments | « ui/metro_viewer/metro_viewer_messages.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698