From ecabe6eed156a36238888bfd2fdb96ec4906f0a4 Mon Sep 17 00:00:00 2001 From: "cira@chromium.org" Date: Wed, 7 Oct 2009 22:49:10 +0000 Subject: Loads local resources from current locale subtree if available, if not it falls back to extension subtree. We look for ext_root/foo/bar.js under ext_root/_locales/fr/foo/bar.js if current locale is fr. If there is no fr specific resource we load ext_root/foo/bar.js instead. Lots of small refactoring to replace FilePath with ExtensionResource. BUG=12131 TEST=See unittest for sample tree. Review URL: http://codereview.chromium.org/256022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28333 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/extensions/user_script_master.cc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'chrome/browser/extensions/user_script_master.cc') diff --git a/chrome/browser/extensions/user_script_master.cc b/chrome/browser/extensions/user_script_master.cc index b4130c8..f58a9e6 100644 --- a/chrome/browser/extensions/user_script_master.cc +++ b/chrome/browser/extensions/user_script_master.cc @@ -136,20 +136,20 @@ void UserScriptMaster::ScriptReloader::NotifyMaster( static bool LoadScriptContent(UserScript::File* script_file) { std::string content; - if (!file_util::ReadFileToString(script_file->path(), &content)) { - LOG(WARNING) << "Failed to load user script file: " - << script_file->path().value(); + FilePath path = script_file->resource().GetFilePath(); + if (path.empty() || !file_util::ReadFileToString(path, &content)) { + LOG(WARNING) << "Failed to load user script file: " << path.value(); return false; } script_file->set_content(content); - LOG(INFO) << "Loaded user script file: " << script_file->path().value(); + LOG(INFO) << "Loaded user script file: " << path.value(); return true; } void UserScriptMaster::ScriptReloader::LoadScriptsFromDirectory( const FilePath& script_dir, UserScriptList* result) { - // Clear the list. We will populate it with the scrips found in script_dir. + // Clear the list. We will populate it with the scripts found in script_dir. result->clear(); // Find all the scripts in |script_dir|. @@ -168,7 +168,8 @@ void UserScriptMaster::ScriptReloader::LoadScriptsFromDirectory( // Push single js file in this UserScript. GURL url(std::string(chrome::kUserScriptScheme) + ":/" + net::FilePathToFileURL(file).ExtractFileName()); - user_script.js_scripts().push_back(UserScript::File(file, url)); + ExtensionResource resource(script_dir, file.BaseName()); + user_script.js_scripts().push_back(UserScript::File(resource, url)); UserScript::File& script_file = user_script.js_scripts().back(); if (!LoadScriptContent(&script_file)) result->pop_back(); -- cgit v1.1