// 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 "mojo/public/interfaces/network/url_response.mojom";

// This service allows client to efficiently cache and retrieve url response
// content on disk. In particular, it allows the shell and content handlers to
// efficiently cache and retrieve mojo applications.
// TODO(qsr): At the moment, the url response disk cache only handles ETag. If
//            either the cached version or the given response do not contain
//            ETags, the entry will be invalidated. It should be extended to
//            handle all the other http cache mechanisms for better performance
//            with http servers that do not support ETags.
interface URLResponseDiskCache {

   // Given a URLResponse, returns a pair of paths. |file_path| is a file
   // containing the body of the response. |cache_dir_path| is a directory that
   // the applicaton can use to store content. This service guarantee that
   // |cache_dir_path| will be emptied when |file_path| content changes. For
   // example, a content handler that is backed by a VM that compiles files
   // could have the VM use this directory to cache the compiled files.
   GetFile(mojo.URLResponse response) =>
       (array<uint8>? file_path, array<uint8>? cache_dir_path);

   // Given a URLResponse that is expected to have a zipped body, returns a
   // pair of paths. |extracted_dir_path| is a directory containing the unzipped
   // body of the response. |cache_dir_path| is a directory that the applicaton
   // can use to store content. This service guarantee that |cache_dir_path|
   // will be emptied when |extracted_dir_path| content changes.
   GetExtractedContent(mojo.URLResponse response) =>
       (array<uint8>? extracted_dir_path, array<uint8>? cache_dir_path);
};
