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

Side by Side Diff: chrome/browser/hang_monitor/hung_plugin_action.cc

Issue 172633004: Refactor Windows MessageBox fallback code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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 | « no previous file | chrome/browser/ui/simple_message_box.h » ('j') | 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 <windows.h> 5 #include <windows.h>
6 6
7 #include "chrome/browser/hang_monitor/hung_plugin_action.h" 7 #include "chrome/browser/hang_monitor/hung_plugin_action.h"
8 8
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/version.h" 10 #include "base/version.h"
11 #include "chrome/browser/ui/views/simple_message_box_win.h" 11 #include "chrome/browser/ui/simple_message_box.h"
12 #include "chrome/common/logging_chrome.h" 12 #include "chrome/common/logging_chrome.h"
13 #include "content/public/browser/plugin_service.h" 13 #include "content/public/browser/plugin_service.h"
14 #include "content/public/common/webplugininfo.h" 14 #include "content/public/common/webplugininfo.h"
15 #include "grit/generated_resources.h" 15 #include "grit/generated_resources.h"
16 #include "ui/base/l10n/l10n_util.h" 16 #include "ui/base/l10n/l10n_util.h"
17 #include "ui/gfx/win/hwnd_util.h" 17 #include "ui/gfx/win/hwnd_util.h"
18 18
19 namespace { 19 namespace {
20 20
21 const wchar_t kGTalkPluginName[] = L"Google Talk Plugin"; 21 const wchar_t kGTalkPluginName[] = L"Google Talk Plugin";
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 // Before displaying the message box, invoke SendMessageCallback on the 106 // Before displaying the message box, invoke SendMessageCallback on the
107 // hung window. If the callback ever hits, the window is not hung anymore 107 // hung window. If the callback ever hits, the window is not hung anymore
108 // and we can dismiss the message box. 108 // and we can dismiss the message box.
109 SendMessageCallback(hung_window, 109 SendMessageCallback(hung_window,
110 WM_NULL, 110 WM_NULL,
111 0, 111 0,
112 0, 112 0,
113 HungWindowResponseCallback, 113 HungWindowResponseCallback,
114 reinterpret_cast<ULONG_PTR>(this)); 114 reinterpret_cast<ULONG_PTR>(this));
115 current_hung_plugin_window_ = hung_window; 115 current_hung_plugin_window_ = hung_window;
116 // We use chrome::NativeShowMessageBox instead of chrome::ShowMessageBox 116 if (chrome::ShowMessageBox(
117 // because the latter depends on UI-thread classes on Win Aura. See
118 // http://crbug.com/330424.
119 if (chrome::NativeShowMessageBox(
120 NULL, title, message, chrome::MESSAGE_BOX_TYPE_QUESTION) == 117 NULL, title, message, chrome::MESSAGE_BOX_TYPE_QUESTION) ==
121 chrome::MESSAGE_BOX_RESULT_YES) { 118 chrome::MESSAGE_BOX_RESULT_YES) {
122 *action = HungWindowNotification::HUNG_WINDOW_TERMINATE_PROCESS; 119 *action = HungWindowNotification::HUNG_WINDOW_TERMINATE_PROCESS;
123 } else { 120 } else {
124 // If the user choses to ignore the hung window warning, the 121 // If the user choses to ignore the hung window warning, the
125 // message timeout for this window should be doubled. We only 122 // message timeout for this window should be doubled. We only
126 // double the timeout property on the window if the property 123 // double the timeout property on the window if the property
127 // exists. The property is deleted if the window becomes 124 // exists. The property is deleted if the window becomes
128 // responsive. 125 // responsive.
129 continue_hang_detection = false; 126 continue_hang_detection = false;
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 void CALLBACK HungPluginAction::HungWindowResponseCallback(HWND target_window, 200 void CALLBACK HungPluginAction::HungWindowResponseCallback(HWND target_window,
204 UINT message, 201 UINT message,
205 ULONG_PTR data, 202 ULONG_PTR data,
206 LRESULT result) { 203 LRESULT result) {
207 HungPluginAction* instance = reinterpret_cast<HungPluginAction*>(data); 204 HungPluginAction* instance = reinterpret_cast<HungPluginAction*>(data);
208 DCHECK(NULL != instance); 205 DCHECK(NULL != instance);
209 if (NULL != instance) { 206 if (NULL != instance) {
210 instance->OnWindowResponsive(target_window); 207 instance->OnWindowResponsive(target_window);
211 } 208 }
212 } 209 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/simple_message_box.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698