// Copyright (c) 2009 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.

#ifndef CHROME_FRAME_CHROME_FRAME_REPORTING_H_
#define CHROME_FRAME_CHROME_FRAME_REPORTING_H_

#include "chrome_frame/scoped_initialization_manager.h"

namespace chrome_frame {

// A Traits class for a ScopedInitializationManager that starts/stops crash
// reporting for npchrome_frame.dll.
class CrashReportingTraits {
 public:
  static void Initialize();
  static void Shutdown();
};

// Manages crash reporting for the Chrome Frame dll. Crash reporting cannot be
// reliably started or stopped when the loader lock is held, so DllMain cannot
// be used to start/stop reporting. Rather, instances of this class are used in
// each entrypoint into the dll.
typedef ScopedInitializationManager<CrashReportingTraits> ScopedCrashReporting;

}  // namespace chrome_frame

#endif  // CHROME_FRAME_CHROME_FRAME_REPORTING_H_