// Copyright 2020 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;
option java_package = "org.chromium.components.optimization_guide.proto";
option java_outer_classname = "LoadingPredictorMetadataProto";
package optimization_guide.proto;
// The possible resource type values.
enum ResourceType {
RESOURCE_TYPE_UNKNOWN = 0;
// A CSS Stylesheet, maps to ResourceType::kStylesheet in the Chromium
// repository.
RESOURCE_TYPE_CSS = 1;
// An external script, maps to ResourceType::kScript in the Chromium
// repository.
RESOURCE_TYPE_SCRIPT = 2;
}
// Metadata about a subresource present on a page.
message Resource {
// The full URL of the resource.
optional string url = 1;
// The resource type of the resource.
optional ResourceType resource_type = 2;
// Specifies that this resource should only be preconnected to and not
// prefetched due to low confidence that this resource will actually be
// fetched for the page load.
optional bool preconnect_only = 3;
}
// Optimization metadata associated with improving the loading predictor.
//
// It is only populated for the LOADING_PREDICTOR optimization type.
message LoadingPredictorMetadata {
// A set of subresources that are expected to be present, ordered roughly by
// priority.
//
// It is expected for the client to either preconnect to the subresource hosts
// or prefetch the subresources directly.
repeated Resource subresources = 1;
}