blob: 5ab94f8b74bdc878b3a74ccd13e46417347200df [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
package explore_sites;
option optimize_for = LITE_RUNTIME;
// Represents the entire Explore Sites catalog, containing multiple categories
// each with a list of sites.
message Catalog {
// List of categories in priority order. The first N will be shown directly
// on the NTP.
repeated Category categories = 1;
}
// A logical grouping of sites, with a title and an icon.
message Category {
// The canonical types of category.
enum CategoryType {
DEFAULT = 0;
SOCIAL = 1;
ENTERTAINMENT = 2;
SPORT = 3;
NEWS = 4;
SHOPPING = 5;
REFERENCE = 6;
BANKING = 7;
GOVERNMENT = 8;
TRAVEL = 9;
EDUCATION = 10;
JOBS = 11;
APPS_GAMES = 12;
FAVORITE = 13;
GOOGLE = 14;
FOOD = 15;
HEALTH = 16;
BOOKS = 17;
TECHNOLOGY = 18;
SCIENCE = 19;
}
// Used to identify the category and as a hash tag within the Explore Sites
// page to scroll directly to this category.
CategoryType type = 1;
// Displayed beneath each title icon on the NTP as well as on the Explore
// Sites page. Localized to the primary language specified in the
// GetCatalogRequest.
string localized_title = 2;
// The icon that represents this category's sites.
// Binary encoding: WebP
// |icon| may be omitted for certain API requests.
bytes icon = 3;
// List of sites within the category in priority order.
// |sites| may be omitted for certain API requests.
repeated Site sites = 4;
}
// A single site that can be clicked on and navigated to from the Explore Sites
// page.
message Site {
// The url of the site that will be shown on click.
string site_url = 1;
// The icon of the site that can be displayed on the Explore Sites page.
// Binary encoding: WebP
bytes icon = 2;
// The title of the page that will be displayed near the page icon. This title
// will be in the language presented by the site, not localized to the user's
// language preferences.
string title = 3;
}
message GetCatalogRequest {
// The latest timestamp of the catalog on the client.
int64 created_at_millis = 1;
// The country code for the catalog that was returned.
string country_code = 2;
}
message GetCatalogResponse {
// Catalog of categories and sites that are appropriate for the client. Will
// be empty if the client sends a request with the latest timestamp.
Catalog catalog = 1;
// The latest timestamp of the catalof for the client on the server.
int64 created_at_millis = 2;
// The country code for the catalog that was returned.
string country_code = 3;
}