Fetch Mandoline components from Google Storage as needed.

Proof-of-concept for fetching optional components.
Return LocalFetcher redirect URLs for missing components.

This uses NetworkFetcher to access Google Storage files:
https://pantheon.corp.google.com/storage/browser/mandoline/

For example, delete pdf_viewer.mojo locally, and run:
$ mandoline http://www.pdf995.com/samples/pdf.pdf --predictable-app-filenames

TODO: Integrate with Mandoline's component updater? crbug.com/479169
TODO: Integrate with planned Omaha fetcher and updater work.
TODO: Support fetching apps with resource files.
TODO: Handle broken URLs. (unavailable component files, etc.)
TODO: Avoid kPredictableAppFilenames switch? (need executable bit set)

BUG=479169
TEST=Mandoline can fetch the pdf_viewer as needed.
R=ben@chromium.org

Review URL: https://codereview.chromium.org/1442203002

Cr-Commit-Position: refs/heads/master@{#360735}


CrOS-Libchrome-Original-Commit: d629d1b58c5d54b9827d9fc753a53c0d60851261
4 files changed
tree: 9e33e9f506fe06c85f2d82714aa24471e25b21c4
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/