Index: mojo/runner/about_fetcher.h |
diff --git a/mojo/runner/about_fetcher.h b/mojo/runner/about_fetcher.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c9bbff78737de2694a2d287db4a4355a9c4ca356 |
--- /dev/null |
+++ b/mojo/runner/about_fetcher.h |
@@ -0,0 +1,58 @@ |
+// 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_RUNNER_ABOUT_FETCHER_H_ |
+#define MOJO_RUNNER_ABOUT_FETCHER_H_ |
+ |
+#include "mojo/shell/fetcher.h" |
+ |
+#include "base/macros.h" |
+#include "mojo/services/network/public/interfaces/url_loader.mojom.h" |
+#include "url/gurl.h" |
+ |
+namespace mojo { |
+namespace runner { |
+ |
+// Implements Fetcher for about: URLs. |
+class AboutFetcher : public shell::Fetcher { |
+ public: |
+ static const char kAboutScheme[]; |
+ static const char kAboutBlankURL[]; |
+ |
+ static void Start(const GURL& url, const FetchCallback& loader_callback); |
+ |
+ private: |
+ AboutFetcher(const GURL& url, const FetchCallback& loader_callback); |
+ ~AboutFetcher() override; |
+ |
+ void BuildResponse(); |
+ |
+ // Must be called exactly once to run the loader callback (asynchrously). On |
+ // success, the ownership of this object is passed to the loader callback; |
+ // otherwise, the callback is run with a nullptr and this object is destroyed. |
+ void PostToRunCallback(bool success); |
+ |
+ // shell::Fetcher implementation. |
+ const GURL& GetURL() const override; |
+ GURL GetRedirectURL() const override; |
+ GURL GetRedirectReferer() const override; |
+ URLResponsePtr AsURLResponse(base::TaskRunner* task_runner, |
+ uint32_t skip) override; |
+ 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; |
+ |
+ const GURL url_; |
+ URLResponsePtr response_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(AboutFetcher); |
+}; |
+ |
+} // namespace runner |
+} // namespace mojo |
+ |
+#endif // MOJO_RUNNER_ABOUT_FETCHER_H_ |