summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-01 07:50:04 +0000
committerpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-01 07:50:04 +0000
commit10fb687b87f5fde62b3df3e2dd5c5d6f5533d715 (patch)
tree32440c96aec4e6fc8f4e9e11f036e599f3e73388 /webkit
parentbb965d182303371fece6ca3254689d73a25e5548 (diff)
downloadchromium_src-10fb687b87f5fde62b3df3e2dd5c5d6f5533d715.zip
chromium_src-10fb687b87f5fde62b3df3e2dd5c5d6f5533d715.tar.gz
chromium_src-10fb687b87f5fde62b3df3e2dd5c5d6f5533d715.tar.bz2
DevTools: Introduce docked version of DevTools.
Review URL: http://codereview.chromium.org/149071 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19713 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/glue/devtools/js/devtools.js7
-rw-r--r--webkit/glue/devtools/js/inject_dispatch.js6
-rw-r--r--webkit/glue/devtools/js/inspector_controller_impl.js24
-rw-r--r--webkit/glue/webdevtoolsclient_delegate.h4
-rw-r--r--webkit/glue/webdevtoolsclient_impl.cc56
-rw-r--r--webkit/glue/webdevtoolsclient_impl.h6
6 files changed, 86 insertions, 17 deletions
diff --git a/webkit/glue/devtools/js/devtools.js b/webkit/glue/devtools/js/devtools.js
index 7862857..f8d055b 100644
--- a/webkit/glue/devtools/js/devtools.js
+++ b/webkit/glue/devtools/js/devtools.js
@@ -152,6 +152,13 @@ devtools.ToolsAgent.prototype.addMessageToConsole_ = function(message) {
*/
devtools.ToolsAgent.prototype.dispatchOnClient_ = function(message) {
var messageObj = JSON.parse(message);
+ // Filter out messages we don't need here.
+ var method = messageObj[0];
+ if (method == 'inspectedWindowCleared' ||
+ method == 'reset' ||
+ method == 'setAttachedWindow') {
+ return;
+ }
WebInspector.dispatch.apply(WebInspector, messageObj);
};
diff --git a/webkit/glue/devtools/js/inject_dispatch.js b/webkit/glue/devtools/js/inject_dispatch.js
index e02784f..a228ae8 100644
--- a/webkit/glue/devtools/js/inject_dispatch.js
+++ b/webkit/glue/devtools/js/inject_dispatch.js
@@ -38,12 +38,6 @@ function devtools$$dispatch(functionName, json_args) {
*/
var dispatch = function(method, var_args) {
// Handle all messages with non-primitieve arguments here.
- if (method == 'inspectedWindowCleared' ||
- // TODO(pfeldman): move this code from injected dispatch
- // to the client dispatch.
- method == 'reset') {
- return;
- }
var args = Array.prototype.slice.call(arguments);
// Serialize objects here.
diff --git a/webkit/glue/devtools/js/inspector_controller_impl.js b/webkit/glue/devtools/js/inspector_controller_impl.js
index d04b16a..f0b6cb9 100644
--- a/webkit/glue/devtools/js/inspector_controller_impl.js
+++ b/webkit/glue/devtools/js/inspector_controller_impl.js
@@ -28,6 +28,30 @@ devtools.InspectorController.prototype.platform = function() {
/**
* {@inheritDoc}.
*/
+devtools.InspectorController.prototype.closeWindow = function() {
+ DevToolsHost.closeWindow();
+};
+
+
+/**
+ * {@inheritDoc}.
+ */
+devtools.InspectorController.prototype.attach = function() {
+ DevToolsHost.dockWindow();
+};
+
+
+/**
+ * {@inheritDoc}.
+ */
+devtools.InspectorController.prototype.detach = function() {
+ DevToolsHost.undockWindow();
+};
+
+
+/**
+ * {@inheritDoc}.
+ */
devtools.InspectorController.prototype.clearMessages = function() {
RemoteToolsAgent.ClearConsoleMessages();
};
diff --git a/webkit/glue/webdevtoolsclient_delegate.h b/webkit/glue/webdevtoolsclient_delegate.h
index 2be3656..09d088b 100644
--- a/webkit/glue/webdevtoolsclient_delegate.h
+++ b/webkit/glue/webdevtoolsclient_delegate.h
@@ -17,7 +17,11 @@ class WebDevToolsClientDelegate {
const std::string& method_name,
const std::string& raw_msg) = 0;
virtual void SendDebuggerCommandToAgent(const std::string& command) = 0;
+
virtual void ActivateWindow() = 0;
+ virtual void CloseWindow() = 0;
+ virtual void DockWindow() = 0;
+ virtual void UndockWindow() = 0;
private:
DISALLOW_COPY_AND_ASSIGN(WebDevToolsClientDelegate);
diff --git a/webkit/glue/webdevtoolsclient_impl.cc b/webkit/glue/webdevtoolsclient_impl.cc
index 16d19c5..9f92d53 100644
--- a/webkit/glue/webdevtoolsclient_impl.cc
+++ b/webkit/glue/webdevtoolsclient_impl.cc
@@ -167,11 +167,20 @@ WebDevToolsClientImpl::WebDevToolsClientImpl(
"search",
WebCore::V8Custom::v8InspectorControllerSearchCallback);
dev_tools_host_->AddProtoFunction(
+ "getPlatform",
+ WebDevToolsClientImpl::JsGetPlatform);
+ dev_tools_host_->AddProtoFunction(
"activateWindow",
WebDevToolsClientImpl::JsActivateWindow);
dev_tools_host_->AddProtoFunction(
- "getPlatform",
- WebDevToolsClientImpl::JsGetPlatform);
+ "closeWindow",
+ WebDevToolsClientImpl::JsCloseWindow);
+ dev_tools_host_->AddProtoFunction(
+ "dockWindow",
+ WebDevToolsClientImpl::JsDockWindow);
+ dev_tools_host_->AddProtoFunction(
+ "undockWindow",
+ WebDevToolsClientImpl::JsUndockWindow);
dev_tools_host_->Build();
}
@@ -302,6 +311,18 @@ v8::Handle<v8::Value> WebDevToolsClientImpl::JsLoaded(
}
// static
+v8::Handle<v8::Value> WebDevToolsClientImpl::JsGetPlatform(
+ const v8::Arguments& args) {
+#if defined OS_MACOSX
+ return v8String("mac-leopard");
+#elif defined OS_LINUX
+ return v8String("linux");
+#else
+ return v8String("windows");
+#endif
+}
+
+// static
v8::Handle<v8::Value> WebDevToolsClientImpl::JsActivateWindow(
const v8::Arguments& args) {
WebDevToolsClientImpl* client = static_cast<WebDevToolsClientImpl*>(
@@ -311,13 +332,28 @@ v8::Handle<v8::Value> WebDevToolsClientImpl::JsActivateWindow(
}
// static
-v8::Handle<v8::Value> WebDevToolsClientImpl::JsGetPlatform(
+v8::Handle<v8::Value> WebDevToolsClientImpl::JsCloseWindow(
const v8::Arguments& args) {
-#if defined OS_MACOSX
- return v8String("mac-leopard");
-#elif defined OS_LINUX
- return v8String("linux");
-#else
- return v8String("windows");
-#endif
+ WebDevToolsClientImpl* client = static_cast<WebDevToolsClientImpl*>(
+ v8::External::Cast(*args.Data())->Value());
+ client->delegate_->CloseWindow();
+ return v8::Undefined();
+}
+
+// static
+v8::Handle<v8::Value> WebDevToolsClientImpl::JsDockWindow(
+ const v8::Arguments& args) {
+ WebDevToolsClientImpl* client = static_cast<WebDevToolsClientImpl*>(
+ v8::External::Cast(*args.Data())->Value());
+ client->delegate_->DockWindow();
+ return v8::Undefined();
+}
+
+// static
+v8::Handle<v8::Value> WebDevToolsClientImpl::JsUndockWindow(
+ const v8::Arguments& args) {
+ WebDevToolsClientImpl* client = static_cast<WebDevToolsClientImpl*>(
+ v8::External::Cast(*args.Data())->Value());
+ client->delegate_->UndockWindow();
+ return v8::Undefined();
}
diff --git a/webkit/glue/webdevtoolsclient_impl.h b/webkit/glue/webdevtoolsclient_impl.h
index 697a160..8180458 100644
--- a/webkit/glue/webdevtoolsclient_impl.h
+++ b/webkit/glue/webdevtoolsclient_impl.h
@@ -61,9 +61,13 @@ class WebDevToolsClientImpl : public WebDevToolsClient,
static v8::Handle<v8::Value> JsAddResourceSourceToFrame(
const v8::Arguments& args);
static v8::Handle<v8::Value> JsLoaded(const v8::Arguments& args);
- static v8::Handle<v8::Value> JsActivateWindow(const v8::Arguments& args);
static v8::Handle<v8::Value> JsGetPlatform(const v8::Arguments& args);
+ static v8::Handle<v8::Value> JsActivateWindow(const v8::Arguments& args);
+ static v8::Handle<v8::Value> JsCloseWindow(const v8::Arguments& args);
+ static v8::Handle<v8::Value> JsDockWindow(const v8::Arguments& args);
+ static v8::Handle<v8::Value> JsUndockWindow(const v8::Arguments& args);
+
WebViewImpl* web_view_impl_;
WebDevToolsClientDelegate* delegate_;
OwnPtr<CppBoundClass> debugger_command_executor_obj_;