diff options
author | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-01 07:50:04 +0000 |
---|---|---|
committer | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-01 07:50:04 +0000 |
commit | 10fb687b87f5fde62b3df3e2dd5c5d6f5533d715 (patch) | |
tree | 32440c96aec4e6fc8f4e9e11f036e599f3e73388 /webkit | |
parent | bb965d182303371fece6ca3254689d73a25e5548 (diff) | |
download | chromium_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.js | 7 | ||||
-rw-r--r-- | webkit/glue/devtools/js/inject_dispatch.js | 6 | ||||
-rw-r--r-- | webkit/glue/devtools/js/inspector_controller_impl.js | 24 | ||||
-rw-r--r-- | webkit/glue/webdevtoolsclient_delegate.h | 4 | ||||
-rw-r--r-- | webkit/glue/webdevtoolsclient_impl.cc | 56 | ||||
-rw-r--r-- | webkit/glue/webdevtoolsclient_impl.h | 6 |
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_; |