// Copyright 2023 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/shared_dictionary_isolation_key.mojom";
import "url/mojom/origin.mojom";
import "url/mojom/url.mojom";
struct SharedDictionaryAccessDetails {
enum Type {
kRead,
kWrite,
};
Type type;
// The `url` parameter specifies the URL of the resource or dictionary.
// - When `type` is `kRead`, `url` is the URL of the resource for
// which a dictionary will be used.
// - When `type` is `kWrite`, `url` is the URL of the dictionary.
url.mojom.Url url;
SharedDictionaryIsolationKey isolation_key;
// Indicates that the access was blocked by the user's Site Settings.
bool is_blocked = false;
};
// Cloneable interface to observe the shared dictionary reads or writes.
interface SharedDictionaryAccessObserver {
// Called when an attempt has been made to access a shared dictionary.
OnSharedDictionaryAccessed(SharedDictionaryAccessDetails details);
// Used by the NetworkService to create a copy of this observer.
Clone(pending_receiver<SharedDictionaryAccessObserver> observer);
};