// 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. module eoc_internals.mojom; // Distillation of results from a server request for page suggestions. struct SuggestionResult { // The URL of the page that the suggestions are for. string url; // The conditions under which the peek was displayed. PeekConditions peek_conditions; // The suggestions for the page. array suggestions; }; // Tracks the server-defined parameters for when to show the peek bar. struct PeekConditions { // A measure of confidence that auto-peek should be enabled for this response // in the range [0, 1]. float confidence; // The percentage of the page that the user scrolls required for an auto // peek to occur. float page_scroll_percentage; // The minimum time (seconds) the user spends on the page required for // auto peek. float minimum_seconds_on_page; // The maximum number of auto peeks that we can show for this page. int64 maximum_number_of_peeks; }; // Models a single suggestion. struct Suggestion { // The URL for the suggestion. string url; // Title displayed in the suggestion sheet. string title; // Name of the publisher. string publisher_name; // Text snippet displayed on the sheet. string snippet; // The ID of the image displayed for this suggestion. string image_id; // The ID of the favicon for the suggested URL. string favicon_image_id; }; // Metrics event that was constructed for a page. struct MetricEvent { // The URL which the metrics event is for. string url; // Did the sheet peek show. bool sheet_peeked; // Was the toolbar button shown. bool button_shown; // If the peek was closed without being opened. bool sheet_opened; // If the sheet was opened from the peek. bool sheet_closed; // If any suggestion was clicked on from the sheet. bool any_suggestion_taken; // If any suggestion was downloaded from the sheet. bool any_suggestion_downloaded; }; // Browser interface for the page. Consists of calls for data and hooks for // interactivity. interface PageHandler { // Get a key/value mapping of properties. GetProperties() => (map properties); // Change the triggering time to the given duration. SetTriggerTime(int64 seconds); // Get cached metrics. GetCachedMetricEvents() => (array metrics); // Clear the cached metrics. ClearCachedMetricEvents() => (); // Get the cached suggestion results. GetCachedSuggestionResults() => (array results); // Clear the cached suggestions. ClearCachedSuggestionResults() => (); };