chromium/content/browser/devtools/devtools_background_services.proto

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package content.devtools.proto;

// The background service we are logging events for.
// Do not change the tags since these are persisted.
// Add a corresponding entry in `enums.xml` if a new value is introduced.
enum BackgroundService {
  UNKNOWN = 0;
  TEST_BACKGROUND_SERVICE = 1;
  BACKGROUND_FETCH = 2;
  BACKGROUND_SYNC = 3;
  PUSH_MESSAGING = 4;
  NOTIFICATIONS = 5;
  PAYMENT_HANDLER = 6;
  PERIODIC_BACKGROUND_SYNC = 7;

  // Keep as last, must have the largest tag value.
  COUNT = 8;
}

// A proto for storing the background service event with common metadata for
// all events.
//
// Next Tag: 9
message BackgroundServiceEvent {
  // Microseconds since windows epoch.
  optional int64 timestamp = 1;

  // The origin's URL spec.
  optional string origin = 2;

  optional int64 service_worker_registration_id = 3;

  optional BackgroundService background_service = 4;

  // A descriptive name for the event that is being logged.
  optional string event_name = 5;

  // The instance this event belongs to. This is for grouping related events.
  // For example for Background Fetch and Background Sync, this would be the
  // developer provided ID to create the fetch/sync.
  optional string instance_id = 6;

  // Additional custom information related to this event.
  map<string, string> event_metadata = 7;

  // Storage key the background service belongs to.
  optional string storage_key = 8;
}