diff options
author | dglazkov@google.com <dglazkov@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-10 19:11:09 +0000 |
---|---|---|
committer | dglazkov@google.com <dglazkov@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-10 19:11:09 +0000 |
commit | 15afbb51fd02caf9baebd5e406ec88bf59d8f835 (patch) | |
tree | b0e5ce4fb8c334e6e52e94f5d3afcabb45097b8f /webkit/inspector/DebuggerIPC.js | |
parent | 2a65160320c17d0c0f370d71fac51d6250b5b1fa (diff) | |
download | chromium_src-15afbb51fd02caf9baebd5e406ec88bf59d8f835.zip chromium_src-15afbb51fd02caf9baebd5e406ec88bf59d8f835.tar.gz chromium_src-15afbb51fd02caf9baebd5e406ec88bf59d8f835.tar.bz2 |
Move forked, DevTools-specific JS files out of third_party/WebKit
R=darin
BUG=3320
Review URL: http://codereview.chromium.org/44001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11358 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/inspector/DebuggerIPC.js')
-rw-r--r-- | webkit/inspector/DebuggerIPC.js | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/webkit/inspector/DebuggerIPC.js b/webkit/inspector/DebuggerIPC.js new file mode 100644 index 0000000..15835fc --- /dev/null +++ b/webkit/inspector/DebuggerIPC.js @@ -0,0 +1,109 @@ +// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +/** + * @fileoverview Implementation of debugger inter-process communication. + * Debugger UI can send messages to the DebuggerHost object living in + * Chrome browser process. The messages are either processed by DebuggerHost + * itself or trigger IPC message(such as break, evaluate script etc) from + * browser process to the renderer where the v8 instance being debugged + * will process them. + */ + +var DebuggerIPC = {}; + +/** + * Set up default debugger UI. + * @param {DebuggerPanel|DebuggerConsole} debuggerUI + */ +DebuggerIPC.init = function(debuggerUI) { + DebuggerIPC.debuggerUI = debuggerUI; +} + +/** + * Sends JSON message to DebuggerHost. + * @param {Array.<Object>} nameAndArguments + */ +DebuggerIPC.sendMessage = function(nameAndArguments) { + //alert("DebuggerIPC.sendMessage " + nameAndArguments); + dprint("DebuggerIPC.callMethod([" + nameAndArguments + "])"); + // convert all arguments to strings + // TODO(yurys): extend chrome.send to accept array of any value + // objects not only strings + for (var i = 0; i < nameAndArguments.length; i++) { + if (typeof nameAndArguments[i] != "string") { + nameAndArguments[i] = "" + nameAndArguments[i]; + } + } + + chrome.send("DebuggerHostMessage", nameAndArguments); +}; + +/** + * Handles messages from DebuggerHost. + * @param {Object} msg An object representing the message. + */ +DebuggerIPC.onMessageReceived = function(msg) { + //alert("DebuggerIPC.onMessageReceived " + msg.event); + var ui = DebuggerIPC.debuggerUI; + dprint("onMessageReceived: " + (msg && msg.event)); + if (msg.type == "event") { + if (msg.event == "setDebuggerBreak") { + var val = msg.body.argument; + ui.setDebuggerBreak(val); + } else if (msg.event == "appendText") { + var text = msg.body.text; + ui.appendText(text); + } else if (msg.event == "focusOnCommandLine") { + dprint("focusOnCommandLine event received"); + // messages to DebugShell + } else if (msg.event == "initDebugShell") { + // DebugShell.initDebugShell(); + dprint(msg.event + " done"); + } else if (msg.event == "on_attach") { + if (DebugShell.singleton) { + var args = msg.body.arguments; + if (!args || args.length != 1) { + dprint(msg.event + " failed: invalid arguments"); + return; + } + var title = args[0]; + DebugShell.singleton.on_attach(title); + dprint(msg.event + " done"); + } else { + dprint(msg.event + " failed: DebugShell.singleton == null"); + } + } else if (msg.event == "on_disconnect") { + if (DebugShell.singleton) { + DebugShell.singleton.on_disconnect(); + dprint(msg.event + " done"); + } else { + dprint(msg.event + " failed: DebugShell.singleton == null"); + } + } else if (msg.event == "exit") { + if (DebugShell.singleton) { + DebugShell.singleton.exit(); + dprint(msg.event + " done"); + } else { + dprint(msg.event + " failed: DebugShell.singleton == null"); + } + } else if (msg.event == "response") { + if (DebugShell.singleton) { + var args = msg.body.arguments; + if (!args || args.length != 1) { + dprint(msg.event + " failed: invalid argument"); + return; + } + DebugShell.singleton.response(args[0]); + dprint(msg.event + " done"); + } else { + ui.appendText(msg.event + " failed: DebugShell.singleton == null"); + } + } else { + ui.appendText("Unknown event: " + msg.event); + } + } else { + ui.appendText("Unknown message type: " + msg.type); + } +}; |