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

Side by Side Diff: chrome/browser/extensions/extension_file_util.cc

Issue 173487: Implemented the rest of loading/parsing logic for extension i18n:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/extensions/extension_file_util.h" 5 #include "chrome/browser/extensions/extension_file_util.h"
6 6
7 #include "app/l10n_util.h"
7 #include "base/file_util.h" 8 #include "base/file_util.h"
8 #include "base/logging.h" 9 #include "base/logging.h"
9 #include "base/scoped_temp_dir.h" 10 #include "base/scoped_temp_dir.h"
10 #include "base/string_util.h" 11 #include "base/string_util.h"
11 #include "chrome/browser/extensions/extension_prefs.h" 12 #include "chrome/browser/extensions/extension_prefs.h"
12 #include "chrome/browser/extensions/extension_l10n_util.h" 13 #include "chrome/browser/extensions/extension_l10n_util.h"
13 #include "chrome/common/extensions/extension.h" 14 #include "chrome/common/extensions/extension.h"
14 #include "chrome/common/extensions/extension_constants.h" 15 #include "chrome/common/extensions/extension_constants.h"
15 #include "chrome/common/json_value_serializer.h" 16 #include "chrome/common/json_value_serializer.h"
16 #include "net/base/file_stream.h" 17 #include "net/base/file_stream.h"
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 88
88 if (!MoveDirSafely(src_dir, version_dir)) { 89 if (!MoveDirSafely(src_dir, version_dir)) {
89 *error = "Could not move extension directory into profile."; 90 *error = "Could not move extension directory into profile.";
90 return false; 91 return false;
91 } 92 }
92 93
93 scoped_version_dir.Take(); 94 scoped_version_dir.Take();
94 return true; 95 return true;
95 } 96 }
96 97
97 Extension* LoadExtension(const FilePath& extension_path, bool require_key, 98 Extension* LoadExtension(const FilePath& extension_path,
99 bool require_key,
98 std::string* error) { 100 std::string* error) {
99 FilePath manifest_path = 101 FilePath manifest_path =
100 extension_path.AppendASCII(Extension::kManifestFilename); 102 extension_path.AppendASCII(Extension::kManifestFilename);
101 if (!file_util::PathExists(manifest_path)) { 103 if (!file_util::PathExists(manifest_path)) {
102 *error = extension_manifest_errors::kInvalidManifest; 104 *error = extension_manifest_errors::kInvalidManifest;
103 return NULL; 105 return NULL;
104 } 106 }
105 107
106 JSONFileValueSerializer serializer(manifest_path); 108 JSONFileValueSerializer serializer(manifest_path);
107 scoped_ptr<Value> root(serializer.Deserialize(error)); 109 scoped_ptr<Value> root(serializer.Deserialize(error));
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 if (!extension_l10n_util::AddValidLocales(locale_path, 227 if (!extension_l10n_util::AddValidLocales(locale_path,
226 extension, 228 extension,
227 error)) { 229 error)) {
228 return false; 230 return false;
229 } 231 }
230 232
231 if (!extension_l10n_util::ValidateDefaultLocale(extension)) { 233 if (!extension_l10n_util::ValidateDefaultLocale(extension)) {
232 *error = extension_manifest_errors::kLocalesNoDefaultLocaleSpecified; 234 *error = extension_manifest_errors::kLocalesNoDefaultLocaleSpecified;
233 return false; 235 return false;
234 } 236 }
237
238 // We can't call g_browser_process->GetApplicationLocale() since we are not
239 // on the main thread.
240 static const std::string& app_locale = l10n_util::GetApplicationLocale(L"");
Aaron Boodman 2009/08/31 21:42:55 This seems to check the prefs. Is it OK to do that
241 extension->set_application_locale(app_locale);
242 if (!extension_l10n_util::LoadMessageCatalogs(locale_path,
243 extension,
244 error)) {
245 return NULL;
246 }
247 // Replace possible messages in the manifest name and description sections.
248 std::string value = extension->name();
Aaron Boodman 2009/08/31 21:42:55 Instead of reading and then re-writing the name, w
249 if (extension->message_handler()->ReplaceMessagesInString(&value)) {
250 extension->set_name(value);
251 } else {
252 *error = StringPrintf("Message \"%s\" is missing but used in a "
253 "extension name.", value.c_str());
254 return NULL;
255 }
256
257 value = extension->description();
258 if (extension->message_handler()->ReplaceMessagesInString(&value)) {
259 extension->set_description(value);
260 } else {
261 *error = StringPrintf("Message \"%s\" is missing but used in a "
262 "extension description.", value.c_str());
263 return NULL;
264 }
235 } 265 }
236 266
237 // Check children of extension root to see if any of them start with _ and is 267 // Check children of extension root to see if any of them start with _ and is
238 // not on the reserved list. 268 // not on the reserved list.
239 if (!CheckForIllegalFilenames(extension->path(), error)) { 269 if (!CheckForIllegalFilenames(extension->path(), error)) {
240 return false; 270 return false;
241 } 271 }
242 272
243 return true; 273 return true;
244 } 274 }
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 "Filenames starting with \"_\" are reserved for use by the system", 373 "Filenames starting with \"_\" are reserved for use by the system",
344 filename.c_str()); 374 filename.c_str());
345 return false; 375 return false;
346 } 376 }
347 } 377 }
348 378
349 return true; 379 return true;
350 } 380 }
351 381
352 } // extension_file_util 382 } // extension_file_util
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698