File: tracing_service_idl.idl

package info (click to toggle)
chromium 138.0.7204.183-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,071,908 kB
  • sloc: cpp: 34,937,088; ansic: 7,176,967; javascript: 4,110,704; python: 1,419,953; asm: 946,768; xml: 739,971; pascal: 187,324; sh: 89,623; perl: 88,663; objc: 79,944; sql: 50,304; cs: 41,786; fortran: 24,137; makefile: 21,806; php: 13,980; tcl: 13,166; yacc: 8,925; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (122 lines) | stat: -rw-r--r-- 3,939 bytes parent folder | download | duplicates (6)
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import "oaidl.idl";
import "ocidl.idl";

[
  object,
  oleautomation,
  uuid(DB01E5CE-10CE-4A84-8FAE-DA5E46EEF1CF),
  helpstring("ISystemTraceSession Interface"),
  pointer_default(unique)
]
// A SystemTraceSession is exposed as methods on ISystemTraceSession, and
// provides High Integrity actions. Any changes to add or change a method in
// ISystemTraceSession will require a security review.
interface ISystemTraceSession : IUnknown
{
  // Takes a mojo invitation on `server_name` containing a single message pipe,
  // and returns the process ID of the process hosting the session. The service
  // will then wait for a tracing::mojom::TracedProcess PendingReceiver to
  // arrive on that message pipe. Tracing will be established upon its arrival.
  // `server_name` must name the server endpoint of a named channel of the
  // client.
  HRESULT AcceptInvitation([in, string] const WCHAR* server_name,
                           [out] DWORD* pid);
};

cpp_quote ("enum : HRESULT {")
cpp_quote ("  kErrorSessionInProgress =")
cpp_quote ("      MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA001),")
cpp_quote ("  kErrorCouldNotObtainCallingProcess =")
cpp_quote ("      MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA002),")
cpp_quote ("  kErrorCouldNotGetCallingProcessPid =")
cpp_quote ("      MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA003),")
cpp_quote ("  kErrorCouldNotOpenCallingProcess =")
cpp_quote ("      MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA004),")
cpp_quote ("  kErrorCouldNotDuplicateHandleToClient =")
cpp_quote ("      MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA005),")
cpp_quote ("  kErrorTooManyInvitations =")
cpp_quote ("      MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA006),")
cpp_quote ("  kErrorSessionAlreadyActive =")
cpp_quote ("      MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA007),")
cpp_quote ("  kErrorNotWaitingForInvitation =")
cpp_quote ("      MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xA008),")
cpp_quote ("};")

// The interfaces below are all ISystemTraceSession with unique IIDs.
// ISystemTraceSession is registered with unique IIDs for the various flavors of
// Chrome and Chromium. This allows the different flavors of Chrome/Chromium to
// co-exist without side effects.
[
  object,
  oleautomation,
  uuid(A3FD580A-FFD4-4075-9174-75D0B199D3CB),
  helpstring("ISystemTraceSessionChromium Interface"),
  pointer_default(unique)
]
interface ISystemTraceSessionChromium : ISystemTraceSession
{
};

[
  object,
  oleautomation,
  uuid(056B3371-1C09-475B-A8D7-9E58BF45533E),
  helpstring("ISystemTraceSessionChrome Interface"),
  pointer_default(unique)
]
interface ISystemTraceSessionChrome : ISystemTraceSession
{
};

[
  object,
  oleautomation,
  uuid(A69D7D7D-9A08-422A-B6C6-B7B8D376A12C),
  helpstring("ISystemTraceSessionChromeBeta Interface"),
  pointer_default(unique)
]
interface ISystemTraceSessionChromeBeta : ISystemTraceSession
{
};

[
  object,
  oleautomation,
  uuid(E08ADAE8-9334-46ED-B0CF-DD1780158D55),
  helpstring("ISystemTraceSessionChromeDev Interface"),
  pointer_default(unique)
]
interface ISystemTraceSessionChromeDev : ISystemTraceSession
{
};

[
  object,
  oleautomation,
  uuid(6EFB8558-68D1-4826-A612-A180B3570375),
  helpstring("ISystemTraceSessionChromeCanary Interface"),
  pointer_default(unique)
]
interface ISystemTraceSessionChromeCanary : ISystemTraceSession
{
};

[
  uuid(C9368104-11AE-4784-8C2D-115C5D421937),
  version(1.0),
  helpstring("SystemTraceSession 1.0 Type Library")
]
library SystemTraceSessionLib {
  importlib("stdole2.tlb");

  interface ISystemTraceSession;
  interface ISystemTraceSessionChromium;
  interface ISystemTraceSessionChrome;
  interface ISystemTraceSessionChromeBeta;
  interface ISystemTraceSessionChromeDev;
  interface ISystemTraceSessionChromeCanary;
};