chromium/content/browser/content_index/content_index.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.proto;

message ContentIconDefinition {
  optional string src = 1;
  optional string sizes = 2;
  optional string type = 3;
}

// Stores all fields of the developer provided content description.
message ContentDescription {
  optional string id = 1;
  optional string title = 2;
  optional string description = 3;
  optional int32 category = 4;
  repeated ContentIconDefinition icons = 5;
  optional string launch_url = 6;
}

// Contains the developer-provided description as well as other metadata that
// will be useful for ranking content.
message ContentEntry {
  optional ContentDescription description = 1;

  // Time from Windows epoch in microseconds.
  optional int64 timestamp = 2;

  // The complete/resolved URL for the entry. This might differ from
  // |description.launch_url()| since that field is developer-provided, and
  // can be an absolute or relative path without the host.
  optional string launch_url = 3;

  // Whether the ContentIndex entry was created from a top-level context (i.e
  // not an iframe).
  optional bool is_top_level_context = 4 [default = true];
}

// Wrapper to store all the serialized icons.
message SerializedIcons {
  // Create a sub-message in case we want to store metadata with the
  // serialized icon.
  message SerializedIcon { optional string icon = 1; }

  repeated SerializedIcon icons = 1;
}