diff options
author | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-12 07:17:20 +0000 |
---|---|---|
committer | aa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-12 07:17:20 +0000 |
commit | 74f310703b17978c82aff8926972f9da403df084 (patch) | |
tree | e9f513e785c205fdd8bf86ed8036bb2990725fd5 /chrome/renderer | |
parent | 02175aef42ef9a4d0f1498c4f277a1e62e35fa98 (diff) | |
download | chromium_src-74f310703b17978c82aff8926972f9da403df084.zip chromium_src-74f310703b17978c82aff8926972f9da403df084.tar.gz chromium_src-74f310703b17978c82aff8926972f9da403df084.tar.bz2 |
Add a Print() method to bindings JS for last resort debugging.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7640005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96524 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
5 files changed, 25 insertions, 2 deletions
diff --git a/chrome/renderer/extensions/bindings_utils.cc b/chrome/renderer/extensions/bindings_utils.cc index 385f1c6..21663e4 100644 --- a/chrome/renderer/extensions/bindings_utils.cc +++ b/chrome/renderer/extensions/bindings_utils.cc @@ -4,9 +4,11 @@ #include "chrome/renderer/extensions/bindings_utils.h" +#include "base/logging.h" #include "base/lazy_instance.h" #include "base/stringprintf.h" #include "base/string_split.h" +#include "base/string_util.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_set.h" #include "chrome/renderer/extensions/extension_dispatcher.h" @@ -84,6 +86,10 @@ v8::Handle<v8::FunctionTemplate> return v8::FunctionTemplate::New(GetChromeHidden); } + if (name->Equals(v8::String::New("Print"))) { + return v8::FunctionTemplate::New(Print); + } + return v8::Handle<v8::FunctionTemplate>(); } @@ -110,6 +116,18 @@ v8::Handle<v8::Value> ExtensionBase::GetChromeHidden( return hidden; } +v8::Handle<v8::Value> ExtensionBase::Print(const v8::Arguments& args) { + if (args.Length() < 1) + return v8::Undefined(); + + std::vector<std::string> components; + for (int i = 0; i < args.Length(); ++i) + components.push_back(*v8::String::Utf8Value(args[i]->ToString())); + + LOG(ERROR) << JoinString(components, ','); + return v8::Undefined(); +} + ContextInfo::ContextInfo(v8::Persistent<v8::Context> context, const std::string& extension_id, WebKit::WebFrame* parent_frame, diff --git a/chrome/renderer/extensions/bindings_utils.h b/chrome/renderer/extensions/bindings_utils.h index 0d47ea6..a913681 100644 --- a/chrome/renderer/extensions/bindings_utils.h +++ b/chrome/renderer/extensions/bindings_utils.h @@ -67,6 +67,10 @@ class ExtensionBase : public v8::Extension { static v8::Handle<v8::Value> GetChromeHidden(const v8::Arguments& args); ExtensionDispatcher* extension_dispatcher_; + + private: + // Helper to print from bindings javascript. + static v8::Handle<v8::Value> Print(const v8::Arguments& args); }; const char* GetStringResource(int resource_id); diff --git a/chrome/renderer/resources/event_bindings.js b/chrome/renderer/resources/event_bindings.js index 7b8093a..eb41869 100644 --- a/chrome/renderer/resources/event_bindings.js +++ b/chrome/renderer/resources/event_bindings.js @@ -8,6 +8,7 @@ var chrome = chrome || {}; native function AttachEvent(eventName); native function DetachEvent(eventName); native function GetExternalFileEntry(fileDefinition); + native function Print(); var chromeHidden = GetChromeHidden(); diff --git a/chrome/renderer/resources/extension_process_bindings.js b/chrome/renderer/resources/extension_process_bindings.js index b2d10ff..d24cd67 100644 --- a/chrome/renderer/resources/extension_process_bindings.js +++ b/chrome/renderer/resources/extension_process_bindings.js @@ -23,6 +23,7 @@ var chrome = chrome || {}; native function GetUniqueSubEventName(eventName); native function GetLocalFileSystem(name, path); native function DecodeJPEG(jpeg_image); + native function Print(); var chromeHidden = GetChromeHidden(); @@ -77,8 +78,6 @@ var chrome = chrome || {}; throw new Error(message); } else if (!schemas[i].optional) { - console.log(chromeHidden.JSON.stringify(args)); - console.log(chromeHidden.JSON.stringify(schemas)); throw new Error("Parameter " + (i + 1) + " is required."); } } diff --git a/chrome/renderer/resources/renderer_extension_bindings.js b/chrome/renderer/resources/renderer_extension_bindings.js index e2f203d..7a53e49 100644 --- a/chrome/renderer/resources/renderer_extension_bindings.js +++ b/chrome/renderer/resources/renderer_extension_bindings.js @@ -17,6 +17,7 @@ var chrome = chrome || {}; native function PostMessage(portId, msg); native function GetChromeHidden(); native function GetL10nMessage(); + native function Print(); var chromeHidden = GetChromeHidden(); |