| Index: services/url_response_disk_cache/url_response_disk_cache_impl.h | 
| diff --git a/services/url_response_disk_cache/url_response_disk_cache_impl.h b/services/url_response_disk_cache/url_response_disk_cache_impl.h | 
| index fc70766623474140535f5cee0e664a16ab188107..95695e73497f40d649660aa0a5a1ebd14abd0769 100644 | 
| --- a/services/url_response_disk_cache/url_response_disk_cache_impl.h | 
| +++ b/services/url_response_disk_cache/url_response_disk_cache_impl.h | 
| @@ -7,55 +7,63 @@ | 
|  | 
| #include "base/files/file_path.h" | 
| #include "base/macros.h" | 
| +#include "base/memory/ref_counted.h" | 
| #include "base/task_runner.h" | 
| #include "mojo/public/cpp/bindings/strong_binding.h" | 
| #include "mojo/services/url_response_disk_cache/public/interfaces/url_response_disk_cache.mojom.h" | 
| +#include "services/url_response_disk_cache/url_response_disk_cache_db.h" | 
|  | 
| namespace mojo { | 
|  | 
| class URLResponseDiskCacheImpl : public URLResponseDiskCache { | 
| public: | 
| -  using FilePathPairCallback = | 
| +  using ResponseFileAndCacheDirCallback = | 
| base::Callback<void(const base::FilePath&, const base::FilePath&)>; | 
|  | 
| -  // Cleares the cached content. The actual deletion will be performed using the | 
| -  // given task runner, but cache appears as cleared immediately after the | 
| -  // function returns. | 
| -  static void ClearCache(base::TaskRunner* task_runner); | 
| +  // Creates the disk cache database. If |force_clean| is true, or the database | 
| +  // is outdated, it will clear the cached content. The actual deletion will be | 
| +  // performed using the given task runner, but cache appears as cleared | 
| +  // immediately after the function returns. | 
| +  static scoped_refptr<URLResponseDiskCacheDB> CreateDB( | 
| +      scoped_refptr<base::TaskRunner> task_runner, | 
| +      bool force_clean); | 
|  | 
| -  URLResponseDiskCacheImpl(base::TaskRunner* task_runner, | 
| +  URLResponseDiskCacheImpl(scoped_refptr<base::TaskRunner> task_runner, | 
| +                           scoped_refptr<URLResponseDiskCacheDB> db, | 
| const std::string& remote_application_url, | 
| InterfaceRequest<URLResponseDiskCache> request); | 
| ~URLResponseDiskCacheImpl() override; | 
|  | 
| private: | 
| // URLResponseDiskCache | 
| -  void GetFile(mojo::URLResponsePtr response, | 
| -               const GetFileCallback& callback) override; | 
| -  void GetExtractedContent( | 
| -      mojo::URLResponsePtr response, | 
| -      const GetExtractedContentCallback& callback) override; | 
| +  void Get(const String& url, const GetCallback& callback) override; | 
| +  void Update(URLResponsePtr response) override; | 
| +  void UpdateAndGet(URLResponsePtr response, | 
| +                    const UpdateAndGetCallback& callback) override; | 
| +  void UpdateAndGetExtracted( | 
| +      URLResponsePtr response, | 
| +      const UpdateAndGetExtractedCallback& callback) override; | 
|  | 
| -  // As |GetFile|, but uses FilePath instead of mojo arrays. | 
| -  void GetFileInternal(mojo::URLResponsePtr response, | 
| -                       const FilePathPairCallback& callback); | 
| +  // Internal implementation of |UpdateAndGet| using a pair of base::FilePath to | 
| +  // represent the paths the the response body and to the per-response client | 
| +  // cache directory. | 
| +  void UpdateAndGetInternal(URLResponsePtr response, | 
| +                            const ResponseFileAndCacheDirCallback& callback); | 
|  | 
| -  // Internal implementation of |GetExtractedContent|. The parameters are: | 
| +  // Internal implementation of |UpdateAndGetExtracted|. The parameters are: | 
| // |callback|: The callback to return values to the caller. It uses FilePath | 
| //             instead of mojo arrays. | 
| -  // |base_dir|: The base directory for caching data associated to the response. | 
| -  // |extracted_dir|: The directory where the file content must be extracted. It | 
| -  //                  will be  returned to the consumer. | 
| -  // |content|: The content of the body of the response. | 
| -  // |cache_dir|: The directory the user can user to cache its own content. | 
| -  void GetExtractedContentInternal(const FilePathPairCallback& callback, | 
| -                                   const base::FilePath& base_dir, | 
| -                                   const base::FilePath& extracted_dir, | 
| -                                   const base::FilePath& content, | 
| -                                   const base::FilePath& cache_dir); | 
| +  // |response_body_path|: The path to the content of the body of the response. | 
| +  // |consumer_cache_directory|: The directory the user can user to cache its | 
| +  //                             own content. | 
| +  void UpdateAndGetExtractedInternal( | 
| +      const ResponseFileAndCacheDirCallback& callback, | 
| +      const base::FilePath& response_body_path, | 
| +      const base::FilePath& consumer_cache_directory); | 
|  | 
| -  base::TaskRunner* task_runner_; | 
| -  base::FilePath base_directory_; | 
| +  scoped_refptr<base::TaskRunner> task_runner_; | 
| +  std::string request_origin_; | 
| +  scoped_refptr<URLResponseDiskCacheDB> db_; | 
| StrongBinding<URLResponseDiskCache> binding_; | 
|  | 
| DISALLOW_COPY_AND_ASSIGN(URLResponseDiskCacheImpl); | 
|  |