1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
// 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.
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
option java_package = "org.chromium.components.optimization_guide.proto";
option java_outer_classname = "ContextualCueingMetadataProto";
package optimization_guide.proto;
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.
optional ContextualCueingClientSignal signal = 1;
// The operator to use when comparing the signal to the threshold.
optional 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.
optional 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.
optional bool contextual_suggestions_eligible = 2;
}
|