chromium/components/sync/protocol/web_apk_specifics.proto

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

// If you change or add any fields in this file, update
// components/sync/protocol/proto_visitors.h and potentially
// components/sync/protocol/proto_enum_conversions.{h, cc}.

syntax = "proto2";

option java_multiple_files = true;
option java_package = "org.chromium.components.sync.protocol";

option optimize_for = LITE_RUNTIME;

package sync_pb;

// Sync & local data: Information about web app icon.
message WebApkIconInfo {
  enum Purpose {
    UNSPECIFIED = 0;
    // Suitable for any purpose.
    ANY = 1;
    // Designed for masking.
    MASKABLE = 2;
    // Suitable for monochrome purposes.
    MONOCHROME = 3;
  }

  // The size of the square app icon, in raw pixels.
  optional int32 size_in_px = 1;
  // The URL of the app icon.
  optional string url = 2;
  // The purpose or context in which the icon should be used.
  optional Purpose purpose = 3;
}

// WebApk data.
message WebApkSpecifics {
  optional string manifest_id = 1;
  optional string start_url = 2;
  optional string name = 3;
  optional uint32 theme_color = 4;
  optional string scope = 5;
  repeated WebApkIconInfo icon_infos = 6;

  // Time when this WebApk was last used or installed.
  // Number of microseconds since 1601, aka Windows epoch.
  optional int64 last_used_time_windows_epoch_micros = 7;
}