// 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.
self.addEventListener('fetch', event => {
event.waitUntil(async function () {
if (!event.clientId) return;
const client = await clients.get(event.clientId);
if (!client) return;
client.postMessage({
url: event.request.url,
topicsHeader: String(event.request.headers.get("Sec-Browsing-Topics"))
});
}());
});
self.addEventListener('message', event => {
if (event.data.fetchUrl) {
clients.matchAll().then((clients) => {
fetch(event.data.fetchUrl, {browsingTopics: true}).then((response) => {
// clients[0] is the most recently focused one
clients[0].postMessage({
finishedFetch: true
});
});
});
}
});