blob: 2be4ac5f35eea3f99e1fe6c01c158710c1193bdd [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/browser/renderer_host/cookie_access_observers.h"
#include "services/network/public/mojom/cookie_access_observer.mojom.h"
namespace content {
CookieAccessObservers::CookieAccessObservers(
NotifyCookiesAccessedCallback callback)
: callback_(std::move(callback)) {}
CookieAccessObservers::~CookieAccessObservers() = default;
void CookieAccessObservers::Add(
mojo::PendingReceiver<network::mojom::CookieAccessObserver> receiver,
CookieAccessDetails::Source source) {
cookie_observer_set_.Add(this, std::move(receiver), source);
}
CookieAccessObservers::PendingObserversWithContext
CookieAccessObservers::TakeReceiversWithContext() {
return cookie_observer_set_.TakeReceiversWithContext();
}
void CookieAccessObservers::OnCookiesAccessed(
std::vector<network::mojom::CookieAccessDetailsPtr> details_vector) {
callback_.Run(std::move(details_vector),
cookie_observer_set_.current_context());
}
void CookieAccessObservers::Clone(
mojo::PendingReceiver<network::mojom::CookieAccessObserver> observer) {
cookie_observer_set_.Add(this, std::move(observer),
cookie_observer_set_.current_context());
}
} // namespace content