diff -r 000000000000 -r 4f2f89ce4247 WebKit/chromium/src/js/InspectorControllerImpl.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WebKit/chromium/src/js/InspectorControllerImpl.js Fri Sep 17 09:02:29 2010 +0300 @@ -0,0 +1,161 @@ +/* + * Copyright (C) 2010 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * @fileoverview DevTools' implementation of the InspectorController API. + */ + +if (!this.devtools) + devtools = {}; + +devtools.InspectorBackendImpl = function() +{ + WebInspector.InspectorBackendStub.call(this); + this.installInspectorControllerDelegate_("addInspectedNode"); + this.installInspectorControllerDelegate_("addScriptToEvaluateOnLoad"); + this.installInspectorControllerDelegate_("changeTagName"); + this.installInspectorControllerDelegate_("clearConsoleMessages"); + this.installInspectorControllerDelegate_("copyNode"); + this.installInspectorControllerDelegate_("deleteCookie"); + this.installInspectorControllerDelegate_("didEvaluateForTestInFrontend"); + this.installInspectorControllerDelegate_("disableMonitoringXHR"); + this.installInspectorControllerDelegate_("disableResourceTracking"); + this.installInspectorControllerDelegate_("disableSearchingForNode"); + this.installInspectorControllerDelegate_("disableTimeline"); + this.installInspectorControllerDelegate_("enableMonitoringXHR"); + this.installInspectorControllerDelegate_("enableResourceTracking"); + this.installInspectorControllerDelegate_("enableSearchingForNode"); + this.installInspectorControllerDelegate_("enableTimeline"); + this.installInspectorControllerDelegate_("getChildNodes"); + this.installInspectorControllerDelegate_("getCookies"); + this.installInspectorControllerDelegate_("getDatabaseTableNames"); + this.installInspectorControllerDelegate_("getDOMStorageEntries"); + this.installInspectorControllerDelegate_("getEventListenersForNode"); + this.installInspectorControllerDelegate_("getOuterHTML"); + this.installInspectorControllerDelegate_("getProfile"); + this.installInspectorControllerDelegate_("getProfileHeaders"); + this.installInspectorControllerDelegate_("removeProfile"); + this.installInspectorControllerDelegate_("clearProfiles"); + this.installInspectorControllerDelegate_("getResourceContent"); + this.installInspectorControllerDelegate_("highlightDOMNode"); + this.installInspectorControllerDelegate_("hideDOMNodeHighlight"); + this.installInspectorControllerDelegate_("performSearch"); + this.installInspectorControllerDelegate_("pushNodeByPathToFrontend"); + this.installInspectorControllerDelegate_("releaseWrapperObjectGroup"); + this.installInspectorControllerDelegate_("removeAllScriptsToEvaluateOnLoad"); + this.installInspectorControllerDelegate_("reloadPage"); + this.installInspectorControllerDelegate_("removeAttribute"); + this.installInspectorControllerDelegate_("removeDOMStorageItem"); + this.installInspectorControllerDelegate_("removeNode"); + this.installInspectorControllerDelegate_("saveApplicationSettings"); + this.installInspectorControllerDelegate_("saveSessionSettings"); + this.installInspectorControllerDelegate_("searchCanceled"); + this.installInspectorControllerDelegate_("setAttribute"); + this.installInspectorControllerDelegate_("setDOMStorageItem"); + this.installInspectorControllerDelegate_("setInjectedScriptSource"); + this.installInspectorControllerDelegate_("setOuterHTML"); + this.installInspectorControllerDelegate_("setTextNodeValue"); + this.installInspectorControllerDelegate_("startProfiling"); + this.installInspectorControllerDelegate_("startTimelineProfiler"); + this.installInspectorControllerDelegate_("stopProfiling"); + this.installInspectorControllerDelegate_("stopTimelineProfiler"); + this.installInspectorControllerDelegate_("storeLastActivePanel"); + this.installInspectorControllerDelegate_("takeHeapSnapshot"); + + this.installInspectorControllerDelegate_("getAllStyles"); + this.installInspectorControllerDelegate_("getStyles"); + this.installInspectorControllerDelegate_("getComputedStyle"); + this.installInspectorControllerDelegate_("getInlineStyle"); + this.installInspectorControllerDelegate_("getStyleSheet"); + this.installInspectorControllerDelegate_("getRuleRangesForStyleSheetId"); + this.installInspectorControllerDelegate_("applyStyleText"); + this.installInspectorControllerDelegate_("setStyleText"); + this.installInspectorControllerDelegate_("setStyleProperty"); + this.installInspectorControllerDelegate_("toggleStyleEnabled"); + this.installInspectorControllerDelegate_("setRuleSelector"); + this.installInspectorControllerDelegate_("addRule"); + + this.installInspectorControllerDelegate_("disableDebugger"); + this.installInspectorControllerDelegate_("editScriptSource"); + this.installInspectorControllerDelegate_("getScriptSource"); + this.installInspectorControllerDelegate_("enableDebugger"); + this.installInspectorControllerDelegate_("setBreakpoint"); + this.installInspectorControllerDelegate_("removeBreakpoint"); + this.installInspectorControllerDelegate_("activateBreakpoints"); + this.installInspectorControllerDelegate_("deactivateBreakpoints"); + this.installInspectorControllerDelegate_("resume"); + this.installInspectorControllerDelegate_("stepIntoStatement"); + this.installInspectorControllerDelegate_("stepOutOfFunction"); + this.installInspectorControllerDelegate_("stepOverStatement"); + this.installInspectorControllerDelegate_("setPauseOnExceptionsState"); +}; +devtools.InspectorBackendImpl.prototype.__proto__ = WebInspector.InspectorBackendStub.prototype; + + +devtools.InspectorBackendImpl.prototype.pause = function() +{ + RemoteDebuggerCommandExecutor.DebuggerPauseScript(); +}; + + +/** + * @override + */ +devtools.InspectorBackendImpl.prototype.dispatchOnInjectedScript = function(callId, injectedScriptId, methodName, argsString, async) +{ + // Encode injectedScriptId into callId + if (typeof injectedScriptId !== "number") + injectedScriptId = 0; + RemoteToolsAgent.dispatchOnInjectedScript(callId, injectedScriptId, methodName, argsString, async); +}; + + +/** + * Installs delegating handler into the inspector controller. + * @param {string} methodName Method to install delegating handler for. + */ +devtools.InspectorBackendImpl.prototype.installInspectorControllerDelegate_ = function(methodName) +{ + this[methodName] = this.callInspectorController_.bind(this, methodName); +}; + + +/** + * Bound function with the installInjectedScriptDelegate_ actual + * implementation. + */ +devtools.InspectorBackendImpl.prototype.callInspectorController_ = function(methodName, var_arg) +{ + var args = Array.prototype.slice.call(arguments, 1); + RemoteToolsAgent.dispatchOnInspectorController(WebInspector.Callback.wrap(function(){}), methodName, JSON.stringify(args)); +}; + + +InspectorBackend = new devtools.InspectorBackendImpl();