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

module mojo;

import "services/http_server/public/http_request.mojom";
import "services/http_server/public/http_response.mojom";

[Client=HttpServerClient]
interface HttpServerService {
  // Add a handler for the given regex path.
  AddHandler(string path) => (bool success);

  // Remove a previously registered handler.
  RemoveHandler(string path) => (bool success);
};

interface HttpServerClient {
  OnHandleRequest(HttpRequest request) => (HttpResponse response);
};
