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