11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#ifndef CHROME_BROWSER_EXTENSIONS_UPDATER_CHROME_EXTENSION_DOWNLOADER_FACTORY_H_ 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define CHROME_BROWSER_EXTENSIONS_UPDATER_CHROME_EXTENSION_DOWNLOADER_FACTORY_H_ 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/memory/scoped_ptr.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass Profile; 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace extensions { 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass ExtensionDownloader; 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass ExtensionDownloaderDelegate; 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace net { 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass URLRequestContextGetter; 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// This provides a simple static interface for constructing an 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// ExtensionDownloader suitable for use from within Chrome. 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass ChromeExtensionDownloaderFactory { 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public: 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Creates a downloader with the given request context. No profile identity 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // is associated with this downloader. 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci static scoped_ptr<extensions::ExtensionDownloader> CreateForRequestContext( 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci net::URLRequestContextGetter* request_context, 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci extensions::ExtensionDownloaderDelegate* delegate); 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Creates a downloader for a given Profile. This downloader will be able 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // to authenticate as the signed-in user in the event that it's asked to 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // fetch a protected download. 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci static scoped_ptr<extensions::ExtensionDownloader> CreateForProfile( 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci Profile* profile, 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci extensions::ExtensionDownloaderDelegate* delegate); 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif // CHROME_BROWSER_EXTENSIONS_UPDATER_CHROME_EXTENSION_DOWNLOADER_FACTORY_H_ 40