blob: 38af710b18b09965adfafb6498aa787f85abfd8d [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 {
reserved 1;
// The country code for the catalog that was returned.
string country_code = 2;
// The latest version token the client currently has cached as received in
// GetCatalogResponse.
string version_token = 3;
}
message GetCatalogResponse {
reserved 2;
// 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 country code for the catalog that was returned.
string country_code = 3;
// The version token for the latest ExploreSites Catalog. This is a
// server-generated opaque string.
string version_token = 4;
}