chromium/content/browser/interest_group/interest_group_update.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CONTENT_BROWSER_INTEREST_GROUP_INTEREST_GROUP_UPDATE_H_
#define CONTENT_BROWSER_INTEREST_GROUP_INTEREST_GROUP_UPDATE_H_

#include <stdint.h>

#include <cstddef>
#include <optional>
#include <string>
#include <vector>

#include "base/containers/flat_map.h"
#include "content/common/content_export.h"
#include "third_party/blink/public/common/interest_group/interest_group.h"
#include "url/gurl.h"
#include "url/origin.h"

namespace content {

// InterestGroupUpdate represents the results of parsing a JSON update for a
// stored blink::InterestGroup file. It contains all updatable fields of a
// InterestGroup - that is, everything but `name`, `origin`, and `expiry`.
// All fields are optional, even ones that are mandatory in an InterestGroup,
// since the value of the original InterestGroup will be
// used when they're not present in an InterestGroupUpdate.
struct CONTENT_EXPORT InterestGroupUpdate {};

// InitialInterestGroupUpdateInfo contains required fields when the update
// process is initialized, which includes interest_group_key for
// KAnonymity update, update_url for generating update request and
// joining_origin for grouped isolation info.
struct CONTENT_EXPORT InterestGroupUpdateParameter {};

struct CONTENT_EXPORT InterestGroupKanonUpdateParameter {};

}  // namespace content

#endif  // CONTENT_BROWSER_INTEREST_GROUP_INTEREST_GROUP_UPDATE_H_