summaryrefslogtreecommitdiff
path: root/chromium/extensions/browser/activity.h
blob: 065f232917d63887ec57433253106432f50a90c8 (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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Copyright 2018 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 EXTENSIONS_BROWSER_ACTIVITY_H_
#define EXTENSIONS_BROWSER_ACTIVITY_H_

namespace extensions {

struct Activity {
  enum Type {
    // The activity is for accessibility. The extra data is an empty string.
    ACCESSIBILITY,

    // The activity is an Extensions API function call. The extra data is the
    // function name.
    API_FUNCTION,

    // The activity is for the Developer Tools client. The extra data is an
    // empty string.
    DEV_TOOLS,

    // The activity is an event. The extra data is the event name.
    EVENT,

    // The activity is meant to keep the background page alive during an
    // IPC call or during page creation. Use the constants kIPC or
    // kCreatePage.
    LIFECYCLE_MANAGEMENT,

    // The activity is related to the media manager. Use the constant
    // kPictureInPicture.
    MEDIA,

    // The activity is a message. The extra data is the port ID.
    MESSAGE_PORT,

    // The activity is meant to keep the background page alive while
    // a modal dialog box is visible. The extra data is the URL of the
    // calling page.
    MODAL_DIALOG,

    // The activity is a Mojo API function call. The extra data is an empty
    // string.
    MOJO,

    // The activity is a network request. The extra data is the request ID.
    NETWORK,

    // The activity is a Pepper API function call. The extra data is an empty
    // string.
    PEPPER_API,

    // The activity is internal ProcessManager bookkeeping. The extra data
    // is one of kCancelSuspend or kRenderFrame.
    PROCESS_MANAGER,
  };

  static const char* ToString(Type type);

  static const char kCancelSuspend[];
  static const char kCreatePage[];
  static const char kIPC[];
  static const char kPictureInPicture[];
  static const char kRenderFrame[];
};

}  // namespace extensions

#endif  // EXTENSIONS_BROWSER_ACTIVITY_H_