// 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.
// https://w3c.github.io/ServiceWorker/#enumdef-runningstatus
enum RunningStatusEnum { "running", "not-running" };
// https://w3c.github.io/ServiceWorker/#dictdef-routercondition
dictionary RouterCondition {
// For the URLPattern condition.
// https://wicg.github.io/urlpattern/#typedefdef-urlpatterncompatible
URLPatternCompatible urlPattern;
// For the Request condition.
ByteString requestMethod;
RequestMode requestMode;
RequestDestination requestDestination;
// For the running status.
RunningStatusEnum runningStatus;
// For the `or` condition.
// `ImplementedAs` is necessary to avoid conflicts with C++ keyword `or`.
// Chrome WebIDL compiler emits error without the leading underscore.
[ImplementedAs=orConditions] sequence<RouterCondition> _or;
// Experimental.
// For the `not` condition.
// `ImplementedAs` is necessary to avoid conflicts with C++ keyword `not`.
// Chrome WebIDL compiler emits error without the leading underscore.
[ImplementedAs=notCondition] RouterCondition _not;
};