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

Unified Diff: chrome/browser/ui/views/hung_renderer_view_win.cc

Issue 243703003: Removes win8_util (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: moar Created 6 years, 8 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/ui/views/hung_renderer_view_win.cc
diff --git a/chrome/browser/ui/views/hung_renderer_view_win.cc b/chrome/browser/ui/views/hung_renderer_view_win.cc
deleted file mode 100644
index 992d96497d207163f4ce47b7fae45074c4036100..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/views/hung_renderer_view_win.cc
+++ /dev/null
@@ -1,171 +0,0 @@
-// Copyright (c) 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/ui/views/hung_renderer_view_win.h"
-
-#include "base/win/metro.h"
-#include "chrome/browser/hang_monitor/hang_crash_dump_win.h"
-#include "chrome/browser/ui/views/hung_renderer_view.h"
-#include "content/public/browser/browser_thread.h"
-#include "content/public/browser/render_process_host.h"
-#include "grit/generated_resources.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "win8/util/win8_util.h"
-
-// Metro functions for displaying and dismissing a dialog box.
-typedef void (*MetroShowDialogBox)(
- const wchar_t* title,
- const wchar_t* content,
- const wchar_t* button1_label,
- const wchar_t* button2_label,
- base::win::MetroDialogButtonPressedHandler button1_handler,
- base::win::MetroDialogButtonPressedHandler button2_handler);
-
-typedef void (*MetroDismissDialogBox)();
-
-using content::BrowserThread;
-using content::WebContents;
-
-HungRendererDialogMetro* HungRendererDialogMetro::g_instance_ = NULL;
-
-bool PlatformShowCustomHungRendererDialog(WebContents* contents) {
- if (!win8::IsSingleWindowMetroMode())
- return false;
-
- HungRendererDialogMetro::Create()->Show(contents);
- return true;
-}
-
-bool PlatformHideCustomHungRendererDialog(WebContents* contents) {
- if (!win8::IsSingleWindowMetroMode())
- return false;
-
- if (HungRendererDialogMetro::GetInstance())
- HungRendererDialogMetro::GetInstance()->Hide(contents);
- return true;
-}
-
-// static
-void HungRendererDialogView::KillRendererProcess(
- base::ProcessHandle process_handle) {
- // Try to generate a crash report for the hung process.
- CrashDumpAndTerminateHungChildProcess(process_handle);
-}
-
-// static
-HungRendererDialogMetro* HungRendererDialogMetro::Create() {
- if (!GetInstance())
- g_instance_ = new HungRendererDialogMetro;
- return g_instance_;
-}
-
-// static
-HungRendererDialogMetro* HungRendererDialogMetro::GetInstance() {
- return g_instance_;
-}
-
-HungRendererDialogMetro::HungRendererDialogMetro()
- : contents_(NULL),
- metro_dialog_displayed_(false) {
-}
-
-HungRendererDialogMetro::~HungRendererDialogMetro() {
- g_instance_ = NULL;
-}
-
-void HungRendererDialogMetro::Show(WebContents* contents) {
- if (!metro_dialog_displayed_ &&
- HungRendererDialogView::IsFrameActive(contents)) {
- HMODULE metro_dll = base::win::GetMetroModule();
- DCHECK(metro_dll);
- if (metro_dll) {
- MetroShowDialogBox show_dialog_box = reinterpret_cast<MetroShowDialogBox>
- (::GetProcAddress(metro_dll, "ShowDialogBox"));
- DCHECK(show_dialog_box);
- if (show_dialog_box) {
- base::string16 dialog_box_title =
- l10n_util::GetStringUTF16(IDS_BROWSER_HANGMONITOR_RENDERER_TITLE);
-
- base::string16 kill_button_label =
- l10n_util::GetStringUTF16(IDS_BROWSER_HANGMONITOR_RENDERER_END);
-
- base::string16 wait_button_label =
- l10n_util::GetStringUTF16(IDS_BROWSER_HANGMONITOR_RENDERER_WAIT);
-
- contents_ = contents;
- metro_dialog_displayed_ = true;
-
- (*show_dialog_box)(dialog_box_title.c_str(),
- contents->GetTitle().c_str(),
- kill_button_label.c_str(),
- wait_button_label.c_str(),
- HungRendererDialogMetro::OnMetroKillProcess,
- HungRendererDialogMetro::OnMetroWait);
- }
- }
- }
-}
-
-void HungRendererDialogMetro::Hide(WebContents* contents) {
- HMODULE metro_dll = base::win::GetMetroModule();
- DCHECK(metro_dll);
- if (metro_dll) {
- MetroDismissDialogBox dismiss_dialog_box =
- reinterpret_cast<MetroDismissDialogBox>
- (::GetProcAddress(metro_dll, "DismissDialogBox"));
- DCHECK(dismiss_dialog_box);
- if (dismiss_dialog_box) {
- (*dismiss_dialog_box)();
- ResetMetroState();
- }
- }
-}
-
-void HungRendererDialogMetro::ResetMetroState() {
- metro_dialog_displayed_ = false;
- contents_ = NULL;
- delete g_instance_;
-}
-
-// static
-void HungRendererDialogMetro::OnMetroKillProcess() {
- // Metro chrome will invoke these handlers on the metro thread. Ensure that
- // we switch to the UI thread.
- if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(HungRendererDialogMetro::OnMetroKillProcess));
- return;
- }
-
- // Its possible that we got deleted in the meantime.
- if (!GetInstance())
- return;
-
- DCHECK(GetInstance()->contents_);
-
- HungRendererDialogView::KillRendererProcess(
- GetInstance()->contents_->GetRenderProcessHost()->GetHandle());
-
- // The metro dialog box is dismissed when the button handlers are invoked.
- GetInstance()->ResetMetroState();
-}
-
-// static
-void HungRendererDialogMetro::OnMetroWait() {
- // Metro chrome will invoke these handlers on the metro thread. Ensure that
- // we switch to the UI thread.
- if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
- BrowserThread::PostTask(
- BrowserThread::UI, FROM_HERE,
- base::Bind(HungRendererDialogMetro::OnMetroWait));
- return;
- }
-
- // Its possible that we got deleted in the meantime.
- if (!GetInstance())
- return;
-
- GetInstance()->ResetMetroState();
-}
« no previous file with comments | « chrome/browser/ui/views/hung_renderer_view_win.h ('k') | chrome/browser/ui/views/profiles/user_manager_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698