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

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

Issue 256022: Loads local resources from current locale subtree if available, if not it fal... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 2 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) 2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2008 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/user_script_master.h" 5 #include "chrome/browser/extensions/user_script_master.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/file_path.h" 10 #include "base/file_path.h"
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 else 129 else
130 master_->NewScriptsAvailable(memory); 130 master_->NewScriptsAvailable(memory);
131 131
132 // Drop our self-reference. 132 // Drop our self-reference.
133 // Balances StartScan(). 133 // Balances StartScan().
134 Release(); 134 Release();
135 } 135 }
136 136
137 static bool LoadScriptContent(UserScript::File* script_file) { 137 static bool LoadScriptContent(UserScript::File* script_file) {
138 std::string content; 138 std::string content;
139 if (!file_util::ReadFileToString(script_file->path(), &content)) { 139 FilePath path = script_file->resource().GetFilePath();
140 LOG(WARNING) << "Failed to load user script file: " 140 if (path.empty() || !file_util::ReadFileToString(path, &content)) {
141 << script_file->path().value(); 141 LOG(WARNING) << "Failed to load user script file: " << path.value();
142 return false; 142 return false;
143 } 143 }
144 144
145 script_file->set_content(content); 145 script_file->set_content(content);
146 LOG(INFO) << "Loaded user script file: " << script_file->path().value(); 146 LOG(INFO) << "Loaded user script file: " << path.value();
147 return true; 147 return true;
148 } 148 }
149 149
150 void UserScriptMaster::ScriptReloader::LoadScriptsFromDirectory( 150 void UserScriptMaster::ScriptReloader::LoadScriptsFromDirectory(
151 const FilePath& script_dir, UserScriptList* result) { 151 const FilePath& script_dir, UserScriptList* result) {
152 // Clear the list. We will populate it with the scrips found in script_dir. 152 // Clear the list. We will populate it with the scripts found in script_dir.
153 result->clear(); 153 result->clear();
154 154
155 // Find all the scripts in |script_dir|. 155 // Find all the scripts in |script_dir|.
156 if (!script_dir.value().empty()) { 156 if (!script_dir.value().empty()) {
157 // Create the "<Profile>/User Scripts" directory if it doesn't exist 157 // Create the "<Profile>/User Scripts" directory if it doesn't exist
158 if (!file_util::DirectoryExists(script_dir)) 158 if (!file_util::DirectoryExists(script_dir))
159 file_util::CreateDirectory(script_dir); 159 file_util::CreateDirectory(script_dir);
160 160
161 file_util::FileEnumerator enumerator(script_dir, false, 161 file_util::FileEnumerator enumerator(script_dir, false,
162 file_util::FileEnumerator::FILES, 162 file_util::FileEnumerator::FILES,
163 FILE_PATH_LITERAL("*.user.js")); 163 FILE_PATH_LITERAL("*.user.js"));
164 for (FilePath file = enumerator.Next(); !file.value().empty(); 164 for (FilePath file = enumerator.Next(); !file.value().empty();
165 file = enumerator.Next()) { 165 file = enumerator.Next()) {
166 result->push_back(UserScript()); 166 result->push_back(UserScript());
167 UserScript& user_script = result->back(); 167 UserScript& user_script = result->back();
168 // Push single js file in this UserScript. 168 // Push single js file in this UserScript.
169 GURL url(std::string(chrome::kUserScriptScheme) + ":/" + 169 GURL url(std::string(chrome::kUserScriptScheme) + ":/" +
170 net::FilePathToFileURL(file).ExtractFileName()); 170 net::FilePathToFileURL(file).ExtractFileName());
171 user_script.js_scripts().push_back(UserScript::File(file, url)); 171 ExtensionResource resource(script_dir, file.BaseName());
172 user_script.js_scripts().push_back(UserScript::File(resource, url));
172 UserScript::File& script_file = user_script.js_scripts().back(); 173 UserScript::File& script_file = user_script.js_scripts().back();
173 if (!LoadScriptContent(&script_file)) 174 if (!LoadScriptContent(&script_file))
174 result->pop_back(); 175 result->pop_back();
175 else 176 else
176 ParseMetadataHeader(script_file.GetContent(), &user_script); 177 ParseMetadataHeader(script_file.GetContent(), &user_script);
177 } 178 }
178 } 179 }
179 } 180 }
180 181
181 static void LoadLoneScripts(UserScriptList* lone_scripts) { 182 static void LoadLoneScripts(UserScriptList* lone_scripts) {
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 DCHECK(false); 377 DCHECK(false);
377 } 378 }
378 } 379 }
379 380
380 void UserScriptMaster::StartScan() { 381 void UserScriptMaster::StartScan() {
381 if (!script_reloader_) 382 if (!script_reloader_)
382 script_reloader_ = new ScriptReloader(this); 383 script_reloader_ = new ScriptReloader(this);
383 384
384 script_reloader_->StartScan(worker_loop_, user_script_dir_, lone_scripts_); 385 script_reloader_->StartScan(worker_loop_, user_script_dir_, lone_scripts_);
385 } 386 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/image_loading_tracker.cc ('k') | chrome/browser/gtk/location_bar_view_gtk.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698