blob: d7e58f42ec0d5d6f50f559d5adaf77863e835134 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
edition = "2023";
package optimization_guide.proto;
option features.enum_type = CLOSED;
option features.utf8_validation = NONE;
option optimize_for = LITE_RUNTIME;
option java_package = "org.chromium.components.optimization_guide.proto";
option java_outer_classname = "ContextualCueingMetadataProto";
enum ContextualCueingClientSignal {
CONTEXTUAL_CUEING_CLIENT_SIGNAL_UNSPECIFIED = 0;
// The number of pages in the PDF, if the page being viewed is a PDF.
CONTEXTUAL_CUEING_CLIENT_SIGNAL_PDF_PAGE_COUNT = 1;
// The number of words in the page being viewed if not a PDF.
CONTEXTUAL_CUEING_CLIENT_SIGNAL_CONTENT_LENGTH_WORD_COUNT = 2;
}
enum ContextualCueingOperator {
CONTEXTUAL_CUEING_OPERATOR_UNSPECIFIED = 0;
CONTEXTUAL_CUEING_OPERATOR_GREATER_THAN_OR_EQUAL_TO = 1;
CONTEXTUAL_CUEING_OPERATOR_LESS_THAN_OR_EQUAL_TO = 2;
}
message ContextualCueingConditions {
// The signal to check.
ContextualCueingClientSignal signal = 1;
// The operator to use when comparing the signal to the threshold.
ContextualCueingOperator cueing_operator = 2;
oneof threshold {
// The int64 threshold value to compare the signal to.
int64 int64_threshold = 3;
}
}
message GlicContextualCueingMetadata {
// Cueing configurations supported for this page.
//
// Take the first one that matches something the current client state and
// capabilities.
//
// If there is no match, then the client should not show any cues.
repeated GlicCueingConfiguration cueing_configurations = 1;
}
message GlicCueingConfiguration {
// The cue label to show in the tab strip.
//
// This will always be non-empty.
string cue_label = 1;
// The conditions that must be met for this cueing configuration to be
// eligible. This should be treated as an AND operation.
//
// If this list is empty, this cueing configuration is always eligible.
repeated ContextualCueingConditions conditions = 2;
}
message GlicZeroStateSuggestionsMetadata {
// The contextual zero state suggestions to show for this page.
//
// If this list is empty, contexutal suggestions are not immediately available
// for this page, but still can be obtained using the page content, if
// `contextual_suggestions_eligible` is true.
repeated string contextual_suggestions = 1;
// Whether the page is eligible for contextual suggestions.
//
// If this is false, the client should show generic suggestions instead.
// If this is true, the client should show the `contextual_suggestions` if
// available, or generic suggestions if not.
bool contextual_suggestions_eligible = 2;
}