summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
authoraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-12 07:17:20 +0000
committeraa@chromium.org <aa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-12 07:17:20 +0000
commit74f310703b17978c82aff8926972f9da403df084 (patch)
treee9f513e785c205fdd8bf86ed8036bb2990725fd5 /chrome/renderer
parent02175aef42ef9a4d0f1498c4f277a1e62e35fa98 (diff)
downloadchromium_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')
-rw-r--r--chrome/renderer/extensions/bindings_utils.cc18
-rw-r--r--chrome/renderer/extensions/bindings_utils.h4
-rw-r--r--chrome/renderer/resources/event_bindings.js1
-rw-r--r--chrome/renderer/resources/extension_process_bindings.js3
-rw-r--r--chrome/renderer/resources/renderer_extension_bindings.js1
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();