diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-21 00:49:49 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-21 00:49:49 +0000 |
commit | 497321cc99a20038cf0251be7e12a9e5f4206e82 (patch) | |
tree | db428779acdf7388fe428b32aec0c3d765175785 /chrome/renderer | |
parent | 6be86ad0a99fcc0a717368b320103e6c1d4eab5a (diff) | |
download | chromium_src-497321cc99a20038cf0251be7e12a9e5f4206e82.zip chromium_src-497321cc99a20038cf0251be7e12a9e5f4206e82.tar.gz chromium_src-497321cc99a20038cf0251be7e12a9e5f4206e82.tar.bz2 |
Show the path to the Greasemonkey script that caused an error
in the console.
Review URL: http://codereview.chromium.org/7533
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3643 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r-- | chrome/renderer/greasemonkey_slave.cc | 17 | ||||
-rw-r--r-- | chrome/renderer/greasemonkey_slave.h | 20 |
2 files changed, 23 insertions, 14 deletions
diff --git a/chrome/renderer/greasemonkey_slave.cc b/chrome/renderer/greasemonkey_slave.cc index 7a23017..cba48d1 100644 --- a/chrome/renderer/greasemonkey_slave.cc +++ b/chrome/renderer/greasemonkey_slave.cc @@ -39,12 +39,16 @@ bool GreasemonkeySlave::UpdateScripts(SharedMemoryHandle shared_memory) { pickle.ReadInt(&iter, &num_scripts); for (int i = 0; i < num_scripts; ++i) { - const char* data = NULL; - int data_length = 0; - pickle.ReadData(&iter, &data, &data_length); + const char* url = NULL; + int url_length = 0; + const char* body = NULL; + int body_length = 0; - GreasemonkeyScript script; - if (script.Parse(StringPiece(data, data_length))) { + pickle.ReadData(&iter, &url, &url_length); + pickle.ReadData(&iter, &body, &body_length); + + GreasemonkeyScript script(StringPiece(url, url_length)); + if (script.Parse(StringPiece(body, body_length))) { scripts_.push_back(script); } } @@ -57,9 +61,8 @@ bool GreasemonkeySlave::InjectScripts(WebFrame* frame) { for (std::vector<GreasemonkeyScript>::iterator script = scripts_.begin(); script != scripts_.end(); ++script) { - // TODO(aa): Pass in URL to script when we have it. frame->ExecuteJavaScript(script->GetBody().as_string(), - "Greasemonkey Script"); + script->GetURL().as_string()); } return true; diff --git a/chrome/renderer/greasemonkey_slave.h b/chrome/renderer/greasemonkey_slave.h index 7f35cec..a6bec2f2 100644 --- a/chrome/renderer/greasemonkey_slave.h +++ b/chrome/renderer/greasemonkey_slave.h @@ -5,8 +5,6 @@ #ifndef CHROME_RENDERER_GREASEMONKEY_SLAVE_H__ #define CHROME_RENDERER_GREASEMONKEY_SLAVE_H__ -#include <vector> - #include "base/scoped_ptr.h" #include "base/shared_memory.h" #include "base/string_piece.h" @@ -15,14 +13,17 @@ // Parsed representation of a Greasemonkey script. class GreasemonkeyScript { public: - // TODO(aa): Pass in filename script came from, for errors. Needs to be in - // shared memory. - GreasemonkeyScript() {} + GreasemonkeyScript(const StringPiece& script_url) + : url_(script_url) {} const StringPiece& GetBody() const { return body_; } + const StringPiece& GetURL() const { + return url_; + } + bool Parse(const StringPiece& script_text) { // TODO(aa): Parse out includes, convert to regexes. body_ = script_text; @@ -30,9 +31,14 @@ class GreasemonkeyScript { } private: - // References the body of the script in shared memory. The underlying memory - // is valid until shared_memory_ is either deleted or Unmap()'d. + // The body of the script, which will be injected into content pages. This + // references shared_memory_, and is valid until that memory is either + // deleted or Unmap()'d. StringPiece body_; + + // The url of the file the script came from. This references shared_memory_, + // and is valid until that memory is either deleted or Unmap()'d. + StringPiece url_; }; |