OLD | NEW |
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 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 if (!file_util::DirectoryExists(script_dir)) | 159 if (!file_util::DirectoryExists(script_dir)) |
160 file_util::CreateDirectory(script_dir); | 160 file_util::CreateDirectory(script_dir); |
161 | 161 |
162 file_util::FileEnumerator enumerator(script_dir, false, | 162 file_util::FileEnumerator enumerator(script_dir, false, |
163 file_util::FileEnumerator::FILES, | 163 file_util::FileEnumerator::FILES, |
164 FILE_PATH_LITERAL("*.user.js")); | 164 FILE_PATH_LITERAL("*.user.js")); |
165 for (FilePath file = enumerator.Next(); !file.value().empty(); | 165 for (FilePath file = enumerator.Next(); !file.value().empty(); |
166 file = enumerator.Next()) { | 166 file = enumerator.Next()) { |
167 result->push_back(UserScript()); | 167 result->push_back(UserScript()); |
168 UserScript& user_script = result->back(); | 168 UserScript& user_script = result->back(); |
| 169 |
| 170 // We default standalone user scripts to document-end for better |
| 171 // Greasemonkey compatibility. |
| 172 user_script.set_run_location(UserScript::DOCUMENT_END); |
| 173 |
169 // Push single js file in this UserScript. | 174 // Push single js file in this UserScript. |
170 GURL url(std::string(chrome::kUserScriptScheme) + ":/" + | 175 GURL url(std::string(chrome::kUserScriptScheme) + ":/" + |
171 net::FilePathToFileURL(file).ExtractFileName()); | 176 net::FilePathToFileURL(file).ExtractFileName()); |
172 user_script.js_scripts().push_back(UserScript::File( | 177 user_script.js_scripts().push_back(UserScript::File( |
173 script_dir, file.BaseName(), url)); | 178 script_dir, file.BaseName(), url)); |
174 UserScript::File& script_file = user_script.js_scripts().back(); | 179 UserScript::File& script_file = user_script.js_scripts().back(); |
175 if (!LoadScriptContent(&script_file)) | 180 if (!LoadScriptContent(&script_file)) |
176 result->pop_back(); | 181 result->pop_back(); |
177 else | 182 else |
178 ParseMetadataHeader(script_file.GetContent(), &user_script); | 183 ParseMetadataHeader(script_file.GetContent(), &user_script); |
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
378 DCHECK(false); | 383 DCHECK(false); |
379 } | 384 } |
380 } | 385 } |
381 | 386 |
382 void UserScriptMaster::StartScan() { | 387 void UserScriptMaster::StartScan() { |
383 if (!script_reloader_) | 388 if (!script_reloader_) |
384 script_reloader_ = new ScriptReloader(this); | 389 script_reloader_ = new ScriptReloader(this); |
385 | 390 |
386 script_reloader_->StartScan(worker_loop_, user_script_dir_, lone_scripts_); | 391 script_reloader_->StartScan(worker_loop_, user_script_dir_, lone_scripts_); |
387 } | 392 } |
OLD | NEW |