blob: 7acdf26d5bb2b22563b511eba5c483266b6c226e [file] [log] [blame]
// Copyright 2016 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.
#import "ios/chrome/browser/providers/chromium_browser_provider.h"
#include "base/memory/ptr_util.h"
#import "ios/chrome/browser/providers/chromium_logo_controller.h"
#import "ios/chrome/browser/providers/chromium_voice_search_provider.h"
#include "ios/public/provider/chrome/browser/signin/chrome_identity_service.h"
#include "ios/public/provider/chrome/browser/signin/signin_error_provider.h"
#include "ios/public/provider/chrome/browser/signin/signin_resources_provider.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
ChromiumBrowserProvider::ChromiumBrowserProvider()
: signin_error_provider_(base::MakeUnique<ios::SigninErrorProvider>()),
signin_resources_provider_(
base::MakeUnique<ios::SigninResourcesProvider>()),
voice_search_provider_(base::MakeUnique<ChromiumVoiceSearchProvider>()) {}
ChromiumBrowserProvider::~ChromiumBrowserProvider() {}
ios::SigninErrorProvider* ChromiumBrowserProvider::GetSigninErrorProvider() {
return signin_error_provider_.get();
}
ios::SigninResourcesProvider*
ChromiumBrowserProvider::GetSigninResourcesProvider() {
return signin_resources_provider_.get();
}
void ChromiumBrowserProvider::SetChromeIdentityServiceForTesting(
std::unique_ptr<ios::ChromeIdentityService> service) {
chrome_identity_service_ = std::move(service);
}
ios::ChromeIdentityService*
ChromiumBrowserProvider::GetChromeIdentityService() {
if (!chrome_identity_service_) {
chrome_identity_service_ = base::MakeUnique<ios::ChromeIdentityService>();
}
return chrome_identity_service_.get();
}
void ChromiumBrowserProvider::InitializeCastService(id main_tab_model) const {}
void ChromiumBrowserProvider::AttachTabHelpers(web::WebState* web_state,
id tab) const {}
VoiceSearchProvider* ChromiumBrowserProvider::GetVoiceSearchProvider() const {
return voice_search_provider_.get();
}
id<LogoVendor> ChromiumBrowserProvider::CreateLogoVendor(
ios::ChromeBrowserState* browser_state,
id<UrlLoader> loader) const {
return [[ChromiumLogoController alloc] init];
}