Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1551)

Unified Diff: chrome/renderer/extensions/extension_dispatcher.cc

Issue 10704073: Plumb listenerIDs correctly for events that clobber chrome.Event.prototype.dispatch. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nit Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/renderer/extensions/extension_dispatcher.cc
diff --git a/chrome/renderer/extensions/extension_dispatcher.cc b/chrome/renderer/extensions/extension_dispatcher.cc
index 7ef396f4882a693d05e5f43db7f8612772f1071b..00a5fb238609d1212da532f9edb0b1390ee5edc2 100644
--- a/chrome/renderer/extensions/extension_dispatcher.cc
+++ b/chrome/renderer/extensions/extension_dispatcher.cc
@@ -208,6 +208,25 @@ class ChannelNativeHandler : public NativeHandler {
chrome::VersionInfo::Channel channel_;
};
+class DebugNativeHandler : public NativeHandler {
+ public:
+ DebugNativeHandler() {
+ RouteFunction("DCHECK",
+ base::Bind(&DebugNativeHandler::Dcheck,
+ base::Unretained(this)));
+ }
+
+ v8::Handle<v8::Value> Dcheck(const v8::Arguments& args) {
+ CHECK_LE(args.Length(), 2);
+ bool check_value = args[0]->BooleanValue();
benwells 2012/07/03 23:34:29 Oh yeah, forgot to ask: Does this handle passing n
koz (OOO until 15th September) 2012/07/05 04:38:32 This will convert any JS values to bools using the
+ std::string error_message;
+ if (args.Length() == 2)
+ error_message = *v8::String::AsciiValue(args[1]);
not at google - send to devlin 2012/07/03 07:47:04 Is there a way to get a v8 stack trace in here?
koz (OOO until 15th September) 2012/07/05 04:38:32 Yes, it turns out. Done.
+ DCHECK(check_value) << error_message;
+ return v8::Undefined();
+ }
+};
+
void InstallAppBindings(ModuleSystem* module_system,
v8::Handle<v8::Object> chrome,
v8::Handle<v8::Object> chrome_hidden) {
@@ -226,7 +245,7 @@ void InstallWebstoreBindings(ModuleSystem* module_system,
"chromeHiddenWebstore");
}
-}
+} // namespace
ExtensionDispatcher::ExtensionDispatcher()
: is_webkit_initialized_(false),
@@ -681,6 +700,8 @@ void ExtensionDispatcher::DidCreateScriptContext(
module_system->RegisterNativeHandler("channel",
scoped_ptr<NativeHandler>(new ChannelNativeHandler(
static_cast<chrome::VersionInfo::Channel>(chrome_channel_))));
+ module_system->RegisterNativeHandler("debug",
+ scoped_ptr<NativeHandler>(new DebugNativeHandler()));
not at google - send to devlin 2012/07/03 07:47:04 drive-by: DCHECK is in base/logging.h, so perhaps
koz (OOO until 15th September) 2012/07/05 04:38:32 Done.
// Create the 'chrome' variable if it doesn't already exist.
{
v8::HandleScope handle_scope;

Powered by Google App Engine
This is Rietveld 408576698