File: dwa_interface.mojom

package info (click to toggle)
chromium 139.0.7258.127-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 6,122,156 kB
  • sloc: cpp: 35,100,771; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (45 lines) | stat: -rw-r--r-- 1,814 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
// 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.

module metrics.dwa.mojom;

struct DwaEntry {
  // A hash of the event name (such as "ReportingAPIUsage").
  // Uses the same hash function as UMA.
  // http://cs.chromium.org/chromium/src/base/metrics/metrics_hashes.cc?q=HashMetricName
  uint64 event_hash;
  // A hash of the content (e.g. hash("example.com")).
  // Uses the same hash function as UMA.
  // http://cs.chromium.org/chromium/src/base/metrics/metrics_hashes.cc?q=HashMetricName
  uint64 content_hash;
  // Map of names of field trials of interest. Their values are always true.
  // Since mojom does not support set directly, we use a map to prevent
  // duplicate keys. We should revisit this in the future to change the
  // type to type-map it to a set.
  map<string,bool> studies_of_interest;
  // Map of metrics and their values that are relevant for this DWA event.
  map<uint64,int64> metrics;
};

// Interface used for sending information from browser process to clients.
// Lives in the browser process.
interface DwaRecorderClientInterface {
};

// Interface used for sending DWA events from clients to the browser process.
// Lives in the renderer process.
interface DwaRecorderInterface {
  // Clients call this method when the entry is ready to be logged by the
  // recorder.
  AddEntry(DwaEntry entry);
};

// This interface is used for building bidirectional communication between
// browser & client.
interface DwaRecorderFactory {
  // The implementation of DwaRecorderClientInterface calls this method when
  // it's first initialized.
  CreateDwaRecorder(pending_receiver<DwaRecorderInterface> receiver,
                    pending_remote<DwaRecorderClientInterface> client_remote);
};