1513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// found in the LICENSE file.
4513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
5513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#include "base/debug/debugger.h"
6513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
73f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen#include "base/threading/platform_thread.h"
8513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
9513209b27ff55e2841eac0e4120199c23acce758Ben Murdochnamespace base {
10513209b27ff55e2841eac0e4120199c23acce758Ben Murdochnamespace debug {
11513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
123f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsenstatic bool is_debug_ui_suppressed = false;
133f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen
14513209b27ff55e2841eac0e4120199c23acce758Ben Murdochbool WaitForDebugger(int wait_seconds, bool silent) {
15513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  for (int i = 0; i < wait_seconds * 10; ++i) {
16513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch    if (BeingDebugged()) {
17513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch      if (!silent)
18513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch        BreakDebugger();
19513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch      return true;
20513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch    }
21513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch    PlatformThread::Sleep(100);
22513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  }
23513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  return false;
24513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch}
25513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
263f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsenvoid SetSuppressDebugUI(bool suppress) {
273f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen  is_debug_ui_suppressed = suppress;
283f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen}
293f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen
303f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsenbool IsDebugUISuppressed() {
313f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen  return is_debug_ui_suppressed;
323f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen}
333f50c38dc070f4bb515c1b64450dae14f316474eKristian Monsen
34513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch}  // namespace debug
35513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch}  // namespace base
36