Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(568)

Unified Diff: chrome/browser/translate/cld_data_harness_factory.cc

Issue 2034413003: Delete the non-static CLD data source logic. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase to latest master Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/translate/cld_data_harness_factory.cc
diff --git a/chrome/browser/translate/cld_data_harness_factory.cc b/chrome/browser/translate/cld_data_harness_factory.cc
deleted file mode 100644
index 607e941932ab401c1c61f0cd89475dc988800245..0000000000000000000000000000000000000000
--- a/chrome/browser/translate/cld_data_harness_factory.cc
+++ /dev/null
@@ -1,107 +0,0 @@
-// Copyright 2014 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 "chrome/browser/translate/cld_data_harness_factory.h"
-
-#include "base/lazy_instance.h"
-#include "chrome/browser/translate/component_cld_data_harness.h"
-#include "chrome/browser/translate/standalone_cld_data_harness.h"
-#include "components/translate/content/browser/browser_cld_utils.h"
-#include "components/translate/content/common/cld_data_source.h"
-
-namespace {
-
-// This is the global instance managed by Get/Set
-test::CldDataHarnessFactory* g_instance = NULL;
-
-// The following three instances are used to "cheat" in Create(). Each of them
-// is just an instance of this class, but because they are singletons they can
-// be compared using "this" to pick different behaviors in Create() at runtime.
-// This avoids the need to explicitly define boilerplate classes with no
-// significant value.
-//
-// Embedders can of course specify a different implementation of this class
-// using Set(CldDataHarnessFactory*), in which case Create() will have whatever
-// custom behavior is desired.
-base::LazyInstance<test::CldDataHarnessFactory>::Leaky g_wrapped_component =
- LAZY_INSTANCE_INITIALIZER;
-base::LazyInstance<test::CldDataHarnessFactory>::Leaky g_wrapped_standalone =
- LAZY_INSTANCE_INITIALIZER;
-base::LazyInstance<test::CldDataHarnessFactory>::Leaky g_wrapped_static =
- LAZY_INSTANCE_INITIALIZER;
-
-} // namespace
-
-namespace test {
-
-std::unique_ptr<CldDataHarness> CldDataHarnessFactory::CreateCldDataHarness() {
- // Cheat: Since the three "canned" implementations are all well-known, just
- // check to see if "this" points to one of the singletons and then return
- // the right answer. Embedder-provided CldDataHarnessFactory implementations
- // will of course not have this behavior.
- if (this == GetStaticDataHarnessFactory()) {
- return CldDataHarness::CreateStaticDataHarness();
- }
- if (this == GetStandaloneDataHarnessFactory()) {
- return CldDataHarness::CreateStandaloneDataHarness();
- }
- if (this == GetComponentDataHarnessFactory()) {
- return CldDataHarness::CreateComponentDataHarness();
- }
-
- // Embedder did something wrong, failed to override this method.
- NOTREACHED() << "Subclass failed to override CreateCldDataHarness()";
- return CldDataHarness::CreateStaticDataHarness();
-}
-
-CldDataHarnessFactory* CldDataHarnessFactory::Get() {
- // First honor any factory set by the embedder.
- if (g_instance != NULL) return g_instance;
-
- // Fall back to defaults: try to find a compatible harness for the currently-
- // configured CldDataSource.
- translate::BrowserCldUtils::ConfigureDefaultDataProvider();
- if (translate::CldDataSource::IsUsingStaticDataSource()) {
- return GetStaticDataHarnessFactory();
- }
- if (translate::CldDataSource::IsUsingComponentDataSource()) {
- return GetComponentDataHarnessFactory();
- }
- if (translate::CldDataSource::IsUsingStandaloneDataSource()) {
- return GetStandaloneDataHarnessFactory();
- }
-
- // The CldDataSource must have been set by an embedder, but the embedder has
- // not configured a corresponding CldDataHarnessFactory. This is an error; the
- // embedder must specify a harness that works with the corresponding
- // CldDataSource. Crash for debug builds and return a no-op harness for
- // everything else.
- NOTREACHED() << "No CLD data harness factory was configured!";
- return GetStaticDataHarnessFactory();
-}
-
-// static
-void CldDataHarnessFactory::Set(CldDataHarnessFactory* instance) {
- g_instance = instance;
-}
-
-// static
-CldDataHarnessFactory*
-CldDataHarnessFactory::GetStaticDataHarnessFactory() {
- return &g_wrapped_static.Get();
-}
-
-// static
-CldDataHarnessFactory*
-CldDataHarnessFactory::GetStandaloneDataHarnessFactory() {
- return &g_wrapped_standalone.Get();
-}
-
-// static
-CldDataHarnessFactory*
-CldDataHarnessFactory::GetComponentDataHarnessFactory() {
- return &g_wrapped_component.Get();
-}
-
-} // namespace test
« no previous file with comments | « chrome/browser/translate/cld_data_harness_factory.h ('k') | chrome/browser/translate/component_cld_data_harness.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698