blob: 9a09163daa65d62a60be3b85b67e7cbc36da4fae [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module blink.mojom;
import "services/network/public/mojom/restricted_cookie_manager.mojom";
import "url/mojom/url.mojom";
struct CookieChangeSubscription {
url.mojom.Url url;
network.mojom.CookieMatchType match_type;
string name;
};
// Tracks ServiceWorker subscriptions to cookie changes.
//
// Most code should access the cookie store via the RestrictedCookieManager
// interface in //services/network. This interface manages service worker
// subscriptions to cookie changes, which currently fall outside the network
// service's scope. The implementation lives in the browser process, because it
// has the ability to wake up service workers in order to dispatch events to
// them.
interface CookieStore {
// Adds the given subscriptions to the registration's subscription list.
//
// This method is idempotent. Subscriptions that are already contained in the
// registration's subscription list are ignored.
AddSubscriptions(
int64 service_worker_registration_id,
array<CookieChangeSubscription> subscription) => (bool success);
// Removes the given subscriptions from the registration's subscription list.
//
// This method is idempotent. Subscriptions not contained in the
// registration's subscription list are ignored.
RemoveSubscriptions(
int64 service_worker_registration_id,
array<CookieChangeSubscription> subscription) => (bool success);
// Returns all cookie change subscriptions for a service worker registration.
GetSubscriptions(int64 service_worker_registration_id)
=> (array<CookieChangeSubscription> subscriptions, bool success);
};