chromium/third_party/blink/renderer/modules/service_worker/router_condition.idl

// 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;
};