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

Side by Side Diff: chrome/browser/component_updater/cld_component_installer.cc

Issue 461633002: Refactor language detection logic to allow non-static CLD data sources. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Make some of the harness factory methods private Created 6 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/component_updater/cld_component_installer.h" 5 #include "chrome/browser/component_updater/cld_component_installer.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/files/file_path.h" 11 #include "base/files/file_path.h"
12 #include "base/files/file_util.h" 12 #include "base/files/file_util.h"
13 #include "base/lazy_instance.h" 13 #include "base/lazy_instance.h"
14 #include "base/logging.h" 14 #include "base/logging.h"
15 #include "base/path_service.h" 15 #include "base/path_service.h"
16 #include "components/component_updater/component_updater_paths.h" 16 #include "components/component_updater/component_updater_paths.h"
17 #include "components/translate/content/browser/browser_cld_data_provider.h" 17 #include "components/translate/content/browser/browser_cld_data_provider.h"
18 #include "components/translate/content/browser/browser_cld_data_provider_factory .h"
18 #include "components/translate/content/common/cld_data_source.h" 19 #include "components/translate/content/common/cld_data_source.h"
19 #include "content/public/browser/browser_thread.h" 20 #include "content/public/browser/browser_thread.h"
20 #include "net/ssl/ssl_config_service.h" 21 #include "net/ssl/ssl_config_service.h"
21 22
22 using component_updater::ComponentUpdateService; 23 using component_updater::ComponentUpdateService;
23 24
24 namespace { 25 namespace {
25 // TODO(andrewhayden): Make the data file path into a gyp/gn define 26 // TODO(andrewhayden): Make the data file path into a gyp/gn define
26 // If you change this, also update component_cld_data_harness.cc 27 // If you change this, also update component_cld_data_harness.cc
27 // and cld_component_installer_unittest.cc accordingly! 28 // and cld_component_installer_unittest.cc accordingly!
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 100
100 void CldComponentInstallerTraits::GetHash(std::vector<uint8_t>* hash) const { 101 void CldComponentInstallerTraits::GetHash(std::vector<uint8_t>* hash) const {
101 hash->assign(kPublicKeySHA256, 102 hash->assign(kPublicKeySHA256,
102 kPublicKeySHA256 + arraysize(kPublicKeySHA256)); 103 kPublicKeySHA256 + arraysize(kPublicKeySHA256));
103 } 104 }
104 105
105 std::string CldComponentInstallerTraits::GetName() const { 106 std::string CldComponentInstallerTraits::GetName() const {
106 return kCldManifestName; 107 return kCldManifestName;
107 } 108 }
108 109
110 // static
109 void RegisterCldComponent(ComponentUpdateService* cus) { 111 void RegisterCldComponent(ComponentUpdateService* cus) {
110 // Make sure we don't start up if the CLD data source isn't compatible. 112 if (!translate::CldDataSource::IsUsingComponentDataSource()) {
111 if (!translate::CldDataSource::ShouldRegisterForComponentUpdates()) { 113 // The configured CLD data source isn't the "Component" data source, so
112 // This is a serious build-time configuration error. 114 // there is nothing to do.
113 LOG(ERROR) << "Wrong CLD data source: " <<
114 translate::CldDataSource::GetName();
115 NOTREACHED();
116 return; 115 return;
117 } 116 }
118 117
119 // This log line is to help with determining which kind of provider has been 118 // This log line is to help with determining which kind of provider has been
120 // configured. See also: chrome://translate-internals 119 // configured. See also: chrome://translate-internals
121 VLOG(1) << "Registering CLD component with the component update service"; 120 VLOG(1) << "Registering CLD component with the component update service";
122 121
123 scoped_ptr<ComponentInstallerTraits> traits( 122 scoped_ptr<ComponentInstallerTraits> traits(
124 new CldComponentInstallerTraits()); 123 new CldComponentInstallerTraits());
125 // |cus| will take ownership of |installer| during installer->Register(cus). 124 // |cus| will take ownership of |installer| during installer->Register(cus).
126 DefaultComponentInstaller* installer = 125 DefaultComponentInstaller* installer =
127 new DefaultComponentInstaller(traits.Pass()); 126 new DefaultComponentInstaller(traits.Pass());
128 installer->Register(cus); 127 installer->Register(cus);
129 } 128 }
130 129
131 void CldComponentInstallerTraits::SetLatestCldDataFile( 130 void CldComponentInstallerTraits::SetLatestCldDataFile(
132 const base::FilePath& path) { 131 const base::FilePath& path) {
133 VLOG(1) << "Setting CLD data file location: " << path.value(); 132 VLOG(1) << "Setting CLD data file location: " << path.value();
134 g_latest_cld_data_file.Get() = path; 133 g_latest_cld_data_file.Get() = path;
135 translate::SetCldDataFilePath(path); 134 translate::CldDataSource::Get()->SetCldDataFilePath(path);
136 } 135 }
137 136
138 base::FilePath CldComponentInstallerTraits::GetLatestCldDataFile() { 137 base::FilePath CldComponentInstallerTraits::GetLatestCldDataFile() {
139 return g_latest_cld_data_file.Get(); 138 return g_latest_cld_data_file.Get();
140 } 139 }
141 140
142 } // namespace component_updater 141 } // namespace component_updater
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698