// Copyright 2017 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 mojom; import "url/mojom/url.mojom"; struct PreviewsStatus { // The human readable description of the status that will be displayed on // chrome://interventions-internals. string description; bool enabled; // The ID of the html DOM element. string htmlId; }; struct PreviewsFlag { // The human readable description of the flag that will be displayed on // chrome://interventions-internals. string description; // The link to this flag in chrome://flags. string link; // The string representation of the flag value. string value; // The ID of the html DOM element. string htmlId; }; struct MessageLog { // The tye of event message (E.g. "Navigation"). string type; // The human readable description of the event. string description; // The url that associated with the event. url.mojom.Url url; // The time when the event happened in millisecond since Unix epoch. int64 time; // The ID associated with the request, for grouping log messages in the UI. If // |id| is 0, then they will not be grouped, since pageId values start at 1. uint64 page_id; }; interface InterventionsInternalsPageHandler { // Returns a map of previews modes statuses. GetPreviewsEnabled() => (array statuses); // Returns a map of previews related flags details. GetPreviewsFlagsDetails() => (array flags); // Inject the client side page object. SetClientPage(InterventionsInternalsPage page); // Change the status of ignoring blacklist to |ignored|. |ignored| will // indicate whether the blacklist decision would be ignored when deciding if a // preview should be shown or not. SetIgnorePreviewsBlacklistDecision(bool ignored); }; interface InterventionsInternalsPage { // Pushes a new log message to the page. This is called by // InterventionsInternalsPageHandler when it receives a new MessageLog, and // publishes it on the javscript side. LogNewMessage(MessageLog log); // Notify the page that |host| has been blacklisted at |time|. The method is // called by InterventionsInternalsPageHandler when PreviewsUIService receives // new blacklisted host. OnBlacklistedHost(string host, int64 time); // Notify the page that user blacklisted status has changed to |blacklisted|. // The method is called by InterventionsInternalsPageHandler when user's // blacklist status changes. OnUserBlacklistedStatusChange(bool blacklisted); // Notify the page that the blacklist is cleared at |time|. The method is // called by InterventionsInternalsPageHandler when PreviewsUIService clears // the blacklist. OnBlacklistCleared(int64 time); // Notify the page on the new estimated effective connection type is |type|. // This is called by InterventionsInternalsPageHandler when the estimate // network quality changes. OnEffectiveConnectionTypeChanged(string type); // Notify the page on whether the blacklist decision is considered or ignored. // This method is called by InterventionsInternalsPageHandler when the status // of ignore blacklist decision is updated to |ignored|. OnIgnoreBlacklistDecisionStatusChanged(bool ignored); };