| Index: mojo/shell/network_fetcher.h
|
| diff --git a/mojo/shell/network_fetcher.h b/mojo/shell/network_fetcher.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5b9ab650e7cb8cfcfda8e70919fca9d96ad4def4
|
| --- /dev/null
|
| +++ b/mojo/shell/network_fetcher.h
|
| @@ -0,0 +1,85 @@
|
| +// 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.
|
| +
|
| +#ifndef MOJO_SHELL_NETWORK_FETCHER_H_
|
| +#define MOJO_SHELL_NETWORK_FETCHER_H_
|
| +
|
| +#include "mojo/shell/fetcher.h"
|
| +
|
| +#include "base/files/file_path.h"
|
| +#include "base/memory/weak_ptr.h"
|
| +#include "mojo/services/network/public/interfaces/url_loader.mojom.h"
|
| +#include "url/gurl.h"
|
| +
|
| +namespace mojo {
|
| +
|
| +class URLLoaderFactory;
|
| +
|
| +namespace shell {
|
| +
|
| +// Implements Fetcher for http[s] files.
|
| +class NetworkFetcher : public Fetcher {
|
| + public:
|
| + NetworkFetcher(bool disable_cache,
|
| + mojo::URLRequestPtr request,
|
| + URLLoaderFactory* url_loader_factory,
|
| + const FetchCallback& loader_callback);
|
| +
|
| + ~NetworkFetcher() override;
|
| +
|
| + private:
|
| + // TODO(hansmuller): Revisit this when a real peek operation is available.
|
| + static const MojoDeadline kPeekTimeout = MOJO_DEADLINE_INDEFINITE;
|
| +
|
| + const GURL& GetURL() const override;
|
| + GURL GetRedirectURL() const override;
|
| + GURL GetRedirectReferer() const override;
|
| +
|
| + URLResponsePtr AsURLResponse(base::TaskRunner* task_runner,
|
| + uint32_t skip) override;
|
| +
|
| + static void RecordCacheToURLMapping(const base::FilePath& path,
|
| + const GURL& url);
|
| +
|
| + // AppIds should be be both predictable and unique, but any hash would work.
|
| + // Currently we use sha256 from crypto/secure_hash.h
|
| + static bool ComputeAppId(const base::FilePath& path,
|
| + std::string* digest_string);
|
| +
|
| + static bool RenameToAppId(const GURL& url,
|
| + const base::FilePath& old_path,
|
| + base::FilePath* new_path);
|
| +
|
| + void CopyCompleted(base::Callback<void(const base::FilePath&, bool)> callback,
|
| + bool success);
|
| +
|
| + void AsPath(
|
| + base::TaskRunner* task_runner,
|
| + base::Callback<void(const base::FilePath&, bool)> callback) override;
|
| +
|
| + std::string MimeType() override;
|
| +
|
| + bool HasMojoMagic() override;
|
| +
|
| + bool PeekFirstLine(std::string* line) override;
|
| +
|
| + void StartNetworkRequest(mojo::URLRequestPtr request,
|
| + URLLoaderFactory* url_loader_factory);
|
| +
|
| + void OnLoadComplete(URLResponsePtr response);
|
| +
|
| + bool disable_cache_;
|
| + const GURL url_;
|
| + URLLoaderPtr url_loader_;
|
| + URLResponsePtr response_;
|
| + base::FilePath path_;
|
| + base::WeakPtrFactory<NetworkFetcher> weak_ptr_factory_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(NetworkFetcher);
|
| +};
|
| +
|
| +} // namespace shell
|
| +} // namespace mojo
|
| +
|
| +#endif // MOJO_SHELL_NETWORK_FETCHER_H_
|
|
|