// Copyright 2019 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;
package chrome_browser_crowd_deny;
// Information, about a specific site, relevant for making permission decisions.
message SiteReputation {
// The domain of the site this records describes.
optional string domain = 1;
// The quality of the experience users have with notifications on a site.
enum NotificationUserExperienceQuality {
UNKNOWN = 0;
ACCEPTABLE = 1;
UNSOLICITED_PROMPTS = 2;
ABUSIVE_PROMPTS = 3; // Supported as of M84.
ABUSIVE_CONTENT = 4; // Supported as of M85.
DISRUPTIVE_BEHAVIOR = 5;
}
// The quality of the experience users have with notifications on this site.
optional NotificationUserExperienceQuality notification_ux_quality = 2;
// Whether the reputation propagates to all subdomains of |domain|. Supported
// as of M84. Older versions will always perform exact domain matching.
optional bool include_subdomains = 3;
// Whether to merely print a console warning and not enforce. Supported as of
// M84. Older versions will always enforce if |notification_ux_quality| is
// set to a value recognized by the version, other than `ACCEPTABLE`.
optional bool warning_only = 4;
}
// Information, about popular sites, relevant for making permission decisions.
//
// The preloaded list contains reputation data for popular sites, and is
// distributed to Chrome clients ahead of time through the component updater as
// part of the `crowd_deny_crx` component extension. The CRX package contains a
// single file with a single instance of this message in the binary wire format.
message PreloadData {
// Site reputation information for popular sites. Unsorted.
repeated SiteReputation site_reputations = 1;
}