| Index: ios/chrome/browser/browser_state/chrome_browser_state.cc
|
| diff --git a/ios/chrome/browser/browser_state/chrome_browser_state.cc b/ios/chrome/browser/browser_state/chrome_browser_state.cc
|
| index 2926e02144042ff8ec16b72e16f10ff919842e64..adb23337f1f3dbc316f602db554211953ab148bc 100644
|
| --- a/ios/chrome/browser/browser_state/chrome_browser_state.cc
|
| +++ b/ios/chrome/browser/browser_state/chrome_browser_state.cc
|
| @@ -4,12 +4,28 @@
|
|
|
| #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
|
|
|
| +#include <utility>
|
| +
|
| #include "base/files/file_path.h"
|
| +#include "base/logging.h"
|
| +#include "base/sequenced_task_runner.h"
|
| +#include "components/prefs/json_pref_store.h"
|
| +#include "components/syncable_prefs/pref_service_syncable.h"
|
| +#include "ios/chrome/browser/chrome_url_constants.h"
|
| +#include "ios/chrome/browser/net/ios_chrome_url_request_context_getter.h"
|
| +#include "ios/chrome/browser/net/net_types.h"
|
| #include "ios/public/provider/web/web_ui_ios.h"
|
| #include "ios/web/public/web_state/web_state.h"
|
| +#include "ios/web/public/web_thread.h"
|
| +#include "ios/web/webui/url_data_manager_ios_backend.h"
|
| +#include "net/url_request/url_request_interceptor.h"
|
|
|
| namespace ios {
|
|
|
| +ChromeBrowserState::ChromeBrowserState() {}
|
| +
|
| +ChromeBrowserState::~ChromeBrowserState() {}
|
| +
|
| // static
|
| ChromeBrowserState* ChromeBrowserState::FromBrowserState(
|
| web::BrowserState* browser_state) {
|
| @@ -33,4 +49,34 @@ std::string ChromeBrowserState::GetDebugName() {
|
| return name;
|
| }
|
|
|
| +scoped_refptr<base::SequencedTaskRunner> ChromeBrowserState::GetIOTaskRunner() {
|
| + base::FilePath browser_state_path =
|
| + GetOriginalChromeBrowserState()->GetStatePath();
|
| + return JsonPrefStore::GetTaskRunnerForFile(browser_state_path,
|
| + web::WebThread::GetBlockingPool());
|
| +}
|
| +
|
| +syncable_prefs::PrefServiceSyncable* ChromeBrowserState::GetSyncablePrefs() {
|
| + return static_cast<syncable_prefs::PrefServiceSyncable*>(GetPrefs());
|
| +}
|
| +
|
| +TestChromeBrowserState* ChromeBrowserState::AsTestChromeBrowserState() {
|
| + return nullptr;
|
| +}
|
| +
|
| +net::URLRequestContextGetter* ChromeBrowserState::GetRequestContext() {
|
| + DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::UI);
|
| + if (!request_context_getter_) {
|
| + ProtocolHandlerMap protocol_handlers;
|
| + protocol_handlers[kChromeUIScheme] =
|
| + linked_ptr<net::URLRequestJobFactory::ProtocolHandler>(
|
| + web::URLDataManagerIOSBackend::CreateProtocolHandler(this)
|
| + .release());
|
| + URLRequestInterceptorScopedVector request_interceptors;
|
| + request_context_getter_ = make_scoped_refptr(CreateRequestContext(
|
| + &protocol_handlers, std::move(request_interceptors)));
|
| + }
|
| + return request_context_getter_.get();
|
| +}
|
| +
|
| } // namespace ios
|
|
|