summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webdevtoolsclient_impl.cc
diff options
context:
space:
mode:
authorpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-08 10:17:58 +0000
committerpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-08 10:17:58 +0000
commit991b310449356ca26912506c582b4219dc8cc13f (patch)
tree3c22bcf7c8408459ed10fee5b7fc2b6e40fc2970 /webkit/glue/webdevtoolsclient_impl.cc
parent6e005e2d4021df269de3cb53651d129454c1d2b3 (diff)
downloadchromium_src-991b310449356ca26912506c582b4219dc8cc13f.zip
chromium_src-991b310449356ca26912506c582b4219dc8cc13f.tar.gz
chromium_src-991b310449356ca26912506c582b4219dc8cc13f.tar.bz2
DevTools: Activate inspector window on break / exception.
Review URL: http://codereview.chromium.org/113100 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15632 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webdevtoolsclient_impl.cc')
-rw-r--r--webkit/glue/webdevtoolsclient_impl.cc53
1 files changed, 33 insertions, 20 deletions
diff --git a/webkit/glue/webdevtoolsclient_impl.cc b/webkit/glue/webdevtoolsclient_impl.cc
index 62c5f6a..4f654f4 100644
--- a/webkit/glue/webdevtoolsclient_impl.cc
+++ b/webkit/glue/webdevtoolsclient_impl.cc
@@ -99,28 +99,38 @@ void WebDevToolsClientImpl::InitBoundObject() {
v8::Local<v8::Signature> default_signature =
v8::Signature::New(host_template_);
v8::Local<v8::ObjectTemplate> proto = host_template_->PrototypeTemplate();
+ InitProtoFunction(proto,
+ "addSourceToFrame",
+ WebDevToolsClientImpl::JsAddSourceToFrame,
+ default_signature);
+ InitProtoFunction(proto,
+ "loaded",
+ WebDevToolsClientImpl::JsLoaded,
+ default_signature);
+ InitProtoFunction(proto,
+ "search",
+ WebCore::V8Custom::v8InspectorControllerSearchCallback,
+ default_signature);
+ InitProtoFunction(proto,
+ "activateWindow",
+ WebDevToolsClientImpl::JsActivateWindow,
+ default_signature);
+ host_template_->SetClassName(v8::String::New("DevToolsHost"));
+}
+
+// static
+void WebDevToolsClientImpl::InitProtoFunction(
+ v8::Handle<v8::ObjectTemplate> proto,
+ const char* name,
+ v8::InvocationCallback callback,
+ v8::Handle<v8::Signature> signature) {
proto->Set(
- v8::String::New("addSourceToFrame"),
- v8::FunctionTemplate::New(
- WebDevToolsClientImpl::JsAddSourceToFrame,
- v8::Handle<v8::Value>(),
- default_signature),
- static_cast<v8::PropertyAttribute>(v8::DontDelete));
- proto->Set(
- v8::String::New("loaded"),
- v8::FunctionTemplate::New(
- WebDevToolsClientImpl::JsLoaded,
- v8::Handle<v8::Value>(),
- default_signature),
- static_cast<v8::PropertyAttribute>(v8::DontDelete));
- proto->Set(
- v8::String::New("search"),
+ v8::String::New(name),
v8::FunctionTemplate::New(
- WebDevToolsClientImpl::JsSearch,
+ callback,
v8::Handle<v8::Value>(),
- default_signature),
+ signature),
static_cast<v8::PropertyAttribute>(v8::DontDelete));
- host_template_->SetClassName(v8::String::New("DevToolsHost"));
}
// static
@@ -240,7 +250,10 @@ v8::Handle<v8::Value> WebDevToolsClientImpl::JsLoaded(
}
// static
-v8::Handle<v8::Value> WebDevToolsClientImpl::JsSearch(
+v8::Handle<v8::Value> WebDevToolsClientImpl::JsActivateWindow(
const v8::Arguments& args) {
- return WebCore::V8Custom::v8InspectorControllerSearchCallback(args);
+ Page* page = V8Proxy::retrieveActiveFrame()->page();
+ WebDevToolsClientImpl* client = page_to_client_.get(page);
+ client->delegate_->ActivateWindow();
+ return v8::Undefined();
}