summaryrefslogtreecommitdiffstats
path: root/chrome/app/kasko_client.h
blob: aeb816f381cbcbf6cfa163911c62c49c1c904b58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// Copyright 2015 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_APP_KASKO_CLIENT_H_
#define CHROME_APP_KASKO_CLIENT_H_

#include "third_party/kasko/kasko_features.h"

#if BUILDFLAG(ENABLE_KASKO)

#include "base/macros.h"
#include "syzygy/kasko/api/minidump_type.h"

class ChromeWatcherClient;

// Manages the lifetime of Chrome's Kasko client, which permits crash reporting
// via Kasko. Only a single instance of this class may be instantiated at any
// time, and it must only be destroyed when the process is single-threaded.
class KaskoClient {
 public:
  // Initializes a Kasko client that will communicate with the Kasko reporter
  // hosted by the Chrome watcher process managed by |chrome_watcher_client|.
  // All generated reports will use |minidump_type|.
  KaskoClient(ChromeWatcherClient* chrome_watcher_client,
              kasko::api::MinidumpType minidump_type);
  ~KaskoClient();

 private:
  DISALLOW_COPY_AND_ASSIGN(KaskoClient);
};

#endif  // BUILDFLAG(ENABLE_KASKO)

#endif  // CHROME_APP_KASKO_CLIENT_H_