| // 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. |
| |
| module network.mojom; |
| |
| import "services/network/public/mojom/first_party_sets.mojom"; |
| import "services/network/public/mojom/schemeful_site.mojom"; |
| |
| // Lives in the network service and controlled by the browser process to |
| // access First-Party Sets for each network context. |
| // |
| // TODO(shuuran): Expose APIs to enable browser process query the FPS info |
| // and change whether the FPS is enabled during runtime. |
| interface FirstPartySetsAccessDelegate { |
| // Signals to the receiver that the given network context has completed |
| // its initialization related to First-Party Sets, and the delegate |
| // should begin answering queries. |
| // |
| // Exactly one call is expected; subsequent calls with the same receiver |
| // have no effect. |
| NotifyReady(FirstPartySetsReadyEvent ready_event); |
| }; |
| |
| struct FirstPartySetsAccessDelegateParams { |
| // Whether First-Party Sets is enabled for this network context. |
| bool enabled; |
| }; |
| |
| struct FirstPartySetsReadyEvent { |
| // The list of modifications to override the public First-Party Sets owned |
| // by the network service for the network context. |
| // |
| // This map is computed by the browser side against the public First-Party |
| // Sets, where the keys are member sites and the values are the ultimate |
| // entries of the final First-Party Sets combining the public sets and the |
| // modifications. Map entries of site -> absl::nullopt means the key site is |
| // considered deleted from the existing First-Party Sets. |
| map<SchemefulSite, FirstPartySetEntry?> customizations; |
| }; |