blob: e2b001137aeb14ae5e58995afe98589a0e4be7ee [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_PERMISSIONS_PREDICTION_SERVICE_PREDICTION_REQUEST_FEATURES_H_
#define COMPONENTS_PERMISSIONS_PREDICTION_SERVICE_PREDICTION_REQUEST_FEATURES_H_
#include "components/permissions/permission_request_enums.h"
#include "components/permissions/request_type.h"
#include "url/gurl.h"
namespace permissions {
struct PredictionRequestFeatures {
// Do not delete / modify enum assignments, as they will be interpreted on the
// server side and should be backwards compatible!
enum class ExperimentId {
kNoExperimentId = 0,
kCpssV3ExperimentId = 1,
kAiV1ExperimentId = 2,
kAiV3ExperimentId = 3,
kAiV4ExperimentId = 4,
};
struct ActionCounts {
size_t grants = 0;
size_t denies = 0;
size_t dismissals = 0;
size_t ignores = 0;
size_t total() const { return grants + denies + dismissals + ignores; }
};
// Whether a gesture is present or not.
PermissionRequestGestureType gesture;
// Which permissions request type this is for.
RequestType type;
// The permission action counts for this specific permission type.
ActionCounts requested_permission_counts;
// The permission action counts for all permissions type.
ActionCounts all_permission_counts;
// The origin of the website requesting the permission.
GURL url;
// The id of a currently conducted Finch experiment.
// 0 = default, client is in Finch experiment control group,
// Different than 0 = client is in Finch enabled group.
ExperimentId experiment_id = ExperimentId::kNoExperimentId;
// The permission request relevance generated by the AI on-device model.
PermissionRequestRelevance permission_relevance;
};
} // namespace permissions
#endif // COMPONENTS_PERMISSIONS_PREDICTION_SERVICE_PREDICTION_REQUEST_FEATURES_H_