| Index: chrome/renderer/user_script_slave.cc
|
| diff --git a/chrome/renderer/user_script_slave.cc b/chrome/renderer/user_script_slave.cc
|
| index bd5a98803b78a426d32a425c330c76819c32786d..aedc34537ca17caf67a8609948a6ab404bc67f42 100644
|
| --- a/chrome/renderer/user_script_slave.cc
|
| +++ b/chrome/renderer/user_script_slave.cc
|
| @@ -25,8 +25,6 @@ using WebKit::WebString;
|
| static const char kUserScriptHead[] = "(function (unsafeWindow) {\n";
|
| static const char kUserScriptTail[] = "\n})(window);";
|
|
|
| -static const char kInitSelf[] = "chromium.self = new chromium.Extension('%s')";
|
| -
|
| UserScriptSlave::UserScriptSlave()
|
| : shared_memory_(NULL),
|
| script_deleter_(&scripts_),
|
| @@ -112,8 +110,8 @@ bool UserScriptSlave::InjectScripts(WebFrame* frame,
|
| PerfTimer timer;
|
| int num_matched = 0;
|
|
|
| + std::vector<WebScriptSource> sources;
|
| for (size_t i = 0; i < scripts_.size(); ++i) {
|
| - std::vector<WebScriptSource> sources;
|
| UserScript* script = scripts_[i];
|
| if (!script->MatchesUrl(frame->GetURL()))
|
| continue; // This frame doesn't match the script url pattern, skip it.
|
| @@ -129,35 +127,16 @@ bool UserScriptSlave::InjectScripts(WebFrame* frame,
|
| if (script->run_location() == location) {
|
| for (size_t j = 0; j < script->js_scripts().size(); ++j) {
|
| UserScript::File &file = script->js_scripts()[j];
|
| - std::string content = file.GetContent().as_string();
|
| -
|
| - // We add this dumb function wrapper for standalone user script to
|
| - // emulate what Greasemonkey does.
|
| - if (script->is_standalone()) {
|
| - content.insert(0, kUserScriptHead);
|
| - content += kUserScriptTail;
|
| - }
|
| sources.push_back(WebScriptSource(
|
| - WebString::fromUTF8(content.c_str(), content.length()),
|
| - file.url()));
|
| + WebString::fromUTF8(file.GetContent()), file.url()));
|
| }
|
| }
|
| + }
|
|
|
| - if (!sources.empty()) {
|
| - if (script->is_standalone()) {
|
| - // For standalone scripts, we try to emulate the Greasemonkey API.
|
| - sources.insert(sources.begin(),
|
| - WebScriptSource(WebString::fromUTF8(api_js_.as_string())));
|
| - } else {
|
| - // Setup chromium.self to contain an Extension object with the correct
|
| - // ID.
|
| - sources.insert(sources.begin(),
|
| - WebScriptSource(WebString::fromUTF8(
|
| - StringPrintf(kInitSelf, script->extension_id().c_str()))));
|
| - }
|
| -
|
| - frame->ExecuteScriptInNewContext(&sources.front(), sources.size());
|
| - }
|
| + if (!sources.empty()) {
|
| + sources.insert(
|
| + sources.begin(), WebScriptSource(WebString::fromUTF8(api_js_)));
|
| + frame->ExecuteScriptInNewContext(&sources.front(), sources.size());
|
| }
|
|
|
| // Log debug info.
|
|
|