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#include "chrome/browser/extensions/updater/chrome_extension_downloader_factory.h" 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/extensions/updater/extension_downloader.h" 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/google/google_brand.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/metrics/chrome_metrics_service_accessor.h" 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/profiles/profile.h" 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/signin/profile_identity_provider.h" 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/signin/profile_oauth2_token_service_factory.h" 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/signin/signin_manager_factory.h" 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/ui/webui/signin/login_ui_service_factory.h" 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/omaha_query_params/omaha_query_params.h" 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/signin/core/browser/signin_manager.h" 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "google_apis/gaia/identity_provider.h" 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciusing extensions::ExtensionDownloader; 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciusing extensions::ExtensionDownloaderDelegate; 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciusing omaha_query_params::OmahaQueryParams; 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciscoped_ptr<ExtensionDownloader> 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciChromeExtensionDownloaderFactory::CreateForRequestContext( 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci net::URLRequestContextGetter* request_context, 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ExtensionDownloaderDelegate* delegate) { 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<ExtensionDownloader> downloader( 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci new ExtensionDownloader(delegate, request_context)); 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#if defined(GOOGLE_CHROME_BUILD) 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci std::string brand; 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci google_brand::GetBrand(&brand); 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (!brand.empty() && !google_brand::IsOrganic(brand)) 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci downloader->set_brand_code(brand); 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif // defined(GOOGLE_CHROME_BUILD) 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci downloader->set_manifest_query_params( 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci OmahaQueryParams::Get(OmahaQueryParams::CRX)); 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci downloader->set_ping_enabled_domain("google.com"); 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci downloader->set_enable_extra_update_metrics( 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ChromeMetricsServiceAccessor::IsMetricsReportingEnabled()); 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return downloader.Pass(); 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciscoped_ptr<ExtensionDownloader> 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciChromeExtensionDownloaderFactory::CreateForProfile( 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci Profile* profile, 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ExtensionDownloaderDelegate* delegate) { 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<IdentityProvider> identity_provider(new ProfileIdentityProvider( 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci SigninManagerFactory::GetForProfile(profile), 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ProfileOAuth2TokenServiceFactory::GetForProfile(profile), 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci LoginUIServiceFactory::GetForProfile(profile))); 511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_ptr<ExtensionDownloader> downloader = 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci CreateForRequestContext(profile->GetRequestContext(), delegate); 531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci downloader->SetWebstoreIdentityProvider(identity_provider.Pass()); 541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return downloader.Pass(); 551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 56