Index: ios/web_view/internal/translate/criwv_translate_ranker_factory.cc |
diff --git a/ios/web_view/internal/translate/criwv_translate_ranker_factory.cc b/ios/web_view/internal/translate/criwv_translate_ranker_factory.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..af947d0898bf06eab432dde9828a4b9cce4f3075 |
--- /dev/null |
+++ b/ios/web_view/internal/translate/criwv_translate_ranker_factory.cc |
@@ -0,0 +1,47 @@ |
+// 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. |
+ |
+#include "ios/web_view/internal/translate/criwv_translate_ranker_factory.h" |
+ |
+#include "base/memory/ptr_util.h" |
+#include "base/memory/singleton.h" |
+#include "components/keyed_service/core/keyed_service.h" |
+#include "components/keyed_service/ios/browser_state_dependency_manager.h" |
+#include "components/translate/core/browser/translate_ranker_impl.h" |
+#include "ios/web_view/internal/criwv_browser_state.h" |
+#include "ios/web_view/internal/pref_names.h" |
+ |
+namespace ios_web_view { |
+ |
+// static |
+CRIWVTranslateRankerFactory* CRIWVTranslateRankerFactory::GetInstance() { |
+ return base::Singleton<CRIWVTranslateRankerFactory>::get(); |
+} |
+ |
+// static |
+translate::TranslateRanker* CRIWVTranslateRankerFactory::GetForBrowserState( |
+ CRIWVBrowserState* state) { |
+ return static_cast<translate::TranslateRanker*>( |
+ GetInstance()->GetServiceForBrowserState(state, true)); |
+} |
+ |
+CRIWVTranslateRankerFactory::CRIWVTranslateRankerFactory() |
+ : BrowserStateKeyedServiceFactory( |
+ "TranslateRankerService", |
+ BrowserStateDependencyManager::GetInstance()) {} |
+ |
+CRIWVTranslateRankerFactory::~CRIWVTranslateRankerFactory() {} |
+ |
+std::unique_ptr<KeyedService> |
+CRIWVTranslateRankerFactory::BuildServiceInstanceFor( |
+ web::BrowserState* context) const { |
+ CRIWVBrowserState* criwv_browser_state = |
+ CRIWVBrowserState::FromBrowserState(context); |
+ return base::MakeUnique<translate::TranslateRankerImpl>( |
+ translate::TranslateRankerImpl::GetModelPath( |
+ criwv_browser_state->GetStatePath()), |
+ translate::TranslateRankerImpl::GetModelURL()); |
+} |
+ |
+} // namespace ios_web_view |