// Copyright 2015 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.

[DartPackage="mojo_services"]
module mojo;

import "authentication/public/interfaces/authentication.mojom";
import "network/public/interfaces/url_loader_interceptor.mojom";

interface AuthenticatingURLLoaderInterceptorMetaFactory {
  // Creates a URLLoaderInterceptorFactory whose interceptors authenticate via
  // |authentication_service|. If the connection to |authentication_service| is
  // lost, the loaders will fail any requests that require authentication.
  CreateURLLoaderInterceptorFactory(
      URLLoaderInterceptorFactory& factory_request,
      authentication.AuthenticationService authentication_service);
};
